dcerpc-netlogon: maintain netlogon_auth_vars for NetrServerAuthenticateKerberos
[wireshark-sm.git] / epan / dissectors / packet-gsm_map.c
blobc017151f378bc1b466cb60a07b1720bf2694fa3b
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_responseTimeCategory; /* ResponseTimeCategory */
1566 static int hf_gsm_map_lcs_lcsCodewordString; /* LCSCodewordString */
1567 static int hf_gsm_map_lcs_callSessionUnrelated; /* PrivacyCheckRelatedAction */
1568 static int hf_gsm_map_lcs_callSessionRelated; /* PrivacyCheckRelatedAction */
1569 static int hf_gsm_map_lcs_areaDefinition; /* AreaDefinition */
1570 static int hf_gsm_map_lcs_occurrenceInfo; /* OccurrenceInfo */
1571 static int hf_gsm_map_lcs_intervalTime; /* IntervalTime */
1572 static int hf_gsm_map_lcs_areaList; /* AreaList */
1573 static int hf_gsm_map_lcs_AreaList_item; /* Area */
1574 static int hf_gsm_map_lcs_areaType; /* AreaType */
1575 static int hf_gsm_map_lcs_areaIdentification; /* AreaIdentification */
1576 static int hf_gsm_map_lcs_reportingAmount; /* ReportingAmount */
1577 static int hf_gsm_map_lcs_reportingInterval; /* ReportingInterval */
1578 static int hf_gsm_map_lcs_plmn_ListPrioritized; /* NULL */
1579 static int hf_gsm_map_lcs_plmn_List; /* PLMNList */
1580 static int hf_gsm_map_lcs_PLMNList_item; /* ReportingPLMN */
1581 static int hf_gsm_map_lcs_plmn_Id; /* PLMN_Id */
1582 static int hf_gsm_map_lcs_ran_Technology; /* RAN_Technology */
1583 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport; /* NULL */
1584 static int hf_gsm_map_lcs_locationEstimate; /* Ext_GeographicalInformation */
1585 static int hf_gsm_map_lcs_ageOfLocationEstimate; /* AgeOfLocationInformation */
1586 static int hf_gsm_map_lcs_add_LocationEstimate; /* Add_GeographicalInformation */
1587 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator; /* NULL */
1588 static int hf_gsm_map_lcs_geranPositioningData; /* PositioningDataInformation */
1589 static int hf_gsm_map_lcs_utranPositioningData; /* UtranPositioningDataInfo */
1590 static int hf_gsm_map_lcs_cellIdOrSai; /* CellGlobalIdOrServiceAreaIdOrLAI */
1591 static int hf_gsm_map_lcs_sai_Present; /* NULL */
1592 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator; /* AccuracyFulfilmentIndicator */
1593 static int hf_gsm_map_lcs_velocityEstimate; /* VelocityEstimate */
1594 static int hf_gsm_map_lcs_geranGANSSpositioningData; /* GeranGANSSpositioningData */
1595 static int hf_gsm_map_lcs_utranGANSSpositioningData; /* UtranGANSSpositioningData */
1596 static int hf_gsm_map_lcs_targetServingNodeForHandover; /* ServingNodeAddress */
1597 static int hf_gsm_map_lcs_utranAdditionalPositioningData; /* UtranAdditionalPositioningData */
1598 static int hf_gsm_map_lcs_utranBaroPressureMeas; /* UtranBaroPressureMeas */
1599 static int hf_gsm_map_lcs_utranCivicAddress; /* UtranCivicAddress */
1600 static int hf_gsm_map_lcs_lcs_Event; /* LCS_Event */
1601 static int hf_gsm_map_lcs_na_ESRD; /* ISDN_AddressString */
1602 static int hf_gsm_map_lcs_na_ESRK; /* ISDN_AddressString */
1603 static int hf_gsm_map_lcs_slr_ArgExtensionContainer; /* SLR_ArgExtensionContainer */
1604 static int hf_gsm_map_lcs_deferredmt_lrData; /* Deferredmt_lrData */
1605 static int hf_gsm_map_lcs_pseudonymIndicator; /* NULL */
1606 static int hf_gsm_map_lcs_sequenceNumber; /* SequenceNumber */
1607 static int hf_gsm_map_lcs_terminationCause; /* TerminationCause */
1608 static int hf_gsm_map_lcs_msc_Number; /* ISDN_AddressString */
1609 static int hf_gsm_map_lcs_sgsn_Number; /* ISDN_AddressString */
1610 static int hf_gsm_map_lcs_mme_Number; /* DiameterIdentity */
1611 /* named bits */
1612 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable;
1613 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea;
1614 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea;
1615 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea;
1616 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR;
1617 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint;
1618 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle;
1619 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse;
1620 static int hf_gsm_map_lcs_SupportedGADShapes_polygon;
1621 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude;
1622 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid;
1623 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc;
1625 /* --- Module MAP-GR-DataTypes --- --- --- */
1627 static int hf_gsm_map_gr_teleservice; /* Ext_TeleserviceCode */
1628 static int hf_gsm_map_gr_asciCallReference; /* ASCI_CallReference */
1629 static int hf_gsm_map_gr_codec_Info; /* CODEC_Info */
1630 static int hf_gsm_map_gr_cipheringAlgorithm; /* CipheringAlgorithm */
1631 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id; /* GroupKeyNumber */
1632 static int hf_gsm_map_gr_groupKey; /* Kc */
1633 static int hf_gsm_map_gr_priority; /* EMLPP_Priority */
1634 static int hf_gsm_map_gr_uplinkFree; /* NULL */
1635 static int hf_gsm_map_gr_extensionContainer; /* ExtensionContainer */
1636 static int hf_gsm_map_gr_vstk; /* VSTK */
1637 static int hf_gsm_map_gr_vstk_rand; /* VSTK_RAND */
1638 static int hf_gsm_map_gr_talkerChannelParameter; /* NULL */
1639 static int hf_gsm_map_gr_uplinkReplyIndicator; /* NULL */
1640 static int hf_gsm_map_gr_groupCallNumber; /* ISDN_AddressString */
1641 static int hf_gsm_map_gr_imsi; /* IMSI */
1642 static int hf_gsm_map_gr_talkerPriority; /* TalkerPriority */
1643 static int hf_gsm_map_gr_additionalInfo; /* AdditionalInfo */
1644 static int hf_gsm_map_gr_uplinkRequestAck; /* NULL */
1645 static int hf_gsm_map_gr_uplinkReleaseIndication; /* NULL */
1646 static int hf_gsm_map_gr_uplinkRejectCommand; /* NULL */
1647 static int hf_gsm_map_gr_uplinkSeizedCommand; /* NULL */
1648 static int hf_gsm_map_gr_uplinkReleaseCommand; /* NULL */
1649 static int hf_gsm_map_gr_stateAttributes; /* StateAttributes */
1650 static int hf_gsm_map_gr_emergencyModeResetCommandFlag; /* NULL */
1651 static int hf_gsm_map_gr_sm_RP_UI; /* SignalInfo */
1652 static int hf_gsm_map_gr_an_APDU; /* AccessNetworkSignalInfo */
1653 static int hf_gsm_map_gr_uplinkRequest; /* NULL */
1654 static int hf_gsm_map_gr_releaseGroupCall; /* NULL */
1655 static int hf_gsm_map_gr_downlinkAttached; /* NULL */
1656 static int hf_gsm_map_gr_uplinkAttached; /* NULL */
1657 static int hf_gsm_map_gr_dualCommunication; /* NULL */
1658 static int hf_gsm_map_gr_callOriginator; /* NULL */
1659 static int hf_gsm_map_gr_requestedInfo; /* RequestedInfo */
1660 static int hf_gsm_map_gr_groupId; /* Long_GroupId */
1661 static int hf_gsm_map_gr_cellId; /* GlobalCellId */
1662 static int hf_gsm_map_gr_tmsi; /* TMSI */
1663 static int hf_gsm_map_gr_cksn; /* Cksn */
1664 static int hf_gsm_map_gr_anchorMSC_Address; /* ISDN_AddressString */
1665 static int hf_gsm_map_gr_additionalSubscriptions; /* AdditionalSubscriptions */
1666 static int hf_gsm_map_gr_kc; /* Kc */
1668 /* --- Module MAP-DialogueInformation --- --- --- */
1670 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU; /* MAP_DialoguePDU */
1671 static int hf_gsm_map_dialogue_map_open; /* MAP_OpenInfo */
1672 static int hf_gsm_map_dialogue_map_accept; /* MAP_AcceptInfo */
1673 static int hf_gsm_map_dialogue_map_close; /* MAP_CloseInfo */
1674 static int hf_gsm_map_dialogue_map_refuse; /* MAP_RefuseInfo */
1675 static int hf_gsm_map_dialogue_map_userAbort; /* MAP_UserAbortInfo */
1676 static int hf_gsm_map_dialogue_map_providerAbort; /* MAP_ProviderAbortInfo */
1677 static int hf_gsm_map_dialogue_destinationReference; /* AddressString */
1678 static int hf_gsm_map_dialogue_originationReference; /* AddressString */
1679 static int hf_gsm_map_dialogue_extensionContainer; /* ExtensionContainer */
1680 static int hf_gsm_map_dialogue_reason; /* Reason */
1681 static int hf_gsm_map_dialogue_alternativeApplicationContext; /* OBJECT_IDENTIFIER */
1682 static int hf_gsm_map_dialogue_map_UserAbortChoice; /* MAP_UserAbortChoice */
1683 static int hf_gsm_map_dialogue_userSpecificReason; /* NULL */
1684 static int hf_gsm_map_dialogue_userResourceLimitation; /* NULL */
1685 static int hf_gsm_map_dialogue_resourceUnavailable; /* ResourceUnavailableReason */
1686 static int hf_gsm_map_dialogue_applicationProcedureCancellation; /* ProcedureCancellationReason */
1687 static int hf_gsm_map_dialogue_map_ProviderAbortReason; /* MAP_ProviderAbortReason */
1689 /* --- Module DummyMAP --- --- --- */
1691 static int hf_gsm_old_invoke; /* Invoke */
1692 static int hf_gsm_old_returnResultLast; /* ReturnResult */
1693 static int hf_gsm_old_returnError; /* ReturnError */
1694 static int hf_gsm_old_reject; /* Reject */
1695 static int hf_gsm_old_returnResultNotLast; /* ReturnResult */
1696 static int hf_gsm_old_invokeID; /* InvokeIdType */
1697 static int hf_gsm_old_linkedID; /* InvokeIdType */
1698 static int hf_gsm_old_opCode; /* MAP_OPERATION */
1699 static int hf_gsm_old_invokeparameter; /* InvokeParameter */
1700 static int hf_gsm_old_resultretres; /* T_resultretres */
1701 static int hf_gsm_old_returnparameter; /* ReturnResultParameter */
1702 static int hf_gsm_old_errorCode; /* MAP_ERROR */
1703 static int hf_gsm_old_parameter; /* ReturnErrorParameter */
1704 static int hf_gsm_old_invokeIDRej; /* T_invokeIDRej */
1705 static int hf_gsm_old_derivable; /* InvokeIdType */
1706 static int hf_gsm_old_not_derivable; /* NULL */
1707 static int hf_gsm_old_problem; /* T_problem */
1708 static int hf_gsm_old_generalProblem; /* GeneralProblem */
1709 static int hf_gsm_old_invokeProblem; /* InvokeProblem */
1710 static int hf_gsm_old_returnResultProblem; /* ReturnResultProblem */
1711 static int hf_gsm_old_returnErrorProblem; /* ReturnErrorProblem */
1712 static int hf_gsm_old_localValue; /* OperationLocalvalue */
1713 static int hf_gsm_old_globalValue; /* OBJECT_IDENTIFIER */
1714 static int hf_gsm_old_localValue_01; /* LocalErrorcode */
1715 static int hf_gsm_old_protocolId; /* ProtocolId */
1716 static int hf_gsm_old_signalInfo; /* SignalInfo */
1717 static int hf_gsm_old_extensionContainer; /* ExtensionContainer */
1718 static int hf_gsm_old_gsm_BearerCapability; /* ExternalSignalInfo */
1719 static int hf_gsm_old_isdn_BearerCapability; /* ExternalSignalInfo */
1720 static int hf_gsm_old_call_Direction; /* CallDirection */
1721 static int hf_gsm_old_b_Subscriber_Address; /* ISDN_AddressString */
1722 static int hf_gsm_old_chosenChannel; /* ExternalSignalInfo */
1723 static int hf_gsm_old_lowerLayerCompatibility; /* ExternalSignalInfo */
1724 static int hf_gsm_old_highLayerCompatibility; /* ExternalSignalInfo */
1725 static int hf_gsm_old_sIWFSNumber; /* ISDN_AddressString */
1726 static int hf_gsm_old_imsi; /* IMSI */
1727 static int hf_gsm_old_vlr_Number; /* ISDN_AddressString */
1728 static int hf_gsm_old_targetCellId; /* GlobalCellId */
1729 static int hf_gsm_old_ho_NumberNotRequired; /* NULL */
1730 static int hf_gsm_old_bss_APDU; /* Bss_APDU */
1731 static int hf_gsm_old_handoverNumber; /* ISDN_AddressString */
1732 static int hf_gsm_old_SendAuthenticationInfoResOld_item; /* SendAuthenticationInfoResOld_item */
1733 static int hf_gsm_old_rand; /* RAND */
1734 static int hf_gsm_old_sres; /* SRES */
1735 static int hf_gsm_old_kc; /* Kc */
1736 static int hf_gsm_old_tripletList; /* TripletListold */
1737 static int hf_gsm_old_TripletListold_item; /* AuthenticationTriplet_v2 */
1738 static int hf_gsm_old_channelType; /* ExternalSignalInfo */
1739 static int hf_gsm_old_securityHeader; /* SecurityHeader */
1740 static int hf_gsm_old_protectedPayload; /* ProtectedPayload */
1741 static int hf_gsm_old_securityParametersIndex; /* SecurityParametersIndex */
1742 static int hf_gsm_old_originalComponentIdentifier; /* OriginalComponentIdentifier */
1743 static int hf_gsm_old_initialisationVector; /* InitialisationVector */
1744 static int hf_gsm_old_operationCode; /* OperationCode */
1745 static int hf_gsm_old_errorCode_01; /* ErrorCode */
1746 static int hf_gsm_old_userInfo; /* NULL */
1747 static int hf_gsm_old_localValue_02; /* INTEGER */
1748 static int hf_gsm_old_msisdn; /* ISDN_AddressString */
1749 static int hf_gsm_old_category; /* Category */
1750 static int hf_gsm_old_basicService; /* BasicServiceCode */
1751 static int hf_gsm_old_operatorSS_Code; /* T_operatorSS_Code */
1752 static int hf_gsm_old_operatorSS_Code_item; /* OCTET_STRING_SIZE_1 */
1753 static int hf_gsm_old_sm_RP_DA; /* SM_RP_DAold */
1754 static int hf_gsm_old_sm_RP_OA; /* SM_RP_OAold */
1755 static int hf_gsm_old_sm_RP_UI; /* SignalInfo */
1756 static int hf_gsm_old_moreMessagesToSend; /* NULL */
1757 static int hf_gsm_old_imsi_01; /* T_imsi */
1758 static int hf_gsm_old_lmsi; /* T_lmsi */
1759 static int hf_gsm_old_serviceCentreAddressDA; /* T_serviceCentreAddressDA */
1760 static int hf_gsm_old_noSM_RP_DA; /* T_noSM_RP_DA */
1761 static int hf_gsm_old_msisdn_01; /* T_msisdn */
1762 static int hf_gsm_old_serviceCentreAddressOA; /* T_serviceCentreAddressOA */
1763 static int hf_gsm_old_noSM_RP_OA; /* T_noSM_RP_OA */
1764 static int hf_gsm_old_cug_CheckInfo; /* CUG_CheckInfo */
1765 static int hf_gsm_old_numberOfForwarding; /* NumberOfForwarding */
1766 static int hf_gsm_old_networkSignalInfo; /* ExternalSignalInfo */
1767 static int hf_gsm_old_routingInfo; /* RoutingInfo */
1768 static int hf_gsm_old_originatingEntityNumber; /* ISDN_AddressString */
1769 static int hf_gsm_old_msisdn_02; /* AddressString */
1770 static int hf_gsm_old_sm_RP_PRI; /* BOOLEAN */
1771 static int hf_gsm_old_serviceCentreAddress; /* AddressString */
1772 static int hf_gsm_old_cug_Interlock; /* CUG_Interlock */
1773 static int hf_gsm_old_teleserviceCode; /* TeleserviceCode */
1774 static int hf_gsm_old_locationInfoWithLMSI; /* LocationInfoWithLMSIv2 */
1775 static int hf_gsm_old_mwd_Set; /* BOOLEAN */
1776 static int hf_gsm_old_locationInfo; /* LocationInfo */
1777 static int hf_gsm_old_lmsi_01; /* LMSI */
1778 static int hf_gsm_old_roamingNumber; /* ISDN_AddressString */
1779 static int hf_gsm_old_msc_Number; /* ISDN_AddressString */
1780 static int hf_gsm_old_subscriberId; /* SubscriberId */
1781 static int hf_gsm_old_requestParameterList; /* RequestParameterList */
1782 static int hf_gsm_old_RequestParameterList_item; /* RequestParameter */
1783 static int hf_gsm_old_authenticationSet; /* AuthenticationSetListOld */
1784 static int hf_gsm_old_subscriberData; /* SubscriberData */
1785 static int hf_gsm_old_ki; /* Ki */
1786 static int hf_gsm_old_tripletList_01; /* TripletList */
1787 static int hf_gsm_old_quintupletList; /* QuintupletList */
1788 static int hf_gsm_old_SentParameterList_item; /* SentParameter */
1789 static int hf_gsm_old_networkResource; /* NetworkResource */
1790 static int hf_gsm_old_hlr_Number; /* ISDN_AddressString */
1791 static int hf_gsm_old_hlr_List; /* HLR_List */
1793 /* --- Module SS-DataTypes --- --- --- */
1795 static int hf_gsm_ss_ss_Code; /* SS_Code */
1796 static int hf_gsm_ss_ss_Status; /* SS_Status */
1797 static int hf_gsm_ss_ss_Notification; /* SS_Notification */
1798 static int hf_gsm_ss_callIsWaiting_Indicator; /* NULL */
1799 static int hf_gsm_ss_callOnHold_Indicator; /* CallOnHold_Indicator */
1800 static int hf_gsm_ss_mpty_Indicator; /* NULL */
1801 static int hf_gsm_ss_cug_Index; /* CUG_Index */
1802 static int hf_gsm_ss_clirSuppressionRejected; /* NULL */
1803 static int hf_gsm_ss_ect_Indicator; /* ECT_Indicator */
1804 static int hf_gsm_ss_nameIndicator; /* NameIndicator */
1805 static int hf_gsm_ss_ccbs_Feature; /* CCBS_Feature */
1806 static int hf_gsm_ss_alertingPattern; /* AlertingPattern */
1807 static int hf_gsm_ss_multicall_Indicator; /* Multicall_Indicator */
1808 static int hf_gsm_ss_chargingInformation; /* ChargingInformation */
1809 static int hf_gsm_ss_e1; /* E1 */
1810 static int hf_gsm_ss_e2; /* E2 */
1811 static int hf_gsm_ss_e3; /* E3 */
1812 static int hf_gsm_ss_e4; /* E4 */
1813 static int hf_gsm_ss_e5; /* E5 */
1814 static int hf_gsm_ss_e6; /* E6 */
1815 static int hf_gsm_ss_e7; /* E7 */
1816 static int hf_gsm_ss_suppressPrefCUG; /* NULL */
1817 static int hf_gsm_ss_suppressOA; /* NULL */
1818 static int hf_gsm_ss_ect_CallState; /* ECT_CallState */
1819 static int hf_gsm_ss_rdn; /* RDN */
1820 static int hf_gsm_ss_callingName; /* Name */
1821 static int hf_gsm_ss_namePresentationAllowed; /* NameSet */
1822 static int hf_gsm_ss_presentationRestricted; /* NULL */
1823 static int hf_gsm_ss_nameUnavailable; /* NULL */
1824 static int hf_gsm_ss_namePresentationRestricted; /* NameSet */
1825 static int hf_gsm_ss_dataCodingScheme; /* USSD_DataCodingScheme */
1826 static int hf_gsm_ss_lengthInCharacters; /* INTEGER */
1827 static int hf_gsm_ss_nameString; /* USSD_String */
1828 static int hf_gsm_ss_presentationAllowedAddress; /* RemotePartyNumber */
1829 static int hf_gsm_ss_numberNotAvailableDueToInterworking; /* NULL */
1830 static int hf_gsm_ss_presentationRestrictedAddress; /* RemotePartyNumber */
1831 static int hf_gsm_ss_partyNumber; /* ISDN_AddressString */
1832 static int hf_gsm_ss_partyNumberSubaddress; /* ISDN_SubaddressString */
1833 static int hf_gsm_ss_deflectedToNumber; /* AddressString */
1834 static int hf_gsm_ss_deflectedToSubaddress; /* ISDN_SubaddressString */
1835 static int hf_gsm_ss_uUS_Service; /* UUS_Service */
1836 static int hf_gsm_ss_uUS_Required; /* BOOLEAN */
1837 static int hf_gsm_ss_notificationType; /* NotificationToMSUser */
1838 static int hf_gsm_ss_locationType; /* LocationType */
1839 static int hf_gsm_ss_lcsClientExternalID; /* LCSClientExternalID */
1840 static int hf_gsm_ss_lcsClientName; /* LCSClientName */
1841 static int hf_gsm_ss_lcsRequestorID; /* LCSRequestorID */
1842 static int hf_gsm_ss_lcsCodeword; /* LCSCodeword */
1843 static int hf_gsm_ss_lcsServiceTypeID; /* LCSServiceTypeID */
1844 static int hf_gsm_ss_deferredLocationExt; /* DeferredLocationExt */
1845 static int hf_gsm_ss_verificationResponse; /* VerificationResponse */
1846 static int hf_gsm_ss_molr_Type; /* MOLR_Type */
1847 static int hf_gsm_ss_locationMethod; /* LocationMethod */
1848 static int hf_gsm_ss_lcs_QoS; /* LCS_QoS */
1849 static int hf_gsm_ss_mlc_Number; /* ISDN_AddressString */
1850 static int hf_gsm_ss_gpsAssistanceData; /* GPSAssistanceData */
1851 static int hf_gsm_ss_supportedGADShapes; /* SupportedGADShapes */
1852 static int hf_gsm_ss_ageOfLocationInfo; /* AgeOfLocationInformation */
1853 static int hf_gsm_ss_pseudonymIndicator; /* NULL */
1854 static int hf_gsm_ss_h_gmlc_address; /* GSN_Address */
1855 static int hf_gsm_ss_locationEstimate; /* Ext_GeographicalInformation */
1856 static int hf_gsm_ss_velocityEstimate; /* VelocityEstimate */
1857 static int hf_gsm_ss_referenceNumber; /* LCS_ReferenceNumber */
1858 static int hf_gsm_ss_periodicLDRInfo; /* PeriodicLDRInfo */
1859 static int hf_gsm_ss_locationUpdateRequest; /* NULL */
1860 static int hf_gsm_ss_sequenceNumber; /* SequenceNumber */
1861 static int hf_gsm_ss_terminationCause; /* TerminationCause */
1862 static int hf_gsm_ss_mo_lrShortCircuit; /* NULL */
1863 static int hf_gsm_ss_ganssAssistanceData; /* GANSSAssistanceData */
1864 static int hf_gsm_ss_multiplePositioningProtocolPDUs; /* MultiplePositioningProtocolPDUs */
1865 static int hf_gsm_ss_locationInfo; /* Location_Info */
1866 static int hf_gsm_ss_MultiplePositioningProtocolPDUs_item; /* PositioningProtocolPDU */
1867 static int hf_gsm_ss_decipheringKeys; /* DecipheringKeys */
1868 static int hf_gsm_ss_add_LocationEstimate; /* Add_GeographicalInformation */
1869 static int hf_gsm_ss_reportingPLMNList; /* ReportingPLMNList */
1870 static int hf_gsm_ss_deferredLocationEventType; /* DeferredLocationEventType */
1871 static int hf_gsm_ss_areaEventInfo; /* AreaEventInfo */
1872 static int hf_gsm_ss_qoS; /* LCS_QoS */
1873 static int hf_gsm_ss_periodicLocation; /* PeriodicLocation */
1874 static int hf_gsm_ss_areaEventReporting; /* AreaEventReporting */
1875 static int hf_gsm_ss_motionEventReporting; /* MotionEventReporting */
1876 static int hf_gsm_ss_areaList; /* AreaList */
1877 static int hf_gsm_ss_occurrenceInfo; /* OccurrenceInfo */
1878 static int hf_gsm_ss_intervalTime; /* IntervalTime */
1879 static int hf_gsm_ss_maximumInterval; /* MaximumInterval */
1880 static int hf_gsm_ss_samplingInterval; /* SamplingInterval */
1881 static int hf_gsm_ss_duration; /* Duration */
1882 static int hf_gsm_ss_AreaList_item; /* Area */
1883 static int hf_gsm_ss_areaType; /* AreaType */
1884 static int hf_gsm_ss_areaIdentification; /* AreaIdentification */
1885 static int hf_gsm_ss_linearDistance; /* LinearDistance */
1886 /* named bits */
1887 static int hf_gsm_ss_DeferredLocationExt_motionEvent;
1888 static int hf_gsm_ss_Location_Info_locationEstimate;
1890 /* --- Module EricssonMAP --- --- --- */
1892 static int hf_gsm_map_ericsson_imei; /* IMEI */
1893 static int hf_gsm_map_ericsson_requestedEquipmentInfo; /* RequestedEquipmentInfo */
1894 static int hf_gsm_map_ericsson_imsi; /* IMSI */
1895 static int hf_gsm_map_ericsson_locationInformation; /* T_locationInformation */
1896 static int hf_gsm_map_ericsson_extensionContainer; /* ExtensionContainer */
1897 static int hf_gsm_map_ericsson_isdArgType; /* IsdArgType */
1898 static int hf_gsm_map_ericsson_isdResType; /* IsdResType */
1899 static int hf_gsm_map_ericsson_dsdArgType; /* DsdArgType */
1900 static int hf_gsm_map_ericsson_sriArgType; /* SRIArgType */
1901 static int hf_gsm_map_ericsson_sriResType; /* SRIResType */
1902 static int hf_gsm_map_ericsson_prnArgType; /* PrnArgType */
1903 static int hf_gsm_map_ericsson_ulArgType; /* UlArgType */
1904 static int hf_gsm_map_ericsson_rdArgType; /* RdArgType */
1905 static int hf_gsm_map_ericsson_saiArgType; /* SaiArgType */
1906 static int hf_gsm_map_ericsson_saiResType; /* SaiResType */
1907 static int hf_gsm_map_ericsson_atiArgType; /* AtiArgType */
1908 static int hf_gsm_map_ericsson_atiResType; /* AtiResType */
1909 static int hf_gsm_map_ericsson_extAtiArgType; /* ExtAtiArgType */
1910 static int hf_gsm_map_ericsson_IsdArgType_item; /* IsdArgData */
1911 static int hf_gsm_map_ericsson_privateFeatureCode; /* PrivateFeatureCode */
1912 static int hf_gsm_map_ericsson_privateFeatureData; /* PrivateFeatureData */
1913 static int hf_gsm_map_ericsson_subscriptionTypeInfo; /* SubscriptionTypeInfo */
1914 static int hf_gsm_map_ericsson_oickInfo; /* OickInfo */
1915 static int hf_gsm_map_ericsson_ss_Status; /* Ext_SS_Status */
1916 static int hf_gsm_map_ericsson_inCategoryKey; /* INCategoryKey */
1917 static int hf_gsm_map_ericsson_subscriptionType; /* SubscriptionType */
1918 static int hf_gsm_map_ericsson_IsdResType_item; /* IsdResData */
1919 static int hf_gsm_map_ericsson_supportedPrivateFeature; /* PrivateFeatureCode */
1920 static int hf_gsm_map_ericsson_DsdArgType_item; /* DsdArgData */
1921 static int hf_gsm_map_ericsson_privateFeatureWithdraw; /* PrivateFeatureCode */
1922 static int hf_gsm_map_ericsson_SRIArgType_item; /* SriArgData */
1923 static int hf_gsm_map_ericsson_extraNetworkInfo; /* ExtraSignalInfo */
1924 static int hf_gsm_map_ericsson_SRIResType_item; /* SriResData */
1925 static int hf_gsm_map_ericsson_PrnArgType_item; /* PrnArgData */
1926 static int hf_gsm_map_ericsson_UlArgType_item; /* UlArgData */
1927 static int hf_gsm_map_ericsson_privateFeatureUlArgData; /* PrivateFeatureUlArgData */
1928 static int hf_gsm_map_ericsson_adc; /* IMEI */
1929 static int hf_gsm_map_ericsson_protocolId; /* ExtraProtocolId */
1930 static int hf_gsm_map_ericsson_signalInfo; /* SignalInfo */
1931 static int hf_gsm_map_ericsson_msisdn; /* NULL */
1932 static int hf_gsm_map_ericsson_noAuthenVectorsRequested; /* NULL */
1933 static int hf_gsm_map_ericsson_msIsdn; /* ISDN_AddressString */
1934 static int hf_gsm_map_ericsson_requestedInfoType; /* RequestedInfoType */
1935 static int hf_gsm_map_ericsson_toBeDecided; /* NULL */
1936 static int hf_gsm_map_ericsson_toBeDecidedOne; /* NULL */
1937 static int hf_gsm_map_ericsson_sgsnNumber; /* NULL */
1938 static int hf_gsm_map_ericsson_ExtAtiArgType_item; /* AtiArgData */
1940 /* --- Module NokiaMAP-Extensions --- --- --- */
1942 static int hf_NokiaMAP_Extensions_alsLineIndicator; /* NULL */
1943 static int hf_NokiaMAP_Extensions_routingCategory; /* RoutingCategory */
1944 static int hf_NokiaMAP_Extensions_serviceList; /* MAPserviceList */
1945 static int hf_NokiaMAP_Extensions_serv_info_list; /* ServiceListWithInfo */
1946 static int hf_NokiaMAP_Extensions_extRoutingCategory; /* ExtRoutingCategory */
1947 static int hf_NokiaMAP_Extensions_ownMSISDN; /* ISDN_AddressString */
1948 static int hf_NokiaMAP_Extensions_mwd_Set; /* NULL */
1949 static int hf_NokiaMAP_Extensions_ChargingAreaList_item; /* ChargingArea */
1950 static int hf_NokiaMAP_Extensions_chargingAreaList; /* ChargingAreaList */
1951 static int hf_NokiaMAP_Extensions_inTriggerKey; /* InTriggerKey */
1952 static int hf_NokiaMAP_Extensions_pnpIndex; /* PnpIndex */
1953 static int hf_NokiaMAP_Extensions_callRedirectionIndex; /* CallRedirectionIndex */
1954 static int hf_NokiaMAP_Extensions_regionalChargingData; /* RegionalChargingData */
1955 static int hf_NokiaMAP_Extensions_callForwardingOverride; /* NULL */
1956 static int hf_NokiaMAP_Extensions_in_Capability; /* NULL */
1957 static int hf_NokiaMAP_Extensions_callingCategory; /* CallingCategory */
1958 static int hf_NokiaMAP_Extensions_internalServiceIndicator; /* InternalServiceIndicator */
1959 static int hf_NokiaMAP_Extensions_srbtSupportIndicator; /* NULL */
1960 static int hf_NokiaMAP_Extensions_gmscSupportIndicator; /* NULL */
1961 static int hf_NokiaMAP_Extensions_protocolId; /* ExtraProtocolId */
1962 static int hf_NokiaMAP_Extensions_signalInfo; /* SignalInfo */
1963 static int hf_NokiaMAP_Extensions_cug_Interlock; /* CUG_Interlock */
1964 static int hf_NokiaMAP_Extensions_cug_OutgoingAccess; /* BOOLEAN */
1965 static int hf_NokiaMAP_Extensions_cug_CallInfo; /* CUG_CallInfo */
1966 static int hf_NokiaMAP_Extensions_vlrNumber; /* ISDN_AddressString */
1967 static int hf_NokiaMAP_Extensions_activeSs; /* ActiveSS_List */
1968 static int hf_NokiaMAP_Extensions_traceReference; /* TraceReference */
1969 static int hf_NokiaMAP_Extensions_traceType; /* TraceType */
1970 static int hf_NokiaMAP_Extensions_omc_Id; /* AddressString */
1971 static int hf_NokiaMAP_Extensions_hotBilling; /* BOOLEAN */
1972 static int hf_NokiaMAP_Extensions_cfoIsDone; /* BOOLEAN */
1973 static int hf_NokiaMAP_Extensions_cfInCug; /* BOOLEAN */
1974 static int hf_NokiaMAP_Extensions_basicService; /* BasicServiceCode */
1975 static int hf_NokiaMAP_Extensions_category; /* Category */
1976 static int hf_NokiaMAP_Extensions_nokia_CUG; /* Nokia_CUG_Data */
1977 static int hf_NokiaMAP_Extensions_noBarrings; /* NULL */
1978 static int hf_NokiaMAP_Extensions_odb_Data; /* ODB_Data */
1979 static int hf_NokiaMAP_Extensions_fraudData; /* FraudData */
1980 static int hf_NokiaMAP_Extensions_leaId; /* LeaId */
1981 static int hf_NokiaMAP_Extensions_olcmInfoTable; /* OlcmInfoTable */
1982 static int hf_NokiaMAP_Extensions_commonMSISDN; /* ISDN_AddressString */
1983 static int hf_NokiaMAP_Extensions_rgData; /* RgData */
1984 static int hf_NokiaMAP_Extensions_olcmTraceReference; /* OlcmTraceReference */
1985 static int hf_NokiaMAP_Extensions_noAnswerTimer; /* NoAnswerTimer */
1986 static int hf_NokiaMAP_Extensions_memberList; /* MemberList */
1987 static int hf_NokiaMAP_Extensions_alertingMethod; /* AlertingMethod */
1988 static int hf_NokiaMAP_Extensions_userType; /* UserType */
1989 static int hf_NokiaMAP_Extensions_divertedToNbr; /* ISDN_AddressString */
1990 static int hf_NokiaMAP_Extensions_memberOfSuppression; /* NULL */
1991 static int hf_NokiaMAP_Extensions_ringbacktone; /* NULL */
1992 static int hf_NokiaMAP_Extensions_MemberList_item; /* ISDN_AddressString */
1993 static int hf_NokiaMAP_Extensions_termination; /* OCTET_STRING_SIZE_1 */
1994 static int hf_NokiaMAP_Extensions_OlcmInfoTable_item; /* OlcmInfo */
1995 static int hf_NokiaMAP_Extensions_olcmActive; /* NULL */
1996 static int hf_NokiaMAP_Extensions_moc; /* FraudData */
1997 static int hf_NokiaMAP_Extensions_cf; /* FraudData */
1998 static int hf_NokiaMAP_Extensions_ct; /* FraudData */
1999 static int hf_NokiaMAP_Extensions_time; /* TimeLimit */
2000 static int hf_NokiaMAP_Extensions_timeAction; /* ActionType */
2001 static int hf_NokiaMAP_Extensions_maxCount; /* FraudMaxCount */
2002 static int hf_NokiaMAP_Extensions_maxCountAction; /* ActionType */
2003 static int hf_NokiaMAP_Extensions_serviceCode; /* MAPserviceCode */
2004 static int hf_NokiaMAP_Extensions_versionInfo; /* VersionInfo */
2005 static int hf_NokiaMAP_Extensions_in_key; /* INKey */
2006 static int hf_NokiaMAP_Extensions_fraudInfo; /* FraudInfo */
2007 static int hf_NokiaMAP_Extensions_ServiceListWithInfo_item; /* ServiceWithInfo */
2008 static int hf_NokiaMAP_Extensions_mobile_IN_key; /* MKey */
2009 static int hf_NokiaMAP_Extensions_sms_IN_key; /* SMSKey */
2010 static int hf_NokiaMAP_Extensions_mKeyVer; /* MKeyVer */
2011 static int hf_NokiaMAP_Extensions_mmScfAddress; /* ISDN_AddressString */
2012 static int hf_NokiaMAP_Extensions_mmTdpName; /* MmTdpName */
2013 static int hf_NokiaMAP_Extensions_serviceKey; /* ServiceKey */
2014 static int hf_NokiaMAP_Extensions_locupType; /* LocupType */
2015 static int hf_NokiaMAP_Extensions_mmSCPAddress; /* ISDN_AddressString */
2016 static int hf_NokiaMAP_Extensions_smsTdpName; /* SmsTdpName */
2017 static int hf_NokiaMAP_Extensions_mmsFlag; /* NULL */
2018 static int hf_NokiaMAP_Extensions_map_Opt; /* MapOptFields */
2019 static int hf_NokiaMAP_Extensions_codec_List; /* CodecListExt */
2020 static int hf_NokiaMAP_Extensions_selected_Codec; /* SelectedCodec */
2021 static int hf_NokiaMAP_Extensions_uma_access; /* NULL */
2022 static int hf_NokiaMAP_Extensions_uma_ip_address; /* OCTET_STRING_SIZE_5_17 */
2023 static int hf_NokiaMAP_Extensions_uma_ip_port_nb; /* IPPortNb */
2024 static int hf_NokiaMAP_Extensions_CodecListExt_item; /* CodecExt */
2025 static int hf_NokiaMAP_Extensions_codec; /* CodecExt */
2026 static int hf_NokiaMAP_Extensions_modes; /* Modes */
2027 static int hf_NokiaMAP_Extensions_imsi; /* IMSI */
2028 static int hf_NokiaMAP_Extensions_cfuSMSCounter; /* CfuSMSCounter */
2029 static int hf_NokiaMAP_Extensions_cfusmcfo; /* NULL */
2030 static int hf_NokiaMAP_Extensions_memberInterrogate; /* NULL */
2031 static int hf_NokiaMAP_Extensions_locationAreaCode; /* LocationAreaCode */
2032 static int hf_NokiaMAP_Extensions_cellId; /* CellGlobalIdOrServiceAreaIdFixedLength */
2033 static int hf_NokiaMAP_Extensions_lai; /* LAIFixedLength */
2034 static int hf_NokiaMAP_Extensions_sendImmResp; /* NULL */
2035 static int hf_NokiaMAP_Extensions_rejectCause; /* OCTET_STRING_SIZE_1 */
2036 static int hf_NokiaMAP_Extensions_senderMSISDN; /* ISDN_AddressString */
2037 static int hf_NokiaMAP_Extensions_access; /* Access */
2038 static int hf_NokiaMAP_Extensions_version; /* Version */
2039 static int hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item; /* Access */
2040 /* named bits */
2041 static int hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed;
2043 /* Initialize the subtree pointers */
2044 static int ett_gsm_map;
2045 static int ett_gsm_map_InvokeId;
2046 static int ett_gsm_map_InvokePDU;
2047 static int ett_gsm_map_ReturnResultPDU;
2048 static int ett_gsm_map_ReturnErrorPDU;
2049 static int ett_gsm_map_ReturnResult_result;
2050 static int ett_gsm_map_ReturnError_result;
2051 static int ett_gsm_map_GSMMAPPDU;
2052 static int ett_gsm_map_ext_qos_subscribed;
2053 static int ett_gsm_map_pdptypenumber;
2054 static int ett_gsm_map_RAIdentity;
2055 static int ett_gsm_map_LAIFixedLength;
2056 static int ett_gsm_map_isdn_address_string;
2057 static int ett_gsm_map_geo_desc;
2058 static int ett_gsm_map_LongSignalInfo;
2059 static int ett_gsm_map_RadioResourceInformation;
2060 static int ett_gsm_map_MSNetworkCapability;
2061 static int ett_gsm_map_MSRadioAccessCapability;
2062 static int ett_gsm_map_externalsignalinfo;
2063 static int ett_gsm_map_cbs_data_coding;
2064 static int ett_gsm_map_GlobalCellId;
2065 static int ett_gsm_map_GeographicalInformation;
2066 static int ett_gsm_map_apn_str;
2067 static int ett_gsm_map_LocationNumber;
2068 static int ett_gsm_map_ericsson_locationInformation;
2069 static int ett_gsm_map_extension_data;
2070 static int ett_gsm_map_tbcd_digits;
2071 static int ett_gsm_map_ussd_string;
2072 static int ett_gsm_map_ext2_qos_subscribed;
2073 static int ett_gsm_map_ext3_qos_subscribed;
2074 static int ett_gsm_map_e_utranCellGlobalIdentity;
2075 static int ett_gsm_map_TA_id;
2076 static int ett_gsm_map_GeodeticInformation;
2079 /* --- Module MAP-ExtensionDataTypes --- --- --- */
2081 static int ett_gsm_map_ExtensionContainer;
2082 static int ett_gsm_map_SLR_ArgExtensionContainer;
2083 static int ett_gsm_map_PrivateExtensionList;
2084 static int ett_gsm_map_PrivateExtension;
2085 static int ett_gsm_map_PCS_Extensions;
2086 static int ett_gsm_map_SLR_Arg_PCS_Extensions;
2088 /* --- Module MAP-CommonDataTypes --- --- --- */
2090 static int ett_gsm_map_ExternalSignalInfo;
2091 static int ett_gsm_map_Ext_ExternalSignalInfo;
2092 static int ett_gsm_map_AccessNetworkSignalInfo;
2093 static int ett_gsm_map_Identity;
2094 static int ett_gsm_map_IMSI_WithLMSI;
2095 static int ett_gsm_map_SubscriberId;
2096 static int ett_gsm_map_HLR_List;
2097 static int ett_gsm_map_NAEA_PreferredCI;
2098 static int ett_gsm_map_SubscriberIdentity;
2099 static int ett_gsm_map_LCSClientExternalID;
2100 static int ett_gsm_map_NetworkNodeDiameterAddress;
2101 static int ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI;
2102 static int ett_gsm_map_BasicServiceCode;
2103 static int ett_gsm_map_Ext_BasicServiceCode;
2104 static int ett_gsm_map_EMLPP_Info;
2105 static int ett_gsm_map_MC_SS_Info;
2107 /* --- Module MAP-SS-DataTypes --- --- --- */
2109 static int ett_gsm_map_ss_RegisterSS_Arg;
2110 static int ett_gsm_map_ss_SS_Info;
2111 static int ett_gsm_map_ss_ForwardingInfo;
2112 static int ett_gsm_map_ss_ForwardingFeatureList;
2113 static int ett_gsm_map_ss_ForwardingFeature;
2114 static int ett_gsm_map_ss_CallBarringInfo;
2115 static int ett_gsm_map_ss_CallBarringFeatureList;
2116 static int ett_gsm_map_ss_CallBarringFeature;
2117 static int ett_gsm_map_ss_SS_Data;
2118 static int ett_gsm_map_ss_SS_SubscriptionOption;
2119 static int ett_gsm_map_ss_SS_ForBS_Code;
2120 static int ett_gsm_map_ss_GenericServiceInfo;
2121 static int ett_gsm_map_ss_CCBS_FeatureList;
2122 static int ett_gsm_map_ss_CCBS_Feature;
2123 static int ett_gsm_map_ss_InterrogateSS_Res;
2124 static int ett_gsm_map_ss_USSD_Arg;
2125 static int ett_gsm_map_ss_USSD_Res;
2126 static int ett_gsm_map_ss_SS_List;
2127 static int ett_gsm_map_ss_BasicServiceGroupList;
2128 static int ett_gsm_map_ss_SS_InvocationNotificationArg;
2129 static int ett_gsm_map_ss_SS_InvocationNotificationRes;
2130 static int ett_gsm_map_ss_SS_EventSpecification;
2131 static int ett_gsm_map_ss_RegisterCC_EntryArg;
2132 static int ett_gsm_map_ss_CCBS_Data;
2133 static int ett_gsm_map_ss_ServiceIndicator;
2134 static int ett_gsm_map_ss_RegisterCC_EntryRes;
2135 static int ett_gsm_map_ss_EraseCC_EntryArg;
2136 static int ett_gsm_map_ss_EraseCC_EntryRes;
2138 /* --- Module MAP-ER-DataTypes --- --- --- */
2140 static int ett_gsm_map_er_RoamingNotAllowedParam;
2141 static int ett_gsm_map_er_CallBarredParam;
2142 static int ett_gsm_map_er_ExtensibleCallBarredParam;
2143 static int ett_gsm_map_er_CUG_RejectParam;
2144 static int ett_gsm_map_er_SS_IncompatibilityCause;
2145 static int ett_gsm_map_er_SM_DeliveryFailureCause;
2146 static int ett_gsm_map_er_AbsentSubscriberSM_Param;
2147 static int ett_gsm_map_er_SystemFailureParam;
2148 static int ett_gsm_map_er_ExtensibleSystemFailureParam;
2149 static int ett_gsm_map_er_DataMissingParam;
2150 static int ett_gsm_map_er_UnexpectedDataParam;
2151 static int ett_gsm_map_er_FacilityNotSupParam;
2152 static int ett_gsm_map_er_OR_NotAllowedParam;
2153 static int ett_gsm_map_er_UnknownSubscriberParam;
2154 static int ett_gsm_map_er_NumberChangedParam;
2155 static int ett_gsm_map_er_UnidentifiedSubParam;
2156 static int ett_gsm_map_er_IllegalSubscriberParam;
2157 static int ett_gsm_map_er_IllegalEquipmentParam;
2158 static int ett_gsm_map_er_BearerServNotProvParam;
2159 static int ett_gsm_map_er_TeleservNotProvParam;
2160 static int ett_gsm_map_er_TracingBufferFullParam;
2161 static int ett_gsm_map_er_NoRoamingNbParam;
2162 static int ett_gsm_map_er_AbsentSubscriberParam;
2163 static int ett_gsm_map_er_BusySubscriberParam;
2164 static int ett_gsm_map_er_NoSubscriberReplyParam;
2165 static int ett_gsm_map_er_ForwardingViolationParam;
2166 static int ett_gsm_map_er_ForwardingFailedParam;
2167 static int ett_gsm_map_er_ATI_NotAllowedParam;
2168 static int ett_gsm_map_er_ATSI_NotAllowedParam;
2169 static int ett_gsm_map_er_ATM_NotAllowedParam;
2170 static int ett_gsm_map_er_IllegalSS_OperationParam;
2171 static int ett_gsm_map_er_SS_NotAvailableParam;
2172 static int ett_gsm_map_er_SS_SubscriptionViolationParam;
2173 static int ett_gsm_map_er_InformationNotAvailableParam;
2174 static int ett_gsm_map_er_SubBusyForMT_SMS_Param;
2175 static int ett_gsm_map_er_MessageWaitListFullParam;
2176 static int ett_gsm_map_er_ResourceLimitationParam;
2177 static int ett_gsm_map_er_NoGroupCallNbParam;
2178 static int ett_gsm_map_er_IncompatibleTerminalParam;
2179 static int ett_gsm_map_er_ShortTermDenialParam;
2180 static int ett_gsm_map_er_LongTermDenialParam;
2181 static int ett_gsm_map_er_UnauthorizedRequestingNetwork_Param;
2182 static int ett_gsm_map_er_UnauthorizedLCSClient_Param;
2183 static int ett_gsm_map_er_PositionMethodFailure_Param;
2184 static int ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param;
2185 static int ett_gsm_map_er_MM_EventNotSupported_Param;
2186 static int ett_gsm_map_er_TargetCellOutsideGCA_Param;
2187 static int ett_gsm_map_er_OngoingGroupCallParam;
2189 /* --- Module MAP-SM-DataTypes --- --- --- */
2191 static int ett_gsm_map_sm_RoutingInfoForSM_Arg;
2192 static int ett_gsm_map_sm_RoutingInfoForSM_Res;
2193 static int ett_gsm_map_sm_IP_SM_GW_Guidance;
2194 static int ett_gsm_map_sm_LocationInfoWithLMSI;
2195 static int ett_gsm_map_sm_Additional_Number;
2196 static int ett_gsm_map_sm_MO_ForwardSM_Arg;
2197 static int ett_gsm_map_sm_MO_ForwardSM_Res;
2198 static int ett_gsm_map_sm_MT_ForwardSM_Arg;
2199 static int ett_gsm_map_sm_CorrelationID;
2200 static int ett_gsm_map_sm_MT_ForwardSM_Res;
2201 static int ett_gsm_map_sm_SM_RP_DA;
2202 static int ett_gsm_map_sm_SM_RP_OA;
2203 static int ett_gsm_map_sm_ReportSM_DeliveryStatusArg;
2204 static int ett_gsm_map_sm_ReportSM_DeliveryStatusRes;
2205 static int ett_gsm_map_sm_AlertServiceCentreArg;
2206 static int ett_gsm_map_sm_InformServiceCentreArg;
2207 static int ett_gsm_map_sm_MW_Status;
2208 static int ett_gsm_map_sm_ReadyForSM_Arg;
2209 static int ett_gsm_map_sm_ReadyForSM_Res;
2210 static int ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg;
2211 static int ett_gsm_map_sm_MT_ForwardSM_VGCS_Res;
2212 static int ett_gsm_map_sm_DispatcherList;
2213 static int ett_gsm_map_sm_AdditionalDispatcherList;
2215 /* --- Module MAP-OM-DataTypes --- --- --- */
2217 static int ett_gsm_map_om_ActivateTraceModeArg;
2218 static int ett_gsm_map_om_MDT_Configuration;
2219 static int ett_gsm_map_om_MDT_Allowed_PLMNId_List;
2220 static int ett_gsm_map_om_AreaScope;
2221 static int ett_gsm_map_om_CGI_List;
2222 static int ett_gsm_map_om_E_UTRAN_CGI_List;
2223 static int ett_gsm_map_om_RoutingAreaId_List;
2224 static int ett_gsm_map_om_LocationAreaId_List;
2225 static int ett_gsm_map_om_TrackingAreaId_List;
2226 static int ett_gsm_map_om_TraceDepthList;
2227 static int ett_gsm_map_om_TraceNE_TypeList;
2228 static int ett_gsm_map_om_TraceInterfaceList;
2229 static int ett_gsm_map_om_MSC_S_InterfaceList;
2230 static int ett_gsm_map_om_MGW_InterfaceList;
2231 static int ett_gsm_map_om_SGSN_InterfaceList;
2232 static int ett_gsm_map_om_GGSN_InterfaceList;
2233 static int ett_gsm_map_om_RNC_InterfaceList;
2234 static int ett_gsm_map_om_BMSC_InterfaceList;
2235 static int ett_gsm_map_om_MME_InterfaceList;
2236 static int ett_gsm_map_om_SGW_InterfaceList;
2237 static int ett_gsm_map_om_PGW_InterfaceList;
2238 static int ett_gsm_map_om_ENB_InterfaceList;
2239 static int ett_gsm_map_om_TraceEventList;
2240 static int ett_gsm_map_om_MSC_S_EventList;
2241 static int ett_gsm_map_om_MGW_EventList;
2242 static int ett_gsm_map_om_SGSN_EventList;
2243 static int ett_gsm_map_om_GGSN_EventList;
2244 static int ett_gsm_map_om_BMSC_EventList;
2245 static int ett_gsm_map_om_MME_EventList;
2246 static int ett_gsm_map_om_SGW_EventList;
2247 static int ett_gsm_map_om_PGW_EventList;
2248 static int ett_gsm_map_om_TracePropagationList;
2249 static int ett_gsm_map_om_ActivateTraceModeRes;
2250 static int ett_gsm_map_om_DeactivateTraceModeArg;
2251 static int ett_gsm_map_om_DeactivateTraceModeRes;
2253 /* --- Module MAP-MS-DataTypes --- --- --- */
2255 static int ett_gsm_map_ms_UpdateLocationArg;
2256 static int ett_gsm_map_ms_VLR_Capability;
2257 static int ett_gsm_map_ms_SupportedRAT_Types;
2258 static int ett_gsm_map_ms_SuperChargerInfo;
2259 static int ett_gsm_map_ms_SupportedLCS_CapabilitySets;
2260 static int ett_gsm_map_ms_UpdateLocationRes;
2261 static int ett_gsm_map_ms_ADD_Info;
2262 static int ett_gsm_map_ms_PagingArea;
2263 static int ett_gsm_map_ms_LocationArea;
2264 static int ett_gsm_map_ms_CancelLocationArg_U;
2265 static int ett_gsm_map_ms_CancelLocationRes;
2266 static int ett_gsm_map_ms_PurgeMS_Arg_U;
2267 static int ett_gsm_map_ms_PurgeMS_Res;
2268 static int ett_gsm_map_ms_SendIdentificationArg;
2269 static int ett_gsm_map_ms_SendIdentificationRes_U;
2270 static int ett_gsm_map_ms_AuthenticationSetList;
2271 static int ett_gsm_map_ms_TripletList;
2272 static int ett_gsm_map_ms_QuintupletList;
2273 static int ett_gsm_map_ms_AuthenticationTriplet;
2274 static int ett_gsm_map_ms_AuthenticationQuintuplet;
2275 static int ett_gsm_map_ms_CurrentSecurityContext;
2276 static int ett_gsm_map_ms_GSM_SecurityContextData;
2277 static int ett_gsm_map_ms_UMTS_SecurityContextData;
2278 static int ett_gsm_map_ms_AuthenticationFailureReportArg;
2279 static int ett_gsm_map_ms_AuthenticationFailureReportRes;
2280 static int ett_gsm_map_ms_UpdateGprsLocationArg;
2281 static int ett_gsm_map_ms_EPS_Info;
2282 static int ett_gsm_map_ms_PDN_GW_Update;
2283 static int ett_gsm_map_ms_ISR_Information;
2284 static int ett_gsm_map_ms_SGSN_Capability;
2285 static int ett_gsm_map_ms_SupportedFeatures;
2286 static int ett_gsm_map_ms_Ext_SupportedFeatures;
2287 static int ett_gsm_map_ms_UpdateGprsLocationRes;
2288 static int ett_gsm_map_ms_EPLMN_List;
2289 static int ett_gsm_map_ms_AdjacentPLMN_List;
2290 static int ett_gsm_map_ms_ForwardAccessSignalling_Arg_U;
2291 static int ett_gsm_map_ms_AllowedUMTS_Algorithms;
2292 static int ett_gsm_map_ms_PrepareHO_Arg_U;
2293 static int ett_gsm_map_ms_LCLS_Negotiation;
2294 static int ett_gsm_map_ms_LCLS_ConfigurationPreference;
2295 static int ett_gsm_map_ms_BSSMAP_ServiceHandoverList;
2296 static int ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo;
2297 static int ett_gsm_map_ms_RadioResourceList;
2298 static int ett_gsm_map_ms_RadioResource;
2299 static int ett_gsm_map_ms_PrepareHO_Res_U;
2300 static int ett_gsm_map_ms_SelectedUMTS_Algorithms;
2301 static int ett_gsm_map_ms_ChosenRadioResourceInformation;
2302 static int ett_gsm_map_ms_PrepareSubsequentHO_Arg_U;
2303 static int ett_gsm_map_ms_PrepareSubsequentHO_Res_U;
2304 static int ett_gsm_map_ms_ProcessAccessSignalling_Arg_U;
2305 static int ett_gsm_map_ms_AoIPCodecsList;
2306 static int ett_gsm_map_ms_SupportedCodecsList;
2307 static int ett_gsm_map_ms_CodecList;
2308 static int ett_gsm_map_ms_SendEndSignal_Arg_U;
2309 static int ett_gsm_map_ms_SendEndSignal_Res;
2310 static int ett_gsm_map_ms_RelocationNumberList;
2311 static int ett_gsm_map_ms_RelocationNumber;
2312 static int ett_gsm_map_ms_SendAuthenticationInfoArg;
2313 static int ett_gsm_map_ms_Re_synchronisationInfo;
2314 static int ett_gsm_map_ms_SendAuthenticationInfoRes_U;
2315 static int ett_gsm_map_ms_EPS_AuthenticationSetList;
2316 static int ett_gsm_map_ms_EPC_AV;
2317 static int ett_gsm_map_ms_CheckIMEI_Arg;
2318 static int ett_gsm_map_ms_CheckIMEI_Res;
2319 static int ett_gsm_map_ms_RequestedEquipmentInfo;
2320 static int ett_gsm_map_ms_UESBI_Iu;
2321 static int ett_gsm_map_ms_InsertSubscriberDataArg;
2322 static int ett_gsm_map_ms_EDRX_Cycle_Length_List;
2323 static int ett_gsm_map_ms_EDRX_Cycle_Length;
2324 static int ett_gsm_map_ms_Reset_Id_List;
2325 static int ett_gsm_map_ms_IMSI_GroupIdList;
2326 static int ett_gsm_map_ms_IMSI_GroupId;
2327 static int ett_gsm_map_ms_CSG_SubscriptionDataList;
2328 static int ett_gsm_map_ms_CSG_SubscriptionData;
2329 static int ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList;
2330 static int ett_gsm_map_ms_LIPA_AllowedAPNList;
2331 static int ett_gsm_map_ms_EPS_SubscriptionData;
2332 static int ett_gsm_map_ms_APN_ConfigurationProfile;
2333 static int ett_gsm_map_ms_EPS_DataList;
2334 static int ett_gsm_map_ms_APN_Configuration;
2335 static int ett_gsm_map_ms_EPS_QoS_Subscribed;
2336 static int ett_gsm_map_ms_AMBR;
2337 static int ett_gsm_map_ms_SpecificAPNInfoList;
2338 static int ett_gsm_map_ms_SpecificAPNInfo;
2339 static int ett_gsm_map_ms_Allocation_Retention_Priority;
2340 static int ett_gsm_map_ms_PDN_GW_Identity;
2341 static int ett_gsm_map_ms_WLAN_Offloadability;
2342 static int ett_gsm_map_ms_AccessRestrictionData;
2343 static int ett_gsm_map_ms_Ext_AccessRestrictionData;
2344 static int ett_gsm_map_ms_AdjacentAccessRestrictionDataList;
2345 static int ett_gsm_map_ms_AdjacentAccessRestrictionData;
2346 static int ett_gsm_map_ms_LCSInformation;
2347 static int ett_gsm_map_ms_GMLC_List;
2348 static int ett_gsm_map_ms_GPRSDataList;
2349 static int ett_gsm_map_ms_PDP_Context;
2350 static int ett_gsm_map_ms_GPRSSubscriptionData;
2351 static int ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo;
2352 static int ett_gsm_map_ms_GPRS_CSI;
2353 static int ett_gsm_map_ms_GPRS_CamelTDPDataList;
2354 static int ett_gsm_map_ms_GPRS_CamelTDPData;
2355 static int ett_gsm_map_ms_LSADataList;
2356 static int ett_gsm_map_ms_LSAData;
2357 static int ett_gsm_map_ms_LSAInformation;
2358 static int ett_gsm_map_ms_SubscriberData;
2359 static int ett_gsm_map_ms_BearerServiceList;
2360 static int ett_gsm_map_ms_TeleserviceList;
2361 static int ett_gsm_map_ms_ODB_Data;
2362 static int ett_gsm_map_ms_ODB_GeneralData;
2363 static int ett_gsm_map_ms_ODB_HPLMN_Data;
2364 static int ett_gsm_map_ms_Ext_SS_InfoList;
2365 static int ett_gsm_map_ms_Ext_SS_Info;
2366 static int ett_gsm_map_ms_Ext_ForwInfo;
2367 static int ett_gsm_map_ms_Ext_ForwFeatureList;
2368 static int ett_gsm_map_ms_Ext_ForwFeature;
2369 static int ett_gsm_map_ms_Ext_CallBarInfo;
2370 static int ett_gsm_map_ms_Ext_CallBarFeatureList;
2371 static int ett_gsm_map_ms_Ext_CallBarringFeature;
2372 static int ett_gsm_map_ms_CUG_Info;
2373 static int ett_gsm_map_ms_CUG_SubscriptionList;
2374 static int ett_gsm_map_ms_CUG_Subscription;
2375 static int ett_gsm_map_ms_CUG_FeatureList;
2376 static int ett_gsm_map_ms_Ext_BasicServiceGroupList;
2377 static int ett_gsm_map_ms_CUG_Feature;
2378 static int ett_gsm_map_ms_Ext_SS_Data;
2379 static int ett_gsm_map_ms_LCS_PrivacyExceptionList;
2380 static int ett_gsm_map_ms_LCS_PrivacyClass;
2381 static int ett_gsm_map_ms_ExternalClientList;
2382 static int ett_gsm_map_ms_PLMNClientList;
2383 static int ett_gsm_map_ms_Ext_ExternalClientList;
2384 static int ett_gsm_map_ms_ExternalClient;
2385 static int ett_gsm_map_ms_ServiceTypeList;
2386 static int ett_gsm_map_ms_ServiceType;
2387 static int ett_gsm_map_ms_MOLR_List;
2388 static int ett_gsm_map_ms_MOLR_Class;
2389 static int ett_gsm_map_ms_ZoneCodeList;
2390 static int ett_gsm_map_ms_InsertSubscriberDataRes;
2391 static int ett_gsm_map_ms_DeleteSubscriberDataArg;
2392 static int ett_gsm_map_ms_SpecificCSI_Withdraw;
2393 static int ett_gsm_map_ms_GPRSSubscriptionDataWithdraw;
2394 static int ett_gsm_map_ms_EPS_SubscriptionDataWithdraw;
2395 static int ett_gsm_map_ms_ContextIdList;
2396 static int ett_gsm_map_ms_LSAInformationWithdraw;
2397 static int ett_gsm_map_ms_LSAIdentityList;
2398 static int ett_gsm_map_ms_BasicServiceList;
2399 static int ett_gsm_map_ms_DeleteSubscriberDataRes;
2400 static int ett_gsm_map_ms_VlrCamelSubscriptionInfo;
2401 static int ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList;
2402 static int ett_gsm_map_ms_MT_smsCAMELTDP_Criteria;
2403 static int ett_gsm_map_ms_TPDU_TypeCriterion;
2404 static int ett_gsm_map_ms_D_CSI;
2405 static int ett_gsm_map_ms_DP_AnalysedInfoCriteriaList;
2406 static int ett_gsm_map_ms_DP_AnalysedInfoCriterium;
2407 static int ett_gsm_map_ms_SS_CSI;
2408 static int ett_gsm_map_ms_SS_CamelData;
2409 static int ett_gsm_map_ms_SS_EventList;
2410 static int ett_gsm_map_ms_O_CSI;
2411 static int ett_gsm_map_ms_O_BcsmCamelTDPDataList;
2412 static int ett_gsm_map_ms_O_BcsmCamelTDPData;
2413 static int ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList;
2414 static int ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList;
2415 static int ett_gsm_map_ms_O_BcsmCamelTDP_Criteria;
2416 static int ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria;
2417 static int ett_gsm_map_ms_DestinationNumberCriteria;
2418 static int ett_gsm_map_ms_DestinationNumberList;
2419 static int ett_gsm_map_ms_DestinationNumberLengthList;
2420 static int ett_gsm_map_ms_BasicServiceCriteria;
2421 static int ett_gsm_map_ms_O_CauseValueCriteria;
2422 static int ett_gsm_map_ms_T_CauseValueCriteria;
2423 static int ett_gsm_map_ms_SupportedCamelPhases;
2424 static int ett_gsm_map_ms_OfferedCamel4CSIs;
2425 static int ett_gsm_map_ms_OfferedCamel4Functionalities;
2426 static int ett_gsm_map_ms_SMS_CSI;
2427 static int ett_gsm_map_ms_SMS_CAMEL_TDP_DataList;
2428 static int ett_gsm_map_ms_SMS_CAMEL_TDP_Data;
2429 static int ett_gsm_map_ms_M_CSI;
2430 static int ett_gsm_map_ms_MG_CSI;
2431 static int ett_gsm_map_ms_MobilityTriggers;
2432 static int ett_gsm_map_ms_T_CSI;
2433 static int ett_gsm_map_ms_T_BcsmCamelTDPDataList;
2434 static int ett_gsm_map_ms_T_BcsmCamelTDPData;
2435 static int ett_gsm_map_ms_SendRoutingInfoForGprsArg;
2436 static int ett_gsm_map_ms_SendRoutingInfoForGprsRes;
2437 static int ett_gsm_map_ms_FailureReportArg;
2438 static int ett_gsm_map_ms_FailureReportRes;
2439 static int ett_gsm_map_ms_NoteMsPresentForGprsArg;
2440 static int ett_gsm_map_ms_NoteMsPresentForGprsRes;
2441 static int ett_gsm_map_ms_ResetArg;
2442 static int ett_gsm_map_ms_SendingNode_Number;
2443 static int ett_gsm_map_ms_RestoreDataArg;
2444 static int ett_gsm_map_ms_RestoreDataRes;
2445 static int ett_gsm_map_ms_VBSDataList;
2446 static int ett_gsm_map_ms_VGCSDataList;
2447 static int ett_gsm_map_ms_VoiceGroupCallData;
2448 static int ett_gsm_map_ms_AdditionalSubscriptions;
2449 static int ett_gsm_map_ms_VoiceBroadcastData;
2450 static int ett_gsm_map_ms_ProvideSubscriberInfoArg;
2451 static int ett_gsm_map_ms_ProvideSubscriberInfoRes;
2452 static int ett_gsm_map_ms_SubscriberInfo;
2453 static int ett_gsm_map_ms_MNPInfoRes;
2454 static int ett_gsm_map_ms_GPRSMSClass;
2455 static int ett_gsm_map_ms_RequestedInfo;
2456 static int ett_gsm_map_ms_RequestedNodes;
2457 static int ett_gsm_map_ms_LocationInformation;
2458 static int ett_gsm_map_ms_LocationInformationEPS;
2459 static int ett_gsm_map_ms_LocationInformationGPRS;
2460 static int ett_gsm_map_ms_LocationInformation5GS;
2461 static int ett_gsm_map_ms_UserCSGInformation;
2462 static int ett_gsm_map_ms_SubscriberState;
2463 static int ett_gsm_map_ms_PS_SubscriberState;
2464 static int ett_gsm_map_ms_PDP_ContextInfoList;
2465 static int ett_gsm_map_ms_PDP_ContextInfo;
2466 static int ett_gsm_map_ms_AnyTimeInterrogationArg;
2467 static int ett_gsm_map_ms_AnyTimeInterrogationRes;
2468 static int ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg;
2469 static int ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes;
2470 static int ett_gsm_map_ms_CallWaitingData;
2471 static int ett_gsm_map_ms_Ext_CwFeatureList;
2472 static int ett_gsm_map_ms_Ext_CwFeature;
2473 static int ett_gsm_map_ms_ClipData;
2474 static int ett_gsm_map_ms_ClirData;
2475 static int ett_gsm_map_ms_CallHoldData;
2476 static int ett_gsm_map_ms_EctData;
2477 static int ett_gsm_map_ms_RequestedSubscriptionInfo;
2478 static int ett_gsm_map_ms_MSISDN_BS_List;
2479 static int ett_gsm_map_ms_MSISDN_BS;
2480 static int ett_gsm_map_ms_CallForwardingData;
2481 static int ett_gsm_map_ms_CallBarringData;
2482 static int ett_gsm_map_ms_ODB_Info;
2483 static int ett_gsm_map_ms_CAMEL_SubscriptionInfo;
2484 static int ett_gsm_map_ms_AnyTimeModificationArg;
2485 static int ett_gsm_map_ms_ModificationRequestFor_CW_Info;
2486 static int ett_gsm_map_ms_ModificationRequestFor_CH_Info;
2487 static int ett_gsm_map_ms_ModificationRequestFor_ECT_Info;
2488 static int ett_gsm_map_ms_ModificationRequestFor_CLIR_Info;
2489 static int ett_gsm_map_ms_ModificationRequestFor_CLIP_Info;
2490 static int ett_gsm_map_ms_ModificationRequestFor_CSG;
2491 static int ett_gsm_map_ms_RequestedServingNode;
2492 static int ett_gsm_map_ms_ServingNode;
2493 static int ett_gsm_map_ms_AnyTimeModificationRes;
2494 static int ett_gsm_map_ms_ModificationRequestFor_CF_Info;
2495 static int ett_gsm_map_ms_ModificationRequestFor_CB_Info;
2496 static int ett_gsm_map_ms_ModificationRequestFor_ODB_data;
2497 static int ett_gsm_map_ms_ModificationRequestFor_CSI;
2498 static int ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data;
2499 static int ett_gsm_map_ms_NoteSubscriberDataModifiedArg;
2500 static int ett_gsm_map_ms_NoteSubscriberDataModifiedRes;
2501 static int ett_gsm_map_ms_NoteMM_EventArg;
2502 static int ett_gsm_map_ms_NoteMM_EventRes;
2503 static int ett_gsm_map_ms_Ext_SS_InfoFor_CSE;
2504 static int ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE;
2505 static int ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE;
2506 static int ett_gsm_map_ms_UpdateVcsgLocationArg;
2507 static int ett_gsm_map_ms_UpdateVcsgLocationRes;
2508 static int ett_gsm_map_ms_CancelVcsgLocationArg;
2509 static int ett_gsm_map_ms_CancelVcsgLocationRes;
2511 /* --- Module MAP-CH-DataTypes --- --- --- */
2513 static int ett_gsm_map_ch_CUG_CheckInfo;
2514 static int ett_gsm_map_ch_SendRoutingInfoArg;
2515 static int ett_gsm_map_ch_SuppressMTSS;
2516 static int ett_gsm_map_ch_SendRoutingInfoRes_U;
2517 static int ett_gsm_map_ch_AllowedServices;
2518 static int ett_gsm_map_ch_CCBS_Indicators;
2519 static int ett_gsm_map_ch_RoutingInfo;
2520 static int ett_gsm_map_ch_ForwardingData;
2521 static int ett_gsm_map_ch_ProvideRoamingNumberArg;
2522 static int ett_gsm_map_ch_ProvideRoamingNumberRes;
2523 static int ett_gsm_map_ch_ResumeCallHandlingArg;
2524 static int ett_gsm_map_ch_UU_Data;
2525 static int ett_gsm_map_ch_ResumeCallHandlingRes;
2526 static int ett_gsm_map_ch_CamelInfo;
2527 static int ett_gsm_map_ch_ExtendedRoutingInfo;
2528 static int ett_gsm_map_ch_CamelRoutingInfo;
2529 static int ett_gsm_map_ch_GmscCamelSubscriptionInfo;
2530 static int ett_gsm_map_ch_SetReportingStateArg;
2531 static int ett_gsm_map_ch_SetReportingStateRes;
2532 static int ett_gsm_map_ch_StatusReportArg;
2533 static int ett_gsm_map_ch_EventReportData;
2534 static int ett_gsm_map_ch_CallReportData;
2535 static int ett_gsm_map_ch_StatusReportRes;
2536 static int ett_gsm_map_ch_RemoteUserFreeArg;
2537 static int ett_gsm_map_ch_RemoteUserFreeRes;
2538 static int ett_gsm_map_ch_IST_AlertArg;
2539 static int ett_gsm_map_ch_IST_AlertRes;
2540 static int ett_gsm_map_ch_IST_CommandArg;
2541 static int ett_gsm_map_ch_IST_CommandRes;
2542 static int ett_gsm_map_ch_ReleaseResourcesArg;
2543 static int ett_gsm_map_ch_ReleaseResourcesRes;
2545 /* --- Module MAP-LCS-DataTypes --- --- --- */
2547 static int ett_gsm_map_lcs_RoutingInfoForLCS_Arg;
2548 static int ett_gsm_map_lcs_RoutingInfoForLCS_Res;
2549 static int ett_gsm_map_lcs_LCSLocationInfo;
2550 static int ett_gsm_map_lcs_ProvideSubscriberLocation_Arg;
2551 static int ett_gsm_map_lcs_LocationType;
2552 static int ett_gsm_map_lcs_DeferredLocationEventType;
2553 static int ett_gsm_map_lcs_LCS_ClientID;
2554 static int ett_gsm_map_lcs_LCSClientName;
2555 static int ett_gsm_map_lcs_LCSRequestorID;
2556 static int ett_gsm_map_lcs_LCS_QoS;
2557 static int ett_gsm_map_lcs_ResponseTime;
2558 static int ett_gsm_map_lcs_SupportedGADShapes;
2559 static int ett_gsm_map_lcs_LCSCodeword;
2560 static int ett_gsm_map_lcs_LCS_PrivacyCheck;
2561 static int ett_gsm_map_lcs_AreaEventInfo;
2562 static int ett_gsm_map_lcs_AreaDefinition;
2563 static int ett_gsm_map_lcs_AreaList;
2564 static int ett_gsm_map_lcs_Area;
2565 static int ett_gsm_map_lcs_PeriodicLDRInfo;
2566 static int ett_gsm_map_lcs_ReportingPLMNList;
2567 static int ett_gsm_map_lcs_PLMNList;
2568 static int ett_gsm_map_lcs_ReportingPLMN;
2569 static int ett_gsm_map_lcs_ProvideSubscriberLocation_Res;
2570 static int ett_gsm_map_lcs_SubscriberLocationReport_Arg;
2571 static int ett_gsm_map_lcs_Deferredmt_lrData;
2572 static int ett_gsm_map_lcs_ServingNodeAddress;
2573 static int ett_gsm_map_lcs_SubscriberLocationReport_Res;
2575 /* --- Module MAP-GR-DataTypes --- --- --- */
2577 static int ett_gsm_map_gr_PrepareGroupCallArg;
2578 static int ett_gsm_map_gr_PrepareGroupCallRes;
2579 static int ett_gsm_map_gr_SendGroupCallEndSignalArg;
2580 static int ett_gsm_map_gr_SendGroupCallEndSignalRes;
2581 static int ett_gsm_map_gr_ForwardGroupCallSignallingArg;
2582 static int ett_gsm_map_gr_ProcessGroupCallSignallingArg;
2583 static int ett_gsm_map_gr_StateAttributes;
2584 static int ett_gsm_map_gr_SendGroupCallInfoArg;
2585 static int ett_gsm_map_gr_SendGroupCallInfoRes;
2587 /* --- Module MAP-DialogueInformation --- --- --- */
2589 static int ett_gsm_map_dialogue_MAP_DialoguePDU;
2590 static int ett_gsm_map_dialogue_MAP_OpenInfo;
2591 static int ett_gsm_map_dialogue_MAP_AcceptInfo;
2592 static int ett_gsm_map_dialogue_MAP_CloseInfo;
2593 static int ett_gsm_map_dialogue_MAP_RefuseInfo;
2594 static int ett_gsm_map_dialogue_MAP_UserAbortInfo;
2595 static int ett_gsm_map_dialogue_MAP_UserAbortChoice;
2596 static int ett_gsm_map_dialogue_MAP_ProviderAbortInfo;
2598 /* --- Module MAP-LocationServiceOperations --- --- --- */
2601 /* --- Module MAP-Group-Call-Operations --- --- --- */
2604 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
2607 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
2610 /* --- Module MAP-CallHandlingOperations --- --- --- */
2613 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
2616 /* --- Module MAP-MobileServiceOperations --- --- --- */
2619 /* --- Module MAP-Errors --- --- --- */
2622 /* --- Module MAP-Protocol --- --- --- */
2625 /* --- Module DummyMAP --- --- --- */
2627 static int ett_gsm_old_Component;
2628 static int ett_gsm_old_Invoke;
2629 static int ett_gsm_old_ReturnResult;
2630 static int ett_gsm_old_T_resultretres;
2631 static int ett_gsm_old_ReturnError;
2632 static int ett_gsm_old_Reject;
2633 static int ett_gsm_old_T_invokeIDRej;
2634 static int ett_gsm_old_T_problem;
2635 static int ett_gsm_old_MAP_OPERATION;
2636 static int ett_gsm_old_MAP_ERROR;
2637 static int ett_gsm_old_Bss_APDU;
2638 static int ett_gsm_old_ProvideSIWFSNumberArg;
2639 static int ett_gsm_old_ProvideSIWFSNumberRes;
2640 static int ett_gsm_old_PurgeMSArgV2;
2641 static int ett_gsm_old_PrepareHO_ArgOld;
2642 static int ett_gsm_old_PrepareHO_ResOld;
2643 static int ett_gsm_old_SendAuthenticationInfoResOld;
2644 static int ett_gsm_old_SendAuthenticationInfoResOld_item;
2645 static int ett_gsm_old_SendIdentificationResV2;
2646 static int ett_gsm_old_TripletListold;
2647 static int ett_gsm_old_AuthenticationTriplet_v2;
2648 static int ett_gsm_old_SIWFSSignallingModifyArg;
2649 static int ett_gsm_old_SIWFSSignallingModifyRes;
2650 static int ett_gsm_old_SecureTransportArg;
2651 static int ett_gsm_old_SecureTransportErrorParam;
2652 static int ett_gsm_old_SecureTransportRes;
2653 static int ett_gsm_old_SecurityHeader;
2654 static int ett_gsm_old_OriginalComponentIdentifier;
2655 static int ett_gsm_old_OperationCode;
2656 static int ett_gsm_old_ErrorCode;
2657 static int ett_gsm_old_PlmnContainer_U;
2658 static int ett_gsm_old_T_operatorSS_Code;
2659 static int ett_gsm_old_ForwardSM_Arg;
2660 static int ett_gsm_old_SM_RP_DAold;
2661 static int ett_gsm_old_SM_RP_OAold;
2662 static int ett_gsm_old_SendRoutingInfoArgV2;
2663 static int ett_gsm_old_SendRoutingInfoResV2;
2664 static int ett_gsm_old_BeginSubscriberActivityArg;
2665 static int ett_gsm_old_RoutingInfoForSM_ArgV1;
2666 static int ett_gsm_old_RoutingInfoForSM_ResV2;
2667 static int ett_gsm_old_LocationInfoWithLMSIv2;
2668 static int ett_gsm_old_LocationInfo;
2669 static int ett_gsm_old_SendParametersArg;
2670 static int ett_gsm_old_RequestParameterList;
2671 static int ett_gsm_old_SentParameter;
2672 static int ett_gsm_old_AuthenticationSetListOld;
2673 static int ett_gsm_old_SentParameterList;
2674 static int ett_gsm_old_ResetArgV1;
2676 /* --- Module SS-DataTypes --- --- --- */
2678 static int ett_gsm_ss_NotifySS_Arg;
2679 static int ett_gsm_ss_ForwardChargeAdviceArg;
2680 static int ett_gsm_ss_ChargingInformation;
2681 static int ett_gsm_ss_ForwardCUG_InfoArg;
2682 static int ett_gsm_ss_ECT_Indicator;
2683 static int ett_gsm_ss_NameIndicator;
2684 static int ett_gsm_ss_Name;
2685 static int ett_gsm_ss_NameSet;
2686 static int ett_gsm_ss_RDN;
2687 static int ett_gsm_ss_RemotePartyNumber;
2688 static int ett_gsm_ss_AccessRegisterCCEntryArg;
2689 static int ett_gsm_ss_CallDeflectionArg;
2690 static int ett_gsm_ss_UserUserServiceArg;
2691 static int ett_gsm_ss_LocationNotificationArg;
2692 static int ett_gsm_ss_DeferredLocationExt;
2693 static int ett_gsm_ss_LocationNotificationRes;
2694 static int ett_gsm_ss_LCS_MOLRArg;
2695 static int ett_gsm_ss_MultiplePositioningProtocolPDUs;
2696 static int ett_gsm_ss_LCS_MOLRRes;
2697 static int ett_gsm_ss_LCS_AreaEventRequestArg;
2698 static int ett_gsm_ss_LCS_AreaEventReportArg;
2699 static int ett_gsm_ss_LCS_AreaEventCancellationArg;
2700 static int ett_gsm_ss_LCS_PeriodicLocationRequestArg;
2701 static int ett_gsm_ss_LCS_PeriodicLocationRequestRes;
2702 static int ett_gsm_ss_LCS_LocationUpdateArg;
2703 static int ett_gsm_ss_LCS_LocationUpdateRes;
2704 static int ett_gsm_ss_LCS_PeriodicLocationCancellationArg;
2705 static int ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg;
2706 static int ett_gsm_ss_PeriodicLocation;
2707 static int ett_gsm_ss_AreaEventReporting;
2708 static int ett_gsm_ss_AreaList;
2709 static int ett_gsm_ss_Area;
2710 static int ett_gsm_ss_Location_Info;
2711 static int ett_gsm_ss_MotionEventReporting;
2712 static int ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes;
2714 /* --- Module SS-Operations --- --- --- */
2717 /* --- Module EricssonMAP --- --- --- */
2719 static int ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg;
2720 static int ett_gsm_map_ericsson_ExtensionType;
2721 static int ett_gsm_map_ericsson_IsdArgType;
2722 static int ett_gsm_map_ericsson_IsdArgData;
2723 static int ett_gsm_map_ericsson_PrivateFeatureData;
2724 static int ett_gsm_map_ericsson_OickInfo;
2725 static int ett_gsm_map_ericsson_SubscriptionTypeInfo;
2726 static int ett_gsm_map_ericsson_IsdResType;
2727 static int ett_gsm_map_ericsson_IsdResData;
2728 static int ett_gsm_map_ericsson_DsdArgType;
2729 static int ett_gsm_map_ericsson_DsdArgData;
2730 static int ett_gsm_map_ericsson_SRIArgType;
2731 static int ett_gsm_map_ericsson_SriArgData;
2732 static int ett_gsm_map_ericsson_SRIResType;
2733 static int ett_gsm_map_ericsson_SriResData;
2734 static int ett_gsm_map_ericsson_PrnArgType;
2735 static int ett_gsm_map_ericsson_PrnArgData;
2736 static int ett_gsm_map_ericsson_UlArgType;
2737 static int ett_gsm_map_ericsson_UlArgData;
2738 static int ett_gsm_map_ericsson_PrivateFeatureUlArgData;
2739 static int ett_gsm_map_ericsson_ExtraSignalInfo_U;
2740 static int ett_gsm_map_ericsson_SaiArgType;
2741 static int ett_gsm_map_ericsson_SaiResType;
2742 static int ett_gsm_map_ericsson_AtiArgType;
2743 static int ett_gsm_map_ericsson_AtiResType;
2744 static int ett_gsm_map_ericsson_RdArgType;
2745 static int ett_gsm_map_ericsson_RequestedInfoType;
2746 static int ett_gsm_map_ericsson_ExtAtiArgType;
2747 static int ett_gsm_map_ericsson_AtiArgData;
2749 /* --- Module NokiaMAP-Extensions --- --- --- */
2751 static int ett_NokiaMAP_Extensions_IsdArgExt_U;
2752 static int ett_NokiaMAP_Extensions_DsdArgExt_U;
2753 static int ett_NokiaMAP_Extensions_UlResExt_U;
2754 static int ett_NokiaMAP_Extensions_ChargingAreaList;
2755 static int ett_NokiaMAP_Extensions_RegionalChargingData;
2756 static int ett_NokiaMAP_Extensions_SS_DataExtension_U;
2757 static int ett_NokiaMAP_Extensions_SriExtension_U;
2758 static int ett_NokiaMAP_Extensions_ExtraSignalInfo_U;
2759 static int ett_NokiaMAP_Extensions_Nokia_CUG_Data;
2760 static int ett_NokiaMAP_Extensions_SriResExtension_U;
2761 static int ett_NokiaMAP_Extensions_RgData;
2762 static int ett_NokiaMAP_Extensions_MemberList;
2763 static int ett_NokiaMAP_Extensions_CanLocArgExt_U;
2764 static int ett_NokiaMAP_Extensions_ATMargExt_U;
2765 static int ett_NokiaMAP_Extensions_OlcmInfoTable;
2766 static int ett_NokiaMAP_Extensions_OlcmInfo;
2767 static int ett_NokiaMAP_Extensions_ATMresExt_U;
2768 static int ett_NokiaMAP_Extensions_DTMargExt_U;
2769 static int ett_NokiaMAP_Extensions_FraudInfo;
2770 static int ett_NokiaMAP_Extensions_FraudData;
2771 static int ett_NokiaMAP_Extensions_ServiceWithInfo;
2772 static int ett_NokiaMAP_Extensions_ServiceListWithInfo;
2773 static int ett_NokiaMAP_Extensions_INKey;
2774 static int ett_NokiaMAP_Extensions_MKey;
2775 static int ett_NokiaMAP_Extensions_SMSKey;
2776 static int ett_NokiaMAP_Extensions_HO_Ext_U;
2777 static int ett_NokiaMAP_Extensions_CodecListExt;
2778 static int ett_NokiaMAP_Extensions_SelectedCodec;
2779 static int ett_NokiaMAP_Extensions_AbsentSubscriberExt_U;
2780 static int ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U;
2781 static int ett_NokiaMAP_Extensions_RoutingCategoryExt_U;
2782 static int ett_NokiaMAP_Extensions_SriForSMArgExt_U;
2783 static int ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U;
2784 static int ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U;
2785 static int ett_NokiaMAP_Extensions_UdlArgExt_U;
2786 static int ett_NokiaMAP_Extensions_RoamNotAllowedExt_U;
2787 static int ett_NokiaMAP_Extensions_AnyTimeModArgExt_U;
2788 static int ett_NokiaMAP_Extensions_AccessTypeExt;
2789 static int ett_NokiaMAP_Extensions_AccessSubscriptionListExt;
2790 static int ett_NokiaMAP_Extensions_AllowedServiceData;
2792 static expert_field ei_gsm_map_unknown_sequence3;
2793 static expert_field ei_gsm_map_unknown_sequence;
2794 static expert_field ei_gsm_map_unknown_parameter;
2795 static expert_field ei_gsm_map_unknown_invokeData;
2796 static expert_field ei_gsm_map_undecoded;
2798 static dissector_handle_t gsm_sms_handle; /* SMS TPDU */
2799 static dissector_handle_t ranap_handle;
2800 static dissector_handle_t dtap_handle;
2801 static dissector_handle_t map_handle;
2802 static dissector_handle_t bssap_handle;
2803 static dissector_table_t map_prop_arg_opcode_table; /* proprietary operation codes */
2804 static dissector_table_t map_prop_res_opcode_table; /* proprietary operation codes */
2805 static dissector_table_t map_prop_err_opcode_table; /* proprietary operation codes */
2806 /* Preference settings default */
2807 #define MAX_SSN 254
2808 static range_t *global_ssn_range;
2809 static bool pref_context_version_from_trace = true;
2810 static int pref_application_context_version = 3;
2811 static bool pref_ericsson_proprietary_ext;
2813 /* Global variables */
2814 static uint32_t opcode=0;
2815 static uint32_t errorCode;
2816 static int application_context_version;
2817 static unsigned ProtocolId;
2818 static unsigned AccessNetworkProtocolId;
2819 static int gsm_map_tap;
2820 static uint8_t gsmmap_pdu_type;
2821 static uint8_t gsm_map_pdu_size;
2823 #define SMS_ENCODING_NOT_SET 0
2824 #define SMS_ENCODING_7BIT 1
2825 #define SMS_ENCODING_8BIT 2
2826 #define SMS_ENCODING_UCS2 3
2827 #define SMS_ENCODING_7BIT_LANG 4
2828 #define SMS_ENCODING_UCS2_LANG 5
2830 static uint8_t sms_encoding;
2832 /* Forward declarations */
2833 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2834 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2835 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2836 const char* gsm_map_opr_code(uint32_t val, proto_item *item);
2838 typedef struct {
2839 struct tcap_private_t * tcap_private;
2840 sccp_msg_info_t *sccp_msg_info;
2841 tvbuff_t *signal_info_tvb;
2842 } gsm_map_private_info_t;
2844 typedef struct {
2845 wmem_tree_t *packets;
2846 } gsm_map_conv_info_t;
2848 static gsm_map_packet_info_t *gsm_map_get_packet_info(asn1_ctx_t *actx, bool store_conv_info)
2850 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);
2851 if (!gsm_map_pi) {
2852 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
2853 gsm_map_pi = wmem_new0(wmem_file_scope(), gsm_map_packet_info_t);
2854 p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_gsm_map, 0, gsm_map_pi);
2855 if (gsm_map_priv && gsm_map_priv->tcap_private) {
2856 gsm_map_pi->tcap_src_tid = gsm_map_priv->tcap_private->src_tid;
2857 if (store_conv_info) {
2858 conversation_t *conversation;
2859 gsm_map_conv_info_t *gsm_map_info;
2860 wmem_tree_key_t key[3];
2861 conversation = find_or_create_conversation(actx->pinfo);
2862 gsm_map_info = (gsm_map_conv_info_t *)conversation_get_proto_data(conversation, proto_gsm_map);
2863 if (!gsm_map_info) {
2864 gsm_map_info = wmem_new(wmem_file_scope(), gsm_map_conv_info_t);
2865 gsm_map_info->packets = wmem_tree_new(wmem_file_scope());
2866 conversation_add_proto_data(conversation, proto_gsm_map, gsm_map_info);
2868 key[0].length = 1;
2869 key[0].key = &gsm_map_priv->tcap_private->src_tid;
2870 key[1].length = 1;
2871 key[1].key = &actx->pinfo->num;
2872 key[2].length = 0;
2873 key[2].key = NULL;
2874 wmem_tree_insert32_array(gsm_map_info->packets, key, (void *)gsm_map_pi);
2878 return gsm_map_pi;
2881 static gsm_map_packet_info_t *gsm_map_get_matching_tcap_info(asn1_ctx_t *actx)
2883 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
2884 if (gsm_map_priv && gsm_map_priv->tcap_private) {
2885 conversation_t *conversation;
2886 gsm_map_conv_info_t *gsm_map_info;
2887 wmem_tree_key_t key[3];
2888 gsm_map_packet_info_t *gsm_map_pi;
2889 conversation = find_or_create_conversation(actx->pinfo);
2890 gsm_map_info = (gsm_map_conv_info_t *)conversation_get_proto_data(conversation, proto_gsm_map);
2891 if (!gsm_map_info) {
2892 gsm_map_info = wmem_new(wmem_file_scope(), gsm_map_conv_info_t);
2893 gsm_map_info->packets = wmem_tree_new(wmem_file_scope());
2894 conversation_add_proto_data(conversation, proto_gsm_map, gsm_map_info);
2896 key[0].length = 1;
2897 key[0].key = &gsm_map_priv->tcap_private->src_tid;
2898 key[1].length = 1;
2899 key[1].key = &actx->pinfo->num;
2900 key[2].length = 0;
2901 key[2].key = NULL;
2902 gsm_map_pi = (gsm_map_packet_info_t*)wmem_tree_lookup32_array_le(gsm_map_info->packets, key);
2903 if (gsm_map_pi && gsm_map_pi->tcap_src_tid == gsm_map_priv->tcap_private->src_tid)
2904 return gsm_map_pi;
2906 return NULL;
2909 /* Value strings */
2911 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
2912 { 0, "ETSI" },
2913 { 1, "IETF" },
2914 { 0, NULL }
2917 const value_string gsm_map_ietf_defined_pdp_vals[] = {
2918 { 0x21, "IPv4 Address" },
2919 { 0x57, "IPv6 Address" },
2920 { 0, NULL }
2923 const value_string gsm_map_etsi_defined_pdp_vals[] = {
2924 { 1, "PPP" },
2925 { 0, NULL }
2928 static const value_string gsm_map_tag_vals[] = {
2929 { 0x4, "Bearer Capability" },
2930 { 0, NULL }
2933 static const value_string gsm_map_disc_par_vals[] = {
2934 { 0, "Not Transparent" },
2935 { 1, "Transparent" },
2936 { 0, NULL }
2939 static const value_string gsm_map_ericsson_locationInformation_rat_vals[] = {
2940 { 0x0, "GSM" },
2941 { 0x1, "UMTS" },
2942 { 0x2, "LTE" },
2943 { 0xf, "No information" },
2944 { 0, NULL }
2948 /* returns value in kb/s */
2949 static unsigned
2950 gsm_map_calc_bitrate(uint8_t value){
2952 uint8_t granularity;
2953 unsigned returnvalue;
2955 if (value == 0xff)
2956 return 0;
2958 granularity = value >> 6;
2959 returnvalue = value & 0x7f;
2960 switch (granularity){
2961 case 0:
2962 break;
2963 case 1:
2964 returnvalue = ((returnvalue - 0x40) << 3)+64;
2965 break;
2966 case 2:
2967 returnvalue = (returnvalue << 6)+576;
2968 break;
2969 case 3:
2970 returnvalue = (returnvalue << 6)+576;
2971 break;
2973 return returnvalue;
2977 static void
2978 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
2979 int offset = 0;
2980 proto_tree *subtree;
2981 uint8_t octet;
2982 uint16_t value;
2984 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
2985 /* OCTET 1:
2986 Allocation/Retention Priority (This octet encodes each priority level defined in
2987 23.107 as the binary value of the priority level, declaration in 29.060)
2988 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
2989 6-13.
2991 /* Allocation/Retention Priority */
2992 proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
2993 offset++;
2995 /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
2997 /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
2998 proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
2999 /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
3000 proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, ENC_BIG_ENDIAN);
3001 /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
3002 proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, ENC_BIG_ENDIAN);
3003 offset++;
3005 /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
3006 octet = tvb_get_uint8(tvb,offset);
3007 switch (octet){
3008 case 0:
3009 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "Reserved");
3010 break;
3011 case 0x93:
3012 value = 1502;
3013 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3014 break;
3015 case 0x98:
3016 value = 1510;
3017 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3018 break;
3019 case 0x99:
3020 value = 1532;
3021 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3022 break;
3023 default:
3024 if (octet<0x97){
3025 value = octet * 10;
3026 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
3027 }else{
3028 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);
3031 offset++;
3033 /* Maximum bit rate for uplink, octet 8 */
3034 octet = tvb_get_uint8(tvb,offset);
3035 if (octet == 0 ){
3036 proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, octet, "Reserved" );
3037 }else{
3038 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3040 offset++;
3041 /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
3042 octet = tvb_get_uint8(tvb,offset);
3043 if (octet == 0 ){
3044 proto_tree_add_uint_format_value(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, octet, "Reserved" );
3045 }else{
3046 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3048 offset++;
3049 /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
3050 proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, ENC_BIG_ENDIAN);
3051 /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
3052 proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, ENC_BIG_ENDIAN);
3053 offset++;
3055 /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
3056 proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
3057 /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
3058 proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
3059 offset++;
3061 /* Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
3062 Coding is identical to that of Maximum bit rate for uplink.
3064 octet = tvb_get_uint8(tvb,offset);
3065 if (octet == 0 ){
3066 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");
3067 }else{
3068 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3070 offset++;
3072 /* Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
3073 Coding is identical to that of Maximum bit rate for uplink.
3075 octet = tvb_get_uint8(tvb,offset);
3076 if (octet == 0 ){
3077 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");
3078 }else{
3079 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
3085 Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3))
3086 -- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16.
3087 -- If Quality of Service information is structured with 14 octet length, then
3088 -- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14.
3092 static const true_false_string gsm_map_qos_signalling_ind_value = {
3093 "Optimised for signalling traffic",
3094 "Not optimised for signalling traffic"
3096 #if 0
3097 /* Helper function returning the main bitrates in kbps */
3098 static uint32_t
3099 qos_calc_bitrate(uint8_t oct)
3101 if (oct <= 0x3f)
3102 return oct;
3103 if (oct <= 0x7f)
3104 return 64 + (oct - 0x40) * 8;
3106 return 576 + (oct - 0x80) * 64;
3108 #endif
3109 /* Helper function returning the extended bitrates in kbps */
3110 static uint32_t
3111 qos_calc_ext_bitrate(uint8_t oct)
3113 if (oct <= 0x4a)
3114 return 8600 + oct * 100;
3115 if (oct <= 0xba)
3116 return 16000 + (oct - 0x4a) * 1000;
3118 return 128000 + (oct - 0xba) * 2000;
3120 #if 0
3121 static uint32_t
3122 qos_calc_ext2_bitrate(uint8_t oct)
3124 if (oct <= 0x3d)
3125 return (256 + oct * 4);
3126 if (oct <= 0xa1)
3127 return (500 + (oct - 0x3d) * 10);
3128 if (oct <= 0xf6)
3129 return (1500 + (oct - 0xa1) * 100);
3131 return 10000;
3133 #endif
3134 static void
3135 dissect_gsm_map_ext2_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) {
3137 int offset = 0;
3138 proto_tree *subtree;
3139 const char *str;
3140 uint8_t oct, tmp_oct;
3141 uint32_t temp32;
3142 int length = tvb_reported_length(tvb);
3144 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext2_qos_subscribed);
3146 /* Ocet 14 */
3147 oct = tvb_get_uint8(tvb, offset);
3148 proto_tree_add_bits_item(subtree, hf_gsm_map_spare_bits, tvb, (offset << 3), 3, ENC_BIG_ENDIAN);
3149 proto_tree_add_item(subtree, hf_gsm_map_qos_signalling_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
3151 tmp_oct = oct & 7;
3152 if (tmp_oct == 0x01)
3153 str = "speech";
3154 else
3155 str = "unknown";
3157 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_source_stat_desc, tvb,
3158 offset, 1, oct, "%s (%u)", str, tmp_oct);
3160 offset += 1;
3161 if (length == offset) {
3162 return;
3165 /* Octet 15 */
3166 oct = tvb_get_uint8(tvb, offset);
3168 if (oct == 0x00)
3169 str = "Use the value indicated by the Maximum bit rate for downlink";
3170 else
3172 temp32 = qos_calc_ext_bitrate(oct);
3173 if (temp32 % 1000 == 0)
3174 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3175 else
3176 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3178 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_bitrate_downl_ext, tvb,
3179 offset, 1, oct, "%s (%u)", str, oct);
3181 offset += 1;
3182 if (length == offset) {
3183 return;
3186 /* Octet 16 */
3187 oct = tvb_get_uint8(tvb, offset);
3189 if (oct == 0x00)
3190 str = "Use the value indicated by the Guaranteed bit rate for downlink";
3191 else
3193 temp32 = qos_calc_ext_bitrate(oct);
3194 if (temp32 % 1000 == 0)
3195 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3196 else
3197 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3199 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_guar_bitrate_downl_ext, tvb,
3200 offset, 1, oct, "%s (%u)", str, oct);
3205 Ext3-QoS-Subscribed ::= OCTET STRING (SIZE (1..2))
3206 -- Octets 1-2 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 17-18.
3209 static void
3210 dissect_gsm_map_ext3_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) {
3212 int offset = 0;
3213 proto_tree *subtree;
3214 const char *str;
3215 uint8_t oct;
3216 uint32_t temp32;
3217 int length = tvb_reported_length(tvb);
3219 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed);
3221 /* Maximum bit rate for uplink (extended) Octet 17 */
3222 oct = tvb_get_uint8(tvb, offset);
3224 if (oct == 0x00)
3225 str = "Use the value indicated by the Maximum bit rate for uplink";
3226 else
3228 temp32 = qos_calc_ext_bitrate(oct);
3229 if (temp32 % 1000 == 0)
3230 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3231 else
3232 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3234 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_bitrate_upl_ext, tvb,
3235 offset, 1, oct, "%s (%u)", str, oct);
3237 offset += 1;
3238 if (length == offset) {
3239 return;
3242 /* Guaranteed bit rate for uplink (extended) Octet 18 */
3243 oct = tvb_get_uint8(tvb, offset);
3245 if (oct == 0x00)
3246 str = "Use the value indicated by the Guaranteed bit rate for uplink";
3247 else
3249 temp32 = qos_calc_ext_bitrate(oct);
3250 if (temp32 % 1000 == 0)
3251 str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000);
3252 else
3253 str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32);
3255 proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_guar_bitrate_upl_ext, tvb,
3256 offset, 1, oct, "%s (%u)", str, oct);
3258 return;
3261 static void
3262 dissect_gsm_map_ext4_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) {
3263 int offset = 0;
3264 proto_tree *subtree;
3266 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed);
3268 proto_tree_add_item(subtree, hf_gsm_map_earp_pvi, tvb, offset, 1, ENC_BIG_ENDIAN);
3269 proto_tree_add_item(subtree, hf_gsm_map_earp_pl, tvb, offset, 1, ENC_BIG_ENDIAN);
3270 proto_tree_add_item(subtree, hf_gsm_map_earp_pci, tvb, offset, 1, ENC_BIG_ENDIAN);
3273 #define ELLIPSOID_POINT 0
3274 #define ELLIPSOID_POINT_WITH_UNCERT_CIRC 1
3275 #define ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3
3276 #define POLYGON 5
3277 #define ELLIPSOID_POINT_WITH_ALT 8
3278 #define ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9
3279 #define ELLIPSOID_ARC 10
3281 4 3 2 1
3282 0 0 0 0 Ellipsoid Point
3283 0 0 0 1 Ellipsoid point with uncertainty Circle
3284 0 0 1 1 Ellipsoid point with uncertainty Ellipse
3285 0 1 0 1 Polygon
3286 1 0 0 0 Ellipsoid point with altitude
3287 1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid
3288 1 0 1 0 Ellipsoid Arc
3289 other values reserved for future use
3292 /* TS 23 032 Table 2a: Coding of Type of Shape */
3293 #if 0
3294 static const value_string type_of_shape_vals[] = {
3295 { ELLIPSOID_POINT, "Ellipsoid Point"},
3296 { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"},
3297 { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"},
3298 { POLYGON, "Polygon"},
3299 { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"},
3300 { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
3301 { ELLIPSOID_ARC, "Ellipsoid Arc"},
3302 { 0, NULL }
3305 /* 3GPP TS 23.032 7.3.1 */
3306 static const value_string sign_of_latitude_vals[] = {
3307 { 0, "North"},
3308 { 1, "South"},
3309 { 0, NULL }
3312 static const value_string dir_of_alt_vals[] = {
3313 { 0, "Altitude expresses height"},
3314 { 1, "Altitude expresses depth"},
3315 { 0, NULL }
3317 #endif
3319 static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
3320 { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" },
3321 { 1, "Coding Group 1" },
3322 { 2, "Coding Group 2" },
3323 { 3, "Coding Group 3" },
3324 { 4, "General Data Coding indication" },
3325 { 5, "General Data Coding indication" },
3326 { 6, "General Data Coding indication" },
3327 { 7, "General Data Coding indication" },
3328 { 8, "Reserved" },
3329 { 9, "Message with User Data Header (UDH) structure" },
3330 { 10,"Reserved" },
3331 { 11,"Reserved" },
3332 { 12,"Reserved" },
3333 { 13,"Reserved" },
3334 { 14,"Defined by the WAP Forum" },
3335 { 15,"Data coding / message handling" },
3336 { 0, NULL}
3338 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);
3340 /* Coding group 0
3341 * Bits 3..0 indicate the language:
3343 static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
3344 { 0, "German"},
3345 { 1, "English"},
3346 { 2, "Italian"},
3347 { 3, "French"},
3348 { 4, "Spanish"},
3349 { 5, "Dutch"},
3350 { 6, "Swedish"},
3351 { 7, "Danish"},
3352 { 8, "Portuguese"},
3353 { 9, "Finnish"},
3354 { 10, "Norwegian"},
3355 { 11, "Greek"},
3356 { 12, "Turkish"},
3357 { 13, "Hungarian"},
3358 { 14, "Polish"},
3359 { 15, "Language unspecified"},
3360 { 0, NULL }
3362 static value_string_ext gsm_map_cbs_coding_grp0_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp0_lang_vals);
3364 static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
3365 { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
3366 { 1, "UCS2; message preceded by language indication"},
3367 { 2, "Reserved"},
3368 { 3, "Reserved"},
3369 { 4, "Reserved"},
3370 { 5, "Reserved"},
3371 { 6, "Reserved"},
3372 { 7, "Reserved"},
3373 { 8, "Reserved"},
3374 { 9, "Reserved"},
3375 { 10, "Reserved"},
3376 { 11, "Reserved"},
3377 { 12, "Reserved"},
3378 { 13, "Reserved"},
3379 { 14, "Reserved"},
3380 { 15, "Reserved"},
3381 { 0, NULL }
3383 static value_string_ext gsm_map_cbs_coding_grp1_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp1_lang_vals);
3385 static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
3386 { 0, "Czech"},
3387 { 1, "Hebrew"},
3388 { 2, "Arabic"},
3389 { 3, "Russian"},
3390 { 4, "Icelandic"},
3391 { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3392 { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3393 { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3394 { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3395 { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3396 { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3397 { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3398 { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3399 { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3400 { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3401 { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3402 { 0, NULL }
3404 static value_string_ext gsm_map_cbs_coding_grp2_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp2_lang_vals);
3406 static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
3407 { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3408 { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3409 { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3410 { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3411 { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3412 { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3413 { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3414 { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3415 { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3416 { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3417 { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3418 { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3419 { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3420 { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3421 { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3422 { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
3423 { 0, NULL }
3425 static value_string_ext gsm_map_cbs_coding_grp3_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp3_lang_vals);
3427 static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
3428 "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
3429 "The text is uncompressed"
3432 static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
3433 "Bits 1 to 0 have a message class meaning",
3434 "Bits 1 to 0 are reserved and have no message class meaning"
3437 /* Bits 3 and 2 indicate the character set being used, as follows: */
3439 static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
3440 { 0, "GSM 7 bit default alphabet"},
3441 { 1, "8 bit data"},
3442 { 2, "UCS2 (16 bit)"},
3443 { 3, "Reserved"},
3444 { 0, NULL }
3447 static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
3448 { 0, "Class 0"},
3449 { 1, "Class 1 Default meaning: ME-specific"},
3450 { 2, "Class 2 (U)SIM specific message"},
3451 { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
3452 { 0, NULL }
3455 static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
3456 { 0, "GSM 7 bit default alphabet"},
3457 { 1, "8 bit data"},
3458 { 0, NULL }
3461 static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
3462 { 0, "GSM 7 bit default alphabet"},
3463 { 1, "8 bit data"},
3464 { 0, NULL }
3468 /* 3GPP TS 23.038 version 7.0.0 Release 7 */
3469 uint8_t
3470 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, uint16_t offset)
3472 uint8_t octet;
3473 uint8_t coding_grp;
3474 uint8_t character_set;
3476 octet = tvb_get_uint8(tvb,offset);
3477 coding_grp = octet >>4;
3478 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
3480 sms_encoding = SMS_ENCODING_NOT_SET;
3481 switch (coding_grp){
3482 case 0:
3483 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3484 sms_encoding = SMS_ENCODING_7BIT;
3485 break;
3486 case 1:
3487 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3488 if ((octet & 0x0f)== 0){
3489 sms_encoding = SMS_ENCODING_7BIT_LANG;
3490 }else{
3491 sms_encoding = SMS_ENCODING_UCS2_LANG;
3493 break;
3494 case 2:
3495 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3496 sms_encoding = SMS_ENCODING_7BIT;
3497 break;
3498 case 3:
3499 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
3500 sms_encoding = SMS_ENCODING_7BIT;
3501 break;
3502 /* Coding_grp 01xx */
3503 case 4:
3504 /* FALLTHRU */
3505 case 5:
3506 /* FALLTHRU */
3507 case 6:
3508 /* FALLTHRU */
3509 case 7:
3510 /* FALLTHRU */
3511 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN);
3512 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
3513 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
3514 if ((octet & 0x10)== 0x10){
3515 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
3517 /* Bits 3 and 2 indicate the character set being used, */
3518 character_set = (octet&0x0c)>>2;
3519 switch (character_set){
3520 case 0:
3521 /* GSM 7 bit default alphabet */
3522 sms_encoding = SMS_ENCODING_7BIT;
3523 break;
3524 case 1:
3525 /* 8 bit data */
3526 sms_encoding = SMS_ENCODING_8BIT;
3527 break;
3528 case 2:
3529 /* UCS2 (16 bit) */
3530 sms_encoding = SMS_ENCODING_UCS2;
3531 break;
3532 case 3:
3533 /* Reserved */
3534 sms_encoding = SMS_ENCODING_NOT_SET;
3535 break;
3536 default:
3537 break;
3539 break;
3540 case 8:
3541 /* Reserved coding groups */
3542 break;
3543 case 9:
3544 /* Message with User Data Header (UDH) structure:*/
3545 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
3546 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
3547 character_set = (octet&0x0c)>>2;
3548 switch (character_set){
3549 case 0:
3550 /* GSM 7 bit default alphabet */
3551 sms_encoding = SMS_ENCODING_7BIT;
3552 break;
3553 case 1:
3554 /* 8 bit data */
3555 sms_encoding = SMS_ENCODING_8BIT;
3556 break;
3557 case 2:
3558 /* UCS2 (16 bit) */
3559 sms_encoding = SMS_ENCODING_UCS2;
3560 break;
3561 case 3:
3562 /* Reserved */
3563 sms_encoding = SMS_ENCODING_NOT_SET;
3564 break;
3565 default:
3566 break;
3568 break;
3569 case 10:
3570 /* FALLTHRU */
3571 case 11:
3572 /* FALLTHRU */
3573 case 12:
3574 /* FALLTHRU */
3575 case 13:
3576 /* FALLTHRU */
3577 /* 1010..1101 Reserved coding groups */
3578 break;
3579 case 14:
3580 /* Defined by the WAP Forum
3581 * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
3583 break;
3584 case 15:
3585 /* Data coding / message handling */
3586 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN);
3587 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN);
3588 character_set = (octet&0x04)>>2;
3589 if (character_set == 0){
3590 sms_encoding = SMS_ENCODING_7BIT;
3591 }else{
3592 sms_encoding = SMS_ENCODING_8BIT;
3594 break;
3595 default:
3596 break;
3599 return sms_encoding;
3601 void
3602 dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
3604 uint8_t octet;
3605 uint8_t na;
3606 uint8_t np;
3608 proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN);
3609 proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN);
3610 proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN);
3612 if(tvb_reported_length(tvb)==1)
3613 return;
3615 octet = tvb_get_uint8(tvb,0);
3616 /* nature of address indicator */
3617 na = (octet & 0x70)>>4;
3618 /* numbering plan indicator */
3619 np = octet & 0x0f;
3620 switch(np){
3621 case 1:
3622 /* ISDN/Telephony Numbering Plan (Rec ITU-T E.164) */
3623 switch(na){
3624 case 1:
3625 /* international number */
3626 dissect_e164_msisdn(tvb, tree, 1, tvb_reported_length(tvb)-1, E164_ENC_BCD);
3627 break;
3628 default:
3629 proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
3630 break;
3632 break;
3633 case 6:
3634 /* land mobile numbering plan (ITU-T Rec E.212) */
3635 dissect_e212_imsi(tvb, pinfo, tree, 1, tvb_reported_length(tvb)-1, false);
3636 break;
3637 default:
3638 proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN);
3639 break;
3645 /* --- Module MAP-SS-Code --- --- --- */
3650 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_) {
3651 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3652 NULL);
3654 return offset;
3658 /* --- Module MAP-BS-Code --- --- --- */
3662 static int
3663 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_) {
3664 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3665 NULL);
3667 return offset;
3672 static int
3673 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_) {
3674 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3675 NULL);
3677 return offset;
3681 /* --- Module MAP-TS-Code --- --- --- */
3685 static int
3686 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_) {
3687 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3688 NULL);
3690 return offset;
3695 static int
3696 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_) {
3697 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3698 NULL);
3700 return offset;
3704 /* --- Module MAP-ExtensionDataTypes --- --- --- */
3708 static int
3709 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_) {
3710 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
3712 actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? true : false;
3715 return offset;
3720 static int
3721 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_) {
3722 proto_tree *ext_tree;
3723 ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gsm_map_extension_data, NULL, "Extension Data");
3724 if (actx->external.direct_ref_present){
3725 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, ext_tree, NULL);
3726 }else{
3727 call_data_dissector(tvb, actx->pinfo, ext_tree);
3728 offset = tvb_reported_length_remaining(tvb,offset);
3732 return offset;
3736 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
3737 { &hf_gsm_map_extId , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
3738 { &hf_gsm_map_extType , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
3739 { NULL, 0, 0, 0, NULL }
3742 static int
3743 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_) {
3744 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3745 gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
3747 return offset;
3751 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
3752 { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
3755 static int
3756 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_) {
3757 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3758 gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
3760 return offset;
3764 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
3765 { NULL, 0, 0, 0, NULL }
3768 static int
3769 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_) {
3770 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3771 gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
3773 return offset;
3777 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
3778 { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
3779 { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
3780 { NULL, 0, 0, 0, NULL }
3784 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_) {
3785 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3786 gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
3788 return offset;
3793 static int
3794 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_) {
3795 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3797 return offset;
3801 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
3802 { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
3803 { NULL, 0, 0, 0, NULL }
3806 static int
3807 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_) {
3808 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3809 gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
3811 return offset;
3815 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
3816 { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
3817 { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
3818 { NULL, 0, 0, 0, NULL }
3821 static int
3822 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_) {
3823 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3824 gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
3826 return offset;
3830 /* --- Module MAP-CommonDataTypes --- --- --- */
3835 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_) {
3836 tvbuff_t *parameter_tvb;
3837 proto_tree *subtree;
3840 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3841 &parameter_tvb);
3844 if (!parameter_tvb)
3845 return offset;
3846 if(tvb_reported_length(parameter_tvb)==0)
3847 return offset;
3849 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_tbcd_digits);
3850 proto_tree_add_item(subtree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, ENC_KEYPAD_ABC_TBCD|ENC_LITTLE_ENDIAN);
3853 return offset;
3858 static int
3859 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_) {
3860 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3861 NULL);
3863 return offset;
3869 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_) {
3871 tvbuff_t *parameter_tvb;
3872 proto_tree *subtree;
3874 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3875 &parameter_tvb);
3878 if (!parameter_tvb)
3879 return offset;
3881 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
3882 dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree);
3883 if (!PINFO_FD_VISITED(actx->pinfo))
3884 actx->private_data = tvb_bytes_to_str(wmem_file_scope(), parameter_tvb, 0, tvb_captured_length(parameter_tvb));
3887 return offset;
3893 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_) {
3894 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
3896 return offset;
3901 static int
3902 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_) {
3903 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
3905 return offset;
3911 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_) {
3912 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3913 NULL);
3915 return offset;
3919 static const value_string gsm_map_ProtocolId_vals[] = {
3920 { 1, "gsm-0408" },
3921 { 2, "gsm-0806" },
3922 { 3, "gsm-BSSMAP" },
3923 { 4, "ets-300102-1" },
3924 { 0, NULL }
3928 static int
3929 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_) {
3930 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3931 &ProtocolId);
3933 return offset;
3938 static int
3939 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_) {
3940 tvbuff_t *parameter_tvb;
3941 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
3943 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3944 &parameter_tvb);
3946 if (gsm_map_priv)
3947 gsm_map_priv->signal_info_tvb = parameter_tvb;
3951 return offset;
3955 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
3956 { &hf_gsm_map_protocolId , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
3957 { &hf_gsm_map_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
3958 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3959 { NULL, 0, 0, 0, NULL }
3963 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_) {
3965 -- Information about the internal structure is given in
3966 -- clause 7.6.9.
3967 7.6.9.4 External Signal Information
3968 This parameter contains concatenated information elements (including tag and length) which are defined by a common
3969 protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via
3970 MAP interfaces
3972 uint8_t octet;
3973 uint8_t length;
3974 tvbuff_t *next_tvb;
3975 proto_tree *subtree;
3976 gsm_map_private_info_t *gsm_map_priv;
3978 ProtocolId = 0xffffffff;
3979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3980 gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
3982 gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
3983 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
3984 return offset;
3985 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
3986 switch (ProtocolId){
3987 case 1:
3988 /* gsm-0408 */
3989 /* As per comment abowe Individual IE:(s) will be found here in TLV format
3990 * Unfortunately a branch for each IE must be made to call the appropriate
3991 * function
3993 /* Get tag */
3994 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
3995 proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
3996 /* get length */
3997 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
3998 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
3999 /* Branch on tag */
4000 switch(octet){
4001 case 4:
4002 /* Dissect the data part */
4003 de_bearer_cap(gsm_map_priv->signal_info_tvb, subtree, actx->pinfo, 2, length, NULL, 0);
4004 /* TODO: There may be more than one IE */
4005 break;
4006 default:
4007 proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, gsm_map_priv->signal_info_tvb, 0, length);
4008 break;
4009 }/* switch(octet) */
4010 break;
4011 case 2:
4012 /* gsm-0806 */
4013 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4014 /* Discrimination parameter */
4015 proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
4016 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
4017 /* Strip off discrimination and length */
4018 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
4019 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
4020 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
4021 }else if(octet==1){
4022 proto_tree_add_item(subtree, hf_gsm_map_dlci, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
4023 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 2,1,ENC_BIG_ENDIAN);
4024 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 3);
4025 call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
4027 break;
4028 case 3:
4029 /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
4030 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4031 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
4032 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
4033 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
4035 break;
4036 /* ets-300102-1 (~Q.931 ) */
4037 case 4:
4038 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
4039 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
4040 if ( octet == 4 )
4041 dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree);
4042 break;
4043 default:
4044 break;
4045 }/*switch (ProtocolId)*/
4048 return offset;
4052 static const value_string gsm_map_Ext_ProtocolId_vals[] = {
4053 { 1, "ets-300356" },
4054 { 0, NULL }
4058 static int
4059 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_) {
4060 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4061 NULL);
4063 return offset;
4067 static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = {
4068 { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId },
4069 { &hf_gsm_map_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
4070 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4071 { NULL, 0, 0, 0, NULL }
4074 static int
4075 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_) {
4076 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4077 gsm_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
4079 return offset;
4083 static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
4084 { 1, "ts3G-48006" },
4085 { 2, "ts3G-25413" },
4086 { 0, NULL }
4090 static int
4091 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_) {
4092 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4093 &AccessNetworkProtocolId);
4095 return offset;
4100 static int
4101 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_) {
4103 tvbuff_t *parameter_tvb;
4104 uint8_t octet;
4105 tvbuff_t *next_tvb;
4106 proto_tree *subtree;
4107 gsm_map_private_info_t *gsm_map_priv;
4108 sccp_msg_info_t *sccp_msg_info;
4111 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4112 &parameter_tvb);
4115 if (!parameter_tvb)
4116 return offset;
4118 gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
4119 sccp_msg_info = gsm_map_priv ? gsm_map_priv->sccp_msg_info : NULL;
4120 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo);
4122 switch (AccessNetworkProtocolId){
4123 /* ts3G-48006 */
4124 case 1:
4125 octet = tvb_get_uint8(parameter_tvb,0);
4126 /* Discrimination parameter */
4127 proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
4128 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
4129 /* Strip off discrimination and length */
4130 proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
4131 next_tvb = tvb_new_subset_remaining(parameter_tvb, 2);
4132 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, sccp_msg_info);
4133 }else if(octet==1){
4134 proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
4135 proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,ENC_BIG_ENDIAN);
4136 next_tvb = tvb_new_subset_remaining(parameter_tvb, 3);
4137 call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
4139 break;
4140 /* ts3G-25413 */
4141 case 2:
4142 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree);
4143 break;
4144 default:
4145 break;
4149 return offset;
4153 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
4154 { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
4155 { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
4156 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4157 { NULL, 0, 0, 0, NULL }
4160 static int
4161 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_) {
4162 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4163 gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
4165 return offset;
4171 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_) {
4172 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4173 NULL);
4175 return offset;
4181 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_) {
4183 tvbuff_t *parameter_tvb;
4184 uint8_t octet;
4185 proto_tree *subtree;
4187 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4188 &parameter_tvb);
4191 if (!parameter_tvb)
4192 return offset;
4193 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
4195 octet = tvb_get_uint8(parameter_tvb,0);
4196 switch(octet){
4197 case 0x04: /* IPv4 */
4198 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, 4, ENC_BIG_ENDIAN);
4199 break;
4200 case 0x50: /* IPv6 */
4201 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv6, parameter_tvb, 1, 16, ENC_NA);
4202 break;
4203 default:
4204 break;
4208 return offset;
4213 static int
4214 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_) {
4215 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4216 NULL);
4218 return offset;
4224 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_) {
4225 tvbuff_t *parameter_tvb;
4226 const char *imsi_str;
4228 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &parameter_tvb);
4230 if (!parameter_tvb)
4231 return offset;
4232 if(tvb_reported_length(parameter_tvb)==0)
4233 return offset;
4235 /* Hide the octet string default printout */
4236 proto_item_set_hidden(actx->created_item);
4237 imsi_str = dissect_e212_imsi(parameter_tvb, actx->pinfo, tree,
4238 0, tvb_reported_length(parameter_tvb), false);
4239 if (!PINFO_FD_VISITED(actx->pinfo))
4240 actx->private_data = wmem_strdup(wmem_file_scope(), imsi_str);
4243 return offset;
4248 static int
4249 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_) {
4250 tvbuff_t *parameter_tvb;
4251 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4252 &parameter_tvb);
4254 if (parameter_tvb && !PINFO_FD_VISITED(actx->pinfo)) {
4255 actx->private_data = tvb_bytes_to_str(wmem_file_scope(), parameter_tvb, 0, tvb_captured_length(parameter_tvb));
4259 return offset;
4263 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
4264 { &hf_gsm_map_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
4265 { &hf_gsm_map_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
4266 { NULL, 0, 0, 0, NULL }
4269 static int
4270 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_) {
4271 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4272 gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
4274 return offset;
4278 static const value_string gsm_map_Identity_vals[] = {
4279 { 0, "imsi" },
4280 { 1, "imsi-WithLMSI" },
4281 { 0, NULL }
4284 static const ber_choice_t gsm_map_Identity_choice[] = {
4285 { 0, &hf_gsm_map_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
4286 { 1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
4287 { 0, NULL, 0, 0, 0, NULL }
4290 static int
4291 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_) {
4292 offset = dissect_ber_choice(actx, tree, tvb, offset,
4293 gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
4294 NULL);
4296 return offset;
4301 static int
4302 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_) {
4303 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
4305 return offset;
4310 static int
4311 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_) {
4312 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4313 NULL);
4315 return offset;
4319 static const value_string gsm_map_SubscriberId_vals[] = {
4320 { 0, "imsi" },
4321 { 1, "tmsi" },
4322 { 0, NULL }
4325 static const ber_choice_t gsm_map_SubscriberId_choice[] = {
4326 { 0, &hf_gsm_map_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4327 { 1, &hf_gsm_map_tmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
4328 { 0, NULL, 0, 0, 0, NULL }
4331 static int
4332 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_) {
4333 offset = dissect_ber_choice(actx, tree, tvb, offset,
4334 gsm_map_SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId,
4335 NULL);
4337 return offset;
4343 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_) {
4344 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
4346 return offset;
4351 static int
4352 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_) {
4353 offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
4355 return offset;
4359 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
4360 { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
4363 static int
4364 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_) {
4365 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4366 gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
4368 return offset;
4374 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_) {
4375 tvbuff_t *parameter_tvb;
4376 proto_tree *subtree;
4378 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4379 &parameter_tvb);
4382 if (!parameter_tvb)
4383 return offset;
4385 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId);
4386 be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0, 0);
4389 return offset;
4393 const value_string gsm_map_NetworkResource_vals[] = {
4394 { 0, "plmn" },
4395 { 1, "hlr" },
4396 { 2, "vlr" },
4397 { 3, "pvlr" },
4398 { 4, "controllingMSC" },
4399 { 5, "vmsc" },
4400 { 6, "eir" },
4401 { 7, "rss" },
4402 { 0, NULL }
4407 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_) {
4408 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4409 NULL);
4411 return offset;
4415 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
4416 { 0, "sgsn" },
4417 { 1, "ggsn" },
4418 { 2, "gmlc" },
4419 { 3, "gsmSCF" },
4420 { 4, "nplr" },
4421 { 5, "auc" },
4422 { 6, "ue" },
4423 { 7, "mme" },
4424 { 0, NULL }
4428 static int
4429 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_) {
4430 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4431 NULL);
4433 return offset;
4439 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_) {
4440 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4441 NULL);
4443 return offset;
4447 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
4448 { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
4449 { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4450 { NULL, 0, 0, 0, NULL }
4453 static int
4454 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_) {
4455 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4456 gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
4458 return offset;
4462 static const value_string gsm_map_SubscriberIdentity_vals[] = {
4463 { 0, "imsi" },
4464 { 1, "msisdn" },
4465 { 0, NULL }
4468 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
4469 { 0, &hf_gsm_map_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4470 { 1, &hf_gsm_map_msisdn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4471 { 0, NULL, 0, 0, 0, NULL }
4474 static int
4475 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_) {
4476 offset = dissect_ber_choice(actx, tree, tvb, offset,
4477 gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
4478 NULL);
4480 return offset;
4484 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
4485 { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4486 { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4487 { NULL, 0, 0, 0, NULL }
4491 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_) {
4492 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4493 gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
4495 return offset;
4499 const value_string gsm_map_LCSClientInternalID_vals[] = {
4500 { 0, "broadcastService" },
4501 { 1, "o-andM-HPLMN" },
4502 { 2, "o-andM-VPLMN" },
4503 { 3, "anonymousLocation" },
4504 { 4, "targetMSsubscribedService" },
4505 { 0, NULL }
4510 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_) {
4511 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4512 NULL);
4514 return offset;
4518 const value_string gsm_map_LCSServiceTypeID_vals[] = {
4519 { 0, "emergencyServices" },
4520 { 1, "emergencyAlertServices" },
4521 { 2, "personTracking" },
4522 { 3, "fleetManagement" },
4523 { 4, "assetManagement" },
4524 { 5, "trafficCongestionReporting" },
4525 { 6, "roadsideAssistance" },
4526 { 7, "routingToNearestCommercialEnterprise" },
4527 { 8, "navigation" },
4528 { 9, "citySightseeing" },
4529 { 10, "localizedAdvertising" },
4530 { 11, "mobileYellowPages" },
4531 { 12, "trafficAndPublicTransportationInfo" },
4532 { 13, "weather" },
4533 { 14, "assetAndServiceFinding" },
4534 { 15, "gaming" },
4535 { 16, "findYourFriend" },
4536 { 17, "dating" },
4537 { 18, "chatting" },
4538 { 19, "routeFinding" },
4539 { 20, "whereAmI" },
4540 { 64, "serv64" },
4541 { 65, "serv65" },
4542 { 66, "serv66" },
4543 { 67, "serv67" },
4544 { 68, "serv68" },
4545 { 69, "serv69" },
4546 { 70, "serv70" },
4547 { 71, "serv71" },
4548 { 72, "serv72" },
4549 { 73, "serv73" },
4550 { 74, "serv74" },
4551 { 75, "serv75" },
4552 { 76, "serv76" },
4553 { 77, "serv77" },
4554 { 78, "serv78" },
4555 { 79, "serv79" },
4556 { 80, "serv80" },
4557 { 81, "serv81" },
4558 { 82, "serv82" },
4559 { 83, "serv83" },
4560 { 84, "serv84" },
4561 { 85, "serv85" },
4562 { 86, "serv86" },
4563 { 87, "serv87" },
4564 { 88, "serv88" },
4565 { 89, "serv89" },
4566 { 90, "serv90" },
4567 { 91, "serv91" },
4568 { 92, "serv92" },
4569 { 93, "serv93" },
4570 { 94, "serv94" },
4571 { 95, "serv95" },
4572 { 96, "serv96" },
4573 { 97, "serv97" },
4574 { 98, "serv98" },
4575 { 99, "serv99" },
4576 { 100, "serv100" },
4577 { 101, "serv101" },
4578 { 102, "serv102" },
4579 { 103, "serv103" },
4580 { 104, "serv104" },
4581 { 105, "serv105" },
4582 { 106, "serv106" },
4583 { 107, "serv107" },
4584 { 108, "serv108" },
4585 { 109, "serv109" },
4586 { 110, "serv110" },
4587 { 111, "serv111" },
4588 { 112, "serv112" },
4589 { 113, "serv113" },
4590 { 114, "serv114" },
4591 { 115, "serv115" },
4592 { 116, "serv116" },
4593 { 117, "serv117" },
4594 { 118, "serv118" },
4595 { 119, "serv119" },
4596 { 120, "serv120" },
4597 { 121, "serv121" },
4598 { 122, "serv122" },
4599 { 123, "serv123" },
4600 { 124, "serv124" },
4601 { 125, "serv125" },
4602 { 126, "serv126" },
4603 { 127, "serv127" },
4604 { 0, NULL }
4609 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_) {
4610 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4611 NULL);
4613 return offset;
4618 static int
4619 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_) {
4620 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4621 NULL);
4623 return offset;
4628 static int
4629 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_) {
4630 tvbuff_t *parameter_tvb;
4631 proto_tree *subtree;
4632 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4633 &parameter_tvb);
4635 if (!parameter_tvb)
4636 return offset;
4638 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_e_utranCellGlobalIdentity);
4639 de_sgsap_ecgi(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0);
4642 return offset;
4647 static int
4648 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_) {
4649 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4650 NULL);
4652 return offset;
4657 static int
4658 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_) {
4659 tvbuff_t *parameter_tvb;
4660 proto_tree *subtree;
4661 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4662 &parameter_tvb);
4664 if (!parameter_tvb)
4665 return offset;
4667 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_TA_id);
4668 de_emm_trac_area_id(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0);
4671 return offset;
4676 static int
4677 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_) {
4678 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4679 NULL);
4681 return offset;
4687 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_) {
4689 tvbuff_t *parameter_tvb;
4690 proto_tree *subtree;
4692 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4693 &parameter_tvb);
4696 if (!parameter_tvb)
4697 return offset;
4698 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
4699 de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0);
4702 return offset;
4706 static const ber_sequence_t gsm_map_NetworkNodeDiameterAddress_sequence[] = {
4707 { &hf_gsm_map_diameter_Name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
4708 { &hf_gsm_map_diameter_Realm, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
4709 { NULL, 0, 0, 0, NULL }
4712 static int
4713 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_) {
4714 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4715 gsm_map_NetworkNodeDiameterAddress_sequence, hf_index, ett_gsm_map_NetworkNodeDiameterAddress);
4717 return offset;
4723 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_) {
4724 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4725 NULL);
4727 return offset;
4733 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_) {
4735 tvbuff_t *parameter_tvb;
4736 proto_tree *subtree;
4738 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4739 &parameter_tvb);
4742 if (!parameter_tvb)
4743 return offset;
4744 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength);
4745 dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_LAI, true);
4748 return offset;
4752 const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
4753 { 0, "cellGlobalIdOrServiceAreaIdFixedLength" },
4754 { 1, "laiFixedLength" },
4755 { 0, NULL }
4758 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
4759 { 0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
4760 { 1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
4761 { 0, NULL, 0, 0, 0, NULL }
4765 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_) {
4766 offset = dissect_ber_choice(actx, tree, tvb, offset,
4767 gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
4768 NULL);
4770 return offset;
4774 const value_string gsm_map_BasicServiceCode_vals[] = {
4775 { 2, "bearerService" },
4776 { 3, "teleservice" },
4777 { 0, NULL }
4780 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
4781 { 2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
4782 { 3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
4783 { 0, NULL, 0, 0, 0, NULL }
4787 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_) {
4788 offset = dissect_ber_choice(actx, tree, tvb, offset,
4789 gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
4790 NULL);
4792 return offset;
4796 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
4797 { 2, "ext-BearerService" },
4798 { 3, "ext-Teleservice" },
4799 { 0, NULL }
4802 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
4803 { 2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
4804 { 3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
4805 { 0, NULL, 0, 0, 0, NULL }
4809 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_) {
4810 offset = dissect_ber_choice(actx, tree, tvb, offset,
4811 gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
4812 NULL);
4814 return offset;
4818 static const value_string gsm_map_EMLPP_Priority_vals[] = {
4819 { 6, "priorityLevelA" },
4820 { 5, "priorityLevelB" },
4821 { 0, "priorityLevel0" },
4822 { 1, "priorityLevel1" },
4823 { 2, "priorityLevel2" },
4824 { 3, "priorityLevel3" },
4825 { 4, "priorityLevel4" },
4826 { 0, NULL }
4830 static int
4831 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_) {
4832 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4833 NULL);
4835 return offset;
4839 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
4840 { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4841 { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4842 { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4843 { NULL, 0, 0, 0, NULL }
4846 static int
4847 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_) {
4848 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4849 gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
4851 return offset;
4856 static int
4857 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_) {
4858 /* Note Ext-SS-Status can have more than one byte */
4860 tvbuff_t *parameter_tvb;
4861 uint8_t octet;
4863 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4864 &parameter_tvb);
4867 if (!parameter_tvb)
4868 return offset;
4870 octet = tvb_get_uint8(parameter_tvb,0);
4872 proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
4873 if ((octet & 0x01)== 1)
4874 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
4876 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
4877 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
4878 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
4881 return offset;
4886 static int
4887 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_) {
4888 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4889 NULL);
4891 return offset;
4896 static int
4897 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_) {
4898 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4899 NULL);
4901 return offset;
4905 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
4906 { &hf_gsm_map_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4907 { &hf_gsm_map_ss_Status , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
4908 { &hf_gsm_map_nbrSB , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
4909 { &hf_gsm_map_nbrUser , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4910 { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4911 { NULL, 0, 0, 0, NULL }
4914 static int
4915 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_) {
4916 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4917 gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
4919 return offset;
4925 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_) {
4926 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4927 NULL);
4929 return offset;
4932 /*--- PDUs ---*/
4934 int dissect_gsm_map_ISDN_AddressString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4935 int offset = 0;
4936 asn1_ctx_t asn1_ctx;
4937 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4938 offset = dissect_gsm_map_ISDN_AddressString(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_gsm_map_ISDN_AddressString_PDU);
4939 return offset;
4943 /* --- Module MAP-SS-DataTypes --- --- --- */
4947 static int
4948 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_) {
4949 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4950 NULL);
4952 return offset;
4957 static int
4958 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_) {
4959 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4961 return offset;
4965 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
4966 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4967 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4968 { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
4969 { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
4970 { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
4971 { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4972 { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4973 { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
4974 { NULL, 0, 0, 0, NULL }
4978 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_) {
4979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4980 gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
4982 return offset;
4988 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_) {
4990 tvbuff_t *parameter_tvb;
4991 uint8_t octet;
4993 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4994 &parameter_tvb);
4997 if (!parameter_tvb)
4998 return offset;
5000 octet = tvb_get_uint8(parameter_tvb,0);
5002 proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
5003 if ((octet & 0x01)== 1)
5004 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
5006 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
5007 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
5008 proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
5011 return offset;
5017 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_) {
5018 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5019 NULL);
5022 proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
5023 proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
5024 proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
5025 proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
5026 return offset;
5030 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
5031 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5032 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5033 { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5034 { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
5035 { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
5036 { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
5037 { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
5038 { NULL, 0, 0, 0, NULL }
5041 static int
5042 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_) {
5043 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5044 gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
5046 return offset;
5050 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
5051 { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
5054 static int
5055 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_) {
5056 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5057 gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
5059 return offset;
5063 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
5064 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5065 { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
5066 { NULL, 0, 0, 0, NULL }
5069 static int
5070 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_) {
5071 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5072 gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
5074 return offset;
5078 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
5079 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5080 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5081 { NULL, 0, 0, 0, NULL }
5084 static int
5085 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_) {
5086 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5087 gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
5089 return offset;
5093 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
5094 { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
5097 static int
5098 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_) {
5099 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5100 gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
5102 return offset;
5106 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
5107 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5108 { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
5109 { NULL, 0, 0, 0, NULL }
5112 static int
5113 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_) {
5114 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5115 gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
5117 return offset;
5121 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
5122 { 0, "permanent" },
5123 { 1, "temporaryDefaultRestricted" },
5124 { 2, "temporaryDefaultAllowed" },
5125 { 0, NULL }
5129 static int
5130 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_) {
5131 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5132 NULL);
5134 return offset;
5138 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
5139 { 0, "overrideEnabled" },
5140 { 1, "overrideDisabled" },
5141 { 0, NULL }
5145 static int
5146 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_) {
5147 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5148 NULL);
5150 return offset;
5154 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
5155 { 2, "cliRestrictionOption" },
5156 { 1, "overrideCategory" },
5157 { 0, NULL }
5160 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
5161 { 2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
5162 { 1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
5163 { 0, NULL, 0, 0, 0, NULL }
5166 static int
5167 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_) {
5168 offset = dissect_ber_choice(actx, tree, tvb, offset,
5169 gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
5170 NULL);
5172 return offset;
5176 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
5177 { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5180 static int
5181 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_) {
5182 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5183 gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
5185 return offset;
5189 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
5190 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5191 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5192 { &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 },
5193 { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
5194 { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
5195 { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5196 { NULL, 0, 0, 0, NULL }
5199 static int
5200 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_) {
5201 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5202 gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
5204 return offset;
5208 const value_string gsm_map_ss_SS_Info_vals[] = {
5209 { 0, "forwardingInfo" },
5210 { 1, "callBarringInfo" },
5211 { 3, "ss-Data" },
5212 { 0, NULL }
5215 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
5216 { 0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
5217 { 1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
5218 { 3, &hf_gsm_map_ss_ss_Data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
5219 { 0, NULL, 0, 0, 0, NULL }
5223 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_) {
5224 offset = dissect_ber_choice(actx, tree, tvb, offset,
5225 gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
5226 NULL);
5228 return offset;
5232 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
5233 { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5234 { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5235 { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
5236 { NULL, 0, 0, 0, NULL }
5240 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_) {
5241 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5242 gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
5244 return offset;
5249 static int
5250 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_) {
5251 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5252 NULL);
5254 return offset;
5258 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
5259 { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
5260 { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5261 { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
5262 { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
5263 { NULL, 0, 0, 0, NULL }
5267 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_) {
5268 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5269 gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
5271 return offset;
5275 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
5276 { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
5279 static int
5280 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_) {
5281 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5282 gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
5284 return offset;
5288 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
5289 { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
5290 { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
5291 { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
5292 { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
5293 { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
5294 { &hf_gsm_map_ss_nbrSB , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
5295 { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5296 { &hf_gsm_map_ss_nbrSN , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
5297 { NULL, 0, 0, 0, NULL }
5300 static int
5301 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_) {
5302 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5303 gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
5305 return offset;
5309 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
5310 { 0, "ss-Status" },
5311 { 2, "basicServiceGroupList" },
5312 { 3, "forwardingFeatureList" },
5313 { 4, "genericServiceInfo" },
5314 { 0, NULL }
5317 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
5318 { 0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5319 { 2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
5320 { 3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
5321 { 4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
5322 { 0, NULL, 0, 0, 0, NULL }
5326 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_) {
5327 offset = dissect_ber_choice(actx, tree, tvb, offset,
5328 gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
5329 NULL);
5331 return offset;
5337 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_) {
5338 /*The structure of the USSD-DataCodingScheme is defined by
5339 * the Cell Broadcast Data Coding Scheme as described in
5340 * TS 3GPP TS 23.038
5341 * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
5343 tvbuff_t *parameter_tvb;
5344 proto_tree *subtree;
5346 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5347 &parameter_tvb);
5349 if (!parameter_tvb)
5350 return offset;
5351 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
5352 dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
5355 return offset;
5361 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_) {
5363 tvbuff_t *parameter_tvb;
5364 unsigned length;
5365 proto_tree *subtree;
5367 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5368 &parameter_tvb);
5370 if (!parameter_tvb)
5371 return offset;
5373 length = tvb_ensure_captured_length_remaining(parameter_tvb,0);
5374 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ussd_string);
5375 switch(sms_encoding){
5376 case SMS_ENCODING_7BIT:
5377 case SMS_ENCODING_7BIT_LANG:
5378 proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_3GPP_TS_23_038_7BITS|ENC_NA);
5379 break;
5380 case SMS_ENCODING_8BIT:
5381 /* XXX - ASCII, or some extended ASCII? */
5382 proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_ASCII);
5383 break;
5384 case SMS_ENCODING_UCS2:
5385 case SMS_ENCODING_UCS2_LANG:
5386 proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_UCS_2|ENC_BIG_ENDIAN);
5387 break;
5388 default:
5389 break;
5393 return offset;
5397 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
5398 { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
5399 { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
5400 { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
5401 { &hf_gsm_map_ss_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5402 { NULL, 0, 0, 0, NULL }
5406 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_) {
5407 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5408 gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
5410 return offset;
5414 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
5415 { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
5416 { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
5417 { NULL, 0, 0, 0, NULL }
5421 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_) {
5422 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5423 gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
5425 return offset;
5430 static int
5431 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_) {
5432 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
5433 actx, tree, tvb, offset, hf_index,
5434 NULL);
5436 return offset;
5440 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
5441 { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
5444 static int
5445 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_) {
5446 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5447 gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
5449 return offset;
5453 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
5454 { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
5457 static int
5458 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_) {
5459 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5460 gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
5462 return offset;
5466 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
5467 { 0, "request" },
5468 { 1, "recall" },
5469 { 2, "active" },
5470 { 3, "completed" },
5471 { 4, "suspended" },
5472 { 5, "frozen" },
5473 { 6, "deleted" },
5474 { 0, NULL }
5478 static int
5479 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_) {
5480 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5481 NULL);
5483 return offset;
5487 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
5488 { &hf_gsm_map_ss_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5489 { &hf_gsm_map_ss_msisdn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5490 { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5491 { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
5492 { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5493 { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5494 { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
5495 { NULL, 0, 0, 0, NULL }
5498 static int
5499 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_) {
5500 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5501 gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
5503 return offset;
5507 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
5508 { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5509 { NULL, 0, 0, 0, NULL }
5512 static int
5513 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_) {
5514 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5515 gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
5517 return offset;
5521 static int * const gsm_map_ss_ServiceIndicator_bits[] = {
5522 &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
5523 &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
5524 NULL
5527 static int
5528 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_) {
5529 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
5530 gsm_map_ss_ServiceIndicator_bits, 2, hf_index, ett_gsm_map_ss_ServiceIndicator,
5531 NULL);
5533 return offset;
5537 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
5538 { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
5539 { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5540 { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
5541 { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
5542 { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
5543 { NULL, 0, 0, 0, NULL }
5546 static int
5547 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_) {
5548 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5549 gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
5551 return offset;
5555 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
5556 { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5557 { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
5558 { NULL, 0, 0, 0, NULL }
5561 static int
5562 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_) {
5563 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5564 gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
5566 return offset;
5570 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
5571 { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
5572 { NULL, 0, 0, 0, NULL }
5576 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_) {
5577 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5578 gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
5580 return offset;
5584 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
5585 { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5586 { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
5587 { NULL, 0, 0, 0, NULL }
5591 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_) {
5592 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5593 gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
5595 return offset;
5599 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
5600 { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5601 { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5602 { NULL, 0, 0, 0, NULL }
5606 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_) {
5607 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5608 gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
5610 return offset;
5614 /* --- Module MAP-ER-DataTypes --- --- --- */
5617 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
5618 { 0, "plmnRoamingNotAllowed" },
5619 { 3, "operatorDeterminedBarring" },
5620 { 0, NULL }
5624 static int
5625 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_) {
5626 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5627 NULL);
5629 return offset;
5633 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
5634 { 0, "supportedRAT-TypesNotAllowed" },
5635 { 0, NULL }
5639 static int
5640 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_) {
5641 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5642 NULL);
5644 return offset;
5648 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
5649 { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
5650 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5651 { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
5652 { NULL, 0, 0, 0, NULL }
5655 static int
5656 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_) {
5657 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5658 gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
5660 return offset;
5664 static const value_string gsm_map_er_CallBarringCause_vals[] = {
5665 { 0, "barringServiceActive" },
5666 { 1, "operatorBarring" },
5667 { 0, NULL }
5671 static int
5672 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_) {
5673 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5674 NULL);
5676 return offset;
5681 static int
5682 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_) {
5683 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5685 return offset;
5689 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
5690 { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
5691 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5692 { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5693 { &hf_gsm_map_er_anonymousCallRejection, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5694 { NULL, 0, 0, 0, NULL }
5697 static int
5698 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_) {
5699 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5700 gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
5702 return offset;
5706 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
5707 { 0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
5708 { 1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
5709 { 0, NULL, 0, 0, 0, NULL }
5712 static int
5713 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_) {
5714 offset = dissect_ber_choice(actx, tree, tvb, offset,
5715 gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
5716 NULL);
5718 return offset;
5722 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
5723 { 0, "incomingCallsBarredWithinCUG" },
5724 { 1, "subscriberNotMemberOfCUG" },
5725 { 5, "requestedBasicServiceViolatesCUG-Constraints" },
5726 { 7, "calledPartySS-InteractionViolation" },
5727 { 0, NULL }
5731 static int
5732 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_) {
5733 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5734 NULL);
5736 return offset;
5740 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
5741 { &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 },
5742 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5743 { NULL, 0, 0, 0, NULL }
5746 static int
5747 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_) {
5748 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5749 gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
5751 return offset;
5755 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
5756 { &hf_gsm_map_er_ss_Code , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5757 { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5758 { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5759 { NULL, 0, 0, 0, NULL }
5762 static int
5763 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_) {
5764 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5765 gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
5767 return offset;
5772 static int
5773 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_) {
5774 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5775 NULL);
5777 return offset;
5781 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
5782 { 0, "memoryCapacityExceeded" },
5783 { 1, "equipmentProtocolError" },
5784 { 2, "equipmentNotSM-Equipped" },
5785 { 3, "unknownServiceCentre" },
5786 { 4, "sc-Congestion" },
5787 { 5, "invalidSME-Address" },
5788 { 6, "subscriberNotSC-Subscriber" },
5789 { 0, NULL }
5793 static int
5794 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_) {
5795 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5796 NULL);
5798 return offset;
5802 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
5803 { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
5804 { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5805 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5806 { NULL, 0, 0, 0, NULL }
5809 static int
5810 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_) {
5811 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5812 uint8_t oct;
5813 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
5814 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5815 gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
5818 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
5819 return offset;
5820 /* Detailed diagnostic information contains either a SMS-SUBMIT-REPORT or a SMS-DELIVERY-REPORT */
5821 oct = tvb_get_uint8(gsm_map_priv->signal_info_tvb, 0);
5822 actx->pinfo->p2p_dir = ((oct & 0x03) == 0) ? P2P_DIR_RECV : P2P_DIR_SENT;
5823 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
5826 return offset;
5831 static int
5832 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_) {
5833 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5834 NULL);
5836 return offset;
5840 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
5841 { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5842 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5843 { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5844 { &hf_gsm_map_er_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5845 { &hf_gsm_map_er_requestedRetransmissionTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
5846 { &hf_gsm_map_er_userIdentifierAlert, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5847 { NULL, 0, 0, 0, NULL }
5850 static int
5851 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_) {
5852 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5853 gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
5855 return offset;
5859 static const value_string gsm_map_er_FailureCauseParam_vals[] = {
5860 { 0, "limitReachedOnNumberOfConcurrentLocationRequests" },
5861 { 0, NULL }
5865 static int
5866 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_) {
5867 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5868 NULL);
5870 return offset;
5874 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
5875 { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
5876 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5877 { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
5878 { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam },
5879 { NULL, 0, 0, 0, NULL }
5882 static int
5883 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_) {
5884 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5885 gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
5887 return offset;
5891 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
5892 { 0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
5893 { 1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
5894 { 0, NULL, 0, 0, 0, NULL }
5897 static int
5898 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_) {
5899 offset = dissect_ber_choice(actx, tree, tvb, offset,
5900 gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
5901 NULL);
5903 return offset;
5907 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
5908 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5909 { NULL, 0, 0, 0, NULL }
5912 static int
5913 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_) {
5914 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5915 gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
5917 return offset;
5921 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
5922 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5923 { &hf_gsm_map_er_unexpectedSubscriber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5924 { NULL, 0, 0, 0, NULL }
5927 static int
5928 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_) {
5929 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5930 gsm_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
5932 return offset;
5936 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
5937 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5938 { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5939 { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5940 { NULL, 0, 0, 0, NULL }
5943 static int
5944 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_) {
5945 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5946 gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
5948 return offset;
5952 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
5953 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5954 { NULL, 0, 0, 0, NULL }
5957 static int
5958 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_) {
5959 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5960 gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
5962 return offset;
5966 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
5967 { 0, "imsiUnknown" },
5968 { 1, "gprs-eps-SubscriptionUnknown" },
5969 { 2, "npdbMismatch" },
5970 { 0, NULL }
5974 static int
5975 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_) {
5976 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5977 NULL);
5979 return offset;
5983 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
5984 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5985 { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
5986 { NULL, 0, 0, 0, NULL }
5989 static int
5990 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_) {
5991 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5992 gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
5994 return offset;
5998 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
5999 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6000 { NULL, 0, 0, 0, NULL }
6003 static int
6004 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_) {
6005 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6006 gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
6008 return offset;
6012 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
6013 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6014 { NULL, 0, 0, 0, NULL }
6017 static int
6018 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_) {
6019 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6020 gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
6022 return offset;
6026 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
6027 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6028 { NULL, 0, 0, 0, NULL }
6031 static int
6032 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_) {
6033 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6034 gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
6036 return offset;
6040 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
6041 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6042 { NULL, 0, 0, 0, NULL }
6045 static int
6046 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_) {
6047 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6048 gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
6050 return offset;
6054 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
6055 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6056 { NULL, 0, 0, 0, NULL }
6059 static int
6060 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_) {
6061 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6062 gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
6064 return offset;
6068 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
6069 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6070 { NULL, 0, 0, 0, NULL }
6073 static int
6074 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_) {
6075 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6076 gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
6078 return offset;
6082 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
6083 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6084 { NULL, 0, 0, 0, NULL }
6087 static int
6088 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_) {
6089 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6090 gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
6092 return offset;
6096 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
6097 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6098 { NULL, 0, 0, 0, NULL }
6101 static int
6102 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_) {
6103 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6104 gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
6106 return offset;
6110 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
6111 { 0, "imsiDetach" },
6112 { 1, "restrictedArea" },
6113 { 2, "noPageResponse" },
6114 { 3, "purgedMS" },
6115 { 4, "mtRoamingRetry" },
6116 { 5, "busySubscriber" },
6117 { 0, NULL }
6121 static int
6122 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_) {
6123 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6124 NULL);
6126 return offset;
6130 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
6131 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6132 { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
6133 { NULL, 0, 0, 0, NULL }
6136 static int
6137 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_) {
6138 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6139 gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
6141 return offset;
6145 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
6146 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6147 { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6148 { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
6149 { NULL, 0, 0, 0, NULL }
6152 static int
6153 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_) {
6154 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6155 gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
6157 return offset;
6161 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = {
6162 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6163 { NULL, 0, 0, 0, NULL }
6166 static int
6167 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_) {
6168 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6169 gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
6171 return offset;
6175 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = {
6176 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6177 { NULL, 0, 0, 0, NULL }
6180 static int
6181 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_) {
6182 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6183 gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
6185 return offset;
6189 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = {
6190 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6191 { NULL, 0, 0, 0, NULL }
6194 static int
6195 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_) {
6196 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6197 gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
6199 return offset;
6203 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
6204 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6205 { NULL, 0, 0, 0, NULL }
6208 static int
6209 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_) {
6210 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6211 gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
6213 return offset;
6217 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
6218 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6219 { NULL, 0, 0, 0, NULL }
6222 static int
6223 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_) {
6224 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6225 gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
6227 return offset;
6231 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
6232 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6233 { NULL, 0, 0, 0, NULL }
6236 static int
6237 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_) {
6238 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6239 gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
6241 return offset;
6245 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
6246 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6247 { NULL, 0, 0, 0, NULL }
6250 static int
6251 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_) {
6252 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6253 gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
6255 return offset;
6259 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
6260 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6261 { NULL, 0, 0, 0, NULL }
6264 static int
6265 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_) {
6266 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6267 gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
6269 return offset;
6273 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
6274 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6275 { NULL, 0, 0, 0, NULL }
6278 static int
6279 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_) {
6280 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6281 gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
6283 return offset;
6287 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
6288 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6289 { NULL, 0, 0, 0, NULL }
6292 static int
6293 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_) {
6294 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6295 gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
6297 return offset;
6301 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_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 { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
6304 { NULL, 0, 0, 0, NULL }
6307 static int
6308 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_) {
6309 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6310 gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
6312 return offset;
6316 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
6317 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6318 { NULL, 0, 0, 0, NULL }
6321 static int
6322 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_) {
6323 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6324 gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
6326 return offset;
6330 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
6331 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6332 { NULL, 0, 0, 0, NULL }
6335 static int
6336 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_) {
6337 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6338 gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
6340 return offset;
6344 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
6345 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6346 { NULL, 0, 0, 0, NULL }
6349 static int
6350 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_) {
6351 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6352 gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
6354 return offset;
6358 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
6359 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6360 { NULL, 0, 0, 0, NULL }
6363 static int
6364 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_) {
6365 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6366 gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
6368 return offset;
6372 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
6373 { NULL, 0, 0, 0, NULL }
6376 static int
6377 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_) {
6378 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6379 gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
6381 return offset;
6385 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
6386 { NULL, 0, 0, 0, NULL }
6389 static int
6390 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_) {
6391 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6392 gsm_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
6394 return offset;
6398 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
6399 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6400 { NULL, 0, 0, 0, NULL }
6403 static int
6404 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_) {
6405 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6406 gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
6408 return offset;
6412 const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
6413 { 0, "noAdditionalInformation" },
6414 { 1, "clientNotInMSPrivacyExceptionList" },
6415 { 2, "callToClientNotSetup" },
6416 { 3, "privacyOverrideNotApplicable" },
6417 { 4, "disallowedByLocalRegulatoryRequirements" },
6418 { 5, "unauthorizedPrivacyClass" },
6419 { 6, "unauthorizedCallSessionUnrelatedExternalClient" },
6420 { 7, "unauthorizedCallSessionRelatedExternalClient" },
6421 { 0, NULL }
6426 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_) {
6427 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6428 NULL);
6430 return offset;
6434 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
6435 { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
6436 { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6437 { NULL, 0, 0, 0, NULL }
6440 static int
6441 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_) {
6442 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6443 gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
6445 return offset;
6449 const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
6450 { 0, "congestion" },
6451 { 1, "insufficientResources" },
6452 { 2, "insufficientMeasurementData" },
6453 { 3, "inconsistentMeasurementData" },
6454 { 4, "locationProcedureNotCompleted" },
6455 { 5, "locationProcedureNotSupportedByTargetMS" },
6456 { 6, "qoSNotAttainable" },
6457 { 7, "positionMethodNotAvailableInNetwork" },
6458 { 8, "positionMethodNotAvailableInLocationArea" },
6459 { 0, NULL }
6464 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_) {
6465 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6466 NULL);
6468 return offset;
6472 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
6473 { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
6474 { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6475 { NULL, 0, 0, 0, NULL }
6478 static int
6479 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_) {
6480 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6481 gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
6483 return offset;
6487 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
6488 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6489 { NULL, 0, 0, 0, NULL }
6492 static int
6493 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_) {
6494 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6495 gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
6497 return offset;
6501 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
6502 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6503 { NULL, 0, 0, 0, NULL }
6506 static int
6507 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_) {
6508 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6509 gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
6511 return offset;
6515 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
6516 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6517 { NULL, 0, 0, 0, NULL }
6520 static int
6521 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_) {
6522 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6523 gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
6525 return offset;
6529 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
6530 { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6531 { NULL, 0, 0, 0, NULL }
6534 static int
6535 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_) {
6536 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6537 gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
6539 return offset;
6543 /* --- Module MAP-SM-DataTypes --- --- --- */
6547 static int
6548 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_) {
6549 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
6551 return offset;
6556 static int
6557 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_) {
6558 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6560 return offset;
6565 static int
6566 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_) {
6567 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6568 NULL);
6570 return offset;
6575 static int
6576 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_) {
6577 tvbuff_t *payload_tvb;
6578 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6579 &payload_tvb);
6581 if (payload_tvb) {
6582 uint32_t tvb_offset = 0;
6583 proto_item_set_hidden(actx->created_item);
6584 dis_field_addr(payload_tvb, actx->pinfo, tree, &tvb_offset, "SM-RP-SMEA");
6589 return offset;
6593 static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = {
6594 { 0, "onlyIMSI-requested" },
6595 { 1, "onlyMCC-MNC-requested" },
6596 { 0, NULL }
6600 static int
6601 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_) {
6602 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6603 NULL);
6605 return offset;
6610 static int
6611 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_) {
6612 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6613 NULL);
6615 return offset;
6619 static const ber_sequence_t gsm_map_sm_CorrelationID_sequence[] = {
6620 { &hf_gsm_map_sm_hlr_id , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_HLR_Id },
6621 { &hf_gsm_map_sm_sip_uri_A, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SIP_URI },
6622 { &hf_gsm_map_sm_sip_uri_B, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SIP_URI },
6623 { NULL, 0, 0, 0, NULL }
6626 static int
6627 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_) {
6628 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6629 gsm_map_sm_CorrelationID_sequence, hf_index, ett_gsm_map_sm_CorrelationID);
6631 return offset;
6635 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
6636 { &hf_gsm_map_sm_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6637 { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
6638 { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
6639 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6640 { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6641 { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
6642 { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
6643 { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended },
6644 { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6645 { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6646 { &hf_gsm_map_sm_t4_Trigger_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6647 { &hf_gsm_map_sm_singleAttemptDelivery, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6648 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
6649 { &hf_gsm_map_sm_smsf_supportIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6650 { NULL, 0, 0, 0, NULL }
6653 static int
6654 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_) {
6655 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6656 gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
6658 return offset;
6662 static const value_string gsm_map_sm_Additional_Number_vals[] = {
6663 { 0, "msc-Number" },
6664 { 1, "sgsn-Number" },
6665 { 0, NULL }
6668 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
6669 { 0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6670 { 1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6671 { 0, NULL, 0, 0, 0, NULL }
6674 static int
6675 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_) {
6676 offset = dissect_ber_choice(actx, tree, tvb, offset,
6677 gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
6678 NULL);
6680 return offset;
6684 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
6685 { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6686 { &hf_gsm_map_sm_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
6687 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6688 { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6689 { &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 },
6690 { &hf_gsm_map_sm_networkNodeDiameterAddress, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6691 { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6692 { &hf_gsm_map_sm_thirdNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number },
6693 { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6694 { &hf_gsm_map_sm_imsNodeIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6695 { &hf_gsm_map_sm_smsf_3gpp_Number, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6696 { &hf_gsm_map_sm_smsf_3gpp_DiameterAddress, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6697 { &hf_gsm_map_sm_smsf_non_3gpp_Number, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6698 { &hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6699 { &hf_gsm_map_sm_smsf_3gpp_address_indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6700 { &hf_gsm_map_sm_smsf_non_3gpp_address_indicator, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6701 { NULL, 0, 0, 0, NULL }
6704 static int
6705 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_) {
6706 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6707 gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
6709 return offset;
6714 static int
6715 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_) {
6716 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6717 NULL);
6719 return offset;
6723 static const ber_sequence_t gsm_map_sm_IP_SM_GW_Guidance_sequence[] = {
6724 { &hf_gsm_map_sm_minimumDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6725 { &hf_gsm_map_sm_recommendedDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6726 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6727 { NULL, 0, 0, 0, NULL }
6730 static int
6731 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_) {
6732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6733 gsm_map_sm_IP_SM_GW_Guidance_sequence, hf_index, ett_gsm_map_sm_IP_SM_GW_Guidance);
6735 return offset;
6739 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
6740 { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6741 { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
6742 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6743 { &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 },
6744 { NULL, 0, 0, 0, NULL }
6747 static int
6748 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_) {
6749 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6750 gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
6752 return offset;
6757 static int
6758 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_) {
6759 actx->private_data = NULL;
6760 actx->pinfo->p2p_dir = P2P_DIR_SENT;
6761 offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
6763 if (actx->private_data) {
6764 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6765 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI;
6766 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
6767 actx->private_data = NULL;
6771 return offset;
6776 static int
6777 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_) {
6778 actx->private_data = NULL;
6779 actx->pinfo->p2p_dir = P2P_DIR_SENT;
6780 offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
6782 if (actx->private_data) {
6783 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6784 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI;
6785 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
6786 actx->private_data = NULL;
6790 return offset;
6795 static int
6796 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_) {
6797 actx->private_data = NULL;
6798 actx->pinfo->p2p_dir = P2P_DIR_RECV;
6799 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6801 if (actx->private_data) {
6802 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6803 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS;
6804 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
6805 actx->private_data = NULL;
6809 return offset;
6814 static int
6815 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_) {
6816 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6818 if (!PINFO_FD_VISITED(actx->pinfo)) {
6819 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
6820 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
6821 if (prev_packet_info) {
6822 gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id;
6823 gsm_map_pi->sm_rp_da_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_da_str);
6828 return offset;
6832 const value_string gsm_map_sm_SM_RP_DA_vals[] = {
6833 { 0, "imsi" },
6834 { 1, "lmsi" },
6835 { 4, "serviceCentreAddressDA" },
6836 { 5, "noSM-RP-DA" },
6837 { 0, NULL }
6840 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
6841 { 0, &hf_gsm_map_sm_imsi_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_imsi },
6842 { 1, &hf_gsm_map_sm_lmsi_01 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_lmsi },
6843 { 4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressDA },
6844 { 5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_noSM_RP_DA },
6845 { 0, NULL, 0, 0, 0, NULL }
6849 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_) {
6850 offset = dissect_ber_choice(actx, tree, tvb, offset,
6851 gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
6852 NULL);
6854 return offset;
6859 static int
6860 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_) {
6861 actx->pinfo->p2p_dir = P2P_DIR_RECV;
6862 offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6864 if (actx->private_data) {
6865 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6866 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN;
6867 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
6868 actx->private_data = NULL;
6872 return offset;
6877 static int
6878 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_) {
6879 actx->private_data = NULL;
6880 actx->pinfo->p2p_dir = P2P_DIR_SENT;
6881 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6883 if (actx->private_data) {
6884 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
6885 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS;
6886 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
6887 actx->private_data = NULL;
6891 return offset;
6896 static int
6897 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_) {
6898 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6900 if (!PINFO_FD_VISITED(actx->pinfo)) {
6901 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
6902 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
6903 if (prev_packet_info) {
6904 gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id;
6905 gsm_map_pi->sm_rp_oa_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_oa_str);
6910 return offset;
6914 const value_string gsm_map_sm_SM_RP_OA_vals[] = {
6915 { 2, "msisdn" },
6916 { 4, "serviceCentreAddressOA" },
6917 { 5, "noSM-RP-OA" },
6918 { 0, NULL }
6921 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
6922 { 2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
6923 { 4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
6924 { 5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_noSM_RP_OA },
6925 { 0, NULL, 0, 0, 0, NULL }
6929 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_) {
6930 offset = dissect_ber_choice(actx, tree, tvb, offset,
6931 gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
6932 NULL);
6934 return offset;
6938 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
6939 { 0, "memoryCapacityExceeded" },
6940 { 1, "absentSubscriber" },
6941 { 2, "successfulTransfer" },
6942 { 0, NULL }
6946 static int
6947 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_) {
6948 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6949 NULL);
6951 return offset;
6955 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
6956 { &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 },
6957 { &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 },
6958 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6959 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6960 { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6961 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
6962 { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
6963 { NULL, 0, 0, 0, NULL }
6966 static int
6967 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_) {
6968 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6969 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
6970 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6971 gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
6974 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
6975 return offset;
6976 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
6977 actx->pinfo->p2p_dir = P2P_DIR_RECV;
6979 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
6982 return offset;
6986 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
6987 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6988 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6989 { NULL, 0, 0, 0, NULL }
6992 static int
6993 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_) {
6994 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6995 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
6996 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6997 gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
7000 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7001 return offset;
7002 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7003 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7005 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7008 return offset;
7012 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
7013 { &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 },
7014 { &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 },
7015 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7016 { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
7017 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7018 { &hf_gsm_map_sm_smDeliveryTimer, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
7019 { &hf_gsm_map_sm_smDeliveryStartTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
7020 { &hf_gsm_map_sm_smsOverIP_OnlyIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7021 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
7022 { &hf_gsm_map_sm_maximumRetransmissionTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
7023 { &hf_gsm_map_sm_smsGmscAddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7024 { &hf_gsm_map_sm_smsGmscDiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7025 { NULL, 0, 0, 0, NULL }
7028 static int
7029 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_) {
7030 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7031 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7032 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7033 gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
7036 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7037 return offset;
7038 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7039 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7041 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7044 return offset;
7048 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
7049 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7050 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7051 { NULL, 0, 0, 0, NULL }
7054 static int
7055 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_) {
7056 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7057 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7058 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7059 gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
7062 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7063 return offset;
7064 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7065 actx->pinfo->p2p_dir = P2P_DIR_RECV;
7067 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7070 return offset;
7074 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
7075 { &hf_gsm_map_sm_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7076 { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
7077 { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7078 { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7079 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7080 { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7081 { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7082 { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7083 { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7084 { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7085 { &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 },
7086 { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7087 { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7088 { &hf_gsm_map_sm_singleAttemptDelivery, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7089 { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID },
7090 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7091 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcome, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7092 { &hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7093 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7094 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
7095 { &hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7096 { NULL, 0, 0, 0, NULL }
7099 static int
7100 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_) {
7101 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7102 gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
7104 return offset;
7108 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
7109 { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7110 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7111 { NULL, 0, 0, 0, NULL }
7114 static int
7115 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_) {
7116 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7117 gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
7119 return offset;
7123 static const value_string gsm_map_sm_SmsGmsc_Alert_Event_vals[] = {
7124 { 0, "msAvailableForMtSms" },
7125 { 1, "msUnderNewServingNode" },
7126 { 0, NULL }
7130 static int
7131 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_) {
7132 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7133 NULL);
7135 return offset;
7139 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
7140 { &hf_gsm_map_sm_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7141 { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
7142 { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7143 { &hf_gsm_map_sm_correlationID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_CorrelationID },
7144 { &hf_gsm_map_sm_maximumUeAvailabilityTime, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
7145 { &hf_gsm_map_sm_smsGmscAlertEvent, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SmsGmsc_Alert_Event },
7146 { &hf_gsm_map_sm_smsGmscDiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7147 { &hf_gsm_map_sm_newSGSNNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7148 { &hf_gsm_map_sm_newSGSNDiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7149 { &hf_gsm_map_sm_newMMENumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7150 { &hf_gsm_map_sm_newMMEDiameterAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7151 { &hf_gsm_map_sm_newMSCNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7152 { NULL, 0, 0, 0, NULL }
7155 static int
7156 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_) {
7157 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7158 gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
7160 return offset;
7164 static int * const gsm_map_sm_MW_Status_bits[] = {
7165 &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
7166 &hf_gsm_map_sm_MW_Status_mnrf_Set,
7167 &hf_gsm_map_sm_MW_Status_mcef_Set,
7168 &hf_gsm_map_sm_MW_Status_mnrg_Set,
7169 &hf_gsm_map_sm_MW_Status_mnr5g_Set,
7170 &hf_gsm_map_sm_MW_Status_mnr5gn3g_Set,
7171 NULL
7174 static int
7175 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_) {
7176 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7177 gsm_map_sm_MW_Status_bits, 6, hf_index, ett_gsm_map_sm_MW_Status,
7178 NULL);
7180 return offset;
7184 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
7185 { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7186 { &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 },
7187 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7188 { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7189 { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7190 { &hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7191 { &hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
7192 { NULL, 0, 0, 0, NULL }
7195 static int
7196 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_) {
7197 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7198 gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
7200 return offset;
7204 static const value_string gsm_map_sm_AlertReason_vals[] = {
7205 { 0, "ms-Present" },
7206 { 1, "memoryAvailable" },
7207 { 0, NULL }
7211 static int
7212 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_) {
7213 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7214 NULL);
7216 return offset;
7220 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
7221 { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7222 { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
7223 { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
7224 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7225 { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
7226 { &hf_gsm_map_sm_maximumUeAvailabilityTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
7227 { NULL, 0, 0, 0, NULL }
7230 static int
7231 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_) {
7232 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7233 gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
7235 return offset;
7239 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
7240 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7241 { NULL, 0, 0, 0, NULL }
7244 static int
7245 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_) {
7246 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7247 gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
7249 return offset;
7253 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
7254 { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
7255 { &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 },
7256 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
7257 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7258 { NULL, 0, 0, 0, NULL }
7261 static int
7262 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_) {
7263 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7264 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7265 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7266 gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
7269 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7270 return offset;
7271 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7272 actx->pinfo->p2p_dir = P2P_DIR_SENT;
7274 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7277 return offset;
7281 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
7282 { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7285 static int
7286 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_) {
7287 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7288 gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
7290 return offset;
7294 static const ber_sequence_t gsm_map_sm_AdditionalDispatcherList_sequence_of[1] = {
7295 { &hf_gsm_map_sm_AdditionalDispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7298 static int
7299 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_) {
7300 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7301 gsm_map_sm_AdditionalDispatcherList_sequence_of, hf_index, ett_gsm_map_sm_AdditionalDispatcherList);
7303 return offset;
7307 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
7308 { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
7309 { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
7310 { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
7311 { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7312 { &hf_gsm_map_sm_additionalDispatcherList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_AdditionalDispatcherList },
7313 { NULL, 0, 0, 0, NULL }
7316 static int
7317 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_) {
7318 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
7319 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
7320 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7321 gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
7324 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
7325 return offset;
7326 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
7327 actx->pinfo->p2p_dir = P2P_DIR_RECV;
7329 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
7332 return offset;
7336 /* --- Module MAP-OM-DataTypes --- --- --- */
7340 static int
7341 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_) {
7342 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7343 NULL);
7345 return offset;
7350 static int
7351 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_) {
7352 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7353 NULL);
7355 return offset;
7360 static int
7361 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_) {
7362 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7363 NULL);
7365 return offset;
7369 static const value_string gsm_map_om_TraceDepth_vals[] = {
7370 { 0, "minimum" },
7371 { 1, "medium" },
7372 { 2, "maximum" },
7373 { 0, NULL }
7377 static int
7378 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_) {
7379 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7380 NULL);
7382 return offset;
7386 static const value_string gsm_map_om_TraceDepthExtension_vals[] = {
7387 { 0, "minimumWithoutVendorSpecificExtension" },
7388 { 1, "mediumWithoutVendorSpecificExtension" },
7389 { 2, "maximumWithoutVendorSpecificExtension" },
7390 { 0, NULL }
7394 static int
7395 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_) {
7396 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7397 NULL);
7399 return offset;
7403 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
7404 { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7405 { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7406 { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7407 { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7408 { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7409 { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7410 { &hf_gsm_map_om_mme_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7411 { &hf_gsm_map_om_sgw_TraceDepth, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7412 { &hf_gsm_map_om_pgw_TraceDepth, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7413 { &hf_gsm_map_om_eNB_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7414 { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7415 { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7416 { &hf_gsm_map_om_sgsn_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7417 { &hf_gsm_map_om_ggsn_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7418 { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7419 { &hf_gsm_map_om_bmsc_TraceDepthExtension, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7420 { &hf_gsm_map_om_mme_TraceDepthExtension, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7421 { &hf_gsm_map_om_sgw_TraceDepthExtension, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7422 { &hf_gsm_map_om_pgw_TraceDepthExtension, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7423 { &hf_gsm_map_om_eNB_TraceDepthExtension, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7424 { NULL, 0, 0, 0, NULL }
7427 static int
7428 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_) {
7429 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7430 gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
7432 return offset;
7436 static int * const gsm_map_om_TraceNE_TypeList_bits[] = {
7437 &hf_gsm_map_om_TraceNE_TypeList_msc_s,
7438 &hf_gsm_map_om_TraceNE_TypeList_mgw,
7439 &hf_gsm_map_om_TraceNE_TypeList_sgsn,
7440 &hf_gsm_map_om_TraceNE_TypeList_ggsn,
7441 &hf_gsm_map_om_TraceNE_TypeList_rnc,
7442 &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
7443 &hf_gsm_map_om_TraceNE_TypeList_mme,
7444 &hf_gsm_map_om_TraceNE_TypeList_sgw,
7445 &hf_gsm_map_om_TraceNE_TypeList_pgw,
7446 &hf_gsm_map_om_TraceNE_TypeList_eNB,
7447 NULL
7450 static int
7451 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_) {
7452 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7453 gsm_map_om_TraceNE_TypeList_bits, 10, hf_index, ett_gsm_map_om_TraceNE_TypeList,
7454 NULL);
7456 return offset;
7460 static int * const gsm_map_om_MSC_S_InterfaceList_bits[] = {
7461 &hf_gsm_map_om_MSC_S_InterfaceList_a,
7462 &hf_gsm_map_om_MSC_S_InterfaceList_iu,
7463 &hf_gsm_map_om_MSC_S_InterfaceList_mc,
7464 &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
7465 &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
7466 &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
7467 &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
7468 &hf_gsm_map_om_MSC_S_InterfaceList_cap,
7469 &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
7470 &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
7471 NULL
7474 static int
7475 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_) {
7476 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7477 gsm_map_om_MSC_S_InterfaceList_bits, 10, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
7478 NULL);
7480 return offset;
7484 static int * const gsm_map_om_MGW_InterfaceList_bits[] = {
7485 &hf_gsm_map_om_MGW_InterfaceList_mc,
7486 &hf_gsm_map_om_MGW_InterfaceList_nb_up,
7487 &hf_gsm_map_om_MGW_InterfaceList_iu_up,
7488 NULL
7491 static int
7492 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_) {
7493 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7494 gsm_map_om_MGW_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_MGW_InterfaceList,
7495 NULL);
7497 return offset;
7501 static int * const gsm_map_om_SGSN_InterfaceList_bits[] = {
7502 &hf_gsm_map_om_SGSN_InterfaceList_gb,
7503 &hf_gsm_map_om_SGSN_InterfaceList_iu,
7504 &hf_gsm_map_om_SGSN_InterfaceList_gn,
7505 &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
7506 &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
7507 &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
7508 &hf_gsm_map_om_SGSN_InterfaceList_gs,
7509 &hf_gsm_map_om_SGSN_InterfaceList_ge,
7510 &hf_gsm_map_om_SGSN_InterfaceList_s3,
7511 &hf_gsm_map_om_SGSN_InterfaceList_s4,
7512 &hf_gsm_map_om_SGSN_InterfaceList_s6d,
7513 NULL
7516 static int
7517 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_) {
7518 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7519 gsm_map_om_SGSN_InterfaceList_bits, 11, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
7520 NULL);
7522 return offset;
7526 static int * const gsm_map_om_GGSN_InterfaceList_bits[] = {
7527 &hf_gsm_map_om_GGSN_InterfaceList_gn,
7528 &hf_gsm_map_om_GGSN_InterfaceList_gi,
7529 &hf_gsm_map_om_GGSN_InterfaceList_gmb,
7530 NULL
7533 static int
7534 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_) {
7535 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7536 gsm_map_om_GGSN_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
7537 NULL);
7539 return offset;
7543 static int * const gsm_map_om_RNC_InterfaceList_bits[] = {
7544 &hf_gsm_map_om_RNC_InterfaceList_iu,
7545 &hf_gsm_map_om_RNC_InterfaceList_iur,
7546 &hf_gsm_map_om_RNC_InterfaceList_iub,
7547 &hf_gsm_map_om_RNC_InterfaceList_uu,
7548 NULL
7551 static int
7552 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_) {
7553 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7554 gsm_map_om_RNC_InterfaceList_bits, 4, hf_index, ett_gsm_map_om_RNC_InterfaceList,
7555 NULL);
7557 return offset;
7561 static int * const gsm_map_om_BMSC_InterfaceList_bits[] = {
7562 &hf_gsm_map_om_BMSC_InterfaceList_gmb,
7563 NULL
7566 static int
7567 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_) {
7568 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7569 gsm_map_om_BMSC_InterfaceList_bits, 1, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
7570 NULL);
7572 return offset;
7576 static int * const gsm_map_om_MME_InterfaceList_bits[] = {
7577 &hf_gsm_map_om_MME_InterfaceList_s1_mme,
7578 &hf_gsm_map_om_MME_InterfaceList_s3,
7579 &hf_gsm_map_om_MME_InterfaceList_s6a,
7580 &hf_gsm_map_om_MME_InterfaceList_s10,
7581 &hf_gsm_map_om_MME_InterfaceList_s11,
7582 NULL
7585 static int
7586 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_) {
7587 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7588 gsm_map_om_MME_InterfaceList_bits, 5, hf_index, ett_gsm_map_om_MME_InterfaceList,
7589 NULL);
7591 return offset;
7595 static int * const gsm_map_om_SGW_InterfaceList_bits[] = {
7596 &hf_gsm_map_om_SGW_InterfaceList_s4,
7597 &hf_gsm_map_om_SGW_InterfaceList_s5,
7598 &hf_gsm_map_om_SGW_InterfaceList_s8b,
7599 &hf_gsm_map_om_SGW_InterfaceList_s11,
7600 &hf_gsm_map_om_SGW_InterfaceList_gxc,
7601 NULL
7604 static int
7605 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_) {
7606 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7607 gsm_map_om_SGW_InterfaceList_bits, 5, hf_index, ett_gsm_map_om_SGW_InterfaceList,
7608 NULL);
7610 return offset;
7614 static int * const gsm_map_om_PGW_InterfaceList_bits[] = {
7615 &hf_gsm_map_om_PGW_InterfaceList_s2a,
7616 &hf_gsm_map_om_PGW_InterfaceList_s2b,
7617 &hf_gsm_map_om_PGW_InterfaceList_s2c,
7618 &hf_gsm_map_om_PGW_InterfaceList_s5,
7619 &hf_gsm_map_om_PGW_InterfaceList_s6b,
7620 &hf_gsm_map_om_PGW_InterfaceList_gx,
7621 &hf_gsm_map_om_PGW_InterfaceList_s8b,
7622 &hf_gsm_map_om_PGW_InterfaceList_sgi,
7623 NULL
7626 static int
7627 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_) {
7628 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7629 gsm_map_om_PGW_InterfaceList_bits, 8, hf_index, ett_gsm_map_om_PGW_InterfaceList,
7630 NULL);
7632 return offset;
7636 static int * const gsm_map_om_ENB_InterfaceList_bits[] = {
7637 &hf_gsm_map_om_ENB_InterfaceList_s1_mme,
7638 &hf_gsm_map_om_ENB_InterfaceList_x2,
7639 &hf_gsm_map_om_ENB_InterfaceList_uu,
7640 NULL
7643 static int
7644 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_) {
7645 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7646 gsm_map_om_ENB_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_ENB_InterfaceList,
7647 NULL);
7649 return offset;
7653 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
7654 { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
7655 { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
7656 { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
7657 { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
7658 { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
7659 { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
7660 { &hf_gsm_map_om_mme_List , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_InterfaceList },
7661 { &hf_gsm_map_om_sgw_List , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_InterfaceList },
7662 { &hf_gsm_map_om_pgw_List , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_InterfaceList },
7663 { &hf_gsm_map_om_eNB_List , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ENB_InterfaceList },
7664 { NULL, 0, 0, 0, NULL }
7667 static int
7668 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_) {
7669 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7670 gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
7672 return offset;
7676 static int * const gsm_map_om_MSC_S_EventList_bits[] = {
7677 &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
7678 &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
7679 &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
7680 &hf_gsm_map_om_MSC_S_EventList_handovers,
7681 &hf_gsm_map_om_MSC_S_EventList_ss,
7682 NULL
7685 static int
7686 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_) {
7687 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7688 gsm_map_om_MSC_S_EventList_bits, 5, hf_index, ett_gsm_map_om_MSC_S_EventList,
7689 NULL);
7691 return offset;
7695 static int * const gsm_map_om_MGW_EventList_bits[] = {
7696 &hf_gsm_map_om_MGW_EventList_context,
7697 NULL
7700 static int
7701 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_) {
7702 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7703 gsm_map_om_MGW_EventList_bits, 1, hf_index, ett_gsm_map_om_MGW_EventList,
7704 NULL);
7706 return offset;
7710 static int * const gsm_map_om_SGSN_EventList_bits[] = {
7711 &hf_gsm_map_om_SGSN_EventList_pdpContext,
7712 &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
7713 &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
7714 &hf_gsm_map_om_SGSN_EventList_mbmsContext,
7715 NULL
7718 static int
7719 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_) {
7720 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7721 gsm_map_om_SGSN_EventList_bits, 4, hf_index, ett_gsm_map_om_SGSN_EventList,
7722 NULL);
7724 return offset;
7728 static int * const gsm_map_om_GGSN_EventList_bits[] = {
7729 &hf_gsm_map_om_GGSN_EventList_pdpContext,
7730 &hf_gsm_map_om_GGSN_EventList_mbmsContext,
7731 NULL
7734 static int
7735 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_) {
7736 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7737 gsm_map_om_GGSN_EventList_bits, 2, hf_index, ett_gsm_map_om_GGSN_EventList,
7738 NULL);
7740 return offset;
7744 static int * const gsm_map_om_BMSC_EventList_bits[] = {
7745 &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
7746 NULL
7749 static int
7750 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_) {
7751 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7752 gsm_map_om_BMSC_EventList_bits, 1, hf_index, ett_gsm_map_om_BMSC_EventList,
7753 NULL);
7755 return offset;
7759 static int * const gsm_map_om_MME_EventList_bits[] = {
7760 &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest,
7761 &hf_gsm_map_om_MME_EventList_serviceRequestts,
7762 &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach,
7763 &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection,
7764 &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion,
7765 &hf_gsm_map_om_MME_EventList_handover,
7766 NULL
7769 static int
7770 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_) {
7771 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7772 gsm_map_om_MME_EventList_bits, 6, hf_index, ett_gsm_map_om_MME_EventList,
7773 NULL);
7775 return offset;
7779 static int * const gsm_map_om_SGW_EventList_bits[] = {
7780 &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation,
7781 &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination,
7782 &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion,
7783 NULL
7786 static int
7787 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_) {
7788 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7789 gsm_map_om_SGW_EventList_bits, 3, hf_index, ett_gsm_map_om_SGW_EventList,
7790 NULL);
7792 return offset;
7796 static int * const gsm_map_om_PGW_EventList_bits[] = {
7797 &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation,
7798 &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination,
7799 &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion,
7800 NULL
7803 static int
7804 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_) {
7805 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7806 gsm_map_om_PGW_EventList_bits, 3, hf_index, ett_gsm_map_om_PGW_EventList,
7807 NULL);
7809 return offset;
7813 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
7814 { &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 },
7815 { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
7816 { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
7817 { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
7818 { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
7819 { &hf_gsm_map_om_mme_List_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_EventList },
7820 { &hf_gsm_map_om_sgw_List_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_EventList },
7821 { &hf_gsm_map_om_pgw_List_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_EventList },
7822 { NULL, 0, 0, 0, NULL }
7825 static int
7826 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_) {
7827 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7828 gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
7830 return offset;
7834 static const value_string gsm_map_om_JobType_vals[] = {
7835 { 0, "immediate-MDT-only" },
7836 { 1, "logged-MDT-only" },
7837 { 2, "trace-only" },
7838 { 3, "immediate-MDT-and-trace" },
7839 { 0, NULL }
7843 static int
7844 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_) {
7845 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7846 NULL);
7848 return offset;
7852 static const ber_sequence_t gsm_map_om_CGI_List_sequence_of[1] = {
7853 { &hf_gsm_map_om_CGI_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
7856 static int
7857 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_) {
7858 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7859 gsm_map_om_CGI_List_sequence_of, hf_index, ett_gsm_map_om_CGI_List);
7861 return offset;
7865 static const ber_sequence_t gsm_map_om_E_UTRAN_CGI_List_sequence_of[1] = {
7866 { &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 },
7869 static int
7870 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_) {
7871 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7872 gsm_map_om_E_UTRAN_CGI_List_sequence_of, hf_index, ett_gsm_map_om_E_UTRAN_CGI_List);
7874 return offset;
7878 static const ber_sequence_t gsm_map_om_RoutingAreaId_List_sequence_of[1] = {
7879 { &hf_gsm_map_om_RoutingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_RAIdentity },
7882 static int
7883 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_) {
7884 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7885 gsm_map_om_RoutingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_RoutingAreaId_List);
7887 return offset;
7891 static const ber_sequence_t gsm_map_om_LocationAreaId_List_sequence_of[1] = {
7892 { &hf_gsm_map_om_LocationAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LAIFixedLength },
7895 static int
7896 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_) {
7897 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7898 gsm_map_om_LocationAreaId_List_sequence_of, hf_index, ett_gsm_map_om_LocationAreaId_List);
7900 return offset;
7904 static const ber_sequence_t gsm_map_om_TrackingAreaId_List_sequence_of[1] = {
7905 { &hf_gsm_map_om_TrackingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TA_Id },
7908 static int
7909 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_) {
7910 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7911 gsm_map_om_TrackingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_TrackingAreaId_List);
7913 return offset;
7917 static const ber_sequence_t gsm_map_om_AreaScope_sequence[] = {
7918 { &hf_gsm_map_om_cgi_List , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_CGI_List },
7919 { &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 },
7920 { &hf_gsm_map_om_routingAreaId_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RoutingAreaId_List },
7921 { &hf_gsm_map_om_locationAreaId_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LocationAreaId_List },
7922 { &hf_gsm_map_om_trackingAreaId_List, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TrackingAreaId_List },
7923 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7924 { NULL, 0, 0, 0, NULL }
7927 static int
7928 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_) {
7929 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7930 gsm_map_om_AreaScope_sequence, hf_index, ett_gsm_map_om_AreaScope);
7932 return offset;
7937 static int
7938 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_) {
7939 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7940 NULL);
7942 return offset;
7947 static int
7948 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_) {
7949 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7950 NULL);
7952 return offset;
7956 static const value_string gsm_map_om_ReportInterval_vals[] = {
7957 { 0, "umts250ms" },
7958 { 1, "umts500ms" },
7959 { 2, "umts1000ms" },
7960 { 3, "umts2000ms" },
7961 { 4, "umts3000ms" },
7962 { 5, "umts4000ms" },
7963 { 6, "umts6000ms" },
7964 { 7, "umts8000ms" },
7965 { 8, "umts12000ms" },
7966 { 9, "umts16000ms" },
7967 { 10, "umts20000ms" },
7968 { 11, "umts24000ms" },
7969 { 12, "umts28000ms" },
7970 { 13, "umts32000ms" },
7971 { 14, "umts64000ms" },
7972 { 15, "lte120ms" },
7973 { 16, "lte240ms" },
7974 { 17, "lte480ms" },
7975 { 18, "lte640ms" },
7976 { 19, "lte1024ms" },
7977 { 20, "lte2048ms" },
7978 { 21, "lte5120ms" },
7979 { 22, "lte10240ms" },
7980 { 23, "lte1min" },
7981 { 24, "lte6min" },
7982 { 25, "lte12min" },
7983 { 26, "lte30min" },
7984 { 27, "lte60min" },
7985 { 0, NULL }
7989 static int
7990 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_) {
7991 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7992 NULL);
7994 return offset;
7998 static const value_string gsm_map_om_ReportAmount_vals[] = {
7999 { 0, "d1" },
8000 { 1, "d2" },
8001 { 2, "d4" },
8002 { 3, "d8" },
8003 { 4, "d16" },
8004 { 5, "d32" },
8005 { 6, "d64" },
8006 { 7, "infinity" },
8007 { 0, NULL }
8011 static int
8012 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_) {
8013 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8014 NULL);
8016 return offset;
8021 static int
8022 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_) {
8023 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8024 NULL);
8026 return offset;
8031 static int
8032 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_) {
8033 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8034 NULL);
8036 return offset;
8040 static const value_string gsm_map_om_LoggingInterval_vals[] = {
8041 { 0, "d1dot28" },
8042 { 1, "d2dot56" },
8043 { 2, "d5dot12" },
8044 { 3, "d10dot24" },
8045 { 4, "d20dot48" },
8046 { 5, "d30dot72" },
8047 { 6, "d40dot96" },
8048 { 7, "d61dot44" },
8049 { 0, NULL }
8053 static int
8054 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_) {
8055 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8056 NULL);
8058 return offset;
8062 static const value_string gsm_map_om_LoggingDuration_vals[] = {
8063 { 0, "d600sec" },
8064 { 1, "d1200sec" },
8065 { 2, "d2400sec" },
8066 { 3, "d3600sec" },
8067 { 4, "d5400sec" },
8068 { 5, "d7200sec" },
8069 { 0, NULL }
8073 static int
8074 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_) {
8075 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8076 NULL);
8078 return offset;
8082 static const value_string gsm_map_om_PeriodUMTS_vals[] = {
8083 { 0, "d250ms" },
8084 { 1, "d500ms" },
8085 { 2, "d1000ms" },
8086 { 3, "d2000ms" },
8087 { 4, "d3000ms" },
8088 { 5, "d4000ms" },
8089 { 6, "d6000ms" },
8090 { 7, "d8000ms" },
8091 { 8, "d12000ms" },
8092 { 9, "d16000ms" },
8093 { 10, "d20000ms" },
8094 { 11, "d24000ms" },
8095 { 12, "d28000ms" },
8096 { 13, "d32000ms" },
8097 { 14, "d64000ms" },
8098 { 0, NULL }
8102 static int
8103 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_) {
8104 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8105 NULL);
8107 return offset;
8111 static const value_string gsm_map_om_PeriodLTE_vals[] = {
8112 { 0, "d1024ms" },
8113 { 1, "d1280ms" },
8114 { 2, "d2048ms" },
8115 { 3, "d2560ms" },
8116 { 4, "d5120ms" },
8117 { 5, "d10240ms" },
8118 { 6, "d1min" },
8119 { 0, NULL }
8123 static int
8124 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_) {
8125 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8126 NULL);
8128 return offset;
8133 static int
8134 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_) {
8135 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8136 NULL);
8138 return offset;
8143 static int
8144 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_) {
8145 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8146 NULL);
8148 return offset;
8153 static int
8154 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_) {
8155 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8156 NULL);
8158 return offset;
8163 static int
8164 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_) {
8165 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8166 NULL);
8168 return offset;
8172 static const ber_sequence_t gsm_map_om_MDT_Allowed_PLMNId_List_sequence_of[1] = {
8173 { &hf_gsm_map_om_MDT_Allowed_PLMNId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
8176 static int
8177 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_) {
8178 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8179 gsm_map_om_MDT_Allowed_PLMNId_List_sequence_of, hf_index, ett_gsm_map_om_MDT_Allowed_PLMNId_List);
8181 return offset;
8185 static const ber_sequence_t gsm_map_om_MDT_Configuration_sequence[] = {
8186 { &hf_gsm_map_om_jobType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_JobType },
8187 { &hf_gsm_map_om_areaScope, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_AreaScope },
8188 { &hf_gsm_map_om_listOfMeasurements, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ListOfMeasurements },
8189 { &hf_gsm_map_om_reportingTrigger, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportingTrigger },
8190 { &hf_gsm_map_om_reportInterval, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ReportInterval },
8191 { &hf_gsm_map_om_reportAmount, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportAmount },
8192 { &hf_gsm_map_om_eventThresholdRSRP, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_EventThresholdRSRP },
8193 { &hf_gsm_map_om_eventThresholdRSRQ, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThresholdRSRQ },
8194 { &hf_gsm_map_om_loggingInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingInterval },
8195 { &hf_gsm_map_om_loggingDuration, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingDuration },
8196 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8197 { &hf_gsm_map_om_measurementPeriodUMTS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodUMTS },
8198 { &hf_gsm_map_om_measurementPeriodLTE, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodLTE },
8199 { &hf_gsm_map_om_collectionPeriodRRM_UMTS, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodUMTS },
8200 { &hf_gsm_map_om_collectionPeriodRRM_LTE, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodLTE },
8201 { &hf_gsm_map_om_positioningMethod, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PositioningMethod },
8202 { &hf_gsm_map_om_measurementQuantity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MeasurementQuantity },
8203 { &hf_gsm_map_om_eventThreshold1F, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThreshold1F },
8204 { &hf_gsm_map_om_eventThreshold1I, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThreshold1I },
8205 { &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 },
8206 { NULL, 0, 0, 0, NULL }
8209 static int
8210 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_) {
8211 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8212 gsm_map_om_MDT_Configuration_sequence, hf_index, ett_gsm_map_om_MDT_Configuration);
8214 return offset;
8218 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
8219 { &hf_gsm_map_om_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
8220 { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
8221 { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
8222 { &hf_gsm_map_om_omc_Id , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
8223 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8224 { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
8225 { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
8226 { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
8227 { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
8228 { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
8229 { &hf_gsm_map_om_traceCollectionEntity, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
8230 { &hf_gsm_map_om_mdt_Configuration, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MDT_Configuration },
8231 { NULL, 0, 0, 0, NULL }
8234 static int
8235 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_) {
8236 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8237 gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
8239 return offset;
8244 static int
8245 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_) {
8246 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8247 NULL);
8249 return offset;
8253 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
8254 { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
8255 { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
8256 { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
8257 { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
8258 { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
8259 { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
8260 { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
8261 { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
8262 { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
8263 { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
8264 { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
8265 { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
8266 { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
8267 { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
8268 { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
8269 { NULL, 0, 0, 0, NULL }
8272 static int
8273 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_) {
8274 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8275 gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
8277 return offset;
8282 static int
8283 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_) {
8284 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
8286 return offset;
8290 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
8291 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8292 { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
8293 { NULL, 0, 0, 0, NULL }
8296 static int
8297 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_) {
8298 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8299 gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
8301 return offset;
8305 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
8306 { &hf_gsm_map_om_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
8307 { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
8308 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8309 { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
8310 { NULL, 0, 0, 0, NULL }
8313 static int
8314 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_) {
8315 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8316 gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
8318 return offset;
8322 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
8323 { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8324 { NULL, 0, 0, 0, NULL }
8327 static int
8328 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_) {
8329 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8330 gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
8332 return offset;
8336 /* --- Module MAP-MS-DataTypes --- --- --- */
8339 static int * const gsm_map_ms_SupportedCamelPhases_bits[] = {
8340 &hf_gsm_map_ms_SupportedCamelPhases_phase1,
8341 &hf_gsm_map_ms_SupportedCamelPhases_phase2,
8342 &hf_gsm_map_ms_SupportedCamelPhases_phase3,
8343 &hf_gsm_map_ms_SupportedCamelPhases_phase4,
8344 NULL
8348 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_) {
8349 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8350 gsm_map_ms_SupportedCamelPhases_bits, 4, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
8351 NULL);
8353 return offset;
8358 static int
8359 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_) {
8360 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
8362 return offset;
8366 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
8367 { 0, "basicISTSupported" },
8368 { 1, "istCommandSupported" },
8369 { 0, NULL }
8373 static int
8374 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_) {
8375 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8376 NULL);
8378 return offset;
8383 static int
8384 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_) {
8385 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8386 NULL);
8388 return offset;
8392 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
8393 { 0, "sendSubscriberData" },
8394 { 1, "subscriberDataStored" },
8395 { 0, NULL }
8398 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
8399 { 0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8400 { 1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
8401 { 0, NULL, 0, 0, 0, NULL }
8404 static int
8405 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_) {
8406 offset = dissect_ber_choice(actx, tree, tvb, offset,
8407 gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
8408 NULL);
8410 return offset;
8414 static int * const gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
8415 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
8416 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
8417 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
8418 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
8419 &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
8420 NULL
8423 static int
8424 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_) {
8425 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8426 gsm_map_ms_SupportedLCS_CapabilitySets_bits, 5, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
8427 NULL);
8429 return offset;
8433 static int * const gsm_map_ms_OfferedCamel4CSIs_bits[] = {
8434 &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
8435 &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
8436 &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
8437 &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
8438 &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
8439 &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
8440 &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
8441 NULL
8444 static int
8445 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_) {
8446 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8447 gsm_map_ms_OfferedCamel4CSIs_bits, 7, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
8448 NULL);
8450 return offset;
8454 static int * const gsm_map_ms_SupportedRAT_Types_bits[] = {
8455 &hf_gsm_map_ms_SupportedRAT_Types_utran,
8456 &hf_gsm_map_ms_SupportedRAT_Types_geran,
8457 &hf_gsm_map_ms_SupportedRAT_Types_gan,
8458 &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
8459 &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
8460 &hf_gsm_map_ms_SupportedRAT_Types_nb_iot,
8461 NULL
8464 static int
8465 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_) {
8466 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8467 gsm_map_ms_SupportedRAT_Types_bits, 6, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
8468 NULL);
8470 return offset;
8474 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
8475 { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
8476 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8477 { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8478 { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
8479 { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
8480 { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8481 { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
8482 { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
8483 { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
8484 { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8485 { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8486 { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8487 { &hf_gsm_map_ms_reset_ids_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8488 { NULL, 0, 0, 0, NULL }
8491 static int
8492 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_) {
8493 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8494 gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
8496 return offset;
8500 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
8501 { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
8502 { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8503 { NULL, 0, 0, 0, NULL }
8506 static int
8507 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_) {
8508 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8509 gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
8511 return offset;
8516 static int
8517 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_) {
8518 tvbuff_t *parameter_tvb = NULL;
8519 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, -1,
8520 &parameter_tvb);
8522 if (parameter_tvb) {
8523 actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
8527 return offset;
8531 static const value_string gsm_map_ms_LocationArea_vals[] = {
8532 { 0, "laiFixedLength" },
8533 { 1, "lac" },
8534 { 0, NULL }
8537 static const ber_choice_t gsm_map_ms_LocationArea_choice[] = {
8538 { 0, &hf_gsm_map_ms_laiFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
8539 { 1, &hf_gsm_map_ms_lac , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LAC },
8540 { 0, NULL, 0, 0, 0, NULL }
8543 static int
8544 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_) {
8545 offset = dissect_ber_choice(actx, tree, tvb, offset,
8546 gsm_map_ms_LocationArea_choice, hf_index, ett_gsm_map_ms_LocationArea,
8547 NULL);
8549 return offset;
8553 static const ber_sequence_t gsm_map_ms_PagingArea_sequence_of[1] = {
8554 { &hf_gsm_map_ms_PagingArea_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LocationArea },
8557 static int
8558 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_) {
8559 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8560 gsm_map_ms_PagingArea_sequence_of, hf_index, ett_gsm_map_ms_PagingArea);
8562 return offset;
8566 static const ber_sequence_t gsm_map_ms_EPLMN_List_sequence_of[1] = {
8567 { &hf_gsm_map_ms_EPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
8570 static int
8571 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_) {
8572 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8573 gsm_map_ms_EPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_EPLMN_List);
8575 return offset;
8579 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
8580 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
8581 { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8582 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8583 { &hf_gsm_map_ms_lmsi , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
8584 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8585 { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
8586 { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8587 { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8588 { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
8589 { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
8590 { &hf_gsm_map_ms_pagingArea, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
8591 { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8592 { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8593 { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List },
8594 { &hf_gsm_map_ms_mme_DiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
8595 { NULL, 0, 0, 0, NULL }
8598 static int
8599 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_) {
8600 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8601 gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
8603 return offset;
8607 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
8608 { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8609 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8610 { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8611 { &hf_gsm_map_ms_pagingArea_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8612 { NULL, 0, 0, 0, NULL }
8615 static int
8616 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_) {
8617 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8618 gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
8620 return offset;
8624 static const value_string gsm_map_ms_CancellationType_vals[] = {
8625 { 0, "updateProcedure" },
8626 { 1, "subscriptionWithdraw" },
8627 { 2, "initialAttachProcedure" },
8628 { 0, NULL }
8632 static int
8633 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_) {
8634 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8635 NULL);
8637 return offset;
8641 static const value_string gsm_map_ms_TypeOfUpdate_vals[] = {
8642 { 0, "sgsn-change" },
8643 { 1, "mme-change" },
8644 { 0, NULL }
8648 static int
8649 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_) {
8650 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8651 NULL);
8653 return offset;
8657 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
8658 { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
8659 { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
8660 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8661 { &hf_gsm_map_ms_typeOfUpdate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TypeOfUpdate },
8662 { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8663 { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8664 { &hf_gsm_map_ms_newMSC_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8665 { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8666 { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
8667 { &hf_gsm_map_ms_reattach_Required, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8668 { NULL, 0, 0, 0, NULL }
8671 static int
8672 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_) {
8673 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8674 gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
8676 return offset;
8681 static int
8682 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_) {
8683 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8684 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_CancelLocationArg_U);
8686 return offset;
8690 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
8691 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8692 { NULL, 0, 0, 0, NULL }
8695 static int
8696 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_) {
8697 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8698 gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
8700 return offset;
8706 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_) {
8707 tvbuff_t *parameter_tvb;
8708 proto_tree *subtree;
8709 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8710 &parameter_tvb);
8712 if (!parameter_tvb)
8713 return offset;
8715 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
8716 dissect_geographical_description(parameter_tvb, actx->pinfo, subtree);
8719 return offset;
8724 static int
8725 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_) {
8726 tvbuff_t *parameter_tvb;
8727 proto_tree *subtree;
8728 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8729 &parameter_tvb);
8731 if (!parameter_tvb)
8732 return offset;
8734 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LocationNumber);
8735 dissect_isup_location_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
8738 return offset;
8744 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_) {
8745 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8746 NULL);
8748 return offset;
8753 static int
8754 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_) {
8755 tvbuff_t *parameter_tvb;
8756 proto_tree *subtree;
8757 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8758 &parameter_tvb);
8760 if (!parameter_tvb)
8761 return offset;
8763 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeodeticInformation);
8764 dissect_isup_calling_geodetic_location_parameter(parameter_tvb, actx->pinfo, subtree, NULL);
8767 return offset;
8771 static const ber_sequence_t gsm_map_ms_LocationInformationEPS_sequence[] = {
8772 { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI },
8773 { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id },
8774 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8775 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
8776 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
8777 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8778 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
8779 { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
8780 { NULL, 0, 0, 0, NULL }
8783 static int
8784 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_) {
8785 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8786 gsm_map_ms_LocationInformationEPS_sequence, hf_index, ett_gsm_map_ms_LocationInformationEPS);
8788 return offset;
8793 static int
8794 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_) {
8795 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8796 NULL, 0, hf_index, -1,
8797 NULL);
8799 return offset;
8804 static int
8805 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_) {
8806 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8807 NULL);
8809 return offset;
8813 static const ber_sequence_t gsm_map_ms_UserCSGInformation_sequence[] = {
8814 { &hf_gsm_map_ms_csg_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_Id },
8815 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8816 { &hf_gsm_map_ms_accessMode, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 },
8817 { &hf_gsm_map_ms_cmi , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 },
8818 { NULL, 0, 0, 0, NULL }
8821 static int
8822 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_) {
8823 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8824 gsm_map_ms_UserCSGInformation_sequence, hf_index, ett_gsm_map_ms_UserCSGInformation);
8826 return offset;
8830 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
8831 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
8832 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
8833 { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8834 { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
8835 { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
8836 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8837 { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
8838 { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8839 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
8840 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8841 { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8842 { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
8843 { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation },
8844 { NULL, 0, 0, 0, NULL }
8848 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_) {
8849 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8850 gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
8852 return offset;
8856 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
8857 { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
8858 { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_RAIdentity },
8859 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
8860 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8861 { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
8862 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8863 { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8864 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
8865 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8866 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
8867 { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation },
8868 { NULL, 0, 0, 0, NULL }
8871 static int
8872 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_) {
8873 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8874 gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
8876 return offset;
8880 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
8881 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
8882 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8883 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8884 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8885 { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
8886 { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
8887 { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
8888 { NULL, 0, 0, 0, NULL }
8891 static int
8892 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_) {
8893 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8894 gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
8896 return offset;
8901 static int
8902 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_) {
8903 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8904 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PurgeMS_Arg_U);
8906 return offset;
8910 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
8911 { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8912 { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8913 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8914 { &hf_gsm_map_ms_freezeM_TMSI, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8915 { NULL, 0, 0, 0, NULL }
8918 static int
8919 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_) {
8920 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8921 gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
8923 return offset;
8928 static int
8929 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_) {
8930 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8931 NULL);
8933 return offset;
8938 static int
8939 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_) {
8940 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8941 NULL);
8943 return offset;
8947 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
8948 { &hf_gsm_map_ms_tmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
8949 { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
8950 { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8951 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8952 { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8953 { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
8954 { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
8955 { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8956 { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8957 { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
8958 { NULL, 0, 0, 0, NULL }
8961 static int
8962 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_) {
8963 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8964 gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
8966 return offset;
8971 static int
8972 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_) {
8973 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8974 NULL);
8976 return offset;
8981 static int
8982 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_) {
8983 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8984 NULL);
8986 return offset;
8991 static int
8992 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_) {
8993 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8994 NULL);
8996 return offset;
9000 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
9001 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9002 { &hf_gsm_map_ms_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
9003 { &hf_gsm_map_ms_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
9004 { NULL, 0, 0, 0, NULL }
9007 static int
9008 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_) {
9009 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9010 gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
9012 return offset;
9016 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
9017 { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
9020 static int
9021 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_) {
9022 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9023 gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
9025 return offset;
9030 static int
9031 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_) {
9032 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9033 NULL);
9035 return offset;
9040 static int
9041 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_) {
9042 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9043 NULL);
9045 return offset;
9050 static int
9051 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_) {
9052 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9053 NULL);
9055 return offset;
9060 static int
9061 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_) {
9062 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9063 NULL);
9065 return offset;
9069 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
9070 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9071 { &hf_gsm_map_ms_xres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
9072 { &hf_gsm_map_ms_ck , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
9073 { &hf_gsm_map_ms_ik , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
9074 { &hf_gsm_map_ms_autn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
9075 { NULL, 0, 0, 0, NULL }
9078 static int
9079 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_) {
9080 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9081 gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
9083 return offset;
9087 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
9088 { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
9091 static int
9092 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_) {
9093 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9094 gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
9096 return offset;
9100 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
9101 { 0, "tripletList" },
9102 { 1, "quintupletList" },
9103 { 0, NULL }
9106 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
9107 { 0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
9108 { 1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
9109 { 0, NULL, 0, 0, 0, NULL }
9112 static int
9113 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_) {
9114 offset = dissect_ber_choice(actx, tree, tvb, offset,
9115 gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
9116 NULL);
9118 return offset;
9123 static int
9124 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_) {
9125 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9126 NULL);
9128 return offset;
9132 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
9133 { &hf_gsm_map_ms_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
9134 { &hf_gsm_map_ms_cksn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
9135 { NULL, 0, 0, 0, NULL }
9138 static int
9139 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_) {
9140 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9141 gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
9143 return offset;
9148 static int
9149 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_) {
9150 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9151 NULL);
9153 return offset;
9157 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
9158 { &hf_gsm_map_ms_ck , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
9159 { &hf_gsm_map_ms_ik , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
9160 { &hf_gsm_map_ms_ksi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
9161 { NULL, 0, 0, 0, NULL }
9164 static int
9165 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_) {
9166 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9167 gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
9169 return offset;
9173 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
9174 { 0, "gsm-SecurityContextData" },
9175 { 1, "umts-SecurityContextData" },
9176 { 0, NULL }
9179 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
9180 { 0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
9181 { 1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
9182 { 0, NULL, 0, 0, 0, NULL }
9185 static int
9186 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_) {
9187 offset = dissect_ber_choice(actx, tree, tvb, offset,
9188 gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
9189 NULL);
9191 return offset;
9195 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
9196 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9197 { &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 },
9198 { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
9199 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9200 { &hf_gsm_map_ms_lastUsedLtePLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
9201 { &hf_gsm_map_ms_mtCallPendingFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9202 { NULL, 0, 0, 0, NULL }
9205 static int
9206 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_) {
9207 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9208 gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
9210 return offset;
9215 static int
9216 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_) {
9217 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9218 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_SendIdentificationRes_U);
9220 return offset;
9225 static int
9226 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_) {
9227 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9228 NULL);
9230 return offset;
9234 static const value_string gsm_map_ms_FailureCause_vals[] = {
9235 { 0, "wrongUserResponse" },
9236 { 1, "wrongNetworkSignature" },
9237 { 0, NULL }
9241 static int
9242 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_) {
9243 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9244 NULL);
9246 return offset;
9251 static int
9252 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_) {
9253 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
9255 return offset;
9259 static const value_string gsm_map_ms_AccessType_vals[] = {
9260 { 0, "call" },
9261 { 1, "emergencyCall" },
9262 { 2, "locationUpdating" },
9263 { 3, "supplementaryService" },
9264 { 4, "shortMessage" },
9265 { 5, "gprsAttach" },
9266 { 6, "routingAreaUpdating" },
9267 { 7, "serviceRequest" },
9268 { 8, "pdpContextActivation" },
9269 { 9, "pdpContextDeactivation" },
9270 { 10, "gprsDetach" },
9271 { 0, NULL }
9275 static int
9276 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_) {
9277 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9278 NULL);
9280 return offset;
9284 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
9285 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9286 { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
9287 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9288 { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
9289 { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
9290 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9291 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9292 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9293 { NULL, 0, 0, 0, NULL }
9296 static int
9297 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_) {
9298 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9299 gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
9301 return offset;
9305 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
9306 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9307 { NULL, 0, 0, 0, NULL }
9310 static int
9311 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_) {
9312 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9313 gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
9315 return offset;
9319 static int * const gsm_map_ms_SupportedFeatures_bits[] = {
9320 &hf_gsm_map_ms_SupportedFeatures_odb_all_apn,
9321 &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
9322 &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
9323 &hf_gsm_map_ms_SupportedFeatures_odb_all_og,
9324 &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og,
9325 &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country,
9326 &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og,
9327 &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country,
9328 &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country,
9329 &hf_gsm_map_ms_SupportedFeatures_regSub,
9330 &hf_gsm_map_ms_SupportedFeatures_trace,
9331 &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep,
9332 &hf_gsm_map_ms_SupportedFeatures_lcs_universal,
9333 &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated,
9334 &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated,
9335 &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator,
9336 &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType,
9337 &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS,
9338 &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation,
9339 &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation,
9340 &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty,
9341 &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp,
9342 &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls,
9343 &hf_gsm_map_ms_SupportedFeatures_baoc,
9344 &hf_gsm_map_ms_SupportedFeatures_boic,
9345 &hf_gsm_map_ms_SupportedFeatures_boicExHC,
9346 &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval,
9347 &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn,
9348 &hf_gsm_map_ms_SupportedFeatures_smsInMME,
9349 &hf_gsm_map_ms_SupportedFeatures_smsInSGSN,
9350 &hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification,
9351 &hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval,
9352 &hf_gsm_map_ms_SupportedFeatures_partialPurge,
9353 &hf_gsm_map_ms_SupportedFeatures_gddInSGSN,
9354 &hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability,
9355 &hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration,
9356 &hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks,
9357 &hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs,
9358 &hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs,
9359 &hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT,
9360 NULL
9363 static int
9364 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_) {
9365 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9366 gsm_map_ms_SupportedFeatures_bits, 40, hf_index, ett_gsm_map_ms_SupportedFeatures,
9367 NULL);
9369 return offset;
9373 static int * const gsm_map_ms_Ext_SupportedFeatures_bits[] = {
9374 &hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT,
9375 NULL
9378 static int
9379 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_) {
9380 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9381 gsm_map_ms_Ext_SupportedFeatures_bits, 1, hf_index, ett_gsm_map_ms_Ext_SupportedFeatures,
9382 NULL);
9384 return offset;
9388 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
9389 { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9390 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9391 { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
9392 { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9393 { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
9394 { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
9395 { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
9396 { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9397 { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
9398 { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
9399 { &hf_gsm_map_ms_t_adsDataRetrieval, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9400 { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
9401 { &hf_gsm_map_ms_cancellationTypeInitialAttach, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9402 { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9403 { &hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9404 { &hf_gsm_map_ms_reset_ids_Supported, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9405 { &hf_gsm_map_ms_ext_SupportedFeatures, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SupportedFeatures },
9406 { NULL, 0, 0, 0, NULL }
9409 static int
9410 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_) {
9411 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9412 gsm_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
9414 return offset;
9419 static int
9420 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_) {
9421 tvbuff_t *parameter_tvb;
9422 proto_tree *subtree;
9423 const uint8_t *apn_str = NULL;
9425 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9426 &parameter_tvb);
9428 if (!parameter_tvb)
9429 return offset;
9431 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_apn_str);
9432 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);
9433 proto_item_append_text(actx->created_item, " - %s", apn_str);
9437 return offset;
9442 static int
9443 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_) {
9444 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9445 NULL);
9447 return offset;
9452 static int
9453 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_) {
9454 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9455 NULL);
9457 return offset;
9461 static const ber_sequence_t gsm_map_ms_PDN_GW_Identity_sequence[] = {
9462 { &hf_gsm_map_ms_pdn_gw_ipv4_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9463 { &hf_gsm_map_ms_pdn_gw_ipv6_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
9464 { &hf_gsm_map_ms_pdn_gw_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
9465 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9466 { NULL, 0, 0, 0, NULL }
9469 static int
9470 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_) {
9471 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9472 gsm_map_ms_PDN_GW_Identity_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Identity);
9474 return offset;
9479 static int
9480 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_) {
9481 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9482 NULL);
9484 return offset;
9488 static const ber_sequence_t gsm_map_ms_PDN_GW_Update_sequence[] = {
9489 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
9490 { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
9491 { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
9492 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9493 { NULL, 0, 0, 0, NULL }
9496 static int
9497 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_) {
9498 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9499 gsm_map_ms_PDN_GW_Update_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Update);
9501 return offset;
9505 static int * const gsm_map_ms_ISR_Information_bits[] = {
9506 &hf_gsm_map_ms_ISR_Information_updateLocation,
9507 &hf_gsm_map_ms_ISR_Information_cancelSGSN,
9508 &hf_gsm_map_ms_ISR_Information_initialAttachIndicator,
9509 NULL
9512 static int
9513 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_) {
9514 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9515 gsm_map_ms_ISR_Information_bits, 3, hf_index, ett_gsm_map_ms_ISR_Information,
9516 NULL);
9518 return offset;
9522 static const value_string gsm_map_ms_EPS_Info_vals[] = {
9523 { 0, "pdn-gw-update" },
9524 { 1, "isr-Information" },
9525 { 0, NULL }
9528 static const ber_choice_t gsm_map_ms_EPS_Info_choice[] = {
9529 { 0, &hf_gsm_map_ms_pdn_gw_update, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Update },
9530 { 1, &hf_gsm_map_ms_isr_Information, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ISR_Information },
9531 { 0, NULL, 0, 0, 0, NULL }
9534 static int
9535 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_) {
9536 offset = dissect_ber_choice(actx, tree, tvb, offset,
9537 gsm_map_ms_EPS_Info_choice, hf_index, ett_gsm_map_ms_EPS_Info,
9538 NULL);
9540 return offset;
9544 static const value_string gsm_map_ms_Used_RAT_Type_vals[] = {
9545 { 0, "utran" },
9546 { 1, "geran" },
9547 { 2, "gan" },
9548 { 3, "i-hspa-evolution" },
9549 { 4, "e-utran" },
9550 { 5, "nb-iot" },
9551 { 0, NULL }
9555 static int
9556 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_) {
9557 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9558 NULL);
9560 return offset;
9564 static const value_string gsm_map_ms_UE_SRVCC_Capability_vals[] = {
9565 { 0, "ue-srvcc-not-supported" },
9566 { 1, "ue-srvcc-supported" },
9567 { 0, NULL }
9571 static int
9572 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_) {
9573 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9574 NULL);
9576 return offset;
9580 static const value_string gsm_map_ms_SMSRegisterRequest_vals[] = {
9581 { 0, "sms-registration-required" },
9582 { 1, "sms-registration-not-preferred" },
9583 { 2, "no-preference" },
9584 { 0, NULL }
9588 static int
9589 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_) {
9590 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9591 NULL);
9593 return offset;
9597 static const ber_sequence_t gsm_map_ms_AdjacentPLMN_List_sequence_of[1] = {
9598 { &hf_gsm_map_ms_AdjacentPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
9601 static int
9602 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_) {
9603 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9604 gsm_map_ms_AdjacentPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_AdjacentPLMN_List);
9606 return offset;
9610 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
9611 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
9612 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9613 { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GSN_Address },
9614 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9615 { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
9616 { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9617 { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9618 { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
9619 { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
9620 { &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 },
9621 { &hf_gsm_map_ms_servingNodeTypeIndicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9622 { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9623 { &hf_gsm_map_ms_usedRAT_Type, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
9624 { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9625 { &hf_gsm_map_ms_nodeTypeIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9626 { &hf_gsm_map_ms_areaRestricted, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9627 { &hf_gsm_map_ms_ue_reachableIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9628 { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9629 { &hf_gsm_map_ms_ue_srvcc_Capability, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_SRVCC_Capability },
9630 { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List },
9631 { &hf_gsm_map_ms_mmeNumberforMTSMS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9632 { &hf_gsm_map_ms_smsRegisterRequest, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMSRegisterRequest },
9633 { &hf_gsm_map_ms_sms_Only , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9634 { &hf_gsm_map_ms_removalofMMERegistrationforSMS, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9635 { &hf_gsm_map_ms_sgsn_Name, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
9636 { &hf_gsm_map_ms_sgsn_Realm, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
9637 { &hf_gsm_map_ms_lgd_supportIndicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9638 { &hf_gsm_map_ms_adjacentPLMN_List, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdjacentPLMN_List },
9639 { NULL, 0, 0, 0, NULL }
9642 static int
9643 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_) {
9644 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9645 gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
9647 return offset;
9651 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
9652 { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9653 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9654 { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9655 { &hf_gsm_map_ms_sgsn_mmeSeparationSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9656 { &hf_gsm_map_ms_mmeRegisteredforSMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9657 { NULL, 0, 0, 0, NULL }
9660 static int
9661 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_) {
9662 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9663 gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
9665 return offset;
9670 static int
9671 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_) {
9672 tvbuff_t *parameter_tvb;
9673 asn1_ctx_t asn1_ctx;
9675 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9676 &parameter_tvb);
9679 if (!parameter_tvb)
9680 return offset;
9682 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, actx->pinfo);
9683 dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
9686 return offset;
9691 static int
9692 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_) {
9693 tvbuff_t *parameter_tvb;
9694 asn1_ctx_t asn1_ctx;
9696 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9697 &parameter_tvb);
9700 if (!parameter_tvb)
9701 return offset;
9703 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, actx->pinfo);
9704 dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
9707 return offset;
9711 static const value_string gsm_map_ms_KeyStatus_vals[] = {
9712 { 0, "old" },
9713 { 1, "new" },
9714 { 0, NULL }
9718 static int
9719 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_) {
9720 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9721 NULL);
9723 return offset;
9728 static int
9729 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_) {
9730 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9731 NULL);
9733 return offset;
9738 static int
9739 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_) {
9740 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9741 NULL);
9743 return offset;
9748 static int
9749 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_) {
9750 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9751 NULL);
9753 return offset;
9757 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
9758 { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
9759 { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
9760 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9761 { NULL, 0, 0, 0, NULL }
9764 static int
9765 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_) {
9766 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9767 gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
9769 return offset;
9774 static int
9775 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_) {
9776 tvbuff_t *parameter_tvb;
9777 proto_tree *subtree;
9779 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9780 &parameter_tvb);
9783 if (!parameter_tvb)
9784 return offset;
9786 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation);
9787 be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0);
9790 return offset;
9795 static int
9796 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_) {
9797 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9798 NULL);
9800 return offset;
9804 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
9805 { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
9806 { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
9807 { NULL, 0, 0, 0, NULL }
9810 static int
9811 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_) {
9812 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9813 gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
9815 return offset;
9819 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
9820 { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
9823 static int
9824 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_) {
9825 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9826 gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
9828 return offset;
9833 static int
9834 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_) {
9835 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9836 NULL);
9838 return offset;
9843 static int
9844 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_) {
9845 tvbuff_t *parameter_tvb;
9846 asn1_ctx_t asn1_ctx;
9848 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9849 &parameter_tvb);
9852 if (!parameter_tvb)
9853 return offset;
9855 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, actx->pinfo);
9856 dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
9859 return offset;
9863 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
9864 { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
9865 { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
9866 { NULL, 0, 0, 0, NULL }
9869 static int
9870 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_) {
9871 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9872 gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
9874 return offset;
9878 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
9879 { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
9882 static int
9883 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_) {
9884 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9885 gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
9887 return offset;
9892 static int
9893 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_) {
9894 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9895 NULL);
9897 return offset;
9901 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
9902 { &hf_gsm_map_ms_codec1_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9903 { &hf_gsm_map_ms_codec2_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9904 { &hf_gsm_map_ms_codec3_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9905 { &hf_gsm_map_ms_codec4_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9906 { &hf_gsm_map_ms_codec5_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9907 { &hf_gsm_map_ms_codec6_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9908 { &hf_gsm_map_ms_codec7_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9909 { &hf_gsm_map_ms_codec8_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9910 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9911 { NULL, 0, 0, 0, NULL }
9914 static int
9915 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_) {
9916 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9917 gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
9919 return offset;
9923 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
9924 { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
9925 { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
9926 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9927 { NULL, 0, 0, 0, NULL }
9930 static int
9931 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_) {
9932 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9933 gsm_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
9935 return offset;
9940 static int
9941 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_) {
9942 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9943 NULL);
9945 return offset;
9949 static const ber_sequence_t gsm_map_ms_AoIPCodecsList_sequence[] = {
9950 { &hf_gsm_map_ms_codec1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9951 { &hf_gsm_map_ms_codec2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9952 { &hf_gsm_map_ms_codec3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9953 { &hf_gsm_map_ms_codec4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9954 { &hf_gsm_map_ms_codec5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9955 { &hf_gsm_map_ms_codec6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9956 { &hf_gsm_map_ms_codec7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9957 { &hf_gsm_map_ms_codec8 , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9958 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9959 { NULL, 0, 0, 0, NULL }
9962 static int
9963 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_) {
9964 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9965 gsm_map_ms_AoIPCodecsList_sequence, hf_index, ett_gsm_map_ms_AoIPCodecsList);
9967 return offset;
9972 static int
9973 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_) {
9974 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9975 NULL, 0, hf_index, -1,
9976 NULL);
9978 return offset;
9983 static int
9984 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_) {
9985 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9986 NULL, 0, hf_index, -1,
9987 NULL);
9989 return offset;
9993 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
9994 { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
9995 { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
9996 { NULL, 0, 0, 0, NULL }
9999 static int
10000 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_) {
10001 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10002 gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
10004 return offset;
10008 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
10009 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10010 { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
10011 { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
10012 { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
10013 { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
10014 { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
10015 { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10016 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10017 { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
10018 { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
10019 { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
10020 { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
10021 { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10022 { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
10023 { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10024 { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10025 { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10026 { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
10027 { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10028 { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10029 { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
10030 { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10031 { NULL, 0, 0, 0, NULL }
10034 static int
10035 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_) {
10036 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10037 gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
10039 return offset;
10044 static int
10045 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_) {
10046 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10047 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
10049 return offset;
10054 static int
10055 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_) {
10056 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10057 NULL);
10059 return offset;
10064 static int
10065 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_) {
10066 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10067 NULL);
10069 return offset;
10074 static int
10075 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_) {
10076 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10077 NULL);
10079 return offset;
10083 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
10084 { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
10087 static int
10088 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_) {
10089 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10090 gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
10092 return offset;
10097 static int
10098 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_) {
10099 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10100 NULL);
10102 return offset;
10106 static int * const gsm_map_ms_LCLS_Negotiation_bits[] = {
10107 &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit,
10108 &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit,
10109 NULL
10112 static int
10113 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_) {
10114 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10115 gsm_map_ms_LCLS_Negotiation_bits, 2, hf_index, ett_gsm_map_ms_LCLS_Negotiation,
10116 NULL);
10118 return offset;
10122 static int * const gsm_map_ms_LCLS_ConfigurationPreference_bits[] = {
10123 &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator,
10124 &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator,
10125 &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator,
10126 &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator,
10127 NULL
10130 static int
10131 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_) {
10132 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10133 gsm_map_ms_LCLS_ConfigurationPreference_bits, 4, hf_index, ett_gsm_map_ms_LCLS_ConfigurationPreference,
10134 NULL);
10136 return offset;
10140 static const ber_sequence_t gsm_map_ms_LIPA_AllowedAPNList_sequence_of[1] = {
10141 { &hf_gsm_map_ms_LIPA_AllowedAPNList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN },
10144 static int
10145 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_) {
10146 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10147 gsm_map_ms_LIPA_AllowedAPNList_sequence_of, hf_index, ett_gsm_map_ms_LIPA_AllowedAPNList);
10149 return offset;
10153 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionData_sequence[] = {
10154 { &hf_gsm_map_ms_csg_Id , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_Id },
10155 { &hf_gsm_map_ms_expirationDate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
10156 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10157 { &hf_gsm_map_ms_lipa_AllowedAPNList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_AllowedAPNList },
10158 { &hf_gsm_map_ms_plmn_Id , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
10159 { NULL, 0, 0, 0, NULL }
10162 static int
10163 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_) {
10164 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10165 gsm_map_ms_CSG_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_CSG_SubscriptionData);
10167 return offset;
10171 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionDataList_sequence_of[1] = {
10172 { &hf_gsm_map_ms_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
10175 static int
10176 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_) {
10177 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10178 gsm_map_ms_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_CSG_SubscriptionDataList);
10180 return offset;
10184 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
10185 { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
10186 { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10187 { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
10188 { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10189 { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10190 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10191 { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
10192 { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
10193 { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10194 { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
10195 { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
10196 { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
10197 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10198 { &hf_gsm_map_ms_rab_Id , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
10199 { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
10200 { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
10201 { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
10202 { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
10203 { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
10204 { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10205 { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
10206 { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10207 { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
10208 { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
10209 { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
10210 { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
10211 { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10212 { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
10213 { &hf_gsm_map_ms_lclsGlobalCallReference, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_GlobalCallReference },
10214 { &hf_gsm_map_ms_lcls_Negotiation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_Negotiation },
10215 { &hf_gsm_map_ms_lcls_Configuration_Preference, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_ConfigurationPreference },
10216 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
10217 { NULL, 0, 0, 0, NULL }
10220 static int
10221 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_) {
10222 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10223 gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
10225 return offset;
10230 static int
10231 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_) {
10232 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10233 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareHO_Arg_U);
10235 return offset;
10239 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
10240 { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10241 { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
10242 { NULL, 0, 0, 0, NULL }
10245 static int
10246 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_) {
10247 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10248 gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
10250 return offset;
10254 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
10255 { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
10258 static int
10259 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_) {
10260 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10261 gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
10263 return offset;
10268 static int
10269 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_) {
10270 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10271 NULL);
10273 return offset;
10278 static int
10279 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_) {
10280 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10281 NULL);
10283 return offset;
10288 static int
10289 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_) {
10290 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10291 NULL);
10293 return offset;
10297 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
10298 { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
10299 { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
10300 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10301 { NULL, 0, 0, 0, NULL }
10304 static int
10305 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_) {
10306 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10307 gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
10309 return offset;
10314 static int
10315 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_) {
10316 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10317 NULL);
10319 return offset;
10324 static int
10325 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_) {
10326 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10327 NULL);
10329 return offset;
10333 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
10334 { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
10335 { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
10336 { NULL, 0, 0, 0, NULL }
10339 static int
10340 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_) {
10341 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10342 gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
10344 return offset;
10348 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
10349 { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10350 { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
10351 { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10352 { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
10353 { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10354 { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
10355 { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
10356 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10357 { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10358 { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
10359 { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10360 { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10361 { NULL, 0, 0, 0, NULL }
10364 static int
10365 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_) {
10366 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10367 gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
10369 return offset;
10374 static int
10375 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_) {
10376 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10377 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareHO_Res_U);
10379 return offset;
10383 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
10384 { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
10385 { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10386 { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
10387 { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10388 { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
10389 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10390 { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
10391 { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10392 { NULL, 0, 0, 0, NULL }
10395 static int
10396 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_) {
10397 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10398 gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
10400 return offset;
10405 static int
10406 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_) {
10407 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10408 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
10410 return offset;
10414 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
10415 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10416 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10417 { NULL, 0, 0, 0, NULL }
10420 static int
10421 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_) {
10422 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10423 gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
10425 return offset;
10430 static int
10431 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_) {
10432 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10433 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
10435 return offset;
10440 static int
10441 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_) {
10442 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10443 NULL);
10445 return offset;
10449 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
10450 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10451 { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
10452 { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
10453 { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
10454 { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
10455 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10456 { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
10457 { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
10458 { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
10459 { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
10460 { NULL, 0, 0, 0, NULL }
10463 static int
10464 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_) {
10465 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10466 gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
10468 return offset;
10473 static int
10474 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_) {
10475 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10476 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
10478 return offset;
10482 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
10483 { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
10484 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10485 { NULL, 0, 0, 0, NULL }
10488 static int
10489 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_) {
10490 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10491 gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
10493 return offset;
10498 static int
10499 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_) {
10500 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10501 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_SendEndSignal_Arg_U);
10503 return offset;
10507 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
10508 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10509 { NULL, 0, 0, 0, NULL }
10512 static int
10513 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_) {
10514 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10515 gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
10517 return offset;
10521 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
10522 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
10523 { &hf_gsm_map_ms_auts , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
10524 { NULL, 0, 0, 0, NULL }
10527 static int
10528 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_) {
10529 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10530 gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
10532 return offset;
10536 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
10537 { 0, "vlr" },
10538 { 1, "sgsn" },
10539 { 2, "s-cscf" },
10540 { 3, "bsf" },
10541 { 4, "gan-aaa-server" },
10542 { 5, "wlan-aaa-server" },
10543 { 16, "mme" },
10544 { 17, "mme-sgsn" },
10545 { 0, NULL }
10549 static int
10550 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_) {
10551 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10552 NULL);
10554 return offset;
10558 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
10559 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
10560 { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
10561 { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10562 { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10563 { &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 },
10564 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10565 { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
10566 { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
10567 { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
10568 { &hf_gsm_map_ms_additionalVectorsAreForEPS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10569 { &hf_gsm_map_ms_ueUsageTypeRequestIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10570 { NULL, 0, 0, 0, NULL }
10573 static int
10574 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_) {
10575 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10576 gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
10578 return offset;
10583 static int
10584 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_) {
10585 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10586 NULL);
10588 return offset;
10592 static const ber_sequence_t gsm_map_ms_EPC_AV_sequence[] = {
10593 { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
10594 { &hf_gsm_map_ms_xres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
10595 { &hf_gsm_map_ms_autn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
10596 { &hf_gsm_map_ms_kasme , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KASME },
10597 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10598 { NULL, 0, 0, 0, NULL }
10601 static int
10602 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_) {
10603 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10604 gsm_map_ms_EPC_AV_sequence, hf_index, ett_gsm_map_ms_EPC_AV);
10606 return offset;
10610 static const ber_sequence_t gsm_map_ms_EPS_AuthenticationSetList_sequence_of[1] = {
10611 { &hf_gsm_map_ms_EPS_AuthenticationSetList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EPC_AV },
10614 static int
10615 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_) {
10616 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10617 gsm_map_ms_EPS_AuthenticationSetList_sequence_of, hf_index, ett_gsm_map_ms_EPS_AuthenticationSetList);
10619 return offset;
10624 static int
10625 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_) {
10626 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10627 NULL);
10629 return offset;
10633 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
10634 { &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 },
10635 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10636 { &hf_gsm_map_ms_eps_AuthenticationSetList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_AuthenticationSetList },
10637 { &hf_gsm_map_ms_ueUsageType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_UsageType },
10638 { NULL, 0, 0, 0, NULL }
10641 static int
10642 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_) {
10643 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10644 gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
10646 return offset;
10651 static int
10652 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_) {
10653 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
10654 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
10656 return offset;
10660 static int * const gsm_map_ms_RequestedEquipmentInfo_bits[] = {
10661 &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
10662 &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
10663 NULL
10666 static int
10667 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_) {
10668 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10669 gsm_map_ms_RequestedEquipmentInfo_bits, 2, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
10670 NULL);
10672 return offset;
10676 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
10677 { &hf_gsm_map_ms_imei , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
10678 { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
10679 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10680 { NULL, 0, 0, 0, NULL }
10683 static int
10684 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_) {
10685 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10686 gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
10688 return offset;
10692 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
10693 { 0, "permittedListed" },
10694 { 1, "prohibitedListed" },
10695 { 2, "trackingListed" },
10696 { 0, NULL }
10700 static int
10701 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_) {
10702 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10703 NULL);
10705 return offset;
10709 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
10710 { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
10711 { &hf_gsm_map_ms_bmuef , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
10712 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10713 { NULL, 0, 0, 0, NULL }
10716 static int
10717 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_) {
10718 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10719 gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
10721 return offset;
10726 static int
10727 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_) {
10728 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10729 NULL);
10731 return offset;
10735 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
10736 { 0, "serviceGranted" },
10737 { 1, "operatorDeterminedBarring" },
10738 { 0, NULL }
10742 static int
10743 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_) {
10744 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10745 NULL);
10747 return offset;
10751 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
10752 { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
10755 static int
10756 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_) {
10757 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10758 gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
10760 return offset;
10764 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
10765 { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
10768 static int
10769 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_) {
10770 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10771 gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
10773 return offset;
10779 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_) {
10780 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10781 NULL);
10783 return offset;
10788 static int
10789 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_) {
10790 offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
10793 proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
10794 proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
10795 proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
10796 proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
10799 return offset;
10805 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_) {
10806 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10807 NULL);
10809 return offset;
10813 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
10814 { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
10815 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10816 { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10817 { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
10818 { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
10819 { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
10820 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10821 { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
10822 { NULL, 0, 0, 0, NULL }
10825 static int
10826 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_) {
10827 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10828 gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
10830 return offset;
10834 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
10835 { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
10838 static int
10839 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_) {
10840 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10841 gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
10843 return offset;
10847 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
10848 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
10849 { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
10850 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10851 { NULL, 0, 0, 0, NULL }
10854 static int
10855 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_) {
10856 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10857 gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
10859 return offset;
10863 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
10864 { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
10865 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
10866 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10867 { NULL, 0, 0, 0, NULL }
10870 static int
10871 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_) {
10872 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10873 gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
10875 return offset;
10879 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
10880 { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
10883 static int
10884 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_) {
10885 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10886 gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
10888 return offset;
10892 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
10893 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
10894 { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
10895 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10896 { NULL, 0, 0, 0, NULL }
10899 static int
10900 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_) {
10901 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10902 gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
10904 return offset;
10910 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_) {
10911 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10912 NULL);
10914 return offset;
10920 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_) {
10921 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10922 NULL);
10924 return offset;
10928 static const value_string gsm_map_ms_IntraCUG_Options_vals[] = {
10929 { 0, "noCUG-Restrictions" },
10930 { 1, "cugIC-CallBarred" },
10931 { 2, "cugOG-CallBarred" },
10932 { 0, NULL }
10936 static int
10937 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_) {
10938 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10939 NULL);
10941 return offset;
10945 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
10946 { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
10949 static int
10950 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_) {
10951 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10952 gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
10954 return offset;
10958 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
10959 { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
10960 { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
10961 { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
10962 { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
10963 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10964 { NULL, 0, 0, 0, NULL }
10967 static int
10968 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_) {
10969 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10970 gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
10972 return offset;
10976 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
10977 { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
10980 static int
10981 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_) {
10982 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10983 gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
10985 return offset;
10990 static int
10991 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_) {
10992 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10993 NULL);
10995 return offset;
10999 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
11000 { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11001 { &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 },
11002 { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
11003 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11004 { NULL, 0, 0, 0, NULL }
11007 static int
11008 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_) {
11009 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11010 gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
11012 return offset;
11016 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
11017 { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
11020 static int
11021 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_) {
11022 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11023 gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
11025 return offset;
11029 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
11030 { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
11031 { &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 },
11032 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11033 { NULL, 0, 0, 0, NULL }
11037 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_) {
11038 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11039 gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
11041 return offset;
11045 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
11046 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11047 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
11048 { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
11049 { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
11050 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11051 { NULL, 0, 0, 0, NULL }
11054 static int
11055 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_) {
11056 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11057 gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
11059 return offset;
11063 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
11064 { 0, "forwardingInfo" },
11065 { 1, "callBarringInfo" },
11066 { 2, "cug-Info" },
11067 { 3, "ss-Data" },
11068 { 4, "emlpp-Info" },
11069 { 0, NULL }
11072 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
11073 { 0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
11074 { 1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
11075 { 2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
11076 { 3, &hf_gsm_map_ms_ss_Data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
11077 { 4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
11078 { 0, NULL, 0, 0, 0, NULL }
11081 static int
11082 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_) {
11083 offset = dissect_ber_choice(actx, tree, tvb, offset,
11084 gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
11085 NULL);
11087 return offset;
11091 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
11092 { &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 },
11095 static int
11096 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_) {
11097 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11098 gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
11100 return offset;
11104 static int * const gsm_map_ms_ODB_GeneralData_bits[] = {
11105 &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
11106 &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
11107 &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
11108 &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
11109 &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
11110 &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
11111 &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
11112 &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
11113 &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
11114 &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
11115 &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
11116 &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
11117 &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
11118 &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
11119 &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
11120 &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
11121 &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
11122 &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
11123 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
11124 &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
11125 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
11126 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
11127 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
11128 &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
11129 &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
11130 &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
11131 &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
11132 &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
11133 &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
11134 NULL
11137 static int
11138 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_) {
11139 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11140 gsm_map_ms_ODB_GeneralData_bits, 29, hf_index, ett_gsm_map_ms_ODB_GeneralData,
11141 NULL);
11143 return offset;
11147 static int * const gsm_map_ms_ODB_HPLMN_Data_bits[] = {
11148 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
11149 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
11150 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
11151 &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
11152 NULL
11155 static int
11156 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_) {
11157 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11158 gsm_map_ms_ODB_HPLMN_Data_bits, 4, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
11159 NULL);
11161 return offset;
11165 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
11166 { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
11167 { &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 },
11168 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11169 { NULL, 0, 0, 0, NULL }
11172 static int
11173 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_) {
11174 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11175 gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
11177 return offset;
11182 static int
11183 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_) {
11184 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
11186 return offset;
11191 static int
11192 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_) {
11193 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
11195 return offset;
11199 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
11200 { &hf_gsm_map_ms_groupid , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
11201 { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11202 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11203 { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
11204 { NULL, 0, 0, 0, NULL }
11207 static int
11208 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_) {
11209 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11210 gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
11212 return offset;
11216 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
11217 { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
11220 static int
11221 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_) {
11222 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11223 gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
11225 return offset;
11229 static int * const gsm_map_ms_AdditionalSubscriptions_bits[] = {
11230 &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
11231 &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
11232 &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
11233 NULL
11236 static int
11237 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_) {
11238 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11239 gsm_map_ms_AdditionalSubscriptions_bits, 3, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
11240 NULL);
11242 return offset;
11247 static int
11248 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_) {
11249 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11250 NULL, 0, hf_index, -1,
11251 NULL);
11253 return offset;
11257 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
11258 { &hf_gsm_map_ms_groupId , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
11259 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11260 { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
11261 { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
11262 { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
11263 { NULL, 0, 0, 0, NULL }
11266 static int
11267 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_) {
11268 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11269 gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
11271 return offset;
11275 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
11276 { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
11279 static int
11280 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_) {
11281 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11282 gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
11284 return offset;
11288 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
11289 { 2, "collectedInfo" },
11290 { 4, "routeSelectFailure" },
11291 { 0, NULL }
11295 static int
11296 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_) {
11297 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11298 NULL);
11300 return offset;
11306 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_) {
11307 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11308 NULL);
11310 return offset;
11314 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
11315 { 0, "continueCall" },
11316 { 1, "releaseCall" },
11317 { 0, NULL }
11321 static int
11322 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_) {
11323 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11324 NULL);
11326 return offset;
11330 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
11331 { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
11332 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11333 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11334 { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
11335 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11336 { NULL, 0, 0, 0, NULL }
11339 static int
11340 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_) {
11341 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11342 gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
11344 return offset;
11348 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
11349 { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
11352 static int
11353 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_) {
11354 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11355 gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
11357 return offset;
11362 static int
11363 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_) {
11364 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11365 NULL);
11367 return offset;
11371 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
11372 { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
11373 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11374 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11375 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11376 { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11377 { NULL, 0, 0, 0, NULL }
11381 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_) {
11382 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11383 gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
11385 return offset;
11389 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
11390 { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11393 static int
11394 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_) {
11395 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11396 gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
11398 return offset;
11402 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
11403 { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
11404 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11405 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11406 { NULL, 0, 0, 0, NULL }
11409 static int
11410 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_) {
11411 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11412 gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
11414 return offset;
11418 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
11419 { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
11420 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11421 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11422 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11423 { NULL, 0, 0, 0, NULL }
11426 static int
11427 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_) {
11428 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11429 gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
11431 return offset;
11435 static const value_string gsm_map_ms_MatchType_vals[] = {
11436 { 0, "inhibiting" },
11437 { 1, "enabling" },
11438 { 0, NULL }
11442 static int
11443 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_) {
11444 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11445 NULL);
11447 return offset;
11451 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
11452 { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11455 static int
11456 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_) {
11457 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11458 gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
11460 return offset;
11465 static int
11466 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_) {
11467 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11468 NULL);
11470 return offset;
11474 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
11475 { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
11478 static int
11479 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_) {
11480 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11481 gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
11483 return offset;
11487 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
11488 { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
11489 { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
11490 { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
11491 { NULL, 0, 0, 0, NULL }
11494 static int
11495 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_) {
11496 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11497 gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
11499 return offset;
11503 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
11504 { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11507 static int
11508 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_) {
11509 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11510 gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
11512 return offset;
11516 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
11517 { 0, "forwarded" },
11518 { 1, "notForwarded" },
11519 { 0, NULL }
11523 static int
11524 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_) {
11525 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11526 NULL);
11528 return offset;
11533 static int
11534 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_) {
11535 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11536 NULL);
11538 return offset;
11542 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
11543 { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
11546 static int
11547 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_) {
11548 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11549 gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
11551 return offset;
11555 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
11556 { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
11557 { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
11558 { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
11559 { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
11560 { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
11561 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11562 { NULL, 0, 0, 0, NULL }
11565 static int
11566 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_) {
11567 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11568 gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
11570 return offset;
11574 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
11575 { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
11579 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_) {
11580 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11581 gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
11583 return offset;
11588 static int
11589 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_) {
11590 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11591 NULL);
11593 return offset;
11597 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
11598 { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
11601 static int
11602 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_) {
11603 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11604 gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
11606 return offset;
11610 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
11611 { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
11612 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11613 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11614 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11615 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11616 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11617 { NULL, 0, 0, 0, NULL }
11620 static int
11621 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_) {
11622 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11623 gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
11625 return offset;
11629 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
11630 { 1, "sms-CollectedInfo" },
11631 { 2, "sms-DeliveryRequest" },
11632 { 0, NULL }
11636 static int
11637 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_) {
11638 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11639 NULL);
11641 return offset;
11645 const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
11646 { 0, "continueTransaction" },
11647 { 1, "releaseTransaction" },
11648 { 0, NULL }
11653 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_) {
11654 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11655 NULL);
11657 return offset;
11661 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
11662 { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
11663 { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
11664 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11665 { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
11666 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11667 { NULL, 0, 0, 0, NULL }
11670 static int
11671 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_) {
11672 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11673 gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
11675 return offset;
11679 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
11680 { &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 },
11683 static int
11684 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_) {
11685 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11686 gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
11688 return offset;
11692 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
11693 { &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 },
11694 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11695 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11696 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11697 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11698 { NULL, 0, 0, 0, NULL }
11701 static int
11702 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_) {
11703 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11704 gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
11706 return offset;
11710 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
11711 { 12, "termAttemptAuthorized" },
11712 { 13, "tBusy" },
11713 { 14, "tNoAnswer" },
11714 { 0, NULL }
11718 static int
11719 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_) {
11720 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11721 NULL);
11723 return offset;
11727 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
11728 { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
11729 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11730 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11731 { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
11732 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11733 { NULL, 0, 0, 0, NULL }
11736 static int
11737 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_) {
11738 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11739 gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
11741 return offset;
11745 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
11746 { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
11749 static int
11750 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_) {
11751 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11752 gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
11754 return offset;
11758 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
11759 { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
11760 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11761 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11762 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11763 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11764 { NULL, 0, 0, 0, NULL }
11767 static int
11768 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_) {
11769 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11770 gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
11772 return offset;
11776 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
11777 { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
11780 static int
11781 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_) {
11782 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11783 gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
11785 return offset;
11789 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
11790 { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
11791 { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
11792 { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
11793 { NULL, 0, 0, 0, NULL }
11796 static int
11797 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_) {
11798 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11799 gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
11801 return offset;
11805 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
11806 { &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 },
11809 static int
11810 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_) {
11811 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11812 gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
11814 return offset;
11818 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
11819 { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11820 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11821 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11822 { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
11823 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
11824 { NULL, 0, 0, 0, NULL }
11827 static int
11828 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_) {
11829 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11830 gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
11832 return offset;
11836 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
11837 { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
11840 static int
11841 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_) {
11842 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11843 gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
11845 return offset;
11849 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
11850 { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
11851 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11852 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11853 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11854 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11855 { NULL, 0, 0, 0, NULL }
11859 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_) {
11860 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11861 gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
11863 return offset;
11867 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
11868 { 0, "sms-DELIVER" },
11869 { 1, "sms-SUBMIT-REPORT" },
11870 { 2, "sms-STATUS-REPORT" },
11871 { 0, NULL }
11875 static int
11876 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_) {
11877 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11878 NULL);
11880 return offset;
11884 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
11885 { &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 },
11888 static int
11889 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_) {
11890 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11891 gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
11893 return offset;
11897 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
11898 { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
11899 { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
11900 { NULL, 0, 0, 0, NULL }
11903 static int
11904 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_) {
11905 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11906 gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
11908 return offset;
11912 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
11913 { &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 },
11916 static int
11917 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_) {
11918 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11919 gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
11921 return offset;
11925 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
11926 { &hf_gsm_map_ms_o_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
11927 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11928 { &hf_gsm_map_ms_ss_CSI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
11929 { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
11930 { &hf_gsm_map_ms_tif_CSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11931 { &hf_gsm_map_ms_m_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
11932 { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
11933 { &hf_gsm_map_ms_vt_CSI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
11934 { &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 },
11935 { &hf_gsm_map_ms_d_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
11936 { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
11937 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
11938 { NULL, 0, 0, 0, NULL }
11941 static int
11942 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_) {
11943 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11944 gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
11946 return offset;
11951 static int
11952 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_) {
11953 uint8_t pdp_type_org;
11954 tvbuff_t *parameter_tvb;
11957 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11958 &parameter_tvb);
11961 if (!parameter_tvb)
11962 return offset;
11963 proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
11964 pdp_type_org = tvb_get_uint8(parameter_tvb,1);
11965 switch (pdp_type_org){
11966 case 0: /* ETSI */
11967 proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
11968 break;
11969 case 1: /* IETF */
11970 proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
11971 break;
11972 default:
11973 break;
11977 return offset;
11983 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_) {
11986 tvbuff_t *parameter_tvb;
11988 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11989 &parameter_tvb);
11992 if (!parameter_tvb)
11993 return offset;
11994 de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0);
11997 return offset;
12003 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_) {
12005 tvbuff_t *parameter_tvb;
12007 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12008 &parameter_tvb);
12011 if (!parameter_tvb)
12012 return offset;
12013 dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
12016 return offset;
12021 static int
12022 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_) {
12023 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12024 NULL);
12026 return offset;
12032 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_) {
12034 tvbuff_t *parameter_tvb;
12036 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12037 &parameter_tvb);
12040 if (!parameter_tvb)
12041 return offset;
12042 dissect_gsm_map_ext2_qos_subscribed(tvb, actx->pinfo, tree, actx);
12045 return offset;
12051 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_) {
12053 tvbuff_t *parameter_tvb;
12055 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12056 &parameter_tvb);
12059 if (!parameter_tvb)
12060 return offset;
12061 dissect_gsm_map_ext3_qos_subscribed(tvb, actx->pinfo, tree, actx);
12064 return offset;
12069 static int
12070 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_) {
12072 tvbuff_t *parameter_tvb;
12074 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12075 &parameter_tvb);
12078 if (!parameter_tvb)
12079 return offset;
12080 dissect_gsm_map_ext4_qos_subscribed(tvb, actx->pinfo, tree, actx);
12083 return offset;
12088 static int
12089 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_) {
12090 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12091 NULL);
12093 return offset;
12098 static int
12099 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_) {
12100 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12101 NULL);
12103 return offset;
12108 static int
12109 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_) {
12110 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12111 NULL);
12113 return offset;
12118 static int
12119 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_) {
12120 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12121 NULL);
12123 return offset;
12127 static const ber_sequence_t gsm_map_ms_AMBR_sequence[] = {
12128 { &hf_gsm_map_ms_max_RequestedBandwidth_UL, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
12129 { &hf_gsm_map_ms_max_RequestedBandwidth_DL, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
12130 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12131 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BandwidthExt },
12132 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BandwidthExt },
12133 { NULL, 0, 0, 0, NULL }
12136 static int
12137 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_) {
12138 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12139 gsm_map_ms_AMBR_sequence, hf_index, ett_gsm_map_ms_AMBR);
12141 return offset;
12145 static const value_string gsm_map_ms_SIPTO_Permission_vals[] = {
12146 { 0, "siptoAboveRanAllowed" },
12147 { 1, "siptoAboveRanNotAllowed" },
12148 { 0, NULL }
12152 static int
12153 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_) {
12154 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12155 NULL);
12157 return offset;
12161 static const value_string gsm_map_ms_LIPA_Permission_vals[] = {
12162 { 0, "lipaProhibited" },
12163 { 1, "lipaOnly" },
12164 { 2, "lipaConditional" },
12165 { 0, NULL }
12169 static int
12170 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_) {
12171 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12172 NULL);
12174 return offset;
12179 static int
12180 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_) {
12181 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12182 NULL);
12184 return offset;
12188 static const value_string gsm_map_ms_SIPTO_Local_Network_Permission_vals[] = {
12189 { 0, "siptoAtLocalNetworkAllowed" },
12190 { 1, "siptoAtLocalNetworkNotAllowed" },
12191 { 0, NULL }
12195 static int
12196 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_) {
12197 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12198 NULL);
12200 return offset;
12204 static const value_string gsm_map_ms_NIDD_Mechanism_vals[] = {
12205 { 0, "sGi-based-data-delivery" },
12206 { 1, "sCEF-based-data-delivery" },
12207 { 0, NULL }
12211 static int
12212 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_) {
12213 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12214 NULL);
12216 return offset;
12220 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
12221 { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
12222 { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
12223 { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12224 { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
12225 { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12226 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12227 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12228 { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
12229 { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
12230 { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
12231 { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
12232 { &hf_gsm_map_ms_ext4_QoS_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
12233 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
12234 { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type },
12235 { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12236 { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
12237 { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission },
12238 { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission },
12239 { &hf_gsm_map_ms_restoration_Priority, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Restoration_Priority },
12240 { &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 },
12241 { &hf_gsm_map_ms_nIDD_Mechanism, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NIDD_Mechanism },
12242 { &hf_gsm_map_ms_sCEF_ID , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
12243 { NULL, 0, 0, 0, NULL }
12246 static int
12247 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_) {
12248 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12249 gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
12251 return offset;
12255 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
12256 { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
12259 static int
12260 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_) {
12261 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12262 gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
12264 return offset;
12268 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
12269 { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12270 { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
12271 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12272 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
12273 { NULL, 0, 0, 0, NULL }
12276 static int
12277 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_) {
12278 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12279 gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
12281 return offset;
12285 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
12286 { 0, "packetAndCircuit" },
12287 { 1, "onlyCircuit" },
12288 { 2, "onlyPacket" },
12289 { 0, NULL }
12293 static int
12294 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_) {
12295 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12296 NULL);
12298 return offset;
12302 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
12303 { 0, "accessOutsideLSAsAllowed" },
12304 { 1, "accessOutsideLSAsRestricted" },
12305 { 0, NULL }
12309 static int
12310 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_) {
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_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_) {
12321 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12322 NULL);
12324 return offset;
12328 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
12329 { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
12330 { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
12331 { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12332 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12333 { NULL, 0, 0, 0, NULL }
12336 static int
12337 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_) {
12338 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12339 gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
12341 return offset;
12345 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
12346 { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
12349 static int
12350 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_) {
12351 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12352 gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
12354 return offset;
12358 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
12359 { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12360 { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
12361 { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
12362 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12363 { NULL, 0, 0, 0, NULL }
12366 static int
12367 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_) {
12368 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12369 gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
12371 return offset;
12375 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
12376 { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12379 static int
12380 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_) {
12381 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12382 gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
12384 return offset;
12388 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
12389 { 0, "notifyLocationAllowed" },
12390 { 1, "notifyAndVerify-LocationAllowedIfNoResponse" },
12391 { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
12392 { 3, "locationNotAllowed" },
12393 { 0, NULL }
12398 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_) {
12399 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12400 NULL);
12402 return offset;
12406 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
12407 { 0, "gmlc-List" },
12408 { 1, "home-Country" },
12409 { 0, NULL }
12413 static int
12414 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_) {
12415 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12416 NULL);
12418 return offset;
12422 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
12423 { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
12424 { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
12425 { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
12426 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12427 { NULL, 0, 0, 0, NULL }
12430 static int
12431 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_) {
12432 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12433 gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
12435 return offset;
12439 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
12440 { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
12443 static int
12444 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_) {
12445 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12446 gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
12448 return offset;
12452 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
12453 { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
12456 static int
12457 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_) {
12458 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12459 gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
12461 return offset;
12465 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
12466 { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
12469 static int
12470 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_) {
12471 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12472 gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
12474 return offset;
12478 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
12479 { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
12480 { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
12481 { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
12482 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12483 { NULL, 0, 0, 0, NULL }
12486 static int
12487 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_) {
12488 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12489 gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
12491 return offset;
12495 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
12496 { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
12499 static int
12500 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_) {
12501 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12502 gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
12504 return offset;
12508 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
12509 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
12510 { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
12511 { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
12512 { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
12513 { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
12514 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12515 { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
12516 { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
12517 { NULL, 0, 0, 0, NULL }
12520 static int
12521 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_) {
12522 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12523 gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
12525 return offset;
12529 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
12530 { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
12533 static int
12534 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_) {
12535 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12536 gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
12538 return offset;
12542 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
12543 { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
12544 { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
12545 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12546 { NULL, 0, 0, 0, NULL }
12549 static int
12550 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_) {
12551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12552 gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
12554 return offset;
12558 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
12559 { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
12562 static int
12563 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_) {
12564 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12565 gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
12567 return offset;
12571 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
12572 { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
12573 { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
12574 { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
12575 { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
12576 { NULL, 0, 0, 0, NULL }
12579 static int
12580 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_) {
12581 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12582 gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
12584 return offset;
12589 static int
12590 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_) {
12591 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12592 NULL);
12594 return offset;
12599 static int
12600 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_) {
12601 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12602 NULL);
12604 return offset;
12608 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
12609 { 1, "attach" },
12610 { 2, "attachChangeOfPosition" },
12611 { 11, "pdp-ContextEstablishment" },
12612 { 12, "pdp-ContextEstablishmentAcknowledgement" },
12613 { 14, "pdp-ContextChangeOfPosition" },
12614 { 0, NULL }
12618 static int
12619 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_) {
12620 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12621 NULL);
12623 return offset;
12627 const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
12628 { 0, "continueTransaction" },
12629 { 1, "releaseTransaction" },
12630 { 0, NULL }
12635 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_) {
12636 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12637 NULL);
12639 return offset;
12643 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
12644 { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
12645 { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
12646 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12647 { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
12648 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12649 { NULL, 0, 0, 0, NULL }
12652 static int
12653 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_) {
12654 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12655 gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
12657 return offset;
12661 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
12662 { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
12665 static int
12666 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_) {
12667 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12668 gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
12670 return offset;
12674 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
12675 { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
12676 { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
12677 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12678 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12679 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12680 { NULL, 0, 0, 0, NULL }
12683 static int
12684 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_) {
12685 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12686 gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
12688 return offset;
12692 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
12693 { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
12694 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
12695 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12696 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12697 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12698 { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12699 { NULL, 0, 0, 0, NULL }
12702 static int
12703 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_) {
12704 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12705 gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
12707 return offset;
12711 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
12712 { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
12713 { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
12714 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12715 { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
12716 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
12717 { &hf_gsm_map_ms_mg_csi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
12718 { NULL, 0, 0, 0, NULL }
12721 static int
12722 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_) {
12723 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12724 gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
12726 return offset;
12730 static int * const gsm_map_ms_AccessRestrictionData_bits[] = {
12731 &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
12732 &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
12733 &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
12734 &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
12735 &hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed,
12736 &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
12737 &hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed,
12738 &hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed,
12739 NULL
12742 static int
12743 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_) {
12744 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12745 gsm_map_ms_AccessRestrictionData_bits, 8, hf_index, ett_gsm_map_ms_AccessRestrictionData,
12746 NULL);
12748 return offset;
12753 static int
12754 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_) {
12755 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12756 NULL);
12758 return offset;
12763 static int
12764 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_) {
12765 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12766 NULL);
12768 return offset;
12773 static int
12774 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_) {
12775 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12776 NULL);
12778 return offset;
12783 static int
12784 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_) {
12785 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12786 NULL);
12788 return offset;
12792 static const ber_sequence_t gsm_map_ms_Allocation_Retention_Priority_sequence[] = {
12793 { &hf_gsm_map_ms_priority_level, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_INTEGER },
12794 { &hf_gsm_map_ms_pre_emption_capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
12795 { &hf_gsm_map_ms_pre_emption_vulnerability, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
12796 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12797 { NULL, 0, 0, 0, NULL }
12800 static int
12801 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_) {
12802 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12803 gsm_map_ms_Allocation_Retention_Priority_sequence, hf_index, ett_gsm_map_ms_Allocation_Retention_Priority);
12805 return offset;
12809 static const ber_sequence_t gsm_map_ms_EPS_QoS_Subscribed_sequence[] = {
12810 { &hf_gsm_map_ms_qos_Class_Identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Class_Identifier },
12811 { &hf_gsm_map_ms_allocation_Retention_Priority, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Allocation_Retention_Priority },
12812 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12813 { NULL, 0, 0, 0, NULL }
12816 static int
12817 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_) {
12818 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12819 gsm_map_ms_EPS_QoS_Subscribed_sequence, hf_index, ett_gsm_map_ms_EPS_QoS_Subscribed);
12821 return offset;
12825 static const value_string gsm_map_ms_PDN_GW_AllocationType_vals[] = {
12826 { 0, "static" },
12827 { 1, "dynamic" },
12828 { 0, NULL }
12832 static int
12833 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_) {
12834 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12835 NULL);
12837 return offset;
12841 static const ber_sequence_t gsm_map_ms_SpecificAPNInfo_sequence[] = {
12842 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12843 { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
12844 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12845 { NULL, 0, 0, 0, NULL }
12848 static int
12849 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_) {
12850 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12851 gsm_map_ms_SpecificAPNInfo_sequence, hf_index, ett_gsm_map_ms_SpecificAPNInfo);
12853 return offset;
12857 static const ber_sequence_t gsm_map_ms_SpecificAPNInfoList_sequence_of[1] = {
12858 { &hf_gsm_map_ms_SpecificAPNInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SpecificAPNInfo },
12861 static int
12862 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_) {
12863 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12864 gsm_map_ms_SpecificAPNInfoList_sequence_of, hf_index, ett_gsm_map_ms_SpecificAPNInfoList);
12866 return offset;
12870 static const value_string gsm_map_ms_WLAN_Offloadability_Indication_vals[] = {
12871 { 0, "notAllowed" },
12872 { 1, "allowed" },
12873 { 0, NULL }
12877 static int
12878 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_) {
12879 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12880 NULL);
12882 return offset;
12886 static const ber_sequence_t gsm_map_ms_WLAN_Offloadability_sequence[] = {
12887 { &hf_gsm_map_ms_wlan_offloadability_EUTRAN, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability_Indication },
12888 { &hf_gsm_map_ms_wlan_offloadability_UTRAN, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability_Indication },
12889 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12890 { NULL, 0, 0, 0, NULL }
12893 static int
12894 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_) {
12895 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12896 gsm_map_ms_WLAN_Offloadability_sequence, hf_index, ett_gsm_map_ms_WLAN_Offloadability);
12898 return offset;
12902 static const value_string gsm_map_ms_PDN_ConnectionContinuity_vals[] = {
12903 { 0, "maintainPDN-Connection" },
12904 { 1, "disconnectPDN-ConnectionWithReactivationRequest" },
12905 { 2, "disconnectPDN-ConnectionWithoutReactivationRequest" },
12906 { 0, NULL }
12910 static int
12911 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_) {
12912 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12913 NULL);
12915 return offset;
12919 static const ber_sequence_t gsm_map_ms_APN_Configuration_sequence[] = {
12920 { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
12921 { &hf_gsm_map_ms_pdn_Type , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_Type },
12922 { &hf_gsm_map_ms_servedPartyIP_IPv4_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12923 { &hf_gsm_map_ms_apn , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12924 { &hf_gsm_map_ms_eps_qos_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_QoS_Subscribed },
12925 { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
12926 { &hf_gsm_map_ms_pdn_gw_AllocationType, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_AllocationType },
12927 { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12928 { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
12929 { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
12930 { &hf_gsm_map_ms_specificAPNInfoList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificAPNInfoList },
12931 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12932 { &hf_gsm_map_ms_servedPartyIP_IPv6_Address, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12933 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
12934 { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission },
12935 { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission },
12936 { &hf_gsm_map_ms_restoration_Priority, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Restoration_Priority },
12937 { &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 },
12938 { &hf_gsm_map_ms_wlan_offloadability, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability },
12939 { &hf_gsm_map_ms_non_IP_PDN_Type_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12940 { &hf_gsm_map_ms_nIDD_Mechanism, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NIDD_Mechanism },
12941 { &hf_gsm_map_ms_sCEF_ID , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
12942 { &hf_gsm_map_ms_pdn_ConnectionContinuity, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_ConnectionContinuity },
12943 { NULL, 0, 0, 0, NULL }
12946 static int
12947 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_) {
12948 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12949 gsm_map_ms_APN_Configuration_sequence, hf_index, ett_gsm_map_ms_APN_Configuration);
12951 return offset;
12955 static const ber_sequence_t gsm_map_ms_EPS_DataList_sequence_of[1] = {
12956 { &hf_gsm_map_ms_EPS_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN_Configuration },
12959 static int
12960 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_) {
12961 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12962 gsm_map_ms_EPS_DataList_sequence_of, hf_index, ett_gsm_map_ms_EPS_DataList);
12964 return offset;
12968 static const ber_sequence_t gsm_map_ms_APN_ConfigurationProfile_sequence[] = {
12969 { &hf_gsm_map_ms_defaultContext, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
12970 { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12971 { &hf_gsm_map_ms_epsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_DataList },
12972 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12973 { &hf_gsm_map_ms_additionalDefaultContext, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
12974 { NULL, 0, 0, 0, NULL }
12977 static int
12978 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_) {
12979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12980 gsm_map_ms_APN_ConfigurationProfile_sequence, hf_index, ett_gsm_map_ms_APN_ConfigurationProfile);
12982 return offset;
12986 static const ber_sequence_t gsm_map_ms_EPS_SubscriptionData_sequence[] = {
12987 { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
12988 { &hf_gsm_map_ms_rfsp_id , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RFSP_ID },
12989 { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
12990 { &hf_gsm_map_ms_apn_ConfigurationProfile, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_ConfigurationProfile },
12991 { &hf_gsm_map_ms_stn_sr , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12992 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12993 { &hf_gsm_map_ms_mps_CSPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12994 { &hf_gsm_map_ms_mps_EPSPriority, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12995 { &hf_gsm_map_ms_subscribed_vsrvcc, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12996 { NULL, 0, 0, 0, NULL }
12999 static int
13000 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_) {
13001 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13002 gsm_map_ms_EPS_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_EPS_SubscriptionData);
13004 return offset;
13009 static int
13010 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_) {
13011 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13012 NULL);
13014 return offset;
13019 static int
13020 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_) {
13021 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13022 NULL);
13024 return offset;
13028 static const ber_sequence_t gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of[1] = {
13029 { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
13032 static int
13033 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_) {
13034 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13035 gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList);
13037 return offset;
13041 static int * const gsm_map_ms_Ext_AccessRestrictionData_bits[] = {
13042 &hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed,
13043 &hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed,
13044 NULL
13047 static int
13048 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_) {
13049 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13050 gsm_map_ms_Ext_AccessRestrictionData_bits, 2, hf_index, ett_gsm_map_ms_Ext_AccessRestrictionData,
13051 NULL);
13053 return offset;
13057 static const ber_sequence_t gsm_map_ms_AdjacentAccessRestrictionData_sequence[] = {
13058 { &hf_gsm_map_ms_plmnId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
13059 { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
13060 { &hf_gsm_map_ms_ext_AccessRestrictionData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_AccessRestrictionData },
13061 { NULL, 0, 0, 0, NULL }
13064 static int
13065 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_) {
13066 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13067 gsm_map_ms_AdjacentAccessRestrictionData_sequence, hf_index, ett_gsm_map_ms_AdjacentAccessRestrictionData);
13069 return offset;
13073 static const ber_sequence_t gsm_map_ms_AdjacentAccessRestrictionDataList_sequence_of[1] = {
13074 { &hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdjacentAccessRestrictionData },
13077 static int
13078 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_) {
13079 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13080 gsm_map_ms_AdjacentAccessRestrictionDataList_sequence_of, hf_index, ett_gsm_map_ms_AdjacentAccessRestrictionDataList);
13082 return offset;
13087 static int
13088 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_) {
13089 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13090 NULL);
13092 return offset;
13097 static int
13098 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_) {
13099 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13100 NULL);
13102 return offset;
13106 static const ber_sequence_t gsm_map_ms_IMSI_GroupId_sequence[] = {
13107 { &hf_gsm_map_ms_group_Service_Id, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Group_Service_ID },
13108 { &hf_gsm_map_ms_plmnId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
13109 { &hf_gsm_map_ms_local_Group_ID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Local_GroupID },
13110 { NULL, 0, 0, 0, NULL }
13113 static int
13114 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_) {
13115 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13116 gsm_map_ms_IMSI_GroupId_sequence, hf_index, ett_gsm_map_ms_IMSI_GroupId);
13118 return offset;
13122 static const ber_sequence_t gsm_map_ms_IMSI_GroupIdList_sequence_of[1] = {
13123 { &hf_gsm_map_ms_IMSI_GroupIdList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IMSI_GroupId },
13126 static int
13127 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_) {
13128 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13129 gsm_map_ms_IMSI_GroupIdList_sequence_of, hf_index, ett_gsm_map_ms_IMSI_GroupIdList);
13131 return offset;
13136 static int
13137 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_) {
13138 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13139 NULL);
13141 return offset;
13146 static int
13147 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_) {
13148 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13149 NULL);
13151 return offset;
13155 static const ber_sequence_t gsm_map_ms_Reset_Id_List_sequence_of[1] = {
13156 { &hf_gsm_map_ms_Reset_Id_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Reset_Id },
13159 static int
13160 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_) {
13161 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13162 gsm_map_ms_Reset_Id_List_sequence_of, hf_index, ett_gsm_map_ms_Reset_Id_List);
13164 return offset;
13169 static int
13170 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_) {
13171 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13172 NULL);
13174 return offset;
13178 static const ber_sequence_t gsm_map_ms_EDRX_Cycle_Length_sequence[] = {
13179 { &hf_gsm_map_ms_rat_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
13180 { &hf_gsm_map_ms_eDRX_Cycle_Length_Value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EDRX_Cycle_Length_Value },
13181 { NULL, 0, 0, 0, NULL }
13184 static int
13185 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_) {
13186 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13187 gsm_map_ms_EDRX_Cycle_Length_sequence, hf_index, ett_gsm_map_ms_EDRX_Cycle_Length);
13189 return offset;
13193 static const ber_sequence_t gsm_map_ms_EDRX_Cycle_Length_List_sequence_of[1] = {
13194 { &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 },
13197 static int
13198 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_) {
13199 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13200 gsm_map_ms_EDRX_Cycle_Length_List_sequence_of, hf_index, ett_gsm_map_ms_EDRX_Cycle_Length_List);
13202 return offset;
13206 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
13207 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13208 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13209 { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
13210 { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
13211 { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
13212 { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
13213 { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
13214 { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
13215 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13216 { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
13217 { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
13218 { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
13219 { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
13220 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13221 { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
13222 { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
13223 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13224 { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
13225 { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
13226 { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13227 { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
13228 { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
13229 { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
13230 { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
13231 { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
13232 { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
13233 { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
13234 { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
13235 { &hf_gsm_map_ms_ics_Indicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
13236 { &hf_gsm_map_ms_eps_SubscriptionData, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_SubscriptionData },
13237 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
13238 { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13239 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13240 { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
13241 { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer },
13242 { &hf_gsm_map_ms_vplmnLIPAAllowed, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13243 { &hf_gsm_map_ms_mdtUserConsent, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
13244 { &hf_gsm_map_ms_subscribedPeriodicLAUtimer, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicLAUtimer },
13245 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList },
13246 { &hf_gsm_map_ms_additionalMSISDN, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13247 { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13248 { &hf_gsm_map_ms_smsInSGSNAllowed, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13249 { &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 },
13250 { &hf_gsm_map_ms_pcscf_Restoration_Request, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13251 { &hf_gsm_map_ms_adjacentAccessRestrictionDataList, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdjacentAccessRestrictionDataList },
13252 { &hf_gsm_map_ms_imsi_Group_Id_List, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMSI_GroupIdList },
13253 { &hf_gsm_map_ms_ueUsageType, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_UsageType },
13254 { &hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13255 { &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 },
13256 { &hf_gsm_map_ms_reset_Id_List, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Reset_Id_List },
13257 { &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 },
13258 { &hf_gsm_map_ms_ext_AccessRestrictionData, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_AccessRestrictionData },
13259 { &hf_gsm_map_ms_iab_Operation_Allowed_Indicator, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13260 { NULL, 0, 0, 0, NULL }
13263 static int
13264 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_) {
13265 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13266 gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
13268 return offset;
13272 static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = {
13273 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13274 { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
13275 { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
13276 { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
13277 { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
13278 { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
13279 { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
13280 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13281 { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
13282 { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
13283 { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
13284 { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
13285 { NULL, 0, 0, 0, NULL }
13288 static int
13289 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_) {
13290 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13291 gsm_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData);
13293 return offset;
13297 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
13298 { 0, "networkNode-AreaRestricted" },
13299 { 1, "tooManyZoneCodes" },
13300 { 2, "zoneCodesConflict" },
13301 { 3, "regionalSubscNotSupported" },
13302 { 0, NULL }
13306 static int
13307 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_) {
13308 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13309 NULL);
13311 return offset;
13315 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
13316 { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
13317 { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
13318 { &hf_gsm_map_ms_ss_List , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
13319 { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
13320 { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
13321 { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
13322 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13323 { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
13324 { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
13325 { &hf_gsm_map_ms_ext_SupportedFeatures, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SupportedFeatures },
13326 { NULL, 0, 0, 0, NULL }
13329 static int
13330 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_) {
13331 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13332 gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
13334 return offset;
13338 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
13339 { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
13342 static int
13343 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_) {
13344 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13345 gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
13347 return offset;
13351 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
13352 { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
13355 static int
13356 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_) {
13357 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13358 gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
13360 return offset;
13364 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
13365 { 0, "allGPRSData" },
13366 { 1, "contextIdList" },
13367 { 0, NULL }
13370 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
13371 { 0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13372 { 1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
13373 { 0, NULL, 0, 0, 0, NULL }
13376 static int
13377 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_) {
13378 offset = dissect_ber_choice(actx, tree, tvb, offset,
13379 gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
13380 NULL);
13382 return offset;
13386 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
13387 { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
13390 static int
13391 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_) {
13392 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13393 gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
13395 return offset;
13399 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
13400 { 0, "allLSAData" },
13401 { 1, "lsaIdentityList" },
13402 { 0, NULL }
13405 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
13406 { 0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13407 { 1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
13408 { 0, NULL, 0, 0, 0, NULL }
13411 static int
13412 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_) {
13413 offset = dissect_ber_choice(actx, tree, tvb, offset,
13414 gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
13415 NULL);
13417 return offset;
13421 static int * const gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
13422 &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
13423 &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
13424 &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
13425 &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
13426 &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
13427 &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
13428 &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
13429 &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
13430 &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
13431 &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
13432 &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
13433 &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
13434 &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
13435 &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
13436 NULL
13439 static int
13440 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_) {
13441 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13442 gsm_map_ms_SpecificCSI_Withdraw_bits, 14, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
13443 NULL);
13445 return offset;
13449 static const value_string gsm_map_ms_EPS_SubscriptionDataWithdraw_vals[] = {
13450 { 0, "allEPS-Data" },
13451 { 1, "contextIdList" },
13452 { 0, NULL }
13455 static const ber_choice_t gsm_map_ms_EPS_SubscriptionDataWithdraw_choice[] = {
13456 { 0, &hf_gsm_map_ms_allEPS_Data, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13457 { 1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
13458 { 0, NULL, 0, 0, 0, NULL }
13461 static int
13462 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_) {
13463 offset = dissect_ber_choice(actx, tree, tvb, offset,
13464 gsm_map_ms_EPS_SubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
13465 NULL);
13467 return offset;
13471 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
13472 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13473 { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
13474 { &hf_gsm_map_ms_ss_List , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
13475 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13476 { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
13477 { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13478 { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13479 { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13480 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13481 { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
13482 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13483 { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
13484 { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13485 { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13486 { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
13487 { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13488 { &hf_gsm_map_ms_stn_srWithdraw, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13489 { &hf_gsm_map_ms_epsSubscriptionDataWithdraw, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw },
13490 { &hf_gsm_map_ms_apn_oi_replacementWithdraw, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13491 { &hf_gsm_map_ms_csg_SubscriptionDeleted, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13492 { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13493 { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13494 { &hf_gsm_map_ms_subscribed_vsrvccWithdraw, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13495 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13496 { &hf_gsm_map_ms_additionalMSISDN_Withdraw, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13497 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13498 { &hf_gsm_map_ms_imsiGroupIdList_Withdraw, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13499 { &hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13500 { &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 },
13501 { &hf_gsm_map_ms_ue_UsageTypeWithdraw, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13502 { &hf_gsm_map_ms_reset_idsWithdraw, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13503 { &hf_gsm_map_ms_iab_OperationWithdraw, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13504 { NULL, 0, 0, 0, NULL }
13507 static int
13508 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_) {
13509 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13510 gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
13512 return offset;
13516 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
13517 { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
13518 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13519 { NULL, 0, 0, 0, NULL }
13522 static int
13523 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_) {
13524 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13525 gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
13527 return offset;
13531 static int * const gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
13532 &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
13533 &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
13534 &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
13535 &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
13536 &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
13537 &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
13538 &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
13539 &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
13540 &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
13541 &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
13542 &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
13543 &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
13544 &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
13545 &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
13546 &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
13547 &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
13548 &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
13549 &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
13550 &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
13551 &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
13552 NULL
13556 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_) {
13557 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13558 gsm_map_ms_OfferedCamel4Functionalities_bits, 20, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
13559 NULL);
13561 return offset;
13565 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
13566 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13567 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13568 { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13569 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13570 { NULL, 0, 0, 0, NULL }
13573 static int
13574 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_) {
13575 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13576 gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
13578 return offset;
13582 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
13583 { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13584 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13585 { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
13586 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13587 { NULL, 0, 0, 0, NULL }
13590 static int
13591 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_) {
13592 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13593 gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
13595 return offset;
13599 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
13600 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13601 { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13602 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13603 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13604 { NULL, 0, 0, 0, NULL }
13607 static int
13608 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_) {
13609 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13610 gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
13612 return offset;
13616 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
13617 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13618 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13619 { NULL, 0, 0, 0, NULL }
13622 static int
13623 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_) {
13624 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13625 gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
13627 return offset;
13631 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
13632 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13633 { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13634 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13635 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13636 { NULL, 0, 0, 0, NULL }
13639 static int
13640 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_) {
13641 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13642 gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
13644 return offset;
13648 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
13649 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13650 { NULL, 0, 0, 0, NULL }
13653 static int
13654 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_) {
13655 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13656 gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
13658 return offset;
13662 static const value_string gsm_map_ms_SendingNode_Number_vals[] = {
13663 { 0, "hlr-Number" },
13664 { 1, "css-Number" },
13665 { 0, NULL }
13668 static const ber_choice_t gsm_map_ms_SendingNode_Number_choice[] = {
13669 { 0, &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13670 { 1, &hf_gsm_map_ms_css_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13671 { 0, NULL, 0, 0, 0, NULL }
13674 static int
13675 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_) {
13676 offset = dissect_ber_choice(actx, tree, tvb, offset,
13677 gsm_map_ms_SendingNode_Number_choice, hf_index, ett_gsm_map_ms_SendingNode_Number,
13678 NULL);
13680 return offset;
13684 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
13685 { &hf_gsm_map_ms_sendingNodenumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SendingNode_Number },
13686 { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
13687 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13688 { &hf_gsm_map_ms_reset_Id_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Reset_Id_List },
13689 { &hf_gsm_map_ms_subscriptionData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_InsertSubscriberDataArg },
13690 { &hf_gsm_map_ms_subscriptionDataDeletion, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DeleteSubscriberDataArg },
13691 { NULL, 0, 0, 0, NULL }
13694 static int
13695 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_) {
13696 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13697 gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
13699 return offset;
13703 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
13704 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13705 { &hf_gsm_map_ms_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
13706 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13707 { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
13708 { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13709 { NULL, 0, 0, 0, NULL }
13712 static int
13713 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_) {
13714 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13715 gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
13717 return offset;
13721 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
13722 { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13723 { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13724 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13725 { NULL, 0, 0, 0, NULL }
13728 static int
13729 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_) {
13730 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13731 gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
13733 return offset;
13737 static const value_string gsm_map_ms_DomainType_vals[] = {
13738 { 0, "cs-Domain" },
13739 { 1, "ps-Domain" },
13740 { 0, NULL }
13744 static int
13745 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_) {
13746 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13747 NULL);
13749 return offset;
13753 static int * const gsm_map_ms_RequestedNodes_bits[] = {
13754 &hf_gsm_map_ms_RequestedNodes_mme,
13755 &hf_gsm_map_ms_RequestedNodes_sgsn,
13756 NULL
13759 static int
13760 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_) {
13761 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13762 gsm_map_ms_RequestedNodes_bits, 2, hf_index, ett_gsm_map_ms_RequestedNodes,
13763 NULL);
13765 return offset;
13769 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
13770 { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13771 { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13772 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13773 { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13774 { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
13775 { &hf_gsm_map_ms_imei_01 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13776 { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13777 { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13778 { &hf_gsm_map_ms_locationInformationEPS_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13779 { &hf_gsm_map_ms_t_adsData, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13780 { &hf_gsm_map_ms_requestedNodes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedNodes },
13781 { &hf_gsm_map_ms_servingNodeIndication, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13782 { &hf_gsm_map_ms_localTimeZoneRequest, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13783 { NULL, 0, 0, 0, NULL }
13786 static int
13787 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_) {
13788 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13789 gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
13791 return offset;
13795 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
13796 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13797 { &hf_gsm_map_ms_lmsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
13798 { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
13799 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13800 { &hf_gsm_map_ms_callPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
13801 { NULL, 0, 0, 0, NULL }
13804 static int
13805 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_) {
13806 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13807 gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
13809 return offset;
13813 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
13814 { 0, "msPurged" },
13815 { 1, "imsiDetached" },
13816 { 2, "restrictedArea" },
13817 { 3, "notRegistered" },
13818 { 0, NULL }
13822 static int
13823 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_) {
13824 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13825 NULL);
13827 return offset;
13831 const value_string gsm_map_ms_SubscriberState_vals[] = {
13832 { 0, "assumedIdle" },
13833 { 1, "camelBusy" },
13834 { 2, "netDetNotReachable" },
13835 { 3, "notProvidedFromVLR" },
13836 { 0, NULL }
13839 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
13840 { 0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13841 { 1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13842 { 2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
13843 { 3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13844 { 0, NULL, 0, 0, 0, NULL }
13848 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_) {
13849 offset = dissect_ber_choice(actx, tree, tvb, offset,
13850 gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
13851 NULL);
13853 return offset;
13858 static int
13859 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_) {
13860 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13861 NULL);
13863 return offset;
13868 static int
13869 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_) {
13870 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13871 NULL);
13873 return offset;
13878 static int
13879 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_) {
13880 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13881 NULL);
13883 return offset;
13889 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_) {
13890 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13891 NULL);
13893 return offset;
13897 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
13898 { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
13899 { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13900 { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
13901 { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
13902 { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
13903 { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
13904 { &hf_gsm_map_ms_nsapi , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
13905 { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
13906 { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
13907 { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
13908 { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13909 { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
13910 { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
13911 { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
13912 { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
13913 { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
13914 { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
13915 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13916 { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
13917 { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
13918 { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
13919 { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
13920 { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
13921 { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
13922 { &hf_gsm_map_ms_qos4_Subscribed, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
13923 { &hf_gsm_map_ms_qos4_Requested, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
13924 { &hf_gsm_map_ms_qos4_Negotiated, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
13925 { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type },
13926 { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
13927 { NULL, 0, 0, 0, NULL }
13930 static int
13931 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_) {
13932 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13933 gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
13935 return offset;
13939 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
13940 { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
13943 static int
13944 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_) {
13945 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13946 gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
13948 return offset;
13952 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
13953 { 0, "notProvidedFromSGSNorMME" },
13954 { 1, "ps-Detached" },
13955 { 2, "ps-AttachedNotReachableForPaging" },
13956 { 3, "ps-AttachedReachableForPaging" },
13957 { 4, "ps-PDP-ActiveNotReachableForPaging" },
13958 { 5, "ps-PDP-ActiveReachableForPaging" },
13959 { 6, "netDetNotReachable" },
13960 { 0, NULL }
13963 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
13964 { 0, &hf_gsm_map_ms_notProvidedFromSGSNorMME, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13965 { 1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13966 { 2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13967 { 3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13968 { 4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
13969 { 5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
13970 { 6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
13971 { 0, NULL, 0, 0, 0, NULL }
13974 static int
13975 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_) {
13976 offset = dissect_ber_choice(actx, tree, tvb, offset,
13977 gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
13978 NULL);
13980 return offset;
13986 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_) {
13987 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13988 NULL);
13990 return offset;
13995 static int
13996 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_) {
13997 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13998 NULL);
14000 return offset;
14005 static int
14006 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_) {
14007 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14008 NULL);
14010 return offset;
14014 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
14015 { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
14016 { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
14017 { NULL, 0, 0, 0, NULL }
14021 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_) {
14022 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14023 gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
14025 return offset;
14030 static int
14031 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_) {
14032 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
14034 return offset;
14038 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
14039 { 0, "notKnownToBePorted" },
14040 { 1, "ownNumberPortedOut" },
14041 { 2, "foreignNumberPortedToForeignNetwork" },
14042 { 4, "ownNumberNotPortedOut" },
14043 { 5, "foreignNumberPortedIn" },
14044 { 0, NULL }
14048 static int
14049 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_) {
14050 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14051 NULL);
14053 return offset;
14057 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
14058 { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
14059 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14060 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14061 { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
14062 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14063 { NULL, 0, 0, 0, NULL }
14066 static int
14067 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_) {
14068 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14069 gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
14071 return offset;
14075 static const value_string gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals[] = {
14076 { 0, "imsVoiceOverPS-SessionsNotSupported" },
14077 { 1, "imsVoiceOverPS-SessionsSupported" },
14078 { 2, "unknown" },
14079 { 0, NULL }
14083 static int
14084 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_) {
14085 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14086 NULL);
14088 return offset;
14093 static int
14094 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_) {
14095 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14096 NULL);
14098 return offset;
14102 static const value_string gsm_map_ms_DaylightSavingTime_vals[] = {
14103 { 0, "noAdjustment" },
14104 { 1, "plusOneHourAdjustment" },
14105 { 2, "plusTwoHoursAdjustment" },
14106 { 0, NULL }
14110 static int
14111 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_) {
14112 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14113 NULL);
14115 return offset;
14119 static const ber_sequence_t gsm_map_ms_LocationInformation5GS_sequence[] = {
14120 { &hf_gsm_map_ms_nrCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NR_CGI },
14121 { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI },
14122 { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
14123 { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
14124 { &hf_gsm_map_ms_amf_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
14125 { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id },
14126 { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14127 { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
14128 { &hf_gsm_map_ms_vplmnId , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
14129 { &hf_gsm_map_ms_localtimeZone, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone },
14130 { &hf_gsm_map_ms_rat_Type , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
14131 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14132 { &hf_gsm_map_ms_nrTrackingAreaIdentity, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NR_TA_Id },
14133 { NULL, 0, 0, 0, NULL }
14136 static int
14137 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_) {
14138 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14139 gsm_map_ms_LocationInformation5GS_sequence, hf_index, ett_gsm_map_ms_LocationInformation5GS);
14141 return offset;
14145 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
14146 { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
14147 { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
14148 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14149 { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
14150 { &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 },
14151 { &hf_gsm_map_ms_imei , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
14152 { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
14153 { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
14154 { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
14155 { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd },
14156 { &hf_gsm_map_ms_lastUE_ActivityTime, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
14157 { &hf_gsm_map_ms_lastRAT_Type, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
14158 { &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 },
14159 { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
14160 { &hf_gsm_map_ms_timeZone , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone },
14161 { &hf_gsm_map_ms_daylightSavingTime, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DaylightSavingTime },
14162 { &hf_gsm_map_ms_locationInformation5GS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation5GS },
14163 { NULL, 0, 0, 0, NULL }
14166 static int
14167 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_) {
14168 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14169 gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
14171 return offset;
14175 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
14176 { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
14177 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14178 { NULL, 0, 0, 0, NULL }
14181 static int
14182 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_) {
14183 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14184 gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
14186 return offset;
14190 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
14191 { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14192 { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
14193 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14194 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14195 { NULL, 0, 0, 0, NULL }
14198 static int
14199 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_) {
14200 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14201 gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
14203 return offset;
14207 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
14208 { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
14209 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14210 { NULL, 0, 0, 0, NULL }
14213 static int
14214 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_) {
14215 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14216 gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
14218 return offset;
14222 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
14223 { 0, "o-CSI" },
14224 { 1, "t-CSI" },
14225 { 2, "vt-CSI" },
14226 { 3, "tif-CSI" },
14227 { 4, "gprs-CSI" },
14228 { 5, "mo-sms-CSI" },
14229 { 6, "ss-CSI" },
14230 { 7, "m-CSI" },
14231 { 8, "d-csi" },
14232 { 0, NULL }
14236 static int
14237 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_) {
14238 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14239 NULL);
14241 return offset;
14245 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
14246 { 0, "mt-sms-CSI" },
14247 { 1, "mg-csi" },
14248 { 2, "o-IM-CSI" },
14249 { 3, "d-IM-CSI" },
14250 { 4, "vt-IM-CSI" },
14251 { 0, NULL }
14255 static int
14256 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_) {
14257 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14258 NULL);
14260 return offset;
14264 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
14265 { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
14266 { &hf_gsm_map_ms_odb , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14267 { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
14268 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14269 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14270 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14271 { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
14272 { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14273 { &hf_gsm_map_ms_csg_SubscriptionDataRequested, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14274 { &hf_gsm_map_ms_cw_Info , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14275 { &hf_gsm_map_ms_clip_Info, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14276 { &hf_gsm_map_ms_clir_Info, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14277 { &hf_gsm_map_ms_hold_Info, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14278 { &hf_gsm_map_ms_ect_Info , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14279 { NULL, 0, 0, 0, NULL }
14282 static int
14283 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_) {
14284 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14285 gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
14287 return offset;
14291 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
14292 { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14293 { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
14294 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14295 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14296 { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14297 { NULL, 0, 0, 0, NULL }
14300 static int
14301 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_) {
14302 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14303 gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
14305 return offset;
14309 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
14310 { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
14311 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
14312 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14313 { NULL, 0, 0, 0, NULL }
14316 static int
14317 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_) {
14318 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14319 gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
14321 return offset;
14326 static int
14327 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_) {
14328 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14329 NULL);
14331 return offset;
14335 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
14336 { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
14337 { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
14338 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
14339 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
14340 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14341 { NULL, 0, 0, 0, NULL }
14344 static int
14345 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_) {
14346 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14347 gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
14349 return offset;
14353 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
14354 { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
14355 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
14356 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14357 { NULL, 0, 0, 0, NULL }
14360 static int
14361 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_) {
14362 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14363 gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
14365 return offset;
14369 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
14370 { &hf_gsm_map_ms_o_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
14371 { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
14372 { &hf_gsm_map_ms_d_CSI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
14373 { &hf_gsm_map_ms_t_CSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
14374 { &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 },
14375 { &hf_gsm_map_ms_vt_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
14376 { &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 },
14377 { &hf_gsm_map_ms_tif_CSI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14378 { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14379 { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
14380 { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
14381 { &hf_gsm_map_ms_ss_CSI , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
14382 { &hf_gsm_map_ms_m_CSI , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
14383 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14384 { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
14385 { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
14386 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
14387 { &hf_gsm_map_ms_mg_csi , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
14388 { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
14389 { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
14390 { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
14391 { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
14392 { &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 },
14393 { NULL, 0, 0, 0, NULL }
14396 static int
14397 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_) {
14398 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14399 gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
14401 return offset;
14405 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
14406 { &hf_gsm_map_ms_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14407 { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
14408 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14409 { NULL, 0, 0, 0, NULL }
14412 static int
14413 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_) {
14414 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14415 gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
14417 return offset;
14421 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
14422 { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
14425 static int
14426 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_) {
14427 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14428 gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
14430 return offset;
14434 static const ber_sequence_t gsm_map_ms_Ext_CwFeature_sequence[] = {
14435 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14436 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14437 { NULL, 0, 0, 0, NULL }
14440 static int
14441 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_) {
14442 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14443 gsm_map_ms_Ext_CwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CwFeature);
14445 return offset;
14449 static const ber_sequence_t gsm_map_ms_Ext_CwFeatureList_sequence_of[1] = {
14450 { &hf_gsm_map_ms_Ext_CwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CwFeature },
14453 static int
14454 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_) {
14455 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
14456 gsm_map_ms_Ext_CwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CwFeatureList);
14458 return offset;
14462 static const ber_sequence_t gsm_map_ms_CallWaitingData_sequence[] = {
14463 { &hf_gsm_map_ms_cwFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CwFeatureList },
14464 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14465 { NULL, 0, 0, 0, NULL }
14468 static int
14469 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_) {
14470 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14471 gsm_map_ms_CallWaitingData_sequence, hf_index, ett_gsm_map_ms_CallWaitingData);
14473 return offset;
14477 static const ber_sequence_t gsm_map_ms_CallHoldData_sequence[] = {
14478 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14479 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14480 { NULL, 0, 0, 0, NULL }
14483 static int
14484 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_) {
14485 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14486 gsm_map_ms_CallHoldData_sequence, hf_index, ett_gsm_map_ms_CallHoldData);
14488 return offset;
14492 static const ber_sequence_t gsm_map_ms_ClipData_sequence[] = {
14493 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14494 { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
14495 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14496 { NULL, 0, 0, 0, NULL }
14499 static int
14500 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_) {
14501 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14502 gsm_map_ms_ClipData_sequence, hf_index, ett_gsm_map_ms_ClipData);
14504 return offset;
14508 static const ber_sequence_t gsm_map_ms_ClirData_sequence[] = {
14509 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14510 { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
14511 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14512 { NULL, 0, 0, 0, NULL }
14515 static int
14516 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_) {
14517 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14518 gsm_map_ms_ClirData_sequence, hf_index, ett_gsm_map_ms_ClirData);
14520 return offset;
14524 static const ber_sequence_t gsm_map_ms_EctData_sequence[] = {
14525 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14526 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14527 { NULL, 0, 0, 0, NULL }
14530 static int
14531 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_) {
14532 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14533 gsm_map_ms_EctData_sequence, hf_index, ett_gsm_map_ms_EctData);
14535 return offset;
14539 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
14540 { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
14541 { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
14542 { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
14543 { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
14544 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14545 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14546 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14547 { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
14548 { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
14549 { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
14550 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
14551 { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
14552 { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
14553 { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
14554 { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
14555 { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
14556 { NULL, 0, 0, 0, NULL }
14559 static int
14560 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_) {
14561 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14562 gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
14564 return offset;
14568 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
14569 { 0, "deactivate" },
14570 { 1, "activate" },
14571 { 0, NULL }
14575 static int
14576 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_) {
14577 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14578 NULL);
14580 return offset;
14584 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
14585 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14586 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14587 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14588 { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14589 { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
14590 { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
14591 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14592 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14593 { NULL, 0, 0, 0, NULL }
14596 static int
14597 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_) {
14598 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14599 gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
14601 return offset;
14605 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
14606 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14607 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14608 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14609 { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
14610 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
14611 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14612 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14613 { NULL, 0, 0, 0, NULL }
14616 static int
14617 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_) {
14618 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14619 gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
14621 return offset;
14625 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
14626 { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
14627 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14628 { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14629 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14630 { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
14631 { NULL, 0, 0, 0, NULL }
14634 static int
14635 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_) {
14636 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14637 gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
14639 return offset;
14643 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
14644 { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
14645 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14646 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14647 { NULL, 0, 0, 0, NULL }
14650 static int
14651 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_) {
14652 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14653 gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
14655 return offset;
14659 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
14660 { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14661 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14662 { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
14663 { NULL, 0, 0, 0, NULL }
14666 static int
14667 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_) {
14668 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14669 gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
14671 return offset;
14675 static int * const gsm_map_ms_RequestedServingNode_bits[] = {
14676 &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn,
14677 NULL
14680 static int
14681 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_) {
14682 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14683 gsm_map_ms_RequestedServingNode_bits, 1, hf_index, ett_gsm_map_ms_RequestedServingNode,
14684 NULL);
14686 return offset;
14690 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSG_sequence[] = {
14691 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14692 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14693 { NULL, 0, 0, 0, NULL }
14696 static int
14697 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_) {
14698 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14699 gsm_map_ms_ModificationRequestFor_CSG_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSG);
14701 return offset;
14705 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CW_Info_sequence[] = {
14706 { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14707 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14708 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14709 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14710 { NULL, 0, 0, 0, NULL }
14713 static int
14714 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_) {
14715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14716 gsm_map_ms_ModificationRequestFor_CW_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CW_Info);
14718 return offset;
14722 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence[] = {
14723 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14724 { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
14725 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14726 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14727 { NULL, 0, 0, 0, NULL }
14730 static int
14731 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_) {
14732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14733 gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIP_Info);
14735 return offset;
14739 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence[] = {
14740 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14741 { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
14742 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14743 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14744 { NULL, 0, 0, 0, NULL }
14747 static int
14748 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_) {
14749 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14750 gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIR_Info);
14752 return offset;
14756 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CH_Info_sequence[] = {
14757 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14758 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14759 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14760 { NULL, 0, 0, 0, NULL }
14763 static int
14764 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_) {
14765 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14766 gsm_map_ms_ModificationRequestFor_CH_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CH_Info);
14768 return offset;
14772 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ECT_Info_sequence[] = {
14773 { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
14774 { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
14775 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14776 { NULL, 0, 0, 0, NULL }
14779 static int
14780 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_) {
14781 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14782 gsm_map_ms_ModificationRequestFor_ECT_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ECT_Info);
14784 return offset;
14788 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
14789 { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14790 { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14791 { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
14792 { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
14793 { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
14794 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14795 { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14796 { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
14797 { &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 },
14798 { &hf_gsm_map_ms_activationRequestForUE_reachability, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedServingNode },
14799 { &hf_gsm_map_ms_modificationRequestFor_CSG, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSG },
14800 { &hf_gsm_map_ms_modificationRequestFor_CW_Data, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CW_Info },
14801 { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info },
14802 { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info },
14803 { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CH_Info },
14804 { &hf_gsm_map_ms_modificationRequestFor_ECT_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ECT_Info },
14805 { NULL, 0, 0, 0, NULL }
14808 static int
14809 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_) {
14810 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14811 gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
14813 return offset;
14817 static int * const gsm_map_ms_ServingNode_bits[] = {
14818 &hf_gsm_map_ms_ServingNode_mme,
14819 &hf_gsm_map_ms_ServingNode_sgsn,
14820 NULL
14823 static int
14824 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_) {
14825 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14826 gsm_map_ms_ServingNode_bits, 2, hf_index, ett_gsm_map_ms_ServingNode,
14827 NULL);
14829 return offset;
14833 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
14834 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14835 { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
14836 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14837 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14838 { NULL, 0, 0, 0, NULL }
14841 static int
14842 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_) {
14843 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14844 gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
14846 return offset;
14850 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
14851 { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
14852 { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
14853 { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
14854 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
14855 { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14856 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14857 { NULL, 0, 0, 0, NULL }
14860 static int
14861 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_) {
14862 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14863 gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
14865 return offset;
14869 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
14870 { 0, "forwardingInfoFor-CSE" },
14871 { 1, "callBarringInfoFor-CSE" },
14872 { 0, NULL }
14875 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
14876 { 0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
14877 { 1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
14878 { 0, NULL, 0, 0, 0, NULL }
14881 static int
14882 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_) {
14883 offset = dissect_ber_choice(actx, tree, tvb, offset,
14884 gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
14885 NULL);
14887 return offset;
14891 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
14892 { &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 },
14893 { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
14894 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14895 { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
14896 { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
14897 { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
14898 { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
14899 { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
14900 { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
14901 { &hf_gsm_map_ms_serviceCentreAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14902 { NULL, 0, 0, 0, NULL }
14905 static int
14906 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_) {
14907 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14908 gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
14910 return offset;
14914 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
14915 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14916 { &hf_gsm_map_ms_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14917 { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
14918 { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
14919 { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
14920 { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
14921 { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
14922 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14923 { &hf_gsm_map_ms_ue_reachable, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServingNode },
14924 { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
14925 { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
14926 { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
14927 { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
14928 { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
14929 { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
14930 { NULL, 0, 0, 0, NULL }
14933 static int
14934 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_) {
14935 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14936 gsm_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
14938 return offset;
14942 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
14943 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14944 { NULL, 0, 0, 0, NULL }
14947 static int
14948 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_) {
14949 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14950 gsm_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
14952 return offset;
14956 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
14957 { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
14958 { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
14959 { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14960 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14961 { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
14962 { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14963 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14964 { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
14965 { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
14966 { NULL, 0, 0, 0, NULL }
14969 static int
14970 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_) {
14971 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14972 gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
14974 return offset;
14978 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
14979 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14980 { NULL, 0, 0, 0, NULL }
14983 static int
14984 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_) {
14985 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14986 gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
14988 return offset;
14992 static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationArg_sequence[] = {
14993 { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
14994 { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14995 { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14996 { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14997 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14998 { NULL, 0, 0, 0, NULL }
15001 static int
15002 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_) {
15003 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15004 gsm_map_ms_UpdateVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationArg);
15006 return offset;
15010 static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationRes_sequence[] = {
15011 { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
15012 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15013 { NULL, 0, 0, 0, NULL }
15016 static int
15017 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_) {
15018 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15019 gsm_map_ms_UpdateVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationRes);
15021 return offset;
15025 static const ber_sequence_t gsm_map_ms_CancelVcsgLocationArg_sequence[] = {
15026 { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
15027 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15028 { NULL, 0, 0, 0, NULL }
15031 static int
15032 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_) {
15033 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15034 gsm_map_ms_CancelVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationArg);
15036 return offset;
15040 static const ber_sequence_t gsm_map_ms_CancelVcsgLocationRes_sequence[] = {
15041 { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15042 { NULL, 0, 0, 0, NULL }
15045 static int
15046 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_) {
15047 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15048 gsm_map_ms_CancelVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationRes);
15050 return offset;
15053 /*--- PDUs ---*/
15055 static int dissect_gsm_map_ms_SendAuthenticationInfoArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
15056 int offset = 0;
15057 asn1_ctx_t asn1_ctx;
15058 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
15059 offset = dissect_gsm_map_ms_SendAuthenticationInfoArg(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU);
15060 return offset;
15062 static int dissect_gsm_map_ms_SendAuthenticationInfoRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
15063 int offset = 0;
15064 asn1_ctx_t asn1_ctx;
15065 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
15066 offset = dissect_gsm_map_ms_SendAuthenticationInfoRes(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU);
15067 return offset;
15071 /* --- Module MAP-CH-DataTypes --- --- --- */
15075 static int
15076 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_) {
15077 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15079 return offset;
15083 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
15084 { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
15085 { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
15086 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15087 { NULL, 0, 0, 0, NULL }
15091 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_) {
15092 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15093 gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
15095 return offset;
15100 static int
15101 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_) {
15102 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15103 NULL);
15105 return offset;
15109 static const value_string gsm_map_ch_InterrogationType_vals[] = {
15110 { 0, "basicCall" },
15111 { 1, "forwarding" },
15112 { 0, NULL }
15116 static int
15117 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_) {
15118 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15119 NULL);
15121 return offset;
15126 static int
15127 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_) {
15128 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15129 NULL);
15131 return offset;
15137 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_) {
15138 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15139 NULL);
15141 return offset;
15145 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
15146 { 0, "notReachable" },
15147 { 1, "busy" },
15148 { 2, "noReply" },
15149 { 0, NULL }
15153 static int
15154 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_) {
15155 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15156 NULL);
15158 return offset;
15162 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
15163 { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15164 { &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 },
15165 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15166 { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
15167 { NULL, 0, 0, 0, NULL }
15170 static int
15171 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_) {
15172 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15173 gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
15175 return offset;
15181 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_) {
15182 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15184 return offset;
15189 static int
15190 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_) {
15191 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15192 NULL);
15194 return offset;
15199 static int
15200 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_) {
15201 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15202 NULL);
15204 return offset;
15208 static int * const gsm_map_ch_SuppressMTSS_bits[] = {
15209 &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
15210 &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
15211 NULL
15214 static int
15215 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_) {
15216 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
15217 gsm_map_ch_SuppressMTSS_bits, 2, hf_index, ett_gsm_map_ch_SuppressMTSS,
15218 NULL);
15220 return offset;
15224 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
15225 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15226 { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15227 { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
15228 { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
15229 { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15230 { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
15231 { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15232 { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
15233 { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
15234 { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15235 { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15236 { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
15237 { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
15238 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15239 { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15240 { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15241 { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
15242 { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
15243 { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
15244 { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15245 { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
15246 { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15247 { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15248 { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15249 { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15250 { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15251 { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15252 { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
15253 { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15254 { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
15255 { NULL, 0, 0, 0, NULL }
15258 static int
15259 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_) {
15260 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15261 gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
15263 return offset;
15267 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
15268 { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15269 { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
15270 { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
15271 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15272 { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
15273 { NULL, 0, 0, 0, NULL }
15276 static int
15277 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_) {
15278 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15279 gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
15281 return offset;
15285 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
15286 { 0, "roamingNumber" },
15287 { 1, "forwardingData" },
15288 { 0, NULL }
15291 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
15292 { 0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15293 { 1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
15294 { 0, NULL, 0, 0, 0, NULL }
15297 static int
15298 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_) {
15299 offset = dissect_ber_choice(actx, tree, tvb, offset,
15300 gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
15301 NULL);
15303 return offset;
15307 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
15308 { &hf_gsm_map_ch_t_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
15309 { &hf_gsm_map_ch_o_CSI , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
15310 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15311 { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
15312 { &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 },
15313 { &hf_gsm_map_ch_d_csi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
15314 { NULL, 0, 0, 0, NULL }
15317 static int
15318 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_) {
15319 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15320 gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
15322 return offset;
15326 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
15327 { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
15328 { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
15329 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15330 { NULL, 0, 0, 0, NULL }
15333 static int
15334 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_) {
15335 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15336 gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
15338 return offset;
15342 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
15343 { 0, "routingInfo" },
15344 { 1, "camelRoutingInfo" },
15345 { 0, NULL }
15348 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
15349 { 0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
15350 { 1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
15351 { 0, NULL, 0, 0, 0, NULL }
15354 static int
15355 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_) {
15356 offset = dissect_ber_choice(actx, tree, tvb, offset,
15357 gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
15358 NULL);
15360 return offset;
15364 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
15365 { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15366 { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15367 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15368 { NULL, 0, 0, 0, NULL }
15371 static int
15372 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_) {
15373 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15374 gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
15376 return offset;
15380 static int * const gsm_map_ch_AllowedServices_bits[] = {
15381 &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
15382 &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
15383 NULL
15386 static int
15387 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_) {
15388 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
15389 gsm_map_ch_AllowedServices_bits, 2, hf_index, ett_gsm_map_ch_AllowedServices,
15390 NULL);
15392 return offset;
15396 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
15397 { 1, "bearerServiceNotProvisioned" },
15398 { 2, "teleserviceNotProvisioned" },
15399 { 3, "absentSubscriber" },
15400 { 4, "busySubscriber" },
15401 { 5, "callBarred" },
15402 { 6, "cug-Reject" },
15403 { 0, NULL }
15407 static int
15408 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_) {
15409 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15410 NULL);
15412 return offset;
15416 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
15417 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15418 { &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 },
15419 { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15420 { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15421 { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
15422 { &hf_gsm_map_ch_ss_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
15423 { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15424 { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15425 { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15426 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15427 { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
15428 { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
15429 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15430 { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
15431 { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
15432 { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15433 { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
15434 { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
15435 { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
15436 { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15437 { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
15438 { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
15439 { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15440 { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15441 { NULL, 0, 0, 0, NULL }
15444 static int
15445 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_) {
15446 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15447 gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
15449 return offset;
15454 static int
15455 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_) {
15456 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
15457 hf_index, BER_CLASS_CON, 3, true, dissect_gsm_map_ch_SendRoutingInfoRes_U);
15459 return offset;
15463 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
15464 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15465 { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15466 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15467 { &hf_gsm_map_ch_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15468 { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15469 { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15470 { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
15471 { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15472 { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
15473 { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15474 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15475 { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15476 { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15477 { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
15478 { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
15479 { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15480 { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15481 { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15482 { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15483 { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
15484 { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15485 { &hf_gsm_map_ch_pagingArea, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
15486 { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
15487 { &hf_gsm_map_ch_mtrf_Indicator, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15488 { &hf_gsm_map_ch_oldMSC_Number, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15489 { &hf_gsm_map_ch_lastUsedLtePLMN_Id, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
15490 { NULL, 0, 0, 0, NULL }
15493 static int
15494 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_) {
15495 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15496 gsm_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
15498 return offset;
15502 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
15503 { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15504 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15505 { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
15506 { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15507 { NULL, 0, 0, 0, NULL }
15510 static int
15511 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_) {
15512 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15513 gsm_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
15515 return offset;
15520 static int
15521 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_) {
15522 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15523 NULL);
15525 return offset;
15530 static int
15531 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_) {
15532 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15533 NULL);
15535 return offset;
15539 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
15540 { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
15541 { &hf_gsm_map_ch_uui , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
15542 { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15543 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15544 { NULL, 0, 0, 0, NULL }
15548 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_) {
15549 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15550 gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
15552 return offset;
15556 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
15557 { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
15558 { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15559 { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
15560 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15561 { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
15562 { &hf_gsm_map_ch_o_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
15563 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15564 { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15565 { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15566 { &hf_gsm_map_ch_uu_Data , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
15567 { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15568 { &hf_gsm_map_ch_d_csi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
15569 { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
15570 { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
15571 { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15572 { NULL, 0, 0, 0, NULL }
15575 static int
15576 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_) {
15577 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15578 gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
15580 return offset;
15584 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
15585 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15586 { NULL, 0, 0, 0, NULL }
15589 static int
15590 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_) {
15591 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15592 gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
15594 return offset;
15598 static const value_string gsm_map_ch_ReportingState_vals[] = {
15599 { 0, "stopMonitoring" },
15600 { 1, "startMonitoring" },
15601 { 0, NULL }
15605 static int
15606 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_) {
15607 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15608 NULL);
15610 return offset;
15614 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
15615 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15616 { &hf_gsm_map_ch_lmsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15617 { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
15618 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15619 { NULL, 0, 0, 0, NULL }
15622 static int
15623 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_) {
15624 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15625 gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
15627 return offset;
15631 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
15632 { 0, "ccbsNotIdle" },
15633 { 1, "ccbsIdle" },
15634 { 2, "ccbsNotReachable" },
15635 { 0, NULL }
15639 static int
15640 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_) {
15641 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15642 NULL);
15644 return offset;
15648 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
15649 { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
15650 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15651 { NULL, 0, 0, 0, NULL }
15654 static int
15655 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_) {
15656 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15657 gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
15659 return offset;
15663 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
15664 { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
15665 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15666 { NULL, 0, 0, 0, NULL }
15669 static int
15670 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_) {
15671 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15672 gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
15674 return offset;
15678 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
15679 { 0, "a-side" },
15680 { 1, "b-side" },
15681 { 0, NULL }
15685 static int
15686 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_) {
15687 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15688 NULL);
15690 return offset;
15694 static const value_string gsm_map_ch_CallOutcome_vals[] = {
15695 { 0, "success" },
15696 { 1, "failure" },
15697 { 2, "busy" },
15698 { 0, NULL }
15702 static int
15703 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_) {
15704 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15705 NULL);
15707 return offset;
15711 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
15712 { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
15713 { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
15714 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15715 { NULL, 0, 0, 0, NULL }
15718 static int
15719 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_) {
15720 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15721 gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
15723 return offset;
15727 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
15728 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15729 { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
15730 { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
15731 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15732 { NULL, 0, 0, 0, NULL }
15735 static int
15736 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_) {
15737 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15738 gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
15740 return offset;
15744 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
15745 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15746 { NULL, 0, 0, 0, NULL }
15749 static int
15750 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_) {
15751 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15752 gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
15754 return offset;
15758 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
15759 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15760 { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
15761 { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
15762 { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15763 { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15764 { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
15765 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15766 { NULL, 0, 0, 0, NULL }
15769 static int
15770 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_) {
15771 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15772 gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
15774 return offset;
15778 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
15779 { 0, "accepted" },
15780 { 1, "rejected" },
15781 { 2, "noResponseFromFreeMS" },
15782 { 3, "noResponseFromBusyMS" },
15783 { 4, "udubFromFreeMS" },
15784 { 5, "udubFromBusyMS" },
15785 { 0, NULL }
15789 static int
15790 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_) {
15791 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15792 NULL);
15794 return offset;
15798 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
15799 { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
15800 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15801 { NULL, 0, 0, 0, NULL }
15804 static int
15805 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_) {
15806 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15807 gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
15809 return offset;
15813 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
15814 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15815 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15816 { NULL, 0, 0, 0, NULL }
15819 static int
15820 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_) {
15821 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15822 gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
15824 return offset;
15828 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
15829 { 0, "terminateCallActivityReferred" },
15830 { 1, "terminateAllCallActivities" },
15831 { 0, NULL }
15835 static int
15836 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_) {
15837 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15838 NULL);
15840 return offset;
15844 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
15845 { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
15846 { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
15847 { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
15848 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15849 { NULL, 0, 0, 0, NULL }
15852 static int
15853 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_) {
15854 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15855 gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
15857 return offset;
15861 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
15862 { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15863 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15864 { NULL, 0, 0, 0, NULL }
15867 static int
15868 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_) {
15869 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15870 gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
15872 return offset;
15876 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
15877 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15878 { NULL, 0, 0, 0, NULL }
15881 static int
15882 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_) {
15883 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15884 gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
15886 return offset;
15890 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
15891 { &hf_gsm_map_ch_msrn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15892 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15893 { NULL, 0, 0, 0, NULL }
15896 static int
15897 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_) {
15898 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15899 gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
15901 return offset;
15905 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
15906 { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15907 { NULL, 0, 0, 0, NULL }
15910 static int
15911 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_) {
15912 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15913 gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
15915 return offset;
15919 /* --- Module MAP-LCS-DataTypes --- --- --- */
15922 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
15923 { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15924 { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
15925 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15926 { NULL, 0, 0, 0, NULL }
15929 static int
15930 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_) {
15931 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15932 gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
15934 return offset;
15939 static int
15940 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_) {
15941 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15943 return offset;
15947 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
15948 { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15949 { &hf_gsm_map_lcs_lmsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15950 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15951 { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15952 { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
15953 { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
15954 { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
15955 { &hf_gsm_map_lcs_mme_Name, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
15956 { &hf_gsm_map_lcs_aaa_Server_Name, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
15957 { &hf_gsm_map_lcs_sgsn_Name, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
15958 { &hf_gsm_map_lcs_sgsn_Realm, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
15959 { NULL, 0, 0, 0, NULL }
15962 static int
15963 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_) {
15964 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15965 gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
15967 return offset;
15971 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
15972 { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
15973 { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
15974 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15975 { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15976 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15977 { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15978 { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15979 { NULL, 0, 0, 0, NULL }
15982 static int
15983 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_) {
15984 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15985 gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
15987 return offset;
15991 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
15992 { 0, "currentLocation" },
15993 { 1, "currentOrLastKnownLocation" },
15994 { 2, "initialLocation" },
15995 { 3, "activateDeferredLocation" },
15996 { 4, "cancelDeferredLocation" },
15997 { 5, "notificationVerificationOnly" },
15998 { 0, NULL }
16002 static int
16003 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_) {
16004 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16005 NULL);
16007 return offset;
16011 static int * const gsm_map_lcs_DeferredLocationEventType_bits[] = {
16012 &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
16013 &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
16014 &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
16015 &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
16016 &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
16017 NULL
16021 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_) {
16022 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
16023 gsm_map_lcs_DeferredLocationEventType_bits, 5, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
16024 NULL);
16026 return offset;
16030 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
16031 { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
16032 { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
16033 { NULL, 0, 0, 0, NULL }
16037 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_) {
16038 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16039 gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
16041 return offset;
16045 const value_string gsm_map_lcs_LCSClientType_vals[] = {
16046 { 0, "emergencyServices" },
16047 { 1, "valueAddedServices" },
16048 { 2, "plmnOperatorServices" },
16049 { 3, "lawfulInterceptServices" },
16050 { 0, NULL }
16055 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_) {
16056 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16057 NULL);
16059 return offset;
16064 static int
16065 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_) {
16066 offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
16068 return offset;
16072 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
16073 { 0, "logicalName" },
16074 { 1, "e-mailAddress" },
16075 { 2, "msisdn" },
16076 { 3, "url" },
16077 { 4, "sipUrl" },
16078 { 0, NULL }
16082 static int
16083 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_) {
16084 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16085 NULL);
16087 return offset;
16091 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
16092 { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
16093 { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
16094 { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
16095 { NULL, 0, 0, 0, NULL }
16099 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_) {
16100 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16101 gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
16103 return offset;
16108 static int
16109 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_) {
16110 offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
16112 return offset;
16116 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
16117 { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
16118 { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
16119 { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
16120 { NULL, 0, 0, 0, NULL }
16124 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_) {
16125 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16126 gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
16128 return offset;
16132 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
16133 { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
16134 { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
16135 { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
16136 { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
16137 { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
16138 { &hf_gsm_map_lcs_lcsAPN , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
16139 { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
16140 { NULL, 0, 0, 0, NULL }
16144 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_) {
16145 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16146 gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
16148 return offset;
16154 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_) {
16155 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16156 NULL);
16158 return offset;
16163 static int
16164 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_) {
16165 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16166 NULL);
16168 return offset;
16173 static int
16174 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_) {
16175 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16176 NULL);
16178 return offset;
16182 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
16183 { 0, "lowdelay" },
16184 { 1, "delaytolerant" },
16185 { 0, NULL }
16189 static int
16190 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_) {
16191 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16192 NULL);
16194 return offset;
16198 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
16199 { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
16200 { NULL, 0, 0, 0, NULL }
16203 static int
16204 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_) {
16205 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16206 gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
16208 return offset;
16212 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
16213 { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
16214 { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16215 { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
16216 { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
16217 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16218 { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16219 { NULL, 0, 0, 0, NULL }
16223 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_) {
16224 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16225 gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
16227 return offset;
16231 static int * const gsm_map_lcs_SupportedGADShapes_bits[] = {
16232 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
16233 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
16234 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
16235 &hf_gsm_map_lcs_SupportedGADShapes_polygon,
16236 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
16237 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
16238 &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
16239 NULL
16243 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_) {
16244 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
16245 gsm_map_lcs_SupportedGADShapes_bits, 7, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
16246 NULL);
16248 return offset;
16254 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_) {
16255 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16256 NULL);
16258 return offset;
16263 static int
16264 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_) {
16265 offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
16267 return offset;
16271 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
16272 { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
16273 { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
16274 { NULL, 0, 0, 0, NULL }
16278 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_) {
16279 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16280 gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
16282 return offset;
16286 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
16287 { 0, "allowedWithoutNotification" },
16288 { 1, "allowedWithNotification" },
16289 { 2, "allowedIfNoResponse" },
16290 { 3, "restrictedIfNoResponse" },
16291 { 4, "notAllowed" },
16292 { 0, NULL }
16296 static int
16297 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_) {
16298 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16299 NULL);
16301 return offset;
16305 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
16306 { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
16307 { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
16308 { NULL, 0, 0, 0, NULL }
16311 static int
16312 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_) {
16313 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16314 gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
16316 return offset;
16320 static const value_string gsm_map_lcs_AreaType_vals[] = {
16321 { 0, "countryCode" },
16322 { 1, "plmnId" },
16323 { 2, "locationAreaId" },
16324 { 3, "routingAreaId" },
16325 { 4, "cellGlobalId" },
16326 { 5, "utranCellId" },
16327 { 0, NULL }
16331 static int
16332 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_) {
16333 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16334 NULL);
16336 return offset;
16341 static int
16342 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_) {
16343 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16344 NULL);
16346 return offset;
16350 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
16351 { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
16352 { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
16353 { NULL, 0, 0, 0, NULL }
16356 static int
16357 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_) {
16358 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16359 gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
16361 return offset;
16365 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
16366 { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
16369 static int
16370 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_) {
16371 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
16372 gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
16374 return offset;
16378 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
16379 { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
16380 { NULL, 0, 0, 0, NULL }
16383 static int
16384 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_) {
16385 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16386 gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
16388 return offset;
16392 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
16393 { 0, "oneTimeEvent" },
16394 { 1, "multipleTimeEvent" },
16395 { 0, NULL }
16399 static int
16400 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_) {
16401 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16402 NULL);
16404 return offset;
16409 static int
16410 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_) {
16411 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16412 NULL);
16414 return offset;
16418 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
16419 { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
16420 { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
16421 { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
16422 { NULL, 0, 0, 0, NULL }
16426 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_) {
16427 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16428 gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
16430 return offset;
16435 static int
16436 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_) {
16437 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16438 NULL);
16440 return offset;
16445 static int
16446 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_) {
16447 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16448 NULL);
16450 return offset;
16454 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
16455 { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
16456 { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
16457 { NULL, 0, 0, 0, NULL }
16460 static int
16461 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_) {
16462 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16463 gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
16465 return offset;
16469 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
16470 { 0, "gsm" },
16471 { 1, "umts" },
16472 { 0, NULL }
16476 static int
16477 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_) {
16478 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16479 NULL);
16481 return offset;
16485 static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = {
16486 { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
16487 { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
16488 { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16489 { NULL, 0, 0, 0, NULL }
16492 static int
16493 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_) {
16494 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16495 gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
16497 return offset;
16501 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
16502 { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
16505 static int
16506 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_) {
16507 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
16508 gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
16510 return offset;
16514 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
16515 { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16516 { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
16517 { NULL, 0, 0, 0, NULL }
16520 static int
16521 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_) {
16522 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16523 gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
16525 return offset;
16529 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
16530 { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
16531 { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16532 { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
16533 { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16534 { &hf_gsm_map_lcs_imsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
16535 { &hf_gsm_map_lcs_msisdn , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16536 { &hf_gsm_map_lcs_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
16537 { &hf_gsm_map_lcs_imei , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
16538 { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
16539 { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
16540 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16541 { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
16542 { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16543 { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
16544 { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
16545 { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
16546 { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
16547 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16548 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16549 { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
16550 { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
16551 { NULL, 0, 0, 0, NULL }
16554 static int
16555 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_) {
16556 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16557 gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
16559 return offset;
16565 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_) {
16566 tvbuff_t *parameter_tvb;
16567 proto_tree *subtree;
16569 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16570 &parameter_tvb);
16573 if (!parameter_tvb)
16574 return offset;
16576 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
16577 dissect_geographical_description(parameter_tvb, actx->pinfo, subtree);
16581 return offset;
16587 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_) {
16588 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16589 NULL);
16591 return offset;
16596 static int
16597 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_) {
16598 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16599 NULL);
16601 return offset;
16606 static int
16607 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_) {
16608 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16609 NULL);
16611 return offset;
16615 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
16616 { 0, "requestedAccuracyFulfilled" },
16617 { 1, "requestedAccuracyNotFulfilled" },
16618 { 0, NULL }
16622 static int
16623 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_) {
16624 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16625 NULL);
16627 return offset;
16633 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_) {
16634 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16635 NULL);
16637 return offset;
16642 static int
16643 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_) {
16644 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16645 NULL);
16647 return offset;
16652 static int
16653 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_) {
16654 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16655 NULL);
16657 return offset;
16661 static const value_string gsm_map_lcs_ServingNodeAddress_vals[] = {
16662 { 0, "msc-Number" },
16663 { 1, "sgsn-Number" },
16664 { 2, "mme-Number" },
16665 { 0, NULL }
16668 static const ber_choice_t gsm_map_lcs_ServingNodeAddress_choice[] = {
16669 { 0, &hf_gsm_map_lcs_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16670 { 1, &hf_gsm_map_lcs_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16671 { 2, &hf_gsm_map_lcs_mme_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
16672 { 0, NULL, 0, 0, 0, NULL }
16675 static int
16676 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_) {
16677 offset = dissect_ber_choice(actx, tree, tvb, offset,
16678 gsm_map_lcs_ServingNodeAddress_choice, hf_index, ett_gsm_map_lcs_ServingNodeAddress,
16679 NULL);
16681 return offset;
16686 static int
16687 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_) {
16688 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16689 NULL);
16691 return offset;
16696 static int
16697 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_) {
16698 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16699 NULL);
16701 return offset;
16706 static int
16707 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_) {
16708 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16709 NULL);
16711 return offset;
16715 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
16716 { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
16717 { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
16718 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16719 { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
16720 { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16721 { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
16722 { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
16723 { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
16724 { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16725 { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
16726 { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
16727 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16728 { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData },
16729 { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData },
16730 { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress },
16731 { &hf_gsm_map_lcs_utranAdditionalPositioningData, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranAdditionalPositioningData },
16732 { &hf_gsm_map_lcs_utranBaroPressureMeas, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranBaroPressureMeas },
16733 { &hf_gsm_map_lcs_utranCivicAddress, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranCivicAddress },
16734 { NULL, 0, 0, 0, NULL }
16737 static int
16738 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_) {
16739 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16740 gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
16742 return offset;
16746 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
16747 { 0, "emergencyCallOrigination" },
16748 { 1, "emergencyCallRelease" },
16749 { 2, "mo-lr" },
16750 { 3, "deferredmt-lrResponse" },
16751 { 4, "deferredmo-lrTTTPInitiation" },
16752 { 5, "emergencyCallHandover" },
16753 { 0, NULL }
16757 static int
16758 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_) {
16759 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16760 NULL);
16762 return offset;
16766 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
16767 { 0, "normal" },
16768 { 1, "errorundefined" },
16769 { 2, "internalTimeout" },
16770 { 3, "congestion" },
16771 { 4, "mt-lrRestart" },
16772 { 5, "privacyViolation" },
16773 { 6, "shapeOfLocationEstimateNotSupported" },
16774 { 7, "subscriberTermination" },
16775 { 8, "uETermination" },
16776 { 9, "networkTermination" },
16777 { 0, NULL }
16781 static int
16782 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_) {
16783 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16784 NULL);
16786 return offset;
16790 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
16791 { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
16792 { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
16793 { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
16794 { NULL, 0, 0, 0, NULL }
16797 static int
16798 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_) {
16799 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16800 gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
16802 return offset;
16807 static int
16808 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_) {
16809 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16810 NULL);
16812 return offset;
16816 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
16817 { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
16818 { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
16819 { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
16820 { &hf_gsm_map_lcs_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16821 { &hf_gsm_map_lcs_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
16822 { &hf_gsm_map_lcs_imei , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
16823 { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16824 { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16825 { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
16826 { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
16827 { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
16828 { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
16829 { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
16830 { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16831 { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
16832 { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
16833 { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
16834 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16835 { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
16836 { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16837 { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16838 { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
16839 { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
16840 { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
16841 { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
16842 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16843 { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData },
16844 { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData },
16845 { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress },
16846 { &hf_gsm_map_lcs_utranAdditionalPositioningData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranAdditionalPositioningData },
16847 { &hf_gsm_map_lcs_utranBaroPressureMeas, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranBaroPressureMeas },
16848 { &hf_gsm_map_lcs_utranCivicAddress, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranCivicAddress },
16849 { NULL, 0, 0, 0, NULL }
16852 static int
16853 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_) {
16854 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16855 gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
16857 return offset;
16861 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
16862 { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16863 { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16864 { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16865 { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
16866 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
16867 { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
16868 { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
16869 { NULL, 0, 0, 0, NULL }
16872 static int
16873 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_) {
16874 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16875 gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
16877 return offset;
16880 /*--- PDUs ---*/
16882 int dissect_gsm_map_lcs_LCS_ClientID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
16883 int offset = 0;
16884 asn1_ctx_t asn1_ctx;
16885 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
16886 offset = dissect_gsm_map_lcs_LCS_ClientID(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU);
16887 return offset;
16891 /* --- Module MAP-GR-DataTypes --- --- --- */
16895 static int
16896 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_) {
16897 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16898 NULL);
16900 return offset;
16905 static int
16906 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_) {
16907 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16908 NULL);
16910 return offset;
16915 static int
16916 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_) {
16917 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16918 NULL);
16920 return offset;
16925 static int
16926 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_) {
16927 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
16929 return offset;
16934 static int
16935 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_) {
16936 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16937 NULL);
16939 return offset;
16944 static int
16945 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_) {
16946 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16947 NULL);
16949 return offset;
16953 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
16954 { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
16955 { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
16956 { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
16957 { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
16958 { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
16959 { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
16960 { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
16961 { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
16962 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16963 { &hf_gsm_map_gr_vstk , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
16964 { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
16965 { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
16966 { &hf_gsm_map_gr_uplinkReplyIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
16967 { NULL, 0, 0, 0, NULL }
16970 static int
16971 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_) {
16972 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16973 gsm_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
16975 return offset;
16979 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
16980 { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16981 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16982 { NULL, 0, 0, 0, NULL }
16985 static int
16986 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_) {
16987 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16988 gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
16990 return offset;
16994 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
16995 { 0, "normal" },
16996 { 1, "privileged" },
16997 { 2, "emergency" },
16998 { 0, NULL }
17002 static int
17003 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_) {
17004 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17005 NULL);
17007 return offset;
17011 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
17012 { &hf_gsm_map_gr_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
17013 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17014 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17015 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17016 { NULL, 0, 0, 0, NULL }
17019 static int
17020 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_) {
17021 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17022 gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
17024 return offset;
17028 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
17029 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17030 { NULL, 0, 0, 0, NULL }
17033 static int
17034 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_) {
17035 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17036 gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
17038 return offset;
17042 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
17043 { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17044 { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17045 { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17046 { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17047 { NULL, 0, 0, 0, NULL }
17050 static int
17051 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_) {
17052 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17053 gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
17055 return offset;
17059 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
17060 { &hf_gsm_map_gr_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
17061 { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17062 { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17063 { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17064 { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17065 { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17066 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17067 { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
17068 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17069 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17070 { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17071 { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
17072 { &hf_gsm_map_gr_an_APDU , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
17073 { NULL, 0, 0, 0, NULL }
17076 static int
17077 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_) {
17078 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17079 gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
17081 return offset;
17085 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
17086 { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17087 { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17088 { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17089 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17090 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17091 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17092 { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
17093 { &hf_gsm_map_gr_an_APDU , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
17094 { NULL, 0, 0, 0, NULL }
17097 static int
17098 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_) {
17099 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17100 gsm_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
17102 return offset;
17106 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
17107 { 0, "anchorMSC-AddressAndASCI-CallReference" },
17108 { 1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
17109 { 0, NULL }
17113 static int
17114 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_) {
17115 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17116 NULL);
17118 return offset;
17122 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
17123 { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
17124 { &hf_gsm_map_gr_groupId , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
17125 { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
17126 { &hf_gsm_map_gr_cellId , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
17127 { &hf_gsm_map_gr_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
17128 { &hf_gsm_map_gr_tmsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
17129 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17130 { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
17131 { &hf_gsm_map_gr_cksn , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
17132 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
17133 { NULL, 0, 0, 0, NULL }
17136 static int
17137 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_) {
17138 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17139 gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
17141 return offset;
17145 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
17146 { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17147 { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
17148 { &hf_gsm_map_gr_imsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
17149 { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
17150 { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
17151 { &hf_gsm_map_gr_kc , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
17152 { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
17153 { NULL, 0, 0, 0, NULL }
17156 static int
17157 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_) {
17158 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17159 gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
17161 return offset;
17165 /* --- Module MAP-DialogueInformation --- --- --- */
17168 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
17169 { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
17170 { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
17171 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17172 { NULL, 0, 0, 0, NULL }
17175 static int
17176 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_) {
17177 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17178 gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
17180 return offset;
17184 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
17185 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17186 { NULL, 0, 0, 0, NULL }
17189 static int
17190 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_) {
17191 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17192 gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
17194 return offset;
17198 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
17199 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17200 { NULL, 0, 0, 0, NULL }
17203 static int
17204 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_) {
17205 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17206 gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
17208 return offset;
17212 static const value_string gsm_map_dialogue_Reason_vals[] = {
17213 { 0, "noReasonGiven" },
17214 { 1, "invalidDestinationReference" },
17215 { 2, "invalidOriginatingReference" },
17216 { 0, NULL }
17220 static int
17221 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_) {
17222 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17223 NULL);
17225 return offset;
17230 static int
17231 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_) {
17232 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
17234 return offset;
17238 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
17239 { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
17240 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17241 { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
17242 { NULL, 0, 0, 0, NULL }
17245 static int
17246 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_) {
17247 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17248 gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
17250 return offset;
17255 static int
17256 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_) {
17257 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
17259 return offset;
17263 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
17264 { 0, "shortTermResourceLimitation" },
17265 { 1, "longTermResourceLimitation" },
17266 { 0, NULL }
17270 static int
17271 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_) {
17272 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17273 NULL);
17275 return offset;
17279 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
17280 { 0, "handoverCancellation" },
17281 { 1, "radioChannelRelease" },
17282 { 2, "networkPathRelease" },
17283 { 3, "callRelease" },
17284 { 4, "associatedProcedureFailure" },
17285 { 5, "tandemDialogueRelease" },
17286 { 6, "remoteOperationsFailure" },
17287 { 0, NULL }
17291 static int
17292 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_) {
17293 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17294 NULL);
17296 return offset;
17300 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
17301 { 0, "userSpecificReason" },
17302 { 1, "userResourceLimitation" },
17303 { 2, "resourceUnavailable" },
17304 { 3, "applicationProcedureCancellation" },
17305 { 0, NULL }
17308 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
17309 { 0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
17310 { 1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
17311 { 2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
17312 { 3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
17313 { 0, NULL, 0, 0, 0, NULL }
17316 static int
17317 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_) {
17318 offset = dissect_ber_choice(actx, tree, tvb, offset,
17319 gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
17320 NULL);
17322 return offset;
17326 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
17327 { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
17328 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17329 { NULL, 0, 0, 0, NULL }
17332 static int
17333 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_) {
17334 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17335 gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
17337 return offset;
17341 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
17342 { 0, "abnormalDialogue" },
17343 { 1, "invalidPDU" },
17344 { 0, NULL }
17348 static int
17349 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_) {
17350 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17351 NULL);
17353 return offset;
17357 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
17358 { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
17359 { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
17360 { NULL, 0, 0, 0, NULL }
17363 static int
17364 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_) {
17365 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17366 gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
17368 return offset;
17372 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
17373 { 0, "map-open" },
17374 { 1, "map-accept" },
17375 { 2, "map-close" },
17376 { 3, "map-refuse" },
17377 { 4, "map-userAbort" },
17378 { 5, "map-providerAbort" },
17379 { 0, NULL }
17382 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
17383 { 0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
17384 { 1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
17385 { 2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
17386 { 3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
17387 { 4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
17388 { 5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
17389 { 0, NULL, 0, 0, 0, NULL }
17392 static int
17393 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_) {
17394 offset = dissect_ber_choice(actx, tree, tvb, offset,
17395 gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
17396 NULL);
17398 return offset;
17401 /*--- PDUs ---*/
17403 static int dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
17404 int offset = 0;
17405 asn1_ctx_t asn1_ctx;
17406 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
17407 offset = dissect_gsm_map_dialogue_MAP_DialoguePDU(false, tvb, offset, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
17408 return offset;
17412 /* --- Module MAP-LocationServiceOperations --- --- --- */
17415 /* --- Module MAP-Group-Call-Operations --- --- --- */
17418 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
17421 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
17424 /* --- Module MAP-CallHandlingOperations --- --- --- */
17427 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
17430 /* --- Module MAP-MobileServiceOperations --- --- --- */
17433 /* --- Module MAP-Errors --- --- --- */
17436 /* --- Module MAP-Protocol --- --- --- */
17439 /* --- Module DummyMAP --- --- --- */
17443 static int
17444 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_) {
17445 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17446 NULL);
17448 return offset;
17452 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
17453 { 2, "updateLocation" },
17454 { 3, "cancelLocation" },
17455 { 4, "provideRoamingNumber" },
17456 { 5, "noteSubscriberDataModified" },
17457 { 6, "resumeCallHandling" },
17458 { 7, "insertSubscriberData" },
17459 { 8, "deleteSubscriberData" },
17460 { 9, "sendParameters" },
17461 { 10, "registerSS" },
17462 { 11, "eraseSS" },
17463 { 12, "activateSS" },
17464 { 13, "deactivateSS" },
17465 { 14, "interrogateSS" },
17466 { 15, "authenticationFailureReport" },
17467 { 16, "notifySS" },
17468 { 17, "registerPassword" },
17469 { 18, "getPassword" },
17470 { 19, "processUnstructuredSS-Data" },
17471 { 20, "releaseResources" },
17472 { 21, "mt-ForwardSM-VGCS" },
17473 { 22, "sendRoutingInfo" },
17474 { 23, "updateGprsLocation" },
17475 { 24, "sendRoutingInfoForGprs" },
17476 { 25, "failureReport" },
17477 { 26, "noteMsPresentForGprs" },
17478 { 27, "unAllocated" },
17479 { 28, "performHandover" },
17480 { 29, "sendEndSignal" },
17481 { 30, "performSubsequentHandover" },
17482 { 31, "provideSIWFSNumber" },
17483 { 32, "sIWFSSignallingModify" },
17484 { 33, "processAccessSignalling" },
17485 { 34, "forwardAccessSignalling" },
17486 { 35, "noteInternalHandover" },
17487 { 36, "cancelVcsgLocation" },
17488 { 37, "reset" },
17489 { 38, "forwardCheckSS" },
17490 { 39, "prepareGroupCall" },
17491 { 40, "sendGroupCallEndSignal" },
17492 { 41, "processGroupCallSignalling" },
17493 { 42, "forwardGroupCallSignalling" },
17494 { 43, "checkIMEI" },
17495 { 44, "mt-forwardSM" },
17496 { 45, "sendRoutingInfoForSM" },
17497 { 46, "mo-forwardSM" },
17498 { 47, "reportSM-DeliveryStatus" },
17499 { 48, "noteSubscriberPresent" },
17500 { 49, "alertServiceCentreWithoutResult" },
17501 { 50, "activateTraceMode" },
17502 { 51, "deactivateTraceMode" },
17503 { 52, "traceSubscriberActivity" },
17504 { 53, "updateVcsgLocation" },
17505 { 54, "beginSubscriberActivity" },
17506 { 55, "sendIdentification" },
17507 { 56, "sendAuthenticationInfo" },
17508 { 57, "restoreData" },
17509 { 58, "sendIMSI" },
17510 { 59, "processUnstructuredSS-Request" },
17511 { 60, "unstructuredSS-Request" },
17512 { 61, "unstructuredSS-Notify" },
17513 { 62, "anyTimeSubscriptionInterrogation" },
17514 { 63, "informServiceCentre" },
17515 { 64, "alertServiceCentre" },
17516 { 65, "anyTimeModification" },
17517 { 66, "readyForSM" },
17518 { 67, "purgeMS" },
17519 { 68, "prepareHandover" },
17520 { 69, "prepareSubsequentHandover" },
17521 { 70, "provideSubscriberInfo" },
17522 { 71, "anyTimeInterrogation" },
17523 { 72, "ss-InvocationNotification" },
17524 { 73, "setReportingState" },
17525 { 74, "statusReport" },
17526 { 75, "remoteUserFree" },
17527 { 76, "registerCC-Entry" },
17528 { 77, "eraseCC-Entry" },
17529 { 78, "secureTransportClass1" },
17530 { 79, "secureTransportClass2" },
17531 { 80, "secureTransportClass3" },
17532 { 81, "secureTransportClass4" },
17533 { 82, "unAllocated" },
17534 { 83, "provideSubscriberLocation" },
17535 { 84, "sendGroupCallInfo" },
17536 { 85, "sendRoutingInfoForLCS" },
17537 { 86, "subscriberLocationReport" },
17538 { 87, "ist-Alert" },
17539 { 88, "ist-Command" },
17540 { 89, "noteMM-Event" },
17541 { 90, "unAllocated" },
17542 { 91, "unAllocated" },
17543 { 92, "unAllocated" },
17544 { 93, "unAllocated" },
17545 { 94, "unAllocated" },
17546 { 95, "unAllocated" },
17547 { 96, "unAllocated" },
17548 { 97, "unAllocated" },
17549 { 98, "unAllocated" },
17550 { 99, "unAllocated" },
17551 { 100, "unAllocated" },
17552 { 101, "unAllocated" },
17553 { 102, "unAllocated" },
17554 { 103, "unAllocated" },
17555 { 104, "unAllocated" },
17556 { 105, "unAllocated" },
17557 { 106, "unAllocated" },
17558 { 107, "unAllocated" },
17559 { 108, "unAllocated" },
17560 { 109, "lcs-PeriodicLocationCancellation" },
17561 { 110, "lcs-LocationUpdate" },
17562 { 111, "lcs-PeriodicLocationRequest" },
17563 { 112, "lcs-AreaEventCancellation" },
17564 { 113, "lcs-AreaEventReport" },
17565 { 114, "lcs-AreaEventRequest" },
17566 { 115, "lcs-MOLR" },
17567 { 116, "lcs-LocationNotification" },
17568 { 117, "callDeflection" },
17569 { 118, "userUserService" },
17570 { 119, "accessRegisterCCEntry" },
17571 { 120, "forwardCUG-Info" },
17572 { 121, "splitMPTY" },
17573 { 122, "retrieveMPTY" },
17574 { 123, "holdMPTY" },
17575 { 124, "buildMPTY" },
17576 { 125, "forwardChargeAdvice" },
17577 { 126, "explicitCT" },
17578 { 0, NULL }
17581 static value_string_ext gsm_old_GSMMAPOperationLocalvalue_vals_ext = VALUE_STRING_EXT_INIT(gsm_old_GSMMAPOperationLocalvalue_vals);
17584 static int
17585 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_) {
17586 const char *opcode_string;
17588 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17589 &opcode);
17591 /* Retrieve opcode string and eventually update item value */
17592 opcode_string = gsm_map_opr_code(opcode, actx->created_item);
17593 col_append_str(actx->pinfo->cinfo, COL_INFO, opcode_string);
17594 col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
17597 return offset;
17602 static int
17603 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_) {
17604 offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
17606 return offset;
17611 static int
17612 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_) {
17613 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
17615 return offset;
17619 static const value_string gsm_old_MAP_OPERATION_vals[] = {
17620 { 0, "localValue" },
17621 { 1, "globalValue" },
17622 { 0, NULL }
17625 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
17626 { 0, &hf_gsm_old_localValue , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
17627 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
17628 { 0, NULL, 0, 0, 0, NULL }
17631 static int
17632 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_) {
17633 offset = dissect_ber_choice(actx, tree, tvb, offset,
17634 gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
17635 NULL);
17637 return offset;
17642 static int
17643 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_) {
17644 offset = dissect_invokeData(tree, tvb, offset, actx);
17647 return offset;
17651 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
17652 { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
17653 { &hf_gsm_old_linkedID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
17654 { &hf_gsm_old_opCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
17655 { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
17656 { NULL, 0, 0, 0, NULL }
17659 static int
17660 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_) {
17661 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17662 gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
17664 return offset;
17669 static int
17670 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_) {
17671 offset = dissect_returnResultData(tree, tvb, offset, actx);
17674 return offset;
17678 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
17679 { &hf_gsm_old_opCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
17680 { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
17681 { NULL, 0, 0, 0, NULL }
17684 static int
17685 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_) {
17686 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17687 gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
17689 return offset;
17693 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
17694 { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
17695 { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
17696 { NULL, 0, 0, 0, NULL }
17699 static int
17700 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_) {
17701 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17702 gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
17704 return offset;
17708 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
17709 { 1, "unknownSubscriber" },
17710 { 2, "unknownBaseStation" },
17711 { 3, "unknownMSC" },
17712 { 4, "secureTransportError" },
17713 { 5, "unidentifiedSubscriber" },
17714 { 6, "absentSubscriberSM" },
17715 { 7, "unknownEquipment" },
17716 { 8, "roamingNotAllowed" },
17717 { 9, "illegalSubscriber" },
17718 { 10, "bearerServiceNotProvisioned" },
17719 { 11, "teleserviceNotProvisioned" },
17720 { 12, "illegalEquipment" },
17721 { 13, "callBarred" },
17722 { 14, "forwardingViolation" },
17723 { 15, "cug-Reject" },
17724 { 16, "illegalSS-Operation" },
17725 { 17, "ss-ErrorStatus" },
17726 { 18, "ss-NotAvailable" },
17727 { 19, "ss-SubscriptionViolation" },
17728 { 20, "ss-Incompatibility" },
17729 { 21, "facilityNotSupported" },
17730 { 22, "ongoingGroupCall" },
17731 { 23, "invalidTargetBaseStation" },
17732 { 24, "noRadioResourceAvailable" },
17733 { 25, "noHandoverNumberAvailable" },
17734 { 26, "subsequentHandoverFailure" },
17735 { 27, "absentSubscriber" },
17736 { 28, "incompatibleTerminal" },
17737 { 29, "shortTermDenial" },
17738 { 30, "longTermDenial" },
17739 { 31, "subscriberBusyForMT-SMS" },
17740 { 32, "sm-DeliveryFailure" },
17741 { 33, "messageWaitingListFull" },
17742 { 34, "systemFailure" },
17743 { 35, "dataMissing" },
17744 { 36, "unexpectedDataValue" },
17745 { 37, "pw-RegistrationFailure" },
17746 { 38, "negativePW-Check" },
17747 { 39, "noRoamingNumberAvailable" },
17748 { 40, "tracingBufferFull" },
17749 { 42, "targetCellOutsideGroupCallArea" },
17750 { 43, "numberOfPW-AttemptsViolation" },
17751 { 44, "numberChanged" },
17752 { 45, "busySubscriber" },
17753 { 46, "noSubscriberReply" },
17754 { 47, "forwardingFailed" },
17755 { 48, "or-NotAllowed" },
17756 { 49, "ati-NotAllowed" },
17757 { 50, "noGroupCallNumberAvailable" },
17758 { 51, "resourceLimitation" },
17759 { 52, "unauthorizedRequestingNetwork" },
17760 { 53, "unauthorizedLCSClient" },
17761 { 54, "positionMethodFailure" },
17762 { 58, "unknownOrUnreachableLCSClient" },
17763 { 59, "mm-EventNotSupported" },
17764 { 60, "atsi-NotAllowed" },
17765 { 61, "atm-NotAllowed" },
17766 { 62, "informationNotAvailable" },
17767 { 71, "unknownAlphabet" },
17768 { 72, "ussd-Busy" },
17769 { 0, NULL }
17774 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_) {
17775 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17776 &errorCode);
17778 return offset;
17783 static int
17784 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_) {
17785 offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
17787 return offset;
17791 static const value_string gsm_old_MAP_ERROR_vals[] = {
17792 { 0, "localValue" },
17793 { 1, "globalValue" },
17794 { 0, NULL }
17797 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
17798 { 0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
17799 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
17800 { 0, NULL, 0, 0, 0, NULL }
17803 static int
17804 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_) {
17805 offset = dissect_ber_choice(actx, tree, tvb, offset,
17806 gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
17807 NULL);
17809 return offset;
17814 static int
17815 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_) {
17816 offset = dissect_returnErrorData(tree, tvb, offset, actx);
17819 return offset;
17823 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
17824 { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
17825 { &hf_gsm_old_errorCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
17826 { &hf_gsm_old_parameter , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
17827 { NULL, 0, 0, 0, NULL }
17830 static int
17831 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_) {
17832 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17833 gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
17835 return offset;
17840 static int
17841 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_) {
17842 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
17844 return offset;
17848 static const value_string gsm_old_T_invokeIDRej_vals[] = {
17849 { 0, "derivable" },
17850 { 1, "not-derivable" },
17851 { 0, NULL }
17854 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
17855 { 0, &hf_gsm_old_derivable , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
17856 { 1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
17857 { 0, NULL, 0, 0, 0, NULL }
17860 static int
17861 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_) {
17862 offset = dissect_ber_choice(actx, tree, tvb, offset,
17863 gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
17864 NULL);
17866 return offset;
17870 static const value_string gsm_old_GeneralProblem_vals[] = {
17871 { 0, "unrecognizedComponent" },
17872 { 1, "mistypedComponent" },
17873 { 2, "badlyStructuredComponent" },
17874 { 0, NULL }
17878 static int
17879 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_) {
17880 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17881 NULL);
17883 return offset;
17887 static const value_string gsm_old_InvokeProblem_vals[] = {
17888 { 0, "duplicateInvokeID" },
17889 { 1, "unrecognizedOperation" },
17890 { 2, "mistypedParameter" },
17891 { 3, "resourceLimitation" },
17892 { 4, "initiatingRelease" },
17893 { 5, "unrecognizedLinkedID" },
17894 { 6, "linkedResponseUnexpected" },
17895 { 7, "unexpectedLinkedOperation" },
17896 { 0, NULL }
17900 static int
17901 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_) {
17902 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17903 NULL);
17905 return offset;
17909 static const value_string gsm_old_ReturnResultProblem_vals[] = {
17910 { 0, "unrecognizedInvokeID" },
17911 { 1, "returnResultUnexpected" },
17912 { 2, "mistypedParameter" },
17913 { 0, NULL }
17917 static int
17918 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_) {
17919 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17920 NULL);
17922 return offset;
17926 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
17927 { 0, "unrecognizedInvokeID" },
17928 { 1, "returnErrorUnexpected" },
17929 { 2, "unrecognizedError" },
17930 { 3, "unexpectedError" },
17931 { 4, "mistypedParameter" },
17932 { 0, NULL }
17936 static int
17937 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_) {
17938 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17939 NULL);
17941 return offset;
17945 static const value_string gsm_old_T_problem_vals[] = {
17946 { 0, "generalProblem" },
17947 { 1, "invokeProblem" },
17948 { 2, "returnResultProblem" },
17949 { 3, "returnErrorProblem" },
17950 { 0, NULL }
17953 static const ber_choice_t gsm_old_T_problem_choice[] = {
17954 { 0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
17955 { 1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
17956 { 2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
17957 { 3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
17958 { 0, NULL, 0, 0, 0, NULL }
17961 static int
17962 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_) {
17963 offset = dissect_ber_choice(actx, tree, tvb, offset,
17964 gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
17965 NULL);
17967 return offset;
17971 static const ber_sequence_t gsm_old_Reject_sequence[] = {
17972 { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
17973 { &hf_gsm_old_problem , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
17974 { NULL, 0, 0, 0, NULL }
17977 static int
17978 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_) {
17979 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17980 gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
17982 return offset;
17986 static const value_string gsm_old_Component_vals[] = {
17987 { 1, "invoke" },
17988 { 2, "returnResultLast" },
17989 { 3, "returnError" },
17990 { 4, "reject" },
17991 { 7, "returnResultNotLast" },
17992 { 0, NULL }
17995 static const ber_choice_t gsm_old_Component_choice[] = {
17996 { 1, &hf_gsm_old_invoke , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
17997 { 2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
17998 { 3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
17999 { 4, &hf_gsm_old_reject , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
18000 { 7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
18001 { 0, NULL, 0, 0, 0, NULL }
18004 static int
18005 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_) {
18006 offset = dissect_ber_choice(actx, tree, tvb, offset,
18007 gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
18008 NULL);
18010 return offset;
18014 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
18015 { &hf_gsm_old_protocolId , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
18016 { &hf_gsm_old_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
18017 { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
18018 { NULL, 0, 0, 0, NULL }
18021 static int
18022 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_) {
18023 uint8_t octet;
18024 uint8_t length;
18025 tvbuff_t *next_tvb;
18026 proto_tree *subtree;
18028 ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
18029 5.6.9.1 BSS-apdu
18030 This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09
18031 and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06.
18032 For the coding of the messages see GSM 08.06 and GSM 08.08.
18034 ProtocolId = 0xffffffff;
18035 gsm_map_private_info_t *gsm_map_priv;
18036 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18037 gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
18039 gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
18040 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
18041 return offset;
18042 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
18043 switch (ProtocolId){
18044 case 1:
18045 /* gsm-0408 */
18046 /* As per comment abowe Individual IE:(s) will be found here in TLV format
18047 * Unfortunately a branch for each IE must be made to call the appropriate
18048 * function
18050 /* Get tag */
18051 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18052 proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
18053 /* get length */
18054 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
18055 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
18056 /* Branch on tag */
18057 switch(octet){
18058 case 4:
18059 /* Dissect the data part */
18060 de_bearer_cap(gsm_map_priv->signal_info_tvb, subtree, actx->pinfo, 2, length, NULL, 0);
18061 /* TODO: There may be more than one IE */
18062 break;
18063 default:
18064 proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, gsm_map_priv->signal_info_tvb, 0, length);
18065 break;
18066 }/* switch(octet) */
18067 break;
18068 case 2:
18069 /* gsm-0806 */
18070 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18071 /* Discrimination parameter */
18072 proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN);
18073 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
18074 /* Strip off discrimination and length */
18075 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
18076 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
18077 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
18078 }else if(octet==1){
18079 proto_tree_add_item(subtree, hf_gsm_map_dlci, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN);
18080 proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 2,1,ENC_BIG_ENDIAN);
18081 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 3);
18082 call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
18084 break;
18085 case 3:
18086 /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
18087 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18088 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
18089 next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2);
18090 call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info);
18092 break;
18093 /* ets-300102-1 (~Q.931 ) */
18094 case 4:
18095 octet = tvb_get_uint8(gsm_map_priv->signal_info_tvb,0);
18096 length = tvb_get_uint8(gsm_map_priv->signal_info_tvb,1);
18097 if ( octet == 4 )
18098 dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree);
18099 break;
18100 default:
18101 break;
18102 }/*switch (ProtocolId)*/
18105 return offset;
18110 static int
18111 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_) {
18112 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18113 NULL);
18115 return offset;
18119 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
18120 { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18121 { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18122 { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
18123 { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18124 { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18125 { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18126 { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18127 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18128 { NULL, 0, 0, 0, NULL }
18131 static int
18132 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_) {
18133 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18134 gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
18136 return offset;
18140 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
18141 { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18142 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18143 { NULL, 0, 0, 0, NULL }
18146 static int
18147 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_) {
18148 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18149 gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
18151 return offset;
18155 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
18156 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18157 { &hf_gsm_old_vlr_Number , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
18158 { NULL, 0, 0, 0, NULL }
18161 static int
18162 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_) {
18163 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18164 gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
18166 return offset;
18170 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
18171 { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
18172 { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
18173 { &hf_gsm_old_bss_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
18174 { NULL, 0, 0, 0, NULL }
18177 static int
18178 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_) {
18179 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18180 gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
18182 return offset;
18186 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
18187 { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
18188 { &hf_gsm_old_bss_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
18189 { NULL, 0, 0, 0, NULL }
18192 static int
18193 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_) {
18194 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18195 gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
18197 return offset;
18202 static int
18203 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_) {
18204 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18205 NULL);
18207 return offset;
18212 static int
18213 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_) {
18214 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18215 NULL);
18217 return offset;
18222 static int
18223 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_) {
18224 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18225 NULL);
18227 return offset;
18231 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
18232 { &hf_gsm_old_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
18233 { &hf_gsm_old_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
18234 { &hf_gsm_old_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
18235 { NULL, 0, 0, 0, NULL }
18238 static int
18239 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_) {
18240 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18241 gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
18243 return offset;
18247 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
18248 { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
18251 static int
18252 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_) {
18253 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18254 gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
18256 return offset;
18260 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
18261 { &hf_gsm_old_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
18262 { &hf_gsm_old_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
18263 { &hf_gsm_old_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
18264 { NULL, 0, 0, 0, NULL }
18267 static int
18268 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_) {
18269 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18270 gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
18272 return offset;
18276 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
18277 { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
18280 static int
18281 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_) {
18282 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18283 gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
18285 return offset;
18289 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
18290 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18291 { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
18292 { NULL, 0, 0, 0, NULL }
18295 static int
18296 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_) {
18297 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18298 gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
18300 return offset;
18304 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
18305 { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18306 { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18307 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18308 { NULL, 0, 0, 0, NULL }
18311 static int
18312 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_) {
18313 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18314 gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
18316 return offset;
18320 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
18321 { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18322 { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
18323 { NULL, 0, 0, 0, NULL }
18326 static int
18327 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_) {
18328 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18329 gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
18331 return offset;
18337 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_) {
18338 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
18339 actx, tree, tvb, offset, hf_index,
18340 NULL);
18342 return offset;
18346 const value_string gsm_old_GetPasswordArg_vals[] = {
18347 { 0, "enterPW" },
18348 { 1, "enterNewPW" },
18349 { 2, "enterNewPW-Again" },
18350 { 0, NULL }
18355 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_) {
18356 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18357 NULL);
18359 return offset;
18365 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_) {
18366 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
18367 actx, tree, tvb, offset, hf_index,
18368 NULL);
18370 return offset;
18375 static int
18376 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_) {
18377 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18378 NULL);
18380 return offset;
18385 static int
18386 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_) {
18387 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18388 NULL);
18390 return offset;
18394 static const value_string gsm_old_OperationCode_vals[] = {
18395 { 0, "localValue" },
18396 { 1, "globalValue" },
18397 { 0, NULL }
18400 static const ber_choice_t gsm_old_OperationCode_choice[] = {
18401 { 0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
18402 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
18403 { 0, NULL, 0, 0, 0, NULL }
18406 static int
18407 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_) {
18408 offset = dissect_ber_choice(actx, tree, tvb, offset,
18409 gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
18410 NULL);
18412 return offset;
18416 static const value_string gsm_old_ErrorCode_vals[] = {
18417 { 0, "localValue" },
18418 { 1, "globalValue" },
18419 { 0, NULL }
18422 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
18423 { 0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
18424 { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
18425 { 0, NULL, 0, 0, 0, NULL }
18428 static int
18429 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_) {
18430 offset = dissect_ber_choice(actx, tree, tvb, offset,
18431 gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
18432 NULL);
18434 return offset;
18438 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
18439 { 0, "operationCode" },
18440 { 1, "errorCode" },
18441 { 2, "userInfo" },
18442 { 0, NULL }
18445 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
18446 { 0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
18447 { 1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
18448 { 2, &hf_gsm_old_userInfo , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
18449 { 0, NULL, 0, 0, 0, NULL }
18452 static int
18453 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_) {
18454 offset = dissect_ber_choice(actx, tree, tvb, offset,
18455 gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
18456 NULL);
18458 return offset;
18463 static int
18464 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_) {
18465 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18466 NULL);
18468 return offset;
18472 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
18473 { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
18474 { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
18475 { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
18476 { NULL, 0, 0, 0, NULL }
18480 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_) {
18481 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18482 gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
18484 return offset;
18490 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_) {
18491 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18492 NULL);
18494 return offset;
18498 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
18499 { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
18500 { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
18501 { NULL, 0, 0, 0, NULL }
18504 static int
18505 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_) {
18506 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18507 gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
18509 return offset;
18513 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
18514 { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
18515 { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
18516 { NULL, 0, 0, 0, NULL }
18519 static int
18520 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_) {
18521 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18522 gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
18524 return offset;
18528 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
18529 { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
18530 { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
18531 { NULL, 0, 0, 0, NULL }
18534 static int
18535 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_) {
18536 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18537 gsm_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
18539 return offset;
18544 static int
18545 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_) {
18546 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18547 NULL);
18549 return offset;
18554 static int
18555 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_) {
18556 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18557 NULL);
18559 return offset;
18563 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
18564 { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
18567 static int
18568 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_) {
18569 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18570 gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
18572 return offset;
18576 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
18577 { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18578 { &hf_gsm_old_category , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
18579 { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
18580 { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
18581 { NULL, 0, 0, 0, NULL }
18584 static int
18585 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_) {
18586 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18587 gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
18589 return offset;
18594 static int
18595 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_) {
18596 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
18597 hf_index, BER_CLASS_PRI, 2, true, dissect_gsm_old_PlmnContainer_U);
18599 return offset;
18604 static int
18605 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_) {
18606 actx->private_data = NULL;
18607 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18608 offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
18610 if (actx->private_data) {
18611 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18612 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI;
18613 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
18614 actx->private_data = NULL;
18618 return offset;
18623 static int
18624 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_) {
18625 actx->private_data = NULL;
18626 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18627 offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
18629 if (actx->private_data) {
18630 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18631 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI;
18632 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
18633 actx->private_data = NULL;
18637 return offset;
18642 static int
18643 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_) {
18644 actx->private_data = NULL;
18645 actx->pinfo->p2p_dir = P2P_DIR_RECV;
18646 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
18648 if (actx->private_data) {
18649 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18650 gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS;
18651 gsm_map_pi->sm_rp_da_str = (const char*)actx->private_data;
18652 actx->private_data = NULL;
18656 return offset;
18661 static int
18662 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_) {
18663 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
18665 if (!PINFO_FD_VISITED(actx->pinfo)) {
18666 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
18667 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
18668 if (prev_packet_info) {
18669 gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id;
18670 gsm_map_pi->sm_rp_da_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_da_str);
18675 return offset;
18679 static const value_string gsm_old_SM_RP_DAold_vals[] = {
18680 { 0, "imsi" },
18681 { 1, "lmsi" },
18682 { 4, "serviceCentreAddressDA" },
18683 { 5, "noSM-RP-DA" },
18684 { 0, NULL }
18687 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
18688 { 0, &hf_gsm_old_imsi_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_imsi },
18689 { 1, &hf_gsm_old_lmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_lmsi },
18690 { 4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressDA },
18691 { 5, &hf_gsm_old_noSM_RP_DA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_noSM_RP_DA },
18692 { 0, NULL, 0, 0, 0, NULL }
18695 static int
18696 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_) {
18697 offset = dissect_ber_choice(actx, tree, tvb, offset,
18698 gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
18699 NULL);
18701 return offset;
18706 static int
18707 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_) {
18708 actx->private_data = NULL;
18709 actx->pinfo->p2p_dir = P2P_DIR_RECV;
18710 offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
18712 if (actx->private_data) {
18713 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18714 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN;
18715 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
18716 actx->private_data = NULL;
18720 return offset;
18725 static int
18726 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_) {
18727 actx->private_data = NULL;
18728 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18729 offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
18731 if (actx->private_data) {
18732 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, true);
18733 gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS;
18734 gsm_map_pi->sm_rp_oa_str = (const char*)actx->private_data;
18735 actx->private_data = NULL;
18739 return offset;
18744 static int
18745 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_) {
18746 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
18748 if (!PINFO_FD_VISITED(actx->pinfo)) {
18749 gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, false);
18750 gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx);
18751 if (prev_packet_info) {
18752 gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id;
18753 gsm_map_pi->sm_rp_oa_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_oa_str);
18758 return offset;
18762 static const value_string gsm_old_SM_RP_OAold_vals[] = {
18763 { 2, "msisdn" },
18764 { 4, "serviceCentreAddressOA" },
18765 { 5, "noSM-RP-OA" },
18766 { 0, NULL }
18769 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
18770 { 2, &hf_gsm_old_msisdn_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
18771 { 4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
18772 { 5, &hf_gsm_old_noSM_RP_OA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_noSM_RP_OA },
18773 { 0, NULL, 0, 0, 0, NULL }
18776 static int
18777 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_) {
18778 offset = dissect_ber_choice(actx, tree, tvb, offset,
18779 gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
18780 NULL);
18782 return offset;
18786 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
18787 { &hf_gsm_old_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
18788 { &hf_gsm_old_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
18789 { &hf_gsm_old_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
18790 { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
18791 { NULL, 0, 0, 0, NULL }
18794 static int
18795 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_) {
18796 /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
18797 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
18798 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18799 gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
18802 if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb)
18803 return offset;
18804 if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) {
18805 if (gsmmap_pdu_type == 1) {
18806 actx->pinfo->p2p_dir = P2P_DIR_SENT;
18807 } else {
18808 actx->pinfo->p2p_dir = P2P_DIR_RECV;
18811 call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL);
18814 return offset;
18818 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
18819 { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18820 { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
18821 { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
18822 { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
18823 { NULL, 0, 0, 0, NULL }
18826 static int
18827 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_) {
18828 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18829 gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
18831 return offset;
18835 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
18836 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18837 { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
18838 { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
18839 { NULL, 0, 0, 0, NULL }
18842 static int
18843 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_) {
18844 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18845 gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
18847 return offset;
18851 static const ber_sequence_t gsm_old_BeginSubscriberActivityArg_sequence[] = {
18852 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18853 { &hf_gsm_old_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
18854 { &hf_gsm_old_msisdn_02 , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
18855 { NULL, 0, 0, 0, NULL }
18858 static int
18859 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_) {
18860 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18861 gsm_old_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_old_BeginSubscriberActivityArg);
18863 return offset;
18868 static int
18869 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_) {
18870 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
18872 return offset;
18876 static const ber_sequence_t gsm_old_RoutingInfoForSM_ArgV1_sequence[] = {
18877 { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18878 { &hf_gsm_old_sm_RP_PRI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN },
18879 { &hf_gsm_old_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
18880 { &hf_gsm_old_cug_Interlock, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
18881 { &hf_gsm_old_teleserviceCode, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
18882 { &hf_gsm_old_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
18883 { NULL, 0, 0, 0, NULL }
18886 static int
18887 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_) {
18888 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18889 gsm_old_RoutingInfoForSM_ArgV1_sequence, hf_index, ett_gsm_old_RoutingInfoForSM_ArgV1);
18891 return offset;
18895 static const value_string gsm_old_LocationInfo_vals[] = {
18896 { 0, "roamingNumber" },
18897 { 1, "msc-Number" },
18898 { 0, NULL }
18901 static const ber_choice_t gsm_old_LocationInfo_choice[] = {
18902 { 0, &hf_gsm_old_roamingNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18903 { 1, &hf_gsm_old_msc_Number , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18904 { 0, NULL, 0, 0, 0, NULL }
18907 static int
18908 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_) {
18909 offset = dissect_ber_choice(actx, tree, tvb, offset,
18910 gsm_old_LocationInfo_choice, hf_index, ett_gsm_old_LocationInfo,
18911 NULL);
18913 return offset;
18917 static const ber_sequence_t gsm_old_LocationInfoWithLMSIv2_sequence[] = {
18918 { &hf_gsm_old_locationInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_LocationInfo },
18919 { &hf_gsm_old_lmsi_01 , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
18920 { NULL, 0, 0, 0, NULL }
18923 static int
18924 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_) {
18925 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18926 gsm_old_LocationInfoWithLMSIv2_sequence, hf_index, ett_gsm_old_LocationInfoWithLMSIv2);
18928 return offset;
18932 static const ber_sequence_t gsm_old_RoutingInfoForSM_ResV2_sequence[] = {
18933 { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
18934 { &hf_gsm_old_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_LocationInfoWithLMSIv2 },
18935 { &hf_gsm_old_mwd_Set , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN },
18936 { NULL, 0, 0, 0, NULL }
18939 static int
18940 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_) {
18941 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18942 gsm_old_RoutingInfoForSM_ResV2_sequence, hf_index, ett_gsm_old_RoutingInfoForSM_ResV2);
18944 return offset;
18949 static int
18950 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_) {
18951 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18952 NULL);
18954 return offset;
18958 static const value_string gsm_old_RequestParameter_vals[] = {
18959 { 0, "requestIMSI" },
18960 { 1, "requestAuthenticationSet" },
18961 { 2, "requestSubscriberData" },
18962 { 4, "requestKi" },
18963 { 0, NULL }
18967 static int
18968 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_) {
18969 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
18970 NULL);
18972 return offset;
18976 static const ber_sequence_t gsm_old_RequestParameterList_sequence_of[1] = {
18977 { &hf_gsm_old_RequestParameterList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RequestParameter },
18980 static int
18981 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_) {
18982 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18983 gsm_old_RequestParameterList_sequence_of, hf_index, ett_gsm_old_RequestParameterList);
18985 return offset;
18989 static const ber_sequence_t gsm_old_SendParametersArg_sequence[] = {
18990 { &hf_gsm_old_subscriberId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SubscriberId },
18991 { &hf_gsm_old_requestParameterList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RequestParameterList },
18992 { NULL, 0, 0, 0, NULL }
18995 static int
18996 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_) {
18997 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18998 gsm_old_SendParametersArg_sequence, hf_index, ett_gsm_old_SendParametersArg);
19000 return offset;
19004 static const value_string gsm_old_AuthenticationSetListOld_vals[] = {
19005 { 0, "tripletList" },
19006 { 1, "quintupletList" },
19007 { 0, NULL }
19010 static const ber_choice_t gsm_old_AuthenticationSetListOld_choice[] = {
19011 { 0, &hf_gsm_old_tripletList_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
19012 { 1, &hf_gsm_old_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
19013 { 0, NULL, 0, 0, 0, NULL }
19016 static int
19017 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_) {
19018 offset = dissect_ber_choice(actx, tree, tvb, offset,
19019 gsm_old_AuthenticationSetListOld_choice, hf_index, ett_gsm_old_AuthenticationSetListOld,
19020 NULL);
19022 return offset;
19026 static const value_string gsm_old_SentParameter_vals[] = {
19027 { 0, "imsi" },
19028 { 1, "authenticationSet" },
19029 { 2, "subscriberData" },
19030 { 4, "ki" },
19031 { 0, NULL }
19034 static const ber_choice_t gsm_old_SentParameter_choice[] = {
19035 { 0, &hf_gsm_old_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
19036 { 1, &hf_gsm_old_authenticationSet, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_AuthenticationSetListOld },
19037 { 2, &hf_gsm_old_subscriberData, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberData },
19038 { 4, &hf_gsm_old_ki , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Ki },
19039 { 0, NULL, 0, 0, 0, NULL }
19042 static int
19043 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_) {
19044 offset = dissect_ber_choice(actx, tree, tvb, offset,
19045 gsm_old_SentParameter_choice, hf_index, ett_gsm_old_SentParameter,
19046 NULL);
19048 return offset;
19052 static const ber_sequence_t gsm_old_SentParameterList_sequence_of[1] = {
19053 { &hf_gsm_old_SentParameterList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SentParameter },
19056 static int
19057 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_) {
19058 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
19059 gsm_old_SentParameterList_sequence_of, hf_index, ett_gsm_old_SentParameterList);
19061 return offset;
19065 static const ber_sequence_t gsm_old_ResetArgV1_sequence[] = {
19066 { &hf_gsm_old_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
19067 { &hf_gsm_old_hlr_Number , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
19068 { &hf_gsm_old_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
19069 { NULL, 0, 0, 0, NULL }
19072 static int
19073 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_) {
19074 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19075 gsm_old_ResetArgV1_sequence, hf_index, ett_gsm_old_ResetArgV1);
19077 return offset;
19081 /* --- Module SS-DataTypes --- --- --- */
19085 static int
19086 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_) {
19087 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
19088 actx, tree, tvb, offset, hf_index,
19089 NULL);
19091 return offset;
19096 static int
19097 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_) {
19098 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19099 NULL);
19101 return offset;
19106 static int
19107 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_) {
19108 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
19110 return offset;
19114 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
19115 { 0, "callRetrieved" },
19116 { 1, "callOnHold" },
19117 { 0, NULL }
19121 static int
19122 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_) {
19123 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19124 NULL);
19126 return offset;
19130 static const value_string gsm_ss_ECT_CallState_vals[] = {
19131 { 0, "alerting" },
19132 { 1, "active" },
19133 { 0, NULL }
19137 static int
19138 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_) {
19139 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19140 NULL);
19142 return offset;
19146 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
19147 { &hf_gsm_ss_partyNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19148 { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
19149 { NULL, 0, 0, 0, NULL }
19152 static int
19153 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_) {
19154 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19155 gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
19157 return offset;
19161 static const value_string gsm_ss_RDN_vals[] = {
19162 { 0, "presentationAllowedAddress" },
19163 { 1, "presentationRestricted" },
19164 { 2, "numberNotAvailableDueToInterworking" },
19165 { 3, "presentationRestrictedAddress" },
19166 { 0, NULL }
19169 static const ber_choice_t gsm_ss_RDN_choice[] = {
19170 { 0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
19171 { 1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19172 { 2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19173 { 3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
19174 { 0, NULL, 0, 0, 0, NULL }
19177 static int
19178 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_) {
19179 offset = dissect_ber_choice(actx, tree, tvb, offset,
19180 gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
19181 NULL);
19183 return offset;
19187 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
19188 { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
19189 { &hf_gsm_ss_rdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
19190 { NULL, 0, 0, 0, NULL }
19193 static int
19194 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_) {
19195 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19196 gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
19198 return offset;
19203 static int
19204 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_) {
19205 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19206 NULL);
19208 return offset;
19212 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
19213 { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
19214 { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
19215 { &hf_gsm_ss_nameString , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
19216 { NULL, 0, 0, 0, NULL }
19219 static int
19220 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_) {
19221 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19222 gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
19224 return offset;
19228 static const value_string gsm_ss_Name_vals[] = {
19229 { 0, "namePresentationAllowed" },
19230 { 1, "presentationRestricted" },
19231 { 2, "nameUnavailable" },
19232 { 3, "namePresentationRestricted" },
19233 { 0, NULL }
19236 static const ber_choice_t gsm_ss_Name_choice[] = {
19237 { 0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
19238 { 1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19239 { 2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19240 { 3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
19241 { 0, NULL, 0, 0, 0, NULL }
19244 static int
19245 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_) {
19246 offset = dissect_ber_choice(actx, tree, tvb, offset,
19247 gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
19248 NULL);
19250 return offset;
19254 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
19255 { &hf_gsm_ss_callingName , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
19256 { NULL, 0, 0, 0, NULL }
19259 static int
19260 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_) {
19261 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19262 gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
19264 return offset;
19268 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
19269 { 0, "nbr-SNexceeded" },
19270 { 1, "nbr-Userexceeded" },
19271 { 0, NULL }
19275 static int
19276 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_) {
19277 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19278 NULL);
19280 return offset;
19284 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
19285 { &hf_gsm_ss_ss_Code , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
19286 { &hf_gsm_ss_ss_Status , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
19287 { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
19288 { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19289 { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
19290 { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19291 { &hf_gsm_ss_cug_Index , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
19292 { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19293 { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
19294 { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
19295 { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
19296 { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
19297 { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
19298 { NULL, 0, 0, 0, NULL }
19301 static int
19302 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_) {
19303 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19304 gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
19306 return offset;
19311 static int
19312 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_) {
19313 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19314 NULL);
19316 return offset;
19321 static int
19322 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_) {
19323 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19324 NULL);
19326 return offset;
19331 static int
19332 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_) {
19333 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19334 NULL);
19336 return offset;
19341 static int
19342 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_) {
19343 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19344 NULL);
19346 return offset;
19351 static int
19352 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_) {
19353 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19354 NULL);
19356 return offset;
19361 static int
19362 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_) {
19363 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19364 NULL);
19366 return offset;
19371 static int
19372 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_) {
19373 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19374 NULL);
19376 return offset;
19380 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
19381 { &hf_gsm_ss_e1 , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
19382 { &hf_gsm_ss_e2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
19383 { &hf_gsm_ss_e3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
19384 { &hf_gsm_ss_e4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
19385 { &hf_gsm_ss_e5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
19386 { &hf_gsm_ss_e6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
19387 { &hf_gsm_ss_e7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
19388 { NULL, 0, 0, 0, NULL }
19391 static int
19392 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_) {
19393 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19394 gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
19396 return offset;
19400 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
19401 { &hf_gsm_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
19402 { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
19403 { NULL, 0, 0, 0, NULL }
19406 static int
19407 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_) {
19408 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19409 gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
19411 return offset;
19415 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
19416 { &hf_gsm_ss_cug_Index , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
19417 { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19418 { &hf_gsm_ss_suppressOA , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19419 { NULL, 0, 0, 0, NULL }
19422 static int
19423 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_) {
19424 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19425 gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
19427 return offset;
19431 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
19432 { NULL, 0, 0, 0, NULL }
19435 static int
19436 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_) {
19437 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19438 gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
19440 return offset;
19444 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
19445 { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
19446 { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
19447 { NULL, 0, 0, 0, NULL }
19450 static int
19451 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_) {
19452 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19453 gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
19455 return offset;
19459 static const value_string gsm_ss_UUS_Service_vals[] = {
19460 { 1, "uUS1" },
19461 { 2, "uUS2" },
19462 { 3, "uUS3" },
19463 { 0, NULL }
19467 static int
19468 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_) {
19469 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19470 NULL);
19472 return offset;
19477 static int
19478 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_) {
19479 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
19481 return offset;
19485 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
19486 { &hf_gsm_ss_uUS_Service , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
19487 { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
19488 { NULL, 0, 0, 0, NULL }
19491 static int
19492 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_) {
19493 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19494 gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
19496 return offset;
19500 static int * const gsm_ss_DeferredLocationExt_bits[] = {
19501 &hf_gsm_ss_DeferredLocationExt_motionEvent,
19502 NULL
19505 static int
19506 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_) {
19507 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
19508 gsm_ss_DeferredLocationExt_bits, 1, hf_index, ett_gsm_ss_DeferredLocationExt,
19509 NULL);
19511 return offset;
19515 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
19516 { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
19517 { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
19518 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
19519 { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
19520 { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
19521 { &hf_gsm_ss_lcsCodeword , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
19522 { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
19523 { &hf_gsm_ss_deferredLocationExt, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DeferredLocationExt },
19524 { NULL, 0, 0, 0, NULL }
19527 static int
19528 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_) {
19529 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19530 gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
19532 return offset;
19536 static const value_string gsm_ss_VerificationResponse_vals[] = {
19537 { 0, "permissionDenied" },
19538 { 1, "permissionGranted" },
19539 { 0, NULL }
19543 static int
19544 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_) {
19545 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19546 NULL);
19548 return offset;
19552 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
19553 { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
19554 { NULL, 0, 0, 0, NULL }
19557 static int
19558 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_) {
19559 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19560 gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
19562 return offset;
19566 static const value_string gsm_ss_MOLR_Type_vals[] = {
19567 { 0, "locationEstimate" },
19568 { 1, "assistanceData" },
19569 { 2, "deCipheringKeys" },
19570 { 3, "deferredMo-lrTTTPInitiation" },
19571 { 4, "deferredMo-lrSelfLocationInitiation" },
19572 { 5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
19573 { 6, "deferredMt-lrOrmo-lrCancellation" },
19574 { 7, "periodicEvent" },
19575 { 8, "enteringAreaEvent" },
19576 { 9, "leavingAreaEvent" },
19577 { 10, "beingInsideAreaEvent" },
19578 { 11, "motionEvent" },
19579 { 12, "maximumIntervalExpirationEvent" },
19580 { 0, NULL }
19584 static int
19585 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_) {
19586 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19587 NULL);
19589 return offset;
19593 const value_string gsm_ss_LocationMethod_vals[] = {
19594 { 0, "msBasedEOTD" },
19595 { 1, "msAssistedEOTD" },
19596 { 2, "assistedGPS" },
19597 { 3, "msBasedOTDOA" },
19598 { 4, "assistedGANSS" },
19599 { 5, "assistedGPSandGANSS" },
19600 { 0, NULL }
19605 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_) {
19606 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19607 NULL);
19609 return offset;
19614 static int
19615 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_) {
19616 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19617 NULL);
19619 return offset;
19623 static const value_string gsm_ss_TerminationCause_vals[] = {
19624 { 0, "subscriberTermination" },
19625 { 1, "uETermination" },
19626 { 0, NULL }
19630 static int
19631 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_) {
19632 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19633 NULL);
19635 return offset;
19640 static int
19641 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_) {
19642 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19643 NULL);
19645 return offset;
19650 static int
19651 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_) {
19652 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19653 NULL);
19655 return offset;
19659 static const ber_sequence_t gsm_ss_MultiplePositioningProtocolPDUs_sequence_of[1] = {
19660 { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_PositioningProtocolPDU },
19663 static int
19664 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_) {
19665 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
19666 gsm_ss_MultiplePositioningProtocolPDUs_sequence_of, hf_index, ett_gsm_ss_MultiplePositioningProtocolPDUs);
19668 return offset;
19672 static int * const gsm_ss_Location_Info_bits[] = {
19673 &hf_gsm_ss_Location_Info_locationEstimate,
19674 NULL
19677 static int
19678 dissect_gsm_ss_Location_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_) {
19679 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
19680 gsm_ss_Location_Info_bits, 1, hf_index, ett_gsm_ss_Location_Info,
19681 NULL);
19683 return offset;
19687 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
19688 { &hf_gsm_ss_molr_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
19689 { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
19690 { &hf_gsm_ss_lcs_QoS , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
19691 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
19692 { &hf_gsm_ss_mlc_Number , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
19693 { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
19694 { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
19695 { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
19696 { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
19697 { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
19698 { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19699 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19700 { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
19701 { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
19702 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19703 { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
19704 { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19705 { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
19706 { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
19707 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19708 { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData },
19709 { &hf_gsm_ss_multiplePositioningProtocolPDUs, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MultiplePositioningProtocolPDUs },
19710 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Location_Info },
19711 { NULL, 0, 0, 0, NULL }
19714 static int
19715 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_) {
19716 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19717 gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
19719 return offset;
19724 static int
19725 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_) {
19726 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19727 NULL);
19729 return offset;
19733 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
19734 { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
19735 { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
19736 { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
19737 { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
19738 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19739 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19740 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19741 { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
19742 { NULL, 0, 0, 0, NULL }
19745 static int
19746 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_) {
19747 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19748 gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
19750 return offset;
19754 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
19755 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19756 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19757 { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
19758 { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
19759 { NULL, 0, 0, 0, NULL }
19762 static int
19763 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_) {
19764 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19765 gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
19767 return offset;
19771 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
19772 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19773 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19774 { NULL, 0, 0, 0, NULL }
19777 static int
19778 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_) {
19779 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19780 gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
19782 return offset;
19786 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
19787 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19788 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19789 { NULL, 0, 0, 0, NULL }
19792 static int
19793 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_) {
19794 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19795 gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
19797 return offset;
19801 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
19802 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19803 { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
19804 { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
19805 { &hf_gsm_ss_qoS , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
19806 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19807 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19808 { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
19809 { NULL, 0, 0, 0, NULL }
19812 static int
19813 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_) {
19814 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19815 gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
19817 return offset;
19821 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
19822 { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
19823 { NULL, 0, 0, 0, NULL }
19826 static int
19827 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_) {
19828 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19829 gsm_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
19831 return offset;
19835 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
19836 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19837 { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
19838 { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
19839 { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
19840 { NULL, 0, 0, 0, NULL }
19843 static int
19844 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_) {
19845 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19846 gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
19848 return offset;
19852 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
19853 { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
19854 { NULL, 0, 0, 0, NULL }
19857 static int
19858 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_) {
19859 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19860 gsm_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
19862 return offset;
19866 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
19867 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
19868 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
19869 { NULL, 0, 0, 0, NULL }
19872 static int
19873 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_) {
19874 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19875 gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
19877 return offset;
19881 static const ber_sequence_t gsm_ss_PeriodicLocation_sequence[] = {
19882 { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
19883 { NULL, 0, 0, 0, NULL }
19886 static int
19887 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_) {
19888 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19889 gsm_ss_PeriodicLocation_sequence, hf_index, ett_gsm_ss_PeriodicLocation);
19891 return offset;
19895 static const value_string gsm_ss_AreaType_vals[] = {
19896 { 0, "trackingArea" },
19897 { 1, "ecgi" },
19898 { 0, NULL }
19902 static int
19903 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_) {
19904 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19905 NULL);
19907 return offset;
19912 static int
19913 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_) {
19914 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
19915 NULL);
19917 return offset;
19921 static const ber_sequence_t gsm_ss_Area_sequence[] = {
19922 { &hf_gsm_ss_areaType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaType },
19923 { &hf_gsm_ss_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaIdentification },
19924 { NULL, 0, 0, 0, NULL }
19927 static int
19928 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_) {
19929 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19930 gsm_ss_Area_sequence, hf_index, ett_gsm_ss_Area);
19932 return offset;
19936 static const ber_sequence_t gsm_ss_AreaList_sequence_of[1] = {
19937 { &hf_gsm_ss_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_Area },
19940 static int
19941 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_) {
19942 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
19943 gsm_ss_AreaList_sequence_of, hf_index, ett_gsm_ss_AreaList);
19945 return offset;
19950 static int
19951 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_) {
19952 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19953 NULL);
19955 return offset;
19960 static int
19961 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_) {
19962 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19963 NULL);
19965 return offset;
19970 static int
19971 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_) {
19972 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
19973 NULL);
19975 return offset;
19979 static const ber_sequence_t gsm_ss_AreaEventReporting_sequence[] = {
19980 { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
19981 { &hf_gsm_ss_areaList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaList },
19982 { &hf_gsm_ss_occurrenceInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
19983 { &hf_gsm_ss_intervalTime , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
19984 { &hf_gsm_ss_maximumInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumInterval },
19985 { &hf_gsm_ss_samplingInterval, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SamplingInterval },
19986 { &hf_gsm_ss_duration , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration },
19987 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Location_Info },
19988 { NULL, 0, 0, 0, NULL }
19991 static int
19992 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_) {
19993 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
19994 gsm_ss_AreaEventReporting_sequence, hf_index, ett_gsm_ss_AreaEventReporting);
19996 return offset;
20001 static int
20002 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_) {
20003 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20004 NULL);
20006 return offset;
20010 static const ber_sequence_t gsm_ss_MotionEventReporting_sequence[] = {
20011 { &hf_gsm_ss_linearDistance, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LinearDistance },
20012 { &hf_gsm_ss_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
20013 { &hf_gsm_ss_intervalTime , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
20014 { &hf_gsm_ss_maximumInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumInterval },
20015 { &hf_gsm_ss_samplingInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SamplingInterval },
20016 { &hf_gsm_ss_duration , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration },
20017 { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Location_Info },
20018 { NULL, 0, 0, 0, NULL }
20021 static int
20022 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_) {
20023 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20024 gsm_ss_MotionEventReporting_sequence, hf_index, ett_gsm_ss_MotionEventReporting);
20026 return offset;
20030 static const ber_sequence_t gsm_ss_LCS_PeriodicTriggeredInvokeArg_sequence[] = {
20031 { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
20032 { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
20033 { &hf_gsm_ss_qoS , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
20034 { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
20035 { &hf_gsm_ss_periodicLocation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_PeriodicLocation },
20036 { &hf_gsm_ss_areaEventReporting, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaEventReporting },
20037 { &hf_gsm_ss_motionEventReporting, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MotionEventReporting },
20038 { NULL, 0, 0, 0, NULL }
20041 static int
20042 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_) {
20043 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20044 gsm_ss_LCS_PeriodicTriggeredInvokeArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg);
20046 return offset;
20050 static const ber_sequence_t gsm_ss_LCS_PeriodicTriggeredInvokeRes_sequence[] = {
20051 { NULL, 0, 0, 0, NULL }
20054 static int
20055 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_) {
20056 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20057 gsm_ss_LCS_PeriodicTriggeredInvokeRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes);
20059 return offset;
20063 /* --- Module SS-Operations --- --- --- */
20066 /* --- Module EricssonMAP --- --- --- */
20070 static int
20071 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_) {
20072 tvbuff_t *parameter_tvb;
20073 proto_tree *subtree;
20074 uint8_t rat;
20075 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20076 &parameter_tvb);
20078 if (parameter_tvb) {
20079 subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ericsson_locationInformation);
20080 rat = tvb_get_uint8(parameter_tvb, 0);
20081 proto_tree_add_uint(subtree, hf_gsm_map_ericsson_locationInformation_rat, parameter_tvb, 0, 1, rat);
20082 switch (rat) {
20083 case 0:
20084 /* GSM */
20085 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
20086 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_ci, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
20087 break;
20088 case 1:
20089 /* UMTS */
20090 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
20091 proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_sac, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
20092 break;
20093 default:
20094 break;
20099 return offset;
20103 static const ber_sequence_t gsm_map_ericsson_EnhancedCheckIMEI_Arg_sequence[] = {
20104 { &hf_gsm_map_ericsson_imei, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
20105 { &hf_gsm_map_ericsson_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
20106 { &hf_gsm_map_ericsson_imsi, BER_CLASS_PRI, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
20107 { &hf_gsm_map_ericsson_locationInformation, BER_CLASS_PRI, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_T_locationInformation },
20108 { &hf_gsm_map_ericsson_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
20109 { NULL, 0, 0, 0, NULL }
20112 static int
20113 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_) {
20114 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20115 gsm_map_ericsson_EnhancedCheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg);
20117 return offset;
20122 static int
20123 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_) {
20124 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20125 NULL);
20127 return offset;
20132 static int
20133 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_) {
20134 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20135 NULL);
20137 return offset;
20141 static const ber_sequence_t gsm_map_ericsson_SubscriptionTypeInfo_sequence[] = {
20142 { &hf_gsm_map_ericsson_subscriptionType, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SubscriptionType },
20143 { NULL, 0, 0, 0, NULL }
20146 static int
20147 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_) {
20148 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20149 gsm_map_ericsson_SubscriptionTypeInfo_sequence, hf_index, ett_gsm_map_ericsson_SubscriptionTypeInfo);
20151 return offset;
20156 static int
20157 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_) {
20158 offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
20160 return offset;
20164 static const ber_sequence_t gsm_map_ericsson_OickInfo_sequence[] = {
20165 { &hf_gsm_map_ericsson_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
20166 { &hf_gsm_map_ericsson_inCategoryKey, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_INCategoryKey },
20167 { NULL, 0, 0, 0, NULL }
20170 static int
20171 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_) {
20172 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20173 gsm_map_ericsson_OickInfo_sequence, hf_index, ett_gsm_map_ericsson_OickInfo);
20175 return offset;
20179 static const value_string gsm_map_ericsson_PrivateFeatureData_vals[] = {
20180 { 3, "subscriptionTypeInfo" },
20181 { 7, "oickInfo" },
20182 { 0, NULL }
20185 static const ber_choice_t gsm_map_ericsson_PrivateFeatureData_choice[] = {
20186 { 3, &hf_gsm_map_ericsson_subscriptionTypeInfo, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SubscriptionTypeInfo },
20187 { 7, &hf_gsm_map_ericsson_oickInfo, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_OickInfo },
20188 { 0, NULL, 0, 0, 0, NULL }
20191 static int
20192 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_) {
20193 offset = dissect_ber_choice(actx, tree, tvb, offset,
20194 gsm_map_ericsson_PrivateFeatureData_choice, hf_index, ett_gsm_map_ericsson_PrivateFeatureData,
20195 NULL);
20197 return offset;
20201 static const ber_sequence_t gsm_map_ericsson_IsdArgData_sequence[] = {
20202 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20203 { &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 },
20204 { NULL, 0, 0, 0, NULL }
20207 static int
20208 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_) {
20209 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20210 gsm_map_ericsson_IsdArgData_sequence, hf_index, ett_gsm_map_ericsson_IsdArgData);
20212 return offset;
20216 static const ber_sequence_t gsm_map_ericsson_IsdArgType_sequence_of[1] = {
20217 { &hf_gsm_map_ericsson_IsdArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_IsdArgData },
20220 static int
20221 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_) {
20222 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20223 gsm_map_ericsson_IsdArgType_sequence_of, hf_index, ett_gsm_map_ericsson_IsdArgType);
20225 return offset;
20229 static const ber_sequence_t gsm_map_ericsson_IsdResData_sequence[] = {
20230 { &hf_gsm_map_ericsson_supportedPrivateFeature, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20231 { NULL, 0, 0, 0, NULL }
20234 static int
20235 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_) {
20236 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20237 gsm_map_ericsson_IsdResData_sequence, hf_index, ett_gsm_map_ericsson_IsdResData);
20239 return offset;
20243 static const ber_sequence_t gsm_map_ericsson_IsdResType_sequence_of[1] = {
20244 { &hf_gsm_map_ericsson_IsdResType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_IsdResData },
20247 static int
20248 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_) {
20249 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20250 gsm_map_ericsson_IsdResType_sequence_of, hf_index, ett_gsm_map_ericsson_IsdResType);
20252 return offset;
20256 static const ber_sequence_t gsm_map_ericsson_DsdArgData_sequence[] = {
20257 { &hf_gsm_map_ericsson_privateFeatureWithdraw, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20258 { NULL, 0, 0, 0, NULL }
20261 static int
20262 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_) {
20263 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20264 gsm_map_ericsson_DsdArgData_sequence, hf_index, ett_gsm_map_ericsson_DsdArgData);
20266 return offset;
20270 static const ber_sequence_t gsm_map_ericsson_DsdArgType_sequence_of[1] = {
20271 { &hf_gsm_map_ericsson_DsdArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_DsdArgData },
20274 static int
20275 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_) {
20276 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20277 gsm_map_ericsson_DsdArgType_sequence_of, hf_index, ett_gsm_map_ericsson_DsdArgType);
20279 return offset;
20283 static const value_string gsm_map_ericsson_ExtraProtocolId_vals[] = {
20284 { 1, "q763" },
20285 { 0, NULL }
20289 static int
20290 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_) {
20291 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20292 NULL);
20294 return offset;
20298 static const ber_sequence_t gsm_map_ericsson_ExtraSignalInfo_U_sequence[] = {
20299 { &hf_gsm_map_ericsson_protocolId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_ExtraProtocolId },
20300 { &hf_gsm_map_ericsson_signalInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
20301 { NULL, 0, 0, 0, NULL }
20304 static int
20305 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_) {
20306 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20307 gsm_map_ericsson_ExtraSignalInfo_U_sequence, hf_index, ett_gsm_map_ericsson_ExtraSignalInfo_U);
20309 return offset;
20314 static int
20315 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_) {
20316 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
20317 hf_index, BER_CLASS_PRI, 1, true, dissect_gsm_map_ericsson_ExtraSignalInfo_U);
20319 return offset;
20323 static const ber_sequence_t gsm_map_ericsson_SriArgData_sequence[] = {
20324 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20325 { &hf_gsm_map_ericsson_extraNetworkInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtraSignalInfo },
20326 { NULL, 0, 0, 0, NULL }
20329 static int
20330 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_) {
20331 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20332 gsm_map_ericsson_SriArgData_sequence, hf_index, ett_gsm_map_ericsson_SriArgData);
20334 return offset;
20338 static const ber_sequence_t gsm_map_ericsson_SRIArgType_sequence_of[1] = {
20339 { &hf_gsm_map_ericsson_SRIArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SriArgData },
20342 static int
20343 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_) {
20344 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20345 gsm_map_ericsson_SRIArgType_sequence_of, hf_index, ett_gsm_map_ericsson_SRIArgType);
20347 return offset;
20351 static const ber_sequence_t gsm_map_ericsson_SriResData_sequence[] = {
20352 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20353 { &hf_gsm_map_ericsson_inCategoryKey, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_INCategoryKey },
20354 { &hf_gsm_map_ericsson_subscriptionType, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SubscriptionType },
20355 { NULL, 0, 0, 0, NULL }
20358 static int
20359 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_) {
20360 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20361 gsm_map_ericsson_SriResData_sequence, hf_index, ett_gsm_map_ericsson_SriResData);
20363 return offset;
20367 static const ber_sequence_t gsm_map_ericsson_SRIResType_sequence_of[1] = {
20368 { &hf_gsm_map_ericsson_SRIResType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SriResData },
20371 static int
20372 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_) {
20373 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20374 gsm_map_ericsson_SRIResType_sequence_of, hf_index, ett_gsm_map_ericsson_SRIResType);
20376 return offset;
20380 static const ber_sequence_t gsm_map_ericsson_PrnArgData_sequence[] = {
20381 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20382 { &hf_gsm_map_ericsson_extraNetworkInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtraSignalInfo },
20383 { NULL, 0, 0, 0, NULL }
20386 static int
20387 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_) {
20388 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20389 gsm_map_ericsson_PrnArgData_sequence, hf_index, ett_gsm_map_ericsson_PrnArgData);
20391 return offset;
20395 static const ber_sequence_t gsm_map_ericsson_PrnArgType_sequence_of[1] = {
20396 { &hf_gsm_map_ericsson_PrnArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_PrnArgData },
20399 static int
20400 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_) {
20401 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20402 gsm_map_ericsson_PrnArgType_sequence_of, hf_index, ett_gsm_map_ericsson_PrnArgType);
20404 return offset;
20408 static const value_string gsm_map_ericsson_PrivateFeatureUlArgData_vals[] = {
20409 { 3, "adc" },
20410 { 0, NULL }
20413 static const ber_choice_t gsm_map_ericsson_PrivateFeatureUlArgData_choice[] = {
20414 { 3, &hf_gsm_map_ericsson_adc, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
20415 { 0, NULL, 0, 0, 0, NULL }
20418 static int
20419 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_) {
20420 offset = dissect_ber_choice(actx, tree, tvb, offset,
20421 gsm_map_ericsson_PrivateFeatureUlArgData_choice, hf_index, ett_gsm_map_ericsson_PrivateFeatureUlArgData,
20422 NULL);
20424 return offset;
20428 static const ber_sequence_t gsm_map_ericsson_UlArgData_sequence[] = {
20429 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20430 { &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 },
20431 { NULL, 0, 0, 0, NULL }
20434 static int
20435 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_) {
20436 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20437 gsm_map_ericsson_UlArgData_sequence, hf_index, ett_gsm_map_ericsson_UlArgData);
20439 return offset;
20443 static const ber_sequence_t gsm_map_ericsson_UlArgType_sequence_of[1] = {
20444 { &hf_gsm_map_ericsson_UlArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_UlArgData },
20447 static int
20448 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_) {
20449 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20450 gsm_map_ericsson_UlArgType_sequence_of, hf_index, ett_gsm_map_ericsson_UlArgType);
20452 return offset;
20457 static int
20458 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_) {
20459 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
20461 return offset;
20465 static const ber_sequence_t gsm_map_ericsson_RdArgType_sequence[] = {
20466 { &hf_gsm_map_ericsson_toBeDecidedOne, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
20467 { NULL, 0, 0, 0, NULL }
20470 static int
20471 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_) {
20472 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20473 gsm_map_ericsson_RdArgType_sequence, hf_index, ett_gsm_map_ericsson_RdArgType);
20475 return offset;
20479 static const ber_sequence_t gsm_map_ericsson_SaiArgType_sequence[] = {
20480 { &hf_gsm_map_ericsson_msisdn, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
20481 { &hf_gsm_map_ericsson_noAuthenVectorsRequested, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
20482 { NULL, 0, 0, 0, NULL }
20485 static int
20486 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_) {
20487 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20488 gsm_map_ericsson_SaiArgType_sequence, hf_index, ett_gsm_map_ericsson_SaiArgType);
20490 return offset;
20494 static const ber_sequence_t gsm_map_ericsson_SaiResType_sequence[] = {
20495 { &hf_gsm_map_ericsson_msIsdn, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
20496 { NULL, 0, 0, 0, NULL }
20499 static int
20500 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_) {
20501 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20502 gsm_map_ericsson_SaiResType_sequence, hf_index, ett_gsm_map_ericsson_SaiResType);
20504 return offset;
20508 static const ber_sequence_t gsm_map_ericsson_RequestedInfoType_sequence[] = {
20509 { &hf_gsm_map_ericsson_sgsnNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
20510 { NULL, 0, 0, 0, NULL }
20513 static int
20514 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_) {
20515 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20516 gsm_map_ericsson_RequestedInfoType_sequence, hf_index, ett_gsm_map_ericsson_RequestedInfoType);
20518 return offset;
20522 static const ber_sequence_t gsm_map_ericsson_AtiArgType_sequence[] = {
20523 { &hf_gsm_map_ericsson_requestedInfoType, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_RequestedInfoType },
20524 { NULL, 0, 0, 0, NULL }
20527 static int
20528 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_) {
20529 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20530 gsm_map_ericsson_AtiArgType_sequence, hf_index, ett_gsm_map_ericsson_AtiArgType);
20532 return offset;
20536 static const ber_sequence_t gsm_map_ericsson_AtiResType_sequence[] = {
20537 { &hf_gsm_map_ericsson_toBeDecided, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL },
20538 { NULL, 0, 0, 0, NULL }
20541 static int
20542 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_) {
20543 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20544 gsm_map_ericsson_AtiResType_sequence, hf_index, ett_gsm_map_ericsson_AtiResType);
20546 return offset;
20550 static const ber_sequence_t gsm_map_ericsson_AtiArgData_sequence[] = {
20551 { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode },
20552 { NULL, 0, 0, 0, NULL }
20555 static int
20556 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_) {
20557 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20558 gsm_map_ericsson_AtiArgData_sequence, hf_index, ett_gsm_map_ericsson_AtiArgData);
20560 return offset;
20564 static const ber_sequence_t gsm_map_ericsson_ExtAtiArgType_sequence_of[1] = {
20565 { &hf_gsm_map_ericsson_ExtAtiArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_AtiArgData },
20568 static int
20569 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_) {
20570 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20571 gsm_map_ericsson_ExtAtiArgType_sequence_of, hf_index, ett_gsm_map_ericsson_ExtAtiArgType);
20573 return offset;
20577 static const ber_choice_t gsm_map_ericsson_ExtensionType_choice[] = {
20578 { 1, &hf_gsm_map_ericsson_isdArgType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_IsdArgType },
20579 { 2, &hf_gsm_map_ericsson_isdResType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_IsdResType },
20580 { 3, &hf_gsm_map_ericsson_dsdArgType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_DsdArgType },
20581 { 4, &hf_gsm_map_ericsson_sriArgType, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SRIArgType },
20582 { 5, &hf_gsm_map_ericsson_sriResType, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SRIResType },
20583 { 6, &hf_gsm_map_ericsson_prnArgType, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrnArgType },
20584 { 7, &hf_gsm_map_ericsson_ulArgType, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_UlArgType },
20585 { 8, &hf_gsm_map_ericsson_rdArgType, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_RdArgType },
20586 { 9, &hf_gsm_map_ericsson_saiArgType, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SaiArgType },
20587 { 10, &hf_gsm_map_ericsson_saiResType, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SaiResType },
20588 { 11, &hf_gsm_map_ericsson_atiArgType, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_AtiArgType },
20589 { 12, &hf_gsm_map_ericsson_atiResType, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_AtiResType },
20590 { 13, &hf_gsm_map_ericsson_extAtiArgType, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtAtiArgType },
20591 { 0, NULL, 0, 0, 0, NULL }
20594 static int
20595 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_) {
20596 offset = dissect_ber_choice(actx, tree, tvb, offset,
20597 gsm_map_ericsson_ExtensionType_choice, hf_index, ett_gsm_map_ericsson_ExtensionType,
20598 NULL);
20600 return offset;
20604 /* --- Module NokiaMAP-Extensions --- --- --- */
20608 static int
20609 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_) {
20610 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20611 NULL);
20613 return offset;
20618 static int
20619 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_) {
20620 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20621 NULL);
20623 return offset;
20628 static int
20629 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_) {
20630 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20631 NULL);
20633 return offset;
20638 static int
20639 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_) {
20640 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
20642 return offset;
20647 static int
20648 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_) {
20649 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20650 NULL);
20652 return offset;
20657 static int
20658 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_) {
20659 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20660 NULL);
20662 return offset;
20667 static int
20668 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_) {
20669 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20670 NULL);
20672 return offset;
20677 static int
20678 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_) {
20679 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20680 NULL);
20682 return offset;
20687 static int
20688 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_) {
20689 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20690 NULL);
20692 return offset;
20698 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_) {
20699 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20700 NULL);
20702 return offset;
20707 static int
20708 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_) {
20709 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20710 NULL);
20712 return offset;
20716 static const ber_sequence_t NokiaMAP_Extensions_MKey_sequence[] = {
20717 { &hf_NokiaMAP_Extensions_mKeyVer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MKeyVer },
20718 { &hf_NokiaMAP_Extensions_mmScfAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
20719 { &hf_NokiaMAP_Extensions_mmTdpName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MmTdpName },
20720 { &hf_NokiaMAP_Extensions_serviceKey, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceKey },
20721 { &hf_NokiaMAP_Extensions_locupType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LocupType },
20722 { NULL, 0, 0, 0, NULL }
20725 static int
20726 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_) {
20727 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20728 NokiaMAP_Extensions_MKey_sequence, hf_index, ett_NokiaMAP_Extensions_MKey);
20730 return offset;
20735 static int
20736 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_) {
20737 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20738 NULL);
20740 return offset;
20744 static const ber_sequence_t NokiaMAP_Extensions_SMSKey_sequence[] = {
20745 { &hf_NokiaMAP_Extensions_mmSCPAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
20746 { &hf_NokiaMAP_Extensions_smsTdpName, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SmsTdpName },
20747 { &hf_NokiaMAP_Extensions_serviceKey, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceKey },
20748 { &hf_NokiaMAP_Extensions_mmsFlag, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
20749 { NULL, 0, 0, 0, NULL }
20752 static int
20753 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_) {
20754 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20755 NokiaMAP_Extensions_SMSKey_sequence, hf_index, ett_NokiaMAP_Extensions_SMSKey);
20757 return offset;
20761 static const value_string NokiaMAP_Extensions_INKey_vals[] = {
20762 { 2, "mobile-IN-key" },
20763 { 3, "sms-IN-key" },
20764 { 0, NULL }
20767 static const ber_choice_t NokiaMAP_Extensions_INKey_choice[] = {
20768 { 2, &hf_NokiaMAP_Extensions_mobile_IN_key, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MKey },
20769 { 3, &hf_NokiaMAP_Extensions_sms_IN_key, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SMSKey },
20770 { 0, NULL, 0, 0, 0, NULL }
20773 static int
20774 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_) {
20775 offset = dissect_ber_choice(actx, tree, tvb, offset,
20776 NokiaMAP_Extensions_INKey_choice, hf_index, ett_NokiaMAP_Extensions_INKey,
20777 NULL);
20779 return offset;
20784 static int
20785 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_) {
20786 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20787 NULL);
20789 return offset;
20794 static int
20795 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_) {
20796 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20797 NULL);
20799 return offset;
20804 static int
20805 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_) {
20806 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20807 NULL);
20809 return offset;
20813 static const ber_sequence_t NokiaMAP_Extensions_FraudData_sequence[] = {
20814 { &hf_NokiaMAP_Extensions_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_TimeLimit },
20815 { &hf_NokiaMAP_Extensions_timeAction, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActionType },
20816 { &hf_NokiaMAP_Extensions_maxCount, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudMaxCount },
20817 { &hf_NokiaMAP_Extensions_maxCountAction, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActionType },
20818 { NULL, 0, 0, 0, NULL }
20821 static int
20822 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_) {
20823 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20824 NokiaMAP_Extensions_FraudData_sequence, hf_index, ett_NokiaMAP_Extensions_FraudData);
20826 return offset;
20830 static const ber_sequence_t NokiaMAP_Extensions_FraudInfo_sequence[] = {
20831 { &hf_NokiaMAP_Extensions_moc, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
20832 { &hf_NokiaMAP_Extensions_cf, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
20833 { &hf_NokiaMAP_Extensions_ct, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
20834 { NULL, 0, 0, 0, NULL }
20837 static int
20838 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_) {
20839 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20840 NokiaMAP_Extensions_FraudInfo_sequence, hf_index, ett_NokiaMAP_Extensions_FraudInfo);
20842 return offset;
20846 static const ber_sequence_t NokiaMAP_Extensions_ServiceWithInfo_sequence[] = {
20847 { &hf_NokiaMAP_Extensions_serviceCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceCode },
20848 { &hf_NokiaMAP_Extensions_versionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_VersionInfo },
20849 { &hf_NokiaMAP_Extensions_in_key, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_NokiaMAP_Extensions_INKey },
20850 { &hf_NokiaMAP_Extensions_fraudInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_FraudInfo },
20851 { NULL, 0, 0, 0, NULL }
20854 static int
20855 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_) {
20856 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20857 NokiaMAP_Extensions_ServiceWithInfo_sequence, hf_index, ett_NokiaMAP_Extensions_ServiceWithInfo);
20859 return offset;
20863 static const ber_sequence_t NokiaMAP_Extensions_ServiceListWithInfo_sequence_of[1] = {
20864 { &hf_NokiaMAP_Extensions_ServiceListWithInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ServiceWithInfo },
20867 static int
20868 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_) {
20869 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
20870 NokiaMAP_Extensions_ServiceListWithInfo_sequence_of, hf_index, ett_NokiaMAP_Extensions_ServiceListWithInfo);
20872 return offset;
20876 static const ber_sequence_t NokiaMAP_Extensions_IsdArgExt_U_sequence[] = {
20877 { &hf_NokiaMAP_Extensions_alsLineIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
20878 { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory },
20879 { &hf_NokiaMAP_Extensions_serviceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceList },
20880 { &hf_NokiaMAP_Extensions_serv_info_list, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceListWithInfo },
20881 { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory },
20882 { &hf_NokiaMAP_Extensions_ownMSISDN, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
20883 { NULL, 0, 0, 0, NULL }
20886 static int
20887 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_) {
20888 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20889 NokiaMAP_Extensions_IsdArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_IsdArgExt_U);
20891 return offset;
20896 static int
20897 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_) {
20898 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
20899 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_IsdArgExt_U);
20901 return offset;
20905 static const ber_sequence_t NokiaMAP_Extensions_DsdArgExt_U_sequence[] = {
20906 { &hf_NokiaMAP_Extensions_alsLineIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
20907 { &hf_NokiaMAP_Extensions_serviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceList },
20908 { NULL, 0, 0, 0, NULL }
20911 static int
20912 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_) {
20913 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20914 NokiaMAP_Extensions_DsdArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_DsdArgExt_U);
20916 return offset;
20921 static int
20922 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_) {
20923 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
20924 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_DsdArgExt_U);
20926 return offset;
20930 static const ber_sequence_t NokiaMAP_Extensions_UlResExt_U_sequence[] = {
20931 { &hf_NokiaMAP_Extensions_mwd_Set, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
20932 { NULL, 0, 0, 0, NULL }
20935 static int
20936 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_) {
20937 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
20938 NokiaMAP_Extensions_UlResExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_UlResExt_U);
20940 return offset;
20945 static int
20946 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_) {
20947 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
20948 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_UlResExt_U);
20950 return offset;
20955 static int
20956 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_) {
20957 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20958 NULL);
20960 return offset;
20965 static int
20966 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_) {
20967 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
20968 NULL);
20970 return offset;
20975 static int
20976 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_) {
20977 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20978 NULL);
20980 return offset;
20985 static int
20986 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_) {
20987 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
20988 NULL);
20990 return offset;
20994 static const ber_sequence_t NokiaMAP_Extensions_ChargingAreaList_sequence_of[1] = {
20995 { &hf_NokiaMAP_Extensions_ChargingAreaList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ChargingArea },
20998 static int
20999 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_) {
21000 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21001 NokiaMAP_Extensions_ChargingAreaList_sequence_of, hf_index, ett_NokiaMAP_Extensions_ChargingAreaList);
21003 return offset;
21007 static const ber_sequence_t NokiaMAP_Extensions_RegionalChargingData_sequence[] = {
21008 { &hf_NokiaMAP_Extensions_chargingAreaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ChargingAreaList },
21009 { NULL, 0, 0, 0, NULL }
21012 static int
21013 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_) {
21014 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21015 NokiaMAP_Extensions_RegionalChargingData_sequence, hf_index, ett_NokiaMAP_Extensions_RegionalChargingData);
21017 return offset;
21021 static const ber_sequence_t NokiaMAP_Extensions_SS_DataExtension_U_sequence[] = {
21022 { &hf_NokiaMAP_Extensions_inTriggerKey, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InTriggerKey },
21023 { &hf_NokiaMAP_Extensions_pnpIndex, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_PnpIndex },
21024 { &hf_NokiaMAP_Extensions_callRedirectionIndex, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallRedirectionIndex },
21025 { &hf_NokiaMAP_Extensions_regionalChargingData, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RegionalChargingData },
21026 { NULL, 0, 0, 0, NULL }
21029 static int
21030 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_) {
21031 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21032 NokiaMAP_Extensions_SS_DataExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SS_DataExtension_U);
21034 return offset;
21039 static int
21040 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_) {
21041 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21042 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SS_DataExtension_U);
21044 return offset;
21049 static int
21050 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_) {
21051 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21052 NULL);
21054 return offset;
21059 static int
21060 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_) {
21061 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21062 NULL);
21064 return offset;
21068 static const ber_sequence_t NokiaMAP_Extensions_SriExtension_U_sequence[] = {
21069 { &hf_NokiaMAP_Extensions_callForwardingOverride, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21070 { &hf_NokiaMAP_Extensions_in_Capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21071 { &hf_NokiaMAP_Extensions_callingCategory, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallingCategory },
21072 { &hf_NokiaMAP_Extensions_internalServiceIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InternalServiceIndicator },
21073 { &hf_NokiaMAP_Extensions_srbtSupportIndicator, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21074 { &hf_NokiaMAP_Extensions_gmscSupportIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21075 { NULL, 0, 0, 0, NULL }
21078 static int
21079 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_) {
21080 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21081 NokiaMAP_Extensions_SriExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriExtension_U);
21083 return offset;
21088 static int
21089 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_) {
21090 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21091 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SriExtension_U);
21093 return offset;
21097 static const value_string NokiaMAP_Extensions_ExtraProtocolId_vals[] = {
21098 { 1, "q763" },
21099 { 0, NULL }
21103 static int
21104 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_) {
21105 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21106 NULL);
21108 return offset;
21112 static const ber_sequence_t NokiaMAP_Extensions_ExtraSignalInfo_U_sequence[] = {
21113 { &hf_NokiaMAP_Extensions_protocolId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ExtraProtocolId },
21114 { &hf_NokiaMAP_Extensions_signalInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
21115 { NULL, 0, 0, 0, NULL }
21118 static int
21119 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_) {
21120 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21121 NokiaMAP_Extensions_ExtraSignalInfo_U_sequence, hf_index, ett_NokiaMAP_Extensions_ExtraSignalInfo_U);
21123 return offset;
21128 static int
21129 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_) {
21130 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21131 hf_index, BER_CLASS_PRI, 1, true, dissect_NokiaMAP_Extensions_ExtraSignalInfo_U);
21133 return offset;
21138 static int
21139 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_) {
21140 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21141 NULL);
21143 return offset;
21148 static int
21149 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_) {
21150 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
21152 return offset;
21156 static const ber_sequence_t NokiaMAP_Extensions_Nokia_CUG_Data_sequence[] = {
21157 { &hf_NokiaMAP_Extensions_cug_Interlock, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
21158 { &hf_NokiaMAP_Extensions_cug_OutgoingAccess, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
21159 { &hf_NokiaMAP_Extensions_cug_CallInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CUG_CallInfo },
21160 { NULL, 0, 0, 0, NULL }
21163 static int
21164 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_) {
21165 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21166 NokiaMAP_Extensions_Nokia_CUG_Data_sequence, hf_index, ett_NokiaMAP_Extensions_Nokia_CUG_Data);
21168 return offset;
21173 static int
21174 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_) {
21175 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21176 NULL);
21178 return offset;
21183 static int
21184 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_) {
21185 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21186 NULL);
21188 return offset;
21192 static const ber_sequence_t NokiaMAP_Extensions_OlcmInfo_sequence[] = {
21193 { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
21194 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
21195 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
21196 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
21197 { NULL, 0, 0, 0, NULL }
21200 static int
21201 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_) {
21202 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21203 NokiaMAP_Extensions_OlcmInfo_sequence, hf_index, ett_NokiaMAP_Extensions_OlcmInfo);
21205 return offset;
21209 static const ber_sequence_t NokiaMAP_Extensions_OlcmInfoTable_sequence_of[1] = {
21210 { &hf_NokiaMAP_Extensions_OlcmInfoTable_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_OlcmInfo },
21213 static int
21214 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_) {
21215 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21216 NokiaMAP_Extensions_OlcmInfoTable_sequence_of, hf_index, ett_NokiaMAP_Extensions_OlcmInfoTable);
21218 return offset;
21223 static int
21224 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_) {
21225 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21226 NULL);
21228 return offset;
21232 static const ber_sequence_t NokiaMAP_Extensions_MemberList_sequence_of[1] = {
21233 { &hf_NokiaMAP_Extensions_MemberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
21236 static int
21237 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_) {
21238 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21239 NokiaMAP_Extensions_MemberList_sequence_of, hf_index, ett_NokiaMAP_Extensions_MemberList);
21241 return offset;
21246 static int
21247 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_) {
21248 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21249 NULL);
21251 return offset;
21256 static int
21257 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_) {
21258 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21259 NULL);
21261 return offset;
21265 static const ber_sequence_t NokiaMAP_Extensions_RgData_sequence[] = {
21266 { &hf_NokiaMAP_Extensions_noAnswerTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NoAnswerTimer },
21267 { &hf_NokiaMAP_Extensions_memberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MemberList },
21268 { &hf_NokiaMAP_Extensions_alertingMethod, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_AlertingMethod },
21269 { &hf_NokiaMAP_Extensions_userType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_UserType },
21270 { &hf_NokiaMAP_Extensions_divertedToNbr, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
21271 { &hf_NokiaMAP_Extensions_memberOfSuppression, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21272 { &hf_NokiaMAP_Extensions_ringbacktone, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21273 { NULL, 0, 0, 0, NULL }
21276 static int
21277 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_) {
21278 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21279 NokiaMAP_Extensions_RgData_sequence, hf_index, ett_NokiaMAP_Extensions_RgData);
21281 return offset;
21285 static const ber_sequence_t NokiaMAP_Extensions_SriResExtension_U_sequence[] = {
21286 { &hf_NokiaMAP_Extensions_inTriggerKey, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InTriggerKey },
21287 { &hf_NokiaMAP_Extensions_vlrNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
21288 { &hf_NokiaMAP_Extensions_activeSs, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActiveSS_List },
21289 { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
21290 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
21291 { &hf_NokiaMAP_Extensions_omc_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
21292 { &hf_NokiaMAP_Extensions_hotBilling, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
21293 { &hf_NokiaMAP_Extensions_cfoIsDone, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
21294 { &hf_NokiaMAP_Extensions_cfInCug, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN },
21295 { &hf_NokiaMAP_Extensions_basicService, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
21296 { &hf_NokiaMAP_Extensions_category, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
21297 { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory },
21298 { &hf_NokiaMAP_Extensions_pnpIndex, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_PnpIndex },
21299 { &hf_NokiaMAP_Extensions_nokia_CUG, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_Nokia_CUG_Data },
21300 { &hf_NokiaMAP_Extensions_noBarrings, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21301 { &hf_NokiaMAP_Extensions_odb_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
21302 { &hf_NokiaMAP_Extensions_fraudData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData },
21303 { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory },
21304 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
21305 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
21306 { &hf_NokiaMAP_Extensions_callingCategory, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallingCategory },
21307 { &hf_NokiaMAP_Extensions_commonMSISDN, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
21308 { &hf_NokiaMAP_Extensions_rgData, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RgData },
21309 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
21310 { NULL, 0, 0, 0, NULL }
21313 static int
21314 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_) {
21315 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21316 NokiaMAP_Extensions_SriResExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriResExtension_U);
21318 return offset;
21323 static int
21324 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_) {
21325 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21326 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SriResExtension_U);
21328 return offset;
21333 static int
21334 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_) {
21335 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21336 NULL);
21338 return offset;
21342 static const ber_sequence_t NokiaMAP_Extensions_CanLocArgExt_U_sequence[] = {
21343 { &hf_NokiaMAP_Extensions_termination, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1 },
21344 { NULL, 0, 0, 0, NULL }
21347 static int
21348 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_) {
21349 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21350 NokiaMAP_Extensions_CanLocArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_CanLocArgExt_U);
21352 return offset;
21357 static int
21358 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_) {
21359 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21360 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_CanLocArgExt_U);
21362 return offset;
21366 static const ber_sequence_t NokiaMAP_Extensions_ATMargExt_U_sequence[] = {
21367 { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
21368 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
21369 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
21370 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
21371 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
21372 { NULL, 0, 0, 0, NULL }
21375 static int
21376 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_) {
21377 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21378 NokiaMAP_Extensions_ATMargExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ATMargExt_U);
21380 return offset;
21385 static int
21386 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_) {
21387 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21388 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ATMargExt_U);
21390 return offset;
21394 static const ber_sequence_t NokiaMAP_Extensions_ATMresExt_U_sequence[] = {
21395 { &hf_NokiaMAP_Extensions_olcmActive, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21396 { NULL, 0, 0, 0, NULL }
21399 static int
21400 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_) {
21401 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21402 NokiaMAP_Extensions_ATMresExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ATMresExt_U);
21404 return offset;
21409 static int
21410 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_) {
21411 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21412 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ATMresExt_U);
21414 return offset;
21418 static const ber_sequence_t NokiaMAP_Extensions_DTMargExt_U_sequence[] = {
21419 { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
21420 { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId },
21421 { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference },
21422 { NULL, 0, 0, 0, NULL }
21425 static int
21426 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_) {
21427 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21428 NokiaMAP_Extensions_DTMargExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_DTMargExt_U);
21430 return offset;
21435 static int
21436 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_) {
21437 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21438 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_DTMargExt_U);
21440 return offset;
21445 static int
21446 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_) {
21447 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21448 NULL);
21450 return offset;
21455 static int
21456 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_) {
21457 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21458 hf_index, BER_CLASS_PRI, 20, true, dissect_NokiaMAP_Extensions_NumberPorted_U);
21460 return offset;
21465 static int
21466 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_) {
21467 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21468 NULL);
21470 return offset;
21475 static int
21476 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_) {
21477 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21478 NULL);
21480 return offset;
21484 static const ber_sequence_t NokiaMAP_Extensions_CodecListExt_sequence_of[1] = {
21485 { &hf_NokiaMAP_Extensions_CodecListExt_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_CodecExt },
21488 static int
21489 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_) {
21490 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21491 NokiaMAP_Extensions_CodecListExt_sequence_of, hf_index, ett_NokiaMAP_Extensions_CodecListExt);
21493 return offset;
21498 static int
21499 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_) {
21500 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21501 NULL);
21503 return offset;
21507 static const ber_sequence_t NokiaMAP_Extensions_SelectedCodec_sequence[] = {
21508 { &hf_NokiaMAP_Extensions_codec, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CodecExt },
21509 { &hf_NokiaMAP_Extensions_modes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_Modes },
21510 { NULL, 0, 0, 0, NULL }
21513 static int
21514 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_) {
21515 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21516 NokiaMAP_Extensions_SelectedCodec_sequence, hf_index, ett_NokiaMAP_Extensions_SelectedCodec);
21518 return offset;
21523 static int
21524 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_) {
21525 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21526 NULL);
21528 return offset;
21533 static int
21534 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_) {
21535 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21536 NULL);
21538 return offset;
21542 static const ber_sequence_t NokiaMAP_Extensions_HO_Ext_U_sequence[] = {
21543 { &hf_NokiaMAP_Extensions_map_Opt, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MapOptFields },
21544 { &hf_NokiaMAP_Extensions_codec_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CodecListExt },
21545 { &hf_NokiaMAP_Extensions_selected_Codec, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SelectedCodec },
21546 { &hf_NokiaMAP_Extensions_uma_access, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21547 { &hf_NokiaMAP_Extensions_uma_ip_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_5_17 },
21548 { &hf_NokiaMAP_Extensions_uma_ip_port_nb, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_IPPortNb },
21549 { NULL, 0, 0, 0, NULL }
21552 static int
21553 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_) {
21554 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21555 NokiaMAP_Extensions_HO_Ext_U_sequence, hf_index, ett_NokiaMAP_Extensions_HO_Ext_U);
21557 return offset;
21562 static int
21563 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_) {
21564 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21565 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_HO_Ext_U);
21567 return offset;
21571 static const ber_sequence_t NokiaMAP_Extensions_AbsentSubscriberExt_U_sequence[] = {
21572 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
21573 { &hf_NokiaMAP_Extensions_imsi, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
21574 { NULL, 0, 0, 0, NULL }
21577 static int
21578 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_) {
21579 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21580 NokiaMAP_Extensions_AbsentSubscriberExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_AbsentSubscriberExt_U);
21582 return offset;
21587 static int
21588 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_) {
21589 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21590 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_AbsentSubscriberExt_U);
21592 return offset;
21596 static const ber_sequence_t NokiaMAP_Extensions_ErrOlcmInfoTableExt_U_sequence[] = {
21597 { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable },
21598 { &hf_NokiaMAP_Extensions_imsi, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
21599 { NULL, 0, 0, 0, NULL }
21602 static int
21603 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_) {
21604 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21605 NokiaMAP_Extensions_ErrOlcmInfoTableExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U);
21607 return offset;
21612 static int
21613 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_) {
21614 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21615 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U);
21617 return offset;
21621 static const ber_sequence_t NokiaMAP_Extensions_RoutingCategoryExt_U_sequence[] = {
21622 { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory },
21623 { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory },
21624 { NULL, 0, 0, 0, NULL }
21627 static int
21628 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_) {
21629 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21630 NokiaMAP_Extensions_RoutingCategoryExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_RoutingCategoryExt_U);
21632 return offset;
21637 static int
21638 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_) {
21639 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21640 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_RoutingCategoryExt_U);
21642 return offset;
21647 static int
21648 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_) {
21649 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21650 NULL);
21652 return offset;
21656 static const ber_sequence_t NokiaMAP_Extensions_SriForSMArgExt_U_sequence[] = {
21657 { &hf_NokiaMAP_Extensions_cfuSMSCounter, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CfuSMSCounter },
21658 { &hf_NokiaMAP_Extensions_cfusmcfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21659 { &hf_NokiaMAP_Extensions_memberInterrogate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21660 { NULL, 0, 0, 0, NULL }
21663 static int
21664 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_) {
21665 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21666 NokiaMAP_Extensions_SriForSMArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriForSMArgExt_U);
21668 return offset;
21673 static int
21674 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_) {
21675 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21676 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_SriForSMArgExt_U);
21678 return offset;
21682 static const ber_sequence_t NokiaMAP_Extensions_ReportSMDelStatArgExt_U_sequence[] = {
21683 { &hf_NokiaMAP_Extensions_cfuSMSCounter, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CfuSMSCounter },
21684 { &hf_NokiaMAP_Extensions_cfusmcfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21685 { NULL, 0, 0, 0, NULL }
21688 static int
21689 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_) {
21690 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21691 NokiaMAP_Extensions_ReportSMDelStatArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U);
21693 return offset;
21698 static int
21699 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_) {
21700 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21701 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt_U);
21703 return offset;
21708 static int
21709 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_) {
21710 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
21711 NULL);
21713 return offset;
21717 static const ber_sequence_t NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U_sequence[] = {
21718 { &hf_NokiaMAP_Extensions_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LocationAreaCode },
21719 { &hf_NokiaMAP_Extensions_cellId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
21720 { NULL, 0, 0, 0, NULL }
21723 static int
21724 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_) {
21725 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21726 NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U);
21728 return offset;
21733 static int
21734 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_) {
21735 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21736 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U);
21738 return offset;
21742 static const ber_sequence_t NokiaMAP_Extensions_UdlArgExt_U_sequence[] = {
21743 { &hf_NokiaMAP_Extensions_lai, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
21744 { &hf_NokiaMAP_Extensions_sendImmResp, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL },
21745 { NULL, 0, 0, 0, NULL }
21748 static int
21749 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_) {
21750 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21751 NokiaMAP_Extensions_UdlArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_UdlArgExt_U);
21753 return offset;
21758 static int
21759 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_) {
21760 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21761 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_UdlArgExt_U);
21763 return offset;
21767 static const ber_sequence_t NokiaMAP_Extensions_RoamNotAllowedExt_U_sequence[] = {
21768 { &hf_NokiaMAP_Extensions_rejectCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1 },
21769 { NULL, 0, 0, 0, NULL }
21772 static int
21773 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_) {
21774 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21775 NokiaMAP_Extensions_RoamNotAllowedExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U);
21777 return offset;
21782 static int
21783 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_) {
21784 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21785 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_RoamNotAllowedExt_U);
21787 return offset;
21791 static const ber_sequence_t NokiaMAP_Extensions_AnyTimeModArgExt_U_sequence[] = {
21792 { &hf_NokiaMAP_Extensions_senderMSISDN, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
21793 { NULL, 0, 0, 0, NULL }
21796 static int
21797 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_) {
21798 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21799 NokiaMAP_Extensions_AnyTimeModArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U);
21801 return offset;
21806 static int
21807 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_) {
21808 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
21809 hf_index, BER_CLASS_PRI, 0, true, dissect_NokiaMAP_Extensions_AnyTimeModArgExt_U);
21811 return offset;
21815 static const value_string NokiaMAP_Extensions_Access_vals[] = {
21816 { 1, "gsm" },
21817 { 2, "geran" },
21818 { 3, "utran" },
21819 { 0, NULL }
21823 static int
21824 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_) {
21825 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21826 NULL);
21828 return offset;
21833 static int
21834 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_) {
21835 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
21836 NULL);
21838 return offset;
21842 static const ber_sequence_t NokiaMAP_Extensions_AccessTypeExt_sequence[] = {
21843 { &hf_NokiaMAP_Extensions_access, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Access },
21844 { &hf_NokiaMAP_Extensions_version, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Version },
21845 { NULL, 0, 0, 0, NULL }
21848 static int
21849 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_) {
21850 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
21851 NokiaMAP_Extensions_AccessTypeExt_sequence, hf_index, ett_NokiaMAP_Extensions_AccessTypeExt);
21853 return offset;
21857 static const ber_sequence_t NokiaMAP_Extensions_AccessSubscriptionListExt_sequence_of[1] = {
21858 { &hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Access },
21861 static int
21862 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_) {
21863 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
21864 NokiaMAP_Extensions_AccessSubscriptionListExt_sequence_of, hf_index, ett_NokiaMAP_Extensions_AccessSubscriptionListExt);
21866 return offset;
21870 static int * const NokiaMAP_Extensions_AllowedServiceData_bits[] = {
21871 &hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed,
21872 NULL
21875 static int
21876 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_) {
21877 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
21878 NokiaMAP_Extensions_AllowedServiceData_bits, 1, hf_index, ett_NokiaMAP_Extensions_AllowedServiceData,
21879 NULL);
21881 return offset;
21885 /* Specific translation for MAP V3 */
21886 static const value_string gsm_map_V1V2_opr_code_strings[] = {
21887 { 44, "forwardSM" },
21888 { 45, "sendRoutingInfoForSM" },
21889 { 46, "forwardSM" },
21890 { 0, NULL }
21892 /* Generic translation for MAP operation */
21893 const value_string gsm_map_opr_code_strings[] = {
21895 /* --- Module Remote-Operations-Information-Objects --- --- --- */
21897 /* Unknown or empty loop list OPERATION */
21899 /* --- Module MobileDomainDefinitions --- --- --- */
21901 /* Unknown or empty loop list OPERATION */
21903 /* --- Module MAP-ApplicationContexts --- --- --- */
21905 /* Unknown or empty loop list OPERATION */
21907 /* --- Module MAP-SS-Code --- --- --- */
21909 /* Unknown or empty loop list OPERATION */
21911 /* --- Module MAP-BS-Code --- --- --- */
21913 /* Unknown or empty loop list OPERATION */
21915 /* --- Module MAP-TS-Code --- --- --- */
21917 /* Unknown or empty loop list OPERATION */
21919 /* --- Module MAP-ExtensionDataTypes --- --- --- */
21921 /* Unknown or empty loop list OPERATION */
21923 /* --- Module MAP-CommonDataTypes --- --- --- */
21925 /* Unknown or empty loop list OPERATION */
21927 /* --- Module MAP-SS-DataTypes --- --- --- */
21929 /* Unknown or empty loop list OPERATION */
21931 /* --- Module MAP-ER-DataTypes --- --- --- */
21933 /* Unknown or empty loop list OPERATION */
21935 /* --- Module MAP-SM-DataTypes --- --- --- */
21937 /* Unknown or empty loop list OPERATION */
21939 /* --- Module MAP-OM-DataTypes --- --- --- */
21941 /* Unknown or empty loop list OPERATION */
21943 /* --- Module MAP-MS-DataTypes --- --- --- */
21945 /* Unknown or empty loop list OPERATION */
21947 /* --- Module MAP-CH-DataTypes --- --- --- */
21949 /* Unknown or empty loop list OPERATION */
21951 /* --- Module MAP-LCS-DataTypes --- --- --- */
21953 /* Unknown or empty loop list OPERATION */
21955 /* --- Module MAP-GR-DataTypes --- --- --- */
21957 /* Unknown or empty loop list OPERATION */
21959 /* --- Module MAP-DialogueInformation --- --- --- */
21961 /* Unknown or empty loop list OPERATION */
21963 /* --- Module MAP-LocationServiceOperations --- --- --- */
21965 { 85, "sendRoutingInfoForLCS" },
21966 { 83, "provideSubscriberLocation" },
21967 { 86, "subscriberLocationReport" },
21969 /* --- Module MAP-Group-Call-Operations --- --- --- */
21971 { 39, "prepareGroupCall" },
21972 { 40, "sendGroupCallEndSignal" },
21973 { 41, "processGroupCallSignalling" },
21974 { 42, "forwardGroupCallSignalling" },
21975 { 84, "sendGroupCallInfo" },
21977 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
21979 { 45, "sendRoutingInfoForSM" },
21980 { 46, "mo_ForwardSM" },
21981 { 44, "mt_ForwardSM" },
21982 { 47, "reportSM_DeliveryStatus" },
21983 { 64, "alertServiceCentre" },
21984 { 63, "informServiceCentre" },
21985 { 66, "readyForSM" },
21986 { 21, "mt_ForwardSM_VGCS" },
21988 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
21990 { 10, "registerSS" },
21991 { 11, "eraseSS" },
21992 { 12, "activateSS" },
21993 { 13, "deactivateSS" },
21994 { 14, "interrogateSS" },
21995 { 59, "processUnstructuredSS_Request" },
21996 { 60, "unstructuredSS_Request" },
21997 { 61, "unstructuredSS_Notify" },
21998 { 17, "registerPassword" },
21999 { 18, "getPassword" },
22000 { 72, "ss_InvocationNotification" },
22001 { 76, "registerCC_Entry" },
22002 { 77, "eraseCC_Entry" },
22004 /* --- Module MAP-CallHandlingOperations --- --- --- */
22006 { 22, "sendRoutingInfo" },
22007 { 4, "provideRoamingNumber" },
22008 { 6, "resumeCallHandling" },
22009 { 73, "setReportingState" },
22010 { 74, "statusReport" },
22011 { 75, "remoteUserFree" },
22012 { 87, "ist_Alert" },
22013 { 88, "ist_Command" },
22014 { 20, "releaseResources" },
22016 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
22018 { 50, "activateTraceMode" },
22019 { 51, "deactivateTraceMode" },
22020 { 58, "sendIMSI" },
22022 /* --- Module MAP-MobileServiceOperations --- --- --- */
22024 { 2, "updateLocation" },
22025 { 3, "cancelLocation" },
22026 { 67, "purgeMS" },
22027 { 55, "sendIdentification" },
22028 { 23, "updateGprsLocation" },
22029 { 70, "provideSubscriberInfo" },
22030 { 71, "anyTimeInterrogation" },
22031 { 62, "anyTimeSubscriptionInterrogation" },
22032 { 65, "anyTimeModification" },
22033 { 5, "noteSubscriberDataModified" },
22034 { 68, "prepareHandover" },
22035 { 29, "sendEndSignal" },
22036 { 33, "processAccessSignalling" },
22037 { 34, "forwardAccessSignalling" },
22038 { 69, "prepareSubsequentHandover" },
22039 { 56, "sendAuthenticationInfo" },
22040 { 15, "authenticationFailureReport" },
22041 { 43, "checkIMEI" },
22042 { 7, "insertSubscriberData" },
22043 { 8, "deleteSubscriberData" },
22044 { 37, "reset" },
22045 { 38, "forwardCheckSS_Indication" },
22046 { 57, "restoreData" },
22047 { 24, "sendRoutingInfoForGprs" },
22048 { 25, "failureReport" },
22049 { 26, "noteMsPresentForGprs" },
22050 { 89, "noteMM_Event" },
22051 { 53, "updateVcsgLocation" },
22052 { 36, "cancelVcsgLocation" },
22054 /* --- Module MAP-Errors --- --- --- */
22056 /* Unknown or empty loop list OPERATION */
22058 /* --- Module MAP-Protocol --- --- --- */
22060 /* Unknown or empty loop list OPERATION */
22062 /* --- Module DummyMAP --- --- --- */
22064 { 9, "sendParameters" },
22066 /* --- Module SS-DataTypes --- --- --- */
22068 /* Unknown or empty loop list OPERATION */
22070 /* --- Module SS-Operations --- --- --- */
22072 { 19, "processUnstructuredSS_Data" },
22073 { 16, "notifySS" },
22074 { 125, "forwardChargeAdvice" },
22075 { 120, "forwardCUG_Info" },
22076 { 124, "buildMPTY" },
22077 { 123, "holdMPTY" },
22078 { 122, "retrieveMPTY" },
22079 { 121, "splitMPTY" },
22080 { 126, "explicitCT" },
22081 { 119, "accessRegisterCCEntry" },
22082 { 117, "callDeflection" },
22083 { 118, "userUserService" },
22084 { 116, "lcs_LocationNotification" },
22085 { 115, "lcs_MOLR" },
22086 { 114, "lcs_AreaEventRequest" },
22087 { 113, "lcs_AreaEventReport" },
22088 { 112, "lcs_AreaEventCancellation" },
22089 { 111, "lcs_PeriodicLocationRequest" },
22090 { 110, "lcs_LocationUpdate" },
22091 { 109, "lcs_PeriodicLocationCancellation" },
22092 { 108, "lcs_PeriodicTriggeredInvoke" },
22094 /* --- Module EricssonMAP --- --- --- */
22096 /* Unknown or empty loop list OPERATION */
22098 /* --- Module NokiaMAP-Extensions --- --- --- */
22100 /* Unknown or empty loop list OPERATION */
22101 { 0, NULL }
22104 #if 0
22105 static const value_string gsm_map_err_code_string_vals[] = {
22107 /* --- Module Remote-Operations-Information-Objects --- --- --- */
22109 /* Unknown or empty loop list OPERATION */
22111 /* --- Module MobileDomainDefinitions --- --- --- */
22113 /* Unknown or empty loop list OPERATION */
22115 /* --- Module MAP-ApplicationContexts --- --- --- */
22117 /* Unknown or empty loop list OPERATION */
22119 /* --- Module MAP-SS-Code --- --- --- */
22121 /* Unknown or empty loop list OPERATION */
22123 /* --- Module MAP-BS-Code --- --- --- */
22125 /* Unknown or empty loop list OPERATION */
22127 /* --- Module MAP-TS-Code --- --- --- */
22129 /* Unknown or empty loop list OPERATION */
22131 /* --- Module MAP-ExtensionDataTypes --- --- --- */
22133 /* Unknown or empty loop list OPERATION */
22135 /* --- Module MAP-CommonDataTypes --- --- --- */
22137 /* Unknown or empty loop list OPERATION */
22139 /* --- Module MAP-SS-DataTypes --- --- --- */
22141 /* Unknown or empty loop list OPERATION */
22143 /* --- Module MAP-ER-DataTypes --- --- --- */
22145 /* Unknown or empty loop list OPERATION */
22147 /* --- Module MAP-SM-DataTypes --- --- --- */
22149 /* Unknown or empty loop list OPERATION */
22151 /* --- Module MAP-OM-DataTypes --- --- --- */
22153 /* Unknown or empty loop list OPERATION */
22155 /* --- Module MAP-MS-DataTypes --- --- --- */
22157 /* Unknown or empty loop list OPERATION */
22159 /* --- Module MAP-CH-DataTypes --- --- --- */
22161 /* Unknown or empty loop list OPERATION */
22163 /* --- Module MAP-LCS-DataTypes --- --- --- */
22165 /* Unknown or empty loop list OPERATION */
22167 /* --- Module MAP-GR-DataTypes --- --- --- */
22169 /* Unknown or empty loop list OPERATION */
22171 /* --- Module MAP-DialogueInformation --- --- --- */
22173 /* Unknown or empty loop list OPERATION */
22175 /* --- Module MAP-LocationServiceOperations --- --- --- */
22177 { 85, "sendRoutingInfoForLCS" },
22178 { 83, "provideSubscriberLocation" },
22179 { 86, "subscriberLocationReport" },
22181 /* --- Module MAP-Group-Call-Operations --- --- --- */
22183 { 39, "prepareGroupCall" },
22184 { 40, "sendGroupCallEndSignal" },
22185 { 41, "processGroupCallSignalling" },
22186 { 42, "forwardGroupCallSignalling" },
22187 { 84, "sendGroupCallInfo" },
22189 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
22191 { 45, "sendRoutingInfoForSM" },
22192 { 46, "mo_ForwardSM" },
22193 { 44, "mt_ForwardSM" },
22194 { 47, "reportSM_DeliveryStatus" },
22195 { 64, "alertServiceCentre" },
22196 { 63, "informServiceCentre" },
22197 { 66, "readyForSM" },
22198 { 21, "mt_ForwardSM_VGCS" },
22200 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
22202 { 10, "registerSS" },
22203 { 11, "eraseSS" },
22204 { 12, "activateSS" },
22205 { 13, "deactivateSS" },
22206 { 14, "interrogateSS" },
22207 { 59, "processUnstructuredSS_Request" },
22208 { 60, "unstructuredSS_Request" },
22209 { 61, "unstructuredSS_Notify" },
22210 { 17, "registerPassword" },
22211 { 18, "getPassword" },
22212 { 72, "ss_InvocationNotification" },
22213 { 76, "registerCC_Entry" },
22214 { 77, "eraseCC_Entry" },
22216 /* --- Module MAP-CallHandlingOperations --- --- --- */
22218 { 22, "sendRoutingInfo" },
22219 { 4, "provideRoamingNumber" },
22220 { 6, "resumeCallHandling" },
22221 { 73, "setReportingState" },
22222 { 74, "statusReport" },
22223 { 75, "remoteUserFree" },
22224 { 87, "ist_Alert" },
22225 { 88, "ist_Command" },
22226 { 20, "releaseResources" },
22228 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
22230 { 50, "activateTraceMode" },
22231 { 51, "deactivateTraceMode" },
22232 { 58, "sendIMSI" },
22234 /* --- Module MAP-MobileServiceOperations --- --- --- */
22236 { 2, "updateLocation" },
22237 { 3, "cancelLocation" },
22238 { 67, "purgeMS" },
22239 { 55, "sendIdentification" },
22240 { 23, "updateGprsLocation" },
22241 { 70, "provideSubscriberInfo" },
22242 { 71, "anyTimeInterrogation" },
22243 { 62, "anyTimeSubscriptionInterrogation" },
22244 { 65, "anyTimeModification" },
22245 { 5, "noteSubscriberDataModified" },
22246 { 68, "prepareHandover" },
22247 { 29, "sendEndSignal" },
22248 { 33, "processAccessSignalling" },
22249 { 34, "forwardAccessSignalling" },
22250 { 69, "prepareSubsequentHandover" },
22251 { 56, "sendAuthenticationInfo" },
22252 { 15, "authenticationFailureReport" },
22253 { 43, "checkIMEI" },
22254 { 7, "insertSubscriberData" },
22255 { 8, "deleteSubscriberData" },
22256 { 37, "reset" },
22257 { 38, "forwardCheckSS_Indication" },
22258 { 57, "restoreData" },
22259 { 24, "sendRoutingInfoForGprs" },
22260 { 25, "failureReport" },
22261 { 26, "noteMsPresentForGprs" },
22262 { 89, "noteMM_Event" },
22263 { 53, "updateVcsgLocation" },
22264 { 36, "cancelVcsgLocation" },
22266 /* --- Module MAP-Errors --- --- --- */
22268 /* Unknown or empty loop list OPERATION */
22270 /* --- Module MAP-Protocol --- --- --- */
22272 /* Unknown or empty loop list OPERATION */
22274 /* --- Module DummyMAP --- --- --- */
22276 { 9, "sendParameters" },
22278 /* --- Module SS-DataTypes --- --- --- */
22280 /* Unknown or empty loop list OPERATION */
22282 /* --- Module SS-Operations --- --- --- */
22284 { 19, "processUnstructuredSS_Data" },
22285 { 16, "notifySS" },
22286 { 125, "forwardChargeAdvice" },
22287 { 120, "forwardCUG_Info" },
22288 { 124, "buildMPTY" },
22289 { 123, "holdMPTY" },
22290 { 122, "retrieveMPTY" },
22291 { 121, "splitMPTY" },
22292 { 126, "explicitCT" },
22293 { 119, "accessRegisterCCEntry" },
22294 { 117, "callDeflection" },
22295 { 118, "userUserService" },
22296 { 116, "lcs_LocationNotification" },
22297 { 115, "lcs_MOLR" },
22298 { 114, "lcs_AreaEventRequest" },
22299 { 113, "lcs_AreaEventReport" },
22300 { 112, "lcs_AreaEventCancellation" },
22301 { 111, "lcs_PeriodicLocationRequest" },
22302 { 110, "lcs_LocationUpdate" },
22303 { 109, "lcs_PeriodicLocationCancellation" },
22304 { 108, "lcs_PeriodicTriggeredInvoke" },
22306 /* --- Module EricssonMAP --- --- --- */
22308 /* Unknown or empty loop list OPERATION */
22310 /* --- Module NokiaMAP-Extensions --- --- --- */
22312 /* Unknown or empty loop list OPERATION */
22313 { 0, NULL }
22315 #endif
22318 static const value_string gsm_map_nature_of_number_values[] = {
22319 { 0x00, "unknown" },
22320 { 0x01, "International Number" },
22321 { 0x02, "National Significant Number" },
22322 { 0x03, "Network Specific Number" },
22323 { 0x04, "Subscriber Number" },
22324 { 0x05, "Reserved" },
22325 { 0x06, "Abbreviated Number" },
22326 { 0x07, "Reserved for extension" },
22327 { 0, NULL }
22329 static value_string_ext gsm_map_nature_of_number_values_ext = VALUE_STRING_EXT_INIT(gsm_map_nature_of_number_values);
22331 static const value_string gsm_map_number_plan_values[] = {
22332 { 0x00, "unknown" },
22333 { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
22334 { 0x02, "spare" },
22335 { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
22336 { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
22337 { 0x05, "spare" },
22338 { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
22339 { 0x07, "spare" },
22340 { 0x08, "National Numbering" },
22341 { 0x09, "Private Numbering" },
22342 { 0x0a, "spare" },
22343 { 0x0b, "spare" },
22344 { 0x0c, "spare" },
22345 { 0x0d, "spare" },
22346 { 0x0e, "spare" },
22347 { 0x0f, "Reserved for extension" },
22348 { 0, NULL }
22350 static value_string_ext gsm_map_number_plan_values_ext = VALUE_STRING_EXT_INIT(gsm_map_number_plan_values);
22352 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
22353 "Quiescent",
22354 "Operative"
22356 static const true_false_string gsm_map_Ss_Status_a_values = {
22357 "Active",
22358 "not Active"
22362 * Translate the MAP operation code value to a text string
22363 * Take into account the MAP version for ForwardSM
22365 const char* gsm_map_opr_code(uint32_t val, proto_item *item) {
22366 switch (val) {
22367 case 44: /*mt-forwardSM*/
22368 /* FALLTHRU */
22369 case 46: /*mo-forwardSM*/
22370 if (application_context_version < 3) {
22371 proto_item_set_text(item, "%s (%d)", val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode"), val);
22372 return val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode");
22374 /* Else use the default map operation translation */
22375 /* FALLTHRU */
22376 default:
22377 return val_to_str_ext_const(val, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, "Unknown GSM-MAP opcode");
22381 /* Prototype for a decoding function */
22382 typedef int (* dissect_function_t)( bool,
22383 tvbuff_t *,
22384 int ,
22385 asn1_ctx_t *,
22386 proto_tree *,
22387 int);
22390 * Dissect Multiple Choice Message
22391 * This function is used to decode a message, when several encoding may be used.
22392 * For example, in the last MAP version, the Cancel Location is defined like this:
22393 * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
22394 * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
22395 * As ASN1 encoders (or software) still uses the old encoding, this function allows
22396 * the decoding of both versions.
22397 * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the
22398 * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
22399 * This explain why the function expects 3 parameters:
22400 * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
22401 * - a SEQUENCE for old style
22402 * - and a single parameter, for old version or optimizations
22404 * The analyze of the first ASN1 tag, indicate what kind of decoding should be used,
22405 * if the decoding function is provided (so not a NULL function)
22407 static int dissect_mc_message(tvbuff_t *tvb,
22408 int offset,
22409 asn1_ctx_t *actx,
22410 proto_tree *tree,
22411 bool implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
22412 bool implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
22413 bool implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
22415 uint8_t octet;
22416 int8_t bug_class;
22417 bool bug_pc, bug_ind_field;
22418 int32_t bug_tag;
22419 uint32_t bug_len;
22421 octet = tvb_get_uint8(tvb,0);
22422 if ( (octet & 0xf) == 3) {
22423 /* XXX asn2wrs can not yet handle tagged assignment yes so this
22424 * XXX is some conformance file magic to work around that bug
22426 offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
22427 offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
22428 if (sequence3 != NULL) {
22429 offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
22430 } else {
22431 proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence3, tvb, offset, -1);
22433 } else if (octet == 0x30) {
22434 if (sequence != NULL) {
22435 offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
22436 } else {
22437 proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence, tvb, offset, -1);
22439 } else {
22440 if (parameter != NULL) {
22441 offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
22442 } else {
22443 proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_parameter, tvb, offset, -1);
22446 return offset;
22449 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
22451 switch(opcode){
22452 case 2: /*updateLocation*/
22453 offset=dissect_gsm_map_ms_UpdateLocationArg(false, tvb, offset, actx, tree, -1);
22454 break;
22455 case 3: /*cancelLocation*/
22456 offset=dissect_mc_message(tvb, offset, actx, tree,
22457 false, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
22458 false, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
22459 true , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
22460 break;
22461 case 4: /*provideRoamingNumber*/
22462 offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(false, tvb, offset, actx, tree, -1);
22463 break;
22464 case 5: /*noteSubscriberDataModified*/
22465 offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(false, tvb, offset, actx, tree, -1);
22466 break;
22467 case 6: /*resumeCallHandling*/
22468 offset=dissect_gsm_map_ch_ResumeCallHandlingArg(false, tvb, offset, actx, tree, -1);
22469 break;
22470 case 7: /*insertSubscriberData*/
22471 offset=dissect_gsm_map_ms_InsertSubscriberDataArg(false, tvb, offset, actx, tree, -1);
22472 break;
22473 case 8: /*deleteSubscriberData*/
22474 offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(false, tvb, offset, actx, tree, -1);
22475 break;
22476 case 9: /*sendParameters*/
22477 offset = dissect_gsm_old_SendParametersArg(false, tvb, offset, actx, tree, -1);
22478 break;
22479 case 10: /*registerSS*/
22480 offset=dissect_gsm_map_ss_RegisterSS_Arg(false, tvb, offset, actx, tree, -1);
22481 break;
22482 case 11: /*eraseSS*/
22483 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
22484 break;
22485 case 12: /*activateSS*/
22486 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
22487 break;
22488 case 13: /*deactivateSS*/
22489 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
22490 break;
22491 case 14: /*interrogateSS*/
22492 offset=dissect_gsm_map_ss_SS_ForBS_Code(false, tvb, offset, actx, tree, -1);
22493 break;
22494 case 15: /*authenticationFailureReport*/
22495 offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(false, tvb, offset, actx, tree, -1);
22496 break;
22497 case 16: /*SS-protocol notifySS*/
22498 offset=dissect_gsm_ss_NotifySS_Arg(false, tvb, offset, actx, tree, -1);
22499 break;
22500 case 17: /*registerPassword*/
22501 offset=dissect_gsm_map_SS_Code(false, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
22502 break;
22503 case 18: /*getPassword*/
22504 offset=dissect_gsm_old_GetPasswordArg(false, tvb, offset, actx, tree, hf_gsm_map_getPassword);
22505 break;
22506 case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
22507 offset=dissect_gsm_ss_SS_UserData(false, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
22508 break;
22509 case 20: /*releaseResources*/
22510 offset=dissect_gsm_map_ch_ReleaseResourcesArg(false, tvb, offset, actx, tree, -1);
22511 break;
22512 case 21: /*mt-ForwardSM-VGCS*/
22513 offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(false, tvb, offset, actx, tree, -1);
22514 break;
22515 case 22: /*sendRoutingInfo*/
22516 if (application_context_version == 3){
22517 offset=dissect_gsm_map_ch_SendRoutingInfoArg(false, tvb, offset, actx, tree, -1);
22518 }else{
22519 offset = dissect_gsm_old_SendRoutingInfoArgV2(false, tvb, offset, actx, tree, -1);
22521 break;
22522 case 23: /*updateGprsLocation*/
22523 offset=dissect_gsm_map_ms_UpdateGprsLocationArg(false, tvb, offset, actx, tree, -1);
22524 break;
22525 case 24: /*sendRoutingInfoForGprs*/
22526 offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(false, tvb, offset, actx, tree, -1);
22527 break;
22528 case 25: /*failureReport*/
22529 offset=dissect_gsm_map_ms_FailureReportArg(false, tvb, offset, actx, tree, -1);
22530 break;
22531 case 26: /*noteMsPresentForGprs*/
22532 offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(false, tvb, offset, actx, tree, -1);
22533 break;
22534 /* undefined 27 */
22535 /* reserved performHandover (28) */
22536 case 29: /*sendEndSignal*/
22537 offset=dissect_mc_message(tvb, offset, actx, tree,
22538 false, NULL, -1,
22539 false, dissect_gsm_old_Bss_APDU, -1,
22540 true , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
22541 break;
22542 /* reserved performSubsequentHandover (30) */
22543 case 31: /*provideSIWFSNumber*/
22544 offset=dissect_gsm_old_ProvideSIWFSNumberArg(false, tvb, offset, actx, tree, -1);
22545 break;
22546 case 32: /*sIWFSSignallingModify*/
22547 offset=dissect_gsm_old_SIWFSSignallingModifyArg(false, tvb, offset, actx, tree, -1);
22548 break;
22549 case 33: /*processAccessSignalling*/
22550 offset=dissect_mc_message(tvb, offset, actx, tree,
22551 false, NULL, -1,
22552 false, dissect_gsm_old_Bss_APDU, -1,
22553 true , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
22554 break;
22555 case 34: /*forwardAccessSignalling*/
22556 offset=dissect_mc_message(tvb, offset, actx, tree,
22557 false, NULL, -1,
22558 false, dissect_gsm_old_Bss_APDU, -1,
22559 true , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
22560 break;
22561 /* reserved noteInternalHandover (35) */
22562 case 36: /*cancelVcsgLocation*/
22563 offset=dissect_gsm_map_ms_CancelVcsgLocationArg(false, tvb, offset, actx, tree, -1);
22564 break;
22565 case 37: /*reset*/
22566 if (application_context_version == 1) {
22567 offset = dissect_gsm_old_ResetArgV1(false, tvb, offset, actx, tree, -1);
22568 } else {
22569 offset = dissect_gsm_map_ms_ResetArg(false, tvb, offset, actx, tree, -1);
22571 break;
22572 case 38: /*forwardCheckSS-Indication*/
22573 return offset;
22574 case 39: /*prepareGroupCall*/
22575 offset=dissect_gsm_map_gr_PrepareGroupCallArg(false, tvb, offset, actx, tree, -1);
22576 break;
22577 case 40: /*sendGroupCallEndSignal*/
22578 offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(false, tvb, offset, actx, tree, -1);
22579 break;
22580 case 41: /*processGroupCallSignalling*/
22581 offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(false, tvb, offset, actx, tree, -1);
22582 break;
22583 case 42: /*forwardGroupCallSignalling*/
22584 offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(false, tvb, offset, actx, tree, -1);
22585 break;
22586 case 43: /*checkIMEI*/
22587 if (pref_ericsson_proprietary_ext) {
22588 offset=dissect_mc_message(tvb, offset, actx, tree,
22589 false, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
22590 false, dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg, -1,
22591 true , NULL, -1); /* no [3] SEQUENCE */
22592 } else {
22593 offset=dissect_mc_message(tvb, offset, actx, tree,
22594 false, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
22595 false, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
22596 true , NULL, -1); /* no [3] SEQUENCE */
22598 break;
22599 case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
22600 if (application_context_version == 3)
22601 offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
22602 else {
22603 offset=dissect_gsm_old_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
22605 break;
22606 case 45: /*sendRoutingInfoForSM*/
22607 if (application_context_version < 2) {
22608 offset=dissect_gsm_old_RoutingInfoForSM_ArgV1(false, tvb, offset, actx, tree, -1);
22609 } else {
22610 offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(false, tvb, offset, actx, tree, -1);
22612 break;
22613 case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
22614 if (application_context_version == 3)
22615 offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
22616 else {
22617 offset=dissect_gsm_old_ForwardSM_Arg(false, tvb, offset, actx, tree, -1);
22619 break;
22620 case 47: /*reportSM-DeliveryStatus*/
22621 offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(false, tvb, offset, actx, tree, -1);
22622 break;
22623 case 48: /*noteSubscriberPresent*/
22624 offset = dissect_gsm_map_IMSI(false, tvb, offset, actx, tree, hf_gsm_map_imsi);
22625 break;
22626 /* reserved alertServiceCentreWithoutResult (49)
22627 * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
22628 * -- alertServiceCentreWithoutResult must not be used in
22629 * -- version greater 1
22631 case 49:
22632 offset = dissect_gsm_map_sm_AlertServiceCentreArg(false, tvb, offset, actx, tree, -1);
22633 break;
22634 case 50: /*activateTraceMode*/
22635 offset=dissect_gsm_map_om_ActivateTraceModeArg(false, tvb, offset, actx, tree, -1);
22636 break;
22637 case 51: /*deactivateTraceMode*/
22638 offset=dissect_gsm_map_om_DeactivateTraceModeArg(false, tvb, offset, actx, tree, -1);
22639 break;
22640 /* reserved traceSubscriberActivity (52) */
22642 case 53: /* UpdateVcsgLocation 53 */
22643 offset=dissect_gsm_map_ms_UpdateVcsgLocationArg(false, tvb, offset, actx, tree, -1);
22644 break;
22645 case 54: /*beginSubscriberActivity*/
22646 offset=dissect_gsm_old_BeginSubscriberActivityArg(false, tvb, offset, actx, tree, -1);
22647 break;
22648 case 55: /*sendIdentification*/
22649 offset=dissect_mc_message(tvb, offset, actx, tree,
22650 false, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
22651 false, dissect_gsm_map_ms_SendIdentificationArg, -1,
22652 true, NULL, -1);
22653 break;
22654 case 56: /*sendAuthenticationInfo*/
22655 offset=dissect_mc_message(tvb, offset, actx, tree,
22656 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
22657 false, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
22658 true, NULL, -1);
22659 break;
22660 case 57: /*restoreData*/
22661 offset=dissect_gsm_map_ms_RestoreDataArg(false, tvb, offset, actx, tree, -1);
22662 break;
22663 case 58: /*sendIMSI*/
22664 offset = dissect_gsm_map_ISDN_AddressString(false, tvb, offset, actx, tree, hf_gsm_map_msisdn);
22665 break;
22666 case 59: /*processUnstructuredSS-Request*/
22667 offset=dissect_gsm_map_ss_USSD_Arg(false, tvb, offset, actx, tree, -1);
22668 break;
22669 case 60: /*unstructuredSS-Request*/
22670 offset=dissect_gsm_map_ss_USSD_Arg(false, tvb, offset, actx, tree, -1);
22671 break;
22672 case 61: /*unstructuredSS-Notify*/
22673 offset=dissect_gsm_map_ss_USSD_Arg(false, tvb, offset, actx, tree, -1);
22674 break;
22675 case 62: /*AnyTimeSubscriptionInterrogation*/
22676 offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(false, tvb, offset, actx, tree, -1);
22677 break;
22678 case 63: /*informServiceCentre*/
22679 offset=dissect_gsm_map_sm_InformServiceCentreArg(false, tvb, offset, actx, tree, -1);
22680 break;
22681 case 64: /*alertServiceCentre*/
22682 offset=dissect_gsm_map_sm_AlertServiceCentreArg(false, tvb, offset, actx, tree, -1);
22683 break;
22684 case 65: /*AnyTimeModification*/
22685 offset=dissect_gsm_map_ms_AnyTimeModificationArg(false, tvb, offset, actx, tree, -1);
22686 break;
22687 case 66: /*readyForSM*/
22688 offset=dissect_gsm_map_sm_ReadyForSM_Arg(false, tvb, offset, actx, tree, -1);
22689 break;
22690 case 67: /*purgeMS*/
22691 offset=dissect_mc_message(tvb, offset, actx, tree,
22692 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
22693 false, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
22694 true , dissect_gsm_map_ms_PurgeMS_Arg, -1);
22695 break;
22696 case 68: /*prepareHandover*/
22697 offset=dissect_mc_message(tvb, offset, actx, tree,
22698 false, NULL, -1,
22699 false, dissect_gsm_old_PrepareHO_ArgOld, -1,
22700 true, dissect_gsm_map_ms_PrepareHO_Arg, -1);
22701 break;
22702 case 69: /*prepareSubsequentHandover*/
22703 offset=dissect_mc_message(tvb, offset, actx, tree,
22704 false, NULL, -1,
22705 false, NULL, -1,
22706 true, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
22707 break;
22708 case 70: /*provideSubscriberInfo*/
22709 offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(false, tvb, offset, actx, tree, -1);
22710 break;
22711 case 71: /*anyTimeInterrogation*/
22712 offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(false, tvb, offset, actx, tree, -1);
22713 break;
22714 case 72: /*ss-InvocationNotification*/
22715 offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(false, tvb, offset, actx, tree, -1);
22716 break;
22717 case 73: /*setReportingState*/
22718 offset=dissect_gsm_map_ch_SetReportingStateArg(false, tvb, offset, actx, tree, -1);
22719 break;
22720 case 74: /*statusReport*/
22721 offset=dissect_gsm_map_ch_StatusReportArg(false, tvb, offset, actx, tree, -1);
22722 break;
22723 case 75: /*remoteUserFree*/
22724 offset=dissect_gsm_map_ch_RemoteUserFreeArg(false, tvb, offset, actx, tree, -1);
22725 break;
22726 case 76: /*registerCC-Entry*/
22727 offset=dissect_gsm_map_ss_RegisterCC_EntryArg(false, tvb, offset, actx, tree, -1);
22728 break;
22729 case 77: /*eraseCC-Entry*/
22730 offset=dissect_gsm_map_ss_EraseCC_EntryArg(false, tvb, offset, actx, tree, -1);
22731 break;
22732 case 78: /*secureTransportClass1*/
22733 case 79: /*secureTransportClass1*/
22734 case 80: /*secureTransportClass1*/
22735 case 81: /*secureTransportClass1*/
22736 offset=dissect_gsm_old_SecureTransportArg(false, tvb, offset, actx, tree, -1);
22737 break;
22738 /* undefined 82 */
22739 case 83: /*provideSubscriberLocation*/
22740 offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(false, tvb, offset, actx, tree, -1);
22741 break;
22742 case 84: /*sendGroupCallInfo*/
22743 offset=dissect_gsm_map_gr_SendGroupCallInfoArg(false, tvb, offset, actx, tree, -1);
22744 break;
22745 case 85: /*sendRoutingInfoForLCS*/
22746 offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(false, tvb, offset, actx, tree, -1);
22747 break;
22748 case 86: /*subscriberLocationReport*/
22749 offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(false, tvb, offset, actx, tree, -1);
22750 break;
22751 case 87: /*ist-Alert*/
22752 offset=dissect_gsm_map_ch_IST_AlertArg(false, tvb, offset, actx, tree, -1);
22753 break;
22754 case 88: /*ist-Command*/
22755 offset=dissect_gsm_map_ch_IST_CommandArg(false, tvb, offset, actx, tree, -1);
22756 break;
22757 case 89: /*noteMM-Event*/
22758 offset=dissect_gsm_map_ms_NoteMM_EventArg(false, tvb, offset, actx, tree, -1);
22759 break;
22760 case 108: /*SS-protocol lcs-PeriodicTriggeredInvoke*/
22761 offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(false, tvb, offset, actx, tree, -1);
22762 break;
22763 case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
22764 offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(false, tvb, offset, actx, tree, -1);
22765 break;
22766 case 110: /*SS-protocol lcs-LocationUpdate*/
22767 offset=dissect_gsm_ss_LCS_LocationUpdateArg(false, tvb, offset, actx, tree, -1);
22768 break;
22769 case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
22770 offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(false, tvb, offset, actx, tree, -1);
22771 break;
22772 case 112: /*SS-protocol lcs-AreaEventCancellation*/
22773 offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(false, tvb, offset, actx, tree, -1);
22774 break;
22775 case 113: /*SS-protocol lcs-AreaEventReport*/
22776 offset=dissect_gsm_ss_LCS_AreaEventReportArg(false, tvb, offset, actx, tree, -1);
22777 break;
22778 case 114: /*SS-protocol lcs-AreaEventRequest*/
22779 offset=dissect_gsm_ss_LCS_AreaEventRequestArg(false, tvb, offset, actx, tree, -1);
22780 break;
22781 case 115: /*SS-protocol lcs-MOLR*/
22782 offset=dissect_gsm_ss_LCS_MOLRArg(false, tvb, offset, actx, tree, -1);
22783 break;
22784 case 116: /*SS-protocol lcs-LocationNotification*/
22785 offset=dissect_gsm_ss_LocationNotificationArg(false, tvb, offset, actx, tree, -1);
22786 break;
22787 case 117: /*SS-protocol callDeflection*/
22788 offset=dissect_gsm_ss_CallDeflectionArg(false, tvb, offset, actx, tree, -1);
22789 break;
22790 case 118: /*SS-protocol userUserService*/
22791 offset=dissect_gsm_ss_UserUserServiceArg(false, tvb, offset, actx, tree, -1);
22792 break;
22793 case 119: /*SS-protocol accessRegisterCCEntry*/
22794 offset=dissect_gsm_ss_AccessRegisterCCEntryArg(false, tvb, offset, actx, tree, -1);
22795 break;
22796 case 120: /*SS-protocol forwardCUG-Info*/
22797 application_context_version = 3;
22798 offset=dissect_gsm_ss_ForwardCUG_InfoArg(false, tvb, offset, actx, tree, -1);
22799 break;
22800 case 121: /*SS-protocol splitMPTY no Argument*/
22801 break;
22802 case 122: /*SS-protocol retrieveMPTY no Argument*/
22803 break;
22804 case 123: /*SS-protocol holdMPTY no Argument*/
22805 break;
22806 case 124: /*SS-protocol buildMPTY no Argument*/
22807 break;
22808 case 125: /*SS-protocol forwardChargeAdvice*/
22809 offset=dissect_gsm_ss_ForwardChargeAdviceArg(false, tvb, offset, actx, tree, -1);
22810 break;
22811 case 126: /*SS-protocol explicitCT no Argument*/
22812 break;
22813 default:
22814 if(!dissector_try_uint_new(map_prop_arg_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
22815 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
22816 tvb, offset, -1, "Unknown invokeData %d", opcode);
22818 offset+= tvb_reported_length_remaining(tvb,offset);
22819 break;
22821 return offset;
22825 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
22827 switch(opcode){
22828 case 2: /*updateLocation*/
22829 offset=dissect_mc_message(tvb, offset, actx, tree,
22830 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
22831 false, dissect_gsm_map_ms_UpdateLocationRes, -1,
22832 true , NULL, -1);
22833 break;
22834 case 3: /*cancelLocation*/
22835 offset=dissect_gsm_map_ms_CancelLocationRes(false, tvb, offset, actx, tree, -1);
22836 break;
22837 case 4: /*provideRoamingNumber*/
22838 offset=dissect_mc_message(tvb, offset, actx, tree,
22839 false, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn,
22840 false, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1,
22841 true , NULL, -1);/*undefined*/
22842 break;
22843 case 5: /*noteSubscriberDataModified*/
22844 offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(false, tvb, offset, actx, tree, -1);
22845 break;
22846 case 6: /*resumeCallHandling*/
22847 offset=dissect_gsm_map_ch_ResumeCallHandlingRes(false, tvb, offset, actx, tree, -1);
22848 break;
22849 case 7: /*insertSubscriberData*/
22850 offset=dissect_gsm_map_ms_InsertSubscriberDataRes(false, tvb, offset, actx, tree, -1);
22851 break;
22852 case 8: /*deleteSubscriberData*/
22853 offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(false, tvb, offset, actx, tree, -1);
22854 break;
22855 case 9: /*sendParameters*/
22856 offset = dissect_gsm_old_SentParameterList(false, tvb, offset, actx, tree, -1);
22857 break;
22858 case 10: /*registerSS*/
22859 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
22860 break;
22861 case 11: /*eraseSS*/
22862 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
22863 break;
22864 case 12: /*activateSS*/
22865 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
22866 break;
22867 case 13: /*deactivateSS*/
22868 offset=dissect_gsm_map_ss_SS_Info(false, tvb, offset, actx, tree, -1);
22869 break;
22870 case 14: /*interrogateSS*/
22871 offset=dissect_gsm_map_ss_InterrogateSS_Res(false, tvb, offset, actx, tree, -1);
22872 break;
22873 case 15: /*authenticationFailureReport*/
22874 offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(false, tvb, offset, actx, tree, -1);
22875 break;
22876 case 17: /*registerPassword*/
22877 /* change hf_gsm_map_ss_Code to something with password */
22878 offset=dissect_gsm_old_NewPassword(false, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
22879 break;
22880 case 18: /*getPassword*/
22881 offset=dissect_gsm_old_CurrentPassword(false, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
22882 break;
22883 case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
22884 offset=dissect_gsm_ss_SS_UserData(false, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
22885 break;
22886 case 20: /*releaseResources*/
22887 offset=dissect_gsm_map_ch_ReleaseResourcesRes(false, tvb, offset, actx, tree, -1);
22888 break;
22889 case 21: /*mt-ForwardSM-VGCS*/
22890 offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(false, tvb, offset, actx, tree, -1);
22891 break;
22892 case 22: /*sendRoutingInfo*/
22893 if (application_context_version == 3){
22894 /* If the tag is missing use SendRoutingInfoRes_U */
22895 offset=dissect_mc_message(tvb, offset, actx, tree,
22896 false, NULL, -1,
22897 false, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
22898 true , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
22899 }else{
22900 offset=dissect_mc_message(tvb, offset, actx, tree,
22901 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
22902 false, dissect_gsm_old_SendRoutingInfoResV2, -1,
22903 true , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
22905 break;
22906 case 23: /*updateGprsLocation*/
22907 offset=dissect_gsm_map_ms_UpdateGprsLocationRes(false, tvb, offset, actx, tree, -1);
22908 break;
22909 case 24: /*sendRoutingInfoForGprs*/
22910 offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(false, tvb, offset, actx, tree, -1);
22911 break;
22912 case 25: /*failureReport*/
22913 offset=dissect_gsm_map_ms_FailureReportRes(false, tvb, offset, actx, tree, -1);
22914 break;
22915 case 26: /*noteMsPresentForGprs*/
22916 offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(false, tvb, offset, actx, tree, -1);
22917 break;
22918 case 29: /*sendEndSignal*/
22919 /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
22920 * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
22922 offset=dissect_gsm_map_ms_SendEndSignal_Res(false, tvb, offset, actx, tree, -1);
22923 break;
22924 case 31: /*provideSIWFSNumber*/
22925 offset=dissect_gsm_old_ProvideSIWFSNumberRes(false, tvb, offset, actx, tree, -1);
22926 break;
22927 case 32: /*provideSIWFSSignallingModify*/
22928 offset=dissect_gsm_old_SIWFSSignallingModifyRes(false, tvb, offset, actx, tree, -1);
22929 break;
22930 case 36: /*cancelVcsgLocation*/
22931 offset=dissect_gsm_map_ms_CancelVcsgLocationRes(false, tvb, offset, actx, tree, -1);
22932 break;
22933 case 39: /*prepareGroupCall*/
22934 offset=dissect_gsm_map_gr_PrepareGroupCallRes(false, tvb, offset, actx, tree, -1);
22935 break;
22936 case 40: /*sendGroupCallEndSignal*/
22937 offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(false, tvb, offset, actx, tree, -1);
22938 break;
22939 case 43: /*checkIMEI*/
22940 offset=dissect_mc_message(tvb, offset, actx, tree,
22941 false, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
22942 false, dissect_gsm_map_ms_CheckIMEI_Res, -1,
22943 true, NULL, -1);
22944 break;
22945 case 44: /*mt-forwardSM*/
22946 offset=dissect_gsm_map_sm_MT_ForwardSM_Res(false, tvb, offset, actx, tree, -1);
22947 break;
22948 case 45: /*sendRoutingInfoForSM*/
22949 if (application_context_version < 3) {
22950 offset=dissect_gsm_old_RoutingInfoForSM_ResV2(false, tvb, offset, actx, tree, -1);
22951 } else {
22952 offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(false, tvb, offset, actx, tree, -1);
22954 break;
22955 case 46: /*mo-forwardSM*/
22956 offset=dissect_gsm_map_sm_MO_ForwardSM_Res(false, tvb, offset, actx, tree, -1);
22957 break;
22958 case 47: /*reportSM-DeliveryStatus*/
22959 offset=dissect_mc_message(tvb, offset, actx, tree,
22960 false, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN,
22961 false, dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1,
22962 false, NULL, -1);/*undefined*/
22963 break;
22964 case 48: /*noteSubscriberPresent*/
22965 break;
22966 case 50: /*activateTraceMode*/
22967 offset=dissect_gsm_map_om_ActivateTraceModeRes(false, tvb, offset, actx, tree, -1);
22968 break;
22969 case 51: /*deactivateTraceMode*/
22970 offset=dissect_gsm_map_om_DeactivateTraceModeRes(false, tvb, offset, actx, tree, -1);
22971 break;
22972 case 53: /* UpdateVcsgLocation 53 */
22973 offset=dissect_gsm_map_ms_UpdateVcsgLocationRes(false, tvb, offset, actx, tree, -1);
22974 break;
22975 case 55: /*sendIdentification */
22976 offset=dissect_mc_message(tvb, offset, actx, tree,
22977 false, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
22978 false, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
22979 true, dissect_gsm_map_ms_SendIdentificationRes, -1);
22980 break;
22981 case 56: /*sendAuthenticationInfo*/
22982 offset=dissect_mc_message(tvb, offset, actx, tree,
22983 false, NULL, -1,
22984 false, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
22985 true , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
22986 break;
22987 case 57: /*restoreData*/
22988 offset=dissect_gsm_map_ms_RestoreDataRes(false, tvb, offset, actx, tree, -1);
22989 break;
22990 case 58: /*sendIMSI*/
22991 offset=dissect_gsm_map_IMSI(false, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
22992 break;
22993 case 59: /*unstructuredSS-Request*/
22994 offset=dissect_gsm_map_ss_USSD_Res(false, tvb, offset, actx, tree, -1);
22995 break;
22996 case 60: /*unstructuredSS-Request*/
22997 offset=dissect_gsm_map_ss_USSD_Res(false, tvb, offset, actx, tree, -1);
22998 break;
22999 case 61: /*unstructuredSS-Notify*/
23000 /* true ? */
23001 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown returnResultData blob");
23002 break;
23003 case 62: /*AnyTimeSubscriptionInterrogation*/
23004 offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(false, tvb, offset, actx, tree, -1);
23005 break;
23006 case 64: /*alertServiceCentre*/
23007 /* true */
23008 break;
23009 case 65: /*AnyTimeModification*/
23010 offset=dissect_gsm_map_ms_AnyTimeModificationRes(false, tvb, offset, actx, tree, -1);
23011 break;
23012 case 66: /*readyForSM*/
23013 offset=dissect_gsm_map_sm_ReadyForSM_Res(false, tvb, offset, actx, tree, -1);
23014 break;
23015 case 67: /*purgeMS*/
23016 offset=dissect_gsm_map_ms_PurgeMS_Res(false, tvb, offset, actx, tree, -1);
23017 break;
23018 case 68: /*prepareHandover*/
23019 offset=dissect_mc_message(tvb, offset, actx, tree,
23020 false, NULL, -1,
23021 false, dissect_gsm_old_PrepareHO_ResOld, -1,
23022 true , dissect_gsm_map_ms_PrepareHO_Res, -1);
23023 break;
23024 case 69: /*prepareSubsequentHandover*/
23025 offset=dissect_mc_message(tvb, offset, actx, tree,
23026 false, NULL, -1,
23027 false, NULL, -1,
23028 true , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
23029 break;
23030 case 70: /*provideSubscriberInfo*/
23031 offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(false, tvb, offset, actx, tree, -1);
23032 break;
23033 case 71: /*anyTimeInterrogation*/
23034 offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(false, tvb, offset, actx, tree, -1);
23035 break;
23036 case 72: /*ss-InvocationNotification*/
23037 offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(false, tvb, offset, actx, tree, -1);
23038 break;
23039 case 73: /*setReportingState*/
23040 offset=dissect_gsm_map_ch_SetReportingStateRes(false, tvb, offset, actx, tree, -1);
23041 break;
23042 case 74: /*statusReport*/
23043 offset=dissect_gsm_map_ch_StatusReportRes(false, tvb, offset, actx, tree, -1);
23044 break;
23045 case 75: /*remoteUserFree*/
23046 offset=dissect_gsm_map_ch_RemoteUserFreeRes(false, tvb, offset, actx, tree, -1);
23047 break;
23048 case 76: /*registerCC-Entry*/
23049 offset=dissect_gsm_map_ss_RegisterCC_EntryRes(false, tvb, offset, actx, tree, -1);
23050 break;
23051 case 77: /*eraseCC-Entry*/
23052 offset=dissect_gsm_map_ss_EraseCC_EntryRes(false, tvb, offset, actx, tree, -1);
23053 break;
23054 case 78: /*secureTransportClass1*/
23055 case 79: /*secureTransportClass2*/
23056 case 80: /*secureTransportClass3*/
23057 case 81: /*secureTransportClass4*/
23058 offset=dissect_gsm_old_SecureTransportRes(false, tvb, offset, actx, tree, -1);
23059 break;
23060 case 83: /*provideSubscriberLocation*/
23061 offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(false, tvb, offset, actx, tree, -1);
23062 break;
23063 case 84: /*sendGroupCallInfo*/
23064 offset=dissect_gsm_map_gr_SendGroupCallInfoRes(false, tvb, offset, actx, tree, -1);
23065 break;
23066 case 85: /*sendRoutingInfoForLCS*/
23067 offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(false, tvb, offset, actx, tree, -1);
23068 break;
23069 case 86: /*subscriberLocationReport*/
23070 offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(false, tvb, offset, actx, tree, -1);
23071 break;
23072 case 87: /*ist-Alert*/
23073 offset=dissect_gsm_map_ch_IST_AlertRes(false, tvb, offset, actx, tree, -1);
23074 break;
23075 case 88: /*ist-Command*/
23076 offset=dissect_gsm_map_ch_IST_CommandRes(false, tvb, offset, actx, tree, -1);
23077 break;
23078 case 89: /*noteMM-Event*/
23079 offset=dissect_gsm_map_ms_NoteMM_EventRes(false, tvb, offset, actx, tree, -1);
23080 break;
23081 case 108: /*SS-protocol LCS-PeriodicTriggeredInvokeRes*/
23082 offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(false, tvb, offset, actx, tree, -1);
23083 break;
23084 case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
23085 /* No parameter */
23086 break;
23087 case 110: /*SS-protocol lcs-LocationUpdate*/
23088 offset=dissect_gsm_ss_LCS_LocationUpdateRes(false, tvb, offset, actx, tree, -1);
23089 break;
23090 case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
23091 offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(false, tvb, offset, actx, tree, -1);
23092 break;
23093 case 112: /*SS-protocol lcs-AreaEventCancellation*/
23094 break;
23095 case 113: /*SS-protocol lcs-AreaEventReport*/
23096 break;
23097 case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
23098 break;
23099 case 115: /*SS-protocol lcs-MOLR*/
23100 offset=dissect_gsm_ss_LCS_MOLRRes(false, tvb, offset, actx, tree, -1);
23101 break;
23102 case 116: /*SS-protocol lcs-LocationNotification*/
23103 offset=dissect_gsm_ss_LocationNotificationRes(false, tvb, offset, actx, tree, -1);
23104 break;
23105 case 117: /*SS-protocol callDeflection no RESULT*/
23106 break;
23107 case 118: /*SS-protocol userUserService no RESULT*/
23108 break;
23109 case 119: /*SS-protocol accessRegisterCCEntry*/
23110 offset=dissect_gsm_map_ss_RegisterCC_EntryRes(false, tvb, offset, actx, tree, -1);
23111 break;
23112 case 120: /*SS-protocol forwardCUG-Info*/
23113 /* No RETURN RESULT*/
23114 break;
23115 case 121: /*SS-protocol splitMPTY no RESULT*/
23116 break;
23117 case 122: /*SS-protocol retrieveMPTY no RESULT*/
23118 break;
23119 case 123: /*SS-protocol holdMPTY no RESULT*/
23120 break;
23121 case 124: /*SS-protocol buildMPTY no RESULT*/
23122 break;
23123 case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
23124 break;
23125 case 126: /*SS-protocol explicitCT no RESULT*/
23126 break;
23128 default:
23129 if(!dissector_try_uint_new(map_prop_res_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
23130 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
23131 tvb, offset, -1, "Unknown returnResultData %d", opcode);
23133 offset+= tvb_reported_length_remaining(tvb,offset);
23134 break;
23136 return offset;
23141 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
23143 switch(errorCode){
23144 case 1: /* UnknownSubscriberParam */
23145 offset=dissect_gsm_map_er_UnknownSubscriberParam(false, tvb, offset, actx, tree, -1);
23146 break;
23147 case 4: /* SecureTransportErrorParam */
23148 offset=dissect_gsm_old_SecureTransportErrorParam(false, tvb, offset, actx, tree, -1);
23149 break;
23150 case 5: /* UnidentifiedSubParam */
23151 offset=dissect_gsm_map_er_UnidentifiedSubParam(false, tvb, offset, actx, tree, -1);
23152 break;
23153 case 6: /* AbsentSubscriberSM-Param */
23154 offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(false, tvb, offset, actx, tree, -1);
23155 break;
23156 case 8: /* RoamingNotAllowedParam */
23157 offset=dissect_gsm_map_er_RoamingNotAllowedParam(false, tvb, offset, actx, tree, -1);
23158 break;
23159 case 9: /* IllegalSubscriberParam */
23160 offset=dissect_gsm_map_er_IllegalSubscriberParam(false, tvb, offset, actx, tree, -1);
23161 break;
23162 case 10: /* BearerServNotProvParam */
23163 offset=dissect_gsm_map_er_BearerServNotProvParam(false, tvb, offset, actx, tree, -1);
23164 break;
23165 case 11: /* TeleservNotProvParam */
23166 offset=dissect_gsm_map_er_TeleservNotProvParam(false, tvb, offset, actx, tree, -1);
23167 break;
23168 case 12: /* IllegalEquipmentParam */
23169 offset=dissect_gsm_map_er_IllegalEquipmentParam(false, tvb, offset, actx, tree, -1);
23170 break;
23171 case 13: /* CallBarredParam */
23172 offset=dissect_gsm_map_er_CallBarredParam(false, tvb, offset, actx, tree, -1);
23173 break;
23174 case 14: /* ForwardingViolationParam */
23175 offset=dissect_gsm_map_er_ForwardingViolationParam(false, tvb, offset, actx, tree, -1);
23176 break;
23177 case 15: /* CUG-RejectParam */
23178 offset=dissect_gsm_map_er_CUG_RejectParam(false, tvb, offset, actx, tree, -1);
23179 break;
23180 case 16: /* IllegalSS-OperationParam */
23181 offset=dissect_gsm_map_er_IllegalSS_OperationParam(false, tvb, offset, actx, tree, -1);
23182 break;
23183 case 17: /* SS-ErrorStatus */
23184 offset=dissect_gsm_map_ss_SS_Status(false, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
23185 break;
23186 case 18: /* SS-NotAvailableParam */
23187 offset=dissect_gsm_map_er_SS_NotAvailableParam(false, tvb, offset, actx, tree, -1);
23188 break;
23189 case 19: /* SS-SubscriptionViolationParam */
23190 offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(false, tvb, offset, actx, tree, -1);
23191 break;
23192 case 20: /* SS-IncompatibilityCause */
23193 offset=dissect_gsm_map_er_SS_IncompatibilityCause(false, tvb, offset, actx, tree, -1);
23194 break;
23195 case 21: /* FacilityNotSupParam */
23196 offset=dissect_gsm_map_er_FacilityNotSupParam(false, tvb, offset, actx, tree, -1);
23197 break;
23198 case 22: /* OngoingGroupCallParam */
23199 offset=dissect_gsm_map_er_OngoingGroupCallParam(false, tvb, offset, actx, tree, -1);
23200 break;
23201 case 27: /* AbsentSubscriberParam */
23202 offset=dissect_gsm_map_er_AbsentSubscriberParam(false, tvb, offset, actx, tree, -1);
23203 break;
23204 case 28: /* IncompatibleTerminalParam */
23205 offset=dissect_gsm_map_er_IncompatibleTerminalParam(false, tvb, offset, actx, tree, -1);
23206 break;
23207 case 29: /* ShortTermDenialParam */
23208 offset=dissect_gsm_map_er_ShortTermDenialParam(false, tvb, offset, actx, tree, -1);
23209 break;
23210 case 30: /* LongTermDenialParam */
23211 offset=dissect_gsm_map_er_LongTermDenialParam(false, tvb, offset, actx, tree, -1);
23212 break;
23213 case 31: /* SubBusyForMT-SMS-Param */
23214 offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(false, tvb, offset, actx, tree, -1);
23215 break;
23216 case 32: /* SM-DeliveryFailureCause */
23217 offset = dissect_mc_message(tvb, offset, actx, tree,
23218 false, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause, hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
23219 false, dissect_gsm_map_er_SM_DeliveryFailureCause, -1,
23220 false, NULL, -1);
23222 break;
23223 case 33: /* MessageWaitListFullParam */
23224 offset=dissect_gsm_map_er_MessageWaitListFullParam(false, tvb, offset, actx, tree, -1);
23225 break;
23226 case 34: /* SystemFailureParam */
23227 offset=dissect_gsm_map_er_SystemFailureParam(false, tvb, offset, actx, tree, -1);
23228 break;
23229 case 35: /* DataMissingParam */
23230 offset=dissect_gsm_map_er_DataMissingParam(false, tvb, offset, actx, tree, -1);
23231 break;
23232 case 36: /* UnexpectedDataParam */
23233 offset=dissect_gsm_map_er_UnexpectedDataParam(false, tvb, offset, actx, tree, -1);
23234 break;
23235 case 37: /* PW-RegistrationFailureCause */
23236 offset=dissect_gsm_map_er_PW_RegistrationFailureCause(false, tvb, offset, actx, tree, -1);
23237 break;
23238 case 39: /* NoRoamingNbParam */
23239 offset=dissect_gsm_map_er_NoRoamingNbParam(false, tvb, offset, actx, tree, -1);
23240 break;
23241 case 40: /* TracingBufferFullParam */
23242 offset=dissect_gsm_map_er_TracingBufferFullParam(false, tvb, offset, actx, tree, -1);
23243 break;
23244 case 42: /* TargetCellOutsideGCA-Param */
23245 offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(false, tvb, offset, actx, tree, -1);
23246 break;
23247 case 44: /* NumberChangedParam */
23248 offset=dissect_gsm_map_er_NumberChangedParam(false, tvb, offset, actx, tree, -1);
23249 break;
23250 case 45: /* BusySubscriberParam */
23251 offset=dissect_gsm_map_er_BusySubscriberParam(false, tvb, offset, actx, tree, -1);
23252 break;
23253 case 46: /* NoSubscriberReplyParam */
23254 offset=dissect_gsm_map_er_NoSubscriberReplyParam(false, tvb, offset, actx, tree, -1);
23255 break;
23256 case 47: /* ForwardingFailedParam */
23257 offset=dissect_gsm_map_er_ForwardingFailedParam(false, tvb, offset, actx, tree, -1);
23258 break;
23259 case 48: /* OR-NotAllowedParam */
23260 offset=dissect_gsm_map_er_OR_NotAllowedParam(false, tvb, offset, actx, tree, -1);
23261 break;
23262 case 49: /* ATI-NotAllowedParam */
23263 offset=dissect_gsm_map_er_ATI_NotAllowedParam(false, tvb, offset, actx, tree, -1);
23264 break;
23265 case 50: /* NoGroupCallNbParam */
23266 offset=dissect_gsm_map_er_NoGroupCallNbParam(false, tvb, offset, actx, tree, -1);
23267 break;
23268 case 51: /* ResourceLimitationParam */
23269 offset=dissect_gsm_map_er_ResourceLimitationParam(false, tvb, offset, actx, tree, -1);
23270 break;
23271 case 52: /* UnauthorizedRequestingNetwork-Param */
23272 offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(false, tvb, offset, actx, tree, -1);
23273 break;
23274 case 53: /* UnauthorizedLCSClient-Param */
23275 offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(false, tvb, offset, actx, tree, -1);
23276 break;
23277 case 54: /* PositionMethodFailure-Param */
23278 offset=dissect_gsm_map_er_PositionMethodFailure_Param(false, tvb, offset, actx, tree, -1);
23279 break;
23280 case 58: /* UnknownOrUnreachableLCSClient-Param */
23281 offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(false, tvb, offset, actx, tree, -1);
23282 break;
23283 case 59: /* MM-EventNotSupported-Param */
23284 offset=dissect_gsm_map_er_MM_EventNotSupported_Param(false, tvb, offset, actx, tree, -1);
23285 break;
23286 case 60: /* ATSI-NotAllowedParam */
23287 offset=dissect_gsm_map_er_ATSI_NotAllowedParam(false, tvb, offset, actx, tree, -1);
23288 break;
23289 case 61: /* ATM-NotAllowedParam */
23290 offset=dissect_gsm_map_er_ATM_NotAllowedParam(false, tvb, offset, actx, tree, -1);
23291 break;
23292 case 62: /* InformationNotAvailableParam */
23293 offset=dissect_gsm_map_er_InformationNotAvailableParam(false, tvb, offset, actx, tree, -1);
23294 break;
23295 default:
23296 if(!dissector_try_uint_new(map_prop_err_opcode_table, (uint8_t)opcode, tvb, actx->pinfo, tree, true, actx->subtree.top_tree)){
23297 proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData,
23298 tvb, offset, -1, "Unknown returnErrorData %d", opcode);
23300 offset+= tvb_reported_length_remaining(tvb,offset);
23301 break;
23303 return offset;
23306 /* Private extension container for PLMN Data */
23307 static int dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23308 proto_tree *tree;
23309 asn1_ctx_t asn1_ctx;
23310 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23311 /* create display subtree for the protocol */
23312 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_old_PlmnContainer_U, NULL, "MAP Ext. Plmn Container");
23314 return dissect_gsm_old_PlmnContainer(false, tvb, 0, &asn1_ctx, tree, -1);
23317 static int dissect_gsm_map_ericsson_ext_ExtensionType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23318 proto_tree *tree;
23319 asn1_ctx_t asn1_ctx;
23320 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23321 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_map_ericsson_ExtensionType, NULL, "Ericsson Extension");
23322 return dissect_gsm_map_ericsson_ExtensionType(false, tvb, 0, &asn1_ctx, tree, -1);
23325 static int dissect_NokiaMAP_ext_SriResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23326 proto_tree *tree;
23327 asn1_ctx_t asn1_ctx;
23328 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23329 /* create display subtree for the protocol */
23330 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriResExtension_U, NULL, "Nokia Extension");
23331 return dissect_NokiaMAP_Extensions_SriResExtension(false, tvb, 0, &asn1_ctx, tree, -1);
23334 static int dissect_NokiaMAP_ext_CanLocArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23335 proto_tree *tree;
23336 asn1_ctx_t asn1_ctx;
23337 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23338 /* create display subtree for the protocol */
23339 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_CanLocArgExt_U, NULL, "Nokia Extension");
23341 return dissect_NokiaMAP_Extensions_CanLocArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23344 static int dissect_NokiaMAP_ext_ATMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23345 proto_tree *tree;
23346 asn1_ctx_t asn1_ctx;
23347 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23348 /* create display subtree for the protocol */
23349 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMargExt_U, NULL, "Nokia Extension");
23351 return dissect_NokiaMAP_Extensions_ATMargExt(false, tvb, 0, &asn1_ctx, tree, -1);
23354 static int dissect_NokiaMAP_ext_DTMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23355 proto_tree *tree;
23356 asn1_ctx_t asn1_ctx;
23357 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23358 /* create display subtree for the protocol */
23359 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DTMargExt_U, NULL, "Nokia Extension");
23361 return dissect_NokiaMAP_Extensions_DTMargExt(false, tvb, 0, &asn1_ctx, tree, -1);
23364 static int dissect_NokiaMAP_ext_NumberPorted(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23365 asn1_ctx_t asn1_ctx;
23366 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23368 return dissect_NokiaMAP_Extensions_NumberPorted(false, tvb, 0, &asn1_ctx, parent_tree, -1);
23371 static int dissect_NokiaMAP_ext_ATMresExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23372 proto_tree *tree;
23373 asn1_ctx_t asn1_ctx;
23374 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23375 /* create display subtree for the protocol */
23376 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMresExt_U, NULL, "Nokia Extension");
23378 return dissect_NokiaMAP_Extensions_ATMresExt(false, tvb, 0, &asn1_ctx, tree, -1);
23381 static int dissect_NokiaMAP_ext_AbsentSubscriberExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23382 asn1_ctx_t asn1_ctx;
23384 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23385 return dissect_NokiaMAP_Extensions_AbsentSubscriberExt(false, tvb, 0, &asn1_ctx, parent_tree, -1);
23388 static int dissect_NokiaMAP_ext_SriForSMArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23389 proto_tree *tree;
23390 asn1_ctx_t asn1_ctx;
23391 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23392 /* create display subtree for the protocol */
23393 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriForSMArgExt_U, NULL, "Nokia Extension");
23395 return dissect_NokiaMAP_Extensions_SriForSMArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23398 static int dissect_NokiaMAP_ext_ReportSMDelStatArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23399 proto_tree *tree;
23400 asn1_ctx_t asn1_ctx;
23401 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23402 /* create display subtree for the protocol */
23403 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U, NULL, "Nokia Extension");
23405 return dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23408 static int dissect_NokiaMAP_ext_UdlArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23409 proto_tree *tree;
23410 asn1_ctx_t asn1_ctx;
23411 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23412 /* create display subtree for the protocol */
23413 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UdlArgExt_U, NULL, "Nokia Extension");
23415 return dissect_NokiaMAP_Extensions_UdlArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23418 static int dissect_NokiaMAP_ext_RoamNotAllowedExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23419 proto_tree *tree;
23420 asn1_ctx_t asn1_ctx;
23421 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23422 /* create display subtree for the protocol */
23423 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U, NULL, "Nokia Extension");
23425 return dissect_NokiaMAP_Extensions_RoamNotAllowedExt(false, tvb, 0, &asn1_ctx, tree, -1);
23428 static int dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23429 proto_tree *tree;
23430 asn1_ctx_t asn1_ctx;
23431 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23432 /* create display subtree for the protocol */
23433 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U, NULL, "Nokia Extension");
23435 return dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23438 static int dissect_NokiaMAP_ext_ErrOlcmInfoTableExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23439 proto_tree *tree;
23440 asn1_ctx_t asn1_ctx;
23441 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23442 /* create display subtree for the protocol */
23443 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U, NULL, "Nokia Extension");
23445 return dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt(false, tvb, 0, &asn1_ctx, tree, -1);
23448 static int dissect_NokiaMAP_ext_RoutingCategoryExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23449 proto_tree *tree;
23450 asn1_ctx_t asn1_ctx;
23451 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23452 /* create display subtree for the protocol */
23453 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoutingCategoryExt_U, NULL, "Nokia Extension");
23455 return dissect_NokiaMAP_Extensions_RoutingCategoryExt(false, tvb, 0, &asn1_ctx, tree, -1);
23458 static int dissect_NokiaMAP_ext_AnyTimeModArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23459 proto_tree *tree;
23460 asn1_ctx_t asn1_ctx;
23461 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23462 /* create display subtree for the protocol */
23463 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U, NULL, "Nokia Extension");
23465 return dissect_NokiaMAP_Extensions_AnyTimeModArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23468 static int dissect_NokiaMAP_ext_AccessTypeExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23469 asn1_ctx_t asn1_ctx;
23470 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23471 /* create display subtree for the protocol */
23472 return dissect_NokiaMAP_Extensions_AccessTypeExt(false, tvb, 0, &asn1_ctx, parent_tree, -1);
23475 static int dissect_NokiaMAP_ext_AccessSubscriptionListExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23476 asn1_ctx_t asn1_ctx;
23477 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23478 /* create display subtree for the protocol */
23479 return dissect_NokiaMAP_Extensions_AccessSubscriptionListExt(false, tvb, 0, &asn1_ctx, parent_tree, -1);
23482 static int dissect_NokiaMAP_ext_AllowedServiceData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23483 asn1_ctx_t asn1_ctx;
23484 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23485 /* create display subtree for the protocol */
23486 return dissect_NokiaMAP_Extensions_AllowedServiceData(false, tvb, 0, &asn1_ctx, parent_tree, -1);
23489 static int dissect_NokiaMAP_ext_SriExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23490 proto_tree *tree;
23491 asn1_ctx_t asn1_ctx;
23492 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23493 /* create display subtree for the protocol */
23494 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriExtension_U, NULL, "Nokia Extension");
23496 return dissect_NokiaMAP_Extensions_SriExtension(false, tvb, 0, &asn1_ctx, tree, -1);
23499 static int dissect_NokiaMAP_ExtraSignalInfo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23500 proto_tree *tree;
23501 asn1_ctx_t asn1_ctx;
23502 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23503 /* create display subtree for the protocol */
23504 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ExtraSignalInfo_U, NULL, "Nokia Extension");
23506 return dissect_NokiaMAP_Extensions_ExtraSignalInfo(false, tvb, 0, &asn1_ctx, tree, -1);
23509 static int dissect_NokiaMAP_ext_SS_DataExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23510 proto_tree *tree;
23511 asn1_ctx_t asn1_ctx;
23512 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23513 /* create display subtree for the protocol */
23514 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SS_DataExtension_U, NULL, "Nokia Extension");
23516 return dissect_NokiaMAP_Extensions_SS_DataExtension(false, tvb, 0, &asn1_ctx, tree, -1);
23519 static int dissect_NokiaMAP_ext_HOExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23520 proto_tree *tree;
23521 asn1_ctx_t asn1_ctx;
23522 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23523 /* create display subtree for the protocol */
23524 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_HO_Ext_U, NULL, "Nokia Extension");
23526 return dissect_NokiaMAP_Extensions_HO_Ext(false, tvb, 0, &asn1_ctx, tree, -1);
23529 static int dissect_NokiaMAP_ext_UlResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23530 proto_tree *tree;
23531 asn1_ctx_t asn1_ctx;
23532 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23533 /* create display subtree for the protocol */
23534 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UlResExt_U, NULL, "Nokia Extension");
23536 return dissect_NokiaMAP_Extensions_UlResExt(false, tvb, 0, &asn1_ctx, tree, -1);
23540 static int dissect_NokiaMAP_ext_IsdArgExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23541 proto_tree *tree;
23542 asn1_ctx_t asn1_ctx;
23543 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23544 /* create display subtree for the protocol */
23545 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_IsdArgExt_U, NULL, "Nokia Extension");
23547 return dissect_NokiaMAP_Extensions_IsdArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23550 static int dissect_NokiaMAP_ext_DsdArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
23551 proto_tree *tree;
23552 asn1_ctx_t asn1_ctx;
23553 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23554 /* create display subtree for the protocol */
23555 tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DsdArgExt_U, NULL, "Nokia Extension");
23557 return dissect_NokiaMAP_Extensions_DsdArgExt(false, tvb, 0, &asn1_ctx, tree, -1);
23560 static int
23561 dissect_gsm_map_GSMMAPPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
23562 asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
23564 char *version_ptr;
23566 opcode = 0;
23567 application_context_version = pref_application_context_version;
23568 if (pref_context_version_from_trace == true) {
23569 gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr;
23570 if (gsm_map_priv && gsm_map_priv->tcap_private != NULL){
23571 if (gsm_map_priv->tcap_private->acv==true ){
23572 version_ptr = strrchr((const char*)gsm_map_priv->tcap_private->oid,'.');
23573 if (version_ptr){
23574 ws_strtoi32(version_ptr + 1, NULL, &application_context_version);
23580 gsmmap_pdu_type = tvb_get_uint8(tvb, offset)&0x0f;
23581 /* Get the length and add 2 */
23582 gsm_map_pdu_size = tvb_get_uint8(tvb, offset+1)+2;
23584 col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP Component"));
23585 col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
23586 offset = dissect_gsm_old_Component(false, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
23588 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
23589 GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
23592 return offset;
23595 static int
23596 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
23598 proto_item *item=NULL;
23599 proto_tree *tree=NULL;
23600 /* Used for gsm_map TAP */
23601 static gsm_map_tap_rec_t tap_rec;
23602 int op_idx;
23603 asn1_ctx_t asn1_ctx;
23604 gsm_map_private_info_t *gsm_map_priv;
23606 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23608 col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
23610 asn1_ctx.subtree.top_tree = parent_tree;
23612 gsm_map_priv = wmem_new0(pinfo->pool, gsm_map_private_info_t);
23613 gsm_map_priv->tcap_private = (struct tcap_private_t *)data;
23614 asn1_ctx.value_ptr = gsm_map_priv;
23616 /* create display subtree for the protocol */
23617 item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
23618 tree = proto_item_add_subtree(item, ett_gsm_map);
23620 dissect_gsm_map_GSMMAPPDU(false, tvb, 0, &asn1_ctx, tree, -1);
23621 try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
23623 if (op_idx != -1) {
23624 tap_rec.invoke = (gsmmap_pdu_type == 1) ? true : false;
23625 tap_rec.opcode = opcode;
23626 tap_rec.size = gsm_map_pdu_size;
23628 tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
23631 return tvb_captured_length(tvb);
23634 static int
23635 dissect_gsm_map_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
23637 proto_item *item=NULL;
23638 proto_tree *tree=NULL;
23639 /* Used for gsm_map TAP */
23640 static gsm_map_tap_rec_t tap_rec;
23641 int op_idx;
23642 asn1_ctx_t asn1_ctx;
23643 gsm_map_private_info_t *gsm_map_priv;
23645 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
23647 col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
23649 asn1_ctx.subtree.top_tree = parent_tree;
23651 gsm_map_priv = wmem_new0(pinfo->pool, gsm_map_private_info_t);
23652 gsm_map_priv->sccp_msg_info = (sccp_msg_info_t *)data;
23653 asn1_ctx.value_ptr = gsm_map_priv;
23655 /* create display subtree for the protocol */
23656 item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
23657 tree = proto_item_add_subtree(item, ett_gsm_map);
23659 dissect_gsm_map_GSMMAPPDU(false, tvb, 0, &asn1_ctx, tree, -1);
23660 try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
23662 if (op_idx != -1) {
23663 tap_rec.invoke = (gsmmap_pdu_type == 1) ? true : false;
23664 tap_rec.opcode = opcode;
23665 tap_rec.size = gsm_map_pdu_size;
23667 tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
23670 return tvb_captured_length(tvb);
23673 const value_string ssCode_vals[] = {
23674 { 0x00, "allSS - all SS" },
23675 { 0x10 ,"allLineIdentificationSS - all line identification SS" },
23676 { 0x11 ,"clip - calling line identification presentation" },
23677 { 0x12 ,"clir - calling line identification restriction" },
23678 { 0x13 ,"colp - connected line identification presentation" },
23679 { 0x14 ,"colr - connected line identification restriction" },
23680 { 0x15 ,"mci - malicious call identification" },
23681 { 0x18 ,"allNameIdentificationSS - all name identification SS" },
23682 { 0x19 ,"cnap - calling name presentation" },
23683 { 0x20 ,"allForwardingSS - all forwarding SS" },
23684 { 0x21 ,"cfu - call forwarding unconditional" },
23685 { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
23686 { 0x29 ,"cfb - call forwarding busy" },
23687 { 0x2a ,"cfnry - call forwarding on no reply" },
23688 { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
23689 { 0x24 ,"cd - call deflection" },
23690 { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
23691 { 0x31 ,"ect - explicit call transfer" },
23692 { 0x32 ,"mah - mobile access hunting" },
23693 { 0x40 ,"allCallCompletionSS - all Call completion SS" },
23694 { 0x41 ,"cw - call waiting" },
23695 { 0x42 ,"hold - call hold" },
23696 { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
23697 { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
23698 { 0x45 ,"mc - multicall" },
23699 { 0x50 ,"allMultiPartySS - all multiparty SS" },
23700 { 0x51 ,"multiPTY - multiparty" },
23701 { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
23702 { 0x61 ,"cug - closed user group" },
23703 { 0x70 ,"allChargingSS - all charging SS" },
23704 { 0x71 ,"aoci - advice of charge information" },
23705 { 0x72 ,"aocc - advice of charge charging" },
23706 { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
23707 { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
23708 { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
23709 { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
23710 { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
23711 { 0x91 ,"barringOfOutgoingCalls" },
23712 { 0x92 ,"baoc - barring of all outgoing calls" },
23713 { 0x93 ,"boic - barring of outgoing international calls" },
23714 { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
23715 { 0x99 ,"barringOfIncomingCalls" },
23716 { 0x9a ,"baic - barring of all incoming calls" },
23717 { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
23718 { 0xf0 ,"allPLMN-specificSS" },
23719 { 0xa0 ,"allCallPrioritySS - all call priority SS" },
23720 { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
23721 { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
23722 { 0xb1 ,"universal - allow location by any LCS client" },
23723 { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
23724 { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
23725 { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
23726 { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
23727 { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
23728 { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
23729 { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
23730 { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
23732 { 0xf1 ,"plmn-specificSS-1" },
23733 { 0xf2 ,"plmn-specificSS-2" },
23734 { 0xf3 ,"plmn-specificSS-3" },
23735 { 0xf4 ,"plmn-specificSS-4" },
23736 { 0xf5 ,"plmn-specificSS-5" },
23737 { 0xf6 ,"plmn-specificSS-6" },
23738 { 0xf7 ,"plmn-specificSS-7" },
23739 { 0xf8 ,"plmn-specificSS-8" },
23740 { 0xf9 ,"plmn-specificSS-9" },
23741 { 0xfa ,"plmn-specificSS-a" },
23742 { 0xfb ,"plmn-specificSS-b" },
23743 { 0xfc ,"plmn-specificSS-c" },
23744 { 0xfd ,"plmn-specificSS-d" },
23745 { 0xfe ,"plmn-specificSS-e" },
23746 { 0xff ,"plmn-specificSS-f" },
23747 { 0, NULL }
23750 static const value_string Teleservice_vals[] = {
23751 { 0x00, "allTeleservices" },
23752 { 0x10, "allSpeechTransmissionServices" },
23753 { 0x11, "telephony" },
23754 { 0x12, "emergencyCalls" },
23755 { 0x20, "allShortMessageServices" },
23756 { 0x21, "shortMessageMT-PP" },
23757 { 0x22, "shortMessageMO-PP" },
23758 { 0x60, "allFacsimileTransmissionServices" },
23759 { 0x61, "facsimileGroup3AndAlterSpeech" },
23760 { 0x62, "automaticFacsimileGroup3" },
23761 { 0x63, "facsimileGroup4" },
23763 { 0x70, "allDataTeleservices" },
23764 { 0x80, "allTeleservices-ExceptSMS" },
23766 { 0x90, "allVoiceGroupCallServices" },
23767 { 0x91, "voiceGroupCall" },
23768 { 0x92, "voiceBroadcastCall" },
23770 { 0xd0, "allPLMN-specificTS" },
23771 { 0xd1, "plmn-specificTS-1" },
23772 { 0xd2, "plmn-specificTS-2" },
23773 { 0xd3, "plmn-specificTS-3" },
23774 { 0xd4, "plmn-specificTS-4" },
23775 { 0xd5, "plmn-specificTS-5" },
23776 { 0xd6, "plmn-specificTS-6" },
23777 { 0xd7, "plmn-specificTS-7" },
23778 { 0xd8, "plmn-specificTS-8" },
23779 { 0xd9, "plmn-specificTS-9" },
23780 { 0xda, "plmn-specificTS-A" },
23781 { 0xdb, "plmn-specificTS-B" },
23782 { 0xdc, "plmn-specificTS-C" },
23783 { 0xdd, "plmn-specificTS-D" },
23784 { 0xde, "plmn-specificTS-E" },
23785 { 0xdf, "plmn-specificTS-F" },
23786 { 0, NULL }
23789 static const value_string Bearerservice_vals[] = {
23790 { 0x00, "allBearerServices" },
23791 { 0x10, "allDataCDA-Services" },
23792 { 0x11, "dataCDA-300bps" },
23793 { 0x12, "dataCDA-1200bps" },
23794 { 0x13, "dataCDA-1200-75bps" },
23795 { 0x14, "dataCDA-2400bps" },
23796 { 0x15, "dataCDA-4800bps" },
23797 { 0x16, "dataCDA-9600bps" },
23798 { 0x17, "general-dataCDA" },
23800 { 0x18, "allDataCDS-Services" },
23801 { 0x1A, "dataCDS-1200bps" },
23802 { 0x1C, "dataCDS-2400bps" },
23803 { 0x1D, "dataCDS-4800bps" },
23804 { 0x1E, "dataCDS-9600bps" },
23805 { 0x1F, "general-dataCDS" },
23807 { 0x20, "allPadAccessCA-Services" },
23808 { 0x21, "padAccessCA-300bps" },
23809 { 0x22, "padAccessCA-1200bps" },
23810 { 0x23, "padAccessCA-1200-75bps" },
23811 { 0x24, "padAccessCA-2400bps" },
23812 { 0x25, "padAccessCA-4800bps" },
23813 { 0x26, "padAccessCA-9600bps" },
23814 { 0x27, "general-padAccessCA" },
23816 { 0x28, "allDataPDS-Services" },
23817 { 0x2C, "dataPDS-2400bps" },
23818 { 0x2D, "dataPDS-4800bps" },
23819 { 0x2E, "dataPDS-9600bps" },
23820 { 0x2F, "general-dataPDS" },
23822 { 0x30, "allAlternateSpeech-DataCDA" },
23823 { 0x38, "allAlternateSpeech-DataCDS" },
23824 { 0x40, "allSpeechFollowedByDataCDA" },
23825 { 0x48, "allSpeechFollowedByDataCDS" },
23827 { 0x50, "allDataCircuitAsynchronous" },
23828 { 0x60, "allAsynchronousServices" },
23829 { 0x58, "allDataCircuitSynchronous" },
23830 { 0x68, "allSynchronousServices" },
23832 { 0xD0, "allPLMN-specificBS" },
23833 { 0xD1, "plmn-specificBS-1" },
23834 { 0xD2, "plmn-specificBS-2" },
23835 { 0xD3, "plmn-specificBS-3" },
23836 { 0xD4, "plmn-specificBS-4" },
23837 { 0xD5, "plmn-specificBS-5" },
23838 { 0xD6, "plmn-specificBS-6" },
23839 { 0xD7, "plmn-specificBS-7" },
23840 { 0xD8, "plmn-specificBS-8" },
23841 { 0xD9, "plmn-specificBS-9" },
23842 { 0xDA, "plmn-specificBS-A" },
23843 { 0xDB, "plmn-specificBS-B" },
23844 { 0xDC, "plmn-specificBS-C" },
23845 { 0xDD, "plmn-specificBS-D" },
23846 { 0xDE, "plmn-specificBS-E" },
23847 { 0xDF, "plmn-specificBS-F" },
23849 { 0, NULL }
23852 /* ForwardingOptions
23854 -- bit 8: notification to forwarding party
23855 -- 0 no notification
23856 -- 1 notification
23858 static const true_false_string notification_value = {
23859 "Notification",
23860 "No notification"
23863 -- bit 7: redirecting presentation
23864 -- 0 no presentation
23865 -- 1 presentation
23867 static const true_false_string redirecting_presentation_value = {
23868 "Presentation",
23869 "No presentation"
23872 -- bit 6: notification to calling party
23873 -- 0 no notification
23874 -- 1 notification
23877 -- bit 5: 0 (unused)
23878 -- bits 43: forwarding reason
23879 -- 00 ms not reachable
23880 -- 01 ms busy
23881 -- 10 no reply
23882 -- 11 unconditional when used in a SRI Result,
23883 -- or call deflection when used in a RCH Argument
23885 static const value_string forwarding_reason_values[] = {
23886 { 0x0, "ms not reachable" },
23887 { 0x1, "ms busy" },
23888 { 0x2, "no reply" },
23889 { 0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
23890 { 0, NULL }
23893 -- bits 21: 00 (unused)
23896 static const value_string pdp_type_org_values[] = {
23897 { 0x0, "ETSI" },
23898 { 0x1, "IETF" },
23899 { 0xf, "Empty PDP type" },
23900 { 0, NULL }
23903 static const value_string etsi_pdp_type_number_values[] = {
23904 { 0x0, "Reserved, used in earlier version of this protocol" },
23905 { 0x1, "PPP" },
23906 { 0, NULL }
23909 static const value_string ietf_pdp_type_number_values[] = {
23910 { 0x21, "IPv4 Address" },
23911 { 0x57, "IPv6 Address" },
23912 { 0, NULL }
23916 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
23917 -- Octets are coded according to 3GPP TS 32.015.
23918 -- From 3GPP TS 32.015.
23920 -- Descriptions for the bits of the flag set:
23922 -- Bit 1: H (Hot billing) := '00000001'B
23923 -- Bit 2: F (Flat rate) := '00000010'B
23924 -- Bit 3: P (Prepaid service) := '00000100'B
23925 -- Bit 4: N (Normal billing) := '00001000'B
23926 -- Bit 5: - (Reserved, set to 0) := '00010000'B
23927 -- Bit 6: - (Reserved, set to 0) := '00100000'B
23928 -- Bit 7: - (Reserved, set to 0) := '01000000'B
23929 -- Bit 8: - (Reserved, set to 0) := '10000000'B
23931 static const value_string chargingcharacteristics_values[] = {
23932 { 0x1, "H (Hot billing)" },
23933 { 0x2, "F (Flat rate)" },
23934 { 0x4, "P (Prepaid service)" },
23935 { 0x8, "N (Normal billing)" },
23936 { 0, NULL }
23939 /* TAP STAT INFO */
23940 typedef enum
23942 ID_COLUMN,
23943 OP_CODE_COLUMN,
23944 INVOKES_COLUMN,
23945 NUM_BYTES_FWD_COLUMN,
23946 AVG_BYTES_FWD_COLUMN,
23947 RET_RES_COLUMN,
23948 NUM_BYTES_REV_COLUMN,
23949 AVG_BYTES_REV_COLUMN,
23950 TOT_BYTES_COLUMN,
23951 AVG_BYTES_COLUMN
23952 } gsm_a_stat_columns;
23954 static stat_tap_table_item gsm_map_stat_fields[] = {
23955 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "ID", "%d"},
23956 {TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Operation Code", "%-25s"},
23957 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Invokes", "%d"},
23958 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"},
23959 {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"},
23960 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Return Result", "%d"},
23961 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"},
23962 {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"},
23963 {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Total Bytes", "%d"},
23964 {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"},
23967 static void gsm_map_stat_init(stat_tap_table_ui* new_stat)
23969 const char *table_name = "GSM MAP Operation Statistics";
23970 int num_fields = array_length(gsm_map_stat_fields);
23971 stat_tap_table* table;
23972 unsigned i;
23973 stat_tap_table_item_type items[array_length(gsm_map_stat_fields)];
23975 memset(items, 0, sizeof(items));
23977 items[ID_COLUMN].type = TABLE_ITEM_UINT;
23978 items[OP_CODE_COLUMN].type = TABLE_ITEM_STRING;
23979 items[INVOKES_COLUMN].type = TABLE_ITEM_UINT;
23980 items[NUM_BYTES_FWD_COLUMN].type = TABLE_ITEM_UINT;
23981 items[AVG_BYTES_FWD_COLUMN].type = TABLE_ITEM_FLOAT;
23982 items[RET_RES_COLUMN].type = TABLE_ITEM_UINT;
23983 items[NUM_BYTES_REV_COLUMN].type = TABLE_ITEM_UINT;
23984 items[AVG_BYTES_REV_COLUMN].type = TABLE_ITEM_FLOAT;
23985 items[TOT_BYTES_COLUMN].type = TABLE_ITEM_UINT;
23986 items[AVG_BYTES_COLUMN].type = TABLE_ITEM_FLOAT;
23988 table = stat_tap_find_table(new_stat, table_name);
23989 if (table) {
23990 if (new_stat->stat_tap_reset_table_cb) {
23991 new_stat->stat_tap_reset_table_cb(table);
23993 return;
23996 table = stat_tap_init_table(table_name, num_fields, 0, NULL);
23997 stat_tap_add_table(new_stat, table);
23999 /* Add a row for each value type */
24000 for (i = 0; i < GSM_MAP_MAX_NUM_OPR_CODES; i++)
24002 const char *ocs = try_val_to_str(i, gsm_map_opr_code_strings);
24003 char *col_str;
24004 if (ocs) {
24005 col_str = g_strdup(ocs);
24006 } else {
24007 col_str = ws_strdup_printf("Unknown op code %d", i);
24010 items[ID_COLUMN].value.uint_value = i;
24011 items[OP_CODE_COLUMN].value.string_value = col_str;
24012 stat_tap_init_table_row(table, i, num_fields, items);
24016 static tap_packet_status
24017 gsm_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gmtr_ptr, tap_flags_t flags _U_)
24019 stat_data_t* stat_data = (stat_data_t*)tapdata;
24020 const gsm_map_tap_rec_t *gmtr = (const gsm_map_tap_rec_t *)gmtr_ptr;
24021 stat_tap_table* table;
24022 stat_tap_table_item_type *invoke_data, *fwd_bytes_data, *result_data, *rev_bytes_data, *avg_data;
24023 unsigned invokes, fwd_bytes, results, rev_bytes;
24025 table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0);
24027 invoke_data = stat_tap_get_field_data(table, gmtr->opcode, INVOKES_COLUMN);
24028 fwd_bytes_data = stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN);
24029 result_data = stat_tap_get_field_data(table, gmtr->opcode, RET_RES_COLUMN);
24030 rev_bytes_data = stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN);
24032 if (gmtr->invoke)
24034 invoke_data->value.uint_value++;
24035 stat_tap_set_field_data(table, gmtr->opcode, INVOKES_COLUMN, invoke_data);
24037 fwd_bytes_data->value.uint_value += gmtr->size;
24038 stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN, fwd_bytes_data);
24040 else
24042 result_data->value.uint_value++;
24043 stat_tap_set_field_data(table, gmtr->opcode, RET_RES_COLUMN, result_data);
24045 rev_bytes_data->value.uint_value += gmtr->size;
24046 stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN, rev_bytes_data);
24049 invokes = invoke_data->value.uint_value;
24050 fwd_bytes = fwd_bytes_data->value.uint_value;
24051 results = result_data->value.uint_value;
24052 rev_bytes = rev_bytes_data->value.uint_value;
24054 if (gmtr->invoke)
24056 avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN);
24057 avg_data->value.float_value += (float) fwd_bytes / invokes;
24058 stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN, avg_data);
24060 else
24062 avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN);
24063 avg_data->value.float_value += (float) rev_bytes / results;
24064 stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN, avg_data);
24067 avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN);
24068 avg_data->value.float_value += (float) (fwd_bytes + rev_bytes) / (invokes + results);
24069 stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN, avg_data);
24070 return TAP_PACKET_REDRAW;
24073 static void
24074 gsm_map_stat_reset(stat_tap_table* table)
24076 unsigned element;
24077 stat_tap_table_item_type* item_data;
24079 for (element = 0; element < table->num_elements; element++)
24081 item_data = stat_tap_get_field_data(table, element, INVOKES_COLUMN);
24082 item_data->value.uint_value = 0;
24083 stat_tap_set_field_data(table, element, INVOKES_COLUMN, item_data);
24087 static void
24088 gsm_map_stat_free_table_item(stat_tap_table* table _U_, unsigned row _U_, unsigned column, stat_tap_table_item_type* field_data)
24090 if (column != OP_CODE_COLUMN) return;
24091 g_free((char*)field_data->value.string_value);
24094 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
24095 static void range_delete_callback(uint32_t ssn, void *ptr _U_)
24097 if (ssn) {
24098 delete_itu_tcap_subdissector(ssn, map_handle);
24102 static void range_add_callback(uint32_t ssn, void *ptr _U_)
24104 if (ssn) {
24105 add_itu_tcap_subdissector(ssn, map_handle);
24109 void proto_reg_handoff_gsm_map(void) {
24111 static bool map_prefs_initialized = false;
24112 static range_t *ssn_range;
24114 if (!map_prefs_initialized) {
24115 map_prefs_initialized = true;
24116 ranap_handle = find_dissector_add_dependency("ranap", proto_gsm_map);
24117 dtap_handle = find_dissector_add_dependency("gsm_a_dtap", proto_gsm_map);
24118 gsm_sms_handle = find_dissector_add_dependency("gsm_sms", proto_gsm_map);
24119 bssap_handle = find_dissector_add_dependency("gsm_a_bssmap", proto_gsm_map);
24121 oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
24122 register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
24123 register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
24124 register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
24125 register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
24126 register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
24127 register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
24128 register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
24129 register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
24130 register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
24131 register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
24132 register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
24133 register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
24134 register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
24135 register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
24136 register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
24137 register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
24138 register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
24139 register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
24140 register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
24141 register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
24142 register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
24143 register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
24144 register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
24145 register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
24146 register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
24147 register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
24148 register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
24149 register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
24150 register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
24151 register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
24152 /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
24153 /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
24154 register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
24155 register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
24156 register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
24157 register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
24158 register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
24159 register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
24160 register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
24161 register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
24162 register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
24163 register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
24164 register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
24165 register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
24166 register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
24167 register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
24168 register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
24169 register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
24170 register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" );
24171 register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
24172 register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
24173 register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
24174 register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
24175 register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
24176 register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
24177 register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
24178 register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
24179 register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
24180 register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
24181 register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
24182 register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
24183 register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
24184 register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
24185 register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
24186 register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
24187 register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
24188 register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
24189 register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
24190 register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
24191 register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
24192 register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
24193 register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
24194 register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
24195 register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
24196 register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
24197 register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
24198 register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
24199 register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
24200 /* Private extension container */
24201 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" );
24202 register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension");
24203 register_ber_oid_dissector("0.34.1",dissect_NokiaMAP_ext_DsdArgExt,proto_gsm_map,"Nokia Dsd Extension");
24204 register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension");
24205 register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension");
24206 register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension");
24207 register_ber_oid_dissector("0.34.6",dissect_NokiaMAP_ExtraSignalInfo,proto_gsm_map,"Nokia ExtraSignalInfo Extension");
24208 register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension");
24209 register_ber_oid_dissector("0.34.10",dissect_NokiaMAP_ext_CanLocArgExt,proto_gsm_map,"Nokia Cancel Location Extension");
24210 register_ber_oid_dissector("0.34.11",dissect_NokiaMAP_ext_ATMargExt,proto_gsm_map,"Nokia ATM Extension");
24211 register_ber_oid_dissector("0.34.12",dissect_NokiaMAP_ext_DTMargExt,proto_gsm_map,"Nokia DTM Extension");
24212 register_ber_oid_dissector("0.34.13",dissect_NokiaMAP_ext_NumberPorted,proto_gsm_map,"Nokia NumberPorted Extension");
24213 register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension");
24214 register_ber_oid_dissector("0.34.16",dissect_NokiaMAP_ext_ATMresExt,proto_gsm_map,"Nokia ATMres Extension");
24215 register_ber_oid_dissector("0.34.17",dissect_NokiaMAP_ext_AbsentSubscriberExt,proto_gsm_map,"Nokia AbsentSubscriber Extension");
24216 register_ber_oid_dissector("0.34.18",dissect_NokiaMAP_ext_SriForSMArgExt,proto_gsm_map,"Nokia SriForSM Extension");
24217 register_ber_oid_dissector("0.34.19",dissect_NokiaMAP_ext_ReportSMDelStatArgExt,proto_gsm_map,"Nokia ReportSMDelStatt Extension");
24218 register_ber_oid_dissector("0.34.20",dissect_NokiaMAP_ext_UdlArgExt,proto_gsm_map,"Nokia Udl Extension");
24219 register_ber_oid_dissector("0.34.21",dissect_NokiaMAP_ext_RoamNotAllowedExt,proto_gsm_map,"Nokia RoamNotAllowed Extension");
24220 register_ber_oid_dissector("0.34.22",dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt,proto_gsm_map,"Nokia MO-ForwardSM Extension");
24221 register_ber_oid_dissector("0.34.23",dissect_NokiaMAP_ext_ErrOlcmInfoTableExt,proto_gsm_map,"Nokia ErrOlcmInfoTable Extension");
24222 register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension");
24223 register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension");
24225 register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension");
24226 register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension");
24227 register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension");
24229 register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_gsm_map_ericsson_ext_ExtensionType,proto_gsm_map,"Ericsson ExtensionType Extension");
24231 else {
24232 range_foreach(ssn_range, range_delete_callback, NULL);
24233 wmem_free(wmem_epan_scope(), ssn_range);
24236 ssn_range = range_copy(wmem_epan_scope(), global_ssn_range);
24237 range_foreach(ssn_range, range_add_callback, NULL);
24241 /*--- proto_register_gsm_map -------------------------------------------*/
24242 void proto_register_gsm_map(void) {
24243 module_t *gsm_map_module;
24244 expert_module_t* expert_gsm_map;
24246 /* List of fields */
24247 static hf_register_info hf[] = {
24248 { &hf_gsm_map_old_Component_PDU,
24249 { "Component", "gsm_map.old.Component",
24250 FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
24251 NULL, HFILL }},
24252 { &hf_gsm_map_getPassword,
24253 { "getPassword", "gsm_map.getPassword",
24254 FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0,
24255 NULL, HFILL }},
24256 { &hf_gsm_map_currentPassword,
24257 { "currentPassword", "gsm_map.currentPassword",
24258 FT_STRING, BASE_NONE, NULL, 0,
24259 NULL, HFILL }},
24260 { &hf_gsm_map_extension,
24261 { "Extension", "gsm_map.extension",
24262 FT_BOOLEAN, 8, TFS(&tfs_no_extension_extension), 0x80,
24263 NULL, HFILL }},
24264 { &hf_gsm_map_nature_of_number,
24265 { "Nature of number", "gsm_map.nature_of_number",
24266 FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_nature_of_number_values_ext, 0x70,
24267 NULL, HFILL }},
24268 { &hf_gsm_map_number_plan,
24269 { "Number plan", "gsm_map.number_plan",
24270 FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_number_plan_values_ext, 0x0f,
24271 NULL, HFILL }},
24272 { &hf_gsm_map_address_digits,
24273 { "Address digits", "gsm_map.address.digits",
24274 FT_STRING, BASE_NONE, NULL, 0,
24275 NULL, HFILL }},
24276 { &hf_gsm_map_TBCD_digits,
24277 { "TBCD digits", "gsm_map.tbcd_digits",
24278 FT_STRING, BASE_NONE, NULL, 0,
24279 NULL, HFILL }},
24280 { &hf_gsm_map_Ss_Status_unused,
24281 { "Unused", "gsm_map.unused",
24282 FT_UINT8, BASE_HEX, NULL, 0xf0,
24283 NULL, HFILL }},
24284 { &hf_gsm_map_Ss_Status_q_bit,
24285 { "Q bit", "gsm_map.ss_status_q_bit",
24286 FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
24287 NULL, HFILL }},
24288 { &hf_gsm_map_Ss_Status_p_bit,
24289 { "P bit", "gsm_map.ss_status_p_bit",
24290 FT_BOOLEAN, 8, TFS(&tfs_provisioned_not_provisioned), 0x04,
24291 NULL, HFILL }},
24292 { &hf_gsm_map_Ss_Status_r_bit,
24293 { "R bit", "gsm_map.ss_status_r_bit",
24294 FT_BOOLEAN, 8, TFS(&tfs_registered_not_registered), 0x02,
24295 NULL, HFILL }},
24296 { &hf_gsm_map_Ss_Status_a_bit,
24297 { "A bit", "gsm_map.ss_status_a_bit",
24298 FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
24299 NULL, HFILL }},
24300 { &hf_gsm_map_notification_to_forwarding_party,
24301 { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
24302 FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
24303 NULL, HFILL }},
24304 { &hf_gsm_map_redirecting_presentation,
24305 { "Redirecting presentation", "gsm_map.redirecting_presentation",
24306 FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
24307 NULL, HFILL }},
24308 { &hf_gsm_map_notification_to_calling_party,
24309 { "Notification to calling party", "gsm_map.notification_to_calling_party",
24310 FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
24311 NULL, HFILL }},
24312 { &hf_gsm_map_forwarding_reason,
24313 { "Forwarding reason", "gsm_map.forwarding_reason",
24314 FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
24315 NULL, HFILL }},
24316 { &hf_gsm_map_pdp_type_org,
24317 { "PDP Type Organization", "gsm_map.pdp_type_org",
24318 FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
24319 NULL, HFILL }},
24320 { &hf_gsm_map_etsi_pdp_type_number,
24321 { "PDP Type Number", "gsm_map.pdp_type_number",
24322 FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
24323 "ETSI PDP Type Number", HFILL }},
24324 { &hf_gsm_map_ietf_pdp_type_number,
24325 { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
24326 FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
24327 "IETF PDP Type Number", HFILL }},
24328 { &hf_gsm_map_ext_qos_subscribed_pri,
24329 { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
24330 FT_UINT8, BASE_DEC, NULL, 0xff,
24331 NULL, HFILL }},
24332 { &hf_gsm_map_qos_traffic_cls,
24333 { "Traffic class", "gsm_map.qos.traffic_cls",
24334 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0xe0,
24335 NULL, HFILL }},
24336 { &hf_gsm_map_qos_del_order,
24337 { "Delivery order", "gsm_map.qos.del_order",
24338 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0x18,
24339 NULL, HFILL }},
24340 { &hf_gsm_map_qos_del_of_err_sdu,
24341 { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
24342 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_del_of_err_sdu_vals), 0x03,
24343 NULL, HFILL }},
24344 { &hf_gsm_map_qos_ber,
24345 { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
24346 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_ber_vals), 0xf0,
24347 NULL, HFILL }},
24348 { &hf_gsm_map_qos_sdu_err_rat,
24349 { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
24350 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_sdu_err_rat_vals), 0x0f,
24351 NULL, HFILL }},
24352 { &hf_gsm_map_qos_traff_hdl_pri,
24353 { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
24354 FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traff_hdl_pri_vals), 0x03,
24355 NULL, HFILL }},
24357 { &hf_gsm_map_qos_max_sdu,
24358 { "Maximum SDU size", "gsm_map.qos.max_sdu",
24359 FT_UINT32, BASE_DEC, NULL, 0x0,
24360 NULL, HFILL }},
24361 { &hf_gsm_map_max_brate_ulink,
24362 { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
24363 FT_UINT32, BASE_DEC, NULL, 0x0,
24364 NULL, HFILL }},
24365 { &hf_gsm_map_max_brate_dlink,
24366 { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
24367 FT_UINT32, BASE_DEC, NULL, 0x0,
24368 NULL, HFILL }},
24369 { &hf_gsm_map_qos_transfer_delay,
24370 { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
24371 FT_UINT8, BASE_DEC, NULL, 0xfc,
24372 NULL, HFILL }},
24373 { &hf_gsm_map_guaranteed_max_brate_ulink,
24374 { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
24375 FT_UINT32, BASE_DEC, NULL, 0x0,
24376 NULL, HFILL }},
24377 { &hf_gsm_map_guaranteed_max_brate_dlink,
24378 { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
24379 FT_UINT32, BASE_DEC, NULL, 0x0,
24380 NULL, HFILL }},
24381 { &hf_gsm_map_GSNAddress_IPv4,
24382 { "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4",
24383 FT_IPv4, BASE_NONE, NULL, 0,
24384 "IPAddress IPv4", HFILL }},
24385 { &hf_gsm_map_GSNAddress_IPv6,
24386 { "GSN Address IPv6", "gsm_map.gsnaddress_ipv6",
24387 FT_IPv6, BASE_NONE, NULL, 0,
24388 "IPAddress IPv6", HFILL }},
24389 { &hf_gsm_map_ranap_service_Handover,
24390 { "service-Handover", "gsm_map.ranap.service_Handover",
24391 FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
24392 "gsm_map.ranap.Service_Handover", HFILL }},
24393 { &hf_gsm_map_IntegrityProtectionInformation,
24394 { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
24395 FT_NONE, BASE_NONE, NULL, 0,
24396 "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
24397 { &hf_gsm_map_EncryptionInformation,
24398 { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
24399 FT_NONE, BASE_NONE, NULL, 0,
24400 "gsm_map.ranap.EncryptionInformation", HFILL }},
24401 { &hf_gsm_map_ss_SS_UserData,
24402 { "SS-UserData", "gsm_ss.SS_UserData",
24403 FT_STRING, BASE_NONE, NULL, 0,
24404 "gsm_map.ss.SS_UserData", HFILL }},
24405 { &hf_gsm_map_cbs_coding_grp,
24406 { "Coding Group","gsm_map.cbs.coding_grp",
24407 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext, 0xf0,
24408 NULL, HFILL }
24410 { &hf_gsm_map_cbs_coding_grp0_lang,
24411 { "Language","gsm_map.cbs.coding_grp0_lang",
24412 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp0_lang_vals_ext, 0x0f,
24413 NULL, HFILL }
24415 { &hf_gsm_map_cbs_coding_grp1_lang,
24416 { "Language","gsm_map.cbs.coding_grp1_lang",
24417 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp1_lang_vals_ext, 0x0f,
24418 NULL, HFILL }
24420 { &hf_gsm_map_cbs_coding_grp2_lang,
24421 { "Language","gsm_map.cbs.coding_grp2_lang",
24422 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp2_lang_vals_ext, 0x0f,
24423 NULL, HFILL }
24425 { &hf_gsm_map_cbs_coding_grp3_lang,
24426 { "Language","gsm_map.cbs.coding_grp3_lang",
24427 FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp3_lang_vals_ext, 0x0f,
24428 NULL, HFILL }
24430 { &hf_gsm_map_cbs_coding_grp4_7_comp,
24431 { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
24432 FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,
24433 NULL, HFILL }
24435 { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
24436 { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
24437 FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,
24438 NULL, HFILL }
24440 { &hf_gsm_map_cbs_coding_grp4_7_char_set,
24441 { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
24442 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,
24443 NULL, HFILL }
24445 { &hf_gsm_map_cbs_coding_grp4_7_class,
24446 { "Message Class","gsm_map.cbs.coding_grp4_7_class",
24447 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,
24448 NULL, HFILL }
24450 { &hf_gsm_map_cbs_coding_grp15_mess_code,
24451 { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
24452 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,
24453 NULL, HFILL }
24455 { &hf_gsm_map_cbs_coding_grp15_class,
24456 { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
24457 FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,
24458 NULL, HFILL }
24460 { &hf_gsm_map_ie_tag,
24461 { "Tag", "gsm_map.ie_tag",
24462 FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
24463 "GSM 04.08 tag", HFILL }},
24464 { &hf_gsm_map_len,
24465 { "Length", "gsm_map.length",
24466 FT_UINT8, BASE_DEC, NULL, 0,
24467 NULL, HFILL }},
24468 { &hf_gsm_map_disc_par,
24469 { "Discrimination parameter", "gsm_map.disc_par",
24470 FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
24471 NULL, HFILL }},
24472 { &hf_gsm_map_dlci,
24473 { "DLCI", "gsm_map.dlci",
24474 FT_UINT8, BASE_DEC, NULL, 0,
24475 "Data Link Connection Indicator", HFILL }},
24476 { &hf_gsm_apn_str,
24477 { "APN", "gsm_map.apn_str",
24478 FT_STRING, BASE_NONE, NULL, 0,
24479 NULL, HFILL }},
24480 { &hf_gsm_map_ericsson_locationInformation_rat,
24481 { "RAT", "gsm_map.ericsson.locationInformation.rat",
24482 FT_UINT8, BASE_DEC, VALS(gsm_map_ericsson_locationInformation_rat_vals), 0,
24483 "Radio Access Technology", HFILL }},
24484 { &hf_gsm_map_ericsson_locationInformation_lac,
24485 { "LAC", "gsm_map.ericsson.locationInformation.lac",
24486 FT_UINT16, BASE_DEC_HEX, NULL, 0,
24487 "Location Area Code", HFILL }},
24488 { &hf_gsm_map_ericsson_locationInformation_ci,
24489 { "CI", "gsm_map.ericsson.locationInformation.ci",
24490 FT_UINT16, BASE_DEC_HEX, NULL, 0,
24491 "Cell Identity", HFILL }},
24492 { &hf_gsm_map_ericsson_locationInformation_sac,
24493 { "SAC", "gsm_map.ericsson.locationInformation.sac",
24494 FT_UINT16, BASE_DEC_HEX, NULL, 0,
24495 "Service Area Code", HFILL }},
24496 { &hf_gsm_map_ussd_string,
24497 { "USSD String", "gsm_map.ussd_string",
24498 FT_STRING, BASE_NONE, NULL, 0,
24499 NULL, HFILL }},
24500 { &hf_gsm_map_spare_bits,
24501 { "Spare bit(s)", "gsm_map.spare_bits",
24502 FT_UINT8, BASE_DEC, NULL, 0x0,
24503 NULL, HFILL }
24505 { &hf_gsm_map_qos_signalling_ind,
24506 { "Signalling indication", "gsm_map.qos.signalling_ind",
24507 FT_BOOLEAN, 8, TFS(&gsm_map_qos_signalling_ind_value), 0x10,
24508 NULL, HFILL }
24510 { &hf_gsm_map_qos_source_stat_desc,
24511 { "Source statistics description", "gsm_map.qos.source_stat_desc",
24512 FT_UINT8, BASE_DEC, NULL, 0x0f,
24513 NULL, HFILL }
24515 { &hf_gsm_map_qos_max_bitrate_upl_ext,
24516 { "Maximum bitrate for uplink (extended)", "gsm_map.qos.max_bitrate_upl_ext",
24517 FT_UINT8, BASE_DEC, NULL, 0x0,
24518 NULL, HFILL }
24520 { &hf_gsm_map_qos_max_bitrate_downl_ext,
24521 { "Maximum bitrate for downlink (extended)", "gsm_map.qos.max_bitrate_downl_ext",
24522 FT_UINT8, BASE_DEC, NULL, 0x0,
24523 NULL, HFILL }
24525 { &hf_gsm_map_qos_guar_bitrate_upl_ext,
24526 { "Guaranteed bitrate for uplink (extended)", "gsm_map.qos.guar_bitrate_upl_ext",
24527 FT_UINT8, BASE_DEC, NULL, 0x0,
24528 NULL, HFILL }
24530 { &hf_gsm_map_qos_guar_bitrate_downl_ext,
24531 { "Guaranteed bitrate for downlink (extended)", "gsm_map.qos.guar_bitrate_downl_ext",
24532 FT_UINT8, BASE_DEC, NULL, 0x0,
24533 NULL, HFILL }
24536 { &hf_gsm_map_qos_max_bitrate_upl_ext2,
24537 { "Maximum bitrate for uplink (extended-2)", "gsm_map.qos.max_bitrate_upl_ext2",
24538 FT_UINT8, BASE_DEC, NULL, 0x0,
24539 NULL, HFILL }
24541 { &hf_gsm_map_qos_max_bitrate_downl_ext2,
24542 { "Maximum bitrate for downlink (extended-2)", "gsm_map.qos.max_bitrate_downl_ext2",
24543 FT_UINT8, BASE_DEC, NULL, 0x0,
24544 NULL, HFILL }
24546 { &hf_gsm_map_qos_guar_bitrate_upl_ext2,
24547 { "Guaranteed bitrate for uplink (extended-2)", "gsm_map.qos.guar_bitrate_upl_ext2",
24548 FT_UINT8, BASE_DEC, NULL, 0x0,
24549 NULL, HFILL }
24551 { &hf_gsm_map_qos_guar_bitrate_downl_ext2,
24552 { "Guaranteed bitrate for downlink (extended-2)", "gsm_map.qos.guar_bitrate_downl_ext2",
24553 FT_UINT8, BASE_DEC, NULL, 0x0,
24554 NULL, HFILL }
24557 { &hf_gsm_map_earp_pvi,
24558 { "PVI Pre-emption Vulnerability", "gsm_map.EARP_pre_emption_par_vulnerability",
24559 FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x01,
24560 NULL, HFILL }
24562 { &hf_gsm_map_earp_pl,
24563 { "PL Priority Level", "gsm_map.EARP_priority_level",
24564 FT_UINT8, BASE_DEC, NULL, 0x3C,
24565 NULL, HFILL }
24567 { &hf_gsm_map_earp_pci,
24568 { "PCI Pre-emption Capability", "gsm_map.EARP_pre_emption_Capability",
24569 FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x40,
24570 NULL, HFILL }
24574 /* --- Module MAP-ExtensionDataTypes --- --- --- */
24576 { &hf_gsm_map_privateExtensionList,
24577 { "privateExtensionList", "gsm_map.privateExtensionList",
24578 FT_UINT32, BASE_DEC, NULL, 0,
24579 NULL, HFILL }},
24580 { &hf_gsm_map_pcs_Extensions,
24581 { "pcs-Extensions", "gsm_map.pcs_Extensions_element",
24582 FT_NONE, BASE_NONE, NULL, 0,
24583 NULL, HFILL }},
24584 { &hf_gsm_map_slr_Arg_PCS_Extensions,
24585 { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions_element",
24586 FT_NONE, BASE_NONE, NULL, 0,
24587 NULL, HFILL }},
24588 { &hf_gsm_map_PrivateExtensionList_item,
24589 { "PrivateExtension", "gsm_map.PrivateExtension_element",
24590 FT_NONE, BASE_NONE, NULL, 0,
24591 NULL, HFILL }},
24592 { &hf_gsm_map_extId,
24593 { "extId", "gsm_map.extId",
24594 FT_OID, BASE_NONE, NULL, 0,
24595 NULL, HFILL }},
24596 { &hf_gsm_map_extType,
24597 { "extType", "gsm_map.extType_element",
24598 FT_NONE, BASE_NONE, NULL, 0,
24599 NULL, HFILL }},
24600 { &hf_gsm_map_na_ESRK_Request,
24601 { "na-ESRK-Request", "gsm_map.na_ESRK_Request_element",
24602 FT_NONE, BASE_NONE, NULL, 0,
24603 NULL, HFILL }},
24605 /* --- Module MAP-CommonDataTypes --- --- --- */
24607 { &hf_gsm_map_gsm_map_ISDN_AddressString_PDU,
24608 { "ISDN-AddressString", "gsm_map.ISDN_AddressString",
24609 FT_BYTES, BASE_NONE, NULL, 0,
24610 NULL, HFILL }},
24611 { &hf_gsm_map_protocolId,
24612 { "protocolId", "gsm_map.protocolId",
24613 FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
24614 NULL, HFILL }},
24615 { &hf_gsm_map_signalInfo,
24616 { "signalInfo", "gsm_map.signalInfo",
24617 FT_BYTES, BASE_NONE, NULL, 0,
24618 NULL, HFILL }},
24619 { &hf_gsm_map_extensionContainer,
24620 { "extensionContainer", "gsm_map.extensionContainer_element",
24621 FT_NONE, BASE_NONE, NULL, 0,
24622 NULL, HFILL }},
24623 { &hf_gsm_map_ext_ProtocolId,
24624 { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
24625 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
24626 NULL, HFILL }},
24627 { &hf_gsm_map_accessNetworkProtocolId,
24628 { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
24629 FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
24630 NULL, HFILL }},
24631 { &hf_gsm_map_signalInfo_01,
24632 { "signalInfo", "gsm_map.signalInfo",
24633 FT_BYTES, BASE_NONE, NULL, 0,
24634 "LongSignalInfo", HFILL }},
24635 { &hf_gsm_map_imsi,
24636 { "imsi", "gsm_map.imsi",
24637 FT_BYTES, BASE_NONE, NULL, 0,
24638 NULL, HFILL }},
24639 { &hf_gsm_map_imsi_WithLMSI,
24640 { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI_element",
24641 FT_NONE, BASE_NONE, NULL, 0,
24642 NULL, HFILL }},
24643 { &hf_gsm_map_lmsi,
24644 { "lmsi", "gsm_map.lmsi",
24645 FT_BYTES, BASE_NONE, NULL, 0,
24646 NULL, HFILL }},
24647 { &hf_gsm_map_tmsi,
24648 { "tmsi", "gsm_map.tmsi",
24649 FT_BYTES, BASE_NONE, NULL, 0,
24650 NULL, HFILL }},
24651 { &hf_gsm_map_HLR_List_item,
24652 { "HLR-Id", "gsm_map.HLR_Id",
24653 FT_BYTES, BASE_NONE, NULL, 0,
24654 NULL, HFILL }},
24655 { &hf_gsm_map_naea_PreferredCIC,
24656 { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
24657 FT_BYTES, BASE_NONE, NULL, 0,
24658 "NAEA_CIC", HFILL }},
24659 { &hf_gsm_map_msisdn,
24660 { "msisdn", "gsm_map.msisdn",
24661 FT_BYTES, BASE_NONE, NULL, 0,
24662 "ISDN_AddressString", HFILL }},
24663 { &hf_gsm_map_externalAddress,
24664 { "externalAddress", "gsm_map.externalAddress",
24665 FT_BYTES, BASE_NONE, NULL, 0,
24666 "ISDN_AddressString", HFILL }},
24667 { &hf_gsm_map_diameter_Name,
24668 { "diameter-Name", "gsm_map.diameter_Name",
24669 FT_STRING, BASE_NONE, NULL, 0,
24670 "DiameterIdentity", HFILL }},
24671 { &hf_gsm_map_diameter_Realm,
24672 { "diameter-Realm", "gsm_map.diameter_Realm",
24673 FT_STRING, BASE_NONE, NULL, 0,
24674 "DiameterIdentity", HFILL }},
24675 { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
24676 { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
24677 FT_BYTES, BASE_NONE, NULL, 0,
24678 NULL, HFILL }},
24679 { &hf_gsm_map_laiFixedLength,
24680 { "laiFixedLength", "gsm_map.laiFixedLength",
24681 FT_BYTES, BASE_NONE, NULL, 0,
24682 NULL, HFILL }},
24683 { &hf_gsm_map_bearerService,
24684 { "bearerService", "gsm_map.bearerService",
24685 FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
24686 "BearerServiceCode", HFILL }},
24687 { &hf_gsm_map_teleservice,
24688 { "teleservice", "gsm_map.teleservice",
24689 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
24690 "TeleserviceCode", HFILL }},
24691 { &hf_gsm_map_ext_BearerService,
24692 { "ext-BearerService", "gsm_map.ext_BearerService",
24693 FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
24694 "Ext_BearerServiceCode", HFILL }},
24695 { &hf_gsm_map_ext_Teleservice,
24696 { "ext-Teleservice", "gsm_map.ext_Teleservice",
24697 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
24698 "Ext_TeleserviceCode", HFILL }},
24699 { &hf_gsm_map_maximumentitledPriority,
24700 { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
24701 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
24702 "EMLPP_Priority", HFILL }},
24703 { &hf_gsm_map_defaultPriority,
24704 { "defaultPriority", "gsm_map.defaultPriority",
24705 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
24706 "EMLPP_Priority", HFILL }},
24707 { &hf_gsm_map_ss_Code,
24708 { "ss-Code", "gsm_map.ss_Code",
24709 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
24710 NULL, HFILL }},
24711 { &hf_gsm_map_ss_Status,
24712 { "ss-Status", "gsm_map.ss_Status",
24713 FT_BYTES, BASE_NONE, NULL, 0,
24714 "Ext_SS_Status", HFILL }},
24715 { &hf_gsm_map_nbrSB,
24716 { "nbrSB", "gsm_map.nbrSB",
24717 FT_UINT32, BASE_DEC, NULL, 0,
24718 "MaxMC_Bearers", HFILL }},
24719 { &hf_gsm_map_nbrUser,
24720 { "nbrUser", "gsm_map.nbrUser",
24721 FT_UINT32, BASE_DEC, NULL, 0,
24722 "MC_Bearers", HFILL }},
24724 /* --- Module MAP-SS-DataTypes --- --- --- */
24726 { &hf_gsm_map_ss_ss_Code,
24727 { "ss-Code", "gsm_map.ss.ss_Code",
24728 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
24729 NULL, HFILL }},
24730 { &hf_gsm_map_ss_basicService,
24731 { "basicService", "gsm_map.ss.basicService",
24732 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
24733 "BasicServiceCode", HFILL }},
24734 { &hf_gsm_map_ss_forwardedToNumber,
24735 { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
24736 FT_BYTES, BASE_NONE, NULL, 0,
24737 "AddressString", HFILL }},
24738 { &hf_gsm_map_ss_forwardedToSubaddress,
24739 { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
24740 FT_BYTES, BASE_NONE, NULL, 0,
24741 "ISDN_SubaddressString", HFILL }},
24742 { &hf_gsm_map_ss_noReplyConditionTime,
24743 { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
24744 FT_UINT32, BASE_DEC, NULL, 0,
24745 NULL, HFILL }},
24746 { &hf_gsm_map_ss_defaultPriority,
24747 { "defaultPriority", "gsm_map.ss.defaultPriority",
24748 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
24749 "EMLPP_Priority", HFILL }},
24750 { &hf_gsm_map_ss_nbrUser,
24751 { "nbrUser", "gsm_map.ss.nbrUser",
24752 FT_UINT32, BASE_DEC, NULL, 0,
24753 "MC_Bearers", HFILL }},
24754 { &hf_gsm_map_ss_longFTN_Supported,
24755 { "longFTN-Supported", "gsm_map.ss.longFTN_Supported_element",
24756 FT_NONE, BASE_NONE, NULL, 0,
24757 NULL, HFILL }},
24758 { &hf_gsm_map_ss_forwardingInfo,
24759 { "forwardingInfo", "gsm_map.ss.forwardingInfo_element",
24760 FT_NONE, BASE_NONE, NULL, 0,
24761 NULL, HFILL }},
24762 { &hf_gsm_map_ss_callBarringInfo,
24763 { "callBarringInfo", "gsm_map.ss.callBarringInfo_element",
24764 FT_NONE, BASE_NONE, NULL, 0,
24765 NULL, HFILL }},
24766 { &hf_gsm_map_ss_ss_Data,
24767 { "ss-Data", "gsm_map.ss.ss_Data_element",
24768 FT_NONE, BASE_NONE, NULL, 0,
24769 NULL, HFILL }},
24770 { &hf_gsm_map_ss_forwardingFeatureList,
24771 { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
24772 FT_UINT32, BASE_DEC, NULL, 0,
24773 NULL, HFILL }},
24774 { &hf_gsm_map_ss_ForwardingFeatureList_item,
24775 { "ForwardingFeature", "gsm_map.ss.ForwardingFeature_element",
24776 FT_NONE, BASE_NONE, NULL, 0,
24777 NULL, HFILL }},
24778 { &hf_gsm_map_ss_ss_Status,
24779 { "ss-Status", "gsm_map.ss.ss_Status",
24780 FT_BYTES, BASE_NONE, NULL, 0,
24781 NULL, HFILL }},
24782 { &hf_gsm_map_ss_forwardedToNumber_01,
24783 { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
24784 FT_BYTES, BASE_NONE, NULL, 0,
24785 "ISDN_AddressString", HFILL }},
24786 { &hf_gsm_map_ss_forwardingOptions,
24787 { "forwardingOptions", "gsm_map.ss.forwardingOptions",
24788 FT_BYTES, BASE_NONE, NULL, 0,
24789 NULL, HFILL }},
24790 { &hf_gsm_map_ss_longForwardedToNumber,
24791 { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
24792 FT_BYTES, BASE_NONE, NULL, 0,
24793 "FTN_AddressString", HFILL }},
24794 { &hf_gsm_map_ss_callBarringFeatureList,
24795 { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
24796 FT_UINT32, BASE_DEC, NULL, 0,
24797 NULL, HFILL }},
24798 { &hf_gsm_map_ss_CallBarringFeatureList_item,
24799 { "CallBarringFeature", "gsm_map.ss.CallBarringFeature_element",
24800 FT_NONE, BASE_NONE, NULL, 0,
24801 NULL, HFILL }},
24802 { &hf_gsm_map_ss_ss_SubscriptionOption,
24803 { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
24804 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
24805 NULL, HFILL }},
24806 { &hf_gsm_map_ss_basicServiceGroupList,
24807 { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
24808 FT_UINT32, BASE_DEC, NULL, 0,
24809 NULL, HFILL }},
24810 { &hf_gsm_map_ss_cliRestrictionOption,
24811 { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
24812 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
24813 NULL, HFILL }},
24814 { &hf_gsm_map_ss_overrideCategory,
24815 { "overrideCategory", "gsm_map.ss.overrideCategory",
24816 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
24817 NULL, HFILL }},
24818 { &hf_gsm_map_ss_maximumEntitledPriority,
24819 { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
24820 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
24821 "EMLPP_Priority", HFILL }},
24822 { &hf_gsm_map_ss_ccbs_FeatureList,
24823 { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
24824 FT_UINT32, BASE_DEC, NULL, 0,
24825 NULL, HFILL }},
24826 { &hf_gsm_map_ss_nbrSB,
24827 { "nbrSB", "gsm_map.ss.nbrSB",
24828 FT_UINT32, BASE_DEC, NULL, 0,
24829 "MaxMC_Bearers", HFILL }},
24830 { &hf_gsm_map_ss_nbrSN,
24831 { "nbrSN", "gsm_map.ss.nbrSN",
24832 FT_UINT32, BASE_DEC, NULL, 0,
24833 "MC_Bearers", HFILL }},
24834 { &hf_gsm_map_ss_CCBS_FeatureList_item,
24835 { "CCBS-Feature", "gsm_map.ss.CCBS_Feature_element",
24836 FT_NONE, BASE_NONE, NULL, 0,
24837 NULL, HFILL }},
24838 { &hf_gsm_map_ss_ccbs_Index,
24839 { "ccbs-Index", "gsm_map.ss.ccbs_Index",
24840 FT_UINT32, BASE_DEC, NULL, 0,
24841 NULL, HFILL }},
24842 { &hf_gsm_map_ss_b_subscriberNumber,
24843 { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
24844 FT_BYTES, BASE_NONE, NULL, 0,
24845 "ISDN_AddressString", HFILL }},
24846 { &hf_gsm_map_ss_b_subscriberSubaddress,
24847 { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
24848 FT_BYTES, BASE_NONE, NULL, 0,
24849 "ISDN_SubaddressString", HFILL }},
24850 { &hf_gsm_map_ss_basicServiceGroup,
24851 { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
24852 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
24853 "BasicServiceCode", HFILL }},
24854 { &hf_gsm_map_ss_genericServiceInfo,
24855 { "genericServiceInfo", "gsm_map.ss.genericServiceInfo_element",
24856 FT_NONE, BASE_NONE, NULL, 0,
24857 NULL, HFILL }},
24858 { &hf_gsm_map_ss_ussd_DataCodingScheme,
24859 { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
24860 FT_BYTES, BASE_NONE, NULL, 0,
24861 NULL, HFILL }},
24862 { &hf_gsm_map_ss_ussd_String,
24863 { "ussd-String", "gsm_map.ss.ussd_String",
24864 FT_BYTES, BASE_NONE, NULL, 0,
24865 NULL, HFILL }},
24866 { &hf_gsm_map_ss_alertingPattern,
24867 { "alertingPattern", "gsm_map.ss.alertingPattern",
24868 FT_BYTES, BASE_NONE, NULL, 0,
24869 NULL, HFILL }},
24870 { &hf_gsm_map_ss_msisdn,
24871 { "msisdn", "gsm_map.ss.msisdn",
24872 FT_BYTES, BASE_NONE, NULL, 0,
24873 "ISDN_AddressString", HFILL }},
24874 { &hf_gsm_map_ss_SS_List_item,
24875 { "SS-Code", "gsm_map.ss.SS_Code",
24876 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
24877 NULL, HFILL }},
24878 { &hf_gsm_map_ss_BasicServiceGroupList_item,
24879 { "BasicServiceCode", "gsm_map.ss.BasicServiceCode",
24880 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
24881 NULL, HFILL }},
24882 { &hf_gsm_map_ss_imsi,
24883 { "imsi", "gsm_map.ss.imsi",
24884 FT_BYTES, BASE_NONE, NULL, 0,
24885 NULL, HFILL }},
24886 { &hf_gsm_map_ss_ss_Event,
24887 { "ss-Event", "gsm_map.ss.ss_Event",
24888 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
24889 "SS_Code", HFILL }},
24890 { &hf_gsm_map_ss_ss_EventSpecification,
24891 { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
24892 FT_UINT32, BASE_DEC, NULL, 0,
24893 NULL, HFILL }},
24894 { &hf_gsm_map_ss_extensionContainer,
24895 { "extensionContainer", "gsm_map.ss.extensionContainer_element",
24896 FT_NONE, BASE_NONE, NULL, 0,
24897 NULL, HFILL }},
24898 { &hf_gsm_map_ss_ccbs_RequestState,
24899 { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
24900 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
24901 NULL, HFILL }},
24902 { &hf_gsm_map_ss_SS_EventSpecification_item,
24903 { "AddressString", "gsm_map.ss.AddressString",
24904 FT_BYTES, BASE_NONE, NULL, 0,
24905 NULL, HFILL }},
24906 { &hf_gsm_map_ss_ccbs_Data,
24907 { "ccbs-Data", "gsm_map.ss.ccbs_Data_element",
24908 FT_NONE, BASE_NONE, NULL, 0,
24909 NULL, HFILL }},
24910 { &hf_gsm_map_ss_ccbs_Feature,
24911 { "ccbs-Feature", "gsm_map.ss.ccbs_Feature_element",
24912 FT_NONE, BASE_NONE, NULL, 0,
24913 NULL, HFILL }},
24914 { &hf_gsm_map_ss_translatedB_Number,
24915 { "translatedB-Number", "gsm_map.ss.translatedB_Number",
24916 FT_BYTES, BASE_NONE, NULL, 0,
24917 "ISDN_AddressString", HFILL }},
24918 { &hf_gsm_map_ss_serviceIndicator,
24919 { "serviceIndicator", "gsm_map.ss.serviceIndicator",
24920 FT_BYTES, BASE_NONE, NULL, 0,
24921 NULL, HFILL }},
24922 { &hf_gsm_map_ss_callInfo,
24923 { "callInfo", "gsm_map.ss.callInfo_element",
24924 FT_NONE, BASE_NONE, NULL, 0,
24925 "ExternalSignalInfo", HFILL }},
24926 { &hf_gsm_map_ss_networkSignalInfo,
24927 { "networkSignalInfo", "gsm_map.ss.networkSignalInfo_element",
24928 FT_NONE, BASE_NONE, NULL, 0,
24929 "ExternalSignalInfo", HFILL }},
24930 { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
24931 { "clir-invoked", "gsm.map.ss.ServiceIndicator.clir.invoked",
24932 FT_BOOLEAN, 8, NULL, 0x80,
24933 NULL, HFILL }},
24934 { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
24935 { "camel-invoked", "gsm.map.ss.ServiceIndicator.camel.invoked",
24936 FT_BOOLEAN, 8, NULL, 0x40,
24937 NULL, HFILL }},
24939 /* --- Module MAP-ER-DataTypes --- --- --- */
24941 { &hf_gsm_map_er_roamingNotAllowedCause,
24942 { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
24943 FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
24944 NULL, HFILL }},
24945 { &hf_gsm_map_er_extensionContainer,
24946 { "extensionContainer", "gsm_map.er.extensionContainer_element",
24947 FT_NONE, BASE_NONE, NULL, 0,
24948 NULL, HFILL }},
24949 { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
24950 { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
24951 FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
24952 NULL, HFILL }},
24953 { &hf_gsm_map_er_callBarringCause,
24954 { "callBarringCause", "gsm_map.er.callBarringCause",
24955 FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
24956 NULL, HFILL }},
24957 { &hf_gsm_map_er_extensibleCallBarredParam,
24958 { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam_element",
24959 FT_NONE, BASE_NONE, NULL, 0,
24960 NULL, HFILL }},
24961 { &hf_gsm_map_er_unauthorisedMessageOriginator,
24962 { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator_element",
24963 FT_NONE, BASE_NONE, NULL, 0,
24964 NULL, HFILL }},
24965 { &hf_gsm_map_er_anonymousCallRejection,
24966 { "anonymousCallRejection", "gsm_map.er.anonymousCallRejection_element",
24967 FT_NONE, BASE_NONE, NULL, 0,
24968 NULL, HFILL }},
24969 { &hf_gsm_map_er_cug_RejectCause,
24970 { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
24971 FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
24972 NULL, HFILL }},
24973 { &hf_gsm_map_er_ss_Code,
24974 { "ss-Code", "gsm_map.er.ss_Code",
24975 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
24976 NULL, HFILL }},
24977 { &hf_gsm_map_er_basicService,
24978 { "basicService", "gsm_map.er.basicService",
24979 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
24980 "BasicServiceCode", HFILL }},
24981 { &hf_gsm_map_er_ss_Status,
24982 { "ss-Status", "gsm_map.er.ss_Status",
24983 FT_BYTES, BASE_NONE, NULL, 0,
24984 NULL, HFILL }},
24985 { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
24986 { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
24987 FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
24988 NULL, HFILL }},
24989 { &hf_gsm_map_er_diagnosticInfo,
24990 { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
24991 FT_BYTES, BASE_NONE, NULL, 0,
24992 "SignalInfo", HFILL }},
24993 { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
24994 { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
24995 FT_UINT32, BASE_DEC, NULL, 0,
24996 NULL, HFILL }},
24997 { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
24998 { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
24999 FT_UINT32, BASE_DEC, NULL, 0,
25000 "AbsentSubscriberDiagnosticSM", HFILL }},
25001 { &hf_gsm_map_er_imsi,
25002 { "imsi", "gsm_map.er.imsi",
25003 FT_BYTES, BASE_NONE, NULL, 0,
25004 NULL, HFILL }},
25005 { &hf_gsm_map_er_requestedRetransmissionTime,
25006 { "requestedRetransmissionTime", "gsm_map.er.requestedRetransmissionTime",
25007 FT_BYTES, BASE_NONE, NULL, 0,
25008 "Time", HFILL }},
25009 { &hf_gsm_map_er_userIdentifierAlert,
25010 { "userIdentifierAlert", "gsm_map.er.userIdentifierAlert",
25011 FT_BYTES, BASE_NONE, NULL, 0,
25012 "IMSI", HFILL }},
25013 { &hf_gsm_map_er_networkResource,
25014 { "networkResource", "gsm_map.er.networkResource",
25015 FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
25016 NULL, HFILL }},
25017 { &hf_gsm_map_er_extensibleSystemFailureParam,
25018 { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam_element",
25019 FT_NONE, BASE_NONE, NULL, 0,
25020 NULL, HFILL }},
25021 { &hf_gsm_map_er_additionalNetworkResource,
25022 { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
25023 FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
25024 NULL, HFILL }},
25025 { &hf_gsm_map_er_failureCauseParam,
25026 { "failureCauseParam", "gsm_map.er.failureCauseParam",
25027 FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
25028 NULL, HFILL }},
25029 { &hf_gsm_map_er_unexpectedSubscriber,
25030 { "unexpectedSubscriber", "gsm_map.er.unexpectedSubscriber_element",
25031 FT_NONE, BASE_NONE, NULL, 0,
25032 NULL, HFILL }},
25033 { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
25034 { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported_element",
25035 FT_NONE, BASE_NONE, NULL, 0,
25036 NULL, HFILL }},
25037 { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
25038 { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode_element",
25039 FT_NONE, BASE_NONE, NULL, 0,
25040 NULL, HFILL }},
25041 { &hf_gsm_map_er_unknownSubscriberDiagnostic,
25042 { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
25043 FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
25044 NULL, HFILL }},
25045 { &hf_gsm_map_er_absentSubscriberReason,
25046 { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
25047 FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
25048 NULL, HFILL }},
25049 { &hf_gsm_map_er_ccbs_Possible,
25050 { "ccbs-Possible", "gsm_map.er.ccbs_Possible_element",
25051 FT_NONE, BASE_NONE, NULL, 0,
25052 NULL, HFILL }},
25053 { &hf_gsm_map_er_ccbs_Busy,
25054 { "ccbs-Busy", "gsm_map.er.ccbs_Busy_element",
25055 FT_NONE, BASE_NONE, NULL, 0,
25056 NULL, HFILL }},
25057 { &hf_gsm_map_er_gprsConnectionSuspended,
25058 { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended_element",
25059 FT_NONE, BASE_NONE, NULL, 0,
25060 NULL, HFILL }},
25061 { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
25062 { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
25063 FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
25064 NULL, HFILL }},
25065 { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
25066 { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
25067 FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
25068 NULL, HFILL }},
25070 /* --- Module MAP-SM-DataTypes --- --- --- */
25072 { &hf_gsm_map_sm_msisdn,
25073 { "msisdn", "gsm_map.sm.msisdn",
25074 FT_BYTES, BASE_NONE, NULL, 0,
25075 "ISDN_AddressString", HFILL }},
25076 { &hf_gsm_map_sm_sm_RP_PRI,
25077 { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
25078 FT_BOOLEAN, BASE_NONE, NULL, 0,
25079 "BOOLEAN", HFILL }},
25080 { &hf_gsm_map_sm_serviceCentreAddress,
25081 { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
25082 FT_BYTES, BASE_NONE, NULL, 0,
25083 "AddressString", HFILL }},
25084 { &hf_gsm_map_sm_extensionContainer,
25085 { "extensionContainer", "gsm_map.sm.extensionContainer_element",
25086 FT_NONE, BASE_NONE, NULL, 0,
25087 NULL, HFILL }},
25088 { &hf_gsm_map_sm_gprsSupportIndicator,
25089 { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator_element",
25090 FT_NONE, BASE_NONE, NULL, 0,
25091 NULL, HFILL }},
25092 { &hf_gsm_map_sm_sm_RP_MTI,
25093 { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
25094 FT_UINT32, BASE_DEC, NULL, 0,
25095 NULL, HFILL }},
25096 { &hf_gsm_map_sm_sm_RP_SMEA,
25097 { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
25098 FT_BYTES, BASE_NONE, NULL, 0,
25099 NULL, HFILL }},
25100 { &hf_gsm_map_sm_sm_deliveryNotIntended,
25101 { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
25102 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
25103 NULL, HFILL }},
25104 { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator,
25105 { "ip-sm-gwGuidanceIndicator", "gsm_map.sm.ip_sm_gwGuidanceIndicator_element",
25106 FT_NONE, BASE_NONE, NULL, 0,
25107 NULL, HFILL }},
25108 { &hf_gsm_map_sm_imsi,
25109 { "imsi", "gsm_map.sm.imsi",
25110 FT_BYTES, BASE_NONE, NULL, 0,
25111 NULL, HFILL }},
25112 { &hf_gsm_map_sm_t4_Trigger_Indicator,
25113 { "t4-Trigger-Indicator", "gsm_map.sm.t4_Trigger_Indicator_element",
25114 FT_NONE, BASE_NONE, NULL, 0,
25115 NULL, HFILL }},
25116 { &hf_gsm_map_sm_singleAttemptDelivery,
25117 { "singleAttemptDelivery", "gsm_map.sm.singleAttemptDelivery_element",
25118 FT_NONE, BASE_NONE, NULL, 0,
25119 NULL, HFILL }},
25120 { &hf_gsm_map_sm_correlationID,
25121 { "correlationID", "gsm_map.sm.correlationID_element",
25122 FT_NONE, BASE_NONE, NULL, 0,
25123 NULL, HFILL }},
25124 { &hf_gsm_map_sm_smsf_supportIndicator,
25125 { "smsf-supportIndicator", "gsm_map.sm.smsf_supportIndicator_element",
25126 FT_NONE, BASE_NONE, NULL, 0,
25127 NULL, HFILL }},
25128 { &hf_gsm_map_sm_locationInfoWithLMSI,
25129 { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI_element",
25130 FT_NONE, BASE_NONE, NULL, 0,
25131 NULL, HFILL }},
25132 { &hf_gsm_map_sm_ip_sm_gwGuidance,
25133 { "ip-sm-gwGuidance", "gsm_map.sm.ip_sm_gwGuidance_element",
25134 FT_NONE, BASE_NONE, NULL, 0,
25135 "IP_SM_GW_Guidance", HFILL }},
25136 { &hf_gsm_map_sm_minimumDeliveryTimeValue,
25137 { "minimumDeliveryTimeValue", "gsm_map.sm.minimumDeliveryTimeValue",
25138 FT_UINT32, BASE_DEC, NULL, 0,
25139 "SM_DeliveryTimerValue", HFILL }},
25140 { &hf_gsm_map_sm_recommendedDeliveryTimeValue,
25141 { "recommendedDeliveryTimeValue", "gsm_map.sm.recommendedDeliveryTimeValue",
25142 FT_UINT32, BASE_DEC, NULL, 0,
25143 "SM_DeliveryTimerValue", HFILL }},
25144 { &hf_gsm_map_sm_networkNode_Number,
25145 { "networkNode-Number", "gsm_map.sm.networkNode_Number",
25146 FT_BYTES, BASE_NONE, NULL, 0,
25147 "ISDN_AddressString", HFILL }},
25148 { &hf_gsm_map_sm_lmsi,
25149 { "lmsi", "gsm_map.sm.lmsi",
25150 FT_BYTES, BASE_NONE, NULL, 0,
25151 NULL, HFILL }},
25152 { &hf_gsm_map_sm_gprsNodeIndicator,
25153 { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator_element",
25154 FT_NONE, BASE_NONE, NULL, 0,
25155 NULL, HFILL }},
25156 { &hf_gsm_map_sm_additional_Number,
25157 { "additional-Number", "gsm_map.sm.additional_Number",
25158 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
25159 NULL, HFILL }},
25160 { &hf_gsm_map_sm_networkNodeDiameterAddress,
25161 { "networkNodeDiameterAddress", "gsm_map.sm.networkNodeDiameterAddress_element",
25162 FT_NONE, BASE_NONE, NULL, 0,
25163 NULL, HFILL }},
25164 { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress,
25165 { "additionalNetworkNodeDiameterAddress", "gsm_map.sm.additionalNetworkNodeDiameterAddress_element",
25166 FT_NONE, BASE_NONE, NULL, 0,
25167 "NetworkNodeDiameterAddress", HFILL }},
25168 { &hf_gsm_map_sm_thirdNumber,
25169 { "thirdNumber", "gsm_map.sm.thirdNumber",
25170 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
25171 "Additional_Number", HFILL }},
25172 { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress,
25173 { "thirdNetworkNodeDiameterAddress", "gsm_map.sm.thirdNetworkNodeDiameterAddress_element",
25174 FT_NONE, BASE_NONE, NULL, 0,
25175 "NetworkNodeDiameterAddress", HFILL }},
25176 { &hf_gsm_map_sm_imsNodeIndicator,
25177 { "imsNodeIndicator", "gsm_map.sm.imsNodeIndicator_element",
25178 FT_NONE, BASE_NONE, NULL, 0,
25179 NULL, HFILL }},
25180 { &hf_gsm_map_sm_smsf_3gpp_Number,
25181 { "smsf-3gpp-Number", "gsm_map.sm.smsf_3gpp_Number",
25182 FT_BYTES, BASE_NONE, NULL, 0,
25183 "ISDN_AddressString", HFILL }},
25184 { &hf_gsm_map_sm_smsf_3gpp_DiameterAddress,
25185 { "smsf-3gpp-DiameterAddress", "gsm_map.sm.smsf_3gpp_DiameterAddress_element",
25186 FT_NONE, BASE_NONE, NULL, 0,
25187 "NetworkNodeDiameterAddress", HFILL }},
25188 { &hf_gsm_map_sm_smsf_non_3gpp_Number,
25189 { "smsf-non-3gpp-Number", "gsm_map.sm.smsf_non_3gpp_Number",
25190 FT_BYTES, BASE_NONE, NULL, 0,
25191 "ISDN_AddressString", HFILL }},
25192 { &hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress,
25193 { "smsf-non-3gpp-DiameterAddress", "gsm_map.sm.smsf_non_3gpp_DiameterAddress_element",
25194 FT_NONE, BASE_NONE, NULL, 0,
25195 "NetworkNodeDiameterAddress", HFILL }},
25196 { &hf_gsm_map_sm_smsf_3gpp_address_indicator,
25197 { "smsf-3gpp-address-indicator", "gsm_map.sm.smsf_3gpp_address_indicator_element",
25198 FT_NONE, BASE_NONE, NULL, 0,
25199 NULL, HFILL }},
25200 { &hf_gsm_map_sm_smsf_non_3gpp_address_indicator,
25201 { "smsf-non-3gpp-address-indicator", "gsm_map.sm.smsf_non_3gpp_address_indicator_element",
25202 FT_NONE, BASE_NONE, NULL, 0,
25203 NULL, HFILL }},
25204 { &hf_gsm_map_sm_msc_Number,
25205 { "msc-Number", "gsm_map.sm.msc_Number",
25206 FT_BYTES, BASE_NONE, NULL, 0,
25207 "ISDN_AddressString", HFILL }},
25208 { &hf_gsm_map_sm_sgsn_Number,
25209 { "sgsn-Number", "gsm_map.sm.sgsn_Number",
25210 FT_BYTES, BASE_NONE, NULL, 0,
25211 "ISDN_AddressString", HFILL }},
25212 { &hf_gsm_map_sm_sm_RP_DA,
25213 { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
25214 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
25215 NULL, HFILL }},
25216 { &hf_gsm_map_sm_sm_RP_OA,
25217 { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
25218 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
25219 NULL, HFILL }},
25220 { &hf_gsm_map_sm_sm_RP_UI,
25221 { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
25222 FT_BYTES, BASE_NONE, NULL, 0,
25223 "SignalInfo", HFILL }},
25224 { &hf_gsm_map_sm_sm_DeliveryOutcome,
25225 { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
25226 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
25227 NULL, HFILL }},
25228 { &hf_gsm_map_sm_moreMessagesToSend,
25229 { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend_element",
25230 FT_NONE, BASE_NONE, NULL, 0,
25231 NULL, HFILL }},
25232 { &hf_gsm_map_sm_smDeliveryTimer,
25233 { "smDeliveryTimer", "gsm_map.sm.smDeliveryTimer",
25234 FT_UINT32, BASE_DEC, NULL, 0,
25235 "SM_DeliveryTimerValue", HFILL }},
25236 { &hf_gsm_map_sm_smDeliveryStartTime,
25237 { "smDeliveryStartTime", "gsm_map.sm.smDeliveryStartTime",
25238 FT_BYTES, BASE_NONE, NULL, 0,
25239 "Time", HFILL }},
25240 { &hf_gsm_map_sm_smsOverIP_OnlyIndicator,
25241 { "smsOverIP-OnlyIndicator", "gsm_map.sm.smsOverIP_OnlyIndicator_element",
25242 FT_NONE, BASE_NONE, NULL, 0,
25243 NULL, HFILL }},
25244 { &hf_gsm_map_sm_maximumRetransmissionTime,
25245 { "maximumRetransmissionTime", "gsm_map.sm.maximumRetransmissionTime",
25246 FT_BYTES, BASE_NONE, NULL, 0,
25247 "Time", HFILL }},
25248 { &hf_gsm_map_sm_smsGmscAddress,
25249 { "smsGmscAddress", "gsm_map.sm.smsGmscAddress",
25250 FT_BYTES, BASE_NONE, NULL, 0,
25251 "ISDN_AddressString", HFILL }},
25252 { &hf_gsm_map_sm_smsGmscDiameterAddress,
25253 { "smsGmscDiameterAddress", "gsm_map.sm.smsGmscDiameterAddress_element",
25254 FT_NONE, BASE_NONE, NULL, 0,
25255 "NetworkNodeDiameterAddress", HFILL }},
25256 { &hf_gsm_map_sm_hlr_id,
25257 { "hlr-id", "gsm_map.sm.hlr_id",
25258 FT_BYTES, BASE_NONE, NULL, 0,
25259 NULL, HFILL }},
25260 { &hf_gsm_map_sm_sip_uri_A,
25261 { "sip-uri-A", "gsm_map.sm.sip_uri_A",
25262 FT_BYTES, BASE_NONE, NULL, 0,
25263 "SIP_URI", HFILL }},
25264 { &hf_gsm_map_sm_sip_uri_B,
25265 { "sip-uri-B", "gsm_map.sm.sip_uri_B",
25266 FT_BYTES, BASE_NONE, NULL, 0,
25267 "SIP_URI", HFILL }},
25268 { &hf_gsm_map_sm_imsi_01,
25269 { "imsi", "gsm_map.sm.imsi",
25270 FT_BYTES, BASE_NONE, NULL, 0,
25271 NULL, HFILL }},
25272 { &hf_gsm_map_sm_lmsi_01,
25273 { "lmsi", "gsm_map.sm.lmsi",
25274 FT_BYTES, BASE_NONE, NULL, 0,
25275 NULL, HFILL }},
25276 { &hf_gsm_map_sm_serviceCentreAddressDA,
25277 { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
25278 FT_BYTES, BASE_NONE, NULL, 0,
25279 NULL, HFILL }},
25280 { &hf_gsm_map_sm_noSM_RP_DA,
25281 { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA_element",
25282 FT_NONE, BASE_NONE, NULL, 0,
25283 NULL, HFILL }},
25284 { &hf_gsm_map_sm_msisdn_01,
25285 { "msisdn", "gsm_map.sm.msisdn",
25286 FT_BYTES, BASE_NONE, NULL, 0,
25287 NULL, HFILL }},
25288 { &hf_gsm_map_sm_serviceCentreAddressOA,
25289 { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
25290 FT_BYTES, BASE_NONE, NULL, 0,
25291 NULL, HFILL }},
25292 { &hf_gsm_map_sm_noSM_RP_OA,
25293 { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA_element",
25294 FT_NONE, BASE_NONE, NULL, 0,
25295 NULL, HFILL }},
25296 { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
25297 { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
25298 FT_UINT32, BASE_DEC, NULL, 0,
25299 NULL, HFILL }},
25300 { &hf_gsm_map_sm_deliveryOutcomeIndicator,
25301 { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator_element",
25302 FT_NONE, BASE_NONE, NULL, 0,
25303 NULL, HFILL }},
25304 { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
25305 { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
25306 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
25307 "SM_DeliveryOutcome", HFILL }},
25308 { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
25309 { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
25310 FT_UINT32, BASE_DEC, NULL, 0,
25311 "AbsentSubscriberDiagnosticSM", HFILL }},
25312 { &hf_gsm_map_sm_ip_sm_gw_Indicator,
25313 { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator_element",
25314 FT_NONE, BASE_NONE, NULL, 0,
25315 NULL, HFILL }},
25316 { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
25317 { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
25318 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
25319 "SM_DeliveryOutcome", HFILL }},
25320 { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
25321 { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
25322 FT_UINT32, BASE_DEC, NULL, 0,
25323 "AbsentSubscriberDiagnosticSM", HFILL }},
25324 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator,
25325 { "smsf-3gpp-deliveryOutcomeIndicator", "gsm_map.sm.smsf_3gpp_deliveryOutcomeIndicator_element",
25326 FT_NONE, BASE_NONE, NULL, 0,
25327 NULL, HFILL }},
25328 { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcome,
25329 { "smsf-3gpp-deliveryOutcome", "gsm_map.sm.smsf_3gpp_deliveryOutcome",
25330 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
25331 "SM_DeliveryOutcome", HFILL }},
25332 { &hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM,
25333 { "smsf-3gpp-absentSubscriberDiagSM", "gsm_map.sm.smsf_3gpp_absentSubscriberDiagSM",
25334 FT_UINT32, BASE_DEC, NULL, 0,
25335 "AbsentSubscriberDiagnosticSM", HFILL }},
25336 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator,
25337 { "smsf-non-3gpp-deliveryOutcomeIndicator", "gsm_map.sm.smsf_non_3gpp_deliveryOutcomeIndicator_element",
25338 FT_NONE, BASE_NONE, NULL, 0,
25339 NULL, HFILL }},
25340 { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome,
25341 { "smsf-non-3gpp-deliveryOutcome", "gsm_map.sm.smsf_non_3gpp_deliveryOutcome",
25342 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
25343 "SM_DeliveryOutcome", HFILL }},
25344 { &hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM,
25345 { "smsf-non-3gpp-absentSubscriberDiagSM", "gsm_map.sm.smsf_non_3gpp_absentSubscriberDiagSM",
25346 FT_UINT32, BASE_DEC, NULL, 0,
25347 "AbsentSubscriberDiagnosticSM", HFILL }},
25348 { &hf_gsm_map_sm_storedMSISDN,
25349 { "storedMSISDN", "gsm_map.sm.storedMSISDN",
25350 FT_BYTES, BASE_NONE, NULL, 0,
25351 "ISDN_AddressString", HFILL }},
25352 { &hf_gsm_map_sm_maximumUeAvailabilityTime,
25353 { "maximumUeAvailabilityTime", "gsm_map.sm.maximumUeAvailabilityTime",
25354 FT_BYTES, BASE_NONE, NULL, 0,
25355 "Time", HFILL }},
25356 { &hf_gsm_map_sm_smsGmscAlertEvent,
25357 { "smsGmscAlertEvent", "gsm_map.sm.smsGmscAlertEvent",
25358 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SmsGmsc_Alert_Event_vals), 0,
25359 "SmsGmsc_Alert_Event", HFILL }},
25360 { &hf_gsm_map_sm_newSGSNNumber,
25361 { "newSGSNNumber", "gsm_map.sm.newSGSNNumber",
25362 FT_BYTES, BASE_NONE, NULL, 0,
25363 "ISDN_AddressString", HFILL }},
25364 { &hf_gsm_map_sm_newSGSNDiameterAddress,
25365 { "newSGSNDiameterAddress", "gsm_map.sm.newSGSNDiameterAddress_element",
25366 FT_NONE, BASE_NONE, NULL, 0,
25367 "NetworkNodeDiameterAddress", HFILL }},
25368 { &hf_gsm_map_sm_newMMENumber,
25369 { "newMMENumber", "gsm_map.sm.newMMENumber",
25370 FT_BYTES, BASE_NONE, NULL, 0,
25371 "ISDN_AddressString", HFILL }},
25372 { &hf_gsm_map_sm_newMMEDiameterAddress,
25373 { "newMMEDiameterAddress", "gsm_map.sm.newMMEDiameterAddress_element",
25374 FT_NONE, BASE_NONE, NULL, 0,
25375 "NetworkNodeDiameterAddress", HFILL }},
25376 { &hf_gsm_map_sm_newMSCNumber,
25377 { "newMSCNumber", "gsm_map.sm.newMSCNumber",
25378 FT_BYTES, BASE_NONE, NULL, 0,
25379 "ISDN_AddressString", HFILL }},
25380 { &hf_gsm_map_sm_mw_Status,
25381 { "mw-Status", "gsm_map.sm.mw_Status",
25382 FT_BYTES, BASE_NONE, NULL, 0,
25383 NULL, HFILL }},
25384 { &hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM,
25385 { "smsf3gppAbsentSubscriberDiagnosticSM", "gsm_map.sm.smsf3gppAbsentSubscriberDiagnosticSM",
25386 FT_UINT32, BASE_DEC, NULL, 0,
25387 "AbsentSubscriberDiagnosticSM", HFILL }},
25388 { &hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM,
25389 { "smsfNon3gppAbsentSubscriberDiagnosticSM", "gsm_map.sm.smsfNon3gppAbsentSubscriberDiagnosticSM",
25390 FT_UINT32, BASE_DEC, NULL, 0,
25391 "AbsentSubscriberDiagnosticSM", HFILL }},
25392 { &hf_gsm_map_sm_alertReason,
25393 { "alertReason", "gsm_map.sm.alertReason",
25394 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
25395 NULL, HFILL }},
25396 { &hf_gsm_map_sm_alertReasonIndicator,
25397 { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator_element",
25398 FT_NONE, BASE_NONE, NULL, 0,
25399 NULL, HFILL }},
25400 { &hf_gsm_map_sm_additionalAlertReasonIndicator,
25401 { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator_element",
25402 FT_NONE, BASE_NONE, NULL, 0,
25403 NULL, HFILL }},
25404 { &hf_gsm_map_sm_asciCallReference,
25405 { "asciCallReference", "gsm_map.sm.asciCallReference",
25406 FT_BYTES, BASE_NONE, NULL, 0,
25407 "ASCI_CallReference", HFILL }},
25408 { &hf_gsm_map_sm_dispatcherList,
25409 { "dispatcherList", "gsm_map.sm.dispatcherList",
25410 FT_UINT32, BASE_DEC, NULL, 0,
25411 NULL, HFILL }},
25412 { &hf_gsm_map_sm_ongoingCall,
25413 { "ongoingCall", "gsm_map.sm.ongoingCall_element",
25414 FT_NONE, BASE_NONE, NULL, 0,
25415 NULL, HFILL }},
25416 { &hf_gsm_map_sm_additionalDispatcherList,
25417 { "additionalDispatcherList", "gsm_map.sm.additionalDispatcherList",
25418 FT_UINT32, BASE_DEC, NULL, 0,
25419 NULL, HFILL }},
25420 { &hf_gsm_map_sm_DispatcherList_item,
25421 { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
25422 FT_BYTES, BASE_NONE, NULL, 0,
25423 NULL, HFILL }},
25424 { &hf_gsm_map_sm_AdditionalDispatcherList_item,
25425 { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
25426 FT_BYTES, BASE_NONE, NULL, 0,
25427 NULL, HFILL }},
25428 { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
25429 { "sc-AddressNotIncluded", "gsm.map.sm.MW.Status.sc.AddressNotIncluded",
25430 FT_BOOLEAN, 8, NULL, 0x80,
25431 NULL, HFILL }},
25432 { &hf_gsm_map_sm_MW_Status_mnrf_Set,
25433 { "mnrf-Set", "gsm.map.sm.MW.Status.mnrf.Set",
25434 FT_BOOLEAN, 8, NULL, 0x40,
25435 NULL, HFILL }},
25436 { &hf_gsm_map_sm_MW_Status_mcef_Set,
25437 { "mcef-Set", "gsm.map.sm.MW.Status.mcef.Set",
25438 FT_BOOLEAN, 8, NULL, 0x20,
25439 NULL, HFILL }},
25440 { &hf_gsm_map_sm_MW_Status_mnrg_Set,
25441 { "mnrg-Set", "gsm.map.sm.MW.Status.mnrg.Set",
25442 FT_BOOLEAN, 8, NULL, 0x10,
25443 NULL, HFILL }},
25444 { &hf_gsm_map_sm_MW_Status_mnr5g_Set,
25445 { "mnr5g-Set", "gsm.map.sm.MW.Status.mnr5g.Set",
25446 FT_BOOLEAN, 8, NULL, 0x08,
25447 NULL, HFILL }},
25448 { &hf_gsm_map_sm_MW_Status_mnr5gn3g_Set,
25449 { "mnr5gn3g-Set", "gsm.map.sm.MW.Status.mnr5gn3g.Set",
25450 FT_BOOLEAN, 8, NULL, 0x04,
25451 NULL, HFILL }},
25453 /* --- Module MAP-OM-DataTypes --- --- --- */
25455 { &hf_gsm_map_om_imsi,
25456 { "imsi", "gsm_map.om.imsi",
25457 FT_BYTES, BASE_NONE, NULL, 0,
25458 NULL, HFILL }},
25459 { &hf_gsm_map_om_traceReference,
25460 { "traceReference", "gsm_map.om.traceReference",
25461 FT_BYTES, BASE_NONE, NULL, 0,
25462 NULL, HFILL }},
25463 { &hf_gsm_map_om_traceType,
25464 { "traceType", "gsm_map.om.traceType",
25465 FT_UINT32, BASE_DEC, NULL, 0,
25466 NULL, HFILL }},
25467 { &hf_gsm_map_om_omc_Id,
25468 { "omc-Id", "gsm_map.om.omc_Id",
25469 FT_BYTES, BASE_NONE, NULL, 0,
25470 "AddressString", HFILL }},
25471 { &hf_gsm_map_om_extensionContainer,
25472 { "extensionContainer", "gsm_map.om.extensionContainer_element",
25473 FT_NONE, BASE_NONE, NULL, 0,
25474 NULL, HFILL }},
25475 { &hf_gsm_map_om_traceReference2,
25476 { "traceReference2", "gsm_map.om.traceReference2",
25477 FT_BYTES, BASE_NONE, NULL, 0,
25478 NULL, HFILL }},
25479 { &hf_gsm_map_om_traceDepthList,
25480 { "traceDepthList", "gsm_map.om.traceDepthList_element",
25481 FT_NONE, BASE_NONE, NULL, 0,
25482 NULL, HFILL }},
25483 { &hf_gsm_map_om_traceNE_TypeList,
25484 { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
25485 FT_BYTES, BASE_NONE, NULL, 0,
25486 NULL, HFILL }},
25487 { &hf_gsm_map_om_traceInterfaceList,
25488 { "traceInterfaceList", "gsm_map.om.traceInterfaceList_element",
25489 FT_NONE, BASE_NONE, NULL, 0,
25490 NULL, HFILL }},
25491 { &hf_gsm_map_om_traceEventList,
25492 { "traceEventList", "gsm_map.om.traceEventList_element",
25493 FT_NONE, BASE_NONE, NULL, 0,
25494 NULL, HFILL }},
25495 { &hf_gsm_map_om_traceCollectionEntity,
25496 { "traceCollectionEntity", "gsm_map.om.traceCollectionEntity",
25497 FT_BYTES, BASE_NONE, NULL, 0,
25498 "GSN_Address", HFILL }},
25499 { &hf_gsm_map_om_mdt_Configuration,
25500 { "mdt-Configuration", "gsm_map.om.mdt_Configuration_element",
25501 FT_NONE, BASE_NONE, NULL, 0,
25502 NULL, HFILL }},
25503 { &hf_gsm_map_om_jobType,
25504 { "jobType", "gsm_map.om.jobType",
25505 FT_UINT32, BASE_DEC, VALS(gsm_map_om_JobType_vals), 0,
25506 NULL, HFILL }},
25507 { &hf_gsm_map_om_areaScope,
25508 { "areaScope", "gsm_map.om.areaScope_element",
25509 FT_NONE, BASE_NONE, NULL, 0,
25510 NULL, HFILL }},
25511 { &hf_gsm_map_om_listOfMeasurements,
25512 { "listOfMeasurements", "gsm_map.om.listOfMeasurements",
25513 FT_BYTES, BASE_NONE, NULL, 0,
25514 NULL, HFILL }},
25515 { &hf_gsm_map_om_reportingTrigger,
25516 { "reportingTrigger", "gsm_map.om.reportingTrigger",
25517 FT_BYTES, BASE_NONE, NULL, 0,
25518 NULL, HFILL }},
25519 { &hf_gsm_map_om_reportInterval,
25520 { "reportInterval", "gsm_map.om.reportInterval",
25521 FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportInterval_vals), 0,
25522 NULL, HFILL }},
25523 { &hf_gsm_map_om_reportAmount,
25524 { "reportAmount", "gsm_map.om.reportAmount",
25525 FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportAmount_vals), 0,
25526 NULL, HFILL }},
25527 { &hf_gsm_map_om_eventThresholdRSRP,
25528 { "eventThresholdRSRP", "gsm_map.om.eventThresholdRSRP",
25529 FT_UINT32, BASE_DEC, NULL, 0,
25530 NULL, HFILL }},
25531 { &hf_gsm_map_om_eventThresholdRSRQ,
25532 { "eventThresholdRSRQ", "gsm_map.om.eventThresholdRSRQ",
25533 FT_UINT32, BASE_DEC, NULL, 0,
25534 NULL, HFILL }},
25535 { &hf_gsm_map_om_loggingInterval,
25536 { "loggingInterval", "gsm_map.om.loggingInterval",
25537 FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingInterval_vals), 0,
25538 NULL, HFILL }},
25539 { &hf_gsm_map_om_loggingDuration,
25540 { "loggingDuration", "gsm_map.om.loggingDuration",
25541 FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingDuration_vals), 0,
25542 NULL, HFILL }},
25543 { &hf_gsm_map_om_measurementPeriodUMTS,
25544 { "measurementPeriodUMTS", "gsm_map.om.measurementPeriodUMTS",
25545 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodUMTS_vals), 0,
25546 "PeriodUMTS", HFILL }},
25547 { &hf_gsm_map_om_measurementPeriodLTE,
25548 { "measurementPeriodLTE", "gsm_map.om.measurementPeriodLTE",
25549 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodLTE_vals), 0,
25550 "PeriodLTE", HFILL }},
25551 { &hf_gsm_map_om_collectionPeriodRRM_UMTS,
25552 { "collectionPeriodRRM-UMTS", "gsm_map.om.collectionPeriodRRM_UMTS",
25553 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodUMTS_vals), 0,
25554 "PeriodUMTS", HFILL }},
25555 { &hf_gsm_map_om_collectionPeriodRRM_LTE,
25556 { "collectionPeriodRRM-LTE", "gsm_map.om.collectionPeriodRRM_LTE",
25557 FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodLTE_vals), 0,
25558 "PeriodLTE", HFILL }},
25559 { &hf_gsm_map_om_positioningMethod,
25560 { "positioningMethod", "gsm_map.om.positioningMethod",
25561 FT_BYTES, BASE_NONE, NULL, 0,
25562 NULL, HFILL }},
25563 { &hf_gsm_map_om_measurementQuantity,
25564 { "measurementQuantity", "gsm_map.om.measurementQuantity",
25565 FT_BYTES, BASE_NONE, NULL, 0,
25566 NULL, HFILL }},
25567 { &hf_gsm_map_om_eventThreshold1F,
25568 { "eventThreshold1F", "gsm_map.om.eventThreshold1F",
25569 FT_INT32, BASE_DEC, NULL, 0,
25570 NULL, HFILL }},
25571 { &hf_gsm_map_om_eventThreshold1I,
25572 { "eventThreshold1I", "gsm_map.om.eventThreshold1I",
25573 FT_INT32, BASE_DEC, NULL, 0,
25574 NULL, HFILL }},
25575 { &hf_gsm_map_om_mdt_Allowed_PLMN_List,
25576 { "mdt-Allowed-PLMN-List", "gsm_map.om.mdt_Allowed_PLMN_List",
25577 FT_UINT32, BASE_DEC, NULL, 0,
25578 "MDT_Allowed_PLMNId_List", HFILL }},
25579 { &hf_gsm_map_om_MDT_Allowed_PLMNId_List_item,
25580 { "PLMN-Id", "gsm_map.om.PLMN_Id",
25581 FT_BYTES, BASE_NONE, NULL, 0,
25582 NULL, HFILL }},
25583 { &hf_gsm_map_om_cgi_List,
25584 { "cgi-List", "gsm_map.om.cgi_List",
25585 FT_UINT32, BASE_DEC, NULL, 0,
25586 NULL, HFILL }},
25587 { &hf_gsm_map_om_e_utran_cgi_List,
25588 { "e-utran-cgi-List", "gsm_map.om.e_utran_cgi_List",
25589 FT_UINT32, BASE_DEC, NULL, 0,
25590 NULL, HFILL }},
25591 { &hf_gsm_map_om_routingAreaId_List,
25592 { "routingAreaId-List", "gsm_map.om.routingAreaId_List",
25593 FT_UINT32, BASE_DEC, NULL, 0,
25594 NULL, HFILL }},
25595 { &hf_gsm_map_om_locationAreaId_List,
25596 { "locationAreaId-List", "gsm_map.om.locationAreaId_List",
25597 FT_UINT32, BASE_DEC, NULL, 0,
25598 NULL, HFILL }},
25599 { &hf_gsm_map_om_trackingAreaId_List,
25600 { "trackingAreaId-List", "gsm_map.om.trackingAreaId_List",
25601 FT_UINT32, BASE_DEC, NULL, 0,
25602 NULL, HFILL }},
25603 { &hf_gsm_map_om_CGI_List_item,
25604 { "GlobalCellId", "gsm_map.om.GlobalCellId",
25605 FT_BYTES, BASE_NONE, NULL, 0,
25606 NULL, HFILL }},
25607 { &hf_gsm_map_om_E_UTRAN_CGI_List_item,
25608 { "E-UTRAN-CGI", "gsm_map.om.E_UTRAN_CGI",
25609 FT_BYTES, BASE_NONE, NULL, 0,
25610 NULL, HFILL }},
25611 { &hf_gsm_map_om_RoutingAreaId_List_item,
25612 { "RAIdentity", "gsm_map.om.RAIdentity",
25613 FT_BYTES, BASE_NONE, NULL, 0,
25614 NULL, HFILL }},
25615 { &hf_gsm_map_om_LocationAreaId_List_item,
25616 { "LAIFixedLength", "gsm_map.om.LAIFixedLength",
25617 FT_BYTES, BASE_NONE, NULL, 0,
25618 NULL, HFILL }},
25619 { &hf_gsm_map_om_TrackingAreaId_List_item,
25620 { "TA-Id", "gsm_map.om.TA_Id",
25621 FT_BYTES, BASE_NONE, NULL, 0,
25622 NULL, HFILL }},
25623 { &hf_gsm_map_om_msc_s_TraceDepth,
25624 { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
25625 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25626 "TraceDepth", HFILL }},
25627 { &hf_gsm_map_om_mgw_TraceDepth,
25628 { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
25629 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25630 "TraceDepth", HFILL }},
25631 { &hf_gsm_map_om_sgsn_TraceDepth,
25632 { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
25633 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25634 "TraceDepth", HFILL }},
25635 { &hf_gsm_map_om_ggsn_TraceDepth,
25636 { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
25637 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25638 "TraceDepth", HFILL }},
25639 { &hf_gsm_map_om_rnc_TraceDepth,
25640 { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
25641 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25642 "TraceDepth", HFILL }},
25643 { &hf_gsm_map_om_bmsc_TraceDepth,
25644 { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
25645 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25646 "TraceDepth", HFILL }},
25647 { &hf_gsm_map_om_mme_TraceDepth,
25648 { "mme-TraceDepth", "gsm_map.om.mme_TraceDepth",
25649 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25650 "TraceDepth", HFILL }},
25651 { &hf_gsm_map_om_sgw_TraceDepth,
25652 { "sgw-TraceDepth", "gsm_map.om.sgw_TraceDepth",
25653 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25654 "TraceDepth", HFILL }},
25655 { &hf_gsm_map_om_pgw_TraceDepth,
25656 { "pgw-TraceDepth", "gsm_map.om.pgw_TraceDepth",
25657 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25658 "TraceDepth", HFILL }},
25659 { &hf_gsm_map_om_eNB_TraceDepth,
25660 { "eNB-TraceDepth", "gsm_map.om.eNB_TraceDepth",
25661 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
25662 "TraceDepth", HFILL }},
25663 { &hf_gsm_map_om_msc_s_TraceDepthExtension,
25664 { "msc-s-TraceDepthExtension", "gsm_map.om.msc_s_TraceDepthExtension",
25665 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25666 "TraceDepthExtension", HFILL }},
25667 { &hf_gsm_map_om_mgw_TraceDepthExtension,
25668 { "mgw-TraceDepthExtension", "gsm_map.om.mgw_TraceDepthExtension",
25669 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25670 "TraceDepthExtension", HFILL }},
25671 { &hf_gsm_map_om_sgsn_TraceDepthExtension,
25672 { "sgsn-TraceDepthExtension", "gsm_map.om.sgsn_TraceDepthExtension",
25673 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25674 "TraceDepthExtension", HFILL }},
25675 { &hf_gsm_map_om_ggsn_TraceDepthExtension,
25676 { "ggsn-TraceDepthExtension", "gsm_map.om.ggsn_TraceDepthExtension",
25677 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25678 "TraceDepthExtension", HFILL }},
25679 { &hf_gsm_map_om_rnc_TraceDepthExtension,
25680 { "rnc-TraceDepthExtension", "gsm_map.om.rnc_TraceDepthExtension",
25681 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25682 "TraceDepthExtension", HFILL }},
25683 { &hf_gsm_map_om_bmsc_TraceDepthExtension,
25684 { "bmsc-TraceDepthExtension", "gsm_map.om.bmsc_TraceDepthExtension",
25685 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25686 "TraceDepthExtension", HFILL }},
25687 { &hf_gsm_map_om_mme_TraceDepthExtension,
25688 { "mme-TraceDepthExtension", "gsm_map.om.mme_TraceDepthExtension",
25689 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25690 "TraceDepthExtension", HFILL }},
25691 { &hf_gsm_map_om_sgw_TraceDepthExtension,
25692 { "sgw-TraceDepthExtension", "gsm_map.om.sgw_TraceDepthExtension",
25693 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25694 "TraceDepthExtension", HFILL }},
25695 { &hf_gsm_map_om_pgw_TraceDepthExtension,
25696 { "pgw-TraceDepthExtension", "gsm_map.om.pgw_TraceDepthExtension",
25697 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25698 "TraceDepthExtension", HFILL }},
25699 { &hf_gsm_map_om_eNB_TraceDepthExtension,
25700 { "eNB-TraceDepthExtension", "gsm_map.om.eNB_TraceDepthExtension",
25701 FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
25702 "TraceDepthExtension", HFILL }},
25703 { &hf_gsm_map_om_msc_s_List,
25704 { "msc-s-List", "gsm_map.om.msc_s_List",
25705 FT_BYTES, BASE_NONE, NULL, 0,
25706 "MSC_S_InterfaceList", HFILL }},
25707 { &hf_gsm_map_om_mgw_List,
25708 { "mgw-List", "gsm_map.om.mgw_List",
25709 FT_BYTES, BASE_NONE, NULL, 0,
25710 "MGW_InterfaceList", HFILL }},
25711 { &hf_gsm_map_om_sgsn_List,
25712 { "sgsn-List", "gsm_map.om.sgsn_List",
25713 FT_BYTES, BASE_NONE, NULL, 0,
25714 "SGSN_InterfaceList", HFILL }},
25715 { &hf_gsm_map_om_ggsn_List,
25716 { "ggsn-List", "gsm_map.om.ggsn_List",
25717 FT_BYTES, BASE_NONE, NULL, 0,
25718 "GGSN_InterfaceList", HFILL }},
25719 { &hf_gsm_map_om_rnc_List,
25720 { "rnc-List", "gsm_map.om.rnc_List",
25721 FT_BYTES, BASE_NONE, NULL, 0,
25722 "RNC_InterfaceList", HFILL }},
25723 { &hf_gsm_map_om_bmsc_List,
25724 { "bmsc-List", "gsm_map.om.bmsc_List",
25725 FT_BYTES, BASE_NONE, NULL, 0,
25726 "BMSC_InterfaceList", HFILL }},
25727 { &hf_gsm_map_om_mme_List,
25728 { "mme-List", "gsm_map.om.mme_List",
25729 FT_BYTES, BASE_NONE, NULL, 0,
25730 "MME_InterfaceList", HFILL }},
25731 { &hf_gsm_map_om_sgw_List,
25732 { "sgw-List", "gsm_map.om.sgw_List",
25733 FT_BYTES, BASE_NONE, NULL, 0,
25734 "SGW_InterfaceList", HFILL }},
25735 { &hf_gsm_map_om_pgw_List,
25736 { "pgw-List", "gsm_map.om.pgw_List",
25737 FT_BYTES, BASE_NONE, NULL, 0,
25738 "PGW_InterfaceList", HFILL }},
25739 { &hf_gsm_map_om_eNB_List,
25740 { "eNB-List", "gsm_map.om.eNB_List",
25741 FT_BYTES, BASE_NONE, NULL, 0,
25742 "ENB_InterfaceList", HFILL }},
25743 { &hf_gsm_map_om_msc_s_List_01,
25744 { "msc-s-List", "gsm_map.om.msc_s_List",
25745 FT_BYTES, BASE_NONE, NULL, 0,
25746 "MSC_S_EventList", HFILL }},
25747 { &hf_gsm_map_om_mgw_List_01,
25748 { "mgw-List", "gsm_map.om.mgw_List",
25749 FT_BYTES, BASE_NONE, NULL, 0,
25750 "MGW_EventList", HFILL }},
25751 { &hf_gsm_map_om_sgsn_List_01,
25752 { "sgsn-List", "gsm_map.om.sgsn_List",
25753 FT_BYTES, BASE_NONE, NULL, 0,
25754 "SGSN_EventList", HFILL }},
25755 { &hf_gsm_map_om_ggsn_List_01,
25756 { "ggsn-List", "gsm_map.om.ggsn_List",
25757 FT_BYTES, BASE_NONE, NULL, 0,
25758 "GGSN_EventList", HFILL }},
25759 { &hf_gsm_map_om_bmsc_List_01,
25760 { "bmsc-List", "gsm_map.om.bmsc_List",
25761 FT_BYTES, BASE_NONE, NULL, 0,
25762 "BMSC_EventList", HFILL }},
25763 { &hf_gsm_map_om_mme_List_01,
25764 { "mme-List", "gsm_map.om.mme_List",
25765 FT_BYTES, BASE_NONE, NULL, 0,
25766 "MME_EventList", HFILL }},
25767 { &hf_gsm_map_om_sgw_List_01,
25768 { "sgw-List", "gsm_map.om.sgw_List",
25769 FT_BYTES, BASE_NONE, NULL, 0,
25770 "SGW_EventList", HFILL }},
25771 { &hf_gsm_map_om_pgw_List_01,
25772 { "pgw-List", "gsm_map.om.pgw_List",
25773 FT_BYTES, BASE_NONE, NULL, 0,
25774 "PGW_EventList", HFILL }},
25775 { &hf_gsm_map_om_traceRecordingSessionReference,
25776 { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
25777 FT_BYTES, BASE_NONE, NULL, 0,
25778 NULL, HFILL }},
25779 { &hf_gsm_map_om_rnc_InterfaceList,
25780 { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
25781 FT_BYTES, BASE_NONE, NULL, 0,
25782 NULL, HFILL }},
25783 { &hf_gsm_map_om_msc_s_InterfaceList,
25784 { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
25785 FT_BYTES, BASE_NONE, NULL, 0,
25786 NULL, HFILL }},
25787 { &hf_gsm_map_om_msc_s_EventList,
25788 { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
25789 FT_BYTES, BASE_NONE, NULL, 0,
25790 NULL, HFILL }},
25791 { &hf_gsm_map_om_mgw_InterfaceList,
25792 { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
25793 FT_BYTES, BASE_NONE, NULL, 0,
25794 NULL, HFILL }},
25795 { &hf_gsm_map_om_mgw_EventList,
25796 { "mgw-EventList", "gsm_map.om.mgw_EventList",
25797 FT_BYTES, BASE_NONE, NULL, 0,
25798 NULL, HFILL }},
25799 { &hf_gsm_map_om_traceSupportIndicator,
25800 { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator_element",
25801 FT_NONE, BASE_NONE, NULL, 0,
25802 NULL, HFILL }},
25803 { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
25804 { "msc-s", "gsm.map.om.TraceNE.TypeList.msc.s",
25805 FT_BOOLEAN, 8, NULL, 0x80,
25806 NULL, HFILL }},
25807 { &hf_gsm_map_om_TraceNE_TypeList_mgw,
25808 { "mgw", "gsm.map.om.TraceNE.TypeList.mgw",
25809 FT_BOOLEAN, 8, NULL, 0x40,
25810 NULL, HFILL }},
25811 { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
25812 { "sgsn", "gsm.map.om.TraceNE.TypeList.sgsn",
25813 FT_BOOLEAN, 8, NULL, 0x20,
25814 NULL, HFILL }},
25815 { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
25816 { "ggsn", "gsm.map.om.TraceNE.TypeList.ggsn",
25817 FT_BOOLEAN, 8, NULL, 0x10,
25818 NULL, HFILL }},
25819 { &hf_gsm_map_om_TraceNE_TypeList_rnc,
25820 { "rnc", "gsm.map.om.TraceNE.TypeList.rnc",
25821 FT_BOOLEAN, 8, NULL, 0x08,
25822 NULL, HFILL }},
25823 { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
25824 { "bm-sc", "gsm.map.om.TraceNE.TypeList.bm.sc",
25825 FT_BOOLEAN, 8, NULL, 0x04,
25826 NULL, HFILL }},
25827 { &hf_gsm_map_om_TraceNE_TypeList_mme,
25828 { "mme", "gsm.map.om.TraceNE.TypeList.mme",
25829 FT_BOOLEAN, 8, NULL, 0x02,
25830 NULL, HFILL }},
25831 { &hf_gsm_map_om_TraceNE_TypeList_sgw,
25832 { "sgw", "gsm.map.om.TraceNE.TypeList.sgw",
25833 FT_BOOLEAN, 8, NULL, 0x01,
25834 NULL, HFILL }},
25835 { &hf_gsm_map_om_TraceNE_TypeList_pgw,
25836 { "pgw", "gsm.map.om.TraceNE.TypeList.pgw",
25837 FT_BOOLEAN, 8, NULL, 0x80,
25838 NULL, HFILL }},
25839 { &hf_gsm_map_om_TraceNE_TypeList_eNB,
25840 { "eNB", "gsm.map.om.TraceNE.TypeList.eNB",
25841 FT_BOOLEAN, 8, NULL, 0x40,
25842 NULL, HFILL }},
25843 { &hf_gsm_map_om_MSC_S_InterfaceList_a,
25844 { "a", "gsm.map.om.MSC.S.InterfaceList.a",
25845 FT_BOOLEAN, 8, NULL, 0x80,
25846 NULL, HFILL }},
25847 { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
25848 { "iu", "gsm.map.om.MSC.S.InterfaceList.iu",
25849 FT_BOOLEAN, 8, NULL, 0x40,
25850 NULL, HFILL }},
25851 { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
25852 { "mc", "gsm.map.om.MSC.S.InterfaceList.mc",
25853 FT_BOOLEAN, 8, NULL, 0x20,
25854 NULL, HFILL }},
25855 { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
25856 { "map-g", "gsm.map.om.MSC.S.InterfaceList.map.g",
25857 FT_BOOLEAN, 8, NULL, 0x10,
25858 NULL, HFILL }},
25859 { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
25860 { "map-b", "gsm.map.om.MSC.S.InterfaceList.map.b",
25861 FT_BOOLEAN, 8, NULL, 0x08,
25862 NULL, HFILL }},
25863 { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
25864 { "map-e", "gsm.map.om.MSC.S.InterfaceList.map.e",
25865 FT_BOOLEAN, 8, NULL, 0x04,
25866 NULL, HFILL }},
25867 { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
25868 { "map-f", "gsm.map.om.MSC.S.InterfaceList.map.f",
25869 FT_BOOLEAN, 8, NULL, 0x02,
25870 NULL, HFILL }},
25871 { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
25872 { "cap", "gsm.map.om.MSC.S.InterfaceList.cap",
25873 FT_BOOLEAN, 8, NULL, 0x01,
25874 NULL, HFILL }},
25875 { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
25876 { "map-d", "gsm.map.om.MSC.S.InterfaceList.map.d",
25877 FT_BOOLEAN, 8, NULL, 0x80,
25878 NULL, HFILL }},
25879 { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
25880 { "map-c", "gsm.map.om.MSC.S.InterfaceList.map.c",
25881 FT_BOOLEAN, 8, NULL, 0x40,
25882 NULL, HFILL }},
25883 { &hf_gsm_map_om_MGW_InterfaceList_mc,
25884 { "mc", "gsm.map.om.MGW.InterfaceList.mc",
25885 FT_BOOLEAN, 8, NULL, 0x80,
25886 NULL, HFILL }},
25887 { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
25888 { "nb-up", "gsm.map.om.MGW.InterfaceList.nb.up",
25889 FT_BOOLEAN, 8, NULL, 0x40,
25890 NULL, HFILL }},
25891 { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
25892 { "iu-up", "gsm.map.om.MGW.InterfaceList.iu.up",
25893 FT_BOOLEAN, 8, NULL, 0x20,
25894 NULL, HFILL }},
25895 { &hf_gsm_map_om_SGSN_InterfaceList_gb,
25896 { "gb", "gsm.map.om.SGSN.InterfaceList.gb",
25897 FT_BOOLEAN, 8, NULL, 0x80,
25898 NULL, HFILL }},
25899 { &hf_gsm_map_om_SGSN_InterfaceList_iu,
25900 { "iu", "gsm.map.om.SGSN.InterfaceList.iu",
25901 FT_BOOLEAN, 8, NULL, 0x40,
25902 NULL, HFILL }},
25903 { &hf_gsm_map_om_SGSN_InterfaceList_gn,
25904 { "gn", "gsm.map.om.SGSN.InterfaceList.gn",
25905 FT_BOOLEAN, 8, NULL, 0x20,
25906 NULL, HFILL }},
25907 { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
25908 { "map-gr", "gsm.map.om.SGSN.InterfaceList.map.gr",
25909 FT_BOOLEAN, 8, NULL, 0x10,
25910 NULL, HFILL }},
25911 { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
25912 { "map-gd", "gsm.map.om.SGSN.InterfaceList.map.gd",
25913 FT_BOOLEAN, 8, NULL, 0x08,
25914 NULL, HFILL }},
25915 { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
25916 { "map-gf", "gsm.map.om.SGSN.InterfaceList.map.gf",
25917 FT_BOOLEAN, 8, NULL, 0x04,
25918 NULL, HFILL }},
25919 { &hf_gsm_map_om_SGSN_InterfaceList_gs,
25920 { "gs", "gsm.map.om.SGSN.InterfaceList.gs",
25921 FT_BOOLEAN, 8, NULL, 0x02,
25922 NULL, HFILL }},
25923 { &hf_gsm_map_om_SGSN_InterfaceList_ge,
25924 { "ge", "gsm.map.om.SGSN.InterfaceList.ge",
25925 FT_BOOLEAN, 8, NULL, 0x01,
25926 NULL, HFILL }},
25927 { &hf_gsm_map_om_SGSN_InterfaceList_s3,
25928 { "s3", "gsm.map.om.SGSN.InterfaceList.s3",
25929 FT_BOOLEAN, 8, NULL, 0x80,
25930 NULL, HFILL }},
25931 { &hf_gsm_map_om_SGSN_InterfaceList_s4,
25932 { "s4", "gsm.map.om.SGSN.InterfaceList.s4",
25933 FT_BOOLEAN, 8, NULL, 0x40,
25934 NULL, HFILL }},
25935 { &hf_gsm_map_om_SGSN_InterfaceList_s6d,
25936 { "s6d", "gsm.map.om.SGSN.InterfaceList.s6d",
25937 FT_BOOLEAN, 8, NULL, 0x20,
25938 NULL, HFILL }},
25939 { &hf_gsm_map_om_GGSN_InterfaceList_gn,
25940 { "gn", "gsm.map.om.GGSN.InterfaceList.gn",
25941 FT_BOOLEAN, 8, NULL, 0x80,
25942 NULL, HFILL }},
25943 { &hf_gsm_map_om_GGSN_InterfaceList_gi,
25944 { "gi", "gsm.map.om.GGSN.InterfaceList.gi",
25945 FT_BOOLEAN, 8, NULL, 0x40,
25946 NULL, HFILL }},
25947 { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
25948 { "gmb", "gsm.map.om.GGSN.InterfaceList.gmb",
25949 FT_BOOLEAN, 8, NULL, 0x20,
25950 NULL, HFILL }},
25951 { &hf_gsm_map_om_RNC_InterfaceList_iu,
25952 { "iu", "gsm.map.om.RNC.InterfaceList.iu",
25953 FT_BOOLEAN, 8, NULL, 0x80,
25954 NULL, HFILL }},
25955 { &hf_gsm_map_om_RNC_InterfaceList_iur,
25956 { "iur", "gsm.map.om.RNC.InterfaceList.iur",
25957 FT_BOOLEAN, 8, NULL, 0x40,
25958 NULL, HFILL }},
25959 { &hf_gsm_map_om_RNC_InterfaceList_iub,
25960 { "iub", "gsm.map.om.RNC.InterfaceList.iub",
25961 FT_BOOLEAN, 8, NULL, 0x20,
25962 NULL, HFILL }},
25963 { &hf_gsm_map_om_RNC_InterfaceList_uu,
25964 { "uu", "gsm.map.om.RNC.InterfaceList.uu",
25965 FT_BOOLEAN, 8, NULL, 0x10,
25966 NULL, HFILL }},
25967 { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
25968 { "gmb", "gsm.map.om.BMSC.InterfaceList.gmb",
25969 FT_BOOLEAN, 8, NULL, 0x80,
25970 NULL, HFILL }},
25971 { &hf_gsm_map_om_MME_InterfaceList_s1_mme,
25972 { "s1-mme", "gsm.map.om.MME.InterfaceList.s1.mme",
25973 FT_BOOLEAN, 8, NULL, 0x80,
25974 NULL, HFILL }},
25975 { &hf_gsm_map_om_MME_InterfaceList_s3,
25976 { "s3", "gsm.map.om.MME.InterfaceList.s3",
25977 FT_BOOLEAN, 8, NULL, 0x40,
25978 NULL, HFILL }},
25979 { &hf_gsm_map_om_MME_InterfaceList_s6a,
25980 { "s6a", "gsm.map.om.MME.InterfaceList.s6a",
25981 FT_BOOLEAN, 8, NULL, 0x20,
25982 NULL, HFILL }},
25983 { &hf_gsm_map_om_MME_InterfaceList_s10,
25984 { "s10", "gsm.map.om.MME.InterfaceList.s10",
25985 FT_BOOLEAN, 8, NULL, 0x10,
25986 NULL, HFILL }},
25987 { &hf_gsm_map_om_MME_InterfaceList_s11,
25988 { "s11", "gsm.map.om.MME.InterfaceList.s11",
25989 FT_BOOLEAN, 8, NULL, 0x08,
25990 NULL, HFILL }},
25991 { &hf_gsm_map_om_SGW_InterfaceList_s4,
25992 { "s4", "gsm.map.om.SGW.InterfaceList.s4",
25993 FT_BOOLEAN, 8, NULL, 0x80,
25994 NULL, HFILL }},
25995 { &hf_gsm_map_om_SGW_InterfaceList_s5,
25996 { "s5", "gsm.map.om.SGW.InterfaceList.s5",
25997 FT_BOOLEAN, 8, NULL, 0x40,
25998 NULL, HFILL }},
25999 { &hf_gsm_map_om_SGW_InterfaceList_s8b,
26000 { "s8b", "gsm.map.om.SGW.InterfaceList.s8b",
26001 FT_BOOLEAN, 8, NULL, 0x20,
26002 NULL, HFILL }},
26003 { &hf_gsm_map_om_SGW_InterfaceList_s11,
26004 { "s11", "gsm.map.om.SGW.InterfaceList.s11",
26005 FT_BOOLEAN, 8, NULL, 0x10,
26006 NULL, HFILL }},
26007 { &hf_gsm_map_om_SGW_InterfaceList_gxc,
26008 { "gxc", "gsm.map.om.SGW.InterfaceList.gxc",
26009 FT_BOOLEAN, 8, NULL, 0x08,
26010 NULL, HFILL }},
26011 { &hf_gsm_map_om_PGW_InterfaceList_s2a,
26012 { "s2a", "gsm.map.om.PGW.InterfaceList.s2a",
26013 FT_BOOLEAN, 8, NULL, 0x80,
26014 NULL, HFILL }},
26015 { &hf_gsm_map_om_PGW_InterfaceList_s2b,
26016 { "s2b", "gsm.map.om.PGW.InterfaceList.s2b",
26017 FT_BOOLEAN, 8, NULL, 0x40,
26018 NULL, HFILL }},
26019 { &hf_gsm_map_om_PGW_InterfaceList_s2c,
26020 { "s2c", "gsm.map.om.PGW.InterfaceList.s2c",
26021 FT_BOOLEAN, 8, NULL, 0x20,
26022 NULL, HFILL }},
26023 { &hf_gsm_map_om_PGW_InterfaceList_s5,
26024 { "s5", "gsm.map.om.PGW.InterfaceList.s5",
26025 FT_BOOLEAN, 8, NULL, 0x10,
26026 NULL, HFILL }},
26027 { &hf_gsm_map_om_PGW_InterfaceList_s6b,
26028 { "s6b", "gsm.map.om.PGW.InterfaceList.s6b",
26029 FT_BOOLEAN, 8, NULL, 0x08,
26030 NULL, HFILL }},
26031 { &hf_gsm_map_om_PGW_InterfaceList_gx,
26032 { "gx", "gsm.map.om.PGW.InterfaceList.gx",
26033 FT_BOOLEAN, 8, NULL, 0x04,
26034 NULL, HFILL }},
26035 { &hf_gsm_map_om_PGW_InterfaceList_s8b,
26036 { "s8b", "gsm.map.om.PGW.InterfaceList.s8b",
26037 FT_BOOLEAN, 8, NULL, 0x02,
26038 NULL, HFILL }},
26039 { &hf_gsm_map_om_PGW_InterfaceList_sgi,
26040 { "sgi", "gsm.map.om.PGW.InterfaceList.sgi",
26041 FT_BOOLEAN, 8, NULL, 0x01,
26042 NULL, HFILL }},
26043 { &hf_gsm_map_om_ENB_InterfaceList_s1_mme,
26044 { "s1-mme", "gsm.map.om.ENB.InterfaceList.s1.mme",
26045 FT_BOOLEAN, 8, NULL, 0x80,
26046 NULL, HFILL }},
26047 { &hf_gsm_map_om_ENB_InterfaceList_x2,
26048 { "x2", "gsm.map.om.ENB.InterfaceList.x2",
26049 FT_BOOLEAN, 8, NULL, 0x40,
26050 NULL, HFILL }},
26051 { &hf_gsm_map_om_ENB_InterfaceList_uu,
26052 { "uu", "gsm.map.om.ENB.InterfaceList.uu",
26053 FT_BOOLEAN, 8, NULL, 0x20,
26054 NULL, HFILL }},
26055 { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
26056 { "mo-mtCall", "gsm.map.om.MSC.S.EventList.mo.mtCall",
26057 FT_BOOLEAN, 8, NULL, 0x80,
26058 NULL, HFILL }},
26059 { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
26060 { "mo-mt-sms", "gsm.map.om.MSC.S.EventList.mo.mt.sms",
26061 FT_BOOLEAN, 8, NULL, 0x40,
26062 NULL, HFILL }},
26063 { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
26064 { "lu-imsiAttach-imsiDetach", "gsm.map.om.MSC.S.EventList.lu.imsiAttach.imsiDetach",
26065 FT_BOOLEAN, 8, NULL, 0x20,
26066 NULL, HFILL }},
26067 { &hf_gsm_map_om_MSC_S_EventList_handovers,
26068 { "handovers", "gsm.map.om.MSC.S.EventList.handovers",
26069 FT_BOOLEAN, 8, NULL, 0x10,
26070 NULL, HFILL }},
26071 { &hf_gsm_map_om_MSC_S_EventList_ss,
26072 { "ss", "gsm.map.om.MSC.S.EventList.ss",
26073 FT_BOOLEAN, 8, NULL, 0x08,
26074 NULL, HFILL }},
26075 { &hf_gsm_map_om_MGW_EventList_context,
26076 { "context", "gsm.map.om.MGW.EventList.context",
26077 FT_BOOLEAN, 8, NULL, 0x80,
26078 NULL, HFILL }},
26079 { &hf_gsm_map_om_SGSN_EventList_pdpContext,
26080 { "pdpContext", "gsm.map.om.SGSN.EventList.pdpContext",
26081 FT_BOOLEAN, 8, NULL, 0x80,
26082 NULL, HFILL }},
26083 { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
26084 { "mo-mt-sms", "gsm.map.om.SGSN.EventList.mo.mt.sms",
26085 FT_BOOLEAN, 8, NULL, 0x40,
26086 NULL, HFILL }},
26087 { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
26088 { "rau-gprsAttach-gprsDetach", "gsm.map.om.SGSN.EventList.rau.gprsAttach.gprsDetach",
26089 FT_BOOLEAN, 8, NULL, 0x20,
26090 NULL, HFILL }},
26091 { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
26092 { "mbmsContext", "gsm.map.om.SGSN.EventList.mbmsContext",
26093 FT_BOOLEAN, 8, NULL, 0x10,
26094 NULL, HFILL }},
26095 { &hf_gsm_map_om_GGSN_EventList_pdpContext,
26096 { "pdpContext", "gsm.map.om.GGSN.EventList.pdpContext",
26097 FT_BOOLEAN, 8, NULL, 0x80,
26098 NULL, HFILL }},
26099 { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
26100 { "mbmsContext", "gsm.map.om.GGSN.EventList.mbmsContext",
26101 FT_BOOLEAN, 8, NULL, 0x40,
26102 NULL, HFILL }},
26103 { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
26104 { "mbmsMulticastServiceActivation", "gsm.map.om.BMSC.EventList.mbmsMulticastServiceActivation",
26105 FT_BOOLEAN, 8, NULL, 0x80,
26106 NULL, HFILL }},
26107 { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest,
26108 { "ue-initiatedPDNconectivityRequest", "gsm.map.om.MME.EventList.ue.initiatedPDNconectivityRequest",
26109 FT_BOOLEAN, 8, NULL, 0x80,
26110 NULL, HFILL }},
26111 { &hf_gsm_map_om_MME_EventList_serviceRequestts,
26112 { "serviceRequestts", "gsm.map.om.MME.EventList.serviceRequestts",
26113 FT_BOOLEAN, 8, NULL, 0x40,
26114 NULL, HFILL }},
26115 { &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach,
26116 { "initialAttachTrackingAreaUpdateDetach", "gsm.map.om.MME.EventList.initialAttachTrackingAreaUpdateDetach",
26117 FT_BOOLEAN, 8, NULL, 0x20,
26118 NULL, HFILL }},
26119 { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection,
26120 { "ue-initiatedPDNdisconnection", "gsm.map.om.MME.EventList.ue.initiatedPDNdisconnection",
26121 FT_BOOLEAN, 8, NULL, 0x10,
26122 NULL, HFILL }},
26123 { &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion,
26124 { "bearerActivationModificationDeletion", "gsm.map.om.MME.EventList.bearerActivationModificationDeletion",
26125 FT_BOOLEAN, 8, NULL, 0x08,
26126 NULL, HFILL }},
26127 { &hf_gsm_map_om_MME_EventList_handover,
26128 { "handover", "gsm.map.om.MME.EventList.handover",
26129 FT_BOOLEAN, 8, NULL, 0x04,
26130 NULL, HFILL }},
26131 { &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation,
26132 { "pdn-connectionCreation", "gsm.map.om.SGW.EventList.pdn.connectionCreation",
26133 FT_BOOLEAN, 8, NULL, 0x80,
26134 NULL, HFILL }},
26135 { &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination,
26136 { "pdn-connectionTermination", "gsm.map.om.SGW.EventList.pdn.connectionTermination",
26137 FT_BOOLEAN, 8, NULL, 0x40,
26138 NULL, HFILL }},
26139 { &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion,
26140 { "bearerActivationModificationDeletion", "gsm.map.om.SGW.EventList.bearerActivationModificationDeletion",
26141 FT_BOOLEAN, 8, NULL, 0x20,
26142 NULL, HFILL }},
26143 { &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation,
26144 { "pdn-connectionCreation", "gsm.map.om.PGW.EventList.pdn.connectionCreation",
26145 FT_BOOLEAN, 8, NULL, 0x80,
26146 NULL, HFILL }},
26147 { &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination,
26148 { "pdn-connectionTermination", "gsm.map.om.PGW.EventList.pdn.connectionTermination",
26149 FT_BOOLEAN, 8, NULL, 0x40,
26150 NULL, HFILL }},
26151 { &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion,
26152 { "bearerActivationModificationDeletion", "gsm.map.om.PGW.EventList.bearerActivationModificationDeletion",
26153 FT_BOOLEAN, 8, NULL, 0x20,
26154 NULL, HFILL }},
26156 /* --- Module MAP-MS-DataTypes --- --- --- */
26158 { &hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU,
26159 { "SendAuthenticationInfoArg", "gsm_map.ms.SendAuthenticationInfoArg_element",
26160 FT_NONE, BASE_NONE, NULL, 0,
26161 NULL, HFILL }},
26162 { &hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU,
26163 { "SendAuthenticationInfoRes", "gsm_map.ms.SendAuthenticationInfoRes_element",
26164 FT_NONE, BASE_NONE, NULL, 0,
26165 NULL, HFILL }},
26166 { &hf_gsm_map_ms_imsi,
26167 { "imsi", "gsm_map.ms.imsi",
26168 FT_BYTES, BASE_NONE, NULL, 0,
26169 NULL, HFILL }},
26170 { &hf_gsm_map_ms_msc_Number,
26171 { "msc-Number", "gsm_map.ms.msc_Number",
26172 FT_BYTES, BASE_NONE, NULL, 0,
26173 "ISDN_AddressString", HFILL }},
26174 { &hf_gsm_map_ms_vlr_Number,
26175 { "vlr-Number", "gsm_map.ms.vlr_Number",
26176 FT_BYTES, BASE_NONE, NULL, 0,
26177 "ISDN_AddressString", HFILL }},
26178 { &hf_gsm_map_ms_lmsi,
26179 { "lmsi", "gsm_map.ms.lmsi",
26180 FT_BYTES, BASE_NONE, NULL, 0,
26181 NULL, HFILL }},
26182 { &hf_gsm_map_ms_extensionContainer,
26183 { "extensionContainer", "gsm_map.ms.extensionContainer_element",
26184 FT_NONE, BASE_NONE, NULL, 0,
26185 NULL, HFILL }},
26186 { &hf_gsm_map_ms_vlr_Capability,
26187 { "vlr-Capability", "gsm_map.ms.vlr_Capability_element",
26188 FT_NONE, BASE_NONE, NULL, 0,
26189 NULL, HFILL }},
26190 { &hf_gsm_map_ms_informPreviousNetworkEntity,
26191 { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity_element",
26192 FT_NONE, BASE_NONE, NULL, 0,
26193 NULL, HFILL }},
26194 { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
26195 { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE_element",
26196 FT_NONE, BASE_NONE, NULL, 0,
26197 NULL, HFILL }},
26198 { &hf_gsm_map_ms_v_gmlc_Address,
26199 { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
26200 FT_BYTES, BASE_NONE, NULL, 0,
26201 "GSN_Address", HFILL }},
26202 { &hf_gsm_map_ms_add_info,
26203 { "add-info", "gsm_map.ms.add_info_element",
26204 FT_NONE, BASE_NONE, NULL, 0,
26205 NULL, HFILL }},
26206 { &hf_gsm_map_ms_pagingArea,
26207 { "pagingArea", "gsm_map.ms.pagingArea",
26208 FT_UINT32, BASE_DEC, NULL, 0,
26209 NULL, HFILL }},
26210 { &hf_gsm_map_ms_skipSubscriberDataUpdate,
26211 { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate_element",
26212 FT_NONE, BASE_NONE, NULL, 0,
26213 NULL, HFILL }},
26214 { &hf_gsm_map_ms_restorationIndicator,
26215 { "restorationIndicator", "gsm_map.ms.restorationIndicator_element",
26216 FT_NONE, BASE_NONE, NULL, 0,
26217 NULL, HFILL }},
26218 { &hf_gsm_map_ms_eplmn_List,
26219 { "eplmn-List", "gsm_map.ms.eplmn_List",
26220 FT_UINT32, BASE_DEC, NULL, 0,
26221 NULL, HFILL }},
26222 { &hf_gsm_map_ms_mme_DiameterAddress,
26223 { "mme-DiameterAddress", "gsm_map.ms.mme_DiameterAddress_element",
26224 FT_NONE, BASE_NONE, NULL, 0,
26225 "NetworkNodeDiameterAddress", HFILL }},
26226 { &hf_gsm_map_ms_supportedCamelPhases,
26227 { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
26228 FT_BYTES, BASE_NONE, NULL, 0,
26229 NULL, HFILL }},
26230 { &hf_gsm_map_ms_solsaSupportIndicator,
26231 { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator_element",
26232 FT_NONE, BASE_NONE, NULL, 0,
26233 NULL, HFILL }},
26234 { &hf_gsm_map_ms_istSupportIndicator,
26235 { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
26236 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
26237 "IST_SupportIndicator", HFILL }},
26238 { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
26239 { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
26240 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
26241 "SuperChargerInfo", HFILL }},
26242 { &hf_gsm_map_ms_longFTN_Supported,
26243 { "longFTN-Supported", "gsm_map.ms.longFTN_Supported_element",
26244 FT_NONE, BASE_NONE, NULL, 0,
26245 NULL, HFILL }},
26246 { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
26247 { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
26248 FT_BYTES, BASE_NONE, NULL, 0,
26249 NULL, HFILL }},
26250 { &hf_gsm_map_ms_offeredCamel4CSIs,
26251 { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
26252 FT_BYTES, BASE_NONE, NULL, 0,
26253 NULL, HFILL }},
26254 { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
26255 { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
26256 FT_BYTES, BASE_NONE, NULL, 0,
26257 "SupportedRAT_Types", HFILL }},
26258 { &hf_gsm_map_ms_longGroupID_Supported,
26259 { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported_element",
26260 FT_NONE, BASE_NONE, NULL, 0,
26261 NULL, HFILL }},
26262 { &hf_gsm_map_ms_mtRoamingForwardingSupported,
26263 { "mtRoamingForwardingSupported", "gsm_map.ms.mtRoamingForwardingSupported_element",
26264 FT_NONE, BASE_NONE, NULL, 0,
26265 NULL, HFILL }},
26266 { &hf_gsm_map_ms_msisdn_lessOperation_Supported,
26267 { "msisdn-lessOperation-Supported", "gsm_map.ms.msisdn_lessOperation_Supported_element",
26268 FT_NONE, BASE_NONE, NULL, 0,
26269 NULL, HFILL }},
26270 { &hf_gsm_map_ms_reset_ids_Supported,
26271 { "reset-ids-Supported", "gsm_map.ms.reset_ids_Supported_element",
26272 FT_NONE, BASE_NONE, NULL, 0,
26273 NULL, HFILL }},
26274 { &hf_gsm_map_ms_sendSubscriberData,
26275 { "sendSubscriberData", "gsm_map.ms.sendSubscriberData_element",
26276 FT_NONE, BASE_NONE, NULL, 0,
26277 NULL, HFILL }},
26278 { &hf_gsm_map_ms_subscriberDataStored,
26279 { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
26280 FT_BYTES, BASE_NONE, NULL, 0,
26281 "AgeIndicator", HFILL }},
26282 { &hf_gsm_map_ms_hlr_Number,
26283 { "hlr-Number", "gsm_map.ms.hlr_Number",
26284 FT_BYTES, BASE_NONE, NULL, 0,
26285 "ISDN_AddressString", HFILL }},
26286 { &hf_gsm_map_ms_add_Capability,
26287 { "add-Capability", "gsm_map.ms.add_Capability_element",
26288 FT_NONE, BASE_NONE, NULL, 0,
26289 NULL, HFILL }},
26290 { &hf_gsm_map_ms_pagingArea_Capability,
26291 { "pagingArea-Capability", "gsm_map.ms.pagingArea_Capability_element",
26292 FT_NONE, BASE_NONE, NULL, 0,
26293 NULL, HFILL }},
26294 { &hf_gsm_map_ms_imeisv,
26295 { "imeisv", "gsm_map.ms.imeisv",
26296 FT_BYTES, BASE_NONE, NULL, 0,
26297 "IMEI", HFILL }},
26298 { &hf_gsm_map_ms_PagingArea_item,
26299 { "LocationArea", "gsm_map.ms.LocationArea",
26300 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LocationArea_vals), 0,
26301 NULL, HFILL }},
26302 { &hf_gsm_map_ms_laiFixedLength,
26303 { "laiFixedLength", "gsm_map.ms.laiFixedLength",
26304 FT_BYTES, BASE_NONE, NULL, 0,
26305 NULL, HFILL }},
26306 { &hf_gsm_map_ms_lac,
26307 { "lac", "gsm_map.ms.lac",
26308 FT_UINT16, BASE_DEC_HEX, NULL, 0,
26309 NULL, HFILL }},
26310 { &hf_gsm_map_ms_identity,
26311 { "identity", "gsm_map.ms.identity",
26312 FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
26313 NULL, HFILL }},
26314 { &hf_gsm_map_ms_cancellationType,
26315 { "cancellationType", "gsm_map.ms.cancellationType",
26316 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
26317 NULL, HFILL }},
26318 { &hf_gsm_map_ms_typeOfUpdate,
26319 { "typeOfUpdate", "gsm_map.ms.typeOfUpdate",
26320 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_TypeOfUpdate_vals), 0,
26321 NULL, HFILL }},
26322 { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized,
26323 { "mtrf-SupportedAndAuthorized", "gsm_map.ms.mtrf_SupportedAndAuthorized_element",
26324 FT_NONE, BASE_NONE, NULL, 0,
26325 NULL, HFILL }},
26326 { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized,
26327 { "mtrf-SupportedAndNotAuthorized", "gsm_map.ms.mtrf_SupportedAndNotAuthorized_element",
26328 FT_NONE, BASE_NONE, NULL, 0,
26329 NULL, HFILL }},
26330 { &hf_gsm_map_ms_newMSC_Number,
26331 { "newMSC-Number", "gsm_map.ms.newMSC_Number",
26332 FT_BYTES, BASE_NONE, NULL, 0,
26333 "ISDN_AddressString", HFILL }},
26334 { &hf_gsm_map_ms_newVLR_Number,
26335 { "newVLR-Number", "gsm_map.ms.newVLR_Number",
26336 FT_BYTES, BASE_NONE, NULL, 0,
26337 "ISDN_AddressString", HFILL }},
26338 { &hf_gsm_map_ms_new_lmsi,
26339 { "new-lmsi", "gsm_map.ms.new_lmsi",
26340 FT_BYTES, BASE_NONE, NULL, 0,
26341 "LMSI", HFILL }},
26342 { &hf_gsm_map_ms_reattach_Required,
26343 { "reattach-Required", "gsm_map.ms.reattach_Required_element",
26344 FT_NONE, BASE_NONE, NULL, 0,
26345 NULL, HFILL }},
26346 { &hf_gsm_map_ms_sgsn_Number,
26347 { "sgsn-Number", "gsm_map.ms.sgsn_Number",
26348 FT_BYTES, BASE_NONE, NULL, 0,
26349 "ISDN_AddressString", HFILL }},
26350 { &hf_gsm_map_ms_locationInformation,
26351 { "locationInformation", "gsm_map.ms.locationInformation_element",
26352 FT_NONE, BASE_NONE, NULL, 0,
26353 NULL, HFILL }},
26354 { &hf_gsm_map_ms_locationInformationGPRS,
26355 { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS_element",
26356 FT_NONE, BASE_NONE, NULL, 0,
26357 NULL, HFILL }},
26358 { &hf_gsm_map_ms_locationInformationEPS,
26359 { "locationInformationEPS", "gsm_map.ms.locationInformationEPS_element",
26360 FT_NONE, BASE_NONE, NULL, 0,
26361 NULL, HFILL }},
26362 { &hf_gsm_map_ms_freezeTMSI,
26363 { "freezeTMSI", "gsm_map.ms.freezeTMSI_element",
26364 FT_NONE, BASE_NONE, NULL, 0,
26365 NULL, HFILL }},
26366 { &hf_gsm_map_ms_freezeP_TMSI,
26367 { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI_element",
26368 FT_NONE, BASE_NONE, NULL, 0,
26369 NULL, HFILL }},
26370 { &hf_gsm_map_ms_freezeM_TMSI,
26371 { "freezeM-TMSI", "gsm_map.ms.freezeM_TMSI_element",
26372 FT_NONE, BASE_NONE, NULL, 0,
26373 NULL, HFILL }},
26374 { &hf_gsm_map_ms_tmsi,
26375 { "tmsi", "gsm_map.ms.tmsi",
26376 FT_BYTES, BASE_NONE, NULL, 0,
26377 NULL, HFILL }},
26378 { &hf_gsm_map_ms_numberOfRequestedVectors,
26379 { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
26380 FT_UINT32, BASE_DEC, NULL, 0,
26381 NULL, HFILL }},
26382 { &hf_gsm_map_ms_segmentationProhibited,
26383 { "segmentationProhibited", "gsm_map.ms.segmentationProhibited_element",
26384 FT_NONE, BASE_NONE, NULL, 0,
26385 NULL, HFILL }},
26386 { &hf_gsm_map_ms_previous_LAI,
26387 { "previous-LAI", "gsm_map.ms.previous_LAI",
26388 FT_BYTES, BASE_NONE, NULL, 0,
26389 "LAIFixedLength", HFILL }},
26390 { &hf_gsm_map_ms_hopCounter,
26391 { "hopCounter", "gsm_map.ms.hopCounter",
26392 FT_UINT32, BASE_DEC, NULL, 0,
26393 NULL, HFILL }},
26394 { &hf_gsm_map_ms_authenticationSetList,
26395 { "authenticationSetList", "gsm_map.ms.authenticationSetList",
26396 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
26397 NULL, HFILL }},
26398 { &hf_gsm_map_ms_currentSecurityContext,
26399 { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
26400 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
26401 NULL, HFILL }},
26402 { &hf_gsm_map_ms_lastUsedLtePLMN_Id,
26403 { "lastUsedLtePLMN-Id", "gsm_map.ms.lastUsedLtePLMN_Id",
26404 FT_BYTES, BASE_NONE, NULL, 0,
26405 "PLMN_Id", HFILL }},
26406 { &hf_gsm_map_ms_mtCallPendingFlag,
26407 { "mtCallPendingFlag", "gsm_map.ms.mtCallPendingFlag_element",
26408 FT_NONE, BASE_NONE, NULL, 0,
26409 NULL, HFILL }},
26410 { &hf_gsm_map_ms_tripletList,
26411 { "tripletList", "gsm_map.ms.tripletList",
26412 FT_UINT32, BASE_DEC, NULL, 0,
26413 NULL, HFILL }},
26414 { &hf_gsm_map_ms_quintupletList,
26415 { "quintupletList", "gsm_map.ms.quintupletList",
26416 FT_UINT32, BASE_DEC, NULL, 0,
26417 NULL, HFILL }},
26418 { &hf_gsm_map_ms_TripletList_item,
26419 { "AuthenticationTriplet", "gsm_map.ms.AuthenticationTriplet_element",
26420 FT_NONE, BASE_NONE, NULL, 0,
26421 NULL, HFILL }},
26422 { &hf_gsm_map_ms_QuintupletList_item,
26423 { "AuthenticationQuintuplet", "gsm_map.ms.AuthenticationQuintuplet_element",
26424 FT_NONE, BASE_NONE, NULL, 0,
26425 NULL, HFILL }},
26426 { &hf_gsm_map_ms_rand,
26427 { "rand", "gsm_map.ms.rand",
26428 FT_BYTES, BASE_NONE, NULL, 0,
26429 NULL, HFILL }},
26430 { &hf_gsm_map_ms_sres,
26431 { "sres", "gsm_map.ms.sres",
26432 FT_BYTES, BASE_NONE, NULL, 0,
26433 NULL, HFILL }},
26434 { &hf_gsm_map_ms_kc,
26435 { "kc", "gsm_map.ms.kc",
26436 FT_BYTES, BASE_NONE, NULL, 0,
26437 NULL, HFILL }},
26438 { &hf_gsm_map_ms_xres,
26439 { "xres", "gsm_map.ms.xres",
26440 FT_BYTES, BASE_NONE, NULL, 0,
26441 NULL, HFILL }},
26442 { &hf_gsm_map_ms_ck,
26443 { "ck", "gsm_map.ms.ck",
26444 FT_BYTES, BASE_NONE, NULL, 0,
26445 NULL, HFILL }},
26446 { &hf_gsm_map_ms_ik,
26447 { "ik", "gsm_map.ms.ik",
26448 FT_BYTES, BASE_NONE, NULL, 0,
26449 NULL, HFILL }},
26450 { &hf_gsm_map_ms_autn,
26451 { "autn", "gsm_map.ms.autn",
26452 FT_BYTES, BASE_NONE, NULL, 0,
26453 NULL, HFILL }},
26454 { &hf_gsm_map_ms_gsm_SecurityContextData,
26455 { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData_element",
26456 FT_NONE, BASE_NONE, NULL, 0,
26457 NULL, HFILL }},
26458 { &hf_gsm_map_ms_umts_SecurityContextData,
26459 { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData_element",
26460 FT_NONE, BASE_NONE, NULL, 0,
26461 NULL, HFILL }},
26462 { &hf_gsm_map_ms_cksn,
26463 { "cksn", "gsm_map.ms.cksn",
26464 FT_BYTES, BASE_NONE, NULL, 0,
26465 NULL, HFILL }},
26466 { &hf_gsm_map_ms_ksi,
26467 { "ksi", "gsm_map.ms.ksi",
26468 FT_BYTES, BASE_NONE, NULL, 0,
26469 NULL, HFILL }},
26470 { &hf_gsm_map_ms_failureCause,
26471 { "failureCause", "gsm_map.ms.failureCause",
26472 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
26473 NULL, HFILL }},
26474 { &hf_gsm_map_ms_re_attempt,
26475 { "re-attempt", "gsm_map.ms.re_attempt",
26476 FT_BOOLEAN, BASE_NONE, NULL, 0,
26477 "BOOLEAN", HFILL }},
26478 { &hf_gsm_map_ms_accessType,
26479 { "accessType", "gsm_map.ms.accessType",
26480 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
26481 NULL, HFILL }},
26482 { &hf_gsm_map_ms_sgsn_Address,
26483 { "sgsn-Address", "gsm_map.ms.sgsn_Address",
26484 FT_BYTES, BASE_NONE, NULL, 0,
26485 "GSN_Address", HFILL }},
26486 { &hf_gsm_map_ms_sgsn_Capability,
26487 { "sgsn-Capability", "gsm_map.ms.sgsn_Capability_element",
26488 FT_NONE, BASE_NONE, NULL, 0,
26489 NULL, HFILL }},
26490 { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
26491 { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE_element",
26492 FT_NONE, BASE_NONE, NULL, 0,
26493 NULL, HFILL }},
26494 { &hf_gsm_map_ms_eps_info,
26495 { "eps-info", "gsm_map.ms.eps_info",
26496 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_Info_vals), 0,
26497 NULL, HFILL }},
26498 { &hf_gsm_map_ms_servingNodeTypeIndicator,
26499 { "servingNodeTypeIndicator", "gsm_map.ms.servingNodeTypeIndicator_element",
26500 FT_NONE, BASE_NONE, NULL, 0,
26501 NULL, HFILL }},
26502 { &hf_gsm_map_ms_usedRAT_Type,
26503 { "usedRAT-Type", "gsm_map.ms.usedRAT_Type",
26504 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
26505 "Used_RAT_Type", HFILL }},
26506 { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded,
26507 { "gprsSubscriptionDataNotNeeded", "gsm_map.ms.gprsSubscriptionDataNotNeeded_element",
26508 FT_NONE, BASE_NONE, NULL, 0,
26509 NULL, HFILL }},
26510 { &hf_gsm_map_ms_nodeTypeIndicator,
26511 { "nodeTypeIndicator", "gsm_map.ms.nodeTypeIndicator_element",
26512 FT_NONE, BASE_NONE, NULL, 0,
26513 NULL, HFILL }},
26514 { &hf_gsm_map_ms_areaRestricted,
26515 { "areaRestricted", "gsm_map.ms.areaRestricted_element",
26516 FT_NONE, BASE_NONE, NULL, 0,
26517 NULL, HFILL }},
26518 { &hf_gsm_map_ms_ue_reachableIndicator,
26519 { "ue-reachableIndicator", "gsm_map.ms.ue_reachableIndicator_element",
26520 FT_NONE, BASE_NONE, NULL, 0,
26521 NULL, HFILL }},
26522 { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded,
26523 { "epsSubscriptionDataNotNeeded", "gsm_map.ms.epsSubscriptionDataNotNeeded_element",
26524 FT_NONE, BASE_NONE, NULL, 0,
26525 NULL, HFILL }},
26526 { &hf_gsm_map_ms_ue_srvcc_Capability,
26527 { "ue-srvcc-Capability", "gsm_map.ms.ue_srvcc_Capability",
26528 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_UE_SRVCC_Capability_vals), 0,
26529 NULL, HFILL }},
26530 { &hf_gsm_map_ms_mmeNumberforMTSMS,
26531 { "mmeNumberforMTSMS", "gsm_map.ms.mmeNumberforMTSMS",
26532 FT_BYTES, BASE_NONE, NULL, 0,
26533 "ISDN_AddressString", HFILL }},
26534 { &hf_gsm_map_ms_smsRegisterRequest,
26535 { "smsRegisterRequest", "gsm_map.ms.smsRegisterRequest",
26536 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMSRegisterRequest_vals), 0,
26537 NULL, HFILL }},
26538 { &hf_gsm_map_ms_sms_Only,
26539 { "sms-Only", "gsm_map.ms.sms_Only_element",
26540 FT_NONE, BASE_NONE, NULL, 0,
26541 NULL, HFILL }},
26542 { &hf_gsm_map_ms_removalofMMERegistrationforSMS,
26543 { "removalofMMERegistrationforSMS", "gsm_map.ms.removalofMMERegistrationforSMS_element",
26544 FT_NONE, BASE_NONE, NULL, 0,
26545 NULL, HFILL }},
26546 { &hf_gsm_map_ms_sgsn_Name,
26547 { "sgsn-Name", "gsm_map.ms.sgsn_Name",
26548 FT_STRING, BASE_NONE, NULL, 0,
26549 "DiameterIdentity", HFILL }},
26550 { &hf_gsm_map_ms_sgsn_Realm,
26551 { "sgsn-Realm", "gsm_map.ms.sgsn_Realm",
26552 FT_STRING, BASE_NONE, NULL, 0,
26553 "DiameterIdentity", HFILL }},
26554 { &hf_gsm_map_ms_lgd_supportIndicator,
26555 { "lgd-supportIndicator", "gsm_map.ms.lgd_supportIndicator_element",
26556 FT_NONE, BASE_NONE, NULL, 0,
26557 NULL, HFILL }},
26558 { &hf_gsm_map_ms_adjacentPLMN_List,
26559 { "adjacentPLMN-List", "gsm_map.ms.adjacentPLMN_List",
26560 FT_UINT32, BASE_DEC, NULL, 0,
26561 NULL, HFILL }},
26562 { &hf_gsm_map_ms_pdn_gw_update,
26563 { "pdn-gw-update", "gsm_map.ms.pdn_gw_update_element",
26564 FT_NONE, BASE_NONE, NULL, 0,
26565 NULL, HFILL }},
26566 { &hf_gsm_map_ms_isr_Information,
26567 { "isr-Information", "gsm_map.ms.isr_Information",
26568 FT_BYTES, BASE_NONE, NULL, 0,
26569 NULL, HFILL }},
26570 { &hf_gsm_map_ms_apn,
26571 { "apn", "gsm_map.ms.apn",
26572 FT_BYTES, BASE_NONE, NULL, 0,
26573 NULL, HFILL }},
26574 { &hf_gsm_map_ms_pdn_gw_Identity,
26575 { "pdn-gw-Identity", "gsm_map.ms.pdn_gw_Identity_element",
26576 FT_NONE, BASE_NONE, NULL, 0,
26577 NULL, HFILL }},
26578 { &hf_gsm_map_ms_contextId,
26579 { "contextId", "gsm_map.ms.contextId",
26580 FT_UINT32, BASE_DEC, NULL, 0,
26581 NULL, HFILL }},
26582 { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
26583 { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator_element",
26584 FT_NONE, BASE_NONE, NULL, 0,
26585 NULL, HFILL }},
26586 { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
26587 { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator_element",
26588 FT_NONE, BASE_NONE, NULL, 0,
26589 NULL, HFILL }},
26590 { &hf_gsm_map_ms_supportedFeatures,
26591 { "supportedFeatures", "gsm_map.ms.supportedFeatures",
26592 FT_BYTES, BASE_NONE, NULL, 0,
26593 NULL, HFILL }},
26594 { &hf_gsm_map_ms_t_adsDataRetrieval,
26595 { "t-adsDataRetrieval", "gsm_map.ms.t_adsDataRetrieval_element",
26596 FT_NONE, BASE_NONE, NULL, 0,
26597 NULL, HFILL }},
26598 { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions,
26599 { "homogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.homogeneousSupportOfIMSVoiceOverPSSessions",
26600 FT_BOOLEAN, BASE_NONE, NULL, 0,
26601 "BOOLEAN", HFILL }},
26602 { &hf_gsm_map_ms_cancellationTypeInitialAttach,
26603 { "cancellationTypeInitialAttach", "gsm_map.ms.cancellationTypeInitialAttach_element",
26604 FT_NONE, BASE_NONE, NULL, 0,
26605 NULL, HFILL }},
26606 { &hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions,
26607 { "updateofHomogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.updateofHomogeneousSupportOfIMSVoiceOverPSSessions_element",
26608 FT_NONE, BASE_NONE, NULL, 0,
26609 NULL, HFILL }},
26610 { &hf_gsm_map_ms_ext_SupportedFeatures,
26611 { "ext-SupportedFeatures", "gsm_map.ms.ext_SupportedFeatures",
26612 FT_BYTES, BASE_NONE, NULL, 0,
26613 NULL, HFILL }},
26614 { &hf_gsm_map_ms_sgsn_mmeSeparationSupported,
26615 { "sgsn-mmeSeparationSupported", "gsm_map.ms.sgsn_mmeSeparationSupported_element",
26616 FT_NONE, BASE_NONE, NULL, 0,
26617 NULL, HFILL }},
26618 { &hf_gsm_map_ms_mmeRegisteredforSMS,
26619 { "mmeRegisteredforSMS", "gsm_map.ms.mmeRegisteredforSMS_element",
26620 FT_NONE, BASE_NONE, NULL, 0,
26621 NULL, HFILL }},
26622 { &hf_gsm_map_ms_EPLMN_List_item,
26623 { "PLMN-Id", "gsm_map.ms.PLMN_Id",
26624 FT_BYTES, BASE_NONE, NULL, 0,
26625 NULL, HFILL }},
26626 { &hf_gsm_map_ms_AdjacentPLMN_List_item,
26627 { "PLMN-Id", "gsm_map.ms.PLMN_Id",
26628 FT_BYTES, BASE_NONE, NULL, 0,
26629 NULL, HFILL }},
26630 { &hf_gsm_map_ms_an_APDU,
26631 { "an-APDU", "gsm_map.ms.an_APDU_element",
26632 FT_NONE, BASE_NONE, NULL, 0,
26633 "AccessNetworkSignalInfo", HFILL }},
26634 { &hf_gsm_map_ms_integrityProtectionInfo,
26635 { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
26636 FT_BYTES, BASE_NONE, NULL, 0,
26637 "IntegrityProtectionInformation", HFILL }},
26638 { &hf_gsm_map_ms_encryptionInfo,
26639 { "encryptionInfo", "gsm_map.ms.encryptionInfo",
26640 FT_BYTES, BASE_NONE, NULL, 0,
26641 "EncryptionInformation", HFILL }},
26642 { &hf_gsm_map_ms_keyStatus,
26643 { "keyStatus", "gsm_map.ms.keyStatus",
26644 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
26645 NULL, HFILL }},
26646 { &hf_gsm_map_ms_allowedGSM_Algorithms,
26647 { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
26648 FT_BYTES, BASE_NONE, NULL, 0,
26649 NULL, HFILL }},
26650 { &hf_gsm_map_ms_allowedUMTS_Algorithms,
26651 { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms_element",
26652 FT_NONE, BASE_NONE, NULL, 0,
26653 NULL, HFILL }},
26654 { &hf_gsm_map_ms_radioResourceInformation,
26655 { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
26656 FT_BYTES, BASE_NONE, NULL, 0,
26657 NULL, HFILL }},
26658 { &hf_gsm_map_ms_radioResourceList,
26659 { "radioResourceList", "gsm_map.ms.radioResourceList",
26660 FT_UINT32, BASE_DEC, NULL, 0,
26661 NULL, HFILL }},
26662 { &hf_gsm_map_ms_bssmap_ServiceHandover,
26663 { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
26664 FT_BYTES, BASE_NONE, NULL, 0,
26665 NULL, HFILL }},
26666 { &hf_gsm_map_ms_ranap_ServiceHandover,
26667 { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
26668 FT_BYTES, BASE_NONE, NULL, 0,
26669 NULL, HFILL }},
26670 { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
26671 { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
26672 FT_UINT32, BASE_DEC, NULL, 0,
26673 NULL, HFILL }},
26674 { &hf_gsm_map_ms_currentlyUsedCodec,
26675 { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
26676 FT_BYTES, BASE_NONE, NULL, 0,
26677 "Codec", HFILL }},
26678 { &hf_gsm_map_ms_iuSupportedCodecsList,
26679 { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList_element",
26680 FT_NONE, BASE_NONE, NULL, 0,
26681 "SupportedCodecsList", HFILL }},
26682 { &hf_gsm_map_ms_rab_ConfigurationIndicator,
26683 { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator_element",
26684 FT_NONE, BASE_NONE, NULL, 0,
26685 NULL, HFILL }},
26686 { &hf_gsm_map_ms_iuSelectedCodec,
26687 { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
26688 FT_BYTES, BASE_NONE, NULL, 0,
26689 "Codec", HFILL }},
26690 { &hf_gsm_map_ms_alternativeChannelType,
26691 { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
26692 FT_BYTES, BASE_NONE, NULL, 0,
26693 "RadioResourceInformation", HFILL }},
26694 { &hf_gsm_map_ms_tracePropagationList,
26695 { "tracePropagationList", "gsm_map.ms.tracePropagationList_element",
26696 FT_NONE, BASE_NONE, NULL, 0,
26697 NULL, HFILL }},
26698 { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor,
26699 { "aoipSupportedCodecsListAnchor", "gsm_map.ms.aoipSupportedCodecsListAnchor_element",
26700 FT_NONE, BASE_NONE, NULL, 0,
26701 "AoIPCodecsList", HFILL }},
26702 { &hf_gsm_map_ms_aoipSelectedCodecTarget,
26703 { "aoipSelectedCodecTarget", "gsm_map.ms.aoipSelectedCodecTarget",
26704 FT_BYTES, BASE_NONE, NULL, 0,
26705 "AoIPCodec", HFILL }},
26706 { &hf_gsm_map_ms_uesbi_Iu,
26707 { "uesbi-Iu", "gsm_map.ms.uesbi_Iu_element",
26708 FT_NONE, BASE_NONE, NULL, 0,
26709 NULL, HFILL }},
26710 { &hf_gsm_map_ms_integrityProtectionAlgorithms,
26711 { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
26712 FT_BYTES, BASE_NONE, NULL, 0,
26713 "PermittedIntegrityProtectionAlgorithms", HFILL }},
26714 { &hf_gsm_map_ms_encryptionAlgorithms,
26715 { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
26716 FT_BYTES, BASE_NONE, NULL, 0,
26717 "PermittedEncryptionAlgorithms", HFILL }},
26718 { &hf_gsm_map_ms_targetCellId,
26719 { "targetCellId", "gsm_map.ms.targetCellId",
26720 FT_BYTES, BASE_NONE, NULL, 0,
26721 "GlobalCellId", HFILL }},
26722 { &hf_gsm_map_ms_ho_NumberNotRequired,
26723 { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired_element",
26724 FT_NONE, BASE_NONE, NULL, 0,
26725 NULL, HFILL }},
26726 { &hf_gsm_map_ms_targetRNCId,
26727 { "targetRNCId", "gsm_map.ms.targetRNCId",
26728 FT_BYTES, BASE_NONE, NULL, 0,
26729 "RNCId", HFILL }},
26730 { &hf_gsm_map_ms_multipleBearerRequested,
26731 { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested_element",
26732 FT_NONE, BASE_NONE, NULL, 0,
26733 NULL, HFILL }},
26734 { &hf_gsm_map_ms_rab_Id,
26735 { "rab-Id", "gsm_map.ms.rab_Id",
26736 FT_UINT32, BASE_DEC, NULL, 0,
26737 NULL, HFILL }},
26738 { &hf_gsm_map_ms_asciCallReference,
26739 { "asciCallReference", "gsm_map.ms.asciCallReference",
26740 FT_BYTES, BASE_NONE, NULL, 0,
26741 "ASCI_CallReference", HFILL }},
26742 { &hf_gsm_map_ms_geran_classmark,
26743 { "geran-classmark", "gsm_map.ms.geran_classmark",
26744 FT_BYTES, BASE_NONE, NULL, 0,
26745 NULL, HFILL }},
26746 { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
26747 { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
26748 FT_BYTES, BASE_NONE, NULL, 0,
26749 "Codec", HFILL }},
26750 { &hf_gsm_map_ms_regionalSubscriptionData,
26751 { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
26752 FT_UINT32, BASE_DEC, NULL, 0,
26753 "ZoneCodeList", HFILL }},
26754 { &hf_gsm_map_ms_lclsGlobalCallReference,
26755 { "lclsGlobalCallReference", "gsm_map.ms.lclsGlobalCallReference",
26756 FT_BYTES, BASE_NONE, NULL, 0,
26757 "LCLS_GlobalCallReference", HFILL }},
26758 { &hf_gsm_map_ms_lcls_Negotiation,
26759 { "lcls-Negotiation", "gsm_map.ms.lcls_Negotiation",
26760 FT_BYTES, BASE_NONE, NULL, 0,
26761 NULL, HFILL }},
26762 { &hf_gsm_map_ms_lcls_Configuration_Preference,
26763 { "lcls-Configuration-Preference", "gsm_map.ms.lcls_Configuration_Preference",
26764 FT_BYTES, BASE_NONE, NULL, 0,
26765 "LCLS_ConfigurationPreference", HFILL }},
26766 { &hf_gsm_map_ms_csg_SubscriptionDataList,
26767 { "csg-SubscriptionDataList", "gsm_map.ms.csg_SubscriptionDataList",
26768 FT_UINT32, BASE_DEC, NULL, 0,
26769 NULL, HFILL }},
26770 { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
26771 { "BSSMAP-ServiceHandoverInfo", "gsm_map.ms.BSSMAP_ServiceHandoverInfo_element",
26772 FT_NONE, BASE_NONE, NULL, 0,
26773 NULL, HFILL }},
26774 { &hf_gsm_map_ms_RadioResourceList_item,
26775 { "RadioResource", "gsm_map.ms.RadioResource_element",
26776 FT_NONE, BASE_NONE, NULL, 0,
26777 NULL, HFILL }},
26778 { &hf_gsm_map_ms_handoverNumber,
26779 { "handoverNumber", "gsm_map.ms.handoverNumber",
26780 FT_BYTES, BASE_NONE, NULL, 0,
26781 "ISDN_AddressString", HFILL }},
26782 { &hf_gsm_map_ms_relocationNumberList,
26783 { "relocationNumberList", "gsm_map.ms.relocationNumberList",
26784 FT_UINT32, BASE_DEC, NULL, 0,
26785 NULL, HFILL }},
26786 { &hf_gsm_map_ms_multicallBearerInfo,
26787 { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
26788 FT_UINT32, BASE_DEC, NULL, 0,
26789 NULL, HFILL }},
26790 { &hf_gsm_map_ms_multipleBearerNotSupported,
26791 { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported_element",
26792 FT_NONE, BASE_NONE, NULL, 0,
26793 NULL, HFILL }},
26794 { &hf_gsm_map_ms_selectedUMTS_Algorithms,
26795 { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms_element",
26796 FT_NONE, BASE_NONE, NULL, 0,
26797 NULL, HFILL }},
26798 { &hf_gsm_map_ms_chosenRadioResourceInformation,
26799 { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation_element",
26800 FT_NONE, BASE_NONE, NULL, 0,
26801 NULL, HFILL }},
26802 { &hf_gsm_map_ms_iuAvailableCodecsList,
26803 { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList_element",
26804 FT_NONE, BASE_NONE, NULL, 0,
26805 "CodecList", HFILL }},
26806 { &hf_gsm_map_ms_aoipAvailableCodecsListMap,
26807 { "aoipAvailableCodecsListMap", "gsm_map.ms.aoipAvailableCodecsListMap_element",
26808 FT_NONE, BASE_NONE, NULL, 0,
26809 "AoIPCodecsList", HFILL }},
26810 { &hf_gsm_map_ms_integrityProtectionAlgorithm,
26811 { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
26812 FT_BYTES, BASE_NONE, NULL, 0,
26813 "ChosenIntegrityProtectionAlgorithm", HFILL }},
26814 { &hf_gsm_map_ms_encryptionAlgorithm,
26815 { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
26816 FT_BYTES, BASE_NONE, NULL, 0,
26817 "ChosenEncryptionAlgorithm", HFILL }},
26818 { &hf_gsm_map_ms_chosenChannelInfo,
26819 { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
26820 FT_BYTES, BASE_NONE, NULL, 0,
26821 NULL, HFILL }},
26822 { &hf_gsm_map_ms_chosenSpeechVersion,
26823 { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
26824 FT_BYTES, BASE_NONE, NULL, 0,
26825 NULL, HFILL }},
26826 { &hf_gsm_map_ms_targetMSC_Number,
26827 { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
26828 FT_BYTES, BASE_NONE, NULL, 0,
26829 "ISDN_AddressString", HFILL }},
26830 { &hf_gsm_map_ms_selectedRab_Id,
26831 { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
26832 FT_UINT32, BASE_DEC, NULL, 0,
26833 "RAB_Id", HFILL }},
26834 { &hf_gsm_map_ms_selectedGSM_Algorithm,
26835 { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
26836 FT_BYTES, BASE_NONE, NULL, 0,
26837 NULL, HFILL }},
26838 { &hf_gsm_map_ms_iUSelectedCodec,
26839 { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
26840 FT_BYTES, BASE_NONE, NULL, 0,
26841 "Codec", HFILL }},
26842 { &hf_gsm_map_ms_codec1,
26843 { "codec1", "gsm_map.ms.codec1",
26844 FT_BYTES, BASE_NONE, NULL, 0,
26845 "AoIPCodec", HFILL }},
26846 { &hf_gsm_map_ms_codec2,
26847 { "codec2", "gsm_map.ms.codec2",
26848 FT_BYTES, BASE_NONE, NULL, 0,
26849 "AoIPCodec", HFILL }},
26850 { &hf_gsm_map_ms_codec3,
26851 { "codec3", "gsm_map.ms.codec3",
26852 FT_BYTES, BASE_NONE, NULL, 0,
26853 "AoIPCodec", HFILL }},
26854 { &hf_gsm_map_ms_codec4,
26855 { "codec4", "gsm_map.ms.codec4",
26856 FT_BYTES, BASE_NONE, NULL, 0,
26857 "AoIPCodec", HFILL }},
26858 { &hf_gsm_map_ms_codec5,
26859 { "codec5", "gsm_map.ms.codec5",
26860 FT_BYTES, BASE_NONE, NULL, 0,
26861 "AoIPCodec", HFILL }},
26862 { &hf_gsm_map_ms_codec6,
26863 { "codec6", "gsm_map.ms.codec6",
26864 FT_BYTES, BASE_NONE, NULL, 0,
26865 "AoIPCodec", HFILL }},
26866 { &hf_gsm_map_ms_codec7,
26867 { "codec7", "gsm_map.ms.codec7",
26868 FT_BYTES, BASE_NONE, NULL, 0,
26869 "AoIPCodec", HFILL }},
26870 { &hf_gsm_map_ms_codec8,
26871 { "codec8", "gsm_map.ms.codec8",
26872 FT_BYTES, BASE_NONE, NULL, 0,
26873 "AoIPCodec", HFILL }},
26874 { &hf_gsm_map_ms_utranCodecList,
26875 { "utranCodecList", "gsm_map.ms.utranCodecList_element",
26876 FT_NONE, BASE_NONE, NULL, 0,
26877 "CodecList", HFILL }},
26878 { &hf_gsm_map_ms_geranCodecList,
26879 { "geranCodecList", "gsm_map.ms.geranCodecList_element",
26880 FT_NONE, BASE_NONE, NULL, 0,
26881 "CodecList", HFILL }},
26882 { &hf_gsm_map_ms_codec1_01,
26883 { "codec1", "gsm_map.ms.codec1",
26884 FT_BYTES, BASE_NONE, NULL, 0,
26885 "Codec", HFILL }},
26886 { &hf_gsm_map_ms_codec2_01,
26887 { "codec2", "gsm_map.ms.codec2",
26888 FT_BYTES, BASE_NONE, NULL, 0,
26889 "Codec", HFILL }},
26890 { &hf_gsm_map_ms_codec3_01,
26891 { "codec3", "gsm_map.ms.codec3",
26892 FT_BYTES, BASE_NONE, NULL, 0,
26893 "Codec", HFILL }},
26894 { &hf_gsm_map_ms_codec4_01,
26895 { "codec4", "gsm_map.ms.codec4",
26896 FT_BYTES, BASE_NONE, NULL, 0,
26897 "Codec", HFILL }},
26898 { &hf_gsm_map_ms_codec5_01,
26899 { "codec5", "gsm_map.ms.codec5",
26900 FT_BYTES, BASE_NONE, NULL, 0,
26901 "Codec", HFILL }},
26902 { &hf_gsm_map_ms_codec6_01,
26903 { "codec6", "gsm_map.ms.codec6",
26904 FT_BYTES, BASE_NONE, NULL, 0,
26905 "Codec", HFILL }},
26906 { &hf_gsm_map_ms_codec7_01,
26907 { "codec7", "gsm_map.ms.codec7",
26908 FT_BYTES, BASE_NONE, NULL, 0,
26909 "Codec", HFILL }},
26910 { &hf_gsm_map_ms_codec8_01,
26911 { "codec8", "gsm_map.ms.codec8",
26912 FT_BYTES, BASE_NONE, NULL, 0,
26913 "Codec", HFILL }},
26914 { &hf_gsm_map_ms_RelocationNumberList_item,
26915 { "RelocationNumber", "gsm_map.ms.RelocationNumber_element",
26916 FT_NONE, BASE_NONE, NULL, 0,
26917 NULL, HFILL }},
26918 { &hf_gsm_map_ms_immediateResponsePreferred,
26919 { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred_element",
26920 FT_NONE, BASE_NONE, NULL, 0,
26921 NULL, HFILL }},
26922 { &hf_gsm_map_ms_re_synchronisationInfo,
26923 { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo_element",
26924 FT_NONE, BASE_NONE, NULL, 0,
26925 NULL, HFILL }},
26926 { &hf_gsm_map_ms_requestingNodeType,
26927 { "requestingNodeType", "gsm_map.ms.requestingNodeType",
26928 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
26929 NULL, HFILL }},
26930 { &hf_gsm_map_ms_requestingPLMN_Id,
26931 { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
26932 FT_BYTES, BASE_NONE, NULL, 0,
26933 "PLMN_Id", HFILL }},
26934 { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors,
26935 { "numberOfRequestedAdditional-Vectors", "gsm_map.ms.numberOfRequestedAdditional_Vectors",
26936 FT_UINT32, BASE_DEC, NULL, 0,
26937 "NumberOfRequestedVectors", HFILL }},
26938 { &hf_gsm_map_ms_additionalVectorsAreForEPS,
26939 { "additionalVectorsAreForEPS", "gsm_map.ms.additionalVectorsAreForEPS_element",
26940 FT_NONE, BASE_NONE, NULL, 0,
26941 NULL, HFILL }},
26942 { &hf_gsm_map_ms_ueUsageTypeRequestIndication,
26943 { "ueUsageTypeRequestIndication", "gsm_map.ms.ueUsageTypeRequestIndication_element",
26944 FT_NONE, BASE_NONE, NULL, 0,
26945 NULL, HFILL }},
26946 { &hf_gsm_map_ms_auts,
26947 { "auts", "gsm_map.ms.auts",
26948 FT_BYTES, BASE_NONE, NULL, 0,
26949 NULL, HFILL }},
26950 { &hf_gsm_map_ms_eps_AuthenticationSetList,
26951 { "eps-AuthenticationSetList", "gsm_map.ms.eps_AuthenticationSetList",
26952 FT_UINT32, BASE_DEC, NULL, 0,
26953 NULL, HFILL }},
26954 { &hf_gsm_map_ms_ueUsageType,
26955 { "ueUsageType", "gsm_map.ms.ueUsageType",
26956 FT_BYTES, BASE_NONE, NULL, 0,
26957 "UE_UsageType", HFILL }},
26958 { &hf_gsm_map_ms_EPS_AuthenticationSetList_item,
26959 { "EPC-AV", "gsm_map.ms.EPC_AV_element",
26960 FT_NONE, BASE_NONE, NULL, 0,
26961 NULL, HFILL }},
26962 { &hf_gsm_map_ms_kasme,
26963 { "kasme", "gsm_map.ms.kasme",
26964 FT_BYTES, BASE_NONE, NULL, 0,
26965 NULL, HFILL }},
26966 { &hf_gsm_map_ms_imei,
26967 { "imei", "gsm_map.ms.imei",
26968 FT_BYTES, BASE_NONE, NULL, 0,
26969 NULL, HFILL }},
26970 { &hf_gsm_map_ms_requestedEquipmentInfo,
26971 { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
26972 FT_BYTES, BASE_NONE, NULL, 0,
26973 NULL, HFILL }},
26974 { &hf_gsm_map_ms_equipmentStatus,
26975 { "equipmentStatus", "gsm_map.ms.equipmentStatus",
26976 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
26977 NULL, HFILL }},
26978 { &hf_gsm_map_ms_bmuef,
26979 { "bmuef", "gsm_map.ms.bmuef_element",
26980 FT_NONE, BASE_NONE, NULL, 0,
26981 "UESBI_Iu", HFILL }},
26982 { &hf_gsm_map_ms_uesbi_IuA,
26983 { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
26984 FT_BYTES, BASE_NONE, NULL, 0,
26985 NULL, HFILL }},
26986 { &hf_gsm_map_ms_uesbi_IuB,
26987 { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
26988 FT_BYTES, BASE_NONE, NULL, 0,
26989 NULL, HFILL }},
26990 { &hf_gsm_map_ms_EDRX_Cycle_Length_List_item,
26991 { "EDRX-Cycle-Length", "gsm_map.ms.EDRX_Cycle_Length_element",
26992 FT_NONE, BASE_NONE, NULL, 0,
26993 NULL, HFILL }},
26994 { &hf_gsm_map_ms_rat_Type,
26995 { "rat-Type", "gsm_map.ms.rat_Type",
26996 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
26997 "Used_RAT_Type", HFILL }},
26998 { &hf_gsm_map_ms_eDRX_Cycle_Length_Value,
26999 { "eDRX-Cycle-Length-Value", "gsm_map.ms.eDRX_Cycle_Length_Value",
27000 FT_BYTES, BASE_NONE, NULL, 0,
27001 NULL, HFILL }},
27002 { &hf_gsm_map_ms_Reset_Id_List_item,
27003 { "Reset-Id", "gsm_map.ms.Reset_Id",
27004 FT_BYTES, BASE_NONE, NULL, 0,
27005 NULL, HFILL }},
27006 { &hf_gsm_map_ms_IMSI_GroupIdList_item,
27007 { "IMSI-GroupId", "gsm_map.ms.IMSI_GroupId_element",
27008 FT_NONE, BASE_NONE, NULL, 0,
27009 NULL, HFILL }},
27010 { &hf_gsm_map_ms_group_Service_Id,
27011 { "group-Service-Id", "gsm_map.ms.group_Service_Id",
27012 FT_UINT32, BASE_DEC, NULL, 0,
27013 NULL, HFILL }},
27014 { &hf_gsm_map_ms_plmnId,
27015 { "plmnId", "gsm_map.ms.plmnId",
27016 FT_BYTES, BASE_NONE, NULL, 0,
27017 "PLMN_Id", HFILL }},
27018 { &hf_gsm_map_ms_local_Group_ID,
27019 { "local-Group-ID", "gsm_map.ms.local_Group_ID",
27020 FT_BYTES, BASE_NONE, NULL, 0,
27021 "Local_GroupID", HFILL }},
27022 { &hf_gsm_map_ms_CSG_SubscriptionDataList_item,
27023 { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element",
27024 FT_NONE, BASE_NONE, NULL, 0,
27025 NULL, HFILL }},
27026 { &hf_gsm_map_ms_csg_Id,
27027 { "csg-Id", "gsm_map.ms.csg_Id",
27028 FT_BYTES, BASE_NONE, NULL, 0,
27029 NULL, HFILL }},
27030 { &hf_gsm_map_ms_expirationDate,
27031 { "expirationDate", "gsm_map.ms.expirationDate",
27032 FT_BYTES, BASE_NONE, NULL, 0,
27033 "Time", HFILL }},
27034 { &hf_gsm_map_ms_lipa_AllowedAPNList,
27035 { "lipa-AllowedAPNList", "gsm_map.ms.lipa_AllowedAPNList",
27036 FT_UINT32, BASE_DEC, NULL, 0,
27037 NULL, HFILL }},
27038 { &hf_gsm_map_ms_plmn_Id,
27039 { "plmn-Id", "gsm_map.ms.plmn_Id",
27040 FT_BYTES, BASE_NONE, NULL, 0,
27041 NULL, HFILL }},
27042 { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item,
27043 { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element",
27044 FT_NONE, BASE_NONE, NULL, 0,
27045 NULL, HFILL }},
27046 { &hf_gsm_map_ms_LIPA_AllowedAPNList_item,
27047 { "APN", "gsm_map.ms.APN",
27048 FT_BYTES, BASE_NONE, NULL, 0,
27049 NULL, HFILL }},
27050 { &hf_gsm_map_ms_apn_oi_Replacement,
27051 { "apn-oi-Replacement", "gsm_map.ms.apn_oi_Replacement",
27052 FT_BYTES, BASE_NONE, NULL, 0,
27053 NULL, HFILL }},
27054 { &hf_gsm_map_ms_rfsp_id,
27055 { "rfsp-id", "gsm_map.ms.rfsp_id",
27056 FT_UINT32, BASE_DEC, NULL, 0,
27057 NULL, HFILL }},
27058 { &hf_gsm_map_ms_ambr,
27059 { "ambr", "gsm_map.ms.ambr_element",
27060 FT_NONE, BASE_NONE, NULL, 0,
27061 NULL, HFILL }},
27062 { &hf_gsm_map_ms_apn_ConfigurationProfile,
27063 { "apn-ConfigurationProfile", "gsm_map.ms.apn_ConfigurationProfile_element",
27064 FT_NONE, BASE_NONE, NULL, 0,
27065 NULL, HFILL }},
27066 { &hf_gsm_map_ms_stn_sr,
27067 { "stn-sr", "gsm_map.ms.stn_sr",
27068 FT_BYTES, BASE_NONE, NULL, 0,
27069 "ISDN_AddressString", HFILL }},
27070 { &hf_gsm_map_ms_mps_CSPriority,
27071 { "mps-CSPriority", "gsm_map.ms.mps_CSPriority_element",
27072 FT_NONE, BASE_NONE, NULL, 0,
27073 NULL, HFILL }},
27074 { &hf_gsm_map_ms_mps_EPSPriority,
27075 { "mps-EPSPriority", "gsm_map.ms.mps_EPSPriority_element",
27076 FT_NONE, BASE_NONE, NULL, 0,
27077 NULL, HFILL }},
27078 { &hf_gsm_map_ms_subscribed_vsrvcc,
27079 { "subscribed-vsrvcc", "gsm_map.ms.subscribed_vsrvcc_element",
27080 FT_NONE, BASE_NONE, NULL, 0,
27081 NULL, HFILL }},
27082 { &hf_gsm_map_ms_defaultContext,
27083 { "defaultContext", "gsm_map.ms.defaultContext",
27084 FT_UINT32, BASE_DEC, NULL, 0,
27085 "ContextId", HFILL }},
27086 { &hf_gsm_map_ms_completeDataListIncluded,
27087 { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded_element",
27088 FT_NONE, BASE_NONE, NULL, 0,
27089 NULL, HFILL }},
27090 { &hf_gsm_map_ms_epsDataList,
27091 { "epsDataList", "gsm_map.ms.epsDataList",
27092 FT_UINT32, BASE_DEC, NULL, 0,
27093 "EPS_DataList", HFILL }},
27094 { &hf_gsm_map_ms_additionalDefaultContext,
27095 { "additionalDefaultContext", "gsm_map.ms.additionalDefaultContext",
27096 FT_UINT32, BASE_DEC, NULL, 0,
27097 "ContextId", HFILL }},
27098 { &hf_gsm_map_ms_EPS_DataList_item,
27099 { "APN-Configuration", "gsm_map.ms.APN_Configuration_element",
27100 FT_NONE, BASE_NONE, NULL, 0,
27101 NULL, HFILL }},
27102 { &hf_gsm_map_ms_pdn_Type,
27103 { "pdn-Type", "gsm_map.ms.pdn_Type",
27104 FT_BYTES, BASE_NONE, NULL, 0,
27105 NULL, HFILL }},
27106 { &hf_gsm_map_ms_servedPartyIP_IPv4_Address,
27107 { "servedPartyIP-IPv4-Address", "gsm_map.ms.servedPartyIP_IPv4_Address",
27108 FT_BYTES, BASE_NONE, NULL, 0,
27109 "PDP_Address", HFILL }},
27110 { &hf_gsm_map_ms_eps_qos_Subscribed,
27111 { "eps-qos-Subscribed", "gsm_map.ms.eps_qos_Subscribed_element",
27112 FT_NONE, BASE_NONE, NULL, 0,
27113 NULL, HFILL }},
27114 { &hf_gsm_map_ms_pdn_gw_AllocationType,
27115 { "pdn-gw-AllocationType", "gsm_map.ms.pdn_gw_AllocationType",
27116 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_GW_AllocationType_vals), 0,
27117 NULL, HFILL }},
27118 { &hf_gsm_map_ms_vplmnAddressAllowed,
27119 { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed_element",
27120 FT_NONE, BASE_NONE, NULL, 0,
27121 NULL, HFILL }},
27122 { &hf_gsm_map_ms_chargingCharacteristics,
27123 { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
27124 FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
27125 NULL, HFILL }},
27126 { &hf_gsm_map_ms_specificAPNInfoList,
27127 { "specificAPNInfoList", "gsm_map.ms.specificAPNInfoList",
27128 FT_UINT32, BASE_DEC, NULL, 0,
27129 NULL, HFILL }},
27130 { &hf_gsm_map_ms_servedPartyIP_IPv6_Address,
27131 { "servedPartyIP-IPv6-Address", "gsm_map.ms.servedPartyIP_IPv6_Address",
27132 FT_BYTES, BASE_NONE, NULL, 0,
27133 "PDP_Address", HFILL }},
27134 { &hf_gsm_map_ms_sipto_Permission,
27135 { "sipto-Permission", "gsm_map.ms.sipto_Permission",
27136 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Permission_vals), 0,
27137 NULL, HFILL }},
27138 { &hf_gsm_map_ms_lipa_Permission,
27139 { "lipa-Permission", "gsm_map.ms.lipa_Permission",
27140 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LIPA_Permission_vals), 0,
27141 NULL, HFILL }},
27142 { &hf_gsm_map_ms_restoration_Priority,
27143 { "restoration-Priority", "gsm_map.ms.restoration_Priority",
27144 FT_BYTES, BASE_NONE, NULL, 0,
27145 NULL, HFILL }},
27146 { &hf_gsm_map_ms_sipto_local_network_Permission,
27147 { "sipto-local-network-Permission", "gsm_map.ms.sipto_local_network_Permission",
27148 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Local_Network_Permission_vals), 0,
27149 NULL, HFILL }},
27150 { &hf_gsm_map_ms_wlan_offloadability,
27151 { "wlan-offloadability", "gsm_map.ms.wlan_offloadability_element",
27152 FT_NONE, BASE_NONE, NULL, 0,
27153 NULL, HFILL }},
27154 { &hf_gsm_map_ms_non_IP_PDN_Type_Indicator,
27155 { "non-IP-PDN-Type-Indicator", "gsm_map.ms.non_IP_PDN_Type_Indicator_element",
27156 FT_NONE, BASE_NONE, NULL, 0,
27157 NULL, HFILL }},
27158 { &hf_gsm_map_ms_nIDD_Mechanism,
27159 { "nIDD-Mechanism", "gsm_map.ms.nIDD_Mechanism",
27160 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NIDD_Mechanism_vals), 0,
27161 NULL, HFILL }},
27162 { &hf_gsm_map_ms_sCEF_ID,
27163 { "sCEF-ID", "gsm_map.ms.sCEF_ID",
27164 FT_BYTES, BASE_NONE, NULL, 0,
27165 "FQDN", HFILL }},
27166 { &hf_gsm_map_ms_pdn_ConnectionContinuity,
27167 { "pdn-ConnectionContinuity", "gsm_map.ms.pdn_ConnectionContinuity",
27168 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_ConnectionContinuity_vals), 0,
27169 NULL, HFILL }},
27170 { &hf_gsm_map_ms_qos_Class_Identifier,
27171 { "qos-Class-Identifier", "gsm_map.ms.qos_Class_Identifier",
27172 FT_UINT32, BASE_DEC, NULL, 0,
27173 NULL, HFILL }},
27174 { &hf_gsm_map_ms_allocation_Retention_Priority,
27175 { "allocation-Retention-Priority", "gsm_map.ms.allocation_Retention_Priority_element",
27176 FT_NONE, BASE_NONE, NULL, 0,
27177 NULL, HFILL }},
27178 { &hf_gsm_map_ms_max_RequestedBandwidth_UL,
27179 { "max-RequestedBandwidth-UL", "gsm_map.ms.max_RequestedBandwidth_UL",
27180 FT_INT32, BASE_DEC, NULL, 0,
27181 "Bandwidth", HFILL }},
27182 { &hf_gsm_map_ms_max_RequestedBandwidth_DL,
27183 { "max-RequestedBandwidth-DL", "gsm_map.ms.max_RequestedBandwidth_DL",
27184 FT_INT32, BASE_DEC, NULL, 0,
27185 "Bandwidth", HFILL }},
27186 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL,
27187 { "extended-Max-RequestedBandwidth-UL", "gsm_map.ms.extended_Max_RequestedBandwidth_UL",
27188 FT_INT32, BASE_DEC, NULL, 0,
27189 "BandwidthExt", HFILL }},
27190 { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL,
27191 { "extended-Max-RequestedBandwidth-DL", "gsm_map.ms.extended_Max_RequestedBandwidth_DL",
27192 FT_INT32, BASE_DEC, NULL, 0,
27193 "BandwidthExt", HFILL }},
27194 { &hf_gsm_map_ms_SpecificAPNInfoList_item,
27195 { "SpecificAPNInfo", "gsm_map.ms.SpecificAPNInfo_element",
27196 FT_NONE, BASE_NONE, NULL, 0,
27197 NULL, HFILL }},
27198 { &hf_gsm_map_ms_priority_level,
27199 { "priority-level", "gsm_map.ms.priority_level",
27200 FT_INT32, BASE_DEC, NULL, 0,
27201 "INTEGER", HFILL }},
27202 { &hf_gsm_map_ms_pre_emption_capability,
27203 { "pre-emption-capability", "gsm_map.ms.pre_emption_capability",
27204 FT_BOOLEAN, BASE_NONE, NULL, 0,
27205 "BOOLEAN", HFILL }},
27206 { &hf_gsm_map_ms_pre_emption_vulnerability,
27207 { "pre-emption-vulnerability", "gsm_map.ms.pre_emption_vulnerability",
27208 FT_BOOLEAN, BASE_NONE, NULL, 0,
27209 "BOOLEAN", HFILL }},
27210 { &hf_gsm_map_ms_pdn_gw_ipv4_Address,
27211 { "pdn-gw-ipv4-Address", "gsm_map.ms.pdn_gw_ipv4_Address",
27212 FT_BYTES, BASE_NONE, NULL, 0,
27213 "PDP_Address", HFILL }},
27214 { &hf_gsm_map_ms_pdn_gw_ipv6_Address,
27215 { "pdn-gw-ipv6-Address", "gsm_map.ms.pdn_gw_ipv6_Address",
27216 FT_BYTES, BASE_NONE, NULL, 0,
27217 "PDP_Address", HFILL }},
27218 { &hf_gsm_map_ms_pdn_gw_name,
27219 { "pdn-gw-name", "gsm_map.ms.pdn_gw_name",
27220 FT_BYTES, BASE_NONE, NULL, 0,
27221 "FQDN", HFILL }},
27222 { &hf_gsm_map_ms_wlan_offloadability_EUTRAN,
27223 { "wlan-offloadability-EUTRAN", "gsm_map.ms.wlan_offloadability_EUTRAN",
27224 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_WLAN_Offloadability_Indication_vals), 0,
27225 "WLAN_Offloadability_Indication", HFILL }},
27226 { &hf_gsm_map_ms_wlan_offloadability_UTRAN,
27227 { "wlan-offloadability-UTRAN", "gsm_map.ms.wlan_offloadability_UTRAN",
27228 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_WLAN_Offloadability_Indication_vals), 0,
27229 "WLAN_Offloadability_Indication", HFILL }},
27230 { &hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item,
27231 { "AdjacentAccessRestrictionData", "gsm_map.ms.AdjacentAccessRestrictionData_element",
27232 FT_NONE, BASE_NONE, NULL, 0,
27233 NULL, HFILL }},
27234 { &hf_gsm_map_ms_accessRestrictionData,
27235 { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
27236 FT_BYTES, BASE_NONE, NULL, 0,
27237 NULL, HFILL }},
27238 { &hf_gsm_map_ms_ext_AccessRestrictionData,
27239 { "ext-AccessRestrictionData", "gsm_map.ms.ext_AccessRestrictionData",
27240 FT_BYTES, BASE_NONE, NULL, 0,
27241 NULL, HFILL }},
27242 { &hf_gsm_map_ms_gmlc_List,
27243 { "gmlc-List", "gsm_map.ms.gmlc_List",
27244 FT_UINT32, BASE_DEC, NULL, 0,
27245 NULL, HFILL }},
27246 { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
27247 { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
27248 FT_UINT32, BASE_DEC, NULL, 0,
27249 NULL, HFILL }},
27250 { &hf_gsm_map_ms_molr_List,
27251 { "molr-List", "gsm_map.ms.molr_List",
27252 FT_UINT32, BASE_DEC, NULL, 0,
27253 NULL, HFILL }},
27254 { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
27255 { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
27256 FT_UINT32, BASE_DEC, NULL, 0,
27257 "LCS_PrivacyExceptionList", HFILL }},
27258 { &hf_gsm_map_ms_GMLC_List_item,
27259 { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
27260 FT_BYTES, BASE_NONE, NULL, 0,
27261 NULL, HFILL }},
27262 { &hf_gsm_map_ms_GPRSDataList_item,
27263 { "PDP-Context", "gsm_map.ms.PDP_Context_element",
27264 FT_NONE, BASE_NONE, NULL, 0,
27265 NULL, HFILL }},
27266 { &hf_gsm_map_ms_pdp_ContextId,
27267 { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
27268 FT_UINT32, BASE_DEC, NULL, 0,
27269 "ContextId", HFILL }},
27270 { &hf_gsm_map_ms_pdp_Type,
27271 { "pdp-Type", "gsm_map.ms.pdp_Type",
27272 FT_BYTES, BASE_NONE, NULL, 0,
27273 NULL, HFILL }},
27274 { &hf_gsm_map_ms_pdp_Address,
27275 { "pdp-Address", "gsm_map.ms.pdp_Address",
27276 FT_BYTES, BASE_NONE, NULL, 0,
27277 NULL, HFILL }},
27278 { &hf_gsm_map_ms_qos_Subscribed,
27279 { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
27280 FT_BYTES, BASE_NONE, NULL, 0,
27281 NULL, HFILL }},
27282 { &hf_gsm_map_ms_ext_QoS_Subscribed,
27283 { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
27284 FT_BYTES, BASE_NONE, NULL, 0,
27285 NULL, HFILL }},
27286 { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
27287 { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
27288 FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
27289 "ChargingCharacteristics", HFILL }},
27290 { &hf_gsm_map_ms_ext2_QoS_Subscribed,
27291 { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
27292 FT_BYTES, BASE_NONE, NULL, 0,
27293 NULL, HFILL }},
27294 { &hf_gsm_map_ms_ext3_QoS_Subscribed,
27295 { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
27296 FT_BYTES, BASE_NONE, NULL, 0,
27297 NULL, HFILL }},
27298 { &hf_gsm_map_ms_ext4_QoS_Subscribed,
27299 { "ext4-QoS-Subscribed", "gsm_map.ms.ext4_QoS_Subscribed",
27300 FT_BYTES, BASE_NONE, NULL, 0,
27301 NULL, HFILL }},
27302 { &hf_gsm_map_ms_ext_pdp_Type,
27303 { "ext-pdp-Type", "gsm_map.ms.ext_pdp_Type",
27304 FT_BYTES, BASE_NONE, NULL, 0,
27305 NULL, HFILL }},
27306 { &hf_gsm_map_ms_ext_pdp_Address,
27307 { "ext-pdp-Address", "gsm_map.ms.ext_pdp_Address",
27308 FT_BYTES, BASE_NONE, NULL, 0,
27309 "PDP_Address", HFILL }},
27310 { &hf_gsm_map_ms_gprsDataList,
27311 { "gprsDataList", "gsm_map.ms.gprsDataList",
27312 FT_UINT32, BASE_DEC, NULL, 0,
27313 NULL, HFILL }},
27314 { &hf_gsm_map_ms_gprs_CSI,
27315 { "gprs-CSI", "gsm_map.ms.gprs_CSI_element",
27316 FT_NONE, BASE_NONE, NULL, 0,
27317 NULL, HFILL }},
27318 { &hf_gsm_map_ms_mo_sms_CSI,
27319 { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI_element",
27320 FT_NONE, BASE_NONE, NULL, 0,
27321 "SMS_CSI", HFILL }},
27322 { &hf_gsm_map_ms_mt_sms_CSI,
27323 { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI_element",
27324 FT_NONE, BASE_NONE, NULL, 0,
27325 "SMS_CSI", HFILL }},
27326 { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
27327 { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
27328 FT_UINT32, BASE_DEC, NULL, 0,
27329 NULL, HFILL }},
27330 { &hf_gsm_map_ms_mg_csi,
27331 { "mg-csi", "gsm_map.ms.mg_csi_element",
27332 FT_NONE, BASE_NONE, NULL, 0,
27333 NULL, HFILL }},
27334 { &hf_gsm_map_ms_gprs_CamelTDPDataList,
27335 { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
27336 FT_UINT32, BASE_DEC, NULL, 0,
27337 NULL, HFILL }},
27338 { &hf_gsm_map_ms_camelCapabilityHandling,
27339 { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
27340 FT_UINT32, BASE_DEC, NULL, 0,
27341 NULL, HFILL }},
27342 { &hf_gsm_map_ms_notificationToCSE,
27343 { "notificationToCSE", "gsm_map.ms.notificationToCSE_element",
27344 FT_NONE, BASE_NONE, NULL, 0,
27345 NULL, HFILL }},
27346 { &hf_gsm_map_ms_csi_Active,
27347 { "csi-Active", "gsm_map.ms.csi_Active_element",
27348 FT_NONE, BASE_NONE, NULL, 0,
27349 NULL, HFILL }},
27350 { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
27351 { "GPRS-CamelTDPData", "gsm_map.ms.GPRS_CamelTDPData_element",
27352 FT_NONE, BASE_NONE, NULL, 0,
27353 NULL, HFILL }},
27354 { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
27355 { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
27356 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
27357 NULL, HFILL }},
27358 { &hf_gsm_map_ms_serviceKey,
27359 { "serviceKey", "gsm_map.ms.serviceKey",
27360 FT_UINT32, BASE_DEC, NULL, 0,
27361 NULL, HFILL }},
27362 { &hf_gsm_map_ms_gsmSCF_Address,
27363 { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
27364 FT_BYTES, BASE_NONE, NULL, 0,
27365 "ISDN_AddressString", HFILL }},
27366 { &hf_gsm_map_ms_defaultSessionHandling,
27367 { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
27368 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
27369 "DefaultGPRS_Handling", HFILL }},
27370 { &hf_gsm_map_ms_LSADataList_item,
27371 { "LSAData", "gsm_map.ms.LSAData_element",
27372 FT_NONE, BASE_NONE, NULL, 0,
27373 NULL, HFILL }},
27374 { &hf_gsm_map_ms_lsaIdentity,
27375 { "lsaIdentity", "gsm_map.ms.lsaIdentity",
27376 FT_BYTES, BASE_NONE, NULL, 0,
27377 NULL, HFILL }},
27378 { &hf_gsm_map_ms_lsaAttributes,
27379 { "lsaAttributes", "gsm_map.ms.lsaAttributes",
27380 FT_BYTES, BASE_NONE, NULL, 0,
27381 NULL, HFILL }},
27382 { &hf_gsm_map_ms_lsaActiveModeIndicator,
27383 { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator_element",
27384 FT_NONE, BASE_NONE, NULL, 0,
27385 NULL, HFILL }},
27386 { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
27387 { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
27388 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
27389 NULL, HFILL }},
27390 { &hf_gsm_map_ms_lsaDataList,
27391 { "lsaDataList", "gsm_map.ms.lsaDataList",
27392 FT_UINT32, BASE_DEC, NULL, 0,
27393 NULL, HFILL }},
27394 { &hf_gsm_map_ms_msisdn,
27395 { "msisdn", "gsm_map.ms.msisdn",
27396 FT_BYTES, BASE_NONE, NULL, 0,
27397 "ISDN_AddressString", HFILL }},
27398 { &hf_gsm_map_ms_category,
27399 { "category", "gsm_map.ms.category",
27400 FT_BYTES, BASE_NONE, NULL, 0,
27401 NULL, HFILL }},
27402 { &hf_gsm_map_ms_subscriberStatus,
27403 { "subscriberStatus", "gsm_map.ms.subscriberStatus",
27404 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
27405 NULL, HFILL }},
27406 { &hf_gsm_map_ms_bearerServiceList,
27407 { "bearerServiceList", "gsm_map.ms.bearerServiceList",
27408 FT_UINT32, BASE_DEC, NULL, 0,
27409 NULL, HFILL }},
27410 { &hf_gsm_map_ms_teleserviceList,
27411 { "teleserviceList", "gsm_map.ms.teleserviceList",
27412 FT_UINT32, BASE_DEC, NULL, 0,
27413 NULL, HFILL }},
27414 { &hf_gsm_map_ms_provisionedSS,
27415 { "provisionedSS", "gsm_map.ms.provisionedSS",
27416 FT_UINT32, BASE_DEC, NULL, 0,
27417 "Ext_SS_InfoList", HFILL }},
27418 { &hf_gsm_map_ms_odb_Data,
27419 { "odb-Data", "gsm_map.ms.odb_Data_element",
27420 FT_NONE, BASE_NONE, NULL, 0,
27421 NULL, HFILL }},
27422 { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
27423 { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature_element",
27424 FT_NONE, BASE_NONE, NULL, 0,
27425 NULL, HFILL }},
27426 { &hf_gsm_map_ms_vbsSubscriptionData,
27427 { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
27428 FT_UINT32, BASE_DEC, NULL, 0,
27429 "VBSDataList", HFILL }},
27430 { &hf_gsm_map_ms_vgcsSubscriptionData,
27431 { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
27432 FT_UINT32, BASE_DEC, NULL, 0,
27433 "VGCSDataList", HFILL }},
27434 { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
27435 { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo_element",
27436 FT_NONE, BASE_NONE, NULL, 0,
27437 NULL, HFILL }},
27438 { &hf_gsm_map_ms_BearerServiceList_item,
27439 { "Ext-BearerServiceCode", "gsm_map.ms.Ext_BearerServiceCode",
27440 FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
27441 NULL, HFILL }},
27442 { &hf_gsm_map_ms_TeleserviceList_item,
27443 { "Ext-TeleserviceCode", "gsm_map.ms.Ext_TeleserviceCode",
27444 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
27445 NULL, HFILL }},
27446 { &hf_gsm_map_ms_odb_GeneralData,
27447 { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
27448 FT_BYTES, BASE_NONE, NULL, 0,
27449 NULL, HFILL }},
27450 { &hf_gsm_map_ms_odb_HPLMN_Data,
27451 { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
27452 FT_BYTES, BASE_NONE, NULL, 0,
27453 NULL, HFILL }},
27454 { &hf_gsm_map_ms_Ext_SS_InfoList_item,
27455 { "Ext-SS-Info", "gsm_map.ms.Ext_SS_Info",
27456 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
27457 NULL, HFILL }},
27458 { &hf_gsm_map_ms_forwardingInfo,
27459 { "forwardingInfo", "gsm_map.ms.forwardingInfo_element",
27460 FT_NONE, BASE_NONE, NULL, 0,
27461 "Ext_ForwInfo", HFILL }},
27462 { &hf_gsm_map_ms_callBarringInfo,
27463 { "callBarringInfo", "gsm_map.ms.callBarringInfo_element",
27464 FT_NONE, BASE_NONE, NULL, 0,
27465 "Ext_CallBarInfo", HFILL }},
27466 { &hf_gsm_map_ms_cug_Info,
27467 { "cug-Info", "gsm_map.ms.cug_Info_element",
27468 FT_NONE, BASE_NONE, NULL, 0,
27469 NULL, HFILL }},
27470 { &hf_gsm_map_ms_ss_Data,
27471 { "ss-Data", "gsm_map.ms.ss_Data_element",
27472 FT_NONE, BASE_NONE, NULL, 0,
27473 "Ext_SS_Data", HFILL }},
27474 { &hf_gsm_map_ms_emlpp_Info,
27475 { "emlpp-Info", "gsm_map.ms.emlpp_Info_element",
27476 FT_NONE, BASE_NONE, NULL, 0,
27477 NULL, HFILL }},
27478 { &hf_gsm_map_ms_ss_Code,
27479 { "ss-Code", "gsm_map.ms.ss_Code",
27480 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
27481 NULL, HFILL }},
27482 { &hf_gsm_map_ms_forwardingFeatureList,
27483 { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
27484 FT_UINT32, BASE_DEC, NULL, 0,
27485 "Ext_ForwFeatureList", HFILL }},
27486 { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
27487 { "Ext-ForwFeature", "gsm_map.ms.Ext_ForwFeature_element",
27488 FT_NONE, BASE_NONE, NULL, 0,
27489 NULL, HFILL }},
27490 { &hf_gsm_map_ms_basicService,
27491 { "basicService", "gsm_map.ms.basicService",
27492 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
27493 "Ext_BasicServiceCode", HFILL }},
27494 { &hf_gsm_map_ms_ss_Status,
27495 { "ss-Status", "gsm_map.ms.ss_Status",
27496 FT_BYTES, BASE_NONE, NULL, 0,
27497 "Ext_SS_Status", HFILL }},
27498 { &hf_gsm_map_ms_forwardedToNumber,
27499 { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
27500 FT_BYTES, BASE_NONE, NULL, 0,
27501 "ISDN_AddressString", HFILL }},
27502 { &hf_gsm_map_ms_forwardedToSubaddress,
27503 { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
27504 FT_BYTES, BASE_NONE, NULL, 0,
27505 "ISDN_SubaddressString", HFILL }},
27506 { &hf_gsm_map_ms_forwardingOptions,
27507 { "forwardingOptions", "gsm_map.ms.forwardingOptions",
27508 FT_BYTES, BASE_NONE, NULL, 0,
27509 NULL, HFILL }},
27510 { &hf_gsm_map_ms_noReplyConditionTime,
27511 { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
27512 FT_UINT32, BASE_DEC, NULL, 0,
27513 "Ext_NoRepCondTime", HFILL }},
27514 { &hf_gsm_map_ms_longForwardedToNumber,
27515 { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
27516 FT_BYTES, BASE_NONE, NULL, 0,
27517 "FTN_AddressString", HFILL }},
27518 { &hf_gsm_map_ms_callBarringFeatureList,
27519 { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
27520 FT_UINT32, BASE_DEC, NULL, 0,
27521 "Ext_CallBarFeatureList", HFILL }},
27522 { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
27523 { "Ext-CallBarringFeature", "gsm_map.ms.Ext_CallBarringFeature_element",
27524 FT_NONE, BASE_NONE, NULL, 0,
27525 NULL, HFILL }},
27526 { &hf_gsm_map_ms_cug_SubscriptionList,
27527 { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
27528 FT_UINT32, BASE_DEC, NULL, 0,
27529 NULL, HFILL }},
27530 { &hf_gsm_map_ms_cug_FeatureList,
27531 { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
27532 FT_UINT32, BASE_DEC, NULL, 0,
27533 NULL, HFILL }},
27534 { &hf_gsm_map_ms_CUG_SubscriptionList_item,
27535 { "CUG-Subscription", "gsm_map.ms.CUG_Subscription_element",
27536 FT_NONE, BASE_NONE, NULL, 0,
27537 NULL, HFILL }},
27538 { &hf_gsm_map_ms_cug_Index,
27539 { "cug-Index", "gsm_map.ms.cug_Index",
27540 FT_UINT32, BASE_DEC, NULL, 0,
27541 NULL, HFILL }},
27542 { &hf_gsm_map_ms_cug_Interlock,
27543 { "cug-Interlock", "gsm_map.ms.cug_Interlock",
27544 FT_BYTES, BASE_NONE, NULL, 0,
27545 NULL, HFILL }},
27546 { &hf_gsm_map_ms_intraCUG_Options,
27547 { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
27548 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
27549 NULL, HFILL }},
27550 { &hf_gsm_map_ms_basicServiceGroupList,
27551 { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
27552 FT_UINT32, BASE_DEC, NULL, 0,
27553 "Ext_BasicServiceGroupList", HFILL }},
27554 { &hf_gsm_map_ms_CUG_FeatureList_item,
27555 { "CUG-Feature", "gsm_map.ms.CUG_Feature_element",
27556 FT_NONE, BASE_NONE, NULL, 0,
27557 NULL, HFILL }},
27558 { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
27559 { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
27560 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
27561 NULL, HFILL }},
27562 { &hf_gsm_map_ms_preferentialCUG_Indicator,
27563 { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
27564 FT_UINT32, BASE_DEC, NULL, 0,
27565 "CUG_Index", HFILL }},
27566 { &hf_gsm_map_ms_interCUG_Restrictions,
27567 { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
27568 FT_BYTES, BASE_NONE, NULL, 0,
27569 NULL, HFILL }},
27570 { &hf_gsm_map_ms_ss_SubscriptionOption,
27571 { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
27572 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
27573 NULL, HFILL }},
27574 { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
27575 { "LCS-PrivacyClass", "gsm_map.ms.LCS_PrivacyClass_element",
27576 FT_NONE, BASE_NONE, NULL, 0,
27577 NULL, HFILL }},
27578 { &hf_gsm_map_ms_notificationToMSUser,
27579 { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
27580 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
27581 NULL, HFILL }},
27582 { &hf_gsm_map_ms_externalClientList,
27583 { "externalClientList", "gsm_map.ms.externalClientList",
27584 FT_UINT32, BASE_DEC, NULL, 0,
27585 NULL, HFILL }},
27586 { &hf_gsm_map_ms_plmnClientList,
27587 { "plmnClientList", "gsm_map.ms.plmnClientList",
27588 FT_UINT32, BASE_DEC, NULL, 0,
27589 NULL, HFILL }},
27590 { &hf_gsm_map_ms_ext_externalClientList,
27591 { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
27592 FT_UINT32, BASE_DEC, NULL, 0,
27593 NULL, HFILL }},
27594 { &hf_gsm_map_ms_serviceTypeList,
27595 { "serviceTypeList", "gsm_map.ms.serviceTypeList",
27596 FT_UINT32, BASE_DEC, NULL, 0,
27597 NULL, HFILL }},
27598 { &hf_gsm_map_ms_ExternalClientList_item,
27599 { "ExternalClient", "gsm_map.ms.ExternalClient_element",
27600 FT_NONE, BASE_NONE, NULL, 0,
27601 NULL, HFILL }},
27602 { &hf_gsm_map_ms_PLMNClientList_item,
27603 { "LCSClientInternalID", "gsm_map.ms.LCSClientInternalID",
27604 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
27605 NULL, HFILL }},
27606 { &hf_gsm_map_ms_Ext_ExternalClientList_item,
27607 { "ExternalClient", "gsm_map.ms.ExternalClient_element",
27608 FT_NONE, BASE_NONE, NULL, 0,
27609 NULL, HFILL }},
27610 { &hf_gsm_map_ms_clientIdentity,
27611 { "clientIdentity", "gsm_map.ms.clientIdentity_element",
27612 FT_NONE, BASE_NONE, NULL, 0,
27613 "LCSClientExternalID", HFILL }},
27614 { &hf_gsm_map_ms_gmlc_Restriction,
27615 { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
27616 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
27617 NULL, HFILL }},
27618 { &hf_gsm_map_ms_ServiceTypeList_item,
27619 { "ServiceType", "gsm_map.ms.ServiceType_element",
27620 FT_NONE, BASE_NONE, NULL, 0,
27621 NULL, HFILL }},
27622 { &hf_gsm_map_ms_serviceTypeIdentity,
27623 { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
27624 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
27625 "LCSServiceTypeID", HFILL }},
27626 { &hf_gsm_map_ms_MOLR_List_item,
27627 { "MOLR-Class", "gsm_map.ms.MOLR_Class_element",
27628 FT_NONE, BASE_NONE, NULL, 0,
27629 NULL, HFILL }},
27630 { &hf_gsm_map_ms_ZoneCodeList_item,
27631 { "ZoneCode", "gsm_map.ms.ZoneCode",
27632 FT_BYTES, BASE_NONE, NULL, 0,
27633 NULL, HFILL }},
27634 { &hf_gsm_map_ms_ss_List,
27635 { "ss-List", "gsm_map.ms.ss_List",
27636 FT_UINT32, BASE_DEC, NULL, 0,
27637 NULL, HFILL }},
27638 { &hf_gsm_map_ms_regionalSubscriptionResponse,
27639 { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
27640 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
27641 NULL, HFILL }},
27642 { &hf_gsm_map_ms_basicServiceList,
27643 { "basicServiceList", "gsm_map.ms.basicServiceList",
27644 FT_UINT32, BASE_DEC, NULL, 0,
27645 NULL, HFILL }},
27646 { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
27647 { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
27648 FT_BYTES, BASE_NONE, NULL, 0,
27649 "ZoneCode", HFILL }},
27650 { &hf_gsm_map_ms_vbsGroupIndication,
27651 { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication_element",
27652 FT_NONE, BASE_NONE, NULL, 0,
27653 NULL, HFILL }},
27654 { &hf_gsm_map_ms_vgcsGroupIndication,
27655 { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication_element",
27656 FT_NONE, BASE_NONE, NULL, 0,
27657 NULL, HFILL }},
27658 { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
27659 { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw_element",
27660 FT_NONE, BASE_NONE, NULL, 0,
27661 NULL, HFILL }},
27662 { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
27663 { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
27664 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
27665 NULL, HFILL }},
27666 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
27667 { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature_element",
27668 FT_NONE, BASE_NONE, NULL, 0,
27669 NULL, HFILL }},
27670 { &hf_gsm_map_ms_lsaInformationWithdraw,
27671 { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
27672 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
27673 NULL, HFILL }},
27674 { &hf_gsm_map_ms_gmlc_ListWithdraw,
27675 { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw_element",
27676 FT_NONE, BASE_NONE, NULL, 0,
27677 NULL, HFILL }},
27678 { &hf_gsm_map_ms_istInformationWithdraw,
27679 { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw_element",
27680 FT_NONE, BASE_NONE, NULL, 0,
27681 NULL, HFILL }},
27682 { &hf_gsm_map_ms_specificCSI_Withdraw,
27683 { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
27684 FT_BYTES, BASE_NONE, NULL, 0,
27685 NULL, HFILL }},
27686 { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
27687 { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw_element",
27688 FT_NONE, BASE_NONE, NULL, 0,
27689 NULL, HFILL }},
27690 { &hf_gsm_map_ms_stn_srWithdraw,
27691 { "stn-srWithdraw", "gsm_map.ms.stn_srWithdraw_element",
27692 FT_NONE, BASE_NONE, NULL, 0,
27693 NULL, HFILL }},
27694 { &hf_gsm_map_ms_epsSubscriptionDataWithdraw,
27695 { "epsSubscriptionDataWithdraw", "gsm_map.ms.epsSubscriptionDataWithdraw",
27696 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_SubscriptionDataWithdraw_vals), 0,
27697 "EPS_SubscriptionDataWithdraw", HFILL }},
27698 { &hf_gsm_map_ms_apn_oi_replacementWithdraw,
27699 { "apn-oi-replacementWithdraw", "gsm_map.ms.apn_oi_replacementWithdraw_element",
27700 FT_NONE, BASE_NONE, NULL, 0,
27701 NULL, HFILL }},
27702 { &hf_gsm_map_ms_csg_SubscriptionDeleted,
27703 { "csg-SubscriptionDeleted", "gsm_map.ms.csg_SubscriptionDeleted_element",
27704 FT_NONE, BASE_NONE, NULL, 0,
27705 NULL, HFILL }},
27706 { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw,
27707 { "subscribedPeriodicTAU-RAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicTAU_RAU_TimerWithdraw_element",
27708 FT_NONE, BASE_NONE, NULL, 0,
27709 NULL, HFILL }},
27710 { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw,
27711 { "subscribedPeriodicLAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicLAU_TimerWithdraw_element",
27712 FT_NONE, BASE_NONE, NULL, 0,
27713 NULL, HFILL }},
27714 { &hf_gsm_map_ms_subscribed_vsrvccWithdraw,
27715 { "subscribed-vsrvccWithdraw", "gsm_map.ms.subscribed_vsrvccWithdraw_element",
27716 FT_NONE, BASE_NONE, NULL, 0,
27717 NULL, HFILL }},
27718 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted,
27719 { "vplmn-Csg-SubscriptionDeleted", "gsm_map.ms.vplmn_Csg_SubscriptionDeleted_element",
27720 FT_NONE, BASE_NONE, NULL, 0,
27721 NULL, HFILL }},
27722 { &hf_gsm_map_ms_additionalMSISDN_Withdraw,
27723 { "additionalMSISDN-Withdraw", "gsm_map.ms.additionalMSISDN_Withdraw_element",
27724 FT_NONE, BASE_NONE, NULL, 0,
27725 NULL, HFILL }},
27726 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw,
27727 { "cs-to-ps-SRVCC-Withdraw", "gsm_map.ms.cs_to_ps_SRVCC_Withdraw_element",
27728 FT_NONE, BASE_NONE, NULL, 0,
27729 NULL, HFILL }},
27730 { &hf_gsm_map_ms_imsiGroupIdList_Withdraw,
27731 { "imsiGroupIdList-Withdraw", "gsm_map.ms.imsiGroupIdList_Withdraw_element",
27732 FT_NONE, BASE_NONE, NULL, 0,
27733 NULL, HFILL }},
27734 { &hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw,
27735 { "userPlaneIntegrityProtectionWithdraw", "gsm_map.ms.userPlaneIntegrityProtectionWithdraw_element",
27736 FT_NONE, BASE_NONE, NULL, 0,
27737 NULL, HFILL }},
27738 { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw,
27739 { "dl-Buffering-Suggested-Packet-Count-Withdraw", "gsm_map.ms.dl_Buffering_Suggested_Packet_Count_Withdraw_element",
27740 FT_NONE, BASE_NONE, NULL, 0,
27741 NULL, HFILL }},
27742 { &hf_gsm_map_ms_ue_UsageTypeWithdraw,
27743 { "ue-UsageTypeWithdraw", "gsm_map.ms.ue_UsageTypeWithdraw_element",
27744 FT_NONE, BASE_NONE, NULL, 0,
27745 NULL, HFILL }},
27746 { &hf_gsm_map_ms_reset_idsWithdraw,
27747 { "reset-idsWithdraw", "gsm_map.ms.reset_idsWithdraw_element",
27748 FT_NONE, BASE_NONE, NULL, 0,
27749 NULL, HFILL }},
27750 { &hf_gsm_map_ms_iab_OperationWithdraw,
27751 { "iab-OperationWithdraw", "gsm_map.ms.iab_OperationWithdraw_element",
27752 FT_NONE, BASE_NONE, NULL, 0,
27753 NULL, HFILL }},
27754 { &hf_gsm_map_ms_allGPRSData,
27755 { "allGPRSData", "gsm_map.ms.allGPRSData_element",
27756 FT_NONE, BASE_NONE, NULL, 0,
27757 NULL, HFILL }},
27758 { &hf_gsm_map_ms_contextIdList,
27759 { "contextIdList", "gsm_map.ms.contextIdList",
27760 FT_UINT32, BASE_DEC, NULL, 0,
27761 NULL, HFILL }},
27762 { &hf_gsm_map_ms_allEPS_Data,
27763 { "allEPS-Data", "gsm_map.ms.allEPS_Data_element",
27764 FT_NONE, BASE_NONE, NULL, 0,
27765 NULL, HFILL }},
27766 { &hf_gsm_map_ms_ContextIdList_item,
27767 { "ContextId", "gsm_map.ms.ContextId",
27768 FT_UINT32, BASE_DEC, NULL, 0,
27769 NULL, HFILL }},
27770 { &hf_gsm_map_ms_allLSAData,
27771 { "allLSAData", "gsm_map.ms.allLSAData_element",
27772 FT_NONE, BASE_NONE, NULL, 0,
27773 NULL, HFILL }},
27774 { &hf_gsm_map_ms_lsaIdentityList,
27775 { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
27776 FT_UINT32, BASE_DEC, NULL, 0,
27777 NULL, HFILL }},
27778 { &hf_gsm_map_ms_LSAIdentityList_item,
27779 { "LSAIdentity", "gsm_map.ms.LSAIdentity",
27780 FT_BYTES, BASE_NONE, NULL, 0,
27781 NULL, HFILL }},
27782 { &hf_gsm_map_ms_BasicServiceList_item,
27783 { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
27784 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
27785 NULL, HFILL }},
27786 { &hf_gsm_map_ms_o_CSI,
27787 { "o-CSI", "gsm_map.ms.o_CSI_element",
27788 FT_NONE, BASE_NONE, NULL, 0,
27789 NULL, HFILL }},
27790 { &hf_gsm_map_ms_ss_CSI,
27791 { "ss-CSI", "gsm_map.ms.ss_CSI_element",
27792 FT_NONE, BASE_NONE, NULL, 0,
27793 NULL, HFILL }},
27794 { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
27795 { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
27796 FT_UINT32, BASE_DEC, NULL, 0,
27797 "O_BcsmCamelTDPCriteriaList", HFILL }},
27798 { &hf_gsm_map_ms_tif_CSI,
27799 { "tif-CSI", "gsm_map.ms.tif_CSI_element",
27800 FT_NONE, BASE_NONE, NULL, 0,
27801 NULL, HFILL }},
27802 { &hf_gsm_map_ms_m_CSI,
27803 { "m-CSI", "gsm_map.ms.m_CSI_element",
27804 FT_NONE, BASE_NONE, NULL, 0,
27805 NULL, HFILL }},
27806 { &hf_gsm_map_ms_vt_CSI,
27807 { "vt-CSI", "gsm_map.ms.vt_CSI_element",
27808 FT_NONE, BASE_NONE, NULL, 0,
27809 "T_CSI", HFILL }},
27810 { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
27811 { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
27812 FT_UINT32, BASE_DEC, NULL, 0,
27813 NULL, HFILL }},
27814 { &hf_gsm_map_ms_d_CSI,
27815 { "d-CSI", "gsm_map.ms.d_CSI_element",
27816 FT_NONE, BASE_NONE, NULL, 0,
27817 NULL, HFILL }},
27818 { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
27819 { "MT-smsCAMELTDP-Criteria", "gsm_map.ms.MT_smsCAMELTDP_Criteria_element",
27820 FT_NONE, BASE_NONE, NULL, 0,
27821 NULL, HFILL }},
27822 { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
27823 { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
27824 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
27825 NULL, HFILL }},
27826 { &hf_gsm_map_ms_tpdu_TypeCriterion,
27827 { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
27828 FT_UINT32, BASE_DEC, NULL, 0,
27829 NULL, HFILL }},
27830 { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
27831 { "MT-SMS-TPDU-Type", "gsm_map.ms.MT_SMS_TPDU_Type",
27832 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
27833 NULL, HFILL }},
27834 { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
27835 { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
27836 FT_UINT32, BASE_DEC, NULL, 0,
27837 NULL, HFILL }},
27838 { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
27839 { "DP-AnalysedInfoCriterium", "gsm_map.ms.DP_AnalysedInfoCriterium_element",
27840 FT_NONE, BASE_NONE, NULL, 0,
27841 NULL, HFILL }},
27842 { &hf_gsm_map_ms_dialledNumber,
27843 { "dialledNumber", "gsm_map.ms.dialledNumber",
27844 FT_BYTES, BASE_NONE, NULL, 0,
27845 "ISDN_AddressString", HFILL }},
27846 { &hf_gsm_map_ms_defaultCallHandling,
27847 { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
27848 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
27849 NULL, HFILL }},
27850 { &hf_gsm_map_ms_ss_CamelData,
27851 { "ss-CamelData", "gsm_map.ms.ss_CamelData_element",
27852 FT_NONE, BASE_NONE, NULL, 0,
27853 NULL, HFILL }},
27854 { &hf_gsm_map_ms_ss_EventList,
27855 { "ss-EventList", "gsm_map.ms.ss_EventList",
27856 FT_UINT32, BASE_DEC, NULL, 0,
27857 NULL, HFILL }},
27858 { &hf_gsm_map_ms_SS_EventList_item,
27859 { "SS-Code", "gsm_map.ms.SS_Code",
27860 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
27861 NULL, HFILL }},
27862 { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
27863 { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
27864 FT_UINT32, BASE_DEC, NULL, 0,
27865 NULL, HFILL }},
27866 { &hf_gsm_map_ms_csiActive,
27867 { "csiActive", "gsm_map.ms.csiActive_element",
27868 FT_NONE, BASE_NONE, NULL, 0,
27869 NULL, HFILL }},
27870 { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
27871 { "O-BcsmCamelTDPData", "gsm_map.ms.O_BcsmCamelTDPData_element",
27872 FT_NONE, BASE_NONE, NULL, 0,
27873 NULL, HFILL }},
27874 { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
27875 { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
27876 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
27877 NULL, HFILL }},
27878 { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
27879 { "O-BcsmCamelTDP-Criteria", "gsm_map.ms.O_BcsmCamelTDP_Criteria_element",
27880 FT_NONE, BASE_NONE, NULL, 0,
27881 NULL, HFILL }},
27882 { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
27883 { "T-BCSM-CAMEL-TDP-Criteria", "gsm_map.ms.T_BCSM_CAMEL_TDP_Criteria_element",
27884 FT_NONE, BASE_NONE, NULL, 0,
27885 NULL, HFILL }},
27886 { &hf_gsm_map_ms_destinationNumberCriteria,
27887 { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria_element",
27888 FT_NONE, BASE_NONE, NULL, 0,
27889 NULL, HFILL }},
27890 { &hf_gsm_map_ms_basicServiceCriteria,
27891 { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
27892 FT_UINT32, BASE_DEC, NULL, 0,
27893 NULL, HFILL }},
27894 { &hf_gsm_map_ms_callTypeCriteria,
27895 { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
27896 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
27897 NULL, HFILL }},
27898 { &hf_gsm_map_ms_o_CauseValueCriteria,
27899 { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
27900 FT_UINT32, BASE_DEC, NULL, 0,
27901 NULL, HFILL }},
27902 { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
27903 { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
27904 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
27905 "T_BcsmTriggerDetectionPoint", HFILL }},
27906 { &hf_gsm_map_ms_t_CauseValueCriteria,
27907 { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
27908 FT_UINT32, BASE_DEC, NULL, 0,
27909 NULL, HFILL }},
27910 { &hf_gsm_map_ms_matchType,
27911 { "matchType", "gsm_map.ms.matchType",
27912 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
27913 NULL, HFILL }},
27914 { &hf_gsm_map_ms_destinationNumberList,
27915 { "destinationNumberList", "gsm_map.ms.destinationNumberList",
27916 FT_UINT32, BASE_DEC, NULL, 0,
27917 NULL, HFILL }},
27918 { &hf_gsm_map_ms_destinationNumberLengthList,
27919 { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
27920 FT_UINT32, BASE_DEC, NULL, 0,
27921 NULL, HFILL }},
27922 { &hf_gsm_map_ms_DestinationNumberList_item,
27923 { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
27924 FT_BYTES, BASE_NONE, NULL, 0,
27925 NULL, HFILL }},
27926 { &hf_gsm_map_ms_DestinationNumberLengthList_item,
27927 { "DestinationNumberLengthList item", "gsm_map.ms.DestinationNumberLengthList_item",
27928 FT_UINT32, BASE_DEC, NULL, 0,
27929 "INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
27930 { &hf_gsm_map_ms_BasicServiceCriteria_item,
27931 { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
27932 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
27933 NULL, HFILL }},
27934 { &hf_gsm_map_ms_O_CauseValueCriteria_item,
27935 { "CauseValue", "gsm_map.ms.CauseValue",
27936 FT_BYTES, BASE_NONE, NULL, 0,
27937 NULL, HFILL }},
27938 { &hf_gsm_map_ms_T_CauseValueCriteria_item,
27939 { "CauseValue", "gsm_map.ms.CauseValue",
27940 FT_BYTES, BASE_NONE, NULL, 0,
27941 NULL, HFILL }},
27942 { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
27943 { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
27944 FT_UINT32, BASE_DEC, NULL, 0,
27945 NULL, HFILL }},
27946 { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
27947 { "SMS-CAMEL-TDP-Data", "gsm_map.ms.SMS_CAMEL_TDP_Data_element",
27948 FT_NONE, BASE_NONE, NULL, 0,
27949 NULL, HFILL }},
27950 { &hf_gsm_map_ms_defaultSMS_Handling,
27951 { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
27952 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
27953 NULL, HFILL }},
27954 { &hf_gsm_map_ms_mobilityTriggers,
27955 { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
27956 FT_UINT32, BASE_DEC, NULL, 0,
27957 NULL, HFILL }},
27958 { &hf_gsm_map_ms_MobilityTriggers_item,
27959 { "MM-Code", "gsm_map.ms.MM_Code",
27960 FT_BYTES, BASE_NONE, NULL, 0,
27961 NULL, HFILL }},
27962 { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
27963 { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
27964 FT_UINT32, BASE_DEC, NULL, 0,
27965 NULL, HFILL }},
27966 { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
27967 { "T-BcsmCamelTDPData", "gsm_map.ms.T_BcsmCamelTDPData_element",
27968 FT_NONE, BASE_NONE, NULL, 0,
27969 NULL, HFILL }},
27970 { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
27971 { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
27972 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
27973 NULL, HFILL }},
27974 { &hf_gsm_map_ms_ggsn_Address,
27975 { "ggsn-Address", "gsm_map.ms.ggsn_Address",
27976 FT_BYTES, BASE_NONE, NULL, 0,
27977 "GSN_Address", HFILL }},
27978 { &hf_gsm_map_ms_ggsn_Number,
27979 { "ggsn-Number", "gsm_map.ms.ggsn_Number",
27980 FT_BYTES, BASE_NONE, NULL, 0,
27981 "ISDN_AddressString", HFILL }},
27982 { &hf_gsm_map_ms_mobileNotReachableReason,
27983 { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
27984 FT_UINT32, BASE_DEC, NULL, 0,
27985 "AbsentSubscriberDiagnosticSM", HFILL }},
27986 { &hf_gsm_map_ms_sendingNodenumber,
27987 { "sendingNodenumber", "gsm_map.ms.sendingNodenumber",
27988 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SendingNode_Number_vals), 0,
27989 "SendingNode_Number", HFILL }},
27990 { &hf_gsm_map_ms_hlr_List,
27991 { "hlr-List", "gsm_map.ms.hlr_List",
27992 FT_UINT32, BASE_DEC, NULL, 0,
27993 NULL, HFILL }},
27994 { &hf_gsm_map_ms_reset_Id_List,
27995 { "reset-Id-List", "gsm_map.ms.reset_Id_List",
27996 FT_UINT32, BASE_DEC, NULL, 0,
27997 NULL, HFILL }},
27998 { &hf_gsm_map_ms_subscriptionData,
27999 { "subscriptionData", "gsm_map.ms.subscriptionData_element",
28000 FT_NONE, BASE_NONE, NULL, 0,
28001 "InsertSubscriberDataArg", HFILL }},
28002 { &hf_gsm_map_ms_subscriptionDataDeletion,
28003 { "subscriptionDataDeletion", "gsm_map.ms.subscriptionDataDeletion_element",
28004 FT_NONE, BASE_NONE, NULL, 0,
28005 "DeleteSubscriberDataArg", HFILL }},
28006 { &hf_gsm_map_ms_css_Number,
28007 { "css-Number", "gsm_map.ms.css_Number",
28008 FT_BYTES, BASE_NONE, NULL, 0,
28009 "ISDN_AddressString", HFILL }},
28010 { &hf_gsm_map_ms_msNotReachable,
28011 { "msNotReachable", "gsm_map.ms.msNotReachable_element",
28012 FT_NONE, BASE_NONE, NULL, 0,
28013 NULL, HFILL }},
28014 { &hf_gsm_map_ms_VBSDataList_item,
28015 { "VoiceBroadcastData", "gsm_map.ms.VoiceBroadcastData_element",
28016 FT_NONE, BASE_NONE, NULL, 0,
28017 NULL, HFILL }},
28018 { &hf_gsm_map_ms_VGCSDataList_item,
28019 { "VoiceGroupCallData", "gsm_map.ms.VoiceGroupCallData_element",
28020 FT_NONE, BASE_NONE, NULL, 0,
28021 NULL, HFILL }},
28022 { &hf_gsm_map_ms_groupId,
28023 { "groupId", "gsm_map.ms.groupId",
28024 FT_BYTES, BASE_NONE, NULL, 0,
28025 NULL, HFILL }},
28026 { &hf_gsm_map_ms_additionalSubscriptions,
28027 { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
28028 FT_BYTES, BASE_NONE, NULL, 0,
28029 NULL, HFILL }},
28030 { &hf_gsm_map_ms_additionalInfo,
28031 { "additionalInfo", "gsm_map.ms.additionalInfo",
28032 FT_BYTES, BASE_NONE, NULL, 0,
28033 NULL, HFILL }},
28034 { &hf_gsm_map_ms_longGroupId,
28035 { "longGroupId", "gsm_map.ms.longGroupId",
28036 FT_BYTES, BASE_NONE, NULL, 0,
28037 "Long_GroupId", HFILL }},
28038 { &hf_gsm_map_ms_groupid,
28039 { "groupid", "gsm_map.ms.groupid",
28040 FT_BYTES, BASE_NONE, NULL, 0,
28041 NULL, HFILL }},
28042 { &hf_gsm_map_ms_broadcastInitEntitlement,
28043 { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement_element",
28044 FT_NONE, BASE_NONE, NULL, 0,
28045 NULL, HFILL }},
28046 { &hf_gsm_map_ms_requestedInfo,
28047 { "requestedInfo", "gsm_map.ms.requestedInfo_element",
28048 FT_NONE, BASE_NONE, NULL, 0,
28049 NULL, HFILL }},
28050 { &hf_gsm_map_ms_callPriority,
28051 { "callPriority", "gsm_map.ms.callPriority",
28052 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
28053 "EMLPP_Priority", HFILL }},
28054 { &hf_gsm_map_ms_subscriberInfo,
28055 { "subscriberInfo", "gsm_map.ms.subscriberInfo_element",
28056 FT_NONE, BASE_NONE, NULL, 0,
28057 NULL, HFILL }},
28058 { &hf_gsm_map_ms_subscriberState,
28059 { "subscriberState", "gsm_map.ms.subscriberState",
28060 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
28061 NULL, HFILL }},
28062 { &hf_gsm_map_ms_ps_SubscriberState,
28063 { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
28064 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
28065 NULL, HFILL }},
28066 { &hf_gsm_map_ms_ms_Classmark2,
28067 { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
28068 FT_BYTES, BASE_NONE, NULL, 0,
28069 NULL, HFILL }},
28070 { &hf_gsm_map_ms_gprs_MS_Class,
28071 { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class_element",
28072 FT_NONE, BASE_NONE, NULL, 0,
28073 "GPRSMSClass", HFILL }},
28074 { &hf_gsm_map_ms_mnpInfoRes,
28075 { "mnpInfoRes", "gsm_map.ms.mnpInfoRes_element",
28076 FT_NONE, BASE_NONE, NULL, 0,
28077 NULL, HFILL }},
28078 { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication,
28079 { "imsVoiceOverPS-SessionsIndication", "gsm_map.ms.imsVoiceOverPS_SessionsIndication",
28080 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals), 0,
28081 "IMS_VoiceOverPS_SessionsInd", HFILL }},
28082 { &hf_gsm_map_ms_lastUE_ActivityTime,
28083 { "lastUE-ActivityTime", "gsm_map.ms.lastUE_ActivityTime",
28084 FT_BYTES, BASE_NONE, NULL, 0,
28085 "Time", HFILL }},
28086 { &hf_gsm_map_ms_lastRAT_Type,
28087 { "lastRAT-Type", "gsm_map.ms.lastRAT_Type",
28088 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
28089 "Used_RAT_Type", HFILL }},
28090 { &hf_gsm_map_ms_eps_SubscriberState,
28091 { "eps-SubscriberState", "gsm_map.ms.eps_SubscriberState",
28092 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
28093 "PS_SubscriberState", HFILL }},
28094 { &hf_gsm_map_ms_timeZone,
28095 { "timeZone", "gsm_map.ms.timeZone",
28096 FT_BYTES, BASE_NONE, NULL, 0,
28097 NULL, HFILL }},
28098 { &hf_gsm_map_ms_daylightSavingTime,
28099 { "daylightSavingTime", "gsm_map.ms.daylightSavingTime",
28100 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DaylightSavingTime_vals), 0,
28101 NULL, HFILL }},
28102 { &hf_gsm_map_ms_locationInformation5GS,
28103 { "locationInformation5GS", "gsm_map.ms.locationInformation5GS_element",
28104 FT_NONE, BASE_NONE, NULL, 0,
28105 NULL, HFILL }},
28106 { &hf_gsm_map_ms_routeingNumber,
28107 { "routeingNumber", "gsm_map.ms.routeingNumber",
28108 FT_BYTES, BASE_NONE, NULL, 0,
28109 NULL, HFILL }},
28110 { &hf_gsm_map_ms_numberPortabilityStatus,
28111 { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
28112 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
28113 NULL, HFILL }},
28114 { &hf_gsm_map_ms_mSNetworkCapability,
28115 { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
28116 FT_BYTES, BASE_NONE, NULL, 0,
28117 NULL, HFILL }},
28118 { &hf_gsm_map_ms_mSRadioAccessCapability,
28119 { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
28120 FT_BYTES, BASE_NONE, NULL, 0,
28121 NULL, HFILL }},
28122 { &hf_gsm_map_ms_locationInformation_01,
28123 { "locationInformation", "gsm_map.ms.locationInformation_element",
28124 FT_NONE, BASE_NONE, NULL, 0,
28125 NULL, HFILL }},
28126 { &hf_gsm_map_ms_subscriberState_01,
28127 { "subscriberState", "gsm_map.ms.subscriberState_element",
28128 FT_NONE, BASE_NONE, NULL, 0,
28129 NULL, HFILL }},
28130 { &hf_gsm_map_ms_currentLocation,
28131 { "currentLocation", "gsm_map.ms.currentLocation_element",
28132 FT_NONE, BASE_NONE, NULL, 0,
28133 NULL, HFILL }},
28134 { &hf_gsm_map_ms_requestedDomain,
28135 { "requestedDomain", "gsm_map.ms.requestedDomain",
28136 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
28137 "DomainType", HFILL }},
28138 { &hf_gsm_map_ms_imei_01,
28139 { "imei", "gsm_map.ms.imei_null_element",
28140 FT_NONE, BASE_NONE, NULL, 0,
28141 NULL, HFILL }},
28142 { &hf_gsm_map_ms_ms_classmark,
28143 { "ms-classmark", "gsm_map.ms.ms_classmark_element",
28144 FT_NONE, BASE_NONE, NULL, 0,
28145 NULL, HFILL }},
28146 { &hf_gsm_map_ms_mnpRequestedInfo,
28147 { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo_element",
28148 FT_NONE, BASE_NONE, NULL, 0,
28149 NULL, HFILL }},
28150 { &hf_gsm_map_ms_locationInformationEPS_Supported,
28151 { "locationInformationEPS-Supported", "gsm_map.ms.locationInformationEPS_Supported_element",
28152 FT_NONE, BASE_NONE, NULL, 0,
28153 NULL, HFILL }},
28154 { &hf_gsm_map_ms_t_adsData,
28155 { "t-adsData", "gsm_map.ms.t_adsData_element",
28156 FT_NONE, BASE_NONE, NULL, 0,
28157 NULL, HFILL }},
28158 { &hf_gsm_map_ms_requestedNodes,
28159 { "requestedNodes", "gsm_map.ms.requestedNodes",
28160 FT_BYTES, BASE_NONE, NULL, 0,
28161 NULL, HFILL }},
28162 { &hf_gsm_map_ms_servingNodeIndication,
28163 { "servingNodeIndication", "gsm_map.ms.servingNodeIndication_element",
28164 FT_NONE, BASE_NONE, NULL, 0,
28165 NULL, HFILL }},
28166 { &hf_gsm_map_ms_localTimeZoneRequest,
28167 { "localTimeZoneRequest", "gsm_map.ms.localTimeZoneRequest_element",
28168 FT_NONE, BASE_NONE, NULL, 0,
28169 NULL, HFILL }},
28170 { &hf_gsm_map_ms_ageOfLocationInformation,
28171 { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
28172 FT_UINT32, BASE_DEC, NULL, 0,
28173 NULL, HFILL }},
28174 { &hf_gsm_map_ms_geographicalInformation,
28175 { "geographicalInformation", "gsm_map.ms.geographicalInformation",
28176 FT_BYTES, BASE_NONE, NULL, 0,
28177 NULL, HFILL }},
28178 { &hf_gsm_map_ms_vlr_number,
28179 { "vlr-number", "gsm_map.ms.vlr_number",
28180 FT_BYTES, BASE_NONE, NULL, 0,
28181 "ISDN_AddressString", HFILL }},
28182 { &hf_gsm_map_ms_locationNumber,
28183 { "locationNumber", "gsm_map.ms.locationNumber",
28184 FT_BYTES, BASE_NONE, NULL, 0,
28185 NULL, HFILL }},
28186 { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
28187 { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
28188 FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
28189 NULL, HFILL }},
28190 { &hf_gsm_map_ms_selectedLSA_Id,
28191 { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
28192 FT_BYTES, BASE_NONE, NULL, 0,
28193 "LSAIdentity", HFILL }},
28194 { &hf_gsm_map_ms_geodeticInformation,
28195 { "geodeticInformation", "gsm_map.ms.geodeticInformation",
28196 FT_BYTES, BASE_NONE, NULL, 0,
28197 NULL, HFILL }},
28198 { &hf_gsm_map_ms_currentLocationRetrieved,
28199 { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved_element",
28200 FT_NONE, BASE_NONE, NULL, 0,
28201 NULL, HFILL }},
28202 { &hf_gsm_map_ms_sai_Present,
28203 { "sai-Present", "gsm_map.ms.sai_Present_element",
28204 FT_NONE, BASE_NONE, NULL, 0,
28205 NULL, HFILL }},
28206 { &hf_gsm_map_ms_userCSGInformation,
28207 { "userCSGInformation", "gsm_map.ms.userCSGInformation_element",
28208 FT_NONE, BASE_NONE, NULL, 0,
28209 NULL, HFILL }},
28210 { &hf_gsm_map_ms_e_utranCellGlobalIdentity,
28211 { "e-utranCellGlobalIdentity", "gsm_map.ms.e_utranCellGlobalIdentity",
28212 FT_BYTES, BASE_NONE, NULL, 0,
28213 "E_UTRAN_CGI", HFILL }},
28214 { &hf_gsm_map_ms_trackingAreaIdentity,
28215 { "trackingAreaIdentity", "gsm_map.ms.trackingAreaIdentity",
28216 FT_BYTES, BASE_NONE, NULL, 0,
28217 "TA_Id", HFILL }},
28218 { &hf_gsm_map_ms_mme_Name,
28219 { "mme-Name", "gsm_map.ms.mme_Name",
28220 FT_STRING, BASE_NONE, NULL, 0,
28221 "DiameterIdentity", HFILL }},
28222 { &hf_gsm_map_ms_routeingAreaIdentity,
28223 { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
28224 FT_BYTES, BASE_NONE, NULL, 0,
28225 "RAIdentity", HFILL }},
28226 { &hf_gsm_map_ms_selectedLSAIdentity,
28227 { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
28228 FT_BYTES, BASE_NONE, NULL, 0,
28229 "LSAIdentity", HFILL }},
28230 { &hf_gsm_map_ms_nrCellGlobalIdentity,
28231 { "nrCellGlobalIdentity", "gsm_map.ms.nrCellGlobalIdentity",
28232 FT_BYTES, BASE_NONE, NULL, 0,
28233 "NR_CGI", HFILL }},
28234 { &hf_gsm_map_ms_amf_address,
28235 { "amf-address", "gsm_map.ms.amf_address",
28236 FT_BYTES, BASE_NONE, NULL, 0,
28237 "FQDN", HFILL }},
28238 { &hf_gsm_map_ms_vplmnId,
28239 { "vplmnId", "gsm_map.ms.vplmnId",
28240 FT_BYTES, BASE_NONE, NULL, 0,
28241 "PLMN_Id", HFILL }},
28242 { &hf_gsm_map_ms_localtimeZone,
28243 { "localtimeZone", "gsm_map.ms.localtimeZone",
28244 FT_BYTES, BASE_NONE, NULL, 0,
28245 "TimeZone", HFILL }},
28246 { &hf_gsm_map_ms_nrTrackingAreaIdentity,
28247 { "nrTrackingAreaIdentity", "gsm_map.ms.nrTrackingAreaIdentity",
28248 FT_BYTES, BASE_NONE, NULL, 0,
28249 "NR_TA_Id", HFILL }},
28250 { &hf_gsm_map_ms_accessMode,
28251 { "accessMode", "gsm_map.ms.accessMode",
28252 FT_BYTES, BASE_NONE, NULL, 0,
28253 "OCTET_STRING_SIZE_1", HFILL }},
28254 { &hf_gsm_map_ms_cmi,
28255 { "cmi", "gsm_map.ms.cmi",
28256 FT_BYTES, BASE_NONE, NULL, 0,
28257 "OCTET_STRING_SIZE_1", HFILL }},
28258 { &hf_gsm_map_ms_assumedIdle,
28259 { "assumedIdle", "gsm_map.ms.assumedIdle_element",
28260 FT_NONE, BASE_NONE, NULL, 0,
28261 NULL, HFILL }},
28262 { &hf_gsm_map_ms_camelBusy,
28263 { "camelBusy", "gsm_map.ms.camelBusy_element",
28264 FT_NONE, BASE_NONE, NULL, 0,
28265 NULL, HFILL }},
28266 { &hf_gsm_map_ms_netDetNotReachable,
28267 { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
28268 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
28269 "NotReachableReason", HFILL }},
28270 { &hf_gsm_map_ms_notProvidedFromVLR,
28271 { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR_element",
28272 FT_NONE, BASE_NONE, NULL, 0,
28273 NULL, HFILL }},
28274 { &hf_gsm_map_ms_notProvidedFromSGSNorMME,
28275 { "notProvidedFromSGSNorMME", "gsm_map.ms.notProvidedFromSGSNorMME_element",
28276 FT_NONE, BASE_NONE, NULL, 0,
28277 NULL, HFILL }},
28278 { &hf_gsm_map_ms_ps_Detached,
28279 { "ps-Detached", "gsm_map.ms.ps_Detached_element",
28280 FT_NONE, BASE_NONE, NULL, 0,
28281 NULL, HFILL }},
28282 { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
28283 { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging_element",
28284 FT_NONE, BASE_NONE, NULL, 0,
28285 NULL, HFILL }},
28286 { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
28287 { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging_element",
28288 FT_NONE, BASE_NONE, NULL, 0,
28289 NULL, HFILL }},
28290 { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
28291 { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
28292 FT_UINT32, BASE_DEC, NULL, 0,
28293 "PDP_ContextInfoList", HFILL }},
28294 { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
28295 { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
28296 FT_UINT32, BASE_DEC, NULL, 0,
28297 "PDP_ContextInfoList", HFILL }},
28298 { &hf_gsm_map_ms_PDP_ContextInfoList_item,
28299 { "PDP-ContextInfo", "gsm_map.ms.PDP_ContextInfo_element",
28300 FT_NONE, BASE_NONE, NULL, 0,
28301 NULL, HFILL }},
28302 { &hf_gsm_map_ms_pdp_ContextIdentifier,
28303 { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
28304 FT_UINT32, BASE_DEC, NULL, 0,
28305 "ContextId", HFILL }},
28306 { &hf_gsm_map_ms_pdp_ContextActive,
28307 { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive_element",
28308 FT_NONE, BASE_NONE, NULL, 0,
28309 NULL, HFILL }},
28310 { &hf_gsm_map_ms_apn_Subscribed,
28311 { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
28312 FT_BYTES, BASE_NONE, NULL, 0,
28313 "APN", HFILL }},
28314 { &hf_gsm_map_ms_apn_InUse,
28315 { "apn-InUse", "gsm_map.ms.apn_InUse",
28316 FT_BYTES, BASE_NONE, NULL, 0,
28317 "APN", HFILL }},
28318 { &hf_gsm_map_ms_nsapi,
28319 { "nsapi", "gsm_map.ms.nsapi",
28320 FT_UINT32, BASE_DEC, NULL, 0,
28321 NULL, HFILL }},
28322 { &hf_gsm_map_ms_transactionId,
28323 { "transactionId", "gsm_map.ms.transactionId",
28324 FT_BYTES, BASE_NONE, NULL, 0,
28325 NULL, HFILL }},
28326 { &hf_gsm_map_ms_teid_ForGnAndGp,
28327 { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
28328 FT_BYTES, BASE_NONE, NULL, 0,
28329 "TEID", HFILL }},
28330 { &hf_gsm_map_ms_teid_ForIu,
28331 { "teid-ForIu", "gsm_map.ms.teid_ForIu",
28332 FT_BYTES, BASE_NONE, NULL, 0,
28333 "TEID", HFILL }},
28334 { &hf_gsm_map_ms_qos_Subscribed_01,
28335 { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
28336 FT_BYTES, BASE_NONE, NULL, 0,
28337 "Ext_QoS_Subscribed", HFILL }},
28338 { &hf_gsm_map_ms_qos_Requested,
28339 { "qos-Requested", "gsm_map.ms.qos_Requested",
28340 FT_BYTES, BASE_NONE, NULL, 0,
28341 "Ext_QoS_Subscribed", HFILL }},
28342 { &hf_gsm_map_ms_qos_Negotiated,
28343 { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
28344 FT_BYTES, BASE_NONE, NULL, 0,
28345 "Ext_QoS_Subscribed", HFILL }},
28346 { &hf_gsm_map_ms_chargingId,
28347 { "chargingId", "gsm_map.ms.chargingId",
28348 FT_BYTES, BASE_NONE, NULL, 0,
28349 "GPRSChargingID", HFILL }},
28350 { &hf_gsm_map_ms_rnc_Address,
28351 { "rnc-Address", "gsm_map.ms.rnc_Address",
28352 FT_BYTES, BASE_NONE, NULL, 0,
28353 "GSN_Address", HFILL }},
28354 { &hf_gsm_map_ms_qos2_Subscribed,
28355 { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
28356 FT_BYTES, BASE_NONE, NULL, 0,
28357 "Ext2_QoS_Subscribed", HFILL }},
28358 { &hf_gsm_map_ms_qos2_Requested,
28359 { "qos2-Requested", "gsm_map.ms.qos2_Requested",
28360 FT_BYTES, BASE_NONE, NULL, 0,
28361 "Ext2_QoS_Subscribed", HFILL }},
28362 { &hf_gsm_map_ms_qos2_Negotiated,
28363 { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
28364 FT_BYTES, BASE_NONE, NULL, 0,
28365 "Ext2_QoS_Subscribed", HFILL }},
28366 { &hf_gsm_map_ms_qos3_Subscribed,
28367 { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
28368 FT_BYTES, BASE_NONE, NULL, 0,
28369 "Ext3_QoS_Subscribed", HFILL }},
28370 { &hf_gsm_map_ms_qos3_Requested,
28371 { "qos3-Requested", "gsm_map.ms.qos3_Requested",
28372 FT_BYTES, BASE_NONE, NULL, 0,
28373 "Ext3_QoS_Subscribed", HFILL }},
28374 { &hf_gsm_map_ms_qos3_Negotiated,
28375 { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
28376 FT_BYTES, BASE_NONE, NULL, 0,
28377 "Ext3_QoS_Subscribed", HFILL }},
28378 { &hf_gsm_map_ms_qos4_Subscribed,
28379 { "qos4-Subscribed", "gsm_map.ms.qos4_Subscribed",
28380 FT_BYTES, BASE_NONE, NULL, 0,
28381 "Ext4_QoS_Subscribed", HFILL }},
28382 { &hf_gsm_map_ms_qos4_Requested,
28383 { "qos4-Requested", "gsm_map.ms.qos4_Requested",
28384 FT_BYTES, BASE_NONE, NULL, 0,
28385 "Ext4_QoS_Subscribed", HFILL }},
28386 { &hf_gsm_map_ms_qos4_Negotiated,
28387 { "qos4-Negotiated", "gsm_map.ms.qos4_Negotiated",
28388 FT_BYTES, BASE_NONE, NULL, 0,
28389 "Ext4_QoS_Subscribed", HFILL }},
28390 { &hf_gsm_map_ms_subscriberIdentity,
28391 { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
28392 FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
28393 NULL, HFILL }},
28394 { &hf_gsm_map_ms_requestedSubscriptionInfo,
28395 { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo_element",
28396 FT_NONE, BASE_NONE, NULL, 0,
28397 NULL, HFILL }},
28398 { &hf_gsm_map_ms_callForwardingData,
28399 { "callForwardingData", "gsm_map.ms.callForwardingData_element",
28400 FT_NONE, BASE_NONE, NULL, 0,
28401 NULL, HFILL }},
28402 { &hf_gsm_map_ms_callBarringData,
28403 { "callBarringData", "gsm_map.ms.callBarringData_element",
28404 FT_NONE, BASE_NONE, NULL, 0,
28405 NULL, HFILL }},
28406 { &hf_gsm_map_ms_odb_Info,
28407 { "odb-Info", "gsm_map.ms.odb_Info_element",
28408 FT_NONE, BASE_NONE, NULL, 0,
28409 NULL, HFILL }},
28410 { &hf_gsm_map_ms_camel_SubscriptionInfo,
28411 { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo_element",
28412 FT_NONE, BASE_NONE, NULL, 0,
28413 NULL, HFILL }},
28414 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
28415 { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
28416 FT_BYTES, BASE_NONE, NULL, 0,
28417 "SupportedCamelPhases", HFILL }},
28418 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
28419 { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
28420 FT_BYTES, BASE_NONE, NULL, 0,
28421 "SupportedCamelPhases", HFILL }},
28422 { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
28423 { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
28424 FT_BYTES, BASE_NONE, NULL, 0,
28425 "OfferedCamel4CSIs", HFILL }},
28426 { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
28427 { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
28428 FT_BYTES, BASE_NONE, NULL, 0,
28429 "OfferedCamel4CSIs", HFILL }},
28430 { &hf_gsm_map_ms_msisdn_BS_List,
28431 { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
28432 FT_UINT32, BASE_DEC, NULL, 0,
28433 NULL, HFILL }},
28434 { &hf_gsm_map_ms_cw_Data,
28435 { "cw-Data", "gsm_map.ms.cw_Data_element",
28436 FT_NONE, BASE_NONE, NULL, 0,
28437 "CallWaitingData", HFILL }},
28438 { &hf_gsm_map_ms_ch_Data,
28439 { "ch-Data", "gsm_map.ms.ch_Data_element",
28440 FT_NONE, BASE_NONE, NULL, 0,
28441 "CallHoldData", HFILL }},
28442 { &hf_gsm_map_ms_clip_Data,
28443 { "clip-Data", "gsm_map.ms.clip_Data_element",
28444 FT_NONE, BASE_NONE, NULL, 0,
28445 "ClipData", HFILL }},
28446 { &hf_gsm_map_ms_clir_Data,
28447 { "clir-Data", "gsm_map.ms.clir_Data_element",
28448 FT_NONE, BASE_NONE, NULL, 0,
28449 "ClirData", HFILL }},
28450 { &hf_gsm_map_ms_ect_data,
28451 { "ect-data", "gsm_map.ms.ect_data_element",
28452 FT_NONE, BASE_NONE, NULL, 0,
28453 "EctData", HFILL }},
28454 { &hf_gsm_map_ms_cwFeatureList,
28455 { "cwFeatureList", "gsm_map.ms.cwFeatureList",
28456 FT_UINT32, BASE_DEC, NULL, 0,
28457 "Ext_CwFeatureList", HFILL }},
28458 { &hf_gsm_map_ms_Ext_CwFeatureList_item,
28459 { "Ext-CwFeature", "gsm_map.ms.Ext_CwFeature_element",
28460 FT_NONE, BASE_NONE, NULL, 0,
28461 NULL, HFILL }},
28462 { &hf_gsm_map_ms_overrideCategory,
28463 { "overrideCategory", "gsm_map.ms.overrideCategory",
28464 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
28465 NULL, HFILL }},
28466 { &hf_gsm_map_ms_cliRestrictionOption,
28467 { "cliRestrictionOption", "gsm_map.ms.cliRestrictionOption",
28468 FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
28469 NULL, HFILL }},
28470 { &hf_gsm_map_ms_requestedSS_Info,
28471 { "requestedSS-Info", "gsm_map.ms.requestedSS_Info_element",
28472 FT_NONE, BASE_NONE, NULL, 0,
28473 "SS_ForBS_Code", HFILL }},
28474 { &hf_gsm_map_ms_odb,
28475 { "odb", "gsm_map.ms.odb_element",
28476 FT_NONE, BASE_NONE, NULL, 0,
28477 NULL, HFILL }},
28478 { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
28479 { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
28480 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
28481 NULL, HFILL }},
28482 { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
28483 { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases_element",
28484 FT_NONE, BASE_NONE, NULL, 0,
28485 NULL, HFILL }},
28486 { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
28487 { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases_element",
28488 FT_NONE, BASE_NONE, NULL, 0,
28489 NULL, HFILL }},
28490 { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
28491 { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
28492 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
28493 NULL, HFILL }},
28494 { &hf_gsm_map_ms_msisdn_BS_List_01,
28495 { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List_element",
28496 FT_NONE, BASE_NONE, NULL, 0,
28497 NULL, HFILL }},
28498 { &hf_gsm_map_ms_csg_SubscriptionDataRequested,
28499 { "csg-SubscriptionDataRequested", "gsm_map.ms.csg_SubscriptionDataRequested_element",
28500 FT_NONE, BASE_NONE, NULL, 0,
28501 NULL, HFILL }},
28502 { &hf_gsm_map_ms_cw_Info,
28503 { "cw-Info", "gsm_map.ms.cw_Info_element",
28504 FT_NONE, BASE_NONE, NULL, 0,
28505 NULL, HFILL }},
28506 { &hf_gsm_map_ms_clip_Info,
28507 { "clip-Info", "gsm_map.ms.clip_Info_element",
28508 FT_NONE, BASE_NONE, NULL, 0,
28509 NULL, HFILL }},
28510 { &hf_gsm_map_ms_clir_Info,
28511 { "clir-Info", "gsm_map.ms.clir_Info_element",
28512 FT_NONE, BASE_NONE, NULL, 0,
28513 NULL, HFILL }},
28514 { &hf_gsm_map_ms_hold_Info,
28515 { "hold-Info", "gsm_map.ms.hold_Info_element",
28516 FT_NONE, BASE_NONE, NULL, 0,
28517 NULL, HFILL }},
28518 { &hf_gsm_map_ms_ect_Info,
28519 { "ect-Info", "gsm_map.ms.ect_Info_element",
28520 FT_NONE, BASE_NONE, NULL, 0,
28521 NULL, HFILL }},
28522 { &hf_gsm_map_ms_MSISDN_BS_List_item,
28523 { "MSISDN-BS", "gsm_map.ms.MSISDN_BS_element",
28524 FT_NONE, BASE_NONE, NULL, 0,
28525 NULL, HFILL }},
28526 { &hf_gsm_map_ms_password,
28527 { "password", "gsm_map.ms.password",
28528 FT_STRING, BASE_NONE, NULL, 0,
28529 NULL, HFILL }},
28530 { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
28531 { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
28532 FT_UINT32, BASE_DEC, NULL, 0,
28533 NULL, HFILL }},
28534 { &hf_gsm_map_ms_t_CSI,
28535 { "t-CSI", "gsm_map.ms.t_CSI_element",
28536 FT_NONE, BASE_NONE, NULL, 0,
28537 NULL, HFILL }},
28538 { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
28539 { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
28540 FT_UINT32, BASE_DEC, NULL, 0,
28541 "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
28542 { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
28543 { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE_element",
28544 FT_NONE, BASE_NONE, NULL, 0,
28545 NULL, HFILL }},
28546 { &hf_gsm_map_ms_specificCSIDeletedList,
28547 { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
28548 FT_BYTES, BASE_NONE, NULL, 0,
28549 "SpecificCSI_Withdraw", HFILL }},
28550 { &hf_gsm_map_ms_o_IM_CSI,
28551 { "o-IM-CSI", "gsm_map.ms.o_IM_CSI_element",
28552 FT_NONE, BASE_NONE, NULL, 0,
28553 "O_CSI", HFILL }},
28554 { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
28555 { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
28556 FT_UINT32, BASE_DEC, NULL, 0,
28557 "O_BcsmCamelTDPCriteriaList", HFILL }},
28558 { &hf_gsm_map_ms_d_IM_CSI,
28559 { "d-IM-CSI", "gsm_map.ms.d_IM_CSI_element",
28560 FT_NONE, BASE_NONE, NULL, 0,
28561 "D_CSI", HFILL }},
28562 { &hf_gsm_map_ms_vt_IM_CSI,
28563 { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI_element",
28564 FT_NONE, BASE_NONE, NULL, 0,
28565 "T_CSI", HFILL }},
28566 { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
28567 { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
28568 FT_UINT32, BASE_DEC, NULL, 0,
28569 "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
28570 { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
28571 { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info_element",
28572 FT_NONE, BASE_NONE, NULL, 0,
28573 NULL, HFILL }},
28574 { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
28575 { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info_element",
28576 FT_NONE, BASE_NONE, NULL, 0,
28577 NULL, HFILL }},
28578 { &hf_gsm_map_ms_modificationRequestFor_CSI,
28579 { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI_element",
28580 FT_NONE, BASE_NONE, NULL, 0,
28581 NULL, HFILL }},
28582 { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
28583 { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data_element",
28584 FT_NONE, BASE_NONE, NULL, 0,
28585 NULL, HFILL }},
28586 { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
28587 { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data_element",
28588 FT_NONE, BASE_NONE, NULL, 0,
28589 NULL, HFILL }},
28590 { &hf_gsm_map_ms_activationRequestForUE_reachability,
28591 { "activationRequestForUE-reachability", "gsm_map.ms.activationRequestForUE_reachability",
28592 FT_BYTES, BASE_NONE, NULL, 0,
28593 "RequestedServingNode", HFILL }},
28594 { &hf_gsm_map_ms_modificationRequestFor_CSG,
28595 { "modificationRequestFor-CSG", "gsm_map.ms.modificationRequestFor_CSG_element",
28596 FT_NONE, BASE_NONE, NULL, 0,
28597 NULL, HFILL }},
28598 { &hf_gsm_map_ms_modificationRequestFor_CW_Data,
28599 { "modificationRequestFor-CW-Data", "gsm_map.ms.modificationRequestFor_CW_Data_element",
28600 FT_NONE, BASE_NONE, NULL, 0,
28601 "ModificationRequestFor_CW_Info", HFILL }},
28602 { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data,
28603 { "modificationRequestFor-CLIP-Data", "gsm_map.ms.modificationRequestFor_CLIP_Data_element",
28604 FT_NONE, BASE_NONE, NULL, 0,
28605 "ModificationRequestFor_CLIP_Info", HFILL }},
28606 { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data,
28607 { "modificationRequestFor-CLIR-Data", "gsm_map.ms.modificationRequestFor_CLIR_Data_element",
28608 FT_NONE, BASE_NONE, NULL, 0,
28609 "ModificationRequestFor_CLIR_Info", HFILL }},
28610 { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data,
28611 { "modificationRequestFor-HOLD-Data", "gsm_map.ms.modificationRequestFor_HOLD_Data_element",
28612 FT_NONE, BASE_NONE, NULL, 0,
28613 "ModificationRequestFor_CH_Info", HFILL }},
28614 { &hf_gsm_map_ms_modificationRequestFor_ECT_Data,
28615 { "modificationRequestFor-ECT-Data", "gsm_map.ms.modificationRequestFor_ECT_Data_element",
28616 FT_NONE, BASE_NONE, NULL, 0,
28617 "ModificationRequestFor_ECT_Info", HFILL }},
28618 { &hf_gsm_map_ms_modifyNotificationToCSE,
28619 { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
28620 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
28621 "ModificationInstruction", HFILL }},
28622 { &hf_gsm_map_ms_ss_InfoFor_CSE,
28623 { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
28624 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
28625 "Ext_SS_InfoFor_CSE", HFILL }},
28626 { &hf_gsm_map_ms_serviceCentreAddress,
28627 { "serviceCentreAddress", "gsm_map.ms.serviceCentreAddress",
28628 FT_BYTES, BASE_NONE, NULL, 0,
28629 "AddressString", HFILL }},
28630 { &hf_gsm_map_ms_forwardedToNumber_01,
28631 { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
28632 FT_BYTES, BASE_NONE, NULL, 0,
28633 "AddressString", HFILL }},
28634 { &hf_gsm_map_ms_odb_data,
28635 { "odb-data", "gsm_map.ms.odb_data_element",
28636 FT_NONE, BASE_NONE, NULL, 0,
28637 NULL, HFILL }},
28638 { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
28639 { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
28640 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
28641 NULL, HFILL }},
28642 { &hf_gsm_map_ms_modifyCSI_State,
28643 { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
28644 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
28645 "ModificationInstruction", HFILL }},
28646 { &hf_gsm_map_ms_modifyRegistrationStatus,
28647 { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
28648 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
28649 "ModificationInstruction", HFILL }},
28650 { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress,
28651 { "ip-sm-gw-DiameterAddress", "gsm_map.ms.ip_sm_gw_DiameterAddress_element",
28652 FT_NONE, BASE_NONE, NULL, 0,
28653 "NetworkNodeDiameterAddress", HFILL }},
28654 { &hf_gsm_map_ms_forwardingInfoFor_CSE,
28655 { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE_element",
28656 FT_NONE, BASE_NONE, NULL, 0,
28657 "Ext_ForwardingInfoFor_CSE", HFILL }},
28658 { &hf_gsm_map_ms_callBarringInfoFor_CSE,
28659 { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE_element",
28660 FT_NONE, BASE_NONE, NULL, 0,
28661 "Ext_CallBarringInfoFor_CSE", HFILL }},
28662 { &hf_gsm_map_ms_allInformationSent,
28663 { "allInformationSent", "gsm_map.ms.allInformationSent_element",
28664 FT_NONE, BASE_NONE, NULL, 0,
28665 NULL, HFILL }},
28666 { &hf_gsm_map_ms_ue_reachable,
28667 { "ue-reachable", "gsm_map.ms.ue_reachable",
28668 FT_BYTES, BASE_NONE, NULL, 0,
28669 "ServingNode", HFILL }},
28670 { &hf_gsm_map_ms_eventMet,
28671 { "eventMet", "gsm_map.ms.eventMet",
28672 FT_BYTES, BASE_NONE, NULL, 0,
28673 "MM_Code", HFILL }},
28674 { &hf_gsm_map_ms_supportedCAMELPhases,
28675 { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
28676 FT_BYTES, BASE_NONE, NULL, 0,
28677 NULL, HFILL }},
28678 { &hf_gsm_map_ms_offeredCamel4Functionalities,
28679 { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
28680 FT_BYTES, BASE_NONE, NULL, 0,
28681 NULL, HFILL }},
28682 { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator,
28683 { "temporaryEmptySubscriptiondataIndicator", "gsm_map.ms.temporaryEmptySubscriptiondataIndicator_element",
28684 FT_NONE, BASE_NONE, NULL, 0,
28685 NULL, HFILL }},
28686 { &hf_gsm_map_ms_naea_PreferredCI,
28687 { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI_element",
28688 FT_NONE, BASE_NONE, NULL, 0,
28689 NULL, HFILL }},
28690 { &hf_gsm_map_ms_gprsSubscriptionData,
28691 { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData_element",
28692 FT_NONE, BASE_NONE, NULL, 0,
28693 NULL, HFILL }},
28694 { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
28695 { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature_element",
28696 FT_NONE, BASE_NONE, NULL, 0,
28697 NULL, HFILL }},
28698 { &hf_gsm_map_ms_networkAccessMode,
28699 { "networkAccessMode", "gsm_map.ms.networkAccessMode",
28700 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
28701 NULL, HFILL }},
28702 { &hf_gsm_map_ms_lsaInformation,
28703 { "lsaInformation", "gsm_map.ms.lsaInformation_element",
28704 FT_NONE, BASE_NONE, NULL, 0,
28705 NULL, HFILL }},
28706 { &hf_gsm_map_ms_lmu_Indicator,
28707 { "lmu-Indicator", "gsm_map.ms.lmu_Indicator_element",
28708 FT_NONE, BASE_NONE, NULL, 0,
28709 NULL, HFILL }},
28710 { &hf_gsm_map_ms_lcsInformation,
28711 { "lcsInformation", "gsm_map.ms.lcsInformation_element",
28712 FT_NONE, BASE_NONE, NULL, 0,
28713 NULL, HFILL }},
28714 { &hf_gsm_map_ms_istAlertTimer,
28715 { "istAlertTimer", "gsm_map.ms.istAlertTimer",
28716 FT_UINT32, BASE_DEC, NULL, 0,
28717 "IST_AlertTimerValue", HFILL }},
28718 { &hf_gsm_map_ms_superChargerSupportedInHLR,
28719 { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
28720 FT_BYTES, BASE_NONE, NULL, 0,
28721 "AgeIndicator", HFILL }},
28722 { &hf_gsm_map_ms_mc_SS_Info,
28723 { "mc-SS-Info", "gsm_map.ms.mc_SS_Info_element",
28724 FT_NONE, BASE_NONE, NULL, 0,
28725 NULL, HFILL }},
28726 { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
28727 { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
28728 FT_BYTES, BASE_NONE, NULL, 0,
28729 NULL, HFILL }},
28730 { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
28731 { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo_element",
28732 FT_NONE, BASE_NONE, NULL, 0,
28733 NULL, HFILL }},
28734 { &hf_gsm_map_ms_ics_Indicator,
28735 { "ics-Indicator", "gsm_map.ms.ics_Indicator",
28736 FT_BOOLEAN, BASE_NONE, NULL, 0,
28737 "BOOLEAN", HFILL }},
28738 { &hf_gsm_map_ms_eps_SubscriptionData,
28739 { "eps-SubscriptionData", "gsm_map.ms.eps_SubscriptionData_element",
28740 FT_NONE, BASE_NONE, NULL, 0,
28741 NULL, HFILL }},
28742 { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator,
28743 { "ue-ReachabilityRequestIndicator", "gsm_map.ms.ue_ReachabilityRequestIndicator_element",
28744 FT_NONE, BASE_NONE, NULL, 0,
28745 NULL, HFILL }},
28746 { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer,
28747 { "subscribedPeriodicRAUTAUtimer", "gsm_map.ms.subscribedPeriodicRAUTAUtimer",
28748 FT_UINT32, BASE_DEC, NULL, 0,
28749 NULL, HFILL }},
28750 { &hf_gsm_map_ms_vplmnLIPAAllowed,
28751 { "vplmnLIPAAllowed", "gsm_map.ms.vplmnLIPAAllowed_element",
28752 FT_NONE, BASE_NONE, NULL, 0,
28753 NULL, HFILL }},
28754 { &hf_gsm_map_ms_mdtUserConsent,
28755 { "mdtUserConsent", "gsm_map.ms.mdtUserConsent",
28756 FT_BOOLEAN, BASE_NONE, NULL, 0,
28757 "BOOLEAN", HFILL }},
28758 { &hf_gsm_map_ms_subscribedPeriodicLAUtimer,
28759 { "subscribedPeriodicLAUtimer", "gsm_map.ms.subscribedPeriodicLAUtimer",
28760 FT_UINT32, BASE_DEC, NULL, 0,
28761 NULL, HFILL }},
28762 { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList,
28763 { "vplmn-Csg-SubscriptionDataList", "gsm_map.ms.vplmn_Csg_SubscriptionDataList",
28764 FT_UINT32, BASE_DEC, NULL, 0,
28765 NULL, HFILL }},
28766 { &hf_gsm_map_ms_additionalMSISDN,
28767 { "additionalMSISDN", "gsm_map.ms.additionalMSISDN",
28768 FT_BYTES, BASE_NONE, NULL, 0,
28769 "ISDN_AddressString", HFILL }},
28770 { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision,
28771 { "psAndSMS-OnlyServiceProvision", "gsm_map.ms.psAndSMS_OnlyServiceProvision_element",
28772 FT_NONE, BASE_NONE, NULL, 0,
28773 NULL, HFILL }},
28774 { &hf_gsm_map_ms_smsInSGSNAllowed,
28775 { "smsInSGSNAllowed", "gsm_map.ms.smsInSGSNAllowed_element",
28776 FT_NONE, BASE_NONE, NULL, 0,
28777 NULL, HFILL }},
28778 { &hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator,
28779 { "cs-to-ps-SRVCC-Allowed-Indicator", "gsm_map.ms.cs_to_ps_SRVCC_Allowed_Indicator_element",
28780 FT_NONE, BASE_NONE, NULL, 0,
28781 NULL, HFILL }},
28782 { &hf_gsm_map_ms_pcscf_Restoration_Request,
28783 { "pcscf-Restoration-Request", "gsm_map.ms.pcscf_Restoration_Request_element",
28784 FT_NONE, BASE_NONE, NULL, 0,
28785 NULL, HFILL }},
28786 { &hf_gsm_map_ms_adjacentAccessRestrictionDataList,
28787 { "adjacentAccessRestrictionDataList", "gsm_map.ms.adjacentAccessRestrictionDataList",
28788 FT_UINT32, BASE_DEC, NULL, 0,
28789 NULL, HFILL }},
28790 { &hf_gsm_map_ms_imsi_Group_Id_List,
28791 { "imsi-Group-Id-List", "gsm_map.ms.imsi_Group_Id_List",
28792 FT_UINT32, BASE_DEC, NULL, 0,
28793 "IMSI_GroupIdList", HFILL }},
28794 { &hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator,
28795 { "userPlaneIntegrityProtectionIndicator", "gsm_map.ms.userPlaneIntegrityProtectionIndicator_element",
28796 FT_NONE, BASE_NONE, NULL, 0,
28797 NULL, HFILL }},
28798 { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count,
28799 { "dl-Buffering-Suggested-Packet-Count", "gsm_map.ms.dl_Buffering_Suggested_Packet_Count",
28800 FT_INT32, BASE_DEC, NULL, 0,
28801 NULL, HFILL }},
28802 { &hf_gsm_map_ms_eDRX_Cycle_Length_List,
28803 { "eDRX-Cycle-Length-List", "gsm_map.ms.eDRX_Cycle_Length_List",
28804 FT_UINT32, BASE_DEC, NULL, 0,
28805 NULL, HFILL }},
28806 { &hf_gsm_map_ms_iab_Operation_Allowed_Indicator,
28807 { "iab-Operation-Allowed-Indicator", "gsm_map.ms.iab_Operation_Allowed_Indicator_element",
28808 FT_NONE, BASE_NONE, NULL, 0,
28809 NULL, HFILL }},
28810 { &hf_gsm_map_ms_SupportedRAT_Types_utran,
28811 { "utran", "gsm.map.ms.SupportedRAT.Types.utran",
28812 FT_BOOLEAN, 8, NULL, 0x80,
28813 NULL, HFILL }},
28814 { &hf_gsm_map_ms_SupportedRAT_Types_geran,
28815 { "geran", "gsm.map.ms.SupportedRAT.Types.geran",
28816 FT_BOOLEAN, 8, NULL, 0x40,
28817 NULL, HFILL }},
28818 { &hf_gsm_map_ms_SupportedRAT_Types_gan,
28819 { "gan", "gsm.map.ms.SupportedRAT.Types.gan",
28820 FT_BOOLEAN, 8, NULL, 0x20,
28821 NULL, HFILL }},
28822 { &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
28823 { "i-hspa-evolution", "gsm.map.ms.SupportedRAT.Types.i.hspa.evolution",
28824 FT_BOOLEAN, 8, NULL, 0x10,
28825 NULL, HFILL }},
28826 { &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
28827 { "e-utran", "gsm.map.ms.SupportedRAT.Types.e.utran",
28828 FT_BOOLEAN, 8, NULL, 0x08,
28829 NULL, HFILL }},
28830 { &hf_gsm_map_ms_SupportedRAT_Types_nb_iot,
28831 { "nb-iot", "gsm.map.ms.SupportedRAT.Types.nb.iot",
28832 FT_BOOLEAN, 8, NULL, 0x04,
28833 NULL, HFILL }},
28834 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
28835 { "lcsCapabilitySet1", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet1",
28836 FT_BOOLEAN, 8, NULL, 0x80,
28837 NULL, HFILL }},
28838 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
28839 { "lcsCapabilitySet2", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet2",
28840 FT_BOOLEAN, 8, NULL, 0x40,
28841 NULL, HFILL }},
28842 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
28843 { "lcsCapabilitySet3", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet3",
28844 FT_BOOLEAN, 8, NULL, 0x20,
28845 NULL, HFILL }},
28846 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
28847 { "lcsCapabilitySet4", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet4",
28848 FT_BOOLEAN, 8, NULL, 0x10,
28849 NULL, HFILL }},
28850 { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
28851 { "lcsCapabilitySet5", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet5",
28852 FT_BOOLEAN, 8, NULL, 0x08,
28853 NULL, HFILL }},
28854 { &hf_gsm_map_ms_ISR_Information_updateLocation,
28855 { "updateLocation", "gsm.map.ms.ISR.Information.updateLocation",
28856 FT_BOOLEAN, 8, NULL, 0x80,
28857 NULL, HFILL }},
28858 { &hf_gsm_map_ms_ISR_Information_cancelSGSN,
28859 { "cancelSGSN", "gsm.map.ms.ISR.Information.cancelSGSN",
28860 FT_BOOLEAN, 8, NULL, 0x40,
28861 NULL, HFILL }},
28862 { &hf_gsm_map_ms_ISR_Information_initialAttachIndicator,
28863 { "initialAttachIndicator", "gsm.map.ms.ISR.Information.initialAttachIndicator",
28864 FT_BOOLEAN, 8, NULL, 0x20,
28865 NULL, HFILL }},
28866 { &hf_gsm_map_ms_SupportedFeatures_odb_all_apn,
28867 { "odb-all-apn", "gsm.map.ms.SupportedFeatures.odb.all.apn",
28868 FT_BOOLEAN, 8, NULL, 0x80,
28869 NULL, HFILL }},
28870 { &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
28871 { "odb-HPLMN-APN", "gsm.map.ms.SupportedFeatures.odb.HPLMN.APN",
28872 FT_BOOLEAN, 8, NULL, 0x40,
28873 NULL, HFILL }},
28874 { &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
28875 { "odb-VPLMN-APN", "gsm.map.ms.SupportedFeatures.odb.VPLMN.APN",
28876 FT_BOOLEAN, 8, NULL, 0x20,
28877 NULL, HFILL }},
28878 { &hf_gsm_map_ms_SupportedFeatures_odb_all_og,
28879 { "odb-all-og", "gsm.map.ms.SupportedFeatures.odb.all.og",
28880 FT_BOOLEAN, 8, NULL, 0x10,
28881 NULL, HFILL }},
28882 { &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og,
28883 { "odb-all-international-og", "gsm.map.ms.SupportedFeatures.odb.all.international.og",
28884 FT_BOOLEAN, 8, NULL, 0x08,
28885 NULL, HFILL }},
28886 { &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country,
28887 { "odb-all-int-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.int.og.not.to.HPLMN.country",
28888 FT_BOOLEAN, 8, NULL, 0x04,
28889 NULL, HFILL }},
28890 { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og,
28891 { "odb-all-interzonal-og", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og",
28892 FT_BOOLEAN, 8, NULL, 0x02,
28893 NULL, HFILL }},
28894 { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country,
28895 { "odb-all-interzonal-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og.not.to.HPLMN.country",
28896 FT_BOOLEAN, 8, NULL, 0x01,
28897 NULL, HFILL }},
28898 { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country,
28899 { "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",
28900 FT_BOOLEAN, 8, NULL, 0x80,
28901 NULL, HFILL }},
28902 { &hf_gsm_map_ms_SupportedFeatures_regSub,
28903 { "regSub", "gsm.map.ms.SupportedFeatures.regSub",
28904 FT_BOOLEAN, 8, NULL, 0x40,
28905 NULL, HFILL }},
28906 { &hf_gsm_map_ms_SupportedFeatures_trace,
28907 { "trace", "gsm.map.ms.SupportedFeatures.trace",
28908 FT_BOOLEAN, 8, NULL, 0x20,
28909 NULL, HFILL }},
28910 { &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep,
28911 { "lcs-all-PrivExcep", "gsm.map.ms.SupportedFeatures.lcs.all.PrivExcep",
28912 FT_BOOLEAN, 8, NULL, 0x10,
28913 NULL, HFILL }},
28914 { &hf_gsm_map_ms_SupportedFeatures_lcs_universal,
28915 { "lcs-universal", "gsm.map.ms.SupportedFeatures.lcs.universal",
28916 FT_BOOLEAN, 8, NULL, 0x08,
28917 NULL, HFILL }},
28918 { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated,
28919 { "lcs-CallSessionRelated", "gsm.map.ms.SupportedFeatures.lcs.CallSessionRelated",
28920 FT_BOOLEAN, 8, NULL, 0x04,
28921 NULL, HFILL }},
28922 { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated,
28923 { "lcs-CallSessionUnrelated", "gsm.map.ms.SupportedFeatures.lcs.CallSessionUnrelated",
28924 FT_BOOLEAN, 8, NULL, 0x02,
28925 NULL, HFILL }},
28926 { &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator,
28927 { "lcs-PLMN-operator", "gsm.map.ms.SupportedFeatures.lcs.PLMN.operator",
28928 FT_BOOLEAN, 8, NULL, 0x01,
28929 NULL, HFILL }},
28930 { &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType,
28931 { "lcs-ServiceType", "gsm.map.ms.SupportedFeatures.lcs.ServiceType",
28932 FT_BOOLEAN, 8, NULL, 0x80,
28933 NULL, HFILL }},
28934 { &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS,
28935 { "lcs-all-MOLR-SS", "gsm.map.ms.SupportedFeatures.lcs.all.MOLR.SS",
28936 FT_BOOLEAN, 8, NULL, 0x40,
28937 NULL, HFILL }},
28938 { &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation,
28939 { "lcs-basicSelfLocation", "gsm.map.ms.SupportedFeatures.lcs.basicSelfLocation",
28940 FT_BOOLEAN, 8, NULL, 0x20,
28941 NULL, HFILL }},
28942 { &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation,
28943 { "lcs-autonomousSelfLocation", "gsm.map.ms.SupportedFeatures.lcs.autonomousSelfLocation",
28944 FT_BOOLEAN, 8, NULL, 0x10,
28945 NULL, HFILL }},
28946 { &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty,
28947 { "lcs-transferToThirdParty", "gsm.map.ms.SupportedFeatures.lcs.transferToThirdParty",
28948 FT_BOOLEAN, 8, NULL, 0x08,
28949 NULL, HFILL }},
28950 { &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp,
28951 { "sm-mo-pp", "gsm.map.ms.SupportedFeatures.sm.mo.pp",
28952 FT_BOOLEAN, 8, NULL, 0x04,
28953 NULL, HFILL }},
28954 { &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls,
28955 { "barring-OutgoingCalls", "gsm.map.ms.SupportedFeatures.barring.OutgoingCalls",
28956 FT_BOOLEAN, 8, NULL, 0x02,
28957 NULL, HFILL }},
28958 { &hf_gsm_map_ms_SupportedFeatures_baoc,
28959 { "baoc", "gsm.map.ms.SupportedFeatures.baoc",
28960 FT_BOOLEAN, 8, NULL, 0x01,
28961 NULL, HFILL }},
28962 { &hf_gsm_map_ms_SupportedFeatures_boic,
28963 { "boic", "gsm.map.ms.SupportedFeatures.boic",
28964 FT_BOOLEAN, 8, NULL, 0x80,
28965 NULL, HFILL }},
28966 { &hf_gsm_map_ms_SupportedFeatures_boicExHC,
28967 { "boicExHC", "gsm.map.ms.SupportedFeatures.boicExHC",
28968 FT_BOOLEAN, 8, NULL, 0x40,
28969 NULL, HFILL }},
28970 { &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval,
28971 { "localTimeZoneRetrieval", "gsm.map.ms.SupportedFeatures.localTimeZoneRetrieval",
28972 FT_BOOLEAN, 8, NULL, 0x20,
28973 NULL, HFILL }},
28974 { &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn,
28975 { "additionalMsisdn", "gsm.map.ms.SupportedFeatures.additionalMsisdn",
28976 FT_BOOLEAN, 8, NULL, 0x10,
28977 NULL, HFILL }},
28978 { &hf_gsm_map_ms_SupportedFeatures_smsInMME,
28979 { "smsInMME", "gsm.map.ms.SupportedFeatures.smsInMME",
28980 FT_BOOLEAN, 8, NULL, 0x08,
28981 NULL, HFILL }},
28982 { &hf_gsm_map_ms_SupportedFeatures_smsInSGSN,
28983 { "smsInSGSN", "gsm.map.ms.SupportedFeatures.smsInSGSN",
28984 FT_BOOLEAN, 8, NULL, 0x04,
28985 NULL, HFILL }},
28986 { &hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification,
28987 { "ue-Reachability-Notification", "gsm.map.ms.SupportedFeatures.ue.Reachability.Notification",
28988 FT_BOOLEAN, 8, NULL, 0x02,
28989 NULL, HFILL }},
28990 { &hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval,
28991 { "state-Location-Information-Retrieval", "gsm.map.ms.SupportedFeatures.state.Location.Information.Retrieval",
28992 FT_BOOLEAN, 8, NULL, 0x01,
28993 NULL, HFILL }},
28994 { &hf_gsm_map_ms_SupportedFeatures_partialPurge,
28995 { "partialPurge", "gsm.map.ms.SupportedFeatures.partialPurge",
28996 FT_BOOLEAN, 8, NULL, 0x80,
28997 NULL, HFILL }},
28998 { &hf_gsm_map_ms_SupportedFeatures_gddInSGSN,
28999 { "gddInSGSN", "gsm.map.ms.SupportedFeatures.gddInSGSN",
29000 FT_BOOLEAN, 8, NULL, 0x40,
29001 NULL, HFILL }},
29002 { &hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability,
29003 { "sgsnCAMELCapability", "gsm.map.ms.SupportedFeatures.sgsnCAMELCapability",
29004 FT_BOOLEAN, 8, NULL, 0x20,
29005 NULL, HFILL }},
29006 { &hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration,
29007 { "pcscf-Restoration", "gsm.map.ms.SupportedFeatures.pcscf.Restoration",
29008 FT_BOOLEAN, 8, NULL, 0x10,
29009 NULL, HFILL }},
29010 { &hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks,
29011 { "dedicatedCoreNetworks", "gsm.map.ms.SupportedFeatures.dedicatedCoreNetworks",
29012 FT_BOOLEAN, 8, NULL, 0x08,
29013 NULL, HFILL }},
29014 { &hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs,
29015 { "non-IP-PDN-Type-APNs", "gsm.map.ms.SupportedFeatures.non.IP.PDN.Type.APNs",
29016 FT_BOOLEAN, 8, NULL, 0x04,
29017 NULL, HFILL }},
29018 { &hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs,
29019 { "non-IP-PDP-Type-APNs", "gsm.map.ms.SupportedFeatures.non.IP.PDP.Type.APNs",
29020 FT_BOOLEAN, 8, NULL, 0x02,
29021 NULL, HFILL }},
29022 { &hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT,
29023 { "nrAsSecondaryRAT", "gsm.map.ms.SupportedFeatures.nrAsSecondaryRAT",
29024 FT_BOOLEAN, 8, NULL, 0x01,
29025 NULL, HFILL }},
29026 { &hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT,
29027 { "unlicensedSpectrumAsSecondaryRAT", "gsm.map.ms.Ext.SupportedFeatures.unlicensedSpectrumAsSecondaryRAT",
29028 FT_BOOLEAN, 8, NULL, 0x80,
29029 NULL, HFILL }},
29030 { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit,
29031 { "permission-indicator-not-allowed-bit", "gsm.map.ms.LCLS.Negotiation.permission.indicator.not.allowed.bit",
29032 FT_BOOLEAN, 8, NULL, 0x80,
29033 NULL, HFILL }},
29034 { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit,
29035 { "permission-indicator-spare-bit", "gsm.map.ms.LCLS.Negotiation.permission.indicator.spare.bit",
29036 FT_BOOLEAN, 8, NULL, 0x40,
29037 NULL, HFILL }},
29038 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator,
29039 { "forward-data-sending-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.forward.data.sending.indicator",
29040 FT_BOOLEAN, 8, NULL, 0x80,
29041 NULL, HFILL }},
29042 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator,
29043 { "backward-data-sending-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.backward.data.sending.indicator",
29044 FT_BOOLEAN, 8, NULL, 0x40,
29045 NULL, HFILL }},
29046 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator,
29047 { "forward-data-reception-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.forward.data.reception.indicator",
29048 FT_BOOLEAN, 8, NULL, 0x20,
29049 NULL, HFILL }},
29050 { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator,
29051 { "backward-data-reception-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.backward.data.reception.indicator",
29052 FT_BOOLEAN, 8, NULL, 0x10,
29053 NULL, HFILL }},
29054 { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
29055 { "equipmentStatus", "gsm.map.ms.RequestedEquipmentInfo.equipmentStatus",
29056 FT_BOOLEAN, 8, NULL, 0x80,
29057 NULL, HFILL }},
29058 { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
29059 { "bmuef", "gsm.map.ms.RequestedEquipmentInfo.bmuef",
29060 FT_BOOLEAN, 8, NULL, 0x40,
29061 NULL, HFILL }},
29062 { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
29063 { "utranNotAllowed", "gsm.map.ms.AccessRestrictionData.utranNotAllowed",
29064 FT_BOOLEAN, 8, NULL, 0x80,
29065 NULL, HFILL }},
29066 { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
29067 { "geranNotAllowed", "gsm.map.ms.AccessRestrictionData.geranNotAllowed",
29068 FT_BOOLEAN, 8, NULL, 0x40,
29069 NULL, HFILL }},
29070 { &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
29071 { "ganNotAllowed", "gsm.map.ms.AccessRestrictionData.ganNotAllowed",
29072 FT_BOOLEAN, 8, NULL, 0x20,
29073 NULL, HFILL }},
29074 { &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
29075 { "i-hspa-evolutionNotAllowed", "gsm.map.ms.AccessRestrictionData.i.hspa.evolutionNotAllowed",
29076 FT_BOOLEAN, 8, NULL, 0x10,
29077 NULL, HFILL }},
29078 { &hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed,
29079 { "wb-e-utranNotAllowed", "gsm.map.ms.AccessRestrictionData.wb.e.utranNotAllowed",
29080 FT_BOOLEAN, 8, NULL, 0x08,
29081 NULL, HFILL }},
29082 { &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
29083 { "ho-toNon3GPP-AccessNotAllowed", "gsm.map.ms.AccessRestrictionData.ho.toNon3GPP.AccessNotAllowed",
29084 FT_BOOLEAN, 8, NULL, 0x04,
29085 NULL, HFILL }},
29086 { &hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed,
29087 { "nb-iotNotAllowed", "gsm.map.ms.AccessRestrictionData.nb.iotNotAllowed",
29088 FT_BOOLEAN, 8, NULL, 0x02,
29089 NULL, HFILL }},
29090 { &hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed,
29091 { "enhancedCoverageNotAllowed", "gsm.map.ms.AccessRestrictionData.enhancedCoverageNotAllowed",
29092 FT_BOOLEAN, 8, NULL, 0x01,
29093 NULL, HFILL }},
29094 { &hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed,
29095 { "nrAsSecondaryRATNotAllowed", "gsm.map.ms.Ext.AccessRestrictionData.nrAsSecondaryRATNotAllowed",
29096 FT_BOOLEAN, 8, NULL, 0x80,
29097 NULL, HFILL }},
29098 { &hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed,
29099 { "unlicensedSpectrumAsSecondaryRATNotAllowed", "gsm.map.ms.Ext.AccessRestrictionData.unlicensedSpectrumAsSecondaryRATNotAllowed",
29100 FT_BOOLEAN, 8, NULL, 0x40,
29101 NULL, HFILL }},
29102 { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
29103 { "allOG-CallsBarred", "gsm.map.ms.ODB.GeneralData.allOG.CallsBarred",
29104 FT_BOOLEAN, 8, NULL, 0x80,
29105 NULL, HFILL }},
29106 { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
29107 { "internationalOGCallsBarred", "gsm.map.ms.ODB.GeneralData.internationalOGCallsBarred",
29108 FT_BOOLEAN, 8, NULL, 0x40,
29109 NULL, HFILL }},
29110 { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
29111 { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.internationalOGCallsNotToHPLMN.CountryBarred",
29112 FT_BOOLEAN, 8, NULL, 0x20,
29113 NULL, HFILL }},
29114 { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
29115 { "premiumRateInformationOGCallsBarred", "gsm.map.ms.ODB.GeneralData.premiumRateInformationOGCallsBarred",
29116 FT_BOOLEAN, 8, NULL, 0x10,
29117 NULL, HFILL }},
29118 { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
29119 { "premiumRateEntertainementOGCallsBarred", "gsm.map.ms.ODB.GeneralData.premiumRateEntertainementOGCallsBarred",
29120 FT_BOOLEAN, 8, NULL, 0x08,
29121 NULL, HFILL }},
29122 { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
29123 { "ss-AccessBarred", "gsm.map.ms.ODB.GeneralData.ss.AccessBarred",
29124 FT_BOOLEAN, 8, NULL, 0x04,
29125 NULL, HFILL }},
29126 { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
29127 { "interzonalOGCallsBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsBarred",
29128 FT_BOOLEAN, 8, NULL, 0x02,
29129 NULL, HFILL }},
29130 { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
29131 { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsNotToHPLMN.CountryBarred",
29132 FT_BOOLEAN, 8, NULL, 0x01,
29133 NULL, HFILL }},
29134 { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
29135 { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsAndInternationalOGCallsNotToHPLMN.CountryBarred",
29136 FT_BOOLEAN, 8, NULL, 0x80,
29137 NULL, HFILL }},
29138 { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
29139 { "allECT-Barred", "gsm.map.ms.ODB.GeneralData.allECT.Barred",
29140 FT_BOOLEAN, 8, NULL, 0x40,
29141 NULL, HFILL }},
29142 { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
29143 { "chargeableECT-Barred", "gsm.map.ms.ODB.GeneralData.chargeableECT.Barred",
29144 FT_BOOLEAN, 8, NULL, 0x20,
29145 NULL, HFILL }},
29146 { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
29147 { "internationalECT-Barred", "gsm.map.ms.ODB.GeneralData.internationalECT.Barred",
29148 FT_BOOLEAN, 8, NULL, 0x10,
29149 NULL, HFILL }},
29150 { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
29151 { "interzonalECT-Barred", "gsm.map.ms.ODB.GeneralData.interzonalECT.Barred",
29152 FT_BOOLEAN, 8, NULL, 0x08,
29153 NULL, HFILL }},
29154 { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
29155 { "doublyChargeableECT-Barred", "gsm.map.ms.ODB.GeneralData.doublyChargeableECT.Barred",
29156 FT_BOOLEAN, 8, NULL, 0x04,
29157 NULL, HFILL }},
29158 { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
29159 { "multipleECT-Barred", "gsm.map.ms.ODB.GeneralData.multipleECT.Barred",
29160 FT_BOOLEAN, 8, NULL, 0x02,
29161 NULL, HFILL }},
29162 { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
29163 { "allPacketOrientedServicesBarred", "gsm.map.ms.ODB.GeneralData.allPacketOrientedServicesBarred",
29164 FT_BOOLEAN, 8, NULL, 0x01,
29165 NULL, HFILL }},
29166 { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
29167 { "roamerAccessToHPLMN-AP-Barred", "gsm.map.ms.ODB.GeneralData.roamerAccessToHPLMN.AP.Barred",
29168 FT_BOOLEAN, 8, NULL, 0x80,
29169 NULL, HFILL }},
29170 { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
29171 { "roamerAccessToVPLMN-AP-Barred", "gsm.map.ms.ODB.GeneralData.roamerAccessToVPLMN.AP.Barred",
29172 FT_BOOLEAN, 8, NULL, 0x40,
29173 NULL, HFILL }},
29174 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
29175 { "roamingOutsidePLMNOG-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNOG.CallsBarred",
29176 FT_BOOLEAN, 8, NULL, 0x20,
29177 NULL, HFILL }},
29178 { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
29179 { "allIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.allIC.CallsBarred",
29180 FT_BOOLEAN, 8, NULL, 0x10,
29181 NULL, HFILL }},
29182 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
29183 { "roamingOutsidePLMNIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNIC.CallsBarred",
29184 FT_BOOLEAN, 8, NULL, 0x08,
29185 NULL, HFILL }},
29186 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
29187 { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNICountryIC.CallsBarred",
29188 FT_BOOLEAN, 8, NULL, 0x04,
29189 NULL, HFILL }},
29190 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
29191 { "roamingOutsidePLMN-Barred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMN.Barred",
29192 FT_BOOLEAN, 8, NULL, 0x02,
29193 NULL, HFILL }},
29194 { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
29195 { "roamingOutsidePLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMN.CountryBarred",
29196 FT_BOOLEAN, 8, NULL, 0x01,
29197 NULL, HFILL }},
29198 { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
29199 { "registrationAllCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationAllCF.Barred",
29200 FT_BOOLEAN, 8, NULL, 0x80,
29201 NULL, HFILL }},
29202 { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
29203 { "registrationCFNotToHPLMN-Barred", "gsm.map.ms.ODB.GeneralData.registrationCFNotToHPLMN.Barred",
29204 FT_BOOLEAN, 8, NULL, 0x40,
29205 NULL, HFILL }},
29206 { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
29207 { "registrationInterzonalCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationInterzonalCF.Barred",
29208 FT_BOOLEAN, 8, NULL, 0x20,
29209 NULL, HFILL }},
29210 { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
29211 { "registrationInterzonalCFNotToHPLMN-Barred", "gsm.map.ms.ODB.GeneralData.registrationInterzonalCFNotToHPLMN.Barred",
29212 FT_BOOLEAN, 8, NULL, 0x10,
29213 NULL, HFILL }},
29214 { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
29215 { "registrationInternationalCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationInternationalCF.Barred",
29216 FT_BOOLEAN, 8, NULL, 0x08,
29217 NULL, HFILL }},
29218 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
29219 { "plmn-SpecificBarringType1", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType1",
29220 FT_BOOLEAN, 8, NULL, 0x80,
29221 NULL, HFILL }},
29222 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
29223 { "plmn-SpecificBarringType2", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType2",
29224 FT_BOOLEAN, 8, NULL, 0x40,
29225 NULL, HFILL }},
29226 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
29227 { "plmn-SpecificBarringType3", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType3",
29228 FT_BOOLEAN, 8, NULL, 0x20,
29229 NULL, HFILL }},
29230 { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
29231 { "plmn-SpecificBarringType4", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType4",
29232 FT_BOOLEAN, 8, NULL, 0x10,
29233 NULL, HFILL }},
29234 { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
29235 { "o-csi", "gsm.map.ms.SpecificCSI.Withdraw.o.csi",
29236 FT_BOOLEAN, 8, NULL, 0x80,
29237 NULL, HFILL }},
29238 { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
29239 { "ss-csi", "gsm.map.ms.SpecificCSI.Withdraw.ss.csi",
29240 FT_BOOLEAN, 8, NULL, 0x40,
29241 NULL, HFILL }},
29242 { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
29243 { "tif-csi", "gsm.map.ms.SpecificCSI.Withdraw.tif.csi",
29244 FT_BOOLEAN, 8, NULL, 0x20,
29245 NULL, HFILL }},
29246 { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
29247 { "d-csi", "gsm.map.ms.SpecificCSI.Withdraw.d.csi",
29248 FT_BOOLEAN, 8, NULL, 0x10,
29249 NULL, HFILL }},
29250 { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
29251 { "vt-csi", "gsm.map.ms.SpecificCSI.Withdraw.vt.csi",
29252 FT_BOOLEAN, 8, NULL, 0x08,
29253 NULL, HFILL }},
29254 { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
29255 { "mo-sms-csi", "gsm.map.ms.SpecificCSI.Withdraw.mo.sms.csi",
29256 FT_BOOLEAN, 8, NULL, 0x04,
29257 NULL, HFILL }},
29258 { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
29259 { "m-csi", "gsm.map.ms.SpecificCSI.Withdraw.m.csi",
29260 FT_BOOLEAN, 8, NULL, 0x02,
29261 NULL, HFILL }},
29262 { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
29263 { "gprs-csi", "gsm.map.ms.SpecificCSI.Withdraw.gprs.csi",
29264 FT_BOOLEAN, 8, NULL, 0x01,
29265 NULL, HFILL }},
29266 { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
29267 { "t-csi", "gsm.map.ms.SpecificCSI.Withdraw.t.csi",
29268 FT_BOOLEAN, 8, NULL, 0x80,
29269 NULL, HFILL }},
29270 { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
29271 { "mt-sms-csi", "gsm.map.ms.SpecificCSI.Withdraw.mt.sms.csi",
29272 FT_BOOLEAN, 8, NULL, 0x40,
29273 NULL, HFILL }},
29274 { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
29275 { "mg-csi", "gsm.map.ms.SpecificCSI.Withdraw.mg.csi",
29276 FT_BOOLEAN, 8, NULL, 0x20,
29277 NULL, HFILL }},
29278 { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
29279 { "o-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.o.IM.CSI",
29280 FT_BOOLEAN, 8, NULL, 0x10,
29281 NULL, HFILL }},
29282 { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
29283 { "d-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.d.IM.CSI",
29284 FT_BOOLEAN, 8, NULL, 0x08,
29285 NULL, HFILL }},
29286 { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
29287 { "vt-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.vt.IM.CSI",
29288 FT_BOOLEAN, 8, NULL, 0x04,
29289 NULL, HFILL }},
29290 { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
29291 { "phase1", "gsm.map.ms.SupportedCamelPhases.phase1",
29292 FT_BOOLEAN, 8, NULL, 0x80,
29293 NULL, HFILL }},
29294 { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
29295 { "phase2", "gsm.map.ms.SupportedCamelPhases.phase2",
29296 FT_BOOLEAN, 8, NULL, 0x40,
29297 NULL, HFILL }},
29298 { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
29299 { "phase3", "gsm.map.ms.SupportedCamelPhases.phase3",
29300 FT_BOOLEAN, 8, NULL, 0x20,
29301 NULL, HFILL }},
29302 { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
29303 { "phase4", "gsm.map.ms.SupportedCamelPhases.phase4",
29304 FT_BOOLEAN, 8, NULL, 0x10,
29305 NULL, HFILL }},
29306 { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
29307 { "o-csi", "gsm.map.ms.OfferedCamel4CSIs.o.csi",
29308 FT_BOOLEAN, 8, NULL, 0x80,
29309 NULL, HFILL }},
29310 { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
29311 { "d-csi", "gsm.map.ms.OfferedCamel4CSIs.d.csi",
29312 FT_BOOLEAN, 8, NULL, 0x40,
29313 NULL, HFILL }},
29314 { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
29315 { "vt-csi", "gsm.map.ms.OfferedCamel4CSIs.vt.csi",
29316 FT_BOOLEAN, 8, NULL, 0x20,
29317 NULL, HFILL }},
29318 { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
29319 { "t-csi", "gsm.map.ms.OfferedCamel4CSIs.t.csi",
29320 FT_BOOLEAN, 8, NULL, 0x10,
29321 NULL, HFILL }},
29322 { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
29323 { "mt-sms-csi", "gsm.map.ms.OfferedCamel4CSIs.mt.sms.csi",
29324 FT_BOOLEAN, 8, NULL, 0x08,
29325 NULL, HFILL }},
29326 { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
29327 { "mg-csi", "gsm.map.ms.OfferedCamel4CSIs.mg.csi",
29328 FT_BOOLEAN, 8, NULL, 0x04,
29329 NULL, HFILL }},
29330 { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
29331 { "psi-enhancements", "gsm.map.ms.OfferedCamel4CSIs.psi.enhancements",
29332 FT_BOOLEAN, 8, NULL, 0x02,
29333 NULL, HFILL }},
29334 { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
29335 { "initiateCallAttempt", "gsm.map.ms.OfferedCamel4Functionalities.initiateCallAttempt",
29336 FT_BOOLEAN, 8, NULL, 0x80,
29337 NULL, HFILL }},
29338 { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
29339 { "splitLeg", "gsm.map.ms.OfferedCamel4Functionalities.splitLeg",
29340 FT_BOOLEAN, 8, NULL, 0x40,
29341 NULL, HFILL }},
29342 { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
29343 { "moveLeg", "gsm.map.ms.OfferedCamel4Functionalities.moveLeg",
29344 FT_BOOLEAN, 8, NULL, 0x20,
29345 NULL, HFILL }},
29346 { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
29347 { "disconnectLeg", "gsm.map.ms.OfferedCamel4Functionalities.disconnectLeg",
29348 FT_BOOLEAN, 8, NULL, 0x10,
29349 NULL, HFILL }},
29350 { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
29351 { "entityReleased", "gsm.map.ms.OfferedCamel4Functionalities.entityReleased",
29352 FT_BOOLEAN, 8, NULL, 0x08,
29353 NULL, HFILL }},
29354 { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
29355 { "dfc-WithArgument", "gsm.map.ms.OfferedCamel4Functionalities.dfc.WithArgument",
29356 FT_BOOLEAN, 8, NULL, 0x04,
29357 NULL, HFILL }},
29358 { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
29359 { "playTone", "gsm.map.ms.OfferedCamel4Functionalities.playTone",
29360 FT_BOOLEAN, 8, NULL, 0x02,
29361 NULL, HFILL }},
29362 { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
29363 { "dtmf-MidCall", "gsm.map.ms.OfferedCamel4Functionalities.dtmf.MidCall",
29364 FT_BOOLEAN, 8, NULL, 0x01,
29365 NULL, HFILL }},
29366 { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
29367 { "chargingIndicator", "gsm.map.ms.OfferedCamel4Functionalities.chargingIndicator",
29368 FT_BOOLEAN, 8, NULL, 0x80,
29369 NULL, HFILL }},
29370 { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
29371 { "alertingDP", "gsm.map.ms.OfferedCamel4Functionalities.alertingDP",
29372 FT_BOOLEAN, 8, NULL, 0x40,
29373 NULL, HFILL }},
29374 { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
29375 { "locationAtAlerting", "gsm.map.ms.OfferedCamel4Functionalities.locationAtAlerting",
29376 FT_BOOLEAN, 8, NULL, 0x20,
29377 NULL, HFILL }},
29378 { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
29379 { "changeOfPositionDP", "gsm.map.ms.OfferedCamel4Functionalities.changeOfPositionDP",
29380 FT_BOOLEAN, 8, NULL, 0x10,
29381 NULL, HFILL }},
29382 { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
29383 { "or-Interactions", "gsm.map.ms.OfferedCamel4Functionalities.or.Interactions",
29384 FT_BOOLEAN, 8, NULL, 0x08,
29385 NULL, HFILL }},
29386 { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
29387 { "warningToneEnhancements", "gsm.map.ms.OfferedCamel4Functionalities.warningToneEnhancements",
29388 FT_BOOLEAN, 8, NULL, 0x04,
29389 NULL, HFILL }},
29390 { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
29391 { "cf-Enhancements", "gsm.map.ms.OfferedCamel4Functionalities.cf.Enhancements",
29392 FT_BOOLEAN, 8, NULL, 0x02,
29393 NULL, HFILL }},
29394 { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
29395 { "subscribedEnhancedDialledServices", "gsm.map.ms.OfferedCamel4Functionalities.subscribedEnhancedDialledServices",
29396 FT_BOOLEAN, 8, NULL, 0x01,
29397 NULL, HFILL }},
29398 { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
29399 { "servingNetworkEnhancedDialledServices", "gsm.map.ms.OfferedCamel4Functionalities.servingNetworkEnhancedDialledServices",
29400 FT_BOOLEAN, 8, NULL, 0x80,
29401 NULL, HFILL }},
29402 { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
29403 { "criteriaForChangeOfPositionDP", "gsm.map.ms.OfferedCamel4Functionalities.criteriaForChangeOfPositionDP",
29404 FT_BOOLEAN, 8, NULL, 0x40,
29405 NULL, HFILL }},
29406 { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
29407 { "serviceChangeDP", "gsm.map.ms.OfferedCamel4Functionalities.serviceChangeDP",
29408 FT_BOOLEAN, 8, NULL, 0x20,
29409 NULL, HFILL }},
29410 { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
29411 { "collectInformation", "gsm.map.ms.OfferedCamel4Functionalities.collectInformation",
29412 FT_BOOLEAN, 8, NULL, 0x10,
29413 NULL, HFILL }},
29414 { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
29415 { "privilegedUplinkRequest", "gsm.map.ms.AdditionalSubscriptions.privilegedUplinkRequest",
29416 FT_BOOLEAN, 8, NULL, 0x80,
29417 NULL, HFILL }},
29418 { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
29419 { "emergencyUplinkRequest", "gsm.map.ms.AdditionalSubscriptions.emergencyUplinkRequest",
29420 FT_BOOLEAN, 8, NULL, 0x40,
29421 NULL, HFILL }},
29422 { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
29423 { "emergencyReset", "gsm.map.ms.AdditionalSubscriptions.emergencyReset",
29424 FT_BOOLEAN, 8, NULL, 0x20,
29425 NULL, HFILL }},
29426 { &hf_gsm_map_ms_RequestedNodes_mme,
29427 { "mme", "gsm.map.ms.RequestedNodes.mme",
29428 FT_BOOLEAN, 8, NULL, 0x80,
29429 NULL, HFILL }},
29430 { &hf_gsm_map_ms_RequestedNodes_sgsn,
29431 { "sgsn", "gsm.map.ms.RequestedNodes.sgsn",
29432 FT_BOOLEAN, 8, NULL, 0x40,
29433 NULL, HFILL }},
29434 { &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn,
29435 { "mmeAndSgsn", "gsm.map.ms.RequestedServingNode.mmeAndSgsn",
29436 FT_BOOLEAN, 8, NULL, 0x80,
29437 NULL, HFILL }},
29438 { &hf_gsm_map_ms_ServingNode_mme,
29439 { "mme", "gsm.map.ms.ServingNode.mme",
29440 FT_BOOLEAN, 8, NULL, 0x80,
29441 NULL, HFILL }},
29442 { &hf_gsm_map_ms_ServingNode_sgsn,
29443 { "sgsn", "gsm.map.ms.ServingNode.sgsn",
29444 FT_BOOLEAN, 8, NULL, 0x40,
29445 NULL, HFILL }},
29447 /* --- Module MAP-CH-DataTypes --- --- --- */
29449 { &hf_gsm_map_ch_cug_Interlock,
29450 { "cug-Interlock", "gsm_map.ch.cug_Interlock",
29451 FT_BYTES, BASE_NONE, NULL, 0,
29452 NULL, HFILL }},
29453 { &hf_gsm_map_ch_cug_OutgoingAccess,
29454 { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess_element",
29455 FT_NONE, BASE_NONE, NULL, 0,
29456 NULL, HFILL }},
29457 { &hf_gsm_map_ch_extensionContainer,
29458 { "extensionContainer", "gsm_map.ch.extensionContainer_element",
29459 FT_NONE, BASE_NONE, NULL, 0,
29460 NULL, HFILL }},
29461 { &hf_gsm_map_ch_msisdn,
29462 { "msisdn", "gsm_map.ch.msisdn",
29463 FT_BYTES, BASE_NONE, NULL, 0,
29464 "ISDN_AddressString", HFILL }},
29465 { &hf_gsm_map_ch_cug_CheckInfo,
29466 { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo_element",
29467 FT_NONE, BASE_NONE, NULL, 0,
29468 NULL, HFILL }},
29469 { &hf_gsm_map_ch_numberOfForwarding,
29470 { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
29471 FT_UINT32, BASE_DEC, NULL, 0,
29472 NULL, HFILL }},
29473 { &hf_gsm_map_ch_interrogationType,
29474 { "interrogationType", "gsm_map.ch.interrogationType",
29475 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
29476 NULL, HFILL }},
29477 { &hf_gsm_map_ch_or_Interrogation,
29478 { "or-Interrogation", "gsm_map.ch.or_Interrogation_element",
29479 FT_NONE, BASE_NONE, NULL, 0,
29480 NULL, HFILL }},
29481 { &hf_gsm_map_ch_or_Capability,
29482 { "or-Capability", "gsm_map.ch.or_Capability",
29483 FT_UINT32, BASE_DEC, NULL, 0,
29484 "OR_Phase", HFILL }},
29485 { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
29486 { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
29487 FT_BYTES, BASE_NONE, NULL, 0,
29488 "ISDN_AddressString", HFILL }},
29489 { &hf_gsm_map_ch_callReferenceNumber,
29490 { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
29491 FT_BYTES, BASE_NONE, NULL, 0,
29492 NULL, HFILL }},
29493 { &hf_gsm_map_ch_forwardingReason,
29494 { "forwardingReason", "gsm_map.ch.forwardingReason",
29495 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
29496 NULL, HFILL }},
29497 { &hf_gsm_map_ch_basicServiceGroup,
29498 { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
29499 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
29500 "Ext_BasicServiceCode", HFILL }},
29501 { &hf_gsm_map_ch_networkSignalInfo,
29502 { "networkSignalInfo", "gsm_map.ch.networkSignalInfo_element",
29503 FT_NONE, BASE_NONE, NULL, 0,
29504 "ExternalSignalInfo", HFILL }},
29505 { &hf_gsm_map_ch_camelInfo,
29506 { "camelInfo", "gsm_map.ch.camelInfo_element",
29507 FT_NONE, BASE_NONE, NULL, 0,
29508 NULL, HFILL }},
29509 { &hf_gsm_map_ch_suppressionOfAnnouncement,
29510 { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement_element",
29511 FT_NONE, BASE_NONE, NULL, 0,
29512 NULL, HFILL }},
29513 { &hf_gsm_map_ch_alertingPattern,
29514 { "alertingPattern", "gsm_map.ch.alertingPattern",
29515 FT_BYTES, BASE_NONE, NULL, 0,
29516 NULL, HFILL }},
29517 { &hf_gsm_map_ch_ccbs_Call,
29518 { "ccbs-Call", "gsm_map.ch.ccbs_Call_element",
29519 FT_NONE, BASE_NONE, NULL, 0,
29520 NULL, HFILL }},
29521 { &hf_gsm_map_ch_supportedCCBS_Phase,
29522 { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
29523 FT_UINT32, BASE_DEC, NULL, 0,
29524 NULL, HFILL }},
29525 { &hf_gsm_map_ch_additionalSignalInfo,
29526 { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo_element",
29527 FT_NONE, BASE_NONE, NULL, 0,
29528 "Ext_ExternalSignalInfo", HFILL }},
29529 { &hf_gsm_map_ch_istSupportIndicator,
29530 { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
29531 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
29532 "IST_SupportIndicator", HFILL }},
29533 { &hf_gsm_map_ch_pre_pagingSupported,
29534 { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported_element",
29535 FT_NONE, BASE_NONE, NULL, 0,
29536 NULL, HFILL }},
29537 { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
29538 { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
29539 FT_BYTES, BASE_NONE, NULL, 0,
29540 NULL, HFILL }},
29541 { &hf_gsm_map_ch_longFTN_Supported,
29542 { "longFTN-Supported", "gsm_map.ch.longFTN_Supported_element",
29543 FT_NONE, BASE_NONE, NULL, 0,
29544 NULL, HFILL }},
29545 { &hf_gsm_map_ch_suppress_VT_CSI,
29546 { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI_element",
29547 FT_NONE, BASE_NONE, NULL, 0,
29548 NULL, HFILL }},
29549 { &hf_gsm_map_ch_suppressIncomingCallBarring,
29550 { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring_element",
29551 FT_NONE, BASE_NONE, NULL, 0,
29552 NULL, HFILL }},
29553 { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
29554 { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall_element",
29555 FT_NONE, BASE_NONE, NULL, 0,
29556 NULL, HFILL }},
29557 { &hf_gsm_map_ch_basicServiceGroup2,
29558 { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
29559 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
29560 "Ext_BasicServiceCode", HFILL }},
29561 { &hf_gsm_map_ch_networkSignalInfo2,
29562 { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2_element",
29563 FT_NONE, BASE_NONE, NULL, 0,
29564 "ExternalSignalInfo", HFILL }},
29565 { &hf_gsm_map_ch_suppressMTSS,
29566 { "suppressMTSS", "gsm_map.ch.suppressMTSS",
29567 FT_BYTES, BASE_NONE, NULL, 0,
29568 NULL, HFILL }},
29569 { &hf_gsm_map_ch_mtRoamingRetrySupported,
29570 { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported_element",
29571 FT_NONE, BASE_NONE, NULL, 0,
29572 NULL, HFILL }},
29573 { &hf_gsm_map_ch_callPriority,
29574 { "callPriority", "gsm_map.ch.callPriority",
29575 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
29576 "EMLPP_Priority", HFILL }},
29577 { &hf_gsm_map_ch_imsi,
29578 { "imsi", "gsm_map.ch.imsi",
29579 FT_BYTES, BASE_NONE, NULL, 0,
29580 NULL, HFILL }},
29581 { &hf_gsm_map_ch_extendedRoutingInfo,
29582 { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
29583 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
29584 NULL, HFILL }},
29585 { &hf_gsm_map_ch_cugSubscriptionFlag,
29586 { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag_element",
29587 FT_NONE, BASE_NONE, NULL, 0,
29588 NULL, HFILL }},
29589 { &hf_gsm_map_ch_subscriberInfo,
29590 { "subscriberInfo", "gsm_map.ch.subscriberInfo_element",
29591 FT_NONE, BASE_NONE, NULL, 0,
29592 NULL, HFILL }},
29593 { &hf_gsm_map_ch_ss_List,
29594 { "ss-List", "gsm_map.ch.ss_List",
29595 FT_UINT32, BASE_DEC, NULL, 0,
29596 NULL, HFILL }},
29597 { &hf_gsm_map_ch_basicService,
29598 { "basicService", "gsm_map.ch.basicService",
29599 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
29600 "Ext_BasicServiceCode", HFILL }},
29601 { &hf_gsm_map_ch_forwardingInterrogationRequired,
29602 { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired_element",
29603 FT_NONE, BASE_NONE, NULL, 0,
29604 NULL, HFILL }},
29605 { &hf_gsm_map_ch_vmsc_Address,
29606 { "vmsc-Address", "gsm_map.ch.vmsc_Address",
29607 FT_BYTES, BASE_NONE, NULL, 0,
29608 "ISDN_AddressString", HFILL }},
29609 { &hf_gsm_map_ch_naea_PreferredCI,
29610 { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI_element",
29611 FT_NONE, BASE_NONE, NULL, 0,
29612 NULL, HFILL }},
29613 { &hf_gsm_map_ch_ccbs_Indicators,
29614 { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators_element",
29615 FT_NONE, BASE_NONE, NULL, 0,
29616 NULL, HFILL }},
29617 { &hf_gsm_map_ch_numberPortabilityStatus,
29618 { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
29619 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
29620 NULL, HFILL }},
29621 { &hf_gsm_map_ch_istAlertTimer,
29622 { "istAlertTimer", "gsm_map.ch.istAlertTimer",
29623 FT_UINT32, BASE_DEC, NULL, 0,
29624 "IST_AlertTimerValue", HFILL }},
29625 { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
29626 { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
29627 FT_BYTES, BASE_NONE, NULL, 0,
29628 "SupportedCamelPhases", HFILL }},
29629 { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
29630 { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
29631 FT_BYTES, BASE_NONE, NULL, 0,
29632 "OfferedCamel4CSIs", HFILL }},
29633 { &hf_gsm_map_ch_routingInfo2,
29634 { "routingInfo2", "gsm_map.ch.routingInfo2",
29635 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
29636 "RoutingInfo", HFILL }},
29637 { &hf_gsm_map_ch_ss_List2,
29638 { "ss-List2", "gsm_map.ch.ss_List2",
29639 FT_UINT32, BASE_DEC, NULL, 0,
29640 "SS_List", HFILL }},
29641 { &hf_gsm_map_ch_basicService2,
29642 { "basicService2", "gsm_map.ch.basicService2",
29643 FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
29644 "Ext_BasicServiceCode", HFILL }},
29645 { &hf_gsm_map_ch_allowedServices,
29646 { "allowedServices", "gsm_map.ch.allowedServices",
29647 FT_BYTES, BASE_NONE, NULL, 0,
29648 NULL, HFILL }},
29649 { &hf_gsm_map_ch_unavailabilityCause,
29650 { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
29651 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
29652 NULL, HFILL }},
29653 { &hf_gsm_map_ch_releaseResourcesSupported,
29654 { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported_element",
29655 FT_NONE, BASE_NONE, NULL, 0,
29656 NULL, HFILL }},
29657 { &hf_gsm_map_ch_gsm_BearerCapability,
29658 { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability_element",
29659 FT_NONE, BASE_NONE, NULL, 0,
29660 "ExternalSignalInfo", HFILL }},
29661 { &hf_gsm_map_ch_ccbs_Possible,
29662 { "ccbs-Possible", "gsm_map.ch.ccbs_Possible_element",
29663 FT_NONE, BASE_NONE, NULL, 0,
29664 NULL, HFILL }},
29665 { &hf_gsm_map_ch_keepCCBS_CallIndicator,
29666 { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator_element",
29667 FT_NONE, BASE_NONE, NULL, 0,
29668 NULL, HFILL }},
29669 { &hf_gsm_map_ch_roamingNumber,
29670 { "roamingNumber", "gsm_map.ch.roamingNumber",
29671 FT_BYTES, BASE_NONE, NULL, 0,
29672 "ISDN_AddressString", HFILL }},
29673 { &hf_gsm_map_ch_forwardingData,
29674 { "forwardingData", "gsm_map.ch.forwardingData_element",
29675 FT_NONE, BASE_NONE, NULL, 0,
29676 NULL, HFILL }},
29677 { &hf_gsm_map_ch_forwardedToNumber,
29678 { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
29679 FT_BYTES, BASE_NONE, NULL, 0,
29680 "ISDN_AddressString", HFILL }},
29681 { &hf_gsm_map_ch_forwardedToSubaddress,
29682 { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
29683 FT_BYTES, BASE_NONE, NULL, 0,
29684 "ISDN_SubaddressString", HFILL }},
29685 { &hf_gsm_map_ch_forwardingOptions,
29686 { "forwardingOptions", "gsm_map.ch.forwardingOptions",
29687 FT_BYTES, BASE_NONE, NULL, 0,
29688 NULL, HFILL }},
29689 { &hf_gsm_map_ch_longForwardedToNumber,
29690 { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
29691 FT_BYTES, BASE_NONE, NULL, 0,
29692 "FTN_AddressString", HFILL }},
29693 { &hf_gsm_map_ch_msc_Number,
29694 { "msc-Number", "gsm_map.ch.msc_Number",
29695 FT_BYTES, BASE_NONE, NULL, 0,
29696 "ISDN_AddressString", HFILL }},
29697 { &hf_gsm_map_ch_lmsi,
29698 { "lmsi", "gsm_map.ch.lmsi",
29699 FT_BYTES, BASE_NONE, NULL, 0,
29700 NULL, HFILL }},
29701 { &hf_gsm_map_ch_gmsc_Address,
29702 { "gmsc-Address", "gsm_map.ch.gmsc_Address",
29703 FT_BYTES, BASE_NONE, NULL, 0,
29704 "ISDN_AddressString", HFILL }},
29705 { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
29706 { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
29707 FT_BYTES, BASE_NONE, NULL, 0,
29708 "SupportedCamelPhases", HFILL }},
29709 { &hf_gsm_map_ch_orNotSupportedInGMSC,
29710 { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC_element",
29711 FT_NONE, BASE_NONE, NULL, 0,
29712 NULL, HFILL }},
29713 { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
29714 { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
29715 FT_BYTES, BASE_NONE, NULL, 0,
29716 "OfferedCamel4CSIs", HFILL }},
29717 { &hf_gsm_map_ch_pagingArea,
29718 { "pagingArea", "gsm_map.ch.pagingArea",
29719 FT_UINT32, BASE_DEC, NULL, 0,
29720 NULL, HFILL }},
29721 { &hf_gsm_map_ch_mtrf_Indicator,
29722 { "mtrf-Indicator", "gsm_map.ch.mtrf_Indicator_element",
29723 FT_NONE, BASE_NONE, NULL, 0,
29724 NULL, HFILL }},
29725 { &hf_gsm_map_ch_oldMSC_Number,
29726 { "oldMSC-Number", "gsm_map.ch.oldMSC_Number",
29727 FT_BYTES, BASE_NONE, NULL, 0,
29728 "ISDN_AddressString", HFILL }},
29729 { &hf_gsm_map_ch_lastUsedLtePLMN_Id,
29730 { "lastUsedLtePLMN-Id", "gsm_map.ch.lastUsedLtePLMN_Id",
29731 FT_BYTES, BASE_NONE, NULL, 0,
29732 "PLMN_Id", HFILL }},
29733 { &hf_gsm_map_ch_o_CSI,
29734 { "o-CSI", "gsm_map.ch.o_CSI_element",
29735 FT_NONE, BASE_NONE, NULL, 0,
29736 NULL, HFILL }},
29737 { &hf_gsm_map_ch_uu_Data,
29738 { "uu-Data", "gsm_map.ch.uu_Data_element",
29739 FT_NONE, BASE_NONE, NULL, 0,
29740 NULL, HFILL }},
29741 { &hf_gsm_map_ch_allInformationSent,
29742 { "allInformationSent", "gsm_map.ch.allInformationSent_element",
29743 FT_NONE, BASE_NONE, NULL, 0,
29744 NULL, HFILL }},
29745 { &hf_gsm_map_ch_d_csi,
29746 { "d-csi", "gsm_map.ch.d_csi_element",
29747 FT_NONE, BASE_NONE, NULL, 0,
29748 NULL, HFILL }},
29749 { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
29750 { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
29751 FT_UINT32, BASE_DEC, NULL, 0,
29752 NULL, HFILL }},
29753 { &hf_gsm_map_ch_mtRoamingRetry,
29754 { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry_element",
29755 FT_NONE, BASE_NONE, NULL, 0,
29756 NULL, HFILL }},
29757 { &hf_gsm_map_ch_uuIndicator,
29758 { "uuIndicator", "gsm_map.ch.uuIndicator",
29759 FT_BYTES, BASE_NONE, NULL, 0,
29760 NULL, HFILL }},
29761 { &hf_gsm_map_ch_uui,
29762 { "uui", "gsm_map.ch.uui",
29763 FT_BYTES, BASE_NONE, NULL, 0,
29764 NULL, HFILL }},
29765 { &hf_gsm_map_ch_uusCFInteraction,
29766 { "uusCFInteraction", "gsm_map.ch.uusCFInteraction_element",
29767 FT_NONE, BASE_NONE, NULL, 0,
29768 NULL, HFILL }},
29769 { &hf_gsm_map_ch_supportedCamelPhases,
29770 { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
29771 FT_BYTES, BASE_NONE, NULL, 0,
29772 NULL, HFILL }},
29773 { &hf_gsm_map_ch_suppress_T_CSI,
29774 { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI_element",
29775 FT_NONE, BASE_NONE, NULL, 0,
29776 NULL, HFILL }},
29777 { &hf_gsm_map_ch_offeredCamel4CSIs,
29778 { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
29779 FT_BYTES, BASE_NONE, NULL, 0,
29780 NULL, HFILL }},
29781 { &hf_gsm_map_ch_routingInfo,
29782 { "routingInfo", "gsm_map.ch.routingInfo",
29783 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
29784 NULL, HFILL }},
29785 { &hf_gsm_map_ch_camelRoutingInfo,
29786 { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo_element",
29787 FT_NONE, BASE_NONE, NULL, 0,
29788 NULL, HFILL }},
29789 { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
29790 { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo_element",
29791 FT_NONE, BASE_NONE, NULL, 0,
29792 NULL, HFILL }},
29793 { &hf_gsm_map_ch_t_CSI,
29794 { "t-CSI", "gsm_map.ch.t_CSI_element",
29795 FT_NONE, BASE_NONE, NULL, 0,
29796 NULL, HFILL }},
29797 { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
29798 { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
29799 FT_UINT32, BASE_DEC, NULL, 0,
29800 "O_BcsmCamelTDPCriteriaList", HFILL }},
29801 { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
29802 { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
29803 FT_UINT32, BASE_DEC, NULL, 0,
29804 NULL, HFILL }},
29805 { &hf_gsm_map_ch_ccbs_Monitoring,
29806 { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
29807 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
29808 "ReportingState", HFILL }},
29809 { &hf_gsm_map_ch_ccbs_SubscriberStatus,
29810 { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
29811 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
29812 NULL, HFILL }},
29813 { &hf_gsm_map_ch_eventReportData,
29814 { "eventReportData", "gsm_map.ch.eventReportData_element",
29815 FT_NONE, BASE_NONE, NULL, 0,
29816 NULL, HFILL }},
29817 { &hf_gsm_map_ch_callReportdata,
29818 { "callReportdata", "gsm_map.ch.callReportdata_element",
29819 FT_NONE, BASE_NONE, NULL, 0,
29820 NULL, HFILL }},
29821 { &hf_gsm_map_ch_monitoringMode,
29822 { "monitoringMode", "gsm_map.ch.monitoringMode",
29823 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
29824 NULL, HFILL }},
29825 { &hf_gsm_map_ch_callOutcome,
29826 { "callOutcome", "gsm_map.ch.callOutcome",
29827 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
29828 NULL, HFILL }},
29829 { &hf_gsm_map_ch_callInfo,
29830 { "callInfo", "gsm_map.ch.callInfo_element",
29831 FT_NONE, BASE_NONE, NULL, 0,
29832 "ExternalSignalInfo", HFILL }},
29833 { &hf_gsm_map_ch_ccbs_Feature,
29834 { "ccbs-Feature", "gsm_map.ch.ccbs_Feature_element",
29835 FT_NONE, BASE_NONE, NULL, 0,
29836 NULL, HFILL }},
29837 { &hf_gsm_map_ch_translatedB_Number,
29838 { "translatedB-Number", "gsm_map.ch.translatedB_Number",
29839 FT_BYTES, BASE_NONE, NULL, 0,
29840 "ISDN_AddressString", HFILL }},
29841 { &hf_gsm_map_ch_replaceB_Number,
29842 { "replaceB-Number", "gsm_map.ch.replaceB_Number_element",
29843 FT_NONE, BASE_NONE, NULL, 0,
29844 NULL, HFILL }},
29845 { &hf_gsm_map_ch_ruf_Outcome,
29846 { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
29847 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
29848 NULL, HFILL }},
29849 { &hf_gsm_map_ch_istInformationWithdraw,
29850 { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw_element",
29851 FT_NONE, BASE_NONE, NULL, 0,
29852 NULL, HFILL }},
29853 { &hf_gsm_map_ch_callTerminationIndicator,
29854 { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
29855 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
29856 NULL, HFILL }},
29857 { &hf_gsm_map_ch_msrn,
29858 { "msrn", "gsm_map.ch.msrn",
29859 FT_BYTES, BASE_NONE, NULL, 0,
29860 "ISDN_AddressString", HFILL }},
29861 { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
29862 { "suppressCUG", "gsm.map.ch.SuppressMTSS.suppressCUG",
29863 FT_BOOLEAN, 8, NULL, 0x80,
29864 NULL, HFILL }},
29865 { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
29866 { "suppressCCBS", "gsm.map.ch.SuppressMTSS.suppressCCBS",
29867 FT_BOOLEAN, 8, NULL, 0x40,
29868 NULL, HFILL }},
29869 { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
29870 { "firstServiceAllowed", "gsm.map.ch.AllowedServices.firstServiceAllowed",
29871 FT_BOOLEAN, 8, NULL, 0x80,
29872 NULL, HFILL }},
29873 { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
29874 { "secondServiceAllowed", "gsm.map.ch.AllowedServices.secondServiceAllowed",
29875 FT_BOOLEAN, 8, NULL, 0x40,
29876 NULL, HFILL }},
29878 /* --- Module MAP-LCS-DataTypes --- --- --- */
29880 { &hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU,
29881 { "LCS-ClientID", "gsm_map.lcs.LCS_ClientID_element",
29882 FT_NONE, BASE_NONE, NULL, 0,
29883 NULL, HFILL }},
29884 { &hf_gsm_map_lcs_mlcNumber,
29885 { "mlcNumber", "gsm_map.lcs.mlcNumber",
29886 FT_BYTES, BASE_NONE, NULL, 0,
29887 "ISDN_AddressString", HFILL }},
29888 { &hf_gsm_map_lcs_targetMS,
29889 { "targetMS", "gsm_map.lcs.targetMS",
29890 FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
29891 "SubscriberIdentity", HFILL }},
29892 { &hf_gsm_map_lcs_extensionContainer,
29893 { "extensionContainer", "gsm_map.lcs.extensionContainer_element",
29894 FT_NONE, BASE_NONE, NULL, 0,
29895 NULL, HFILL }},
29896 { &hf_gsm_map_lcs_lcsLocationInfo,
29897 { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo_element",
29898 FT_NONE, BASE_NONE, NULL, 0,
29899 NULL, HFILL }},
29900 { &hf_gsm_map_lcs_v_gmlc_Address,
29901 { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
29902 FT_BYTES, BASE_NONE, NULL, 0,
29903 "GSN_Address", HFILL }},
29904 { &hf_gsm_map_lcs_h_gmlc_Address,
29905 { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
29906 FT_BYTES, BASE_NONE, NULL, 0,
29907 "GSN_Address", HFILL }},
29908 { &hf_gsm_map_lcs_ppr_Address,
29909 { "ppr-Address", "gsm_map.lcs.ppr_Address",
29910 FT_BYTES, BASE_NONE, NULL, 0,
29911 "GSN_Address", HFILL }},
29912 { &hf_gsm_map_lcs_additional_v_gmlc_Address,
29913 { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
29914 FT_BYTES, BASE_NONE, NULL, 0,
29915 "GSN_Address", HFILL }},
29916 { &hf_gsm_map_lcs_networkNode_Number,
29917 { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
29918 FT_BYTES, BASE_NONE, NULL, 0,
29919 "ISDN_AddressString", HFILL }},
29920 { &hf_gsm_map_lcs_lmsi,
29921 { "lmsi", "gsm_map.lcs.lmsi",
29922 FT_BYTES, BASE_NONE, NULL, 0,
29923 NULL, HFILL }},
29924 { &hf_gsm_map_lcs_gprsNodeIndicator,
29925 { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator_element",
29926 FT_NONE, BASE_NONE, NULL, 0,
29927 NULL, HFILL }},
29928 { &hf_gsm_map_lcs_additional_Number,
29929 { "additional-Number", "gsm_map.lcs.additional_Number",
29930 FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
29931 NULL, HFILL }},
29932 { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
29933 { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
29934 FT_BYTES, BASE_NONE, NULL, 0,
29935 NULL, HFILL }},
29936 { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
29937 { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
29938 FT_BYTES, BASE_NONE, NULL, 0,
29939 "SupportedLCS_CapabilitySets", HFILL }},
29940 { &hf_gsm_map_lcs_mme_Name,
29941 { "mme-Name", "gsm_map.lcs.mme_Name",
29942 FT_STRING, BASE_NONE, NULL, 0,
29943 "DiameterIdentity", HFILL }},
29944 { &hf_gsm_map_lcs_aaa_Server_Name,
29945 { "aaa-Server-Name", "gsm_map.lcs.aaa_Server_Name",
29946 FT_STRING, BASE_NONE, NULL, 0,
29947 "DiameterIdentity", HFILL }},
29948 { &hf_gsm_map_lcs_sgsn_Name,
29949 { "sgsn-Name", "gsm_map.lcs.sgsn_Name",
29950 FT_STRING, BASE_NONE, NULL, 0,
29951 "DiameterIdentity", HFILL }},
29952 { &hf_gsm_map_lcs_sgsn_Realm,
29953 { "sgsn-Realm", "gsm_map.lcs.sgsn_Realm",
29954 FT_STRING, BASE_NONE, NULL, 0,
29955 "DiameterIdentity", HFILL }},
29956 { &hf_gsm_map_lcs_locationType,
29957 { "locationType", "gsm_map.lcs.locationType_element",
29958 FT_NONE, BASE_NONE, NULL, 0,
29959 NULL, HFILL }},
29960 { &hf_gsm_map_lcs_mlc_Number,
29961 { "mlc-Number", "gsm_map.lcs.mlc_Number",
29962 FT_BYTES, BASE_NONE, NULL, 0,
29963 "ISDN_AddressString", HFILL }},
29964 { &hf_gsm_map_lcs_lcs_ClientID,
29965 { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID_element",
29966 FT_NONE, BASE_NONE, NULL, 0,
29967 NULL, HFILL }},
29968 { &hf_gsm_map_lcs_privacyOverride,
29969 { "privacyOverride", "gsm_map.lcs.privacyOverride_element",
29970 FT_NONE, BASE_NONE, NULL, 0,
29971 NULL, HFILL }},
29972 { &hf_gsm_map_lcs_imsi,
29973 { "imsi", "gsm_map.lcs.imsi",
29974 FT_BYTES, BASE_NONE, NULL, 0,
29975 NULL, HFILL }},
29976 { &hf_gsm_map_lcs_msisdn,
29977 { "msisdn", "gsm_map.lcs.msisdn",
29978 FT_BYTES, BASE_NONE, NULL, 0,
29979 "ISDN_AddressString", HFILL }},
29980 { &hf_gsm_map_lcs_imei,
29981 { "imei", "gsm_map.lcs.imei",
29982 FT_BYTES, BASE_NONE, NULL, 0,
29983 NULL, HFILL }},
29984 { &hf_gsm_map_lcs_lcs_Priority,
29985 { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
29986 FT_BYTES, BASE_NONE, NULL, 0,
29987 NULL, HFILL }},
29988 { &hf_gsm_map_lcs_lcs_QoS,
29989 { "lcs-QoS", "gsm_map.lcs.lcs_QoS_element",
29990 FT_NONE, BASE_NONE, NULL, 0,
29991 NULL, HFILL }},
29992 { &hf_gsm_map_lcs_supportedGADShapes,
29993 { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
29994 FT_BYTES, BASE_NONE, NULL, 0,
29995 NULL, HFILL }},
29996 { &hf_gsm_map_lcs_lcs_ReferenceNumber,
29997 { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
29998 FT_BYTES, BASE_NONE, NULL, 0,
29999 NULL, HFILL }},
30000 { &hf_gsm_map_lcs_lcsServiceTypeID,
30001 { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
30002 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
30003 NULL, HFILL }},
30004 { &hf_gsm_map_lcs_lcsCodeword,
30005 { "lcsCodeword", "gsm_map.lcs.lcsCodeword_element",
30006 FT_NONE, BASE_NONE, NULL, 0,
30007 NULL, HFILL }},
30008 { &hf_gsm_map_lcs_lcs_PrivacyCheck,
30009 { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck_element",
30010 FT_NONE, BASE_NONE, NULL, 0,
30011 NULL, HFILL }},
30012 { &hf_gsm_map_lcs_areaEventInfo,
30013 { "areaEventInfo", "gsm_map.lcs.areaEventInfo_element",
30014 FT_NONE, BASE_NONE, NULL, 0,
30015 NULL, HFILL }},
30016 { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
30017 { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator_element",
30018 FT_NONE, BASE_NONE, NULL, 0,
30019 NULL, HFILL }},
30020 { &hf_gsm_map_lcs_periodicLDRInfo,
30021 { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo_element",
30022 FT_NONE, BASE_NONE, NULL, 0,
30023 NULL, HFILL }},
30024 { &hf_gsm_map_lcs_reportingPLMNList,
30025 { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList_element",
30026 FT_NONE, BASE_NONE, NULL, 0,
30027 NULL, HFILL }},
30028 { &hf_gsm_map_lcs_locationEstimateType,
30029 { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
30030 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
30031 NULL, HFILL }},
30032 { &hf_gsm_map_lcs_deferredLocationEventType,
30033 { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
30034 FT_BYTES, BASE_NONE, NULL, 0,
30035 NULL, HFILL }},
30036 { &hf_gsm_map_lcs_lcsClientType,
30037 { "lcsClientType", "gsm_map.lcs.lcsClientType",
30038 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
30039 NULL, HFILL }},
30040 { &hf_gsm_map_lcs_lcsClientExternalID,
30041 { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID_element",
30042 FT_NONE, BASE_NONE, NULL, 0,
30043 NULL, HFILL }},
30044 { &hf_gsm_map_lcs_lcsClientDialedByMS,
30045 { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
30046 FT_BYTES, BASE_NONE, NULL, 0,
30047 "AddressString", HFILL }},
30048 { &hf_gsm_map_lcs_lcsClientInternalID,
30049 { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
30050 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
30051 NULL, HFILL }},
30052 { &hf_gsm_map_lcs_lcsClientName,
30053 { "lcsClientName", "gsm_map.lcs.lcsClientName_element",
30054 FT_NONE, BASE_NONE, NULL, 0,
30055 NULL, HFILL }},
30056 { &hf_gsm_map_lcs_lcsAPN,
30057 { "lcsAPN", "gsm_map.lcs.lcsAPN",
30058 FT_BYTES, BASE_NONE, NULL, 0,
30059 "APN", HFILL }},
30060 { &hf_gsm_map_lcs_lcsRequestorID,
30061 { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID_element",
30062 FT_NONE, BASE_NONE, NULL, 0,
30063 NULL, HFILL }},
30064 { &hf_gsm_map_lcs_dataCodingScheme,
30065 { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
30066 FT_BYTES, BASE_NONE, NULL, 0,
30067 "USSD_DataCodingScheme", HFILL }},
30068 { &hf_gsm_map_lcs_nameString,
30069 { "nameString", "gsm_map.lcs.nameString",
30070 FT_BYTES, BASE_NONE, NULL, 0,
30071 NULL, HFILL }},
30072 { &hf_gsm_map_lcs_lcs_FormatIndicator,
30073 { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
30074 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
30075 NULL, HFILL }},
30076 { &hf_gsm_map_lcs_requestorIDString,
30077 { "requestorIDString", "gsm_map.lcs.requestorIDString",
30078 FT_BYTES, BASE_NONE, NULL, 0,
30079 NULL, HFILL }},
30080 { &hf_gsm_map_lcs_horizontal_accuracy,
30081 { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
30082 FT_BYTES, BASE_NONE, NULL, 0,
30083 NULL, HFILL }},
30084 { &hf_gsm_map_lcs_verticalCoordinateRequest,
30085 { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest_element",
30086 FT_NONE, BASE_NONE, NULL, 0,
30087 NULL, HFILL }},
30088 { &hf_gsm_map_lcs_vertical_accuracy,
30089 { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
30090 FT_BYTES, BASE_NONE, NULL, 0,
30091 NULL, HFILL }},
30092 { &hf_gsm_map_lcs_responseTime,
30093 { "responseTime", "gsm_map.lcs.responseTime_element",
30094 FT_NONE, BASE_NONE, NULL, 0,
30095 NULL, HFILL }},
30096 { &hf_gsm_map_lcs_velocityRequest,
30097 { "velocityRequest", "gsm_map.lcs.velocityRequest_element",
30098 FT_NONE, BASE_NONE, NULL, 0,
30099 NULL, HFILL }},
30100 { &hf_gsm_map_lcs_responseTimeCategory,
30101 { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
30102 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
30103 NULL, HFILL }},
30104 { &hf_gsm_map_lcs_lcsCodewordString,
30105 { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
30106 FT_BYTES, BASE_NONE, NULL, 0,
30107 NULL, HFILL }},
30108 { &hf_gsm_map_lcs_callSessionUnrelated,
30109 { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
30110 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
30111 "PrivacyCheckRelatedAction", HFILL }},
30112 { &hf_gsm_map_lcs_callSessionRelated,
30113 { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
30114 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
30115 "PrivacyCheckRelatedAction", HFILL }},
30116 { &hf_gsm_map_lcs_areaDefinition,
30117 { "areaDefinition", "gsm_map.lcs.areaDefinition_element",
30118 FT_NONE, BASE_NONE, NULL, 0,
30119 NULL, HFILL }},
30120 { &hf_gsm_map_lcs_occurrenceInfo,
30121 { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
30122 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
30123 NULL, HFILL }},
30124 { &hf_gsm_map_lcs_intervalTime,
30125 { "intervalTime", "gsm_map.lcs.intervalTime",
30126 FT_UINT32, BASE_DEC, NULL, 0,
30127 NULL, HFILL }},
30128 { &hf_gsm_map_lcs_areaList,
30129 { "areaList", "gsm_map.lcs.areaList",
30130 FT_UINT32, BASE_DEC, NULL, 0,
30131 NULL, HFILL }},
30132 { &hf_gsm_map_lcs_AreaList_item,
30133 { "Area", "gsm_map.lcs.Area_element",
30134 FT_NONE, BASE_NONE, NULL, 0,
30135 NULL, HFILL }},
30136 { &hf_gsm_map_lcs_areaType,
30137 { "areaType", "gsm_map.lcs.areaType",
30138 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
30139 NULL, HFILL }},
30140 { &hf_gsm_map_lcs_areaIdentification,
30141 { "areaIdentification", "gsm_map.lcs.areaIdentification",
30142 FT_BYTES, BASE_NONE, NULL, 0,
30143 NULL, HFILL }},
30144 { &hf_gsm_map_lcs_reportingAmount,
30145 { "reportingAmount", "gsm_map.lcs.reportingAmount",
30146 FT_UINT32, BASE_DEC, NULL, 0,
30147 NULL, HFILL }},
30148 { &hf_gsm_map_lcs_reportingInterval,
30149 { "reportingInterval", "gsm_map.lcs.reportingInterval",
30150 FT_UINT32, BASE_DEC, NULL, 0,
30151 NULL, HFILL }},
30152 { &hf_gsm_map_lcs_plmn_ListPrioritized,
30153 { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized_element",
30154 FT_NONE, BASE_NONE, NULL, 0,
30155 NULL, HFILL }},
30156 { &hf_gsm_map_lcs_plmn_List,
30157 { "plmn-List", "gsm_map.lcs.plmn_List",
30158 FT_UINT32, BASE_DEC, NULL, 0,
30159 "PLMNList", HFILL }},
30160 { &hf_gsm_map_lcs_PLMNList_item,
30161 { "ReportingPLMN", "gsm_map.lcs.ReportingPLMN_element",
30162 FT_NONE, BASE_NONE, NULL, 0,
30163 NULL, HFILL }},
30164 { &hf_gsm_map_lcs_plmn_Id,
30165 { "plmn-Id", "gsm_map.lcs.plmn_Id",
30166 FT_BYTES, BASE_NONE, NULL, 0,
30167 NULL, HFILL }},
30168 { &hf_gsm_map_lcs_ran_Technology,
30169 { "ran-Technology", "gsm_map.lcs.ran_Technology",
30170 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
30171 NULL, HFILL }},
30172 { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
30173 { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport_element",
30174 FT_NONE, BASE_NONE, NULL, 0,
30175 NULL, HFILL }},
30176 { &hf_gsm_map_lcs_locationEstimate,
30177 { "locationEstimate", "gsm_map.lcs.locationEstimate",
30178 FT_BYTES, BASE_NONE, NULL, 0,
30179 "Ext_GeographicalInformation", HFILL }},
30180 { &hf_gsm_map_lcs_ageOfLocationEstimate,
30181 { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
30182 FT_UINT32, BASE_DEC, NULL, 0,
30183 "AgeOfLocationInformation", HFILL }},
30184 { &hf_gsm_map_lcs_add_LocationEstimate,
30185 { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
30186 FT_BYTES, BASE_NONE, NULL, 0,
30187 "Add_GeographicalInformation", HFILL }},
30188 { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
30189 { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator_element",
30190 FT_NONE, BASE_NONE, NULL, 0,
30191 NULL, HFILL }},
30192 { &hf_gsm_map_lcs_geranPositioningData,
30193 { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
30194 FT_BYTES, BASE_NONE, NULL, 0,
30195 "PositioningDataInformation", HFILL }},
30196 { &hf_gsm_map_lcs_utranPositioningData,
30197 { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
30198 FT_BYTES, BASE_NONE, NULL, 0,
30199 "UtranPositioningDataInfo", HFILL }},
30200 { &hf_gsm_map_lcs_cellIdOrSai,
30201 { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
30202 FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
30203 "CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
30204 { &hf_gsm_map_lcs_sai_Present,
30205 { "sai-Present", "gsm_map.lcs.sai_Present_element",
30206 FT_NONE, BASE_NONE, NULL, 0,
30207 NULL, HFILL }},
30208 { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
30209 { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
30210 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
30211 NULL, HFILL }},
30212 { &hf_gsm_map_lcs_velocityEstimate,
30213 { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
30214 FT_BYTES, BASE_NONE, NULL, 0,
30215 NULL, HFILL }},
30216 { &hf_gsm_map_lcs_geranGANSSpositioningData,
30217 { "geranGANSSpositioningData", "gsm_map.lcs.geranGANSSpositioningData",
30218 FT_BYTES, BASE_NONE, NULL, 0,
30219 NULL, HFILL }},
30220 { &hf_gsm_map_lcs_utranGANSSpositioningData,
30221 { "utranGANSSpositioningData", "gsm_map.lcs.utranGANSSpositioningData",
30222 FT_BYTES, BASE_NONE, NULL, 0,
30223 NULL, HFILL }},
30224 { &hf_gsm_map_lcs_targetServingNodeForHandover,
30225 { "targetServingNodeForHandover", "gsm_map.lcs.targetServingNodeForHandover",
30226 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ServingNodeAddress_vals), 0,
30227 "ServingNodeAddress", HFILL }},
30228 { &hf_gsm_map_lcs_utranAdditionalPositioningData,
30229 { "utranAdditionalPositioningData", "gsm_map.lcs.utranAdditionalPositioningData",
30230 FT_BYTES, BASE_NONE, NULL, 0,
30231 NULL, HFILL }},
30232 { &hf_gsm_map_lcs_utranBaroPressureMeas,
30233 { "utranBaroPressureMeas", "gsm_map.lcs.utranBaroPressureMeas",
30234 FT_UINT32, BASE_DEC, NULL, 0,
30235 NULL, HFILL }},
30236 { &hf_gsm_map_lcs_utranCivicAddress,
30237 { "utranCivicAddress", "gsm_map.lcs.utranCivicAddress",
30238 FT_BYTES, BASE_NONE, NULL, 0,
30239 NULL, HFILL }},
30240 { &hf_gsm_map_lcs_lcs_Event,
30241 { "lcs-Event", "gsm_map.lcs.lcs_Event",
30242 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
30243 NULL, HFILL }},
30244 { &hf_gsm_map_lcs_na_ESRD,
30245 { "na-ESRD", "gsm_map.lcs.na_ESRD",
30246 FT_BYTES, BASE_NONE, NULL, 0,
30247 "ISDN_AddressString", HFILL }},
30248 { &hf_gsm_map_lcs_na_ESRK,
30249 { "na-ESRK", "gsm_map.lcs.na_ESRK",
30250 FT_BYTES, BASE_NONE, NULL, 0,
30251 "ISDN_AddressString", HFILL }},
30252 { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
30253 { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer_element",
30254 FT_NONE, BASE_NONE, NULL, 0,
30255 NULL, HFILL }},
30256 { &hf_gsm_map_lcs_deferredmt_lrData,
30257 { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData_element",
30258 FT_NONE, BASE_NONE, NULL, 0,
30259 NULL, HFILL }},
30260 { &hf_gsm_map_lcs_pseudonymIndicator,
30261 { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator_element",
30262 FT_NONE, BASE_NONE, NULL, 0,
30263 NULL, HFILL }},
30264 { &hf_gsm_map_lcs_sequenceNumber,
30265 { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
30266 FT_UINT32, BASE_DEC, NULL, 0,
30267 NULL, HFILL }},
30268 { &hf_gsm_map_lcs_terminationCause,
30269 { "terminationCause", "gsm_map.lcs.terminationCause",
30270 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
30271 NULL, HFILL }},
30272 { &hf_gsm_map_lcs_msc_Number,
30273 { "msc-Number", "gsm_map.lcs.msc_Number",
30274 FT_BYTES, BASE_NONE, NULL, 0,
30275 "ISDN_AddressString", HFILL }},
30276 { &hf_gsm_map_lcs_sgsn_Number,
30277 { "sgsn-Number", "gsm_map.lcs.sgsn_Number",
30278 FT_BYTES, BASE_NONE, NULL, 0,
30279 "ISDN_AddressString", HFILL }},
30280 { &hf_gsm_map_lcs_mme_Number,
30281 { "mme-Number", "gsm_map.lcs.mme_Number",
30282 FT_STRING, BASE_NONE, NULL, 0,
30283 "DiameterIdentity", HFILL }},
30284 { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
30285 { "msAvailable", "gsm.map.lcs.DeferredLocationEventType.msAvailable",
30286 FT_BOOLEAN, 8, NULL, 0x80,
30287 NULL, HFILL }},
30288 { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
30289 { "enteringIntoArea", "gsm.map.lcs.DeferredLocationEventType.enteringIntoArea",
30290 FT_BOOLEAN, 8, NULL, 0x40,
30291 NULL, HFILL }},
30292 { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
30293 { "leavingFromArea", "gsm.map.lcs.DeferredLocationEventType.leavingFromArea",
30294 FT_BOOLEAN, 8, NULL, 0x20,
30295 NULL, HFILL }},
30296 { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
30297 { "beingInsideArea", "gsm.map.lcs.DeferredLocationEventType.beingInsideArea",
30298 FT_BOOLEAN, 8, NULL, 0x10,
30299 NULL, HFILL }},
30300 { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
30301 { "periodicLDR", "gsm.map.lcs.DeferredLocationEventType.periodicLDR",
30302 FT_BOOLEAN, 8, NULL, 0x08,
30303 NULL, HFILL }},
30304 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
30305 { "ellipsoidPoint", "gsm.map.lcs.SupportedGADShapes.ellipsoidPoint",
30306 FT_BOOLEAN, 8, NULL, 0x80,
30307 NULL, HFILL }},
30308 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
30309 { "ellipsoidPointWithUncertaintyCircle", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithUncertaintyCircle",
30310 FT_BOOLEAN, 8, NULL, 0x40,
30311 NULL, HFILL }},
30312 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
30313 { "ellipsoidPointWithUncertaintyEllipse", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithUncertaintyEllipse",
30314 FT_BOOLEAN, 8, NULL, 0x20,
30315 NULL, HFILL }},
30316 { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
30317 { "polygon", "gsm.map.lcs.SupportedGADShapes.polygon",
30318 FT_BOOLEAN, 8, NULL, 0x10,
30319 NULL, HFILL }},
30320 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
30321 { "ellipsoidPointWithAltitude", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithAltitude",
30322 FT_BOOLEAN, 8, NULL, 0x08,
30323 NULL, HFILL }},
30324 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
30325 { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
30326 FT_BOOLEAN, 8, NULL, 0x04,
30327 NULL, HFILL }},
30328 { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
30329 { "ellipsoidArc", "gsm.map.lcs.SupportedGADShapes.ellipsoidArc",
30330 FT_BOOLEAN, 8, NULL, 0x02,
30331 NULL, HFILL }},
30333 /* --- Module MAP-GR-DataTypes --- --- --- */
30335 { &hf_gsm_map_gr_teleservice,
30336 { "teleservice", "gsm_map.gr.teleservice",
30337 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
30338 "Ext_TeleserviceCode", HFILL }},
30339 { &hf_gsm_map_gr_asciCallReference,
30340 { "asciCallReference", "gsm_map.gr.asciCallReference",
30341 FT_BYTES, BASE_NONE, NULL, 0,
30342 "ASCI_CallReference", HFILL }},
30343 { &hf_gsm_map_gr_codec_Info,
30344 { "codec-Info", "gsm_map.gr.codec_Info",
30345 FT_BYTES, BASE_NONE, NULL, 0,
30346 NULL, HFILL }},
30347 { &hf_gsm_map_gr_cipheringAlgorithm,
30348 { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
30349 FT_BYTES, BASE_NONE, NULL, 0,
30350 NULL, HFILL }},
30351 { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
30352 { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
30353 FT_UINT32, BASE_DEC, NULL, 0,
30354 "GroupKeyNumber", HFILL }},
30355 { &hf_gsm_map_gr_groupKey,
30356 { "groupKey", "gsm_map.gr.groupKey",
30357 FT_BYTES, BASE_NONE, NULL, 0,
30358 "Kc", HFILL }},
30359 { &hf_gsm_map_gr_priority,
30360 { "priority", "gsm_map.gr.priority",
30361 FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
30362 "EMLPP_Priority", HFILL }},
30363 { &hf_gsm_map_gr_uplinkFree,
30364 { "uplinkFree", "gsm_map.gr.uplinkFree_element",
30365 FT_NONE, BASE_NONE, NULL, 0,
30366 NULL, HFILL }},
30367 { &hf_gsm_map_gr_extensionContainer,
30368 { "extensionContainer", "gsm_map.gr.extensionContainer_element",
30369 FT_NONE, BASE_NONE, NULL, 0,
30370 NULL, HFILL }},
30371 { &hf_gsm_map_gr_vstk,
30372 { "vstk", "gsm_map.gr.vstk",
30373 FT_BYTES, BASE_NONE, NULL, 0,
30374 NULL, HFILL }},
30375 { &hf_gsm_map_gr_vstk_rand,
30376 { "vstk-rand", "gsm_map.gr.vstk_rand",
30377 FT_BYTES, BASE_NONE, NULL, 0,
30378 NULL, HFILL }},
30379 { &hf_gsm_map_gr_talkerChannelParameter,
30380 { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter_element",
30381 FT_NONE, BASE_NONE, NULL, 0,
30382 NULL, HFILL }},
30383 { &hf_gsm_map_gr_uplinkReplyIndicator,
30384 { "uplinkReplyIndicator", "gsm_map.gr.uplinkReplyIndicator_element",
30385 FT_NONE, BASE_NONE, NULL, 0,
30386 NULL, HFILL }},
30387 { &hf_gsm_map_gr_groupCallNumber,
30388 { "groupCallNumber", "gsm_map.gr.groupCallNumber",
30389 FT_BYTES, BASE_NONE, NULL, 0,
30390 "ISDN_AddressString", HFILL }},
30391 { &hf_gsm_map_gr_imsi,
30392 { "imsi", "gsm_map.gr.imsi",
30393 FT_BYTES, BASE_NONE, NULL, 0,
30394 NULL, HFILL }},
30395 { &hf_gsm_map_gr_talkerPriority,
30396 { "talkerPriority", "gsm_map.gr.talkerPriority",
30397 FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
30398 NULL, HFILL }},
30399 { &hf_gsm_map_gr_additionalInfo,
30400 { "additionalInfo", "gsm_map.gr.additionalInfo",
30401 FT_BYTES, BASE_NONE, NULL, 0,
30402 NULL, HFILL }},
30403 { &hf_gsm_map_gr_uplinkRequestAck,
30404 { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck_element",
30405 FT_NONE, BASE_NONE, NULL, 0,
30406 NULL, HFILL }},
30407 { &hf_gsm_map_gr_uplinkReleaseIndication,
30408 { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication_element",
30409 FT_NONE, BASE_NONE, NULL, 0,
30410 NULL, HFILL }},
30411 { &hf_gsm_map_gr_uplinkRejectCommand,
30412 { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand_element",
30413 FT_NONE, BASE_NONE, NULL, 0,
30414 NULL, HFILL }},
30415 { &hf_gsm_map_gr_uplinkSeizedCommand,
30416 { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand_element",
30417 FT_NONE, BASE_NONE, NULL, 0,
30418 NULL, HFILL }},
30419 { &hf_gsm_map_gr_uplinkReleaseCommand,
30420 { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand_element",
30421 FT_NONE, BASE_NONE, NULL, 0,
30422 NULL, HFILL }},
30423 { &hf_gsm_map_gr_stateAttributes,
30424 { "stateAttributes", "gsm_map.gr.stateAttributes_element",
30425 FT_NONE, BASE_NONE, NULL, 0,
30426 NULL, HFILL }},
30427 { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
30428 { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag_element",
30429 FT_NONE, BASE_NONE, NULL, 0,
30430 NULL, HFILL }},
30431 { &hf_gsm_map_gr_sm_RP_UI,
30432 { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
30433 FT_BYTES, BASE_NONE, NULL, 0,
30434 "SignalInfo", HFILL }},
30435 { &hf_gsm_map_gr_an_APDU,
30436 { "an-APDU", "gsm_map.gr.an_APDU_element",
30437 FT_NONE, BASE_NONE, NULL, 0,
30438 "AccessNetworkSignalInfo", HFILL }},
30439 { &hf_gsm_map_gr_uplinkRequest,
30440 { "uplinkRequest", "gsm_map.gr.uplinkRequest_element",
30441 FT_NONE, BASE_NONE, NULL, 0,
30442 NULL, HFILL }},
30443 { &hf_gsm_map_gr_releaseGroupCall,
30444 { "releaseGroupCall", "gsm_map.gr.releaseGroupCall_element",
30445 FT_NONE, BASE_NONE, NULL, 0,
30446 NULL, HFILL }},
30447 { &hf_gsm_map_gr_downlinkAttached,
30448 { "downlinkAttached", "gsm_map.gr.downlinkAttached_element",
30449 FT_NONE, BASE_NONE, NULL, 0,
30450 NULL, HFILL }},
30451 { &hf_gsm_map_gr_uplinkAttached,
30452 { "uplinkAttached", "gsm_map.gr.uplinkAttached_element",
30453 FT_NONE, BASE_NONE, NULL, 0,
30454 NULL, HFILL }},
30455 { &hf_gsm_map_gr_dualCommunication,
30456 { "dualCommunication", "gsm_map.gr.dualCommunication_element",
30457 FT_NONE, BASE_NONE, NULL, 0,
30458 NULL, HFILL }},
30459 { &hf_gsm_map_gr_callOriginator,
30460 { "callOriginator", "gsm_map.gr.callOriginator_element",
30461 FT_NONE, BASE_NONE, NULL, 0,
30462 NULL, HFILL }},
30463 { &hf_gsm_map_gr_requestedInfo,
30464 { "requestedInfo", "gsm_map.gr.requestedInfo",
30465 FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
30466 NULL, HFILL }},
30467 { &hf_gsm_map_gr_groupId,
30468 { "groupId", "gsm_map.gr.groupId",
30469 FT_BYTES, BASE_NONE, NULL, 0,
30470 "Long_GroupId", HFILL }},
30471 { &hf_gsm_map_gr_cellId,
30472 { "cellId", "gsm_map.gr.cellId",
30473 FT_BYTES, BASE_NONE, NULL, 0,
30474 "GlobalCellId", HFILL }},
30475 { &hf_gsm_map_gr_tmsi,
30476 { "tmsi", "gsm_map.gr.tmsi",
30477 FT_BYTES, BASE_NONE, NULL, 0,
30478 NULL, HFILL }},
30479 { &hf_gsm_map_gr_cksn,
30480 { "cksn", "gsm_map.gr.cksn",
30481 FT_BYTES, BASE_NONE, NULL, 0,
30482 NULL, HFILL }},
30483 { &hf_gsm_map_gr_anchorMSC_Address,
30484 { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
30485 FT_BYTES, BASE_NONE, NULL, 0,
30486 "ISDN_AddressString", HFILL }},
30487 { &hf_gsm_map_gr_additionalSubscriptions,
30488 { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
30489 FT_BYTES, BASE_NONE, NULL, 0,
30490 NULL, HFILL }},
30491 { &hf_gsm_map_gr_kc,
30492 { "kc", "gsm_map.gr.kc",
30493 FT_BYTES, BASE_NONE, NULL, 0,
30494 NULL, HFILL }},
30496 /* --- Module MAP-DialogueInformation --- --- --- */
30498 { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
30499 { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
30500 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
30501 NULL, HFILL }},
30502 { &hf_gsm_map_dialogue_map_open,
30503 { "map-open", "gsm_map.dialogue.map_open_element",
30504 FT_NONE, BASE_NONE, NULL, 0,
30505 "MAP_OpenInfo", HFILL }},
30506 { &hf_gsm_map_dialogue_map_accept,
30507 { "map-accept", "gsm_map.dialogue.map_accept_element",
30508 FT_NONE, BASE_NONE, NULL, 0,
30509 "MAP_AcceptInfo", HFILL }},
30510 { &hf_gsm_map_dialogue_map_close,
30511 { "map-close", "gsm_map.dialogue.map_close_element",
30512 FT_NONE, BASE_NONE, NULL, 0,
30513 "MAP_CloseInfo", HFILL }},
30514 { &hf_gsm_map_dialogue_map_refuse,
30515 { "map-refuse", "gsm_map.dialogue.map_refuse_element",
30516 FT_NONE, BASE_NONE, NULL, 0,
30517 "MAP_RefuseInfo", HFILL }},
30518 { &hf_gsm_map_dialogue_map_userAbort,
30519 { "map-userAbort", "gsm_map.dialogue.map_userAbort_element",
30520 FT_NONE, BASE_NONE, NULL, 0,
30521 "MAP_UserAbortInfo", HFILL }},
30522 { &hf_gsm_map_dialogue_map_providerAbort,
30523 { "map-providerAbort", "gsm_map.dialogue.map_providerAbort_element",
30524 FT_NONE, BASE_NONE, NULL, 0,
30525 "MAP_ProviderAbortInfo", HFILL }},
30526 { &hf_gsm_map_dialogue_destinationReference,
30527 { "destinationReference", "gsm_map.dialogue.destinationReference",
30528 FT_BYTES, BASE_NONE, NULL, 0,
30529 "AddressString", HFILL }},
30530 { &hf_gsm_map_dialogue_originationReference,
30531 { "originationReference", "gsm_map.dialogue.originationReference",
30532 FT_BYTES, BASE_NONE, NULL, 0,
30533 "AddressString", HFILL }},
30534 { &hf_gsm_map_dialogue_extensionContainer,
30535 { "extensionContainer", "gsm_map.dialogue.extensionContainer_element",
30536 FT_NONE, BASE_NONE, NULL, 0,
30537 NULL, HFILL }},
30538 { &hf_gsm_map_dialogue_reason,
30539 { "reason", "gsm_map.dialogue.reason",
30540 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
30541 NULL, HFILL }},
30542 { &hf_gsm_map_dialogue_alternativeApplicationContext,
30543 { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
30544 FT_OID, BASE_NONE, NULL, 0,
30545 "OBJECT_IDENTIFIER", HFILL }},
30546 { &hf_gsm_map_dialogue_map_UserAbortChoice,
30547 { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
30548 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
30549 NULL, HFILL }},
30550 { &hf_gsm_map_dialogue_userSpecificReason,
30551 { "userSpecificReason", "gsm_map.dialogue.userSpecificReason_element",
30552 FT_NONE, BASE_NONE, NULL, 0,
30553 NULL, HFILL }},
30554 { &hf_gsm_map_dialogue_userResourceLimitation,
30555 { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation_element",
30556 FT_NONE, BASE_NONE, NULL, 0,
30557 NULL, HFILL }},
30558 { &hf_gsm_map_dialogue_resourceUnavailable,
30559 { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
30560 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
30561 "ResourceUnavailableReason", HFILL }},
30562 { &hf_gsm_map_dialogue_applicationProcedureCancellation,
30563 { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
30564 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
30565 "ProcedureCancellationReason", HFILL }},
30566 { &hf_gsm_map_dialogue_map_ProviderAbortReason,
30567 { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
30568 FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
30569 NULL, HFILL }},
30571 /* --- Module DummyMAP --- --- --- */
30573 { &hf_gsm_old_invoke,
30574 { "invoke", "gsm_old.invoke_element",
30575 FT_NONE, BASE_NONE, NULL, 0,
30576 NULL, HFILL }},
30577 { &hf_gsm_old_returnResultLast,
30578 { "returnResultLast", "gsm_old.returnResultLast_element",
30579 FT_NONE, BASE_NONE, NULL, 0,
30580 "ReturnResult", HFILL }},
30581 { &hf_gsm_old_returnError,
30582 { "returnError", "gsm_old.returnError_element",
30583 FT_NONE, BASE_NONE, NULL, 0,
30584 NULL, HFILL }},
30585 { &hf_gsm_old_reject,
30586 { "reject", "gsm_old.reject_element",
30587 FT_NONE, BASE_NONE, NULL, 0,
30588 NULL, HFILL }},
30589 { &hf_gsm_old_returnResultNotLast,
30590 { "returnResultNotLast", "gsm_old.returnResultNotLast_element",
30591 FT_NONE, BASE_NONE, NULL, 0,
30592 "ReturnResult", HFILL }},
30593 { &hf_gsm_old_invokeID,
30594 { "invokeID", "gsm_old.invokeID",
30595 FT_INT32, BASE_DEC, NULL, 0,
30596 "InvokeIdType", HFILL }},
30597 { &hf_gsm_old_linkedID,
30598 { "linkedID", "gsm_old.linkedID",
30599 FT_INT32, BASE_DEC, NULL, 0,
30600 "InvokeIdType", HFILL }},
30601 { &hf_gsm_old_opCode,
30602 { "opCode", "gsm_old.opCode",
30603 FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
30604 "MAP_OPERATION", HFILL }},
30605 { &hf_gsm_old_invokeparameter,
30606 { "invokeparameter", "gsm_old.invokeparameter_element",
30607 FT_NONE, BASE_NONE, NULL, 0,
30608 NULL, HFILL }},
30609 { &hf_gsm_old_resultretres,
30610 { "resultretres", "gsm_old.resultretres_element",
30611 FT_NONE, BASE_NONE, NULL, 0,
30612 NULL, HFILL }},
30613 { &hf_gsm_old_returnparameter,
30614 { "returnparameter", "gsm_old.returnparameter_element",
30615 FT_NONE, BASE_NONE, NULL, 0,
30616 "ReturnResultParameter", HFILL }},
30617 { &hf_gsm_old_errorCode,
30618 { "errorCode", "gsm_old.errorCode",
30619 FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
30620 "MAP_ERROR", HFILL }},
30621 { &hf_gsm_old_parameter,
30622 { "parameter", "gsm_old.parameter_element",
30623 FT_NONE, BASE_NONE, NULL, 0,
30624 "ReturnErrorParameter", HFILL }},
30625 { &hf_gsm_old_invokeIDRej,
30626 { "invokeIDRej", "gsm_old.invokeIDRej",
30627 FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
30628 NULL, HFILL }},
30629 { &hf_gsm_old_derivable,
30630 { "derivable", "gsm_old.derivable",
30631 FT_INT32, BASE_DEC, NULL, 0,
30632 "InvokeIdType", HFILL }},
30633 { &hf_gsm_old_not_derivable,
30634 { "not-derivable", "gsm_old.not_derivable_element",
30635 FT_NONE, BASE_NONE, NULL, 0,
30636 NULL, HFILL }},
30637 { &hf_gsm_old_problem,
30638 { "problem", "gsm_old.problem",
30639 FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
30640 NULL, HFILL }},
30641 { &hf_gsm_old_generalProblem,
30642 { "generalProblem", "gsm_old.generalProblem",
30643 FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
30644 NULL, HFILL }},
30645 { &hf_gsm_old_invokeProblem,
30646 { "invokeProblem", "gsm_old.invokeProblem",
30647 FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
30648 NULL, HFILL }},
30649 { &hf_gsm_old_returnResultProblem,
30650 { "returnResultProblem", "gsm_old.returnResultProblem",
30651 FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
30652 NULL, HFILL }},
30653 { &hf_gsm_old_returnErrorProblem,
30654 { "returnErrorProblem", "gsm_old.returnErrorProblem",
30655 FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
30656 NULL, HFILL }},
30657 { &hf_gsm_old_localValue,
30658 { "localValue", "gsm_old.localValue",
30659 FT_INT32, BASE_DEC|BASE_EXT_STRING, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, 0,
30660 "OperationLocalvalue", HFILL }},
30661 { &hf_gsm_old_globalValue,
30662 { "globalValue", "gsm_old.globalValue",
30663 FT_OID, BASE_NONE, NULL, 0,
30664 "OBJECT_IDENTIFIER", HFILL }},
30665 { &hf_gsm_old_localValue_01,
30666 { "localValue", "gsm_old.localValue",
30667 FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
30668 "LocalErrorcode", HFILL }},
30669 { &hf_gsm_old_protocolId,
30670 { "protocolId", "gsm_old.protocolId",
30671 FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
30672 NULL, HFILL }},
30673 { &hf_gsm_old_signalInfo,
30674 { "signalInfo", "gsm_old.signalInfo",
30675 FT_BYTES, BASE_NONE, NULL, 0,
30676 NULL, HFILL }},
30677 { &hf_gsm_old_extensionContainer,
30678 { "extensionContainer", "gsm_old.extensionContainer_element",
30679 FT_NONE, BASE_NONE, NULL, 0,
30680 NULL, HFILL }},
30681 { &hf_gsm_old_gsm_BearerCapability,
30682 { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability_element",
30683 FT_NONE, BASE_NONE, NULL, 0,
30684 "ExternalSignalInfo", HFILL }},
30685 { &hf_gsm_old_isdn_BearerCapability,
30686 { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability_element",
30687 FT_NONE, BASE_NONE, NULL, 0,
30688 "ExternalSignalInfo", HFILL }},
30689 { &hf_gsm_old_call_Direction,
30690 { "call-Direction", "gsm_old.call_Direction",
30691 FT_BYTES, BASE_NONE, NULL, 0,
30692 "CallDirection", HFILL }},
30693 { &hf_gsm_old_b_Subscriber_Address,
30694 { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
30695 FT_BYTES, BASE_NONE, NULL, 0,
30696 "ISDN_AddressString", HFILL }},
30697 { &hf_gsm_old_chosenChannel,
30698 { "chosenChannel", "gsm_old.chosenChannel_element",
30699 FT_NONE, BASE_NONE, NULL, 0,
30700 "ExternalSignalInfo", HFILL }},
30701 { &hf_gsm_old_lowerLayerCompatibility,
30702 { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility_element",
30703 FT_NONE, BASE_NONE, NULL, 0,
30704 "ExternalSignalInfo", HFILL }},
30705 { &hf_gsm_old_highLayerCompatibility,
30706 { "highLayerCompatibility", "gsm_old.highLayerCompatibility_element",
30707 FT_NONE, BASE_NONE, NULL, 0,
30708 "ExternalSignalInfo", HFILL }},
30709 { &hf_gsm_old_sIWFSNumber,
30710 { "sIWFSNumber", "gsm_old.sIWFSNumber",
30711 FT_BYTES, BASE_NONE, NULL, 0,
30712 "ISDN_AddressString", HFILL }},
30713 { &hf_gsm_old_imsi,
30714 { "imsi", "gsm_old.imsi",
30715 FT_BYTES, BASE_NONE, NULL, 0,
30716 NULL, HFILL }},
30717 { &hf_gsm_old_vlr_Number,
30718 { "vlr-Number", "gsm_old.vlr_Number",
30719 FT_BYTES, BASE_NONE, NULL, 0,
30720 "ISDN_AddressString", HFILL }},
30721 { &hf_gsm_old_targetCellId,
30722 { "targetCellId", "gsm_old.targetCellId",
30723 FT_BYTES, BASE_NONE, NULL, 0,
30724 "GlobalCellId", HFILL }},
30725 { &hf_gsm_old_ho_NumberNotRequired,
30726 { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired_element",
30727 FT_NONE, BASE_NONE, NULL, 0,
30728 NULL, HFILL }},
30729 { &hf_gsm_old_bss_APDU,
30730 { "bss-APDU", "gsm_old.bss_APDU_element",
30731 FT_NONE, BASE_NONE, NULL, 0,
30732 NULL, HFILL }},
30733 { &hf_gsm_old_handoverNumber,
30734 { "handoverNumber", "gsm_old.handoverNumber",
30735 FT_BYTES, BASE_NONE, NULL, 0,
30736 "ISDN_AddressString", HFILL }},
30737 { &hf_gsm_old_SendAuthenticationInfoResOld_item,
30738 { "SendAuthenticationInfoResOld item", "gsm_old.SendAuthenticationInfoResOld_item_element",
30739 FT_NONE, BASE_NONE, NULL, 0,
30740 NULL, HFILL }},
30741 { &hf_gsm_old_rand,
30742 { "rand", "gsm_old.rand",
30743 FT_BYTES, BASE_NONE, NULL, 0,
30744 NULL, HFILL }},
30745 { &hf_gsm_old_sres,
30746 { "sres", "gsm_old.sres",
30747 FT_BYTES, BASE_NONE, NULL, 0,
30748 NULL, HFILL }},
30749 { &hf_gsm_old_kc,
30750 { "kc", "gsm_old.kc",
30751 FT_BYTES, BASE_NONE, NULL, 0,
30752 NULL, HFILL }},
30753 { &hf_gsm_old_tripletList,
30754 { "tripletList", "gsm_old.tripletList",
30755 FT_UINT32, BASE_DEC, NULL, 0,
30756 "TripletListold", HFILL }},
30757 { &hf_gsm_old_TripletListold_item,
30758 { "AuthenticationTriplet-v2", "gsm_old.AuthenticationTriplet_v2_element",
30759 FT_NONE, BASE_NONE, NULL, 0,
30760 NULL, HFILL }},
30761 { &hf_gsm_old_channelType,
30762 { "channelType", "gsm_old.channelType_element",
30763 FT_NONE, BASE_NONE, NULL, 0,
30764 "ExternalSignalInfo", HFILL }},
30765 { &hf_gsm_old_securityHeader,
30766 { "securityHeader", "gsm_old.securityHeader_element",
30767 FT_NONE, BASE_NONE, NULL, 0,
30768 NULL, HFILL }},
30769 { &hf_gsm_old_protectedPayload,
30770 { "protectedPayload", "gsm_old.protectedPayload",
30771 FT_BYTES, BASE_NONE, NULL, 0,
30772 NULL, HFILL }},
30773 { &hf_gsm_old_securityParametersIndex,
30774 { "securityParametersIndex", "gsm_old.securityParametersIndex",
30775 FT_BYTES, BASE_NONE, NULL, 0,
30776 NULL, HFILL }},
30777 { &hf_gsm_old_originalComponentIdentifier,
30778 { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
30779 FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
30780 NULL, HFILL }},
30781 { &hf_gsm_old_initialisationVector,
30782 { "initialisationVector", "gsm_old.initialisationVector",
30783 FT_BYTES, BASE_NONE, NULL, 0,
30784 NULL, HFILL }},
30785 { &hf_gsm_old_operationCode,
30786 { "operationCode", "gsm_old.operationCode",
30787 FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
30788 NULL, HFILL }},
30789 { &hf_gsm_old_errorCode_01,
30790 { "errorCode", "gsm_old.errorCode",
30791 FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
30792 NULL, HFILL }},
30793 { &hf_gsm_old_userInfo,
30794 { "userInfo", "gsm_old.userInfo_element",
30795 FT_NONE, BASE_NONE, NULL, 0,
30796 NULL, HFILL }},
30797 { &hf_gsm_old_localValue_02,
30798 { "localValue", "gsm_old.localValue",
30799 FT_INT32, BASE_DEC, NULL, 0,
30800 "INTEGER", HFILL }},
30801 { &hf_gsm_old_msisdn,
30802 { "msisdn", "gsm_old.msisdn",
30803 FT_BYTES, BASE_NONE, NULL, 0,
30804 "ISDN_AddressString", HFILL }},
30805 { &hf_gsm_old_category,
30806 { "category", "gsm_old.category",
30807 FT_BYTES, BASE_NONE, NULL, 0,
30808 NULL, HFILL }},
30809 { &hf_gsm_old_basicService,
30810 { "basicService", "gsm_old.basicService",
30811 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
30812 "BasicServiceCode", HFILL }},
30813 { &hf_gsm_old_operatorSS_Code,
30814 { "operatorSS-Code", "gsm_old.operatorSS_Code",
30815 FT_UINT32, BASE_DEC, NULL, 0,
30816 NULL, HFILL }},
30817 { &hf_gsm_old_operatorSS_Code_item,
30818 { "operatorSS-Code item", "gsm_old.operatorSS_Code_item",
30819 FT_BYTES, BASE_NONE, NULL, 0,
30820 "OCTET_STRING_SIZE_1", HFILL }},
30821 { &hf_gsm_old_sm_RP_DA,
30822 { "sm-RP-DA", "gsm_old.sm_RP_DA",
30823 FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
30824 "SM_RP_DAold", HFILL }},
30825 { &hf_gsm_old_sm_RP_OA,
30826 { "sm-RP-OA", "gsm_old.sm_RP_OA",
30827 FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
30828 "SM_RP_OAold", HFILL }},
30829 { &hf_gsm_old_sm_RP_UI,
30830 { "sm-RP-UI", "gsm_old.sm_RP_UI",
30831 FT_BYTES, BASE_NONE, NULL, 0,
30832 "SignalInfo", HFILL }},
30833 { &hf_gsm_old_moreMessagesToSend,
30834 { "moreMessagesToSend", "gsm_old.moreMessagesToSend_element",
30835 FT_NONE, BASE_NONE, NULL, 0,
30836 NULL, HFILL }},
30837 { &hf_gsm_old_imsi_01,
30838 { "imsi", "gsm_old.imsi",
30839 FT_BYTES, BASE_NONE, NULL, 0,
30840 NULL, HFILL }},
30841 { &hf_gsm_old_lmsi,
30842 { "lmsi", "gsm_old.lmsi",
30843 FT_BYTES, BASE_NONE, NULL, 0,
30844 NULL, HFILL }},
30845 { &hf_gsm_old_serviceCentreAddressDA,
30846 { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
30847 FT_BYTES, BASE_NONE, NULL, 0,
30848 NULL, HFILL }},
30849 { &hf_gsm_old_noSM_RP_DA,
30850 { "noSM-RP-DA", "gsm_old.noSM_RP_DA_element",
30851 FT_NONE, BASE_NONE, NULL, 0,
30852 NULL, HFILL }},
30853 { &hf_gsm_old_msisdn_01,
30854 { "msisdn", "gsm_old.msisdn",
30855 FT_BYTES, BASE_NONE, NULL, 0,
30856 NULL, HFILL }},
30857 { &hf_gsm_old_serviceCentreAddressOA,
30858 { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
30859 FT_BYTES, BASE_NONE, NULL, 0,
30860 NULL, HFILL }},
30861 { &hf_gsm_old_noSM_RP_OA,
30862 { "noSM-RP-OA", "gsm_old.noSM_RP_OA_element",
30863 FT_NONE, BASE_NONE, NULL, 0,
30864 NULL, HFILL }},
30865 { &hf_gsm_old_cug_CheckInfo,
30866 { "cug-CheckInfo", "gsm_old.cug_CheckInfo_element",
30867 FT_NONE, BASE_NONE, NULL, 0,
30868 NULL, HFILL }},
30869 { &hf_gsm_old_numberOfForwarding,
30870 { "numberOfForwarding", "gsm_old.numberOfForwarding",
30871 FT_UINT32, BASE_DEC, NULL, 0,
30872 NULL, HFILL }},
30873 { &hf_gsm_old_networkSignalInfo,
30874 { "networkSignalInfo", "gsm_old.networkSignalInfo_element",
30875 FT_NONE, BASE_NONE, NULL, 0,
30876 "ExternalSignalInfo", HFILL }},
30877 { &hf_gsm_old_routingInfo,
30878 { "routingInfo", "gsm_old.routingInfo",
30879 FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
30880 NULL, HFILL }},
30881 { &hf_gsm_old_originatingEntityNumber,
30882 { "originatingEntityNumber", "gsm_old.originatingEntityNumber",
30883 FT_BYTES, BASE_NONE, NULL, 0,
30884 "ISDN_AddressString", HFILL }},
30885 { &hf_gsm_old_msisdn_02,
30886 { "msisdn", "gsm_old.msisdn",
30887 FT_BYTES, BASE_NONE, NULL, 0,
30888 "AddressString", HFILL }},
30889 { &hf_gsm_old_sm_RP_PRI,
30890 { "sm-RP-PRI", "gsm_old.sm_RP_PRI",
30891 FT_BOOLEAN, BASE_NONE, NULL, 0,
30892 "BOOLEAN", HFILL }},
30893 { &hf_gsm_old_serviceCentreAddress,
30894 { "serviceCentreAddress", "gsm_old.serviceCentreAddress",
30895 FT_BYTES, BASE_NONE, NULL, 0,
30896 "AddressString", HFILL }},
30897 { &hf_gsm_old_cug_Interlock,
30898 { "cug-Interlock", "gsm_old.cug_Interlock",
30899 FT_BYTES, BASE_NONE, NULL, 0,
30900 NULL, HFILL }},
30901 { &hf_gsm_old_teleserviceCode,
30902 { "teleserviceCode", "gsm_old.teleserviceCode",
30903 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
30904 NULL, HFILL }},
30905 { &hf_gsm_old_locationInfoWithLMSI,
30906 { "locationInfoWithLMSI", "gsm_old.locationInfoWithLMSI_element",
30907 FT_NONE, BASE_NONE, NULL, 0,
30908 "LocationInfoWithLMSIv2", HFILL }},
30909 { &hf_gsm_old_mwd_Set,
30910 { "mwd-Set", "gsm_old.mwd_Set",
30911 FT_BOOLEAN, BASE_NONE, NULL, 0,
30912 "BOOLEAN", HFILL }},
30913 { &hf_gsm_old_locationInfo,
30914 { "locationInfo", "gsm_old.locationInfo",
30915 FT_UINT32, BASE_DEC, VALS(gsm_old_LocationInfo_vals), 0,
30916 NULL, HFILL }},
30917 { &hf_gsm_old_lmsi_01,
30918 { "lmsi", "gsm_old.lmsi",
30919 FT_BYTES, BASE_NONE, NULL, 0,
30920 NULL, HFILL }},
30921 { &hf_gsm_old_roamingNumber,
30922 { "roamingNumber", "gsm_old.roamingNumber",
30923 FT_BYTES, BASE_NONE, NULL, 0,
30924 "ISDN_AddressString", HFILL }},
30925 { &hf_gsm_old_msc_Number,
30926 { "msc-Number", "gsm_old.msc_Number",
30927 FT_BYTES, BASE_NONE, NULL, 0,
30928 "ISDN_AddressString", HFILL }},
30929 { &hf_gsm_old_subscriberId,
30930 { "subscriberId", "gsm_old.subscriberId",
30931 FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberId_vals), 0,
30932 NULL, HFILL }},
30933 { &hf_gsm_old_requestParameterList,
30934 { "requestParameterList", "gsm_old.requestParameterList",
30935 FT_UINT32, BASE_DEC, NULL, 0,
30936 NULL, HFILL }},
30937 { &hf_gsm_old_RequestParameterList_item,
30938 { "RequestParameter", "gsm_old.RequestParameter",
30939 FT_UINT32, BASE_DEC, VALS(gsm_old_RequestParameter_vals), 0,
30940 NULL, HFILL }},
30941 { &hf_gsm_old_authenticationSet,
30942 { "authenticationSet", "gsm_old.authenticationSet",
30943 FT_UINT32, BASE_DEC, VALS(gsm_old_AuthenticationSetListOld_vals), 0,
30944 "AuthenticationSetListOld", HFILL }},
30945 { &hf_gsm_old_subscriberData,
30946 { "subscriberData", "gsm_old.subscriberData_element",
30947 FT_NONE, BASE_NONE, NULL, 0,
30948 NULL, HFILL }},
30949 { &hf_gsm_old_ki,
30950 { "ki", "gsm_old.ki",
30951 FT_BYTES, BASE_NONE, NULL, 0,
30952 NULL, HFILL }},
30953 { &hf_gsm_old_tripletList_01,
30954 { "tripletList", "gsm_old.tripletList",
30955 FT_UINT32, BASE_DEC, NULL, 0,
30956 NULL, HFILL }},
30957 { &hf_gsm_old_quintupletList,
30958 { "quintupletList", "gsm_old.quintupletList",
30959 FT_UINT32, BASE_DEC, NULL, 0,
30960 NULL, HFILL }},
30961 { &hf_gsm_old_SentParameterList_item,
30962 { "SentParameter", "gsm_old.SentParameter",
30963 FT_UINT32, BASE_DEC, VALS(gsm_old_SentParameter_vals), 0,
30964 NULL, HFILL }},
30965 { &hf_gsm_old_networkResource,
30966 { "networkResource", "gsm_old.networkResource",
30967 FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
30968 NULL, HFILL }},
30969 { &hf_gsm_old_hlr_Number,
30970 { "hlr-Number", "gsm_old.hlr_Number",
30971 FT_BYTES, BASE_NONE, NULL, 0,
30972 "ISDN_AddressString", HFILL }},
30973 { &hf_gsm_old_hlr_List,
30974 { "hlr-List", "gsm_old.hlr_List",
30975 FT_UINT32, BASE_DEC, NULL, 0,
30976 NULL, HFILL }},
30978 /* --- Module SS-DataTypes --- --- --- */
30980 { &hf_gsm_ss_ss_Code,
30981 { "ss-Code", "gsm_ss.ss_Code",
30982 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
30983 NULL, HFILL }},
30984 { &hf_gsm_ss_ss_Status,
30985 { "ss-Status", "gsm_ss.ss_Status",
30986 FT_BYTES, BASE_NONE, NULL, 0,
30987 NULL, HFILL }},
30988 { &hf_gsm_ss_ss_Notification,
30989 { "ss-Notification", "gsm_ss.ss_Notification",
30990 FT_BYTES, BASE_NONE, NULL, 0,
30991 NULL, HFILL }},
30992 { &hf_gsm_ss_callIsWaiting_Indicator,
30993 { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator_element",
30994 FT_NONE, BASE_NONE, NULL, 0,
30995 NULL, HFILL }},
30996 { &hf_gsm_ss_callOnHold_Indicator,
30997 { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
30998 FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
30999 NULL, HFILL }},
31000 { &hf_gsm_ss_mpty_Indicator,
31001 { "mpty-Indicator", "gsm_ss.mpty_Indicator_element",
31002 FT_NONE, BASE_NONE, NULL, 0,
31003 NULL, HFILL }},
31004 { &hf_gsm_ss_cug_Index,
31005 { "cug-Index", "gsm_ss.cug_Index",
31006 FT_UINT32, BASE_DEC, NULL, 0,
31007 NULL, HFILL }},
31008 { &hf_gsm_ss_clirSuppressionRejected,
31009 { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected_element",
31010 FT_NONE, BASE_NONE, NULL, 0,
31011 NULL, HFILL }},
31012 { &hf_gsm_ss_ect_Indicator,
31013 { "ect-Indicator", "gsm_ss.ect_Indicator_element",
31014 FT_NONE, BASE_NONE, NULL, 0,
31015 NULL, HFILL }},
31016 { &hf_gsm_ss_nameIndicator,
31017 { "nameIndicator", "gsm_ss.nameIndicator_element",
31018 FT_NONE, BASE_NONE, NULL, 0,
31019 NULL, HFILL }},
31020 { &hf_gsm_ss_ccbs_Feature,
31021 { "ccbs-Feature", "gsm_ss.ccbs_Feature_element",
31022 FT_NONE, BASE_NONE, NULL, 0,
31023 NULL, HFILL }},
31024 { &hf_gsm_ss_alertingPattern,
31025 { "alertingPattern", "gsm_ss.alertingPattern",
31026 FT_BYTES, BASE_NONE, NULL, 0,
31027 NULL, HFILL }},
31028 { &hf_gsm_ss_multicall_Indicator,
31029 { "multicall-Indicator", "gsm_ss.multicall_Indicator",
31030 FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
31031 NULL, HFILL }},
31032 { &hf_gsm_ss_chargingInformation,
31033 { "chargingInformation", "gsm_ss.chargingInformation_element",
31034 FT_NONE, BASE_NONE, NULL, 0,
31035 NULL, HFILL }},
31036 { &hf_gsm_ss_e1,
31037 { "e1", "gsm_ss.e1",
31038 FT_UINT32, BASE_DEC, NULL, 0,
31039 NULL, HFILL }},
31040 { &hf_gsm_ss_e2,
31041 { "e2", "gsm_ss.e2",
31042 FT_UINT32, BASE_DEC, NULL, 0,
31043 NULL, HFILL }},
31044 { &hf_gsm_ss_e3,
31045 { "e3", "gsm_ss.e3",
31046 FT_UINT32, BASE_DEC, NULL, 0,
31047 NULL, HFILL }},
31048 { &hf_gsm_ss_e4,
31049 { "e4", "gsm_ss.e4",
31050 FT_UINT32, BASE_DEC, NULL, 0,
31051 NULL, HFILL }},
31052 { &hf_gsm_ss_e5,
31053 { "e5", "gsm_ss.e5",
31054 FT_UINT32, BASE_DEC, NULL, 0,
31055 NULL, HFILL }},
31056 { &hf_gsm_ss_e6,
31057 { "e6", "gsm_ss.e6",
31058 FT_UINT32, BASE_DEC, NULL, 0,
31059 NULL, HFILL }},
31060 { &hf_gsm_ss_e7,
31061 { "e7", "gsm_ss.e7",
31062 FT_UINT32, BASE_DEC, NULL, 0,
31063 NULL, HFILL }},
31064 { &hf_gsm_ss_suppressPrefCUG,
31065 { "suppressPrefCUG", "gsm_ss.suppressPrefCUG_element",
31066 FT_NONE, BASE_NONE, NULL, 0,
31067 NULL, HFILL }},
31068 { &hf_gsm_ss_suppressOA,
31069 { "suppressOA", "gsm_ss.suppressOA_element",
31070 FT_NONE, BASE_NONE, NULL, 0,
31071 NULL, HFILL }},
31072 { &hf_gsm_ss_ect_CallState,
31073 { "ect-CallState", "gsm_ss.ect_CallState",
31074 FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
31075 NULL, HFILL }},
31076 { &hf_gsm_ss_rdn,
31077 { "rdn", "gsm_ss.rdn",
31078 FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
31079 NULL, HFILL }},
31080 { &hf_gsm_ss_callingName,
31081 { "callingName", "gsm_ss.callingName",
31082 FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
31083 "Name", HFILL }},
31084 { &hf_gsm_ss_namePresentationAllowed,
31085 { "namePresentationAllowed", "gsm_ss.namePresentationAllowed_element",
31086 FT_NONE, BASE_NONE, NULL, 0,
31087 "NameSet", HFILL }},
31088 { &hf_gsm_ss_presentationRestricted,
31089 { "presentationRestricted", "gsm_ss.presentationRestricted_element",
31090 FT_NONE, BASE_NONE, NULL, 0,
31091 NULL, HFILL }},
31092 { &hf_gsm_ss_nameUnavailable,
31093 { "nameUnavailable", "gsm_ss.nameUnavailable_element",
31094 FT_NONE, BASE_NONE, NULL, 0,
31095 NULL, HFILL }},
31096 { &hf_gsm_ss_namePresentationRestricted,
31097 { "namePresentationRestricted", "gsm_ss.namePresentationRestricted_element",
31098 FT_NONE, BASE_NONE, NULL, 0,
31099 "NameSet", HFILL }},
31100 { &hf_gsm_ss_dataCodingScheme,
31101 { "dataCodingScheme", "gsm_ss.dataCodingScheme",
31102 FT_BYTES, BASE_NONE, NULL, 0,
31103 "USSD_DataCodingScheme", HFILL }},
31104 { &hf_gsm_ss_lengthInCharacters,
31105 { "lengthInCharacters", "gsm_ss.lengthInCharacters",
31106 FT_INT32, BASE_DEC, NULL, 0,
31107 "INTEGER", HFILL }},
31108 { &hf_gsm_ss_nameString,
31109 { "nameString", "gsm_ss.nameString",
31110 FT_BYTES, BASE_NONE, NULL, 0,
31111 "USSD_String", HFILL }},
31112 { &hf_gsm_ss_presentationAllowedAddress,
31113 { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress_element",
31114 FT_NONE, BASE_NONE, NULL, 0,
31115 "RemotePartyNumber", HFILL }},
31116 { &hf_gsm_ss_numberNotAvailableDueToInterworking,
31117 { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking_element",
31118 FT_NONE, BASE_NONE, NULL, 0,
31119 NULL, HFILL }},
31120 { &hf_gsm_ss_presentationRestrictedAddress,
31121 { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress_element",
31122 FT_NONE, BASE_NONE, NULL, 0,
31123 "RemotePartyNumber", HFILL }},
31124 { &hf_gsm_ss_partyNumber,
31125 { "partyNumber", "gsm_ss.partyNumber",
31126 FT_BYTES, BASE_NONE, NULL, 0,
31127 "ISDN_AddressString", HFILL }},
31128 { &hf_gsm_ss_partyNumberSubaddress,
31129 { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
31130 FT_BYTES, BASE_NONE, NULL, 0,
31131 "ISDN_SubaddressString", HFILL }},
31132 { &hf_gsm_ss_deflectedToNumber,
31133 { "deflectedToNumber", "gsm_ss.deflectedToNumber",
31134 FT_BYTES, BASE_NONE, NULL, 0,
31135 "AddressString", HFILL }},
31136 { &hf_gsm_ss_deflectedToSubaddress,
31137 { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
31138 FT_BYTES, BASE_NONE, NULL, 0,
31139 "ISDN_SubaddressString", HFILL }},
31140 { &hf_gsm_ss_uUS_Service,
31141 { "uUS-Service", "gsm_ss.uUS_Service",
31142 FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
31143 NULL, HFILL }},
31144 { &hf_gsm_ss_uUS_Required,
31145 { "uUS-Required", "gsm_ss.uUS_Required",
31146 FT_BOOLEAN, BASE_NONE, NULL, 0,
31147 "BOOLEAN", HFILL }},
31148 { &hf_gsm_ss_notificationType,
31149 { "notificationType", "gsm_ss.notificationType",
31150 FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
31151 "NotificationToMSUser", HFILL }},
31152 { &hf_gsm_ss_locationType,
31153 { "locationType", "gsm_ss.locationType_element",
31154 FT_NONE, BASE_NONE, NULL, 0,
31155 NULL, HFILL }},
31156 { &hf_gsm_ss_lcsClientExternalID,
31157 { "lcsClientExternalID", "gsm_ss.lcsClientExternalID_element",
31158 FT_NONE, BASE_NONE, NULL, 0,
31159 NULL, HFILL }},
31160 { &hf_gsm_ss_lcsClientName,
31161 { "lcsClientName", "gsm_ss.lcsClientName_element",
31162 FT_NONE, BASE_NONE, NULL, 0,
31163 NULL, HFILL }},
31164 { &hf_gsm_ss_lcsRequestorID,
31165 { "lcsRequestorID", "gsm_ss.lcsRequestorID_element",
31166 FT_NONE, BASE_NONE, NULL, 0,
31167 NULL, HFILL }},
31168 { &hf_gsm_ss_lcsCodeword,
31169 { "lcsCodeword", "gsm_ss.lcsCodeword_element",
31170 FT_NONE, BASE_NONE, NULL, 0,
31171 NULL, HFILL }},
31172 { &hf_gsm_ss_lcsServiceTypeID,
31173 { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
31174 FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
31175 NULL, HFILL }},
31176 { &hf_gsm_ss_deferredLocationExt,
31177 { "deferredLocationExt", "gsm_ss.deferredLocationExt",
31178 FT_BYTES, BASE_NONE, NULL, 0,
31179 NULL, HFILL }},
31180 { &hf_gsm_ss_verificationResponse,
31181 { "verificationResponse", "gsm_ss.verificationResponse",
31182 FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
31183 NULL, HFILL }},
31184 { &hf_gsm_ss_molr_Type,
31185 { "molr-Type", "gsm_ss.molr_Type",
31186 FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
31187 NULL, HFILL }},
31188 { &hf_gsm_ss_locationMethod,
31189 { "locationMethod", "gsm_ss.locationMethod",
31190 FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
31191 NULL, HFILL }},
31192 { &hf_gsm_ss_lcs_QoS,
31193 { "lcs-QoS", "gsm_ss.lcs_QoS_element",
31194 FT_NONE, BASE_NONE, NULL, 0,
31195 NULL, HFILL }},
31196 { &hf_gsm_ss_mlc_Number,
31197 { "mlc-Number", "gsm_ss.mlc_Number",
31198 FT_BYTES, BASE_NONE, NULL, 0,
31199 "ISDN_AddressString", HFILL }},
31200 { &hf_gsm_ss_gpsAssistanceData,
31201 { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
31202 FT_BYTES, BASE_NONE, NULL, 0,
31203 NULL, HFILL }},
31204 { &hf_gsm_ss_supportedGADShapes,
31205 { "supportedGADShapes", "gsm_ss.supportedGADShapes",
31206 FT_BYTES, BASE_NONE, NULL, 0,
31207 NULL, HFILL }},
31208 { &hf_gsm_ss_ageOfLocationInfo,
31209 { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
31210 FT_UINT32, BASE_DEC, NULL, 0,
31211 "AgeOfLocationInformation", HFILL }},
31212 { &hf_gsm_ss_pseudonymIndicator,
31213 { "pseudonymIndicator", "gsm_ss.pseudonymIndicator_element",
31214 FT_NONE, BASE_NONE, NULL, 0,
31215 NULL, HFILL }},
31216 { &hf_gsm_ss_h_gmlc_address,
31217 { "h-gmlc-address", "gsm_ss.h_gmlc_address",
31218 FT_BYTES, BASE_NONE, NULL, 0,
31219 "GSN_Address", HFILL }},
31220 { &hf_gsm_ss_locationEstimate,
31221 { "locationEstimate", "gsm_ss.locationEstimate",
31222 FT_BYTES, BASE_NONE, NULL, 0,
31223 "Ext_GeographicalInformation", HFILL }},
31224 { &hf_gsm_ss_velocityEstimate,
31225 { "velocityEstimate", "gsm_ss.velocityEstimate",
31226 FT_BYTES, BASE_NONE, NULL, 0,
31227 NULL, HFILL }},
31228 { &hf_gsm_ss_referenceNumber,
31229 { "referenceNumber", "gsm_ss.referenceNumber",
31230 FT_BYTES, BASE_NONE, NULL, 0,
31231 "LCS_ReferenceNumber", HFILL }},
31232 { &hf_gsm_ss_periodicLDRInfo,
31233 { "periodicLDRInfo", "gsm_ss.periodicLDRInfo_element",
31234 FT_NONE, BASE_NONE, NULL, 0,
31235 NULL, HFILL }},
31236 { &hf_gsm_ss_locationUpdateRequest,
31237 { "locationUpdateRequest", "gsm_ss.locationUpdateRequest_element",
31238 FT_NONE, BASE_NONE, NULL, 0,
31239 NULL, HFILL }},
31240 { &hf_gsm_ss_sequenceNumber,
31241 { "sequenceNumber", "gsm_ss.sequenceNumber",
31242 FT_UINT32, BASE_DEC, NULL, 0,
31243 NULL, HFILL }},
31244 { &hf_gsm_ss_terminationCause,
31245 { "terminationCause", "gsm_ss.terminationCause",
31246 FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
31247 NULL, HFILL }},
31248 { &hf_gsm_ss_mo_lrShortCircuit,
31249 { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit_element",
31250 FT_NONE, BASE_NONE, NULL, 0,
31251 NULL, HFILL }},
31252 { &hf_gsm_ss_ganssAssistanceData,
31253 { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
31254 FT_BYTES, BASE_NONE, NULL, 0,
31255 NULL, HFILL }},
31256 { &hf_gsm_ss_multiplePositioningProtocolPDUs,
31257 { "multiplePositioningProtocolPDUs", "gsm_ss.multiplePositioningProtocolPDUs",
31258 FT_UINT32, BASE_DEC, NULL, 0,
31259 NULL, HFILL }},
31260 { &hf_gsm_ss_locationInfo,
31261 { "locationInfo", "gsm_ss.locationInfo",
31262 FT_BYTES, BASE_NONE, NULL, 0,
31263 "Location_Info", HFILL }},
31264 { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item,
31265 { "PositioningProtocolPDU", "gsm_ss.PositioningProtocolPDU",
31266 FT_BYTES, BASE_NONE, NULL, 0,
31267 NULL, HFILL }},
31268 { &hf_gsm_ss_decipheringKeys,
31269 { "decipheringKeys", "gsm_ss.decipheringKeys",
31270 FT_BYTES, BASE_NONE, NULL, 0,
31271 NULL, HFILL }},
31272 { &hf_gsm_ss_add_LocationEstimate,
31273 { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
31274 FT_BYTES, BASE_NONE, NULL, 0,
31275 "Add_GeographicalInformation", HFILL }},
31276 { &hf_gsm_ss_reportingPLMNList,
31277 { "reportingPLMNList", "gsm_ss.reportingPLMNList_element",
31278 FT_NONE, BASE_NONE, NULL, 0,
31279 NULL, HFILL }},
31280 { &hf_gsm_ss_deferredLocationEventType,
31281 { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
31282 FT_BYTES, BASE_NONE, NULL, 0,
31283 NULL, HFILL }},
31284 { &hf_gsm_ss_areaEventInfo,
31285 { "areaEventInfo", "gsm_ss.areaEventInfo_element",
31286 FT_NONE, BASE_NONE, NULL, 0,
31287 NULL, HFILL }},
31288 { &hf_gsm_ss_qoS,
31289 { "qoS", "gsm_ss.qoS_element",
31290 FT_NONE, BASE_NONE, NULL, 0,
31291 "LCS_QoS", HFILL }},
31292 { &hf_gsm_ss_periodicLocation,
31293 { "periodicLocation", "gsm_ss.periodicLocation_element",
31294 FT_NONE, BASE_NONE, NULL, 0,
31295 NULL, HFILL }},
31296 { &hf_gsm_ss_areaEventReporting,
31297 { "areaEventReporting", "gsm_ss.areaEventReporting_element",
31298 FT_NONE, BASE_NONE, NULL, 0,
31299 NULL, HFILL }},
31300 { &hf_gsm_ss_motionEventReporting,
31301 { "motionEventReporting", "gsm_ss.motionEventReporting_element",
31302 FT_NONE, BASE_NONE, NULL, 0,
31303 NULL, HFILL }},
31304 { &hf_gsm_ss_areaList,
31305 { "areaList", "gsm_ss.areaList",
31306 FT_UINT32, BASE_DEC, NULL, 0,
31307 NULL, HFILL }},
31308 { &hf_gsm_ss_occurrenceInfo,
31309 { "occurrenceInfo", "gsm_ss.occurrenceInfo",
31310 FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
31311 NULL, HFILL }},
31312 { &hf_gsm_ss_intervalTime,
31313 { "intervalTime", "gsm_ss.intervalTime",
31314 FT_UINT32, BASE_DEC, NULL, 0,
31315 NULL, HFILL }},
31316 { &hf_gsm_ss_maximumInterval,
31317 { "maximumInterval", "gsm_ss.maximumInterval",
31318 FT_UINT32, BASE_DEC, NULL, 0,
31319 NULL, HFILL }},
31320 { &hf_gsm_ss_samplingInterval,
31321 { "samplingInterval", "gsm_ss.samplingInterval",
31322 FT_UINT32, BASE_DEC, NULL, 0,
31323 NULL, HFILL }},
31324 { &hf_gsm_ss_duration,
31325 { "duration", "gsm_ss.duration",
31326 FT_UINT32, BASE_DEC, NULL, 0,
31327 NULL, HFILL }},
31328 { &hf_gsm_ss_AreaList_item,
31329 { "Area", "gsm_ss.Area_element",
31330 FT_NONE, BASE_NONE, NULL, 0,
31331 NULL, HFILL }},
31332 { &hf_gsm_ss_areaType,
31333 { "areaType", "gsm_ss.areaType",
31334 FT_UINT32, BASE_DEC, VALS(gsm_ss_AreaType_vals), 0,
31335 NULL, HFILL }},
31336 { &hf_gsm_ss_areaIdentification,
31337 { "areaIdentification", "gsm_ss.areaIdentification",
31338 FT_BYTES, BASE_NONE, NULL, 0,
31339 NULL, HFILL }},
31340 { &hf_gsm_ss_linearDistance,
31341 { "linearDistance", "gsm_ss.linearDistance",
31342 FT_UINT32, BASE_DEC, NULL, 0,
31343 NULL, HFILL }},
31344 { &hf_gsm_ss_DeferredLocationExt_motionEvent,
31345 { "motionEvent", "gsm.ss.DeferredLocationExt.motionEvent",
31346 FT_BOOLEAN, 8, NULL, 0x80,
31347 NULL, HFILL }},
31348 { &hf_gsm_ss_Location_Info_locationEstimate,
31349 { "locationEstimate", "gsm.ss.Location.Info.locationEstimate",
31350 FT_BOOLEAN, 8, NULL, 0x80,
31351 NULL, HFILL }},
31353 /* --- Module EricssonMAP --- --- --- */
31355 { &hf_gsm_map_ericsson_imei,
31356 { "imei", "gsm_map.ericsson.imei",
31357 FT_BYTES, BASE_NONE, NULL, 0,
31358 NULL, HFILL }},
31359 { &hf_gsm_map_ericsson_requestedEquipmentInfo,
31360 { "requestedEquipmentInfo", "gsm_map.ericsson.requestedEquipmentInfo",
31361 FT_BYTES, BASE_NONE, NULL, 0,
31362 NULL, HFILL }},
31363 { &hf_gsm_map_ericsson_imsi,
31364 { "imsi", "gsm_map.ericsson.imsi",
31365 FT_BYTES, BASE_NONE, NULL, 0,
31366 NULL, HFILL }},
31367 { &hf_gsm_map_ericsson_locationInformation,
31368 { "locationInformation", "gsm_map.ericsson.locationInformation",
31369 FT_BYTES, BASE_NONE, NULL, 0,
31370 NULL, HFILL }},
31371 { &hf_gsm_map_ericsson_extensionContainer,
31372 { "extensionContainer", "gsm_map.ericsson.extensionContainer_element",
31373 FT_NONE, BASE_NONE, NULL, 0,
31374 NULL, HFILL }},
31375 { &hf_gsm_map_ericsson_isdArgType,
31376 { "isdArgType", "gsm_map.ericsson.isdArgType",
31377 FT_UINT32, BASE_DEC, NULL, 0,
31378 NULL, HFILL }},
31379 { &hf_gsm_map_ericsson_isdResType,
31380 { "isdResType", "gsm_map.ericsson.isdResType",
31381 FT_UINT32, BASE_DEC, NULL, 0,
31382 NULL, HFILL }},
31383 { &hf_gsm_map_ericsson_dsdArgType,
31384 { "dsdArgType", "gsm_map.ericsson.dsdArgType",
31385 FT_UINT32, BASE_DEC, NULL, 0,
31386 NULL, HFILL }},
31387 { &hf_gsm_map_ericsson_sriArgType,
31388 { "sriArgType", "gsm_map.ericsson.sriArgType",
31389 FT_UINT32, BASE_DEC, NULL, 0,
31390 NULL, HFILL }},
31391 { &hf_gsm_map_ericsson_sriResType,
31392 { "sriResType", "gsm_map.ericsson.sriResType",
31393 FT_UINT32, BASE_DEC, NULL, 0,
31394 NULL, HFILL }},
31395 { &hf_gsm_map_ericsson_prnArgType,
31396 { "prnArgType", "gsm_map.ericsson.prnArgType",
31397 FT_UINT32, BASE_DEC, NULL, 0,
31398 NULL, HFILL }},
31399 { &hf_gsm_map_ericsson_ulArgType,
31400 { "ulArgType", "gsm_map.ericsson.ulArgType",
31401 FT_UINT32, BASE_DEC, NULL, 0,
31402 NULL, HFILL }},
31403 { &hf_gsm_map_ericsson_rdArgType,
31404 { "rdArgType", "gsm_map.ericsson.rdArgType_element",
31405 FT_NONE, BASE_NONE, NULL, 0,
31406 NULL, HFILL }},
31407 { &hf_gsm_map_ericsson_saiArgType,
31408 { "saiArgType", "gsm_map.ericsson.saiArgType_element",
31409 FT_NONE, BASE_NONE, NULL, 0,
31410 NULL, HFILL }},
31411 { &hf_gsm_map_ericsson_saiResType,
31412 { "saiResType", "gsm_map.ericsson.saiResType_element",
31413 FT_NONE, BASE_NONE, NULL, 0,
31414 NULL, HFILL }},
31415 { &hf_gsm_map_ericsson_atiArgType,
31416 { "atiArgType", "gsm_map.ericsson.atiArgType_element",
31417 FT_NONE, BASE_NONE, NULL, 0,
31418 NULL, HFILL }},
31419 { &hf_gsm_map_ericsson_atiResType,
31420 { "atiResType", "gsm_map.ericsson.atiResType_element",
31421 FT_NONE, BASE_NONE, NULL, 0,
31422 NULL, HFILL }},
31423 { &hf_gsm_map_ericsson_extAtiArgType,
31424 { "extAtiArgType", "gsm_map.ericsson.extAtiArgType",
31425 FT_UINT32, BASE_DEC, NULL, 0,
31426 NULL, HFILL }},
31427 { &hf_gsm_map_ericsson_IsdArgType_item,
31428 { "IsdArgData", "gsm_map.ericsson.IsdArgData_element",
31429 FT_NONE, BASE_NONE, NULL, 0,
31430 NULL, HFILL }},
31431 { &hf_gsm_map_ericsson_privateFeatureCode,
31432 { "privateFeatureCode", "gsm_map.ericsson.privateFeatureCode",
31433 FT_BYTES, BASE_NONE, NULL, 0,
31434 NULL, HFILL }},
31435 { &hf_gsm_map_ericsson_privateFeatureData,
31436 { "privateFeatureData", "gsm_map.ericsson.privateFeatureData",
31437 FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_PrivateFeatureData_vals), 0,
31438 NULL, HFILL }},
31439 { &hf_gsm_map_ericsson_subscriptionTypeInfo,
31440 { "subscriptionTypeInfo", "gsm_map.ericsson.subscriptionTypeInfo_element",
31441 FT_NONE, BASE_NONE, NULL, 0,
31442 NULL, HFILL }},
31443 { &hf_gsm_map_ericsson_oickInfo,
31444 { "oickInfo", "gsm_map.ericsson.oickInfo_element",
31445 FT_NONE, BASE_NONE, NULL, 0,
31446 NULL, HFILL }},
31447 { &hf_gsm_map_ericsson_ss_Status,
31448 { "ss-Status", "gsm_map.ericsson.ss_Status",
31449 FT_BYTES, BASE_NONE, NULL, 0,
31450 "Ext_SS_Status", HFILL }},
31451 { &hf_gsm_map_ericsson_inCategoryKey,
31452 { "inCategoryKey", "gsm_map.ericsson.inCategoryKey",
31453 FT_BYTES, BASE_NONE, NULL, 0,
31454 NULL, HFILL }},
31455 { &hf_gsm_map_ericsson_subscriptionType,
31456 { "subscriptionType", "gsm_map.ericsson.subscriptionType",
31457 FT_BYTES, BASE_NONE, NULL, 0,
31458 NULL, HFILL }},
31459 { &hf_gsm_map_ericsson_IsdResType_item,
31460 { "IsdResData", "gsm_map.ericsson.IsdResData_element",
31461 FT_NONE, BASE_NONE, NULL, 0,
31462 NULL, HFILL }},
31463 { &hf_gsm_map_ericsson_supportedPrivateFeature,
31464 { "supportedPrivateFeature", "gsm_map.ericsson.supportedPrivateFeature",
31465 FT_BYTES, BASE_NONE, NULL, 0,
31466 "PrivateFeatureCode", HFILL }},
31467 { &hf_gsm_map_ericsson_DsdArgType_item,
31468 { "DsdArgData", "gsm_map.ericsson.DsdArgData_element",
31469 FT_NONE, BASE_NONE, NULL, 0,
31470 NULL, HFILL }},
31471 { &hf_gsm_map_ericsson_privateFeatureWithdraw,
31472 { "privateFeatureWithdraw", "gsm_map.ericsson.privateFeatureWithdraw",
31473 FT_BYTES, BASE_NONE, NULL, 0,
31474 "PrivateFeatureCode", HFILL }},
31475 { &hf_gsm_map_ericsson_SRIArgType_item,
31476 { "SriArgData", "gsm_map.ericsson.SriArgData_element",
31477 FT_NONE, BASE_NONE, NULL, 0,
31478 NULL, HFILL }},
31479 { &hf_gsm_map_ericsson_extraNetworkInfo,
31480 { "extraNetworkInfo", "gsm_map.ericsson.extraNetworkInfo_element",
31481 FT_NONE, BASE_NONE, NULL, 0,
31482 "ExtraSignalInfo", HFILL }},
31483 { &hf_gsm_map_ericsson_SRIResType_item,
31484 { "SriResData", "gsm_map.ericsson.SriResData_element",
31485 FT_NONE, BASE_NONE, NULL, 0,
31486 NULL, HFILL }},
31487 { &hf_gsm_map_ericsson_PrnArgType_item,
31488 { "PrnArgData", "gsm_map.ericsson.PrnArgData_element",
31489 FT_NONE, BASE_NONE, NULL, 0,
31490 NULL, HFILL }},
31491 { &hf_gsm_map_ericsson_UlArgType_item,
31492 { "UlArgData", "gsm_map.ericsson.UlArgData_element",
31493 FT_NONE, BASE_NONE, NULL, 0,
31494 NULL, HFILL }},
31495 { &hf_gsm_map_ericsson_privateFeatureUlArgData,
31496 { "privateFeatureUlArgData", "gsm_map.ericsson.privateFeatureUlArgData",
31497 FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_PrivateFeatureUlArgData_vals), 0,
31498 NULL, HFILL }},
31499 { &hf_gsm_map_ericsson_adc,
31500 { "adc", "gsm_map.ericsson.adc",
31501 FT_BYTES, BASE_NONE, NULL, 0,
31502 "IMEI", HFILL }},
31503 { &hf_gsm_map_ericsson_protocolId,
31504 { "protocolId", "gsm_map.ericsson.protocolId",
31505 FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_ExtraProtocolId_vals), 0,
31506 "ExtraProtocolId", HFILL }},
31507 { &hf_gsm_map_ericsson_signalInfo,
31508 { "signalInfo", "gsm_map.ericsson.signalInfo",
31509 FT_BYTES, BASE_NONE, NULL, 0,
31510 NULL, HFILL }},
31511 { &hf_gsm_map_ericsson_msisdn,
31512 { "msisdn", "gsm_map.ericsson.msisdn_element",
31513 FT_NONE, BASE_NONE, NULL, 0,
31514 NULL, HFILL }},
31515 { &hf_gsm_map_ericsson_noAuthenVectorsRequested,
31516 { "noAuthenVectorsRequested", "gsm_map.ericsson.noAuthenVectorsRequested_element",
31517 FT_NONE, BASE_NONE, NULL, 0,
31518 NULL, HFILL }},
31519 { &hf_gsm_map_ericsson_msIsdn,
31520 { "msIsdn", "gsm_map.ericsson.msIsdn",
31521 FT_BYTES, BASE_NONE, NULL, 0,
31522 "ISDN_AddressString", HFILL }},
31523 { &hf_gsm_map_ericsson_requestedInfoType,
31524 { "requestedInfoType", "gsm_map.ericsson.requestedInfoType_element",
31525 FT_NONE, BASE_NONE, NULL, 0,
31526 NULL, HFILL }},
31527 { &hf_gsm_map_ericsson_toBeDecided,
31528 { "toBeDecided", "gsm_map.ericsson.toBeDecided_element",
31529 FT_NONE, BASE_NONE, NULL, 0,
31530 NULL, HFILL }},
31531 { &hf_gsm_map_ericsson_toBeDecidedOne,
31532 { "toBeDecidedOne", "gsm_map.ericsson.toBeDecidedOne_element",
31533 FT_NONE, BASE_NONE, NULL, 0,
31534 NULL, HFILL }},
31535 { &hf_gsm_map_ericsson_sgsnNumber,
31536 { "sgsnNumber", "gsm_map.ericsson.sgsnNumber_element",
31537 FT_NONE, BASE_NONE, NULL, 0,
31538 NULL, HFILL }},
31539 { &hf_gsm_map_ericsson_ExtAtiArgType_item,
31540 { "AtiArgData", "gsm_map.ericsson.AtiArgData_element",
31541 FT_NONE, BASE_NONE, NULL, 0,
31542 NULL, HFILL }},
31544 /* --- Module NokiaMAP-Extensions --- --- --- */
31546 { &hf_NokiaMAP_Extensions_alsLineIndicator,
31547 { "alsLineIndicator", "NokiaMAP-Extensions.alsLineIndicator_element",
31548 FT_NONE, BASE_NONE, NULL, 0,
31549 NULL, HFILL }},
31550 { &hf_NokiaMAP_Extensions_routingCategory,
31551 { "routingCategory", "NokiaMAP-Extensions.routingCategory",
31552 FT_BYTES, BASE_NONE, NULL, 0,
31553 NULL, HFILL }},
31554 { &hf_NokiaMAP_Extensions_serviceList,
31555 { "serviceList", "NokiaMAP-Extensions.serviceList",
31556 FT_BYTES, BASE_NONE, NULL, 0,
31557 "MAPserviceList", HFILL }},
31558 { &hf_NokiaMAP_Extensions_serv_info_list,
31559 { "serv-info-list", "NokiaMAP-Extensions.serv_info_list",
31560 FT_UINT32, BASE_DEC, NULL, 0,
31561 "ServiceListWithInfo", HFILL }},
31562 { &hf_NokiaMAP_Extensions_extRoutingCategory,
31563 { "extRoutingCategory", "NokiaMAP-Extensions.extRoutingCategory",
31564 FT_UINT32, BASE_DEC, NULL, 0,
31565 NULL, HFILL }},
31566 { &hf_NokiaMAP_Extensions_ownMSISDN,
31567 { "ownMSISDN", "NokiaMAP-Extensions.ownMSISDN",
31568 FT_BYTES, BASE_NONE, NULL, 0,
31569 "ISDN_AddressString", HFILL }},
31570 { &hf_NokiaMAP_Extensions_mwd_Set,
31571 { "mwd-Set", "NokiaMAP-Extensions.mwd_Set_element",
31572 FT_NONE, BASE_NONE, NULL, 0,
31573 NULL, HFILL }},
31574 { &hf_NokiaMAP_Extensions_ChargingAreaList_item,
31575 { "ChargingArea", "NokiaMAP-Extensions.ChargingArea",
31576 FT_UINT32, BASE_DEC, NULL, 0,
31577 NULL, HFILL }},
31578 { &hf_NokiaMAP_Extensions_chargingAreaList,
31579 { "chargingAreaList", "NokiaMAP-Extensions.chargingAreaList",
31580 FT_UINT32, BASE_DEC, NULL, 0,
31581 NULL, HFILL }},
31582 { &hf_NokiaMAP_Extensions_inTriggerKey,
31583 { "inTriggerKey", "NokiaMAP-Extensions.inTriggerKey",
31584 FT_UINT32, BASE_DEC, NULL, 0,
31585 NULL, HFILL }},
31586 { &hf_NokiaMAP_Extensions_pnpIndex,
31587 { "pnpIndex", "NokiaMAP-Extensions.pnpIndex",
31588 FT_BYTES, BASE_NONE, NULL, 0,
31589 NULL, HFILL }},
31590 { &hf_NokiaMAP_Extensions_callRedirectionIndex,
31591 { "callRedirectionIndex", "NokiaMAP-Extensions.callRedirectionIndex",
31592 FT_UINT32, BASE_DEC, NULL, 0,
31593 NULL, HFILL }},
31594 { &hf_NokiaMAP_Extensions_regionalChargingData,
31595 { "regionalChargingData", "NokiaMAP-Extensions.regionalChargingData_element",
31596 FT_NONE, BASE_NONE, NULL, 0,
31597 NULL, HFILL }},
31598 { &hf_NokiaMAP_Extensions_callForwardingOverride,
31599 { "callForwardingOverride", "NokiaMAP-Extensions.callForwardingOverride_element",
31600 FT_NONE, BASE_NONE, NULL, 0,
31601 NULL, HFILL }},
31602 { &hf_NokiaMAP_Extensions_in_Capability,
31603 { "in-Capability", "NokiaMAP-Extensions.in_Capability_element",
31604 FT_NONE, BASE_NONE, NULL, 0,
31605 NULL, HFILL }},
31606 { &hf_NokiaMAP_Extensions_callingCategory,
31607 { "callingCategory", "NokiaMAP-Extensions.callingCategory",
31608 FT_BYTES, BASE_NONE, NULL, 0,
31609 NULL, HFILL }},
31610 { &hf_NokiaMAP_Extensions_internalServiceIndicator,
31611 { "internalServiceIndicator", "NokiaMAP-Extensions.internalServiceIndicator",
31612 FT_BYTES, BASE_NONE, NULL, 0,
31613 NULL, HFILL }},
31614 { &hf_NokiaMAP_Extensions_srbtSupportIndicator,
31615 { "srbtSupportIndicator", "NokiaMAP-Extensions.srbtSupportIndicator_element",
31616 FT_NONE, BASE_NONE, NULL, 0,
31617 NULL, HFILL }},
31618 { &hf_NokiaMAP_Extensions_gmscSupportIndicator,
31619 { "gmscSupportIndicator", "NokiaMAP-Extensions.gmscSupportIndicator_element",
31620 FT_NONE, BASE_NONE, NULL, 0,
31621 NULL, HFILL }},
31622 { &hf_NokiaMAP_Extensions_protocolId,
31623 { "protocolId", "NokiaMAP-Extensions.protocolId",
31624 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_ExtraProtocolId_vals), 0,
31625 "ExtraProtocolId", HFILL }},
31626 { &hf_NokiaMAP_Extensions_signalInfo,
31627 { "signalInfo", "NokiaMAP-Extensions.signalInfo",
31628 FT_BYTES, BASE_NONE, NULL, 0,
31629 NULL, HFILL }},
31630 { &hf_NokiaMAP_Extensions_cug_Interlock,
31631 { "cug-Interlock", "NokiaMAP-Extensions.cug_Interlock",
31632 FT_BYTES, BASE_NONE, NULL, 0,
31633 NULL, HFILL }},
31634 { &hf_NokiaMAP_Extensions_cug_OutgoingAccess,
31635 { "cug-OutgoingAccess", "NokiaMAP-Extensions.cug_OutgoingAccess",
31636 FT_BOOLEAN, BASE_NONE, NULL, 0,
31637 "BOOLEAN", HFILL }},
31638 { &hf_NokiaMAP_Extensions_cug_CallInfo,
31639 { "cug-CallInfo", "NokiaMAP-Extensions.cug_CallInfo",
31640 FT_BYTES, BASE_NONE, NULL, 0,
31641 NULL, HFILL }},
31642 { &hf_NokiaMAP_Extensions_vlrNumber,
31643 { "vlrNumber", "NokiaMAP-Extensions.vlrNumber",
31644 FT_BYTES, BASE_NONE, NULL, 0,
31645 "ISDN_AddressString", HFILL }},
31646 { &hf_NokiaMAP_Extensions_activeSs,
31647 { "activeSs", "NokiaMAP-Extensions.activeSs",
31648 FT_BYTES, BASE_NONE, NULL, 0,
31649 "ActiveSS_List", HFILL }},
31650 { &hf_NokiaMAP_Extensions_traceReference,
31651 { "traceReference", "NokiaMAP-Extensions.traceReference_element",
31652 FT_NONE, BASE_NONE, NULL, 0,
31653 NULL, HFILL }},
31654 { &hf_NokiaMAP_Extensions_traceType,
31655 { "traceType", "NokiaMAP-Extensions.traceType_element",
31656 FT_NONE, BASE_NONE, NULL, 0,
31657 NULL, HFILL }},
31658 { &hf_NokiaMAP_Extensions_omc_Id,
31659 { "omc-Id", "NokiaMAP-Extensions.omc_Id",
31660 FT_BYTES, BASE_NONE, NULL, 0,
31661 "AddressString", HFILL }},
31662 { &hf_NokiaMAP_Extensions_hotBilling,
31663 { "hotBilling", "NokiaMAP-Extensions.hotBilling",
31664 FT_BOOLEAN, BASE_NONE, NULL, 0,
31665 "BOOLEAN", HFILL }},
31666 { &hf_NokiaMAP_Extensions_cfoIsDone,
31667 { "cfoIsDone", "NokiaMAP-Extensions.cfoIsDone",
31668 FT_BOOLEAN, BASE_NONE, NULL, 0,
31669 "BOOLEAN", HFILL }},
31670 { &hf_NokiaMAP_Extensions_cfInCug,
31671 { "cfInCug", "NokiaMAP-Extensions.cfInCug",
31672 FT_BOOLEAN, BASE_NONE, NULL, 0,
31673 "BOOLEAN", HFILL }},
31674 { &hf_NokiaMAP_Extensions_basicService,
31675 { "basicService", "NokiaMAP-Extensions.basicService",
31676 FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
31677 "BasicServiceCode", HFILL }},
31678 { &hf_NokiaMAP_Extensions_category,
31679 { "category", "NokiaMAP-Extensions.category_element",
31680 FT_NONE, BASE_NONE, NULL, 0,
31681 NULL, HFILL }},
31682 { &hf_NokiaMAP_Extensions_nokia_CUG,
31683 { "nokia-CUG", "NokiaMAP-Extensions.nokia_CUG_element",
31684 FT_NONE, BASE_NONE, NULL, 0,
31685 "Nokia_CUG_Data", HFILL }},
31686 { &hf_NokiaMAP_Extensions_noBarrings,
31687 { "noBarrings", "NokiaMAP-Extensions.noBarrings_element",
31688 FT_NONE, BASE_NONE, NULL, 0,
31689 NULL, HFILL }},
31690 { &hf_NokiaMAP_Extensions_odb_Data,
31691 { "odb-Data", "NokiaMAP-Extensions.odb_Data_element",
31692 FT_NONE, BASE_NONE, NULL, 0,
31693 NULL, HFILL }},
31694 { &hf_NokiaMAP_Extensions_fraudData,
31695 { "fraudData", "NokiaMAP-Extensions.fraudData_element",
31696 FT_NONE, BASE_NONE, NULL, 0,
31697 NULL, HFILL }},
31698 { &hf_NokiaMAP_Extensions_leaId,
31699 { "leaId", "NokiaMAP-Extensions.leaId",
31700 FT_UINT32, BASE_DEC, NULL, 0,
31701 NULL, HFILL }},
31702 { &hf_NokiaMAP_Extensions_olcmInfoTable,
31703 { "olcmInfoTable", "NokiaMAP-Extensions.olcmInfoTable",
31704 FT_UINT32, BASE_DEC, NULL, 0,
31705 NULL, HFILL }},
31706 { &hf_NokiaMAP_Extensions_commonMSISDN,
31707 { "commonMSISDN", "NokiaMAP-Extensions.commonMSISDN",
31708 FT_BYTES, BASE_NONE, NULL, 0,
31709 "ISDN_AddressString", HFILL }},
31710 { &hf_NokiaMAP_Extensions_rgData,
31711 { "rgData", "NokiaMAP-Extensions.rgData_element",
31712 FT_NONE, BASE_NONE, NULL, 0,
31713 NULL, HFILL }},
31714 { &hf_NokiaMAP_Extensions_olcmTraceReference,
31715 { "olcmTraceReference", "NokiaMAP-Extensions.olcmTraceReference",
31716 FT_BYTES, BASE_NONE, NULL, 0,
31717 NULL, HFILL }},
31718 { &hf_NokiaMAP_Extensions_noAnswerTimer,
31719 { "noAnswerTimer", "NokiaMAP-Extensions.noAnswerTimer",
31720 FT_BYTES, BASE_NONE, NULL, 0,
31721 NULL, HFILL }},
31722 { &hf_NokiaMAP_Extensions_memberList,
31723 { "memberList", "NokiaMAP-Extensions.memberList",
31724 FT_UINT32, BASE_DEC, NULL, 0,
31725 NULL, HFILL }},
31726 { &hf_NokiaMAP_Extensions_alertingMethod,
31727 { "alertingMethod", "NokiaMAP-Extensions.alertingMethod",
31728 FT_BYTES, BASE_NONE, NULL, 0,
31729 NULL, HFILL }},
31730 { &hf_NokiaMAP_Extensions_userType,
31731 { "userType", "NokiaMAP-Extensions.userType",
31732 FT_BYTES, BASE_NONE, NULL, 0,
31733 NULL, HFILL }},
31734 { &hf_NokiaMAP_Extensions_divertedToNbr,
31735 { "divertedToNbr", "NokiaMAP-Extensions.divertedToNbr",
31736 FT_BYTES, BASE_NONE, NULL, 0,
31737 "ISDN_AddressString", HFILL }},
31738 { &hf_NokiaMAP_Extensions_memberOfSuppression,
31739 { "memberOfSuppression", "NokiaMAP-Extensions.memberOfSuppression_element",
31740 FT_NONE, BASE_NONE, NULL, 0,
31741 NULL, HFILL }},
31742 { &hf_NokiaMAP_Extensions_ringbacktone,
31743 { "ringbacktone", "NokiaMAP-Extensions.ringbacktone_element",
31744 FT_NONE, BASE_NONE, NULL, 0,
31745 NULL, HFILL }},
31746 { &hf_NokiaMAP_Extensions_MemberList_item,
31747 { "ISDN-AddressString", "NokiaMAP-Extensions.ISDN_AddressString",
31748 FT_BYTES, BASE_NONE, NULL, 0,
31749 NULL, HFILL }},
31750 { &hf_NokiaMAP_Extensions_termination,
31751 { "termination", "NokiaMAP-Extensions.termination",
31752 FT_BYTES, BASE_NONE, NULL, 0,
31753 "OCTET_STRING_SIZE_1", HFILL }},
31754 { &hf_NokiaMAP_Extensions_OlcmInfoTable_item,
31755 { "OlcmInfo", "NokiaMAP-Extensions.OlcmInfo_element",
31756 FT_NONE, BASE_NONE, NULL, 0,
31757 NULL, HFILL }},
31758 { &hf_NokiaMAP_Extensions_olcmActive,
31759 { "olcmActive", "NokiaMAP-Extensions.olcmActive_element",
31760 FT_NONE, BASE_NONE, NULL, 0,
31761 NULL, HFILL }},
31762 { &hf_NokiaMAP_Extensions_moc,
31763 { "moc", "NokiaMAP-Extensions.moc_element",
31764 FT_NONE, BASE_NONE, NULL, 0,
31765 "FraudData", HFILL }},
31766 { &hf_NokiaMAP_Extensions_cf,
31767 { "cf", "NokiaMAP-Extensions.cf_element",
31768 FT_NONE, BASE_NONE, NULL, 0,
31769 "FraudData", HFILL }},
31770 { &hf_NokiaMAP_Extensions_ct,
31771 { "ct", "NokiaMAP-Extensions.ct_element",
31772 FT_NONE, BASE_NONE, NULL, 0,
31773 "FraudData", HFILL }},
31774 { &hf_NokiaMAP_Extensions_time,
31775 { "time", "NokiaMAP-Extensions.time",
31776 FT_UINT32, BASE_DEC, NULL, 0,
31777 "TimeLimit", HFILL }},
31778 { &hf_NokiaMAP_Extensions_timeAction,
31779 { "timeAction", "NokiaMAP-Extensions.timeAction",
31780 FT_BYTES, BASE_NONE, NULL, 0,
31781 "ActionType", HFILL }},
31782 { &hf_NokiaMAP_Extensions_maxCount,
31783 { "maxCount", "NokiaMAP-Extensions.maxCount",
31784 FT_UINT32, BASE_DEC, NULL, 0,
31785 "FraudMaxCount", HFILL }},
31786 { &hf_NokiaMAP_Extensions_maxCountAction,
31787 { "maxCountAction", "NokiaMAP-Extensions.maxCountAction",
31788 FT_BYTES, BASE_NONE, NULL, 0,
31789 "ActionType", HFILL }},
31790 { &hf_NokiaMAP_Extensions_serviceCode,
31791 { "serviceCode", "NokiaMAP-Extensions.serviceCode",
31792 FT_BYTES, BASE_NONE, NULL, 0,
31793 "MAPserviceCode", HFILL }},
31794 { &hf_NokiaMAP_Extensions_versionInfo,
31795 { "versionInfo", "NokiaMAP-Extensions.versionInfo",
31796 FT_BYTES, BASE_NONE, NULL, 0,
31797 NULL, HFILL }},
31798 { &hf_NokiaMAP_Extensions_in_key,
31799 { "in-key", "NokiaMAP-Extensions.in_key",
31800 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_INKey_vals), 0,
31801 "INKey", HFILL }},
31802 { &hf_NokiaMAP_Extensions_fraudInfo,
31803 { "fraudInfo", "NokiaMAP-Extensions.fraudInfo_element",
31804 FT_NONE, BASE_NONE, NULL, 0,
31805 NULL, HFILL }},
31806 { &hf_NokiaMAP_Extensions_ServiceListWithInfo_item,
31807 { "ServiceWithInfo", "NokiaMAP-Extensions.ServiceWithInfo_element",
31808 FT_NONE, BASE_NONE, NULL, 0,
31809 NULL, HFILL }},
31810 { &hf_NokiaMAP_Extensions_mobile_IN_key,
31811 { "mobile-IN-key", "NokiaMAP-Extensions.mobile_IN_key_element",
31812 FT_NONE, BASE_NONE, NULL, 0,
31813 "MKey", HFILL }},
31814 { &hf_NokiaMAP_Extensions_sms_IN_key,
31815 { "sms-IN-key", "NokiaMAP-Extensions.sms_IN_key_element",
31816 FT_NONE, BASE_NONE, NULL, 0,
31817 "SMSKey", HFILL }},
31818 { &hf_NokiaMAP_Extensions_mKeyVer,
31819 { "mKeyVer", "NokiaMAP-Extensions.mKeyVer",
31820 FT_BYTES, BASE_NONE, NULL, 0,
31821 NULL, HFILL }},
31822 { &hf_NokiaMAP_Extensions_mmScfAddress,
31823 { "mmScfAddress", "NokiaMAP-Extensions.mmScfAddress",
31824 FT_BYTES, BASE_NONE, NULL, 0,
31825 "ISDN_AddressString", HFILL }},
31826 { &hf_NokiaMAP_Extensions_mmTdpName,
31827 { "mmTdpName", "NokiaMAP-Extensions.mmTdpName",
31828 FT_BYTES, BASE_NONE, NULL, 0,
31829 NULL, HFILL }},
31830 { &hf_NokiaMAP_Extensions_serviceKey,
31831 { "serviceKey", "NokiaMAP-Extensions.serviceKey",
31832 FT_UINT32, BASE_DEC, NULL, 0,
31833 NULL, HFILL }},
31834 { &hf_NokiaMAP_Extensions_locupType,
31835 { "locupType", "NokiaMAP-Extensions.locupType",
31836 FT_BYTES, BASE_NONE, NULL, 0,
31837 NULL, HFILL }},
31838 { &hf_NokiaMAP_Extensions_mmSCPAddress,
31839 { "mmSCPAddress", "NokiaMAP-Extensions.mmSCPAddress",
31840 FT_BYTES, BASE_NONE, NULL, 0,
31841 "ISDN_AddressString", HFILL }},
31842 { &hf_NokiaMAP_Extensions_smsTdpName,
31843 { "smsTdpName", "NokiaMAP-Extensions.smsTdpName",
31844 FT_BYTES, BASE_NONE, NULL, 0,
31845 NULL, HFILL }},
31846 { &hf_NokiaMAP_Extensions_mmsFlag,
31847 { "mmsFlag", "NokiaMAP-Extensions.mmsFlag_element",
31848 FT_NONE, BASE_NONE, NULL, 0,
31849 NULL, HFILL }},
31850 { &hf_NokiaMAP_Extensions_map_Opt,
31851 { "map-Opt", "NokiaMAP-Extensions.map_Opt",
31852 FT_BYTES, BASE_NONE, NULL, 0,
31853 "MapOptFields", HFILL }},
31854 { &hf_NokiaMAP_Extensions_codec_List,
31855 { "codec-List", "NokiaMAP-Extensions.codec_List",
31856 FT_UINT32, BASE_DEC, NULL, 0,
31857 "CodecListExt", HFILL }},
31858 { &hf_NokiaMAP_Extensions_selected_Codec,
31859 { "selected-Codec", "NokiaMAP-Extensions.selected_Codec_element",
31860 FT_NONE, BASE_NONE, NULL, 0,
31861 "SelectedCodec", HFILL }},
31862 { &hf_NokiaMAP_Extensions_uma_access,
31863 { "uma-access", "NokiaMAP-Extensions.uma_access_element",
31864 FT_NONE, BASE_NONE, NULL, 0,
31865 NULL, HFILL }},
31866 { &hf_NokiaMAP_Extensions_uma_ip_address,
31867 { "uma-ip-address", "NokiaMAP-Extensions.uma_ip_address",
31868 FT_BYTES, BASE_NONE, NULL, 0,
31869 "OCTET_STRING_SIZE_5_17", HFILL }},
31870 { &hf_NokiaMAP_Extensions_uma_ip_port_nb,
31871 { "uma-ip-port-nb", "NokiaMAP-Extensions.uma_ip_port_nb",
31872 FT_UINT32, BASE_DEC, NULL, 0,
31873 "IPPortNb", HFILL }},
31874 { &hf_NokiaMAP_Extensions_CodecListExt_item,
31875 { "CodecExt", "NokiaMAP-Extensions.CodecExt",
31876 FT_BYTES, BASE_NONE, NULL, 0,
31877 NULL, HFILL }},
31878 { &hf_NokiaMAP_Extensions_codec,
31879 { "codec", "NokiaMAP-Extensions.codec",
31880 FT_BYTES, BASE_NONE, NULL, 0,
31881 "CodecExt", HFILL }},
31882 { &hf_NokiaMAP_Extensions_modes,
31883 { "modes", "NokiaMAP-Extensions.modes",
31884 FT_BYTES, BASE_NONE, NULL, 0,
31885 NULL, HFILL }},
31886 { &hf_NokiaMAP_Extensions_imsi,
31887 { "imsi", "NokiaMAP-Extensions.imsi",
31888 FT_BYTES, BASE_NONE, NULL, 0,
31889 NULL, HFILL }},
31890 { &hf_NokiaMAP_Extensions_cfuSMSCounter,
31891 { "cfuSMSCounter", "NokiaMAP-Extensions.cfuSMSCounter",
31892 FT_BYTES, BASE_NONE, NULL, 0,
31893 NULL, HFILL }},
31894 { &hf_NokiaMAP_Extensions_cfusmcfo,
31895 { "cfusmcfo", "NokiaMAP-Extensions.cfusmcfo_element",
31896 FT_NONE, BASE_NONE, NULL, 0,
31897 NULL, HFILL }},
31898 { &hf_NokiaMAP_Extensions_memberInterrogate,
31899 { "memberInterrogate", "NokiaMAP-Extensions.memberInterrogate_element",
31900 FT_NONE, BASE_NONE, NULL, 0,
31901 NULL, HFILL }},
31902 { &hf_NokiaMAP_Extensions_locationAreaCode,
31903 { "locationAreaCode", "NokiaMAP-Extensions.locationAreaCode",
31904 FT_BYTES, BASE_NONE, NULL, 0,
31905 NULL, HFILL }},
31906 { &hf_NokiaMAP_Extensions_cellId,
31907 { "cellId", "NokiaMAP-Extensions.cellId",
31908 FT_BYTES, BASE_NONE, NULL, 0,
31909 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
31910 { &hf_NokiaMAP_Extensions_lai,
31911 { "lai", "NokiaMAP-Extensions.lai",
31912 FT_BYTES, BASE_NONE, NULL, 0,
31913 "LAIFixedLength", HFILL }},
31914 { &hf_NokiaMAP_Extensions_sendImmResp,
31915 { "sendImmResp", "NokiaMAP-Extensions.sendImmResp_element",
31916 FT_NONE, BASE_NONE, NULL, 0,
31917 NULL, HFILL }},
31918 { &hf_NokiaMAP_Extensions_rejectCause,
31919 { "rejectCause", "NokiaMAP-Extensions.rejectCause",
31920 FT_BYTES, BASE_NONE, NULL, 0,
31921 "OCTET_STRING_SIZE_1", HFILL }},
31922 { &hf_NokiaMAP_Extensions_senderMSISDN,
31923 { "senderMSISDN", "NokiaMAP-Extensions.senderMSISDN",
31924 FT_BYTES, BASE_NONE, NULL, 0,
31925 "ISDN_AddressString", HFILL }},
31926 { &hf_NokiaMAP_Extensions_access,
31927 { "access", "NokiaMAP-Extensions.access",
31928 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_Access_vals), 0,
31929 NULL, HFILL }},
31930 { &hf_NokiaMAP_Extensions_version,
31931 { "version", "NokiaMAP-Extensions.version",
31932 FT_UINT32, BASE_DEC, NULL, 0,
31933 NULL, HFILL }},
31934 { &hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item,
31935 { "Access", "NokiaMAP-Extensions.Access",
31936 FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_Access_vals), 0,
31937 NULL, HFILL }},
31938 { &hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed,
31939 { "amr-wb-allowed", "NokiaMAP.Extensions.AllowedServiceData.amr.wb.allowed",
31940 FT_BOOLEAN, 8, NULL, 0x80,
31941 NULL, HFILL }},
31944 /* List of subtrees */
31945 static int *ett[] = {
31946 &ett_gsm_map,
31947 &ett_gsm_map_InvokeId,
31948 &ett_gsm_map_InvokePDU,
31949 &ett_gsm_map_ReturnResultPDU,
31950 &ett_gsm_map_ReturnErrorPDU,
31951 &ett_gsm_map_ReturnResult_result,
31952 &ett_gsm_map_ReturnError_result,
31953 &ett_gsm_map_GSMMAPPDU,
31954 &ett_gsm_map_ext_qos_subscribed,
31955 &ett_gsm_map_pdptypenumber,
31956 &ett_gsm_map_RAIdentity,
31957 &ett_gsm_map_LAIFixedLength,
31958 &ett_gsm_map_isdn_address_string,
31959 &ett_gsm_map_geo_desc,
31960 &ett_gsm_map_LongSignalInfo,
31961 &ett_gsm_map_RadioResourceInformation,
31962 &ett_gsm_map_MSNetworkCapability,
31963 &ett_gsm_map_MSRadioAccessCapability,
31964 &ett_gsm_map_externalsignalinfo,
31965 &ett_gsm_map_cbs_data_coding,
31966 &ett_gsm_map_GlobalCellId,
31967 &ett_gsm_map_GeographicalInformation,
31968 &ett_gsm_map_apn_str,
31969 &ett_gsm_map_LocationNumber,
31970 &ett_gsm_map_ericsson_locationInformation,
31971 &ett_gsm_map_extension_data,
31972 &ett_gsm_map_tbcd_digits,
31973 &ett_gsm_map_ussd_string,
31974 &ett_gsm_map_ext2_qos_subscribed,
31975 &ett_gsm_map_ext3_qos_subscribed,
31976 &ett_gsm_map_e_utranCellGlobalIdentity,
31977 &ett_gsm_map_TA_id,
31978 &ett_gsm_map_GeodeticInformation,
31981 /* --- Module MAP-ExtensionDataTypes --- --- --- */
31983 &ett_gsm_map_ExtensionContainer,
31984 &ett_gsm_map_SLR_ArgExtensionContainer,
31985 &ett_gsm_map_PrivateExtensionList,
31986 &ett_gsm_map_PrivateExtension,
31987 &ett_gsm_map_PCS_Extensions,
31988 &ett_gsm_map_SLR_Arg_PCS_Extensions,
31990 /* --- Module MAP-CommonDataTypes --- --- --- */
31992 &ett_gsm_map_ExternalSignalInfo,
31993 &ett_gsm_map_Ext_ExternalSignalInfo,
31994 &ett_gsm_map_AccessNetworkSignalInfo,
31995 &ett_gsm_map_Identity,
31996 &ett_gsm_map_IMSI_WithLMSI,
31997 &ett_gsm_map_SubscriberId,
31998 &ett_gsm_map_HLR_List,
31999 &ett_gsm_map_NAEA_PreferredCI,
32000 &ett_gsm_map_SubscriberIdentity,
32001 &ett_gsm_map_LCSClientExternalID,
32002 &ett_gsm_map_NetworkNodeDiameterAddress,
32003 &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
32004 &ett_gsm_map_BasicServiceCode,
32005 &ett_gsm_map_Ext_BasicServiceCode,
32006 &ett_gsm_map_EMLPP_Info,
32007 &ett_gsm_map_MC_SS_Info,
32009 /* --- Module MAP-SS-DataTypes --- --- --- */
32011 &ett_gsm_map_ss_RegisterSS_Arg,
32012 &ett_gsm_map_ss_SS_Info,
32013 &ett_gsm_map_ss_ForwardingInfo,
32014 &ett_gsm_map_ss_ForwardingFeatureList,
32015 &ett_gsm_map_ss_ForwardingFeature,
32016 &ett_gsm_map_ss_CallBarringInfo,
32017 &ett_gsm_map_ss_CallBarringFeatureList,
32018 &ett_gsm_map_ss_CallBarringFeature,
32019 &ett_gsm_map_ss_SS_Data,
32020 &ett_gsm_map_ss_SS_SubscriptionOption,
32021 &ett_gsm_map_ss_SS_ForBS_Code,
32022 &ett_gsm_map_ss_GenericServiceInfo,
32023 &ett_gsm_map_ss_CCBS_FeatureList,
32024 &ett_gsm_map_ss_CCBS_Feature,
32025 &ett_gsm_map_ss_InterrogateSS_Res,
32026 &ett_gsm_map_ss_USSD_Arg,
32027 &ett_gsm_map_ss_USSD_Res,
32028 &ett_gsm_map_ss_SS_List,
32029 &ett_gsm_map_ss_BasicServiceGroupList,
32030 &ett_gsm_map_ss_SS_InvocationNotificationArg,
32031 &ett_gsm_map_ss_SS_InvocationNotificationRes,
32032 &ett_gsm_map_ss_SS_EventSpecification,
32033 &ett_gsm_map_ss_RegisterCC_EntryArg,
32034 &ett_gsm_map_ss_CCBS_Data,
32035 &ett_gsm_map_ss_ServiceIndicator,
32036 &ett_gsm_map_ss_RegisterCC_EntryRes,
32037 &ett_gsm_map_ss_EraseCC_EntryArg,
32038 &ett_gsm_map_ss_EraseCC_EntryRes,
32040 /* --- Module MAP-ER-DataTypes --- --- --- */
32042 &ett_gsm_map_er_RoamingNotAllowedParam,
32043 &ett_gsm_map_er_CallBarredParam,
32044 &ett_gsm_map_er_ExtensibleCallBarredParam,
32045 &ett_gsm_map_er_CUG_RejectParam,
32046 &ett_gsm_map_er_SS_IncompatibilityCause,
32047 &ett_gsm_map_er_SM_DeliveryFailureCause,
32048 &ett_gsm_map_er_AbsentSubscriberSM_Param,
32049 &ett_gsm_map_er_SystemFailureParam,
32050 &ett_gsm_map_er_ExtensibleSystemFailureParam,
32051 &ett_gsm_map_er_DataMissingParam,
32052 &ett_gsm_map_er_UnexpectedDataParam,
32053 &ett_gsm_map_er_FacilityNotSupParam,
32054 &ett_gsm_map_er_OR_NotAllowedParam,
32055 &ett_gsm_map_er_UnknownSubscriberParam,
32056 &ett_gsm_map_er_NumberChangedParam,
32057 &ett_gsm_map_er_UnidentifiedSubParam,
32058 &ett_gsm_map_er_IllegalSubscriberParam,
32059 &ett_gsm_map_er_IllegalEquipmentParam,
32060 &ett_gsm_map_er_BearerServNotProvParam,
32061 &ett_gsm_map_er_TeleservNotProvParam,
32062 &ett_gsm_map_er_TracingBufferFullParam,
32063 &ett_gsm_map_er_NoRoamingNbParam,
32064 &ett_gsm_map_er_AbsentSubscriberParam,
32065 &ett_gsm_map_er_BusySubscriberParam,
32066 &ett_gsm_map_er_NoSubscriberReplyParam,
32067 &ett_gsm_map_er_ForwardingViolationParam,
32068 &ett_gsm_map_er_ForwardingFailedParam,
32069 &ett_gsm_map_er_ATI_NotAllowedParam,
32070 &ett_gsm_map_er_ATSI_NotAllowedParam,
32071 &ett_gsm_map_er_ATM_NotAllowedParam,
32072 &ett_gsm_map_er_IllegalSS_OperationParam,
32073 &ett_gsm_map_er_SS_NotAvailableParam,
32074 &ett_gsm_map_er_SS_SubscriptionViolationParam,
32075 &ett_gsm_map_er_InformationNotAvailableParam,
32076 &ett_gsm_map_er_SubBusyForMT_SMS_Param,
32077 &ett_gsm_map_er_MessageWaitListFullParam,
32078 &ett_gsm_map_er_ResourceLimitationParam,
32079 &ett_gsm_map_er_NoGroupCallNbParam,
32080 &ett_gsm_map_er_IncompatibleTerminalParam,
32081 &ett_gsm_map_er_ShortTermDenialParam,
32082 &ett_gsm_map_er_LongTermDenialParam,
32083 &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
32084 &ett_gsm_map_er_UnauthorizedLCSClient_Param,
32085 &ett_gsm_map_er_PositionMethodFailure_Param,
32086 &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
32087 &ett_gsm_map_er_MM_EventNotSupported_Param,
32088 &ett_gsm_map_er_TargetCellOutsideGCA_Param,
32089 &ett_gsm_map_er_OngoingGroupCallParam,
32091 /* --- Module MAP-SM-DataTypes --- --- --- */
32093 &ett_gsm_map_sm_RoutingInfoForSM_Arg,
32094 &ett_gsm_map_sm_RoutingInfoForSM_Res,
32095 &ett_gsm_map_sm_IP_SM_GW_Guidance,
32096 &ett_gsm_map_sm_LocationInfoWithLMSI,
32097 &ett_gsm_map_sm_Additional_Number,
32098 &ett_gsm_map_sm_MO_ForwardSM_Arg,
32099 &ett_gsm_map_sm_MO_ForwardSM_Res,
32100 &ett_gsm_map_sm_MT_ForwardSM_Arg,
32101 &ett_gsm_map_sm_CorrelationID,
32102 &ett_gsm_map_sm_MT_ForwardSM_Res,
32103 &ett_gsm_map_sm_SM_RP_DA,
32104 &ett_gsm_map_sm_SM_RP_OA,
32105 &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
32106 &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
32107 &ett_gsm_map_sm_AlertServiceCentreArg,
32108 &ett_gsm_map_sm_InformServiceCentreArg,
32109 &ett_gsm_map_sm_MW_Status,
32110 &ett_gsm_map_sm_ReadyForSM_Arg,
32111 &ett_gsm_map_sm_ReadyForSM_Res,
32112 &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
32113 &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
32114 &ett_gsm_map_sm_DispatcherList,
32115 &ett_gsm_map_sm_AdditionalDispatcherList,
32117 /* --- Module MAP-OM-DataTypes --- --- --- */
32119 &ett_gsm_map_om_ActivateTraceModeArg,
32120 &ett_gsm_map_om_MDT_Configuration,
32121 &ett_gsm_map_om_MDT_Allowed_PLMNId_List,
32122 &ett_gsm_map_om_AreaScope,
32123 &ett_gsm_map_om_CGI_List,
32124 &ett_gsm_map_om_E_UTRAN_CGI_List,
32125 &ett_gsm_map_om_RoutingAreaId_List,
32126 &ett_gsm_map_om_LocationAreaId_List,
32127 &ett_gsm_map_om_TrackingAreaId_List,
32128 &ett_gsm_map_om_TraceDepthList,
32129 &ett_gsm_map_om_TraceNE_TypeList,
32130 &ett_gsm_map_om_TraceInterfaceList,
32131 &ett_gsm_map_om_MSC_S_InterfaceList,
32132 &ett_gsm_map_om_MGW_InterfaceList,
32133 &ett_gsm_map_om_SGSN_InterfaceList,
32134 &ett_gsm_map_om_GGSN_InterfaceList,
32135 &ett_gsm_map_om_RNC_InterfaceList,
32136 &ett_gsm_map_om_BMSC_InterfaceList,
32137 &ett_gsm_map_om_MME_InterfaceList,
32138 &ett_gsm_map_om_SGW_InterfaceList,
32139 &ett_gsm_map_om_PGW_InterfaceList,
32140 &ett_gsm_map_om_ENB_InterfaceList,
32141 &ett_gsm_map_om_TraceEventList,
32142 &ett_gsm_map_om_MSC_S_EventList,
32143 &ett_gsm_map_om_MGW_EventList,
32144 &ett_gsm_map_om_SGSN_EventList,
32145 &ett_gsm_map_om_GGSN_EventList,
32146 &ett_gsm_map_om_BMSC_EventList,
32147 &ett_gsm_map_om_MME_EventList,
32148 &ett_gsm_map_om_SGW_EventList,
32149 &ett_gsm_map_om_PGW_EventList,
32150 &ett_gsm_map_om_TracePropagationList,
32151 &ett_gsm_map_om_ActivateTraceModeRes,
32152 &ett_gsm_map_om_DeactivateTraceModeArg,
32153 &ett_gsm_map_om_DeactivateTraceModeRes,
32155 /* --- Module MAP-MS-DataTypes --- --- --- */
32157 &ett_gsm_map_ms_UpdateLocationArg,
32158 &ett_gsm_map_ms_VLR_Capability,
32159 &ett_gsm_map_ms_SupportedRAT_Types,
32160 &ett_gsm_map_ms_SuperChargerInfo,
32161 &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
32162 &ett_gsm_map_ms_UpdateLocationRes,
32163 &ett_gsm_map_ms_ADD_Info,
32164 &ett_gsm_map_ms_PagingArea,
32165 &ett_gsm_map_ms_LocationArea,
32166 &ett_gsm_map_ms_CancelLocationArg_U,
32167 &ett_gsm_map_ms_CancelLocationRes,
32168 &ett_gsm_map_ms_PurgeMS_Arg_U,
32169 &ett_gsm_map_ms_PurgeMS_Res,
32170 &ett_gsm_map_ms_SendIdentificationArg,
32171 &ett_gsm_map_ms_SendIdentificationRes_U,
32172 &ett_gsm_map_ms_AuthenticationSetList,
32173 &ett_gsm_map_ms_TripletList,
32174 &ett_gsm_map_ms_QuintupletList,
32175 &ett_gsm_map_ms_AuthenticationTriplet,
32176 &ett_gsm_map_ms_AuthenticationQuintuplet,
32177 &ett_gsm_map_ms_CurrentSecurityContext,
32178 &ett_gsm_map_ms_GSM_SecurityContextData,
32179 &ett_gsm_map_ms_UMTS_SecurityContextData,
32180 &ett_gsm_map_ms_AuthenticationFailureReportArg,
32181 &ett_gsm_map_ms_AuthenticationFailureReportRes,
32182 &ett_gsm_map_ms_UpdateGprsLocationArg,
32183 &ett_gsm_map_ms_EPS_Info,
32184 &ett_gsm_map_ms_PDN_GW_Update,
32185 &ett_gsm_map_ms_ISR_Information,
32186 &ett_gsm_map_ms_SGSN_Capability,
32187 &ett_gsm_map_ms_SupportedFeatures,
32188 &ett_gsm_map_ms_Ext_SupportedFeatures,
32189 &ett_gsm_map_ms_UpdateGprsLocationRes,
32190 &ett_gsm_map_ms_EPLMN_List,
32191 &ett_gsm_map_ms_AdjacentPLMN_List,
32192 &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
32193 &ett_gsm_map_ms_AllowedUMTS_Algorithms,
32194 &ett_gsm_map_ms_PrepareHO_Arg_U,
32195 &ett_gsm_map_ms_LCLS_Negotiation,
32196 &ett_gsm_map_ms_LCLS_ConfigurationPreference,
32197 &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
32198 &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
32199 &ett_gsm_map_ms_RadioResourceList,
32200 &ett_gsm_map_ms_RadioResource,
32201 &ett_gsm_map_ms_PrepareHO_Res_U,
32202 &ett_gsm_map_ms_SelectedUMTS_Algorithms,
32203 &ett_gsm_map_ms_ChosenRadioResourceInformation,
32204 &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
32205 &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
32206 &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
32207 &ett_gsm_map_ms_AoIPCodecsList,
32208 &ett_gsm_map_ms_SupportedCodecsList,
32209 &ett_gsm_map_ms_CodecList,
32210 &ett_gsm_map_ms_SendEndSignal_Arg_U,
32211 &ett_gsm_map_ms_SendEndSignal_Res,
32212 &ett_gsm_map_ms_RelocationNumberList,
32213 &ett_gsm_map_ms_RelocationNumber,
32214 &ett_gsm_map_ms_SendAuthenticationInfoArg,
32215 &ett_gsm_map_ms_Re_synchronisationInfo,
32216 &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
32217 &ett_gsm_map_ms_EPS_AuthenticationSetList,
32218 &ett_gsm_map_ms_EPC_AV,
32219 &ett_gsm_map_ms_CheckIMEI_Arg,
32220 &ett_gsm_map_ms_CheckIMEI_Res,
32221 &ett_gsm_map_ms_RequestedEquipmentInfo,
32222 &ett_gsm_map_ms_UESBI_Iu,
32223 &ett_gsm_map_ms_InsertSubscriberDataArg,
32224 &ett_gsm_map_ms_EDRX_Cycle_Length_List,
32225 &ett_gsm_map_ms_EDRX_Cycle_Length,
32226 &ett_gsm_map_ms_Reset_Id_List,
32227 &ett_gsm_map_ms_IMSI_GroupIdList,
32228 &ett_gsm_map_ms_IMSI_GroupId,
32229 &ett_gsm_map_ms_CSG_SubscriptionDataList,
32230 &ett_gsm_map_ms_CSG_SubscriptionData,
32231 &ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList,
32232 &ett_gsm_map_ms_LIPA_AllowedAPNList,
32233 &ett_gsm_map_ms_EPS_SubscriptionData,
32234 &ett_gsm_map_ms_APN_ConfigurationProfile,
32235 &ett_gsm_map_ms_EPS_DataList,
32236 &ett_gsm_map_ms_APN_Configuration,
32237 &ett_gsm_map_ms_EPS_QoS_Subscribed,
32238 &ett_gsm_map_ms_AMBR,
32239 &ett_gsm_map_ms_SpecificAPNInfoList,
32240 &ett_gsm_map_ms_SpecificAPNInfo,
32241 &ett_gsm_map_ms_Allocation_Retention_Priority,
32242 &ett_gsm_map_ms_PDN_GW_Identity,
32243 &ett_gsm_map_ms_WLAN_Offloadability,
32244 &ett_gsm_map_ms_AccessRestrictionData,
32245 &ett_gsm_map_ms_Ext_AccessRestrictionData,
32246 &ett_gsm_map_ms_AdjacentAccessRestrictionDataList,
32247 &ett_gsm_map_ms_AdjacentAccessRestrictionData,
32248 &ett_gsm_map_ms_LCSInformation,
32249 &ett_gsm_map_ms_GMLC_List,
32250 &ett_gsm_map_ms_GPRSDataList,
32251 &ett_gsm_map_ms_PDP_Context,
32252 &ett_gsm_map_ms_GPRSSubscriptionData,
32253 &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
32254 &ett_gsm_map_ms_GPRS_CSI,
32255 &ett_gsm_map_ms_GPRS_CamelTDPDataList,
32256 &ett_gsm_map_ms_GPRS_CamelTDPData,
32257 &ett_gsm_map_ms_LSADataList,
32258 &ett_gsm_map_ms_LSAData,
32259 &ett_gsm_map_ms_LSAInformation,
32260 &ett_gsm_map_ms_SubscriberData,
32261 &ett_gsm_map_ms_BearerServiceList,
32262 &ett_gsm_map_ms_TeleserviceList,
32263 &ett_gsm_map_ms_ODB_Data,
32264 &ett_gsm_map_ms_ODB_GeneralData,
32265 &ett_gsm_map_ms_ODB_HPLMN_Data,
32266 &ett_gsm_map_ms_Ext_SS_InfoList,
32267 &ett_gsm_map_ms_Ext_SS_Info,
32268 &ett_gsm_map_ms_Ext_ForwInfo,
32269 &ett_gsm_map_ms_Ext_ForwFeatureList,
32270 &ett_gsm_map_ms_Ext_ForwFeature,
32271 &ett_gsm_map_ms_Ext_CallBarInfo,
32272 &ett_gsm_map_ms_Ext_CallBarFeatureList,
32273 &ett_gsm_map_ms_Ext_CallBarringFeature,
32274 &ett_gsm_map_ms_CUG_Info,
32275 &ett_gsm_map_ms_CUG_SubscriptionList,
32276 &ett_gsm_map_ms_CUG_Subscription,
32277 &ett_gsm_map_ms_CUG_FeatureList,
32278 &ett_gsm_map_ms_Ext_BasicServiceGroupList,
32279 &ett_gsm_map_ms_CUG_Feature,
32280 &ett_gsm_map_ms_Ext_SS_Data,
32281 &ett_gsm_map_ms_LCS_PrivacyExceptionList,
32282 &ett_gsm_map_ms_LCS_PrivacyClass,
32283 &ett_gsm_map_ms_ExternalClientList,
32284 &ett_gsm_map_ms_PLMNClientList,
32285 &ett_gsm_map_ms_Ext_ExternalClientList,
32286 &ett_gsm_map_ms_ExternalClient,
32287 &ett_gsm_map_ms_ServiceTypeList,
32288 &ett_gsm_map_ms_ServiceType,
32289 &ett_gsm_map_ms_MOLR_List,
32290 &ett_gsm_map_ms_MOLR_Class,
32291 &ett_gsm_map_ms_ZoneCodeList,
32292 &ett_gsm_map_ms_InsertSubscriberDataRes,
32293 &ett_gsm_map_ms_DeleteSubscriberDataArg,
32294 &ett_gsm_map_ms_SpecificCSI_Withdraw,
32295 &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
32296 &ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
32297 &ett_gsm_map_ms_ContextIdList,
32298 &ett_gsm_map_ms_LSAInformationWithdraw,
32299 &ett_gsm_map_ms_LSAIdentityList,
32300 &ett_gsm_map_ms_BasicServiceList,
32301 &ett_gsm_map_ms_DeleteSubscriberDataRes,
32302 &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
32303 &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
32304 &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
32305 &ett_gsm_map_ms_TPDU_TypeCriterion,
32306 &ett_gsm_map_ms_D_CSI,
32307 &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
32308 &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
32309 &ett_gsm_map_ms_SS_CSI,
32310 &ett_gsm_map_ms_SS_CamelData,
32311 &ett_gsm_map_ms_SS_EventList,
32312 &ett_gsm_map_ms_O_CSI,
32313 &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
32314 &ett_gsm_map_ms_O_BcsmCamelTDPData,
32315 &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
32316 &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
32317 &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
32318 &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
32319 &ett_gsm_map_ms_DestinationNumberCriteria,
32320 &ett_gsm_map_ms_DestinationNumberList,
32321 &ett_gsm_map_ms_DestinationNumberLengthList,
32322 &ett_gsm_map_ms_BasicServiceCriteria,
32323 &ett_gsm_map_ms_O_CauseValueCriteria,
32324 &ett_gsm_map_ms_T_CauseValueCriteria,
32325 &ett_gsm_map_ms_SupportedCamelPhases,
32326 &ett_gsm_map_ms_OfferedCamel4CSIs,
32327 &ett_gsm_map_ms_OfferedCamel4Functionalities,
32328 &ett_gsm_map_ms_SMS_CSI,
32329 &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
32330 &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
32331 &ett_gsm_map_ms_M_CSI,
32332 &ett_gsm_map_ms_MG_CSI,
32333 &ett_gsm_map_ms_MobilityTriggers,
32334 &ett_gsm_map_ms_T_CSI,
32335 &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
32336 &ett_gsm_map_ms_T_BcsmCamelTDPData,
32337 &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
32338 &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
32339 &ett_gsm_map_ms_FailureReportArg,
32340 &ett_gsm_map_ms_FailureReportRes,
32341 &ett_gsm_map_ms_NoteMsPresentForGprsArg,
32342 &ett_gsm_map_ms_NoteMsPresentForGprsRes,
32343 &ett_gsm_map_ms_ResetArg,
32344 &ett_gsm_map_ms_SendingNode_Number,
32345 &ett_gsm_map_ms_RestoreDataArg,
32346 &ett_gsm_map_ms_RestoreDataRes,
32347 &ett_gsm_map_ms_VBSDataList,
32348 &ett_gsm_map_ms_VGCSDataList,
32349 &ett_gsm_map_ms_VoiceGroupCallData,
32350 &ett_gsm_map_ms_AdditionalSubscriptions,
32351 &ett_gsm_map_ms_VoiceBroadcastData,
32352 &ett_gsm_map_ms_ProvideSubscriberInfoArg,
32353 &ett_gsm_map_ms_ProvideSubscriberInfoRes,
32354 &ett_gsm_map_ms_SubscriberInfo,
32355 &ett_gsm_map_ms_MNPInfoRes,
32356 &ett_gsm_map_ms_GPRSMSClass,
32357 &ett_gsm_map_ms_RequestedInfo,
32358 &ett_gsm_map_ms_RequestedNodes,
32359 &ett_gsm_map_ms_LocationInformation,
32360 &ett_gsm_map_ms_LocationInformationEPS,
32361 &ett_gsm_map_ms_LocationInformationGPRS,
32362 &ett_gsm_map_ms_LocationInformation5GS,
32363 &ett_gsm_map_ms_UserCSGInformation,
32364 &ett_gsm_map_ms_SubscriberState,
32365 &ett_gsm_map_ms_PS_SubscriberState,
32366 &ett_gsm_map_ms_PDP_ContextInfoList,
32367 &ett_gsm_map_ms_PDP_ContextInfo,
32368 &ett_gsm_map_ms_AnyTimeInterrogationArg,
32369 &ett_gsm_map_ms_AnyTimeInterrogationRes,
32370 &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
32371 &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
32372 &ett_gsm_map_ms_CallWaitingData,
32373 &ett_gsm_map_ms_Ext_CwFeatureList,
32374 &ett_gsm_map_ms_Ext_CwFeature,
32375 &ett_gsm_map_ms_ClipData,
32376 &ett_gsm_map_ms_ClirData,
32377 &ett_gsm_map_ms_CallHoldData,
32378 &ett_gsm_map_ms_EctData,
32379 &ett_gsm_map_ms_RequestedSubscriptionInfo,
32380 &ett_gsm_map_ms_MSISDN_BS_List,
32381 &ett_gsm_map_ms_MSISDN_BS,
32382 &ett_gsm_map_ms_CallForwardingData,
32383 &ett_gsm_map_ms_CallBarringData,
32384 &ett_gsm_map_ms_ODB_Info,
32385 &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
32386 &ett_gsm_map_ms_AnyTimeModificationArg,
32387 &ett_gsm_map_ms_ModificationRequestFor_CW_Info,
32388 &ett_gsm_map_ms_ModificationRequestFor_CH_Info,
32389 &ett_gsm_map_ms_ModificationRequestFor_ECT_Info,
32390 &ett_gsm_map_ms_ModificationRequestFor_CLIR_Info,
32391 &ett_gsm_map_ms_ModificationRequestFor_CLIP_Info,
32392 &ett_gsm_map_ms_ModificationRequestFor_CSG,
32393 &ett_gsm_map_ms_RequestedServingNode,
32394 &ett_gsm_map_ms_ServingNode,
32395 &ett_gsm_map_ms_AnyTimeModificationRes,
32396 &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
32397 &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
32398 &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
32399 &ett_gsm_map_ms_ModificationRequestFor_CSI,
32400 &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
32401 &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
32402 &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
32403 &ett_gsm_map_ms_NoteMM_EventArg,
32404 &ett_gsm_map_ms_NoteMM_EventRes,
32405 &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
32406 &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
32407 &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
32408 &ett_gsm_map_ms_UpdateVcsgLocationArg,
32409 &ett_gsm_map_ms_UpdateVcsgLocationRes,
32410 &ett_gsm_map_ms_CancelVcsgLocationArg,
32411 &ett_gsm_map_ms_CancelVcsgLocationRes,
32413 /* --- Module MAP-CH-DataTypes --- --- --- */
32415 &ett_gsm_map_ch_CUG_CheckInfo,
32416 &ett_gsm_map_ch_SendRoutingInfoArg,
32417 &ett_gsm_map_ch_SuppressMTSS,
32418 &ett_gsm_map_ch_SendRoutingInfoRes_U,
32419 &ett_gsm_map_ch_AllowedServices,
32420 &ett_gsm_map_ch_CCBS_Indicators,
32421 &ett_gsm_map_ch_RoutingInfo,
32422 &ett_gsm_map_ch_ForwardingData,
32423 &ett_gsm_map_ch_ProvideRoamingNumberArg,
32424 &ett_gsm_map_ch_ProvideRoamingNumberRes,
32425 &ett_gsm_map_ch_ResumeCallHandlingArg,
32426 &ett_gsm_map_ch_UU_Data,
32427 &ett_gsm_map_ch_ResumeCallHandlingRes,
32428 &ett_gsm_map_ch_CamelInfo,
32429 &ett_gsm_map_ch_ExtendedRoutingInfo,
32430 &ett_gsm_map_ch_CamelRoutingInfo,
32431 &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
32432 &ett_gsm_map_ch_SetReportingStateArg,
32433 &ett_gsm_map_ch_SetReportingStateRes,
32434 &ett_gsm_map_ch_StatusReportArg,
32435 &ett_gsm_map_ch_EventReportData,
32436 &ett_gsm_map_ch_CallReportData,
32437 &ett_gsm_map_ch_StatusReportRes,
32438 &ett_gsm_map_ch_RemoteUserFreeArg,
32439 &ett_gsm_map_ch_RemoteUserFreeRes,
32440 &ett_gsm_map_ch_IST_AlertArg,
32441 &ett_gsm_map_ch_IST_AlertRes,
32442 &ett_gsm_map_ch_IST_CommandArg,
32443 &ett_gsm_map_ch_IST_CommandRes,
32444 &ett_gsm_map_ch_ReleaseResourcesArg,
32445 &ett_gsm_map_ch_ReleaseResourcesRes,
32447 /* --- Module MAP-LCS-DataTypes --- --- --- */
32449 &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
32450 &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
32451 &ett_gsm_map_lcs_LCSLocationInfo,
32452 &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
32453 &ett_gsm_map_lcs_LocationType,
32454 &ett_gsm_map_lcs_DeferredLocationEventType,
32455 &ett_gsm_map_lcs_LCS_ClientID,
32456 &ett_gsm_map_lcs_LCSClientName,
32457 &ett_gsm_map_lcs_LCSRequestorID,
32458 &ett_gsm_map_lcs_LCS_QoS,
32459 &ett_gsm_map_lcs_ResponseTime,
32460 &ett_gsm_map_lcs_SupportedGADShapes,
32461 &ett_gsm_map_lcs_LCSCodeword,
32462 &ett_gsm_map_lcs_LCS_PrivacyCheck,
32463 &ett_gsm_map_lcs_AreaEventInfo,
32464 &ett_gsm_map_lcs_AreaDefinition,
32465 &ett_gsm_map_lcs_AreaList,
32466 &ett_gsm_map_lcs_Area,
32467 &ett_gsm_map_lcs_PeriodicLDRInfo,
32468 &ett_gsm_map_lcs_ReportingPLMNList,
32469 &ett_gsm_map_lcs_PLMNList,
32470 &ett_gsm_map_lcs_ReportingPLMN,
32471 &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
32472 &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
32473 &ett_gsm_map_lcs_Deferredmt_lrData,
32474 &ett_gsm_map_lcs_ServingNodeAddress,
32475 &ett_gsm_map_lcs_SubscriberLocationReport_Res,
32477 /* --- Module MAP-GR-DataTypes --- --- --- */
32479 &ett_gsm_map_gr_PrepareGroupCallArg,
32480 &ett_gsm_map_gr_PrepareGroupCallRes,
32481 &ett_gsm_map_gr_SendGroupCallEndSignalArg,
32482 &ett_gsm_map_gr_SendGroupCallEndSignalRes,
32483 &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
32484 &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
32485 &ett_gsm_map_gr_StateAttributes,
32486 &ett_gsm_map_gr_SendGroupCallInfoArg,
32487 &ett_gsm_map_gr_SendGroupCallInfoRes,
32489 /* --- Module MAP-DialogueInformation --- --- --- */
32491 &ett_gsm_map_dialogue_MAP_DialoguePDU,
32492 &ett_gsm_map_dialogue_MAP_OpenInfo,
32493 &ett_gsm_map_dialogue_MAP_AcceptInfo,
32494 &ett_gsm_map_dialogue_MAP_CloseInfo,
32495 &ett_gsm_map_dialogue_MAP_RefuseInfo,
32496 &ett_gsm_map_dialogue_MAP_UserAbortInfo,
32497 &ett_gsm_map_dialogue_MAP_UserAbortChoice,
32498 &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
32500 /* --- Module MAP-LocationServiceOperations --- --- --- */
32503 /* --- Module MAP-Group-Call-Operations --- --- --- */
32506 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
32509 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
32512 /* --- Module MAP-CallHandlingOperations --- --- --- */
32515 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
32518 /* --- Module MAP-MobileServiceOperations --- --- --- */
32521 /* --- Module MAP-Errors --- --- --- */
32524 /* --- Module MAP-Protocol --- --- --- */
32527 /* --- Module DummyMAP --- --- --- */
32529 &ett_gsm_old_Component,
32530 &ett_gsm_old_Invoke,
32531 &ett_gsm_old_ReturnResult,
32532 &ett_gsm_old_T_resultretres,
32533 &ett_gsm_old_ReturnError,
32534 &ett_gsm_old_Reject,
32535 &ett_gsm_old_T_invokeIDRej,
32536 &ett_gsm_old_T_problem,
32537 &ett_gsm_old_MAP_OPERATION,
32538 &ett_gsm_old_MAP_ERROR,
32539 &ett_gsm_old_Bss_APDU,
32540 &ett_gsm_old_ProvideSIWFSNumberArg,
32541 &ett_gsm_old_ProvideSIWFSNumberRes,
32542 &ett_gsm_old_PurgeMSArgV2,
32543 &ett_gsm_old_PrepareHO_ArgOld,
32544 &ett_gsm_old_PrepareHO_ResOld,
32545 &ett_gsm_old_SendAuthenticationInfoResOld,
32546 &ett_gsm_old_SendAuthenticationInfoResOld_item,
32547 &ett_gsm_old_SendIdentificationResV2,
32548 &ett_gsm_old_TripletListold,
32549 &ett_gsm_old_AuthenticationTriplet_v2,
32550 &ett_gsm_old_SIWFSSignallingModifyArg,
32551 &ett_gsm_old_SIWFSSignallingModifyRes,
32552 &ett_gsm_old_SecureTransportArg,
32553 &ett_gsm_old_SecureTransportErrorParam,
32554 &ett_gsm_old_SecureTransportRes,
32555 &ett_gsm_old_SecurityHeader,
32556 &ett_gsm_old_OriginalComponentIdentifier,
32557 &ett_gsm_old_OperationCode,
32558 &ett_gsm_old_ErrorCode,
32559 &ett_gsm_old_PlmnContainer_U,
32560 &ett_gsm_old_T_operatorSS_Code,
32561 &ett_gsm_old_ForwardSM_Arg,
32562 &ett_gsm_old_SM_RP_DAold,
32563 &ett_gsm_old_SM_RP_OAold,
32564 &ett_gsm_old_SendRoutingInfoArgV2,
32565 &ett_gsm_old_SendRoutingInfoResV2,
32566 &ett_gsm_old_BeginSubscriberActivityArg,
32567 &ett_gsm_old_RoutingInfoForSM_ArgV1,
32568 &ett_gsm_old_RoutingInfoForSM_ResV2,
32569 &ett_gsm_old_LocationInfoWithLMSIv2,
32570 &ett_gsm_old_LocationInfo,
32571 &ett_gsm_old_SendParametersArg,
32572 &ett_gsm_old_RequestParameterList,
32573 &ett_gsm_old_SentParameter,
32574 &ett_gsm_old_AuthenticationSetListOld,
32575 &ett_gsm_old_SentParameterList,
32576 &ett_gsm_old_ResetArgV1,
32578 /* --- Module SS-DataTypes --- --- --- */
32580 &ett_gsm_ss_NotifySS_Arg,
32581 &ett_gsm_ss_ForwardChargeAdviceArg,
32582 &ett_gsm_ss_ChargingInformation,
32583 &ett_gsm_ss_ForwardCUG_InfoArg,
32584 &ett_gsm_ss_ECT_Indicator,
32585 &ett_gsm_ss_NameIndicator,
32586 &ett_gsm_ss_Name,
32587 &ett_gsm_ss_NameSet,
32588 &ett_gsm_ss_RDN,
32589 &ett_gsm_ss_RemotePartyNumber,
32590 &ett_gsm_ss_AccessRegisterCCEntryArg,
32591 &ett_gsm_ss_CallDeflectionArg,
32592 &ett_gsm_ss_UserUserServiceArg,
32593 &ett_gsm_ss_LocationNotificationArg,
32594 &ett_gsm_ss_DeferredLocationExt,
32595 &ett_gsm_ss_LocationNotificationRes,
32596 &ett_gsm_ss_LCS_MOLRArg,
32597 &ett_gsm_ss_MultiplePositioningProtocolPDUs,
32598 &ett_gsm_ss_LCS_MOLRRes,
32599 &ett_gsm_ss_LCS_AreaEventRequestArg,
32600 &ett_gsm_ss_LCS_AreaEventReportArg,
32601 &ett_gsm_ss_LCS_AreaEventCancellationArg,
32602 &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
32603 &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
32604 &ett_gsm_ss_LCS_LocationUpdateArg,
32605 &ett_gsm_ss_LCS_LocationUpdateRes,
32606 &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
32607 &ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg,
32608 &ett_gsm_ss_PeriodicLocation,
32609 &ett_gsm_ss_AreaEventReporting,
32610 &ett_gsm_ss_AreaList,
32611 &ett_gsm_ss_Area,
32612 &ett_gsm_ss_Location_Info,
32613 &ett_gsm_ss_MotionEventReporting,
32614 &ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes,
32616 /* --- Module SS-Operations --- --- --- */
32619 /* --- Module EricssonMAP --- --- --- */
32621 &ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg,
32622 &ett_gsm_map_ericsson_ExtensionType,
32623 &ett_gsm_map_ericsson_IsdArgType,
32624 &ett_gsm_map_ericsson_IsdArgData,
32625 &ett_gsm_map_ericsson_PrivateFeatureData,
32626 &ett_gsm_map_ericsson_OickInfo,
32627 &ett_gsm_map_ericsson_SubscriptionTypeInfo,
32628 &ett_gsm_map_ericsson_IsdResType,
32629 &ett_gsm_map_ericsson_IsdResData,
32630 &ett_gsm_map_ericsson_DsdArgType,
32631 &ett_gsm_map_ericsson_DsdArgData,
32632 &ett_gsm_map_ericsson_SRIArgType,
32633 &ett_gsm_map_ericsson_SriArgData,
32634 &ett_gsm_map_ericsson_SRIResType,
32635 &ett_gsm_map_ericsson_SriResData,
32636 &ett_gsm_map_ericsson_PrnArgType,
32637 &ett_gsm_map_ericsson_PrnArgData,
32638 &ett_gsm_map_ericsson_UlArgType,
32639 &ett_gsm_map_ericsson_UlArgData,
32640 &ett_gsm_map_ericsson_PrivateFeatureUlArgData,
32641 &ett_gsm_map_ericsson_ExtraSignalInfo_U,
32642 &ett_gsm_map_ericsson_SaiArgType,
32643 &ett_gsm_map_ericsson_SaiResType,
32644 &ett_gsm_map_ericsson_AtiArgType,
32645 &ett_gsm_map_ericsson_AtiResType,
32646 &ett_gsm_map_ericsson_RdArgType,
32647 &ett_gsm_map_ericsson_RequestedInfoType,
32648 &ett_gsm_map_ericsson_ExtAtiArgType,
32649 &ett_gsm_map_ericsson_AtiArgData,
32651 /* --- Module NokiaMAP-Extensions --- --- --- */
32653 &ett_NokiaMAP_Extensions_IsdArgExt_U,
32654 &ett_NokiaMAP_Extensions_DsdArgExt_U,
32655 &ett_NokiaMAP_Extensions_UlResExt_U,
32656 &ett_NokiaMAP_Extensions_ChargingAreaList,
32657 &ett_NokiaMAP_Extensions_RegionalChargingData,
32658 &ett_NokiaMAP_Extensions_SS_DataExtension_U,
32659 &ett_NokiaMAP_Extensions_SriExtension_U,
32660 &ett_NokiaMAP_Extensions_ExtraSignalInfo_U,
32661 &ett_NokiaMAP_Extensions_Nokia_CUG_Data,
32662 &ett_NokiaMAP_Extensions_SriResExtension_U,
32663 &ett_NokiaMAP_Extensions_RgData,
32664 &ett_NokiaMAP_Extensions_MemberList,
32665 &ett_NokiaMAP_Extensions_CanLocArgExt_U,
32666 &ett_NokiaMAP_Extensions_ATMargExt_U,
32667 &ett_NokiaMAP_Extensions_OlcmInfoTable,
32668 &ett_NokiaMAP_Extensions_OlcmInfo,
32669 &ett_NokiaMAP_Extensions_ATMresExt_U,
32670 &ett_NokiaMAP_Extensions_DTMargExt_U,
32671 &ett_NokiaMAP_Extensions_FraudInfo,
32672 &ett_NokiaMAP_Extensions_FraudData,
32673 &ett_NokiaMAP_Extensions_ServiceWithInfo,
32674 &ett_NokiaMAP_Extensions_ServiceListWithInfo,
32675 &ett_NokiaMAP_Extensions_INKey,
32676 &ett_NokiaMAP_Extensions_MKey,
32677 &ett_NokiaMAP_Extensions_SMSKey,
32678 &ett_NokiaMAP_Extensions_HO_Ext_U,
32679 &ett_NokiaMAP_Extensions_CodecListExt,
32680 &ett_NokiaMAP_Extensions_SelectedCodec,
32681 &ett_NokiaMAP_Extensions_AbsentSubscriberExt_U,
32682 &ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U,
32683 &ett_NokiaMAP_Extensions_RoutingCategoryExt_U,
32684 &ett_NokiaMAP_Extensions_SriForSMArgExt_U,
32685 &ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U,
32686 &ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U,
32687 &ett_NokiaMAP_Extensions_UdlArgExt_U,
32688 &ett_NokiaMAP_Extensions_RoamNotAllowedExt_U,
32689 &ett_NokiaMAP_Extensions_AnyTimeModArgExt_U,
32690 &ett_NokiaMAP_Extensions_AccessTypeExt,
32691 &ett_NokiaMAP_Extensions_AccessSubscriptionListExt,
32692 &ett_NokiaMAP_Extensions_AllowedServiceData,
32695 static ei_register_info ei[] = {
32696 { &ei_gsm_map_unknown_sequence3, { "gsm_map.unknown.sequence3", PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence", EXPFILL }},
32697 { &ei_gsm_map_unknown_sequence, { "gsm_map.unknown.sequence", PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence", EXPFILL }},
32698 { &ei_gsm_map_unknown_parameter, { "gsm_map.unknown.parameter", PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter", EXPFILL }},
32699 { &ei_gsm_map_unknown_invokeData, { "gsm_map.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }},
32700 { &ei_gsm_map_undecoded, { "gsm_map.undecoded", PI_UNDECODED, PI_WARN, "If you want this decoded send the packet to Wireshark-dev", EXPFILL }},
32703 static const enum_val_t application_context_modes[] = {
32704 {"1", "Treat as AC 1", 1},
32705 {"2", "Treat as AC 2", 2},
32706 {"3", "Treat as AC 3", 3},
32707 {NULL, NULL, -1}
32710 static tap_param gsm_map_stat_params[] = {
32711 { PARAM_FILTER, "filter", "Filter", NULL, true }
32714 static stat_tap_table_ui gsm_map_stat_table = {
32715 REGISTER_TELEPHONY_GROUP_GSM,
32716 "MAP Operation",
32717 "gsm_map",
32718 "gsm_map,operation",
32719 gsm_map_stat_init,
32720 gsm_map_stat_packet,
32721 gsm_map_stat_reset,
32722 gsm_map_stat_free_table_item,
32723 NULL,
32724 array_length(gsm_map_stat_fields), gsm_map_stat_fields,
32725 array_length(gsm_map_stat_params), gsm_map_stat_params,
32726 NULL,
32730 /* Register protocol */
32731 proto_gsm_map_ms = proto_gsm_map_dialogue = proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
32733 map_handle = register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
32734 register_dissector("gsm_map_sccp", dissect_gsm_map_sccp, proto_gsm_map);
32736 /* Register fields and subtrees */
32737 proto_register_field_array(proto_gsm_map, hf, array_length(hf));
32738 proto_register_subtree_array(ett, array_length(ett));
32739 expert_gsm_map = expert_register_protocol(proto_gsm_map);
32740 expert_register_field_array(expert_gsm_map, ei, array_length(ei));
32742 register_dissector_table("gsm_map.v3.arg.opcode", "GSM_MAP V3 Arg Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
32743 register_dissector_table("gsm_map.v3.res.opcode", "GSM_MAP V3 Res Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC);
32745 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);
32746 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);
32747 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);
32749 gsm_map_tap = register_tap("gsm_map");
32752 /* --- Module MAP-MS-DataTypes --- --- --- */
32754 dissector_add_uint("gsm_map.v3.arg.opcode", 56, create_dissector_handle(dissect_gsm_map_ms_SendAuthenticationInfoArg_PDU, proto_gsm_map_ms));
32755 dissector_add_uint("gsm_map.v3.res.opcode", 56, create_dissector_handle(dissect_gsm_map_ms_SendAuthenticationInfoRes_PDU, proto_gsm_map_ms));
32758 /* --- Module MAP-CH-DataTypes --- --- --- */
32762 /* --- Module MAP-LCS-DataTypes --- --- --- */
32766 /* --- Module MAP-GR-DataTypes --- --- --- */
32770 /* --- Module MAP-DialogueInformation --- --- --- */
32772 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");
32775 /* --- Module MAP-LocationServiceOperations --- --- --- */
32779 /* --- Module MAP-Group-Call-Operations --- --- --- */
32783 /* --- Module MAP-ShortMessageServiceOperations --- --- --- */
32787 /* --- Module MAP-SupplementaryServiceOperations --- --- --- */
32791 /* --- Module MAP-CallHandlingOperations --- --- --- */
32795 /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */
32799 /* --- Module MAP-MobileServiceOperations --- --- --- */
32803 /* --- Module MAP-Errors --- --- --- */
32807 /* --- Module MAP-Protocol --- --- --- */
32811 /* --- Module DummyMAP --- --- --- */
32815 /* --- Module SS-DataTypes --- --- --- */
32819 /* --- Module SS-Operations --- --- --- */
32823 /* --- Module EricssonMAP --- --- --- */
32827 /* --- Module NokiaMAP-Extensions --- --- --- */
32830 oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
32831 oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
32832 /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
32834 * Register our configuration options, particularly our ssn:s
32835 * Set default SSNs
32837 range_convert_str(wmem_epan_scope(), &global_ssn_range, "6-9,145,148-150", MAX_SSN);
32839 gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
32841 prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
32842 "TCAP Subsystem numbers used for GSM MAP",
32843 &global_ssn_range, MAX_SSN);
32845 prefs_register_bool_preference(gsm_map_module, "application.context.version.from.trace",
32846 "Use application context from the trace",
32847 "Use the application context version from the "
32848 "lower level protocol (i.e., TCAP) transaction "
32849 "if available",
32850 &pref_context_version_from_trace);
32852 prefs_register_enum_preference(gsm_map_module, "application.context.version",
32853 "Default application context version",
32854 "The default application context version "
32855 "when not using the version from the lower "
32856 "layer transaction",
32857 &pref_application_context_version, application_context_modes, 3);
32859 prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions",
32860 "Dissect Ericsson proprietary extensions",
32861 "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)",
32862 &pref_ericsson_proprietary_ext);
32864 register_stat_tap_table_ui(&gsm_map_stat_table);
32868 * Editor modelines
32870 * Local Variables:
32871 * c-basic-offset: 2
32872 * tab-width: 8
32873 * indent-tabs-mode: nil
32874 * End:
32876 * ex: set shiftwidth=2 tabstop=8 expandtab:
32877 * :indentSize=2:tabSize=8:noTabs=true: