Convert ASN.1 dissectors to use filterable expert info.
[metze/wireshark/wip.git] / epan / dissectors / packet-gsm_map.c
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 /* ../../tools/asn2wrs.py -b -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../../epan/dissectors ../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 */
5
6 /* Input file: packet-gsm_map-template.c */
7
8 #line 1 "../../asn1/gsm_map/packet-gsm_map-template.c"
9 /* XXX see bug 1852:
10  *
11  * packet-gsm_map.c: There are 1174 display filter fields registered.  Most are
12  * prefixed appropriately as "gsm_map", but many others are prefixed as
13  * "gsm_old", or even "gad", "gsm_ss", or with no prefix at all.  I don't know
14  * if the ones with "gsm_old" are simply obsolete display filter fields or if
15  * they should be prefixed as "gsm_map.old." or what.  Similar uncertainties
16  * for the others. Someone more knowledgeable than I am with respect to this
17  * dissector should provide a patch for it.
18  */
19
20 /* packet-gsm_map-template.c
21  * Routines for GSM MobileApplication packet dissection
22  * including GSM SS.
23  * Copyright 2004 - 2010 , Anders Broman <anders.broman [AT] ericsson.com>
24  * Based on the dissector by:
25  * Felix Fei <felix.fei [AT] utstar.com>
26  * and Michael Lum <mlum [AT] telostech.com>
27  *
28  * $Id$
29  *
30  * Wireshark - Network traffic analyzer
31  * By Gerald Combs <gerald@wireshark.org>
32  * Copyright 1998 Gerald Combs
33  *
34  * This program is free software; you can redistribute it and/or
35  * modify it under the terms of the GNU General Public License
36  * as published by the Free Software Foundation; either version 2
37  * of the License, or (at your option) any later version.
38  *
39  * This program is distributed in the hope that it will be useful,
40  * but WITHOUT ANY WARRANTY; without even the implied warranty of
41  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
42  * GNU General Public License for more details.
43  *
44  * You should have received a copy of the GNU General Public License
45  * along with this program; if not, write to the Free Software
46  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
47  * References GSM MAP:
48  * ETSI TS 129 002
49  * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
50  * Updated to ETSI TS 129 002 V8.4.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8)
51  * References GSM SS
52  * References: 3GPP TS 24.080
53  */
54
55 #include "config.h"
56
57 #include <glib.h>
58 #include <epan/packet.h>
59 #include <epan/prefs.h>
60 #include <epan/tap.h>
61 #include <epan/emem.h>
62 #include <epan/oids.h>
63 #include <epan/expert.h>
64
65 #include <string.h>
66
67 #include <epan/asn1.h>
68 #include "packet-ber.h"
69 #include "packet-per.h"
70 #include "packet-q931.h"
71 #include "packet-gsm_map.h"
72 #include "packet-gsm_a_common.h"
73 #include "packet-tcap.h"
74 #include "packet-e164.h"
75 #include "packet-e212.h"
76 #include "packet-smpp.h"
77 #include "packet-gsm_sms.h"
78 #include "packet-ranap.h"
79
80 #define PNAME  "GSM Mobile Application"
81 #define PSNAME "GSM_MAP"
82 #define PFNAME "gsm_map"
83
84 void proto_register_gsm_map(void);
85 void proto_reg_handoff_gsm_map(void);
86
87 /* Initialize the protocol and registered fields */
88 static int proto_gsm_map = -1;
89 static int proto_gsm_map_dialogue = -1;
90
91 static int hf_gsm_map_old_Component_PDU = -1;
92 static int hf_gsm_map_getPassword = -1;
93 static int hf_gsm_map_currentPassword = -1;
94 static int hf_gsm_map_extension = -1;
95 static int hf_gsm_map_nature_of_number = -1;
96 static int hf_gsm_map_number_plan = -1;
97 static int hf_gsm_map_isdn_address_digits = -1;
98 static int hf_gsm_map_address_digits = -1;
99 static int hf_gsm_map_servicecentreaddress_digits = -1;
100 static int hf_gsm_map_TBCD_digits = -1;
101 static int hf_gsm_map_Ss_Status_unused = -1;
102 static int hf_gsm_map_Ss_Status_q_bit = -1;
103 static int hf_gsm_map_Ss_Status_p_bit = -1;
104 static int hf_gsm_map_Ss_Status_r_bit = -1;
105 static int hf_gsm_map_Ss_Status_a_bit = -1;
106 static int hf_gsm_map_notification_to_forwarding_party = -1;
107 static int hf_gsm_map_redirecting_presentation = -1;
108 static int hf_gsm_map_notification_to_calling_party = -1;
109 static int hf_gsm_map_forwarding_reason = -1;
110 static int hf_gsm_map_pdp_type_org = -1;
111 static int hf_gsm_map_etsi_pdp_type_number = -1;
112 static int hf_gsm_map_ietf_pdp_type_number = -1;
113 static int hf_gsm_map_ext_qos_subscribed_pri = -1;
114
115 static int hf_gsm_map_qos_traffic_cls = -1;
116 static int hf_gsm_map_qos_del_order = -1;
117 static int hf_gsm_map_qos_del_of_err_sdu = -1;
118 static int hf_gsm_map_qos_ber = -1;
119 static int hf_gsm_map_qos_sdu_err_rat = -1;
120 static int hf_gsm_map_qos_traff_hdl_pri = -1;
121 static int hf_gsm_map_qos_max_sdu = -1;
122 static int hf_gsm_map_max_brate_ulink = -1;
123 static int hf_gsm_map_max_brate_dlink = -1;
124 static int hf_gsm_map_qos_transfer_delay = -1;
125 static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
126 static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
127 static int hf_gsm_map_GSNAddress_IPv4 = -1;
128 static int hf_gsm_map_GSNAddress_IPv6 = -1;
129 static int hf_gsm_map_ranap_service_Handover = -1;
130 static int hf_gsm_map_IntegrityProtectionInformation = -1;
131 static int hf_gsm_map_EncryptionInformation = -1;
132 static int hf_gsm_map_PlmnContainer_PDU = -1;
133 static int hf_gsm_map_ss_SS_UserData = -1;
134 static int hf_gsm_map_cbs_coding_grp = -1;
135 static int hf_gsm_map_cbs_coding_grp0_lang = -1;
136 static int hf_gsm_map_cbs_coding_grp1_lang = -1;
137 static int hf_gsm_map_cbs_coding_grp2_lang = -1;
138 static int hf_gsm_map_cbs_coding_grp3_lang = -1;
139 static int hf_gsm_map_cbs_coding_grp4_7_comp = -1;
140 static int hf_gsm_map_cbs_coding_grp4_7_class_ind = -1;
141 static int hf_gsm_map_cbs_coding_grp4_7_char_set = -1;
142 static int hf_gsm_map_cbs_coding_grp4_7_class = -1;
143 static int hf_gsm_map_cbs_coding_grp15_mess_code = -1;
144 static int hf_gsm_map_cbs_coding_grp15_class = -1;
145 static int hf_gsm_map_tmsi = -1;
146 static int hf_gsm_map_ie_tag = -1;
147 static int hf_gsm_map_len = -1;
148 static int hf_gsm_map_disc_par = -1;
149 static int hf_gsm_map_dlci = -1;
150 static int hf_gsm_apn_str = -1;
151 static int hf_gsm_map_locationnumber_odd_even = -1;
152 static int hf_gsm_map_locationnumber_nai = -1;
153 static int hf_gsm_map_locationnumber_inn = -1;
154 static int hf_gsm_map_locationnumber_npi = -1;
155 static int hf_gsm_map_locationnumber_apri = -1;
156 static int hf_gsm_map_locationnumber_screening_ind = -1;
157 static int hf_gsm_map_locationnumber_digits = -1;
158 static int hf_gsm_map_ericsson_locationInformation_rat = -1;
159 static int hf_gsm_map_ericsson_locationInformation_lac = -1;
160 static int hf_gsm_map_ericsson_locationInformation_ci = -1;
161 static int hf_gsm_map_ericsson_locationInformation_sac = -1;
162
163
164 /*--- Included file: packet-gsm_map-hf.c ---*/
165 #line 1 "../../asn1/gsm_map/packet-gsm_map-hf.c"
166
167 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
168
169 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
170 static int hf_gsm_map_pcs_Extensions = -1;        /* PCS_Extensions */
171 static int hf_gsm_map_slr_Arg_PCS_Extensions = -1;  /* SLR_Arg_PCS_Extensions */
172 static int hf_gsm_map_PrivateExtensionList_item = -1;  /* PrivateExtension */
173 static int hf_gsm_map_extId = -1;                 /* T_extId */
174 static int hf_gsm_map_extType = -1;               /* T_extType */
175 static int hf_gsm_map_na_ESRK_Request = -1;       /* NULL */
176
177 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
178
179 static int hf_gsm_map_gsm_map_ISDN_AddressString_PDU = -1;  /* ISDN_AddressString */
180 static int hf_gsm_map_protocolId = -1;            /* ProtocolId */
181 static int hf_gsm_map_signalInfo = -1;            /* SignalInfo */
182 static int hf_gsm_map_extensionContainer = -1;    /* ExtensionContainer */
183 static int hf_gsm_map_ext_ProtocolId = -1;        /* Ext_ProtocolId */
184 static int hf_gsm_map_accessNetworkProtocolId = -1;  /* AccessNetworkProtocolId */
185 static int hf_gsm_map_signalInfo_01 = -1;         /* LongSignalInfo */
186 static int hf_gsm_map_imsi = -1;                  /* IMSI */
187 static int hf_gsm_map_imsi_WithLMSI = -1;         /* IMSI_WithLMSI */
188 static int hf_gsm_map_lmsi = -1;                  /* LMSI */
189 static int hf_gsm_map_HLR_List_item = -1;         /* HLR_Id */
190 static int hf_gsm_map_naea_PreferredCIC = -1;     /* NAEA_CIC */
191 static int hf_gsm_map_msisdn = -1;                /* ISDN_AddressString */
192 static int hf_gsm_map_externalAddress = -1;       /* ISDN_AddressString */
193 static int hf_gsm_map_diameter_Name = -1;         /* DiameterIdentity */
194 static int hf_gsm_map_diameter_Realm = -1;        /* DiameterIdentity */
195 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* CellGlobalIdOrServiceAreaIdFixedLength */
196 static int hf_gsm_map_laiFixedLength = -1;        /* LAIFixedLength */
197 static int hf_gsm_map_bearerService = -1;         /* BearerServiceCode */
198 static int hf_gsm_map_teleservice = -1;           /* TeleserviceCode */
199 static int hf_gsm_map_ext_BearerService = -1;     /* Ext_BearerServiceCode */
200 static int hf_gsm_map_ext_Teleservice = -1;       /* Ext_TeleserviceCode */
201 static int hf_gsm_map_maximumentitledPriority = -1;  /* EMLPP_Priority */
202 static int hf_gsm_map_defaultPriority = -1;       /* EMLPP_Priority */
203 static int hf_gsm_map_ss_Code = -1;               /* SS_Code */
204 static int hf_gsm_map_ss_Status = -1;             /* Ext_SS_Status */
205 static int hf_gsm_map_nbrSB = -1;                 /* MaxMC_Bearers */
206 static int hf_gsm_map_nbrUser = -1;               /* MC_Bearers */
207
208 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
209
210 static int hf_gsm_map_ss_ss_Code = -1;            /* SS_Code */
211 static int hf_gsm_map_ss_basicService = -1;       /* BasicServiceCode */
212 static int hf_gsm_map_ss_forwardedToNumber = -1;  /* AddressString */
213 static int hf_gsm_map_ss_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
214 static int hf_gsm_map_ss_noReplyConditionTime = -1;  /* NoReplyConditionTime */
215 static int hf_gsm_map_ss_defaultPriority = -1;    /* EMLPP_Priority */
216 static int hf_gsm_map_ss_nbrUser = -1;            /* MC_Bearers */
217 static int hf_gsm_map_ss_longFTN_Supported = -1;  /* NULL */
218 static int hf_gsm_map_ss_forwardingInfo = -1;     /* ForwardingInfo */
219 static int hf_gsm_map_ss_callBarringInfo = -1;    /* CallBarringInfo */
220 static int hf_gsm_map_ss_ss_Data = -1;            /* SS_Data */
221 static int hf_gsm_map_ss_forwardingFeatureList = -1;  /* ForwardingFeatureList */
222 static int hf_gsm_map_ss_ForwardingFeatureList_item = -1;  /* ForwardingFeature */
223 static int hf_gsm_map_ss_ss_Status = -1;          /* SS_Status */
224 static int hf_gsm_map_ss_forwardedToNumber_01 = -1;  /* ISDN_AddressString */
225 static int hf_gsm_map_ss_forwardingOptions = -1;  /* ForwardingOptions */
226 static int hf_gsm_map_ss_longForwardedToNumber = -1;  /* FTN_AddressString */
227 static int hf_gsm_map_ss_callBarringFeatureList = -1;  /* CallBarringFeatureList */
228 static int hf_gsm_map_ss_CallBarringFeatureList_item = -1;  /* CallBarringFeature */
229 static int hf_gsm_map_ss_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
230 static int hf_gsm_map_ss_basicServiceGroupList = -1;  /* BasicServiceGroupList */
231 static int hf_gsm_map_ss_cliRestrictionOption = -1;  /* CliRestrictionOption */
232 static int hf_gsm_map_ss_overrideCategory = -1;   /* OverrideCategory */
233 static int hf_gsm_map_ss_maximumEntitledPriority = -1;  /* EMLPP_Priority */
234 static int hf_gsm_map_ss_ccbs_FeatureList = -1;   /* CCBS_FeatureList */
235 static int hf_gsm_map_ss_nbrSB = -1;              /* MaxMC_Bearers */
236 static int hf_gsm_map_ss_nbrSN = -1;              /* MC_Bearers */
237 static int hf_gsm_map_ss_CCBS_FeatureList_item = -1;  /* CCBS_Feature */
238 static int hf_gsm_map_ss_ccbs_Index = -1;         /* CCBS_Index */
239 static int hf_gsm_map_ss_b_subscriberNumber = -1;  /* ISDN_AddressString */
240 static int hf_gsm_map_ss_b_subscriberSubaddress = -1;  /* ISDN_SubaddressString */
241 static int hf_gsm_map_ss_basicServiceGroup = -1;  /* BasicServiceCode */
242 static int hf_gsm_map_ss_genericServiceInfo = -1;  /* GenericServiceInfo */
243 static int hf_gsm_map_ss_ussd_DataCodingScheme = -1;  /* USSD_DataCodingScheme */
244 static int hf_gsm_map_ss_ussd_String = -1;        /* USSD_String */
245 static int hf_gsm_map_ss_alertingPattern = -1;    /* AlertingPattern */
246 static int hf_gsm_map_ss_msisdn = -1;             /* ISDN_AddressString */
247 static int hf_gsm_map_ss_SS_List_item = -1;       /* SS_Code */
248 static int hf_gsm_map_ss_BasicServiceGroupList_item = -1;  /* BasicServiceCode */
249 static int hf_gsm_map_ss_imsi = -1;               /* IMSI */
250 static int hf_gsm_map_ss_ss_Event = -1;           /* SS_Code */
251 static int hf_gsm_map_ss_ss_EventSpecification = -1;  /* SS_EventSpecification */
252 static int hf_gsm_map_ss_extensionContainer = -1;  /* ExtensionContainer */
253 static int hf_gsm_map_ss_ccbs_RequestState = -1;  /* CCBS_RequestState */
254 static int hf_gsm_map_ss_SS_EventSpecification_item = -1;  /* AddressString */
255 static int hf_gsm_map_ss_ccbs_Data = -1;          /* CCBS_Data */
256 static int hf_gsm_map_ss_ccbs_Feature = -1;       /* CCBS_Feature */
257 static int hf_gsm_map_ss_translatedB_Number = -1;  /* ISDN_AddressString */
258 static int hf_gsm_map_ss_serviceIndicator = -1;   /* ServiceIndicator */
259 static int hf_gsm_map_ss_callInfo = -1;           /* ExternalSignalInfo */
260 static int hf_gsm_map_ss_networkSignalInfo = -1;  /* ExternalSignalInfo */
261 /* named bits */
262 static int hf_gsm_map_ss_ServiceIndicator_clir_invoked = -1;
263 static int hf_gsm_map_ss_ServiceIndicator_camel_invoked = -1;
264
265 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
266
267 static int hf_gsm_map_er_roamingNotAllowedCause = -1;  /* RoamingNotAllowedCause */
268 static int hf_gsm_map_er_extensionContainer = -1;  /* ExtensionContainer */
269 static int hf_gsm_map_er_additionalRoamingNotAllowedCause = -1;  /* AdditionalRoamingNotAllowedCause */
270 static int hf_gsm_map_er_callBarringCause = -1;   /* CallBarringCause */
271 static int hf_gsm_map_er_extensibleCallBarredParam = -1;  /* ExtensibleCallBarredParam */
272 static int hf_gsm_map_er_unauthorisedMessageOriginator = -1;  /* NULL */
273 static int hf_gsm_map_er_anonymousCallRejection = -1;  /* NULL */
274 static int hf_gsm_map_er_cug_RejectCause = -1;    /* CUG_RejectCause */
275 static int hf_gsm_map_er_ss_Code = -1;            /* SS_Code */
276 static int hf_gsm_map_er_basicService = -1;       /* BasicServiceCode */
277 static int hf_gsm_map_er_ss_Status = -1;          /* SS_Status */
278 static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause = -1;  /* SM_EnumeratedDeliveryFailureCause */
279 static int hf_gsm_map_er_diagnosticInfo = -1;     /* SignalInfo */
280 static int hf_gsm_map_er_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
281 static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
282 static int hf_gsm_map_er_imsi = -1;               /* IMSI */
283 static int hf_gsm_map_er_networkResource = -1;    /* NetworkResource */
284 static int hf_gsm_map_er_extensibleSystemFailureParam = -1;  /* ExtensibleSystemFailureParam */
285 static int hf_gsm_map_er_additionalNetworkResource = -1;  /* AdditionalNetworkResource */
286 static int hf_gsm_map_er_failureCauseParam = -1;  /* FailureCauseParam */
287 static int hf_gsm_map_er_unexpectedSubscriber = -1;  /* NULL */
288 static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported = -1;  /* NULL */
289 static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode = -1;  /* NULL */
290 static int hf_gsm_map_er_unknownSubscriberDiagnostic = -1;  /* UnknownSubscriberDiagnostic */
291 static int hf_gsm_map_er_absentSubscriberReason = -1;  /* AbsentSubscriberReason */
292 static int hf_gsm_map_er_ccbs_Possible = -1;      /* NULL */
293 static int hf_gsm_map_er_ccbs_Busy = -1;          /* NULL */
294 static int hf_gsm_map_er_gprsConnectionSuspended = -1;  /* NULL */
295 static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic = -1;  /* UnauthorizedLCSClient_Diagnostic */
296 static int hf_gsm_map_er_positionMethodFailure_Diagnostic = -1;  /* PositionMethodFailure_Diagnostic */
297
298 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
299
300 static int hf_gsm_map_sm_msisdn = -1;             /* ISDN_AddressString */
301 static int hf_gsm_map_sm_sm_RP_PRI = -1;          /* BOOLEAN */
302 static int hf_gsm_map_sm_serviceCentreAddress = -1;  /* AddressString */
303 static int hf_gsm_map_sm_extensionContainer = -1;  /* ExtensionContainer */
304 static int hf_gsm_map_sm_gprsSupportIndicator = -1;  /* NULL */
305 static int hf_gsm_map_sm_sm_RP_MTI = -1;          /* SM_RP_MTI */
306 static int hf_gsm_map_sm_sm_RP_SMEA = -1;         /* SM_RP_SMEA */
307 static int hf_gsm_map_sm_sm_deliveryNotIntended = -1;  /* SM_DeliveryNotIntended */
308 static int hf_gsm_map_sm_ip_sm_gwGuidanceIndicator = -1;  /* NULL */
309 static int hf_gsm_map_sm_imsi = -1;               /* IMSI */
310 static int hf_gsm_map_sm_locationInfoWithLMSI = -1;  /* LocationInfoWithLMSI */
311 static int hf_gsm_map_sm_ip_sm_gwGuidance = -1;   /* IP_SM_GW_Guidance */
312 static int hf_gsm_map_sm_minimumDeliveryTimeValue = -1;  /* SM_DeliveryTimerValue */
313 static int hf_gsm_map_sm_recommendedDeliveryTimeValue = -1;  /* SM_DeliveryTimerValue */
314 static int hf_gsm_map_sm_networkNode_Number = -1;  /* ISDN_AddressString */
315 static int hf_gsm_map_sm_lmsi = -1;               /* LMSI */
316 static int hf_gsm_map_sm_gprsNodeIndicator = -1;  /* NULL */
317 static int hf_gsm_map_sm_additional_Number = -1;  /* Additional_Number */
318 static int hf_gsm_map_sm_networkNodeDiameterAddress = -1;  /* NetworkNodeDiameterAddress */
319 static int hf_gsm_map_sm_additionalNetworkNodeDiameterAddress = -1;  /* NetworkNodeDiameterAddress */
320 static int hf_gsm_map_sm_thirdNumber = -1;        /* Additional_Number */
321 static int hf_gsm_map_sm_thirdNetworkNodeDiameterAddress = -1;  /* NetworkNodeDiameterAddress */
322 static int hf_gsm_map_sm_imsNodeIndicator = -1;   /* NULL */
323 static int hf_gsm_map_sm_msc_Number = -1;         /* ISDN_AddressString */
324 static int hf_gsm_map_sm_sgsn_Number = -1;        /* ISDN_AddressString */
325 static int hf_gsm_map_sm_sm_RP_DA = -1;           /* SM_RP_DA */
326 static int hf_gsm_map_sm_sm_RP_OA = -1;           /* SM_RP_OA */
327 static int hf_gsm_map_sm_sm_RP_UI = -1;           /* SignalInfo */
328 static int hf_gsm_map_sm_moreMessagesToSend = -1;  /* NULL */
329 static int hf_gsm_map_sm_smDeliveryTimer = -1;    /* SM_DeliveryTimerValue */
330 static int hf_gsm_map_sm_smDeliveryStartTime = -1;  /* Time */
331 static int hf_gsm_map_sm_smsOverIP_OnlyIndicator = -1;  /* NULL */
332 static int hf_gsm_map_sm_imsi_01 = -1;            /* T_imsi */
333 static int hf_gsm_map_sm_lmsi_01 = -1;            /* T_lmsi */
334 static int hf_gsm_map_sm_serviceCentreAddressDA = -1;  /* T_serviceCentreAddressDA */
335 static int hf_gsm_map_sm_noSM_RP_DA = -1;         /* NULL */
336 static int hf_gsm_map_sm_msisdn_01 = -1;          /* T_msisdn */
337 static int hf_gsm_map_sm_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
338 static int hf_gsm_map_sm_noSM_RP_OA = -1;         /* NULL */
339 static int hf_gsm_map_sm_sm_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
340 static int hf_gsm_map_sm_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
341 static int hf_gsm_map_sm_deliveryOutcomeIndicator = -1;  /* NULL */
342 static int hf_gsm_map_sm_additionalSM_DeliveryOutcome = -1;  /* SM_DeliveryOutcome */
343 static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
344 static int hf_gsm_map_sm_ip_sm_gw_Indicator = -1;  /* NULL */
345 static int hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome = -1;  /* SM_DeliveryOutcome */
346 static int hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM = -1;  /* AbsentSubscriberDiagnosticSM */
347 static int hf_gsm_map_sm_storedMSISDN = -1;       /* ISDN_AddressString */
348 static int hf_gsm_map_sm_mw_Status = -1;          /* MW_Status */
349 static int hf_gsm_map_sm_alertReason = -1;        /* AlertReason */
350 static int hf_gsm_map_sm_alertReasonIndicator = -1;  /* NULL */
351 static int hf_gsm_map_sm_additionalAlertReasonIndicator = -1;  /* NULL */
352 static int hf_gsm_map_sm_asciCallReference = -1;  /* ASCI_CallReference */
353 static int hf_gsm_map_sm_dispatcherList = -1;     /* DispatcherList */
354 static int hf_gsm_map_sm_ongoingCall = -1;        /* NULL */
355 static int hf_gsm_map_sm_additionalDispatcherList = -1;  /* AdditionalDispatcherList */
356 static int hf_gsm_map_sm_DispatcherList_item = -1;  /* ISDN_AddressString */
357 static int hf_gsm_map_sm_AdditionalDispatcherList_item = -1;  /* ISDN_AddressString */
358 /* named bits */
359 static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded = -1;
360 static int hf_gsm_map_sm_MW_Status_mnrf_Set = -1;
361 static int hf_gsm_map_sm_MW_Status_mcef_Set = -1;
362 static int hf_gsm_map_sm_MW_Status_mnrg_Set = -1;
363
364 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
365
366 static int hf_gsm_map_om_imsi = -1;               /* IMSI */
367 static int hf_gsm_map_om_traceReference = -1;     /* TraceReference */
368 static int hf_gsm_map_om_traceType = -1;          /* TraceType */
369 static int hf_gsm_map_om_omc_Id = -1;             /* AddressString */
370 static int hf_gsm_map_om_extensionContainer = -1;  /* ExtensionContainer */
371 static int hf_gsm_map_om_traceReference2 = -1;    /* TraceReference2 */
372 static int hf_gsm_map_om_traceDepthList = -1;     /* TraceDepthList */
373 static int hf_gsm_map_om_traceNE_TypeList = -1;   /* TraceNE_TypeList */
374 static int hf_gsm_map_om_traceInterfaceList = -1;  /* TraceInterfaceList */
375 static int hf_gsm_map_om_traceEventList = -1;     /* TraceEventList */
376 static int hf_gsm_map_om_traceCollectionEntity = -1;  /* GSN_Address */
377 static int hf_gsm_map_om_mdt_Configuration = -1;  /* MDT_Configuration */
378 static int hf_gsm_map_om_jobType = -1;            /* JobType */
379 static int hf_gsm_map_om_areaScope = -1;          /* AreaScope */
380 static int hf_gsm_map_om_listOfMeasurements = -1;  /* ListOfMeasurements */
381 static int hf_gsm_map_om_reportingTrigger = -1;   /* ReportingTrigger */
382 static int hf_gsm_map_om_reportInterval = -1;     /* ReportInterval */
383 static int hf_gsm_map_om_reportAmount = -1;       /* ReportAmount */
384 static int hf_gsm_map_om_eventThresholdRSRP = -1;  /* EventThresholdRSRP */
385 static int hf_gsm_map_om_eventThresholdRSRQ = -1;  /* EventThresholdRSRQ */
386 static int hf_gsm_map_om_loggingInterval = -1;    /* LoggingInterval */
387 static int hf_gsm_map_om_loggingDuration = -1;    /* LoggingDuration */
388 static int hf_gsm_map_om_cgi_List = -1;           /* CGI_List */
389 static int hf_gsm_map_om_e_utran_cgi_List = -1;   /* E_UTRAN_CGI_List */
390 static int hf_gsm_map_om_routingAreaId_List = -1;  /* RoutingAreaId_List */
391 static int hf_gsm_map_om_locationAreaId_List = -1;  /* LocationAreaId_List */
392 static int hf_gsm_map_om_trackingAreaId_List = -1;  /* TrackingAreaId_List */
393 static int hf_gsm_map_om_CGI_List_item = -1;      /* GlobalCellId */
394 static int hf_gsm_map_om_E_UTRAN_CGI_List_item = -1;  /* E_UTRAN_CGI */
395 static int hf_gsm_map_om_RoutingAreaId_List_item = -1;  /* RAIdentity */
396 static int hf_gsm_map_om_LocationAreaId_List_item = -1;  /* LAIFixedLength */
397 static int hf_gsm_map_om_TrackingAreaId_List_item = -1;  /* TA_Id */
398 static int hf_gsm_map_om_msc_s_TraceDepth = -1;   /* TraceDepth */
399 static int hf_gsm_map_om_mgw_TraceDepth = -1;     /* TraceDepth */
400 static int hf_gsm_map_om_sgsn_TraceDepth = -1;    /* TraceDepth */
401 static int hf_gsm_map_om_ggsn_TraceDepth = -1;    /* TraceDepth */
402 static int hf_gsm_map_om_rnc_TraceDepth = -1;     /* TraceDepth */
403 static int hf_gsm_map_om_bmsc_TraceDepth = -1;    /* TraceDepth */
404 static int hf_gsm_map_om_mme_TraceDepth = -1;     /* TraceDepth */
405 static int hf_gsm_map_om_sgw_TraceDepth = -1;     /* TraceDepth */
406 static int hf_gsm_map_om_pgw_TraceDepth = -1;     /* TraceDepth */
407 static int hf_gsm_map_om_eNB_TraceDepth = -1;     /* TraceDepth */
408 static int hf_gsm_map_om_msc_s_TraceDepthExtension = -1;  /* TraceDepthExtension */
409 static int hf_gsm_map_om_mgw_TraceDepthExtension = -1;  /* TraceDepthExtension */
410 static int hf_gsm_map_om_sgsn_TraceDepthExtension = -1;  /* TraceDepthExtension */
411 static int hf_gsm_map_om_ggsn_TraceDepthExtension = -1;  /* TraceDepthExtension */
412 static int hf_gsm_map_om_rnc_TraceDepthExtension = -1;  /* TraceDepthExtension */
413 static int hf_gsm_map_om_bmsc_TraceDepthExtension = -1;  /* TraceDepthExtension */
414 static int hf_gsm_map_om_mme_TraceDepthExtension = -1;  /* TraceDepthExtension */
415 static int hf_gsm_map_om_sgw_TraceDepthExtension = -1;  /* TraceDepthExtension */
416 static int hf_gsm_map_om_pgw_TraceDepthExtension = -1;  /* TraceDepthExtension */
417 static int hf_gsm_map_om_eNB_TraceDepthExtension = -1;  /* TraceDepthExtension */
418 static int hf_gsm_map_om_msc_s_List = -1;         /* MSC_S_InterfaceList */
419 static int hf_gsm_map_om_mgw_List = -1;           /* MGW_InterfaceList */
420 static int hf_gsm_map_om_sgsn_List = -1;          /* SGSN_InterfaceList */
421 static int hf_gsm_map_om_ggsn_List = -1;          /* GGSN_InterfaceList */
422 static int hf_gsm_map_om_rnc_List = -1;           /* RNC_InterfaceList */
423 static int hf_gsm_map_om_bmsc_List = -1;          /* BMSC_InterfaceList */
424 static int hf_gsm_map_om_mme_List = -1;           /* MME_InterfaceList */
425 static int hf_gsm_map_om_sgw_List = -1;           /* SGW_InterfaceList */
426 static int hf_gsm_map_om_pgw_List = -1;           /* PGW_InterfaceList */
427 static int hf_gsm_map_om_eNB_List = -1;           /* ENB_InterfaceList */
428 static int hf_gsm_map_om_msc_s_List_01 = -1;      /* MSC_S_EventList */
429 static int hf_gsm_map_om_mgw_List_01 = -1;        /* MGW_EventList */
430 static int hf_gsm_map_om_sgsn_List_01 = -1;       /* SGSN_EventList */
431 static int hf_gsm_map_om_ggsn_List_01 = -1;       /* GGSN_EventList */
432 static int hf_gsm_map_om_bmsc_List_01 = -1;       /* BMSC_EventList */
433 static int hf_gsm_map_om_mme_List_01 = -1;        /* MME_EventList */
434 static int hf_gsm_map_om_sgw_List_01 = -1;        /* SGW_EventList */
435 static int hf_gsm_map_om_pgw_List_01 = -1;        /* PGW_EventList */
436 static int hf_gsm_map_om_traceRecordingSessionReference = -1;  /* TraceRecordingSessionReference */
437 static int hf_gsm_map_om_rnc_InterfaceList = -1;  /* RNC_InterfaceList */
438 static int hf_gsm_map_om_msc_s_InterfaceList = -1;  /* MSC_S_InterfaceList */
439 static int hf_gsm_map_om_msc_s_EventList = -1;    /* MSC_S_EventList */
440 static int hf_gsm_map_om_mgw_InterfaceList = -1;  /* MGW_InterfaceList */
441 static int hf_gsm_map_om_mgw_EventList = -1;      /* MGW_EventList */
442 static int hf_gsm_map_om_traceSupportIndicator = -1;  /* NULL */
443 /* named bits */
444 static int hf_gsm_map_om_TraceNE_TypeList_msc_s = -1;
445 static int hf_gsm_map_om_TraceNE_TypeList_mgw = -1;
446 static int hf_gsm_map_om_TraceNE_TypeList_sgsn = -1;
447 static int hf_gsm_map_om_TraceNE_TypeList_ggsn = -1;
448 static int hf_gsm_map_om_TraceNE_TypeList_rnc = -1;
449 static int hf_gsm_map_om_TraceNE_TypeList_bm_sc = -1;
450 static int hf_gsm_map_om_TraceNE_TypeList_mme = -1;
451 static int hf_gsm_map_om_TraceNE_TypeList_sgw = -1;
452 static int hf_gsm_map_om_TraceNE_TypeList_pgw = -1;
453 static int hf_gsm_map_om_TraceNE_TypeList_eNB = -1;
454 static int hf_gsm_map_om_MSC_S_InterfaceList_a = -1;
455 static int hf_gsm_map_om_MSC_S_InterfaceList_iu = -1;
456 static int hf_gsm_map_om_MSC_S_InterfaceList_mc = -1;
457 static int hf_gsm_map_om_MSC_S_InterfaceList_map_g = -1;
458 static int hf_gsm_map_om_MSC_S_InterfaceList_map_b = -1;
459 static int hf_gsm_map_om_MSC_S_InterfaceList_map_e = -1;
460 static int hf_gsm_map_om_MSC_S_InterfaceList_map_f = -1;
461 static int hf_gsm_map_om_MSC_S_InterfaceList_cap = -1;
462 static int hf_gsm_map_om_MSC_S_InterfaceList_map_d = -1;
463 static int hf_gsm_map_om_MSC_S_InterfaceList_map_c = -1;
464 static int hf_gsm_map_om_MGW_InterfaceList_mc = -1;
465 static int hf_gsm_map_om_MGW_InterfaceList_nb_up = -1;
466 static int hf_gsm_map_om_MGW_InterfaceList_iu_up = -1;
467 static int hf_gsm_map_om_SGSN_InterfaceList_gb = -1;
468 static int hf_gsm_map_om_SGSN_InterfaceList_iu = -1;
469 static int hf_gsm_map_om_SGSN_InterfaceList_gn = -1;
470 static int hf_gsm_map_om_SGSN_InterfaceList_map_gr = -1;
471 static int hf_gsm_map_om_SGSN_InterfaceList_map_gd = -1;
472 static int hf_gsm_map_om_SGSN_InterfaceList_map_gf = -1;
473 static int hf_gsm_map_om_SGSN_InterfaceList_gs = -1;
474 static int hf_gsm_map_om_SGSN_InterfaceList_ge = -1;
475 static int hf_gsm_map_om_SGSN_InterfaceList_s3 = -1;
476 static int hf_gsm_map_om_SGSN_InterfaceList_s4 = -1;
477 static int hf_gsm_map_om_SGSN_InterfaceList_s6d = -1;
478 static int hf_gsm_map_om_GGSN_InterfaceList_gn = -1;
479 static int hf_gsm_map_om_GGSN_InterfaceList_gi = -1;
480 static int hf_gsm_map_om_GGSN_InterfaceList_gmb = -1;
481 static int hf_gsm_map_om_RNC_InterfaceList_iu = -1;
482 static int hf_gsm_map_om_RNC_InterfaceList_iur = -1;
483 static int hf_gsm_map_om_RNC_InterfaceList_iub = -1;
484 static int hf_gsm_map_om_RNC_InterfaceList_uu = -1;
485 static int hf_gsm_map_om_BMSC_InterfaceList_gmb = -1;
486 static int hf_gsm_map_om_MME_InterfaceList_s1_mme = -1;
487 static int hf_gsm_map_om_MME_InterfaceList_s3 = -1;
488 static int hf_gsm_map_om_MME_InterfaceList_s6a = -1;
489 static int hf_gsm_map_om_MME_InterfaceList_s10 = -1;
490 static int hf_gsm_map_om_MME_InterfaceList_s11 = -1;
491 static int hf_gsm_map_om_SGW_InterfaceList_s4 = -1;
492 static int hf_gsm_map_om_SGW_InterfaceList_s5 = -1;
493 static int hf_gsm_map_om_SGW_InterfaceList_s8b = -1;
494 static int hf_gsm_map_om_SGW_InterfaceList_s11 = -1;
495 static int hf_gsm_map_om_SGW_InterfaceList_gxc = -1;
496 static int hf_gsm_map_om_PGW_InterfaceList_s2a = -1;
497 static int hf_gsm_map_om_PGW_InterfaceList_s2b = -1;
498 static int hf_gsm_map_om_PGW_InterfaceList_s2c = -1;
499 static int hf_gsm_map_om_PGW_InterfaceList_s5 = -1;
500 static int hf_gsm_map_om_PGW_InterfaceList_s6b = -1;
501 static int hf_gsm_map_om_PGW_InterfaceList_gx = -1;
502 static int hf_gsm_map_om_PGW_InterfaceList_s8b = -1;
503 static int hf_gsm_map_om_PGW_InterfaceList_sgi = -1;
504 static int hf_gsm_map_om_ENB_InterfaceList_s1_mme = -1;
505 static int hf_gsm_map_om_ENB_InterfaceList_x2 = -1;
506 static int hf_gsm_map_om_ENB_InterfaceList_uu = -1;
507 static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall = -1;
508 static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms = -1;
509 static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1;
510 static int hf_gsm_map_om_MSC_S_EventList_handovers = -1;
511 static int hf_gsm_map_om_MSC_S_EventList_ss = -1;
512 static int hf_gsm_map_om_MGW_EventList_context = -1;
513 static int hf_gsm_map_om_SGSN_EventList_pdpContext = -1;
514 static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms = -1;
515 static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach = -1;
516 static int hf_gsm_map_om_SGSN_EventList_mbmsContext = -1;
517 static int hf_gsm_map_om_GGSN_EventList_pdpContext = -1;
518 static int hf_gsm_map_om_GGSN_EventList_mbmsContext = -1;
519 static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation = -1;
520 static int hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest = -1;
521 static int hf_gsm_map_om_MME_EventList_serviceRequestts = -1;
522 static int hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach = -1;
523 static int hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection = -1;
524 static int hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion = -1;
525 static int hf_gsm_map_om_MME_EventList_handover = -1;
526 static int hf_gsm_map_om_SGW_EventList_pdn_connectionCreation = -1;
527 static int hf_gsm_map_om_SGW_EventList_pdn_connectionTermination = -1;
528 static int hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion = -1;
529 static int hf_gsm_map_om_PGW_EventList_pdn_connectionCreation = -1;
530 static int hf_gsm_map_om_PGW_EventList_pdn_connectionTermination = -1;
531 static int hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion = -1;
532
533 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
534
535 static int hf_gsm_map_ms_imsi = -1;               /* IMSI */
536 static int hf_gsm_map_ms_msc_Number = -1;         /* ISDN_AddressString */
537 static int hf_gsm_map_ms_vlr_Number = -1;         /* ISDN_AddressString */
538 static int hf_gsm_map_ms_lmsi = -1;               /* LMSI */
539 static int hf_gsm_map_ms_extensionContainer = -1;  /* ExtensionContainer */
540 static int hf_gsm_map_ms_vlr_Capability = -1;     /* VLR_Capability */
541 static int hf_gsm_map_ms_informPreviousNetworkEntity = -1;  /* NULL */
542 static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE = -1;  /* NULL */
543 static int hf_gsm_map_ms_v_gmlc_Address = -1;     /* GSN_Address */
544 static int hf_gsm_map_ms_add_info = -1;           /* ADD_Info */
545 static int hf_gsm_map_ms_pagingArea = -1;         /* PagingArea */
546 static int hf_gsm_map_ms_skipSubscriberDataUpdate = -1;  /* NULL */
547 static int hf_gsm_map_ms_restorationIndicator = -1;  /* NULL */
548 static int hf_gsm_map_ms_eplmn_List = -1;         /* EPLMN_List */
549 static int hf_gsm_map_ms_mme_DiameterAddress = -1;  /* NetworkNodeDiameterAddress */
550 static int hf_gsm_map_ms_supportedCamelPhases = -1;  /* SupportedCamelPhases */
551 static int hf_gsm_map_ms_solsaSupportIndicator = -1;  /* NULL */
552 static int hf_gsm_map_ms_istSupportIndicator = -1;  /* IST_SupportIndicator */
553 static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity = -1;  /* SuperChargerInfo */
554 static int hf_gsm_map_ms_longFTN_Supported = -1;  /* NULL */
555 static int hf_gsm_map_ms_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
556 static int hf_gsm_map_ms_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
557 static int hf_gsm_map_ms_supportedRAT_TypesIndicator = -1;  /* SupportedRAT_Types */
558 static int hf_gsm_map_ms_longGroupID_Supported = -1;  /* NULL */
559 static int hf_gsm_map_ms_mtRoamingForwardingSupported = -1;  /* NULL */
560 static int hf_gsm_map_ms_msisdn_lessOperation_Supported = -1;  /* NULL */
561 static int hf_gsm_map_ms_sendSubscriberData = -1;  /* NULL */
562 static int hf_gsm_map_ms_subscriberDataStored = -1;  /* AgeIndicator */
563 static int hf_gsm_map_ms_hlr_Number = -1;         /* ISDN_AddressString */
564 static int hf_gsm_map_ms_add_Capability = -1;     /* NULL */
565 static int hf_gsm_map_ms_pagingArea_Capability = -1;  /* NULL */
566 static int hf_gsm_map_ms_imeisv = -1;             /* IMEI */
567 static int hf_gsm_map_ms_PagingArea_item = -1;    /* LocationArea */
568 static int hf_gsm_map_ms_laiFixedLength = -1;     /* LAIFixedLength */
569 static int hf_gsm_map_ms_lac = -1;                /* LAC */
570 static int hf_gsm_map_ms_identity = -1;           /* Identity */
571 static int hf_gsm_map_ms_cancellationType = -1;   /* CancellationType */
572 static int hf_gsm_map_ms_typeOfUpdate = -1;       /* TypeOfUpdate */
573 static int hf_gsm_map_ms_mtrf_SupportedAndAuthorized = -1;  /* NULL */
574 static int hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized = -1;  /* NULL */
575 static int hf_gsm_map_ms_newMSC_Number = -1;      /* ISDN_AddressString */
576 static int hf_gsm_map_ms_newVLR_Number = -1;      /* ISDN_AddressString */
577 static int hf_gsm_map_ms_new_lmsi = -1;           /* LMSI */
578 static int hf_gsm_map_ms_sgsn_Number = -1;        /* ISDN_AddressString */
579 static int hf_gsm_map_ms_freezeTMSI = -1;         /* NULL */
580 static int hf_gsm_map_ms_freezeP_TMSI = -1;       /* NULL */
581 static int hf_gsm_map_ms_freezeM_TMSI = -1;       /* NULL */
582 static int hf_gsm_map_ms_tmsi = -1;               /* TMSI */
583 static int hf_gsm_map_ms_numberOfRequestedVectors = -1;  /* NumberOfRequestedVectors */
584 static int hf_gsm_map_ms_segmentationProhibited = -1;  /* NULL */
585 static int hf_gsm_map_ms_previous_LAI = -1;       /* LAIFixedLength */
586 static int hf_gsm_map_ms_hopCounter = -1;         /* HopCounter */
587 static int hf_gsm_map_ms_authenticationSetList = -1;  /* AuthenticationSetList */
588 static int hf_gsm_map_ms_currentSecurityContext = -1;  /* CurrentSecurityContext */
589 static int hf_gsm_map_ms_tripletList = -1;        /* TripletList */
590 static int hf_gsm_map_ms_quintupletList = -1;     /* QuintupletList */
591 static int hf_gsm_map_ms_TripletList_item = -1;   /* AuthenticationTriplet */
592 static int hf_gsm_map_ms_QuintupletList_item = -1;  /* AuthenticationQuintuplet */
593 static int hf_gsm_map_ms_rand = -1;               /* RAND */
594 static int hf_gsm_map_ms_sres = -1;               /* SRES */
595 static int hf_gsm_map_ms_kc = -1;                 /* Kc */
596 static int hf_gsm_map_ms_xres = -1;               /* XRES */
597 static int hf_gsm_map_ms_ck = -1;                 /* CK */
598 static int hf_gsm_map_ms_ik = -1;                 /* IK */
599 static int hf_gsm_map_ms_autn = -1;               /* AUTN */
600 static int hf_gsm_map_ms_gsm_SecurityContextData = -1;  /* GSM_SecurityContextData */
601 static int hf_gsm_map_ms_umts_SecurityContextData = -1;  /* UMTS_SecurityContextData */
602 static int hf_gsm_map_ms_cksn = -1;               /* Cksn */
603 static int hf_gsm_map_ms_ksi = -1;                /* KSI */
604 static int hf_gsm_map_ms_failureCause = -1;       /* FailureCause */
605 static int hf_gsm_map_ms_re_attempt = -1;         /* BOOLEAN */
606 static int hf_gsm_map_ms_accessType = -1;         /* AccessType */
607 static int hf_gsm_map_ms_sgsn_Address = -1;       /* GSN_Address */
608 static int hf_gsm_map_ms_sgsn_Capability = -1;    /* SGSN_Capability */
609 static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE = -1;  /* NULL */
610 static int hf_gsm_map_ms_eps_info = -1;           /* EPS_Info */
611 static int hf_gsm_map_ms_servingNodeTypeIndicator = -1;  /* NULL */
612 static int hf_gsm_map_ms_usedRAT_Type = -1;       /* Used_RAT_Type */
613 static int hf_gsm_map_ms_gprsSubscriptionDataNotNeeded = -1;  /* NULL */
614 static int hf_gsm_map_ms_nodeTypeIndicator = -1;  /* NULL */
615 static int hf_gsm_map_ms_areaRestricted = -1;     /* NULL */
616 static int hf_gsm_map_ms_ue_reachableIndicator = -1;  /* NULL */
617 static int hf_gsm_map_ms_epsSubscriptionDataNotNeeded = -1;  /* NULL */
618 static int hf_gsm_map_ms_ue_srvcc_Capability = -1;  /* UE_SRVCC_Capability */
619 static int hf_gsm_map_ms_mmeNumberforMTSMS = -1;  /* ISDN_AddressString */
620 static int hf_gsm_map_ms_smsRegisterRequest = -1;  /* SMSRegisterRequest */
621 static int hf_gsm_map_ms_sms_Only = -1;           /* NULL */
622 static int hf_gsm_map_ms_pdn_gw_update = -1;      /* PDN_GW_Update */
623 static int hf_gsm_map_ms_isr_Information = -1;    /* ISR_Information */
624 static int hf_gsm_map_ms_apn = -1;                /* APN */
625 static int hf_gsm_map_ms_pdn_gw_Identity = -1;    /* PDN_GW_Identity */
626 static int hf_gsm_map_ms_contextId = -1;          /* ContextId */
627 static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator = -1;  /* NULL */
628 static int hf_gsm_map_ms_smsCallBarringSupportIndicator = -1;  /* NULL */
629 static int hf_gsm_map_ms_supportedFeatures = -1;  /* SupportedFeatures */
630 static int hf_gsm_map_ms_t_adsDataRetrieval = -1;  /* NULL */
631 static int hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions = -1;  /* BOOLEAN */
632 static int hf_gsm_map_ms_cancellationTypeInitialAttach = -1;  /* NULL */
633 static int hf_gsm_map_ms_additionalMsisdnSupport = -1;  /* NULL */
634 static int hf_gsm_map_ms_sgsn_mmeSeparationSupported = -1;  /* NULL */
635 static int hf_gsm_map_ms_mmeRegisteredforSMS = -1;  /* NULL */
636 static int hf_gsm_map_ms_EPLMN_List_item = -1;    /* PLMN_Id */
637 static int hf_gsm_map_ms_an_APDU = -1;            /* AccessNetworkSignalInfo */
638 static int hf_gsm_map_ms_integrityProtectionInfo = -1;  /* IntegrityProtectionInformation */
639 static int hf_gsm_map_ms_encryptionInfo = -1;     /* EncryptionInformation */
640 static int hf_gsm_map_ms_keyStatus = -1;          /* KeyStatus */
641 static int hf_gsm_map_ms_allowedGSM_Algorithms = -1;  /* AllowedGSM_Algorithms */
642 static int hf_gsm_map_ms_allowedUMTS_Algorithms = -1;  /* AllowedUMTS_Algorithms */
643 static int hf_gsm_map_ms_radioResourceInformation = -1;  /* RadioResourceInformation */
644 static int hf_gsm_map_ms_radioResourceList = -1;  /* RadioResourceList */
645 static int hf_gsm_map_ms_bssmap_ServiceHandover = -1;  /* BSSMAP_ServiceHandover */
646 static int hf_gsm_map_ms_ranap_ServiceHandover = -1;  /* RANAP_ServiceHandover */
647 static int hf_gsm_map_ms_bssmap_ServiceHandoverList = -1;  /* BSSMAP_ServiceHandoverList */
648 static int hf_gsm_map_ms_currentlyUsedCodec = -1;  /* Codec */
649 static int hf_gsm_map_ms_iuSupportedCodecsList = -1;  /* SupportedCodecsList */
650 static int hf_gsm_map_ms_rab_ConfigurationIndicator = -1;  /* NULL */
651 static int hf_gsm_map_ms_iuSelectedCodec = -1;    /* Codec */
652 static int hf_gsm_map_ms_alternativeChannelType = -1;  /* RadioResourceInformation */
653 static int hf_gsm_map_ms_tracePropagationList = -1;  /* TracePropagationList */
654 static int hf_gsm_map_ms_aoipSupportedCodecsListAnchor = -1;  /* AoIPCodecsList */
655 static int hf_gsm_map_ms_aoipSelectedCodecTarget = -1;  /* AoIPCodec */
656 static int hf_gsm_map_ms_integrityProtectionAlgorithms = -1;  /* PermittedIntegrityProtectionAlgorithms */
657 static int hf_gsm_map_ms_encryptionAlgorithms = -1;  /* PermittedEncryptionAlgorithms */
658 static int hf_gsm_map_ms_targetCellId = -1;       /* GlobalCellId */
659 static int hf_gsm_map_ms_ho_NumberNotRequired = -1;  /* NULL */
660 static int hf_gsm_map_ms_targetRNCId = -1;        /* RNCId */
661 static int hf_gsm_map_ms_multipleBearerRequested = -1;  /* NULL */
662 static int hf_gsm_map_ms_rab_Id = -1;             /* RAB_Id */
663 static int hf_gsm_map_ms_asciCallReference = -1;  /* ASCI_CallReference */
664 static int hf_gsm_map_ms_geran_classmark = -1;    /* GERAN_Classmark */
665 static int hf_gsm_map_ms_iuCurrentlyUsedCodec = -1;  /* Codec */
666 static int hf_gsm_map_ms_uesbi_Iu = -1;           /* UESBI_Iu */
667 static int hf_gsm_map_ms_regionalSubscriptionData = -1;  /* ZoneCodeList */
668 static int hf_gsm_map_ms_lclsGlobalCallReference = -1;  /* LCLS_GlobalCallReference */
669 static int hf_gsm_map_ms_lcls_Negotiation = -1;   /* LCLS_Negotiation */
670 static int hf_gsm_map_ms_lcls_Configuration_Preference = -1;  /* LCLS_ConfigurationPreference */
671 static int hf_gsm_map_ms_csg_SubscriptionDataList = -1;  /* CSG_SubscriptionDataList */
672 static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item = -1;  /* BSSMAP_ServiceHandoverInfo */
673 static int hf_gsm_map_ms_RadioResourceList_item = -1;  /* RadioResource */
674 static int hf_gsm_map_ms_handoverNumber = -1;     /* ISDN_AddressString */
675 static int hf_gsm_map_ms_relocationNumberList = -1;  /* RelocationNumberList */
676 static int hf_gsm_map_ms_multicallBearerInfo = -1;  /* MulticallBearerInfo */
677 static int hf_gsm_map_ms_multipleBearerNotSupported = -1;  /* NULL */
678 static int hf_gsm_map_ms_selectedUMTS_Algorithms = -1;  /* SelectedUMTS_Algorithms */
679 static int hf_gsm_map_ms_chosenRadioResourceInformation = -1;  /* ChosenRadioResourceInformation */
680 static int hf_gsm_map_ms_iuAvailableCodecsList = -1;  /* CodecList */
681 static int hf_gsm_map_ms_aoipAvailableCodecsListMap = -1;  /* AoIPCodecsList */
682 static int hf_gsm_map_ms_integrityProtectionAlgorithm = -1;  /* ChosenIntegrityProtectionAlgorithm */
683 static int hf_gsm_map_ms_encryptionAlgorithm = -1;  /* ChosenEncryptionAlgorithm */
684 static int hf_gsm_map_ms_chosenChannelInfo = -1;  /* ChosenChannelInfo */
685 static int hf_gsm_map_ms_chosenSpeechVersion = -1;  /* ChosenSpeechVersion */
686 static int hf_gsm_map_ms_targetMSC_Number = -1;   /* ISDN_AddressString */
687 static int hf_gsm_map_ms_selectedRab_Id = -1;     /* RAB_Id */
688 static int hf_gsm_map_ms_selectedGSM_Algorithm = -1;  /* SelectedGSM_Algorithm */
689 static int hf_gsm_map_ms_iUSelectedCodec = -1;    /* Codec */
690 static int hf_gsm_map_ms_codec1 = -1;             /* AoIPCodec */
691 static int hf_gsm_map_ms_codec2 = -1;             /* AoIPCodec */
692 static int hf_gsm_map_ms_codec3 = -1;             /* AoIPCodec */
693 static int hf_gsm_map_ms_codec4 = -1;             /* AoIPCodec */
694 static int hf_gsm_map_ms_codec5 = -1;             /* AoIPCodec */
695 static int hf_gsm_map_ms_codec6 = -1;             /* AoIPCodec */
696 static int hf_gsm_map_ms_codec7 = -1;             /* AoIPCodec */
697 static int hf_gsm_map_ms_codec8 = -1;             /* AoIPCodec */
698 static int hf_gsm_map_ms_utranCodecList = -1;     /* CodecList */
699 static int hf_gsm_map_ms_geranCodecList = -1;     /* CodecList */
700 static int hf_gsm_map_ms_codec1_01 = -1;          /* Codec */
701 static int hf_gsm_map_ms_codec2_01 = -1;          /* Codec */
702 static int hf_gsm_map_ms_codec3_01 = -1;          /* Codec */
703 static int hf_gsm_map_ms_codec4_01 = -1;          /* Codec */
704 static int hf_gsm_map_ms_codec5_01 = -1;          /* Codec */
705 static int hf_gsm_map_ms_codec6_01 = -1;          /* Codec */
706 static int hf_gsm_map_ms_codec7_01 = -1;          /* Codec */
707 static int hf_gsm_map_ms_codec8_01 = -1;          /* Codec */
708 static int hf_gsm_map_ms_RelocationNumberList_item = -1;  /* RelocationNumber */
709 static int hf_gsm_map_ms_immediateResponsePreferred = -1;  /* NULL */
710 static int hf_gsm_map_ms_re_synchronisationInfo = -1;  /* Re_synchronisationInfo */
711 static int hf_gsm_map_ms_requestingNodeType = -1;  /* RequestingNodeType */
712 static int hf_gsm_map_ms_requestingPLMN_Id = -1;  /* PLMN_Id */
713 static int hf_gsm_map_ms_numberOfRequestedAdditional_Vectors = -1;  /* NumberOfRequestedVectors */
714 static int hf_gsm_map_ms_additionalVectorsAreForEPS = -1;  /* NULL */
715 static int hf_gsm_map_ms_auts = -1;               /* AUTS */
716 static int hf_gsm_map_ms_eps_AuthenticationSetList = -1;  /* EPS_AuthenticationSetList */
717 static int hf_gsm_map_ms_EPS_AuthenticationSetList_item = -1;  /* EPC_AV */
718 static int hf_gsm_map_ms_kasme = -1;              /* KASME */
719 static int hf_gsm_map_ms_imei = -1;               /* IMEI */
720 static int hf_gsm_map_ms_requestedEquipmentInfo = -1;  /* RequestedEquipmentInfo */
721 static int hf_gsm_map_ms_equipmentStatus = -1;    /* EquipmentStatus */
722 static int hf_gsm_map_ms_bmuef = -1;              /* UESBI_Iu */
723 static int hf_gsm_map_ms_uesbi_IuA = -1;          /* UESBI_IuA */
724 static int hf_gsm_map_ms_uesbi_IuB = -1;          /* UESBI_IuB */
725 static int hf_gsm_map_ms_CSG_SubscriptionDataList_item = -1;  /* CSG_SubscriptionData */
726 static int hf_gsm_map_ms_csg_Id = -1;             /* CSG_Id */
727 static int hf_gsm_map_ms_expirationDate = -1;     /* Time */
728 static int hf_gsm_map_ms_lipa_AllowedAPNList = -1;  /* LIPA_AllowedAPNList */
729 static int hf_gsm_map_ms_plmn_Id = -1;            /* PLMN_Id */
730 static int hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item = -1;  /* CSG_SubscriptionData */
731 static int hf_gsm_map_ms_LIPA_AllowedAPNList_item = -1;  /* APN */
732 static int hf_gsm_map_ms_apn_oi_Replacement = -1;  /* APN_OI_Replacement */
733 static int hf_gsm_map_ms_rfsp_id = -1;            /* RFSP_ID */
734 static int hf_gsm_map_ms_ambr = -1;               /* AMBR */
735 static int hf_gsm_map_ms_apn_ConfigurationProfile = -1;  /* APN_ConfigurationProfile */
736 static int hf_gsm_map_ms_stn_sr = -1;             /* ISDN_AddressString */
737 static int hf_gsm_map_ms_mps_CSPriority = -1;     /* NULL */
738 static int hf_gsm_map_ms_mps_EPSPriority = -1;    /* NULL */
739 static int hf_gsm_map_ms_subscribed_vsrvcc = -1;  /* NULL */
740 static int hf_gsm_map_ms_defaultContext = -1;     /* ContextId */
741 static int hf_gsm_map_ms_completeDataListIncluded = -1;  /* NULL */
742 static int hf_gsm_map_ms_epsDataList = -1;        /* EPS_DataList */
743 static int hf_gsm_map_ms_EPS_DataList_item = -1;  /* APN_Configuration */
744 static int hf_gsm_map_ms_pdn_Type = -1;           /* PDN_Type */
745 static int hf_gsm_map_ms_servedPartyIP_IPv4_Address = -1;  /* PDP_Address */
746 static int hf_gsm_map_ms_eps_qos_Subscribed = -1;  /* EPS_QoS_Subscribed */
747 static int hf_gsm_map_ms_pdn_gw_AllocationType = -1;  /* PDN_GW_AllocationType */
748 static int hf_gsm_map_ms_vplmnAddressAllowed = -1;  /* NULL */
749 static int hf_gsm_map_ms_chargingCharacteristics = -1;  /* ChargingCharacteristics */
750 static int hf_gsm_map_ms_specificAPNInfoList = -1;  /* SpecificAPNInfoList */
751 static int hf_gsm_map_ms_servedPartyIP_IPv6_Address = -1;  /* PDP_Address */
752 static int hf_gsm_map_ms_sipto_Permission = -1;   /* SIPTO_Permission */
753 static int hf_gsm_map_ms_lipa_Permission = -1;    /* LIPA_Permission */
754 static int hf_gsm_map_ms_qos_Class_Identifier = -1;  /* QoS_Class_Identifier */
755 static int hf_gsm_map_ms_allocation_Retention_Priority = -1;  /* Allocation_Retention_Priority */
756 static int hf_gsm_map_ms_max_RequestedBandwidth_UL = -1;  /* Bandwidth */
757 static int hf_gsm_map_ms_max_RequestedBandwidth_DL = -1;  /* Bandwidth */
758 static int hf_gsm_map_ms_SpecificAPNInfoList_item = -1;  /* SpecificAPNInfo */
759 static int hf_gsm_map_ms_priority_level = -1;     /* INTEGER */
760 static int hf_gsm_map_ms_pre_emption_capability = -1;  /* BOOLEAN */
761 static int hf_gsm_map_ms_pre_emption_vulnerability = -1;  /* BOOLEAN */
762 static int hf_gsm_map_ms_pdn_gw_ipv4_Address = -1;  /* PDP_Address */
763 static int hf_gsm_map_ms_pdn_gw_ipv6_Address = -1;  /* PDP_Address */
764 static int hf_gsm_map_ms_pdn_gw_name = -1;        /* FQDN */
765 static int hf_gsm_map_ms_gmlc_List = -1;          /* GMLC_List */
766 static int hf_gsm_map_ms_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
767 static int hf_gsm_map_ms_molr_List = -1;          /* MOLR_List */
768 static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList = -1;  /* LCS_PrivacyExceptionList */
769 static int hf_gsm_map_ms_GMLC_List_item = -1;     /* ISDN_AddressString */
770 static int hf_gsm_map_ms_GPRSDataList_item = -1;  /* PDP_Context */
771 static int hf_gsm_map_ms_pdp_ContextId = -1;      /* ContextId */
772 static int hf_gsm_map_ms_pdp_Type = -1;           /* PDP_Type */
773 static int hf_gsm_map_ms_pdp_Address = -1;        /* PDP_Address */
774 static int hf_gsm_map_ms_qos_Subscribed = -1;     /* QoS_Subscribed */
775 static int hf_gsm_map_ms_ext_QoS_Subscribed = -1;  /* Ext_QoS_Subscribed */
776 static int hf_gsm_map_ms_pdp_ChargingCharacteristics = -1;  /* ChargingCharacteristics */
777 static int hf_gsm_map_ms_ext2_QoS_Subscribed = -1;  /* Ext2_QoS_Subscribed */
778 static int hf_gsm_map_ms_ext3_QoS_Subscribed = -1;  /* Ext3_QoS_Subscribed */
779 static int hf_gsm_map_ms_ext4_QoS_Subscribed = -1;  /* Ext4_QoS_Subscribed */
780 static int hf_gsm_map_ms_ext_pdp_Type = -1;       /* Ext_PDP_Type */
781 static int hf_gsm_map_ms_ext_pdp_Address = -1;    /* PDP_Address */
782 static int hf_gsm_map_ms_gprsDataList = -1;       /* GPRSDataList */
783 static int hf_gsm_map_ms_gprs_CSI = -1;           /* GPRS_CSI */
784 static int hf_gsm_map_ms_mo_sms_CSI = -1;         /* SMS_CSI */
785 static int hf_gsm_map_ms_mt_sms_CSI = -1;         /* SMS_CSI */
786 static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList = -1;  /* MT_smsCAMELTDP_CriteriaList */
787 static int hf_gsm_map_ms_mg_csi = -1;             /* MG_CSI */
788 static int hf_gsm_map_ms_gprs_CamelTDPDataList = -1;  /* GPRS_CamelTDPDataList */
789 static int hf_gsm_map_ms_camelCapabilityHandling = -1;  /* CamelCapabilityHandling */
790 static int hf_gsm_map_ms_notificationToCSE = -1;  /* NULL */
791 static int hf_gsm_map_ms_csi_Active = -1;         /* NULL */
792 static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item = -1;  /* GPRS_CamelTDPData */
793 static int hf_gsm_map_ms_gprs_TriggerDetectionPoint = -1;  /* GPRS_TriggerDetectionPoint */
794 static int hf_gsm_map_ms_serviceKey = -1;         /* ServiceKey */
795 static int hf_gsm_map_ms_gsmSCF_Address = -1;     /* ISDN_AddressString */
796 static int hf_gsm_map_ms_defaultSessionHandling = -1;  /* DefaultGPRS_Handling */
797 static int hf_gsm_map_ms_LSADataList_item = -1;   /* LSAData */
798 static int hf_gsm_map_ms_lsaIdentity = -1;        /* LSAIdentity */
799 static int hf_gsm_map_ms_lsaAttributes = -1;      /* LSAAttributes */
800 static int hf_gsm_map_ms_lsaActiveModeIndicator = -1;  /* NULL */
801 static int hf_gsm_map_ms_lsaOnlyAccessIndicator = -1;  /* LSAOnlyAccessIndicator */
802 static int hf_gsm_map_ms_lsaDataList = -1;        /* LSADataList */
803 static int hf_gsm_map_ms_msisdn = -1;             /* ISDN_AddressString */
804 static int hf_gsm_map_ms_category = -1;           /* Category */
805 static int hf_gsm_map_ms_subscriberStatus = -1;   /* SubscriberStatus */
806 static int hf_gsm_map_ms_bearerServiceList = -1;  /* BearerServiceList */
807 static int hf_gsm_map_ms_teleserviceList = -1;    /* TeleserviceList */
808 static int hf_gsm_map_ms_provisionedSS = -1;      /* Ext_SS_InfoList */
809 static int hf_gsm_map_ms_odb_Data = -1;           /* ODB_Data */
810 static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
811 static int hf_gsm_map_ms_vbsSubscriptionData = -1;  /* VBSDataList */
812 static int hf_gsm_map_ms_vgcsSubscriptionData = -1;  /* VGCSDataList */
813 static int hf_gsm_map_ms_vlrCamelSubscriptionInfo = -1;  /* VlrCamelSubscriptionInfo */
814 static int hf_gsm_map_ms_BearerServiceList_item = -1;  /* Ext_BearerServiceCode */
815 static int hf_gsm_map_ms_TeleserviceList_item = -1;  /* Ext_TeleserviceCode */
816 static int hf_gsm_map_ms_odb_GeneralData = -1;    /* ODB_GeneralData */
817 static int hf_gsm_map_ms_odb_HPLMN_Data = -1;     /* ODB_HPLMN_Data */
818 static int hf_gsm_map_ms_Ext_SS_InfoList_item = -1;  /* Ext_SS_Info */
819 static int hf_gsm_map_ms_forwardingInfo = -1;     /* Ext_ForwInfo */
820 static int hf_gsm_map_ms_callBarringInfo = -1;    /* Ext_CallBarInfo */
821 static int hf_gsm_map_ms_cug_Info = -1;           /* CUG_Info */
822 static int hf_gsm_map_ms_ss_Data = -1;            /* Ext_SS_Data */
823 static int hf_gsm_map_ms_emlpp_Info = -1;         /* EMLPP_Info */
824 static int hf_gsm_map_ms_ss_Code = -1;            /* SS_Code */
825 static int hf_gsm_map_ms_forwardingFeatureList = -1;  /* Ext_ForwFeatureList */
826 static int hf_gsm_map_ms_Ext_ForwFeatureList_item = -1;  /* Ext_ForwFeature */
827 static int hf_gsm_map_ms_basicService = -1;       /* Ext_BasicServiceCode */
828 static int hf_gsm_map_ms_ss_Status = -1;          /* Ext_SS_Status */
829 static int hf_gsm_map_ms_forwardedToNumber = -1;  /* ISDN_AddressString */
830 static int hf_gsm_map_ms_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
831 static int hf_gsm_map_ms_forwardingOptions = -1;  /* T_forwardingOptions */
832 static int hf_gsm_map_ms_noReplyConditionTime = -1;  /* Ext_NoRepCondTime */
833 static int hf_gsm_map_ms_longForwardedToNumber = -1;  /* FTN_AddressString */
834 static int hf_gsm_map_ms_callBarringFeatureList = -1;  /* Ext_CallBarFeatureList */
835 static int hf_gsm_map_ms_Ext_CallBarFeatureList_item = -1;  /* Ext_CallBarringFeature */
836 static int hf_gsm_map_ms_cug_SubscriptionList = -1;  /* CUG_SubscriptionList */
837 static int hf_gsm_map_ms_cug_FeatureList = -1;    /* CUG_FeatureList */
838 static int hf_gsm_map_ms_CUG_SubscriptionList_item = -1;  /* CUG_Subscription */
839 static int hf_gsm_map_ms_cug_Index = -1;          /* CUG_Index */
840 static int hf_gsm_map_ms_cug_Interlock = -1;      /* CUG_Interlock */
841 static int hf_gsm_map_ms_intraCUG_Options = -1;   /* IntraCUG_Options */
842 static int hf_gsm_map_ms_basicServiceGroupList = -1;  /* Ext_BasicServiceGroupList */
843 static int hf_gsm_map_ms_CUG_FeatureList_item = -1;  /* CUG_Feature */
844 static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item = -1;  /* Ext_BasicServiceCode */
845 static int hf_gsm_map_ms_preferentialCUG_Indicator = -1;  /* CUG_Index */
846 static int hf_gsm_map_ms_interCUG_Restrictions = -1;  /* InterCUG_Restrictions */
847 static int hf_gsm_map_ms_ss_SubscriptionOption = -1;  /* SS_SubscriptionOption */
848 static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item = -1;  /* LCS_PrivacyClass */
849 static int hf_gsm_map_ms_notificationToMSUser = -1;  /* NotificationToMSUser */
850 static int hf_gsm_map_ms_externalClientList = -1;  /* ExternalClientList */
851 static int hf_gsm_map_ms_plmnClientList = -1;     /* PLMNClientList */
852 static int hf_gsm_map_ms_ext_externalClientList = -1;  /* Ext_ExternalClientList */
853 static int hf_gsm_map_ms_serviceTypeList = -1;    /* ServiceTypeList */
854 static int hf_gsm_map_ms_ExternalClientList_item = -1;  /* ExternalClient */
855 static int hf_gsm_map_ms_PLMNClientList_item = -1;  /* LCSClientInternalID */
856 static int hf_gsm_map_ms_Ext_ExternalClientList_item = -1;  /* ExternalClient */
857 static int hf_gsm_map_ms_clientIdentity = -1;     /* LCSClientExternalID */
858 static int hf_gsm_map_ms_gmlc_Restriction = -1;   /* GMLC_Restriction */
859 static int hf_gsm_map_ms_ServiceTypeList_item = -1;  /* ServiceType */
860 static int hf_gsm_map_ms_serviceTypeIdentity = -1;  /* LCSServiceTypeID */
861 static int hf_gsm_map_ms_MOLR_List_item = -1;     /* MOLR_Class */
862 static int hf_gsm_map_ms_ZoneCodeList_item = -1;  /* ZoneCode */
863 static int hf_gsm_map_ms_ss_List = -1;            /* SS_List */
864 static int hf_gsm_map_ms_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
865 static int hf_gsm_map_ms_basicServiceList = -1;   /* BasicServiceList */
866 static int hf_gsm_map_ms_regionalSubscriptionIdentifier = -1;  /* ZoneCode */
867 static int hf_gsm_map_ms_vbsGroupIndication = -1;  /* NULL */
868 static int hf_gsm_map_ms_vgcsGroupIndication = -1;  /* NULL */
869 static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw = -1;  /* NULL */
870 static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw = -1;  /* GPRSSubscriptionDataWithdraw */
871 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
872 static int hf_gsm_map_ms_lsaInformationWithdraw = -1;  /* LSAInformationWithdraw */
873 static int hf_gsm_map_ms_gmlc_ListWithdraw = -1;  /* NULL */
874 static int hf_gsm_map_ms_istInformationWithdraw = -1;  /* NULL */
875 static int hf_gsm_map_ms_specificCSI_Withdraw = -1;  /* SpecificCSI_Withdraw */
876 static int hf_gsm_map_ms_chargingCharacteristicsWithdraw = -1;  /* NULL */
877 static int hf_gsm_map_ms_stn_srWithdraw = -1;     /* NULL */
878 static int hf_gsm_map_ms_epsSubscriptionDataWithdraw = -1;  /* EPS_SubscriptionDataWithdraw */
879 static int hf_gsm_map_ms_apn_oi_replacementWithdraw = -1;  /* NULL */
880 static int hf_gsm_map_ms_csg_SubscriptionDeleted = -1;  /* NULL */
881 static int hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw = -1;  /* NULL */
882 static int hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw = -1;  /* NULL */
883 static int hf_gsm_map_ms_subscribed_vsrvccWithdraw = -1;  /* NULL */
884 static int hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted = -1;  /* NULL */
885 static int hf_gsm_map_ms_additionalMSISDN_Withdraw = -1;  /* NULL */
886 static int hf_gsm_map_ms_allGPRSData = -1;        /* NULL */
887 static int hf_gsm_map_ms_contextIdList = -1;      /* ContextIdList */
888 static int hf_gsm_map_ms_allEPS_Data = -1;        /* NULL */
889 static int hf_gsm_map_ms_ContextIdList_item = -1;  /* ContextId */
890 static int hf_gsm_map_ms_allLSAData = -1;         /* NULL */
891 static int hf_gsm_map_ms_lsaIdentityList = -1;    /* LSAIdentityList */
892 static int hf_gsm_map_ms_LSAIdentityList_item = -1;  /* LSAIdentity */
893 static int hf_gsm_map_ms_BasicServiceList_item = -1;  /* Ext_BasicServiceCode */
894 static int hf_gsm_map_ms_o_CSI = -1;              /* O_CSI */
895 static int hf_gsm_map_ms_ss_CSI = -1;             /* SS_CSI */
896 static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
897 static int hf_gsm_map_ms_tif_CSI = -1;            /* NULL */
898 static int hf_gsm_map_ms_m_CSI = -1;              /* M_CSI */
899 static int hf_gsm_map_ms_vt_CSI = -1;             /* T_CSI */
900 static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
901 static int hf_gsm_map_ms_d_CSI = -1;              /* D_CSI */
902 static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item = -1;  /* MT_smsCAMELTDP_Criteria */
903 static int hf_gsm_map_ms_sms_TriggerDetectionPoint = -1;  /* SMS_TriggerDetectionPoint */
904 static int hf_gsm_map_ms_tpdu_TypeCriterion = -1;  /* TPDU_TypeCriterion */
905 static int hf_gsm_map_ms_TPDU_TypeCriterion_item = -1;  /* MT_SMS_TPDU_Type */
906 static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList = -1;  /* DP_AnalysedInfoCriteriaList */
907 static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item = -1;  /* DP_AnalysedInfoCriterium */
908 static int hf_gsm_map_ms_dialledNumber = -1;      /* ISDN_AddressString */
909 static int hf_gsm_map_ms_defaultCallHandling = -1;  /* DefaultCallHandling */
910 static int hf_gsm_map_ms_ss_CamelData = -1;       /* SS_CamelData */
911 static int hf_gsm_map_ms_ss_EventList = -1;       /* SS_EventList */
912 static int hf_gsm_map_ms_SS_EventList_item = -1;  /* SS_Code */
913 static int hf_gsm_map_ms_o_BcsmCamelTDPDataList = -1;  /* O_BcsmCamelTDPDataList */
914 static int hf_gsm_map_ms_csiActive = -1;          /* NULL */
915 static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item = -1;  /* O_BcsmCamelTDPData */
916 static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint = -1;  /* O_BcsmTriggerDetectionPoint */
917 static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item = -1;  /* O_BcsmCamelTDP_Criteria */
918 static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_BCSM_CAMEL_TDP_Criteria */
919 static int hf_gsm_map_ms_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
920 static int hf_gsm_map_ms_basicServiceCriteria = -1;  /* BasicServiceCriteria */
921 static int hf_gsm_map_ms_callTypeCriteria = -1;   /* CallTypeCriteria */
922 static int hf_gsm_map_ms_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
923 static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
924 static int hf_gsm_map_ms_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
925 static int hf_gsm_map_ms_matchType = -1;          /* MatchType */
926 static int hf_gsm_map_ms_destinationNumberList = -1;  /* DestinationNumberList */
927 static int hf_gsm_map_ms_destinationNumberLengthList = -1;  /* DestinationNumberLengthList */
928 static int hf_gsm_map_ms_DestinationNumberList_item = -1;  /* ISDN_AddressString */
929 static int hf_gsm_map_ms_DestinationNumberLengthList_item = -1;  /* INTEGER_1_maxNumOfISDN_AddressDigits */
930 static int hf_gsm_map_ms_BasicServiceCriteria_item = -1;  /* Ext_BasicServiceCode */
931 static int hf_gsm_map_ms_O_CauseValueCriteria_item = -1;  /* CauseValue */
932 static int hf_gsm_map_ms_T_CauseValueCriteria_item = -1;  /* CauseValue */
933 static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList = -1;  /* SMS_CAMEL_TDP_DataList */
934 static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item = -1;  /* SMS_CAMEL_TDP_Data */
935 static int hf_gsm_map_ms_defaultSMS_Handling = -1;  /* DefaultSMS_Handling */
936 static int hf_gsm_map_ms_mobilityTriggers = -1;   /* MobilityTriggers */
937 static int hf_gsm_map_ms_MobilityTriggers_item = -1;  /* MM_Code */
938 static int hf_gsm_map_ms_t_BcsmCamelTDPDataList = -1;  /* T_BcsmCamelTDPDataList */
939 static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item = -1;  /* T_BcsmCamelTDPData */
940 static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint = -1;  /* T_BcsmTriggerDetectionPoint */
941 static int hf_gsm_map_ms_ggsn_Address = -1;       /* GSN_Address */
942 static int hf_gsm_map_ms_ggsn_Number = -1;        /* ISDN_AddressString */
943 static int hf_gsm_map_ms_mobileNotReachableReason = -1;  /* AbsentSubscriberDiagnosticSM */
944 static int hf_gsm_map_ms_sendingNodenumber = -1;  /* SendingNode_Number */
945 static int hf_gsm_map_ms_hlr_List = -1;           /* HLR_List */
946 static int hf_gsm_map_ms_css_Number = -1;         /* ISDN_AddressString */
947 static int hf_gsm_map_ms_msNotReachable = -1;     /* NULL */
948 static int hf_gsm_map_ms_VBSDataList_item = -1;   /* VoiceBroadcastData */
949 static int hf_gsm_map_ms_VGCSDataList_item = -1;  /* VoiceGroupCallData */
950 static int hf_gsm_map_ms_groupId = -1;            /* GroupId */
951 static int hf_gsm_map_ms_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
952 static int hf_gsm_map_ms_additionalInfo = -1;     /* AdditionalInfo */
953 static int hf_gsm_map_ms_longGroupId = -1;        /* Long_GroupId */
954 static int hf_gsm_map_ms_groupid = -1;            /* GroupId */
955 static int hf_gsm_map_ms_broadcastInitEntitlement = -1;  /* NULL */
956 static int hf_gsm_map_ms_requestedInfo = -1;      /* RequestedInfo */
957 static int hf_gsm_map_ms_callPriority = -1;       /* EMLPP_Priority */
958 static int hf_gsm_map_ms_subscriberInfo = -1;     /* SubscriberInfo */
959 static int hf_gsm_map_ms_locationInformation = -1;  /* LocationInformation */
960 static int hf_gsm_map_ms_subscriberState = -1;    /* SubscriberState */
961 static int hf_gsm_map_ms_locationInformationGPRS = -1;  /* LocationInformationGPRS */
962 static int hf_gsm_map_ms_ps_SubscriberState = -1;  /* PS_SubscriberState */
963 static int hf_gsm_map_ms_ms_Classmark2 = -1;      /* MS_Classmark2 */
964 static int hf_gsm_map_ms_gprs_MS_Class = -1;      /* GPRSMSClass */
965 static int hf_gsm_map_ms_mnpInfoRes = -1;         /* MNPInfoRes */
966 static int hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication = -1;  /* IMS_VoiceOverPS_SessionsInd */
967 static int hf_gsm_map_ms_lastUE_ActivityTime = -1;  /* Time */
968 static int hf_gsm_map_ms_lastRAT_Type = -1;       /* Used_RAT_Type */
969 static int hf_gsm_map_ms_eps_SubscriberState = -1;  /* PS_SubscriberState */
970 static int hf_gsm_map_ms_locationInformationEPS = -1;  /* LocationInformationEPS */
971 static int hf_gsm_map_ms_timeZone = -1;           /* TimeZone */
972 static int hf_gsm_map_ms_daylightSavingTime = -1;  /* DaylightSavingTime */
973 static int hf_gsm_map_ms_routeingNumber = -1;     /* RouteingNumber */
974 static int hf_gsm_map_ms_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
975 static int hf_gsm_map_ms_mSNetworkCapability = -1;  /* MSNetworkCapability */
976 static int hf_gsm_map_ms_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
977 static int hf_gsm_map_ms_locationInformation_01 = -1;  /* NULL */
978 static int hf_gsm_map_ms_subscriberState_01 = -1;  /* NULL */
979 static int hf_gsm_map_ms_currentLocation = -1;    /* NULL */
980 static int hf_gsm_map_ms_requestedDomain = -1;    /* DomainType */
981 static int hf_gsm_map_ms_imei_01 = -1;            /* NULL */
982 static int hf_gsm_map_ms_ms_classmark = -1;       /* NULL */
983 static int hf_gsm_map_ms_mnpRequestedInfo = -1;   /* NULL */
984 static int hf_gsm_map_ms_locationInformationEPS_Supported = -1;  /* NULL */
985 static int hf_gsm_map_ms_t_adsData = -1;          /* NULL */
986 static int hf_gsm_map_ms_requestedNodes = -1;     /* RequestedNodes */
987 static int hf_gsm_map_ms_servingNodeIndication = -1;  /* NULL */
988 static int hf_gsm_map_ms_localTimeZoneRequest = -1;  /* NULL */
989 static int hf_gsm_map_ms_ageOfLocationInformation = -1;  /* AgeOfLocationInformation */
990 static int hf_gsm_map_ms_geographicalInformation = -1;  /* GeographicalInformation */
991 static int hf_gsm_map_ms_vlr_number = -1;         /* ISDN_AddressString */
992 static int hf_gsm_map_ms_locationNumber = -1;     /* LocationNumber */
993 static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
994 static int hf_gsm_map_ms_selectedLSA_Id = -1;     /* LSAIdentity */
995 static int hf_gsm_map_ms_geodeticInformation = -1;  /* GeodeticInformation */
996 static int hf_gsm_map_ms_currentLocationRetrieved = -1;  /* NULL */
997 static int hf_gsm_map_ms_sai_Present = -1;        /* NULL */
998 static int hf_gsm_map_ms_userCSGInformation = -1;  /* UserCSGInformation */
999 static int hf_gsm_map_ms_e_utranCellGlobalIdentity = -1;  /* E_UTRAN_CGI */
1000 static int hf_gsm_map_ms_trackingAreaIdentity = -1;  /* TA_Id */
1001 static int hf_gsm_map_ms_mme_Name = -1;           /* DiameterIdentity */
1002 static int hf_gsm_map_ms_routeingAreaIdentity = -1;  /* RAIdentity */
1003 static int hf_gsm_map_ms_selectedLSAIdentity = -1;  /* LSAIdentity */
1004 static int hf_gsm_map_ms_accessMode = -1;         /* OCTET_STRING_SIZE_1 */
1005 static int hf_gsm_map_ms_cmi = -1;                /* OCTET_STRING_SIZE_1 */
1006 static int hf_gsm_map_ms_assumedIdle = -1;        /* NULL */
1007 static int hf_gsm_map_ms_camelBusy = -1;          /* NULL */
1008 static int hf_gsm_map_ms_netDetNotReachable = -1;  /* NotReachableReason */
1009 static int hf_gsm_map_ms_notProvidedFromVLR = -1;  /* NULL */
1010 static int hf_gsm_map_ms_notProvidedFromSGSNorMME = -1;  /* NULL */
1011 static int hf_gsm_map_ms_ps_Detached = -1;        /* NULL */
1012 static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging = -1;  /* NULL */
1013 static int hf_gsm_map_ms_ps_AttachedReachableForPaging = -1;  /* NULL */
1014 static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging = -1;  /* PDP_ContextInfoList */
1015 static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging = -1;  /* PDP_ContextInfoList */
1016 static int hf_gsm_map_ms_PDP_ContextInfoList_item = -1;  /* PDP_ContextInfo */
1017 static int hf_gsm_map_ms_pdp_ContextIdentifier = -1;  /* ContextId */
1018 static int hf_gsm_map_ms_pdp_ContextActive = -1;  /* NULL */
1019 static int hf_gsm_map_ms_apn_Subscribed = -1;     /* APN */
1020 static int hf_gsm_map_ms_apn_InUse = -1;          /* APN */
1021 static int hf_gsm_map_ms_nsapi = -1;              /* NSAPI */
1022 static int hf_gsm_map_ms_transactionId = -1;      /* TransactionId */
1023 static int hf_gsm_map_ms_teid_ForGnAndGp = -1;    /* TEID */
1024 static int hf_gsm_map_ms_teid_ForIu = -1;         /* TEID */
1025 static int hf_gsm_map_ms_qos_Subscribed_01 = -1;  /* Ext_QoS_Subscribed */
1026 static int hf_gsm_map_ms_qos_Requested = -1;      /* Ext_QoS_Subscribed */
1027 static int hf_gsm_map_ms_qos_Negotiated = -1;     /* Ext_QoS_Subscribed */
1028 static int hf_gsm_map_ms_chargingId = -1;         /* GPRSChargingID */
1029 static int hf_gsm_map_ms_rnc_Address = -1;        /* GSN_Address */
1030 static int hf_gsm_map_ms_qos2_Subscribed = -1;    /* Ext2_QoS_Subscribed */
1031 static int hf_gsm_map_ms_qos2_Requested = -1;     /* Ext2_QoS_Subscribed */
1032 static int hf_gsm_map_ms_qos2_Negotiated = -1;    /* Ext2_QoS_Subscribed */
1033 static int hf_gsm_map_ms_qos3_Subscribed = -1;    /* Ext3_QoS_Subscribed */
1034 static int hf_gsm_map_ms_qos3_Requested = -1;     /* Ext3_QoS_Subscribed */
1035 static int hf_gsm_map_ms_qos3_Negotiated = -1;    /* Ext3_QoS_Subscribed */
1036 static int hf_gsm_map_ms_qos4_Subscribed = -1;    /* Ext4_QoS_Subscribed */
1037 static int hf_gsm_map_ms_qos4_Requested = -1;     /* Ext4_QoS_Subscribed */
1038 static int hf_gsm_map_ms_qos4_Negotiated = -1;    /* Ext4_QoS_Subscribed */
1039 static int hf_gsm_map_ms_subscriberIdentity = -1;  /* SubscriberIdentity */
1040 static int hf_gsm_map_ms_requestedSubscriptionInfo = -1;  /* RequestedSubscriptionInfo */
1041 static int hf_gsm_map_ms_callForwardingData = -1;  /* CallForwardingData */
1042 static int hf_gsm_map_ms_callBarringData = -1;    /* CallBarringData */
1043 static int hf_gsm_map_ms_odb_Info = -1;           /* ODB_Info */
1044 static int hf_gsm_map_ms_camel_SubscriptionInfo = -1;  /* CAMEL_SubscriptionInfo */
1045 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases = -1;  /* SupportedCamelPhases */
1046 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases = -1;  /* SupportedCamelPhases */
1047 static int hf_gsm_map_ms_offeredCamel4CSIsInVLR = -1;  /* OfferedCamel4CSIs */
1048 static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN = -1;  /* OfferedCamel4CSIs */
1049 static int hf_gsm_map_ms_msisdn_BS_List = -1;     /* MSISDN_BS_List */
1050 static int hf_gsm_map_ms_cw_Data = -1;            /* CallWaitingData */
1051 static int hf_gsm_map_ms_ch_Data = -1;            /* CallHoldData */
1052 static int hf_gsm_map_ms_clip_Data = -1;          /* ClipData */
1053 static int hf_gsm_map_ms_clir_Data = -1;          /* ClirData */
1054 static int hf_gsm_map_ms_ect_data = -1;           /* EctData */
1055 static int hf_gsm_map_ms_cwFeatureList = -1;      /* Ext_CwFeatureList */
1056 static int hf_gsm_map_ms_Ext_CwFeatureList_item = -1;  /* Ext_CwFeature */
1057 static int hf_gsm_map_ms_overrideCategory = -1;   /* OverrideCategory */
1058 static int hf_gsm_map_ms_cliRestrictionOption = -1;  /* CliRestrictionOption */
1059 static int hf_gsm_map_ms_requestedSS_Info = -1;   /* SS_ForBS_Code */
1060 static int hf_gsm_map_ms_odb = -1;                /* NULL */
1061 static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
1062 static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01 = -1;  /* NULL */
1063 static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01 = -1;  /* NULL */
1064 static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
1065 static int hf_gsm_map_ms_msisdn_BS_List_01 = -1;  /* NULL */
1066 static int hf_gsm_map_ms_csg_SubscriptionDataRequested = -1;  /* NULL */
1067 static int hf_gsm_map_ms_cw_Info = -1;            /* NULL */
1068 static int hf_gsm_map_ms_clip_Info = -1;          /* NULL */
1069 static int hf_gsm_map_ms_clir_Info = -1;          /* NULL */
1070 static int hf_gsm_map_ms_hold_Info = -1;          /* NULL */
1071 static int hf_gsm_map_ms_ect_Info = -1;           /* NULL */
1072 static int hf_gsm_map_ms_MSISDN_BS_List_item = -1;  /* MSISDN_BS */
1073 static int hf_gsm_map_ms_password = -1;           /* Password */
1074 static int hf_gsm_map_ms_wrongPasswordAttemptsCounter = -1;  /* WrongPasswordAttemptsCounter */
1075 static int hf_gsm_map_ms_t_CSI = -1;              /* T_CSI */
1076 static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1077 static int hf_gsm_map_ms_tif_CSI_NotificationToCSE = -1;  /* NULL */
1078 static int hf_gsm_map_ms_specificCSIDeletedList = -1;  /* SpecificCSI_Withdraw */
1079 static int hf_gsm_map_ms_o_IM_CSI = -1;           /* O_CSI */
1080 static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1081 static int hf_gsm_map_ms_d_IM_CSI = -1;           /* D_CSI */
1082 static int hf_gsm_map_ms_vt_IM_CSI = -1;          /* T_CSI */
1083 static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1084 static int hf_gsm_map_ms_modificationRequestFor_CF_Info = -1;  /* ModificationRequestFor_CF_Info */
1085 static int hf_gsm_map_ms_modificationRequestFor_CB_Info = -1;  /* ModificationRequestFor_CB_Info */
1086 static int hf_gsm_map_ms_modificationRequestFor_CSI = -1;  /* ModificationRequestFor_CSI */
1087 static int hf_gsm_map_ms_modificationRequestFor_ODB_data = -1;  /* ModificationRequestFor_ODB_data */
1088 static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data = -1;  /* ModificationRequestFor_IP_SM_GW_Data */
1089 static int hf_gsm_map_ms_activationRequestForUE_reachability = -1;  /* RequestedServingNode */
1090 static int hf_gsm_map_ms_modificationRequestFor_CSG = -1;  /* ModificationRequestFor_CSG */
1091 static int hf_gsm_map_ms_modificationRequestFor_CW_Data = -1;  /* ModificationRequestFor_CW_Info */
1092 static int hf_gsm_map_ms_modificationRequestFor_CLIP_Data = -1;  /* ModificationRequestFor_CLIP_Info */
1093 static int hf_gsm_map_ms_modificationRequestFor_CLIR_Data = -1;  /* ModificationRequestFor_CLIR_Info */
1094 static int hf_gsm_map_ms_modificationRequestFor_HOLD_Data = -1;  /* ModificationRequestFor_CH_Info */
1095 static int hf_gsm_map_ms_modificationRequestFor_ECT_Data = -1;  /* ModificationRequestFor_ECT_Info */
1096 static int hf_gsm_map_ms_modifyNotificationToCSE = -1;  /* ModificationInstruction */
1097 static int hf_gsm_map_ms_ss_InfoFor_CSE = -1;     /* Ext_SS_InfoFor_CSE */
1098 static int hf_gsm_map_ms_serviceCentreAddress = -1;  /* AddressString */
1099 static int hf_gsm_map_ms_forwardedToNumber_01 = -1;  /* AddressString */
1100 static int hf_gsm_map_ms_odb_data = -1;           /* ODB_Data */
1101 static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo = -1;  /* RequestedCAMEL_SubscriptionInfo */
1102 static int hf_gsm_map_ms_modifyCSI_State = -1;    /* ModificationInstruction */
1103 static int hf_gsm_map_ms_modifyRegistrationStatus = -1;  /* ModificationInstruction */
1104 static int hf_gsm_map_ms_ip_sm_gw_DiameterAddress = -1;  /* NetworkNodeDiameterAddress */
1105 static int hf_gsm_map_ms_forwardingInfoFor_CSE = -1;  /* Ext_ForwardingInfoFor_CSE */
1106 static int hf_gsm_map_ms_callBarringInfoFor_CSE = -1;  /* Ext_CallBarringInfoFor_CSE */
1107 static int hf_gsm_map_ms_allInformationSent = -1;  /* NULL */
1108 static int hf_gsm_map_ms_ue_reachable = -1;       /* ServingNode */
1109 static int hf_gsm_map_ms_eventMet = -1;           /* MM_Code */
1110 static int hf_gsm_map_ms_supportedCAMELPhases = -1;  /* SupportedCamelPhases */
1111 static int hf_gsm_map_ms_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
1112 static int hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator = -1;  /* NULL */
1113 static int hf_gsm_map_ms_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
1114 static int hf_gsm_map_ms_gprsSubscriptionData = -1;  /* GPRSSubscriptionData */
1115 static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
1116 static int hf_gsm_map_ms_networkAccessMode = -1;  /* NetworkAccessMode */
1117 static int hf_gsm_map_ms_lsaInformation = -1;     /* LSAInformation */
1118 static int hf_gsm_map_ms_lmu_Indicator = -1;      /* NULL */
1119 static int hf_gsm_map_ms_lcsInformation = -1;     /* LCSInformation */
1120 static int hf_gsm_map_ms_istAlertTimer = -1;      /* IST_AlertTimerValue */
1121 static int hf_gsm_map_ms_superChargerSupportedInHLR = -1;  /* AgeIndicator */
1122 static int hf_gsm_map_ms_mc_SS_Info = -1;         /* MC_SS_Info */
1123 static int hf_gsm_map_ms_cs_AllocationRetentionPriority = -1;  /* CS_AllocationRetentionPriority */
1124 static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo = -1;  /* SGSN_CAMEL_SubscriptionInfo */
1125 static int hf_gsm_map_ms_accessRestrictionData = -1;  /* AccessRestrictionData */
1126 static int hf_gsm_map_ms_ics_Indicator = -1;      /* BOOLEAN */
1127 static int hf_gsm_map_ms_eps_SubscriptionData = -1;  /* EPS_SubscriptionData */
1128 static int hf_gsm_map_ms_ue_ReachabilityRequestIndicator = -1;  /* NULL */
1129 static int hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer = -1;  /* SubscribedPeriodicRAUTAUtimer */
1130 static int hf_gsm_map_ms_vplmnLIPAAllowed = -1;   /* NULL */
1131 static int hf_gsm_map_ms_mdtUserConsent = -1;     /* BOOLEAN */
1132 static int hf_gsm_map_ms_subscribedPeriodicLAUtimer = -1;  /* SubscribedPeriodicLAUtimer */
1133 static int hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList = -1;  /* VPLMN_CSG_SubscriptionDataList */
1134 static int hf_gsm_map_ms_additionalMSISDN = -1;   /* ISDN_AddressString */
1135 static int hf_gsm_map_ms_psAndSMS_OnlyServiceProvision = -1;  /* NULL */
1136 static int hf_gsm_map_ms_smsInSGSNAllowed = -1;   /* NULL */
1137 /* named bits */
1138 static int hf_gsm_map_ms_SupportedRAT_Types_utran = -1;
1139 static int hf_gsm_map_ms_SupportedRAT_Types_geran = -1;
1140 static int hf_gsm_map_ms_SupportedRAT_Types_gan = -1;
1141 static int hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution = -1;
1142 static int hf_gsm_map_ms_SupportedRAT_Types_e_utran = -1;
1143 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
1144 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
1145 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
1146 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
1147 static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5 = -1;
1148 static int hf_gsm_map_ms_ISR_Information_updateLocation = -1;
1149 static int hf_gsm_map_ms_ISR_Information_cancelSGSN = -1;
1150 static int hf_gsm_map_ms_ISR_Information_initialAttachIndicator = -1;
1151 static int hf_gsm_map_ms_SupportedFeatures_odb_all_apn = -1;
1152 static int hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN = -1;
1153 static int hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN = -1;
1154 static int hf_gsm_map_ms_SupportedFeatures_odb_all_og = -1;
1155 static int hf_gsm_map_ms_SupportedFeatures_odb_all_international_og = -1;
1156 static int hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country = -1;
1157 static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og = -1;
1158 static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country = -1;
1159 static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country = -1;
1160 static int hf_gsm_map_ms_SupportedFeatures_regSub = -1;
1161 static int hf_gsm_map_ms_SupportedFeatures_trace = -1;
1162 static int hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep = -1;
1163 static int hf_gsm_map_ms_SupportedFeatures_lcs_universal = -1;
1164 static int hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated = -1;
1165 static int hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated = -1;
1166 static int hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator = -1;
1167 static int hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType = -1;
1168 static int hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS = -1;
1169 static int hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation = -1;
1170 static int hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation = -1;
1171 static int hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty = -1;
1172 static int hf_gsm_map_ms_SupportedFeatures_sm_mo_pp = -1;
1173 static int hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls = -1;
1174 static int hf_gsm_map_ms_SupportedFeatures_baoc = -1;
1175 static int hf_gsm_map_ms_SupportedFeatures_boic = -1;
1176 static int hf_gsm_map_ms_SupportedFeatures_boicExHC = -1;
1177 static int hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval = -1;
1178 static int hf_gsm_map_ms_SupportedFeatures_additionalMsisdn = -1;
1179 static int hf_gsm_map_ms_SupportedFeatures_smsInMME = -1;
1180 static int hf_gsm_map_ms_SupportedFeatures_smsInSGSN = -1;
1181 static int hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit = -1;
1182 static int hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit = -1;
1183 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator = -1;
1184 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator = -1;
1185 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator = -1;
1186 static int hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator = -1;
1187 static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus = -1;
1188 static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef = -1;
1189 static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed = -1;
1190 static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed = -1;
1191 static int hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed = -1;
1192 static int hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed = -1;
1193 static int hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed = -1;
1194 static int hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed = -1;
1195 static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred = -1;
1196 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred = -1;
1197 static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1;
1198 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred = -1;
1199 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1;
1200 static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1;
1201 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1;
1202 static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
1203 static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred = -1;
1204 static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred = -1;
1205 static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred = -1;
1206 static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred = -1;
1207 static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred = -1;
1208 static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred = -1;
1209 static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred = -1;
1210 static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred = -1;
1211 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
1212 static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
1213 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
1214 static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred = -1;
1215 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
1216 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
1217 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred = -1;
1218 static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
1219 static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred = -1;
1220 static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1;
1221 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred = -1;
1222 static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
1223 static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred = -1;
1224 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1;
1225 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1;
1226 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1;
1227 static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1;
1228 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi = -1;
1229 static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi = -1;
1230 static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi = -1;
1231 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi = -1;
1232 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi = -1;
1233 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi = -1;
1234 static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi = -1;
1235 static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi = -1;
1236 static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi = -1;
1237 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi = -1;
1238 static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi = -1;
1239 static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI = -1;
1240 static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI = -1;
1241 static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI = -1;
1242 static int hf_gsm_map_ms_SupportedCamelPhases_phase1 = -1;
1243 static int hf_gsm_map_ms_SupportedCamelPhases_phase2 = -1;
1244 static int hf_gsm_map_ms_SupportedCamelPhases_phase3 = -1;
1245 static int hf_gsm_map_ms_SupportedCamelPhases_phase4 = -1;
1246 static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi = -1;
1247 static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi = -1;
1248 static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi = -1;
1249 static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi = -1;
1250 static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi = -1;
1251 static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi = -1;
1252 static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements = -1;
1253 static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt = -1;
1254 static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg = -1;
1255 static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg = -1;
1256 static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg = -1;
1257 static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased = -1;
1258 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument = -1;
1259 static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone = -1;
1260 static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall = -1;
1261 static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator = -1;
1262 static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP = -1;
1263 static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting = -1;
1264 static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP = -1;
1265 static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions = -1;
1266 static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements = -1;
1267 static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements = -1;
1268 static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
1269 static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
1270 static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
1271 static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP = -1;
1272 static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation = -1;
1273 static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest = -1;
1274 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest = -1;
1275 static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset = -1;
1276 static int hf_gsm_map_ms_RequestedNodes_mme = -1;
1277 static int hf_gsm_map_ms_RequestedNodes_sgsn = -1;
1278 static int hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn = -1;
1279 static int hf_gsm_map_ms_ServingNode_mme = -1;
1280 static int hf_gsm_map_ms_ServingNode_sgsn = -1;
1281
1282 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
1283
1284 static int hf_gsm_map_ch_cug_Interlock = -1;      /* CUG_Interlock */
1285 static int hf_gsm_map_ch_cug_OutgoingAccess = -1;  /* NULL */
1286 static int hf_gsm_map_ch_extensionContainer = -1;  /* ExtensionContainer */
1287 static int hf_gsm_map_ch_msisdn = -1;             /* ISDN_AddressString */
1288 static int hf_gsm_map_ch_cug_CheckInfo = -1;      /* CUG_CheckInfo */
1289 static int hf_gsm_map_ch_numberOfForwarding = -1;  /* NumberOfForwarding */
1290 static int hf_gsm_map_ch_interrogationType = -1;  /* InterrogationType */
1291 static int hf_gsm_map_ch_or_Interrogation = -1;   /* NULL */
1292 static int hf_gsm_map_ch_or_Capability = -1;      /* OR_Phase */
1293 static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address = -1;  /* ISDN_AddressString */
1294 static int hf_gsm_map_ch_callReferenceNumber = -1;  /* CallReferenceNumber */
1295 static int hf_gsm_map_ch_forwardingReason = -1;   /* ForwardingReason */
1296 static int hf_gsm_map_ch_basicServiceGroup = -1;  /* Ext_BasicServiceCode */
1297 static int hf_gsm_map_ch_networkSignalInfo = -1;  /* ExternalSignalInfo */
1298 static int hf_gsm_map_ch_camelInfo = -1;          /* CamelInfo */
1299 static int hf_gsm_map_ch_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
1300 static int hf_gsm_map_ch_alertingPattern = -1;    /* AlertingPattern */
1301 static int hf_gsm_map_ch_ccbs_Call = -1;          /* NULL */
1302 static int hf_gsm_map_ch_supportedCCBS_Phase = -1;  /* SupportedCCBS_Phase */
1303 static int hf_gsm_map_ch_additionalSignalInfo = -1;  /* Ext_ExternalSignalInfo */
1304 static int hf_gsm_map_ch_istSupportIndicator = -1;  /* IST_SupportIndicator */
1305 static int hf_gsm_map_ch_pre_pagingSupported = -1;  /* NULL */
1306 static int hf_gsm_map_ch_callDiversionTreatmentIndicator = -1;  /* CallDiversionTreatmentIndicator */
1307 static int hf_gsm_map_ch_longFTN_Supported = -1;  /* NULL */
1308 static int hf_gsm_map_ch_suppress_VT_CSI = -1;    /* NULL */
1309 static int hf_gsm_map_ch_suppressIncomingCallBarring = -1;  /* NULL */
1310 static int hf_gsm_map_ch_gsmSCF_InitiatedCall = -1;  /* NULL */
1311 static int hf_gsm_map_ch_basicServiceGroup2 = -1;  /* Ext_BasicServiceCode */
1312 static int hf_gsm_map_ch_networkSignalInfo2 = -1;  /* ExternalSignalInfo */
1313 static int hf_gsm_map_ch_suppressMTSS = -1;       /* SuppressMTSS */
1314 static int hf_gsm_map_ch_mtRoamingRetrySupported = -1;  /* NULL */
1315 static int hf_gsm_map_ch_callPriority = -1;       /* EMLPP_Priority */
1316 static int hf_gsm_map_ch_imsi = -1;               /* IMSI */
1317 static int hf_gsm_map_ch_extendedRoutingInfo = -1;  /* ExtendedRoutingInfo */
1318 static int hf_gsm_map_ch_cugSubscriptionFlag = -1;  /* NULL */
1319 static int hf_gsm_map_ch_subscriberInfo = -1;     /* SubscriberInfo */
1320 static int hf_gsm_map_ch_ss_List = -1;            /* SS_List */
1321 static int hf_gsm_map_ch_basicService = -1;       /* Ext_BasicServiceCode */
1322 static int hf_gsm_map_ch_forwardingInterrogationRequired = -1;  /* NULL */
1323 static int hf_gsm_map_ch_vmsc_Address = -1;       /* ISDN_AddressString */
1324 static int hf_gsm_map_ch_naea_PreferredCI = -1;   /* NAEA_PreferredCI */
1325 static int hf_gsm_map_ch_ccbs_Indicators = -1;    /* CCBS_Indicators */
1326 static int hf_gsm_map_ch_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
1327 static int hf_gsm_map_ch_istAlertTimer = -1;      /* IST_AlertTimerValue */
1328 static int hf_gsm_map_ch_supportedCamelPhasesInVMSC = -1;  /* SupportedCamelPhases */
1329 static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC = -1;  /* OfferedCamel4CSIs */
1330 static int hf_gsm_map_ch_routingInfo2 = -1;       /* RoutingInfo */
1331 static int hf_gsm_map_ch_ss_List2 = -1;           /* SS_List */
1332 static int hf_gsm_map_ch_basicService2 = -1;      /* Ext_BasicServiceCode */
1333 static int hf_gsm_map_ch_allowedServices = -1;    /* AllowedServices */
1334 static int hf_gsm_map_ch_unavailabilityCause = -1;  /* UnavailabilityCause */
1335 static int hf_gsm_map_ch_releaseResourcesSupported = -1;  /* NULL */
1336 static int hf_gsm_map_ch_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1337 static int hf_gsm_map_ch_ccbs_Possible = -1;      /* NULL */
1338 static int hf_gsm_map_ch_keepCCBS_CallIndicator = -1;  /* NULL */
1339 static int hf_gsm_map_ch_roamingNumber = -1;      /* ISDN_AddressString */
1340 static int hf_gsm_map_ch_forwardingData = -1;     /* ForwardingData */
1341 static int hf_gsm_map_ch_forwardedToNumber = -1;  /* ISDN_AddressString */
1342 static int hf_gsm_map_ch_forwardedToSubaddress = -1;  /* ISDN_SubaddressString */
1343 static int hf_gsm_map_ch_forwardingOptions = -1;  /* ForwardingOptions */
1344 static int hf_gsm_map_ch_longForwardedToNumber = -1;  /* FTN_AddressString */
1345 static int hf_gsm_map_ch_msc_Number = -1;         /* ISDN_AddressString */
1346 static int hf_gsm_map_ch_lmsi = -1;               /* LMSI */
1347 static int hf_gsm_map_ch_gmsc_Address = -1;       /* ISDN_AddressString */
1348 static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode = -1;  /* SupportedCamelPhases */
1349 static int hf_gsm_map_ch_orNotSupportedInGMSC = -1;  /* NULL */
1350 static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode = -1;  /* OfferedCamel4CSIs */
1351 static int hf_gsm_map_ch_pagingArea = -1;         /* PagingArea */
1352 static int hf_gsm_map_ch_mtrf_Indicator = -1;     /* NULL */
1353 static int hf_gsm_map_ch_oldMSC_Number = -1;      /* ISDN_AddressString */
1354 static int hf_gsm_map_ch_o_CSI = -1;              /* O_CSI */
1355 static int hf_gsm_map_ch_uu_Data = -1;            /* UU_Data */
1356 static int hf_gsm_map_ch_allInformationSent = -1;  /* NULL */
1357 static int hf_gsm_map_ch_d_csi = -1;              /* D_CSI */
1358 static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1359 static int hf_gsm_map_ch_mtRoamingRetry = -1;     /* NULL */
1360 static int hf_gsm_map_ch_uuIndicator = -1;        /* UUIndicator */
1361 static int hf_gsm_map_ch_uui = -1;                /* UUI */
1362 static int hf_gsm_map_ch_uusCFInteraction = -1;   /* NULL */
1363 static int hf_gsm_map_ch_supportedCamelPhases = -1;  /* SupportedCamelPhases */
1364 static int hf_gsm_map_ch_suppress_T_CSI = -1;     /* NULL */
1365 static int hf_gsm_map_ch_offeredCamel4CSIs = -1;  /* OfferedCamel4CSIs */
1366 static int hf_gsm_map_ch_routingInfo = -1;        /* RoutingInfo */
1367 static int hf_gsm_map_ch_camelRoutingInfo = -1;   /* CamelRoutingInfo */
1368 static int hf_gsm_map_ch_gmscCamelSubscriptionInfo = -1;  /* GmscCamelSubscriptionInfo */
1369 static int hf_gsm_map_ch_t_CSI = -1;              /* T_CSI */
1370 static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDPCriteriaList */
1371 static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_BCSM_CAMEL_TDP_CriteriaList */
1372 static int hf_gsm_map_ch_ccbs_Monitoring = -1;    /* ReportingState */
1373 static int hf_gsm_map_ch_ccbs_SubscriberStatus = -1;  /* CCBS_SubscriberStatus */
1374 static int hf_gsm_map_ch_eventReportData = -1;    /* EventReportData */
1375 static int hf_gsm_map_ch_callReportdata = -1;     /* CallReportData */
1376 static int hf_gsm_map_ch_monitoringMode = -1;     /* MonitoringMode */
1377 static int hf_gsm_map_ch_callOutcome = -1;        /* CallOutcome */
1378 static int hf_gsm_map_ch_callInfo = -1;           /* ExternalSignalInfo */
1379 static int hf_gsm_map_ch_ccbs_Feature = -1;       /* CCBS_Feature */
1380 static int hf_gsm_map_ch_translatedB_Number = -1;  /* ISDN_AddressString */
1381 static int hf_gsm_map_ch_replaceB_Number = -1;    /* NULL */
1382 static int hf_gsm_map_ch_ruf_Outcome = -1;        /* RUF_Outcome */
1383 static int hf_gsm_map_ch_istInformationWithdraw = -1;  /* NULL */
1384 static int hf_gsm_map_ch_callTerminationIndicator = -1;  /* CallTerminationIndicator */
1385 static int hf_gsm_map_ch_msrn = -1;               /* ISDN_AddressString */
1386 /* named bits */
1387 static int hf_gsm_map_ch_SuppressMTSS_suppressCUG = -1;
1388 static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS = -1;
1389 static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed = -1;
1390 static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed = -1;
1391
1392 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
1393
1394 static int hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU = -1;  /* LCS_ClientID */
1395 static int hf_gsm_map_lcs_mlcNumber = -1;         /* ISDN_AddressString */
1396 static int hf_gsm_map_lcs_targetMS = -1;          /* SubscriberIdentity */
1397 static int hf_gsm_map_lcs_extensionContainer = -1;  /* ExtensionContainer */
1398 static int hf_gsm_map_lcs_lcsLocationInfo = -1;   /* LCSLocationInfo */
1399 static int hf_gsm_map_lcs_v_gmlc_Address = -1;    /* GSN_Address */
1400 static int hf_gsm_map_lcs_h_gmlc_Address = -1;    /* GSN_Address */
1401 static int hf_gsm_map_lcs_ppr_Address = -1;       /* GSN_Address */
1402 static int hf_gsm_map_lcs_additional_v_gmlc_Address = -1;  /* GSN_Address */
1403 static int hf_gsm_map_lcs_networkNode_Number = -1;  /* ISDN_AddressString */
1404 static int hf_gsm_map_lcs_lmsi = -1;              /* LMSI */
1405 static int hf_gsm_map_lcs_gprsNodeIndicator = -1;  /* NULL */
1406 static int hf_gsm_map_lcs_additional_Number = -1;  /* Additional_Number */
1407 static int hf_gsm_map_lcs_supportedLCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1408 static int hf_gsm_map_lcs_additional_LCS_CapabilitySets = -1;  /* SupportedLCS_CapabilitySets */
1409 static int hf_gsm_map_lcs_mme_Name = -1;          /* DiameterIdentity */
1410 static int hf_gsm_map_lcs_aaa_Server_Name = -1;   /* DiameterIdentity */
1411 static int hf_gsm_map_lcs_locationType = -1;      /* LocationType */
1412 static int hf_gsm_map_lcs_mlc_Number = -1;        /* ISDN_AddressString */
1413 static int hf_gsm_map_lcs_lcs_ClientID = -1;      /* LCS_ClientID */
1414 static int hf_gsm_map_lcs_privacyOverride = -1;   /* NULL */
1415 static int hf_gsm_map_lcs_imsi = -1;              /* IMSI */
1416 static int hf_gsm_map_lcs_msisdn = -1;            /* ISDN_AddressString */
1417 static int hf_gsm_map_lcs_imei = -1;              /* IMEI */
1418 static int hf_gsm_map_lcs_lcs_Priority = -1;      /* LCS_Priority */
1419 static int hf_gsm_map_lcs_lcs_QoS = -1;           /* LCS_QoS */
1420 static int hf_gsm_map_lcs_supportedGADShapes = -1;  /* SupportedGADShapes */
1421 static int hf_gsm_map_lcs_lcs_ReferenceNumber = -1;  /* LCS_ReferenceNumber */
1422 static int hf_gsm_map_lcs_lcsServiceTypeID = -1;  /* LCSServiceTypeID */
1423 static int hf_gsm_map_lcs_lcsCodeword = -1;       /* LCSCodeword */
1424 static int hf_gsm_map_lcs_lcs_PrivacyCheck = -1;  /* LCS_PrivacyCheck */
1425 static int hf_gsm_map_lcs_areaEventInfo = -1;     /* AreaEventInfo */
1426 static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator = -1;  /* NULL */
1427 static int hf_gsm_map_lcs_periodicLDRInfo = -1;   /* PeriodicLDRInfo */
1428 static int hf_gsm_map_lcs_reportingPLMNList = -1;  /* ReportingPLMNList */
1429 static int hf_gsm_map_lcs_locationEstimateType = -1;  /* LocationEstimateType */
1430 static int hf_gsm_map_lcs_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1431 static int hf_gsm_map_lcs_lcsClientType = -1;     /* LCSClientType */
1432 static int hf_gsm_map_lcs_lcsClientExternalID = -1;  /* LCSClientExternalID */
1433 static int hf_gsm_map_lcs_lcsClientDialedByMS = -1;  /* AddressString */
1434 static int hf_gsm_map_lcs_lcsClientInternalID = -1;  /* LCSClientInternalID */
1435 static int hf_gsm_map_lcs_lcsClientName = -1;     /* LCSClientName */
1436 static int hf_gsm_map_lcs_lcsAPN = -1;            /* APN */
1437 static int hf_gsm_map_lcs_lcsRequestorID = -1;    /* LCSRequestorID */
1438 static int hf_gsm_map_lcs_dataCodingScheme = -1;  /* USSD_DataCodingScheme */
1439 static int hf_gsm_map_lcs_nameString = -1;        /* NameString */
1440 static int hf_gsm_map_lcs_lcs_FormatIndicator = -1;  /* LCS_FormatIndicator */
1441 static int hf_gsm_map_lcs_requestorIDString = -1;  /* RequestorIDString */
1442 static int hf_gsm_map_lcs_horizontal_accuracy = -1;  /* Horizontal_Accuracy */
1443 static int hf_gsm_map_lcs_verticalCoordinateRequest = -1;  /* NULL */
1444 static int hf_gsm_map_lcs_vertical_accuracy = -1;  /* Vertical_Accuracy */
1445 static int hf_gsm_map_lcs_responseTime = -1;      /* ResponseTime */
1446 static int hf_gsm_map_lcs_velocityRequest = -1;   /* NULL */
1447 static int hf_gsm_map_lcs_responseTimeCategory = -1;  /* ResponseTimeCategory */
1448 static int hf_gsm_map_lcs_lcsCodewordString = -1;  /* LCSCodewordString */
1449 static int hf_gsm_map_lcs_callSessionUnrelated = -1;  /* PrivacyCheckRelatedAction */
1450 static int hf_gsm_map_lcs_callSessionRelated = -1;  /* PrivacyCheckRelatedAction */
1451 static int hf_gsm_map_lcs_areaDefinition = -1;    /* AreaDefinition */
1452 static int hf_gsm_map_lcs_occurrenceInfo = -1;    /* OccurrenceInfo */
1453 static int hf_gsm_map_lcs_intervalTime = -1;      /* IntervalTime */
1454 static int hf_gsm_map_lcs_areaList = -1;          /* AreaList */
1455 static int hf_gsm_map_lcs_AreaList_item = -1;     /* Area */
1456 static int hf_gsm_map_lcs_areaType = -1;          /* AreaType */
1457 static int hf_gsm_map_lcs_areaIdentification = -1;  /* AreaIdentification */
1458 static int hf_gsm_map_lcs_reportingAmount = -1;   /* ReportingAmount */
1459 static int hf_gsm_map_lcs_reportingInterval = -1;  /* ReportingInterval */
1460 static int hf_gsm_map_lcs_plmn_ListPrioritized = -1;  /* NULL */
1461 static int hf_gsm_map_lcs_plmn_List = -1;         /* PLMNList */
1462 static int hf_gsm_map_lcs_PLMNList_item = -1;     /* ReportingPLMN */
1463 static int hf_gsm_map_lcs_plmn_Id = -1;           /* PLMN_Id */
1464 static int hf_gsm_map_lcs_ran_Technology = -1;    /* RAN_Technology */
1465 static int hf_gsm_map_lcs_ran_PeriodicLocationSupport = -1;  /* NULL */
1466 static int hf_gsm_map_lcs_locationEstimate = -1;  /* Ext_GeographicalInformation */
1467 static int hf_gsm_map_lcs_ageOfLocationEstimate = -1;  /* AgeOfLocationInformation */
1468 static int hf_gsm_map_lcs_add_LocationEstimate = -1;  /* Add_GeographicalInformation */
1469 static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator = -1;  /* NULL */
1470 static int hf_gsm_map_lcs_geranPositioningData = -1;  /* PositioningDataInformation */
1471 static int hf_gsm_map_lcs_utranPositioningData = -1;  /* UtranPositioningDataInfo */
1472 static int hf_gsm_map_lcs_cellIdOrSai = -1;       /* CellGlobalIdOrServiceAreaIdOrLAI */
1473 static int hf_gsm_map_lcs_sai_Present = -1;       /* NULL */
1474 static int hf_gsm_map_lcs_accuracyFulfilmentIndicator = -1;  /* AccuracyFulfilmentIndicator */
1475 static int hf_gsm_map_lcs_velocityEstimate = -1;  /* VelocityEstimate */
1476 static int hf_gsm_map_lcs_geranGANSSpositioningData = -1;  /* GeranGANSSpositioningData */
1477 static int hf_gsm_map_lcs_utranGANSSpositioningData = -1;  /* UtranGANSSpositioningData */
1478 static int hf_gsm_map_lcs_targetServingNodeForHandover = -1;  /* ServingNodeAddress */
1479 static int hf_gsm_map_lcs_lcs_Event = -1;         /* LCS_Event */
1480 static int hf_gsm_map_lcs_na_ESRD = -1;           /* ISDN_AddressString */
1481 static int hf_gsm_map_lcs_na_ESRK = -1;           /* ISDN_AddressString */
1482 static int hf_gsm_map_lcs_slr_ArgExtensionContainer = -1;  /* SLR_ArgExtensionContainer */
1483 static int hf_gsm_map_lcs_deferredmt_lrData = -1;  /* Deferredmt_lrData */
1484 static int hf_gsm_map_lcs_pseudonymIndicator = -1;  /* NULL */
1485 static int hf_gsm_map_lcs_sequenceNumber = -1;    /* SequenceNumber */
1486 static int hf_gsm_map_lcs_terminationCause = -1;  /* TerminationCause */
1487 static int hf_gsm_map_lcs_msc_Number = -1;        /* ISDN_AddressString */
1488 static int hf_gsm_map_lcs_sgsn_Number = -1;       /* ISDN_AddressString */
1489 static int hf_gsm_map_lcs_mme_Number = -1;        /* DiameterIdentity */
1490 /* named bits */
1491 static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable = -1;
1492 static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea = -1;
1493 static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea = -1;
1494 static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea = -1;
1495 static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR = -1;
1496 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint = -1;
1497 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1;
1498 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1;
1499 static int hf_gsm_map_lcs_SupportedGADShapes_polygon = -1;
1500 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude = -1;
1501 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1;
1502 static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc = -1;
1503
1504 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
1505
1506 static int hf_gsm_map_gr_teleservice = -1;        /* Ext_TeleserviceCode */
1507 static int hf_gsm_map_gr_asciCallReference = -1;  /* ASCI_CallReference */
1508 static int hf_gsm_map_gr_codec_Info = -1;         /* CODEC_Info */
1509 static int hf_gsm_map_gr_cipheringAlgorithm = -1;  /* CipheringAlgorithm */
1510 static int hf_gsm_map_gr_groupKeyNumber_Vk_Id = -1;  /* GroupKeyNumber */
1511 static int hf_gsm_map_gr_groupKey = -1;           /* Kc */
1512 static int hf_gsm_map_gr_priority = -1;           /* EMLPP_Priority */
1513 static int hf_gsm_map_gr_uplinkFree = -1;         /* NULL */
1514 static int hf_gsm_map_gr_extensionContainer = -1;  /* ExtensionContainer */
1515 static int hf_gsm_map_gr_vstk = -1;               /* VSTK */
1516 static int hf_gsm_map_gr_vstk_rand = -1;          /* VSTK_RAND */
1517 static int hf_gsm_map_gr_talkerChannelParameter = -1;  /* NULL */
1518 static int hf_gsm_map_gr_uplinkReplyIndicator = -1;  /* NULL */
1519 static int hf_gsm_map_gr_groupCallNumber = -1;    /* ISDN_AddressString */
1520 static int hf_gsm_map_gr_imsi = -1;               /* IMSI */
1521 static int hf_gsm_map_gr_talkerPriority = -1;     /* TalkerPriority */
1522 static int hf_gsm_map_gr_additionalInfo = -1;     /* AdditionalInfo */
1523 static int hf_gsm_map_gr_uplinkRequestAck = -1;   /* NULL */
1524 static int hf_gsm_map_gr_uplinkReleaseIndication = -1;  /* NULL */
1525 static int hf_gsm_map_gr_uplinkRejectCommand = -1;  /* NULL */
1526 static int hf_gsm_map_gr_uplinkSeizedCommand = -1;  /* NULL */
1527 static int hf_gsm_map_gr_uplinkReleaseCommand = -1;  /* NULL */
1528 static int hf_gsm_map_gr_stateAttributes = -1;    /* StateAttributes */
1529 static int hf_gsm_map_gr_emergencyModeResetCommandFlag = -1;  /* NULL */
1530 static int hf_gsm_map_gr_sm_RP_UI = -1;           /* SignalInfo */
1531 static int hf_gsm_map_gr_an_APDU = -1;            /* AccessNetworkSignalInfo */
1532 static int hf_gsm_map_gr_uplinkRequest = -1;      /* NULL */
1533 static int hf_gsm_map_gr_releaseGroupCall = -1;   /* NULL */
1534 static int hf_gsm_map_gr_downlinkAttached = -1;   /* NULL */
1535 static int hf_gsm_map_gr_uplinkAttached = -1;     /* NULL */
1536 static int hf_gsm_map_gr_dualCommunication = -1;  /* NULL */
1537 static int hf_gsm_map_gr_callOriginator = -1;     /* NULL */
1538 static int hf_gsm_map_gr_requestedInfo = -1;      /* RequestedInfo */
1539 static int hf_gsm_map_gr_groupId = -1;            /* Long_GroupId */
1540 static int hf_gsm_map_gr_cellId = -1;             /* GlobalCellId */
1541 static int hf_gsm_map_gr_tmsi = -1;               /* TMSI */
1542 static int hf_gsm_map_gr_cksn = -1;               /* Cksn */
1543 static int hf_gsm_map_gr_anchorMSC_Address = -1;  /* ISDN_AddressString */
1544 static int hf_gsm_map_gr_additionalSubscriptions = -1;  /* AdditionalSubscriptions */
1545 static int hf_gsm_map_gr_kc = -1;                 /* Kc */
1546
1547 /* --- Module MAP-DialogueInformation --- --- ---                             */
1548
1549 static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU = -1;  /* MAP_DialoguePDU */
1550 static int hf_gsm_map_dialogue_map_open = -1;     /* MAP_OpenInfo */
1551 static int hf_gsm_map_dialogue_map_accept = -1;   /* MAP_AcceptInfo */
1552 static int hf_gsm_map_dialogue_map_close = -1;    /* MAP_CloseInfo */
1553 static int hf_gsm_map_dialogue_map_refuse = -1;   /* MAP_RefuseInfo */
1554 static int hf_gsm_map_dialogue_map_userAbort = -1;  /* MAP_UserAbortInfo */
1555 static int hf_gsm_map_dialogue_map_providerAbort = -1;  /* MAP_ProviderAbortInfo */
1556 static int hf_gsm_map_dialogue_destinationReference = -1;  /* AddressString */
1557 static int hf_gsm_map_dialogue_originationReference = -1;  /* AddressString */
1558 static int hf_gsm_map_dialogue_extensionContainer = -1;  /* ExtensionContainer */
1559 static int hf_gsm_map_dialogue_reason = -1;       /* Reason */
1560 static int hf_gsm_map_dialogue_alternativeApplicationContext = -1;  /* OBJECT_IDENTIFIER */
1561 static int hf_gsm_map_dialogue_map_UserAbortChoice = -1;  /* MAP_UserAbortChoice */
1562 static int hf_gsm_map_dialogue_userSpecificReason = -1;  /* NULL */
1563 static int hf_gsm_map_dialogue_userResourceLimitation = -1;  /* NULL */
1564 static int hf_gsm_map_dialogue_resourceUnavailable = -1;  /* ResourceUnavailableReason */
1565 static int hf_gsm_map_dialogue_applicationProcedureCancellation = -1;  /* ProcedureCancellationReason */
1566 static int hf_gsm_map_dialogue_map_ProviderAbortReason = -1;  /* MAP_ProviderAbortReason */
1567
1568 /* --- Module DummyMAP --- --- ---                                            */
1569
1570 static int hf_gsm_old_invoke = -1;                /* Invoke */
1571 static int hf_gsm_old_returnResultLast = -1;      /* ReturnResult */
1572 static int hf_gsm_old_returnError = -1;           /* ReturnError */
1573 static int hf_gsm_old_reject = -1;                /* Reject */
1574 static int hf_gsm_old_returnResultNotLast = -1;   /* ReturnResult */
1575 static int hf_gsm_old_invokeID = -1;              /* InvokeIdType */
1576 static int hf_gsm_old_linkedID = -1;              /* InvokeIdType */
1577 static int hf_gsm_old_opCode = -1;                /* MAP_OPERATION */
1578 static int hf_gsm_old_invokeparameter = -1;       /* InvokeParameter */
1579 static int hf_gsm_old_resultretres = -1;          /* T_resultretres */
1580 static int hf_gsm_old_returnparameter = -1;       /* ReturnResultParameter */
1581 static int hf_gsm_old_errorCode = -1;             /* MAP_ERROR */
1582 static int hf_gsm_old_parameter = -1;             /* ReturnErrorParameter */
1583 static int hf_gsm_old_invokeIDRej = -1;           /* T_invokeIDRej */
1584 static int hf_gsm_old_derivable = -1;             /* InvokeIdType */
1585 static int hf_gsm_old_not_derivable = -1;         /* NULL */
1586 static int hf_gsm_old_problem = -1;               /* T_problem */
1587 static int hf_gsm_old_generalProblem = -1;        /* GeneralProblem */
1588 static int hf_gsm_old_invokeProblem = -1;         /* InvokeProblem */
1589 static int hf_gsm_old_returnResultProblem = -1;   /* ReturnResultProblem */
1590 static int hf_gsm_old_returnErrorProblem = -1;    /* ReturnErrorProblem */
1591 static int hf_gsm_old_localValue = -1;            /* OperationLocalvalue */
1592 static int hf_gsm_old_globalValue = -1;           /* OBJECT_IDENTIFIER */
1593 static int hf_gsm_old_localValue_01 = -1;         /* LocalErrorcode */
1594 static int hf_gsm_old_protocolId = -1;            /* ProtocolId */
1595 static int hf_gsm_old_signalInfo = -1;            /* SignalInfo */
1596 static int hf_gsm_old_extensionContainer = -1;    /* ExtensionContainer */
1597 static int hf_gsm_old_gsm_BearerCapability = -1;  /* ExternalSignalInfo */
1598 static int hf_gsm_old_isdn_BearerCapability = -1;  /* ExternalSignalInfo */
1599 static int hf_gsm_old_call_Direction = -1;        /* CallDirection */
1600 static int hf_gsm_old_b_Subscriber_Address = -1;  /* ISDN_AddressString */
1601 static int hf_gsm_old_chosenChannel = -1;         /* ExternalSignalInfo */
1602 static int hf_gsm_old_lowerLayerCompatibility = -1;  /* ExternalSignalInfo */
1603 static int hf_gsm_old_highLayerCompatibility = -1;  /* ExternalSignalInfo */
1604 static int hf_gsm_old_sIWFSNumber = -1;           /* ISDN_AddressString */
1605 static int hf_gsm_old_imsi = -1;                  /* IMSI */
1606 static int hf_gsm_old_vlr_Number = -1;            /* ISDN_AddressString */
1607 static int hf_gsm_old_targetCellId = -1;          /* GlobalCellId */
1608 static int hf_gsm_old_ho_NumberNotRequired = -1;  /* NULL */
1609 static int hf_gsm_old_bss_APDU = -1;              /* Bss_APDU */
1610 static int hf_gsm_old_handoverNumber = -1;        /* ISDN_AddressString */
1611 static int hf_gsm_old_SendAuthenticationInfoResOld_item = -1;  /* SendAuthenticationInfoResOld_item */
1612 static int hf_gsm_old_rand = -1;                  /* RAND */
1613 static int hf_gsm_old_sres = -1;                  /* SRES */
1614 static int hf_gsm_old_kc = -1;                    /* Kc */
1615 static int hf_gsm_old_tripletList = -1;           /* TripletListold */
1616 static int hf_gsm_old_TripletListold_item = -1;   /* AuthenticationTriplet_v2 */
1617 static int hf_gsm_old_channelType = -1;           /* ExternalSignalInfo */
1618 static int hf_gsm_old_securityHeader = -1;        /* SecurityHeader */
1619 static int hf_gsm_old_protectedPayload = -1;      /* ProtectedPayload */
1620 static int hf_gsm_old_securityParametersIndex = -1;  /* SecurityParametersIndex */
1621 static int hf_gsm_old_originalComponentIdentifier = -1;  /* OriginalComponentIdentifier */
1622 static int hf_gsm_old_initialisationVector = -1;  /* InitialisationVector */
1623 static int hf_gsm_old_operationCode = -1;         /* OperationCode */
1624 static int hf_gsm_old_errorCode_01 = -1;          /* ErrorCode */
1625 static int hf_gsm_old_userInfo = -1;              /* NULL */
1626 static int hf_gsm_old_localValue_02 = -1;         /* INTEGER */
1627 static int hf_gsm_old_msisdn = -1;                /* ISDN_AddressString */
1628 static int hf_gsm_old_category = -1;              /* Category */
1629 static int hf_gsm_old_basicService = -1;          /* BasicServiceCode */
1630 static int hf_gsm_old_operatorSS_Code = -1;       /* T_operatorSS_Code */
1631 static int hf_gsm_old_operatorSS_Code_item = -1;  /* OCTET_STRING_SIZE_1 */
1632 static int hf_gsm_old_sm_RP_DA = -1;              /* SM_RP_DAold */
1633 static int hf_gsm_old_sm_RP_OA = -1;              /* SM_RP_OAold */
1634 static int hf_gsm_old_sm_RP_UI = -1;              /* SignalInfo */
1635 static int hf_gsm_old_moreMessagesToSend = -1;    /* NULL */
1636 static int hf_gsm_old_imsi_01 = -1;               /* T_imsi */
1637 static int hf_gsm_old_lmsi = -1;                  /* T_lmsi */
1638 static int hf_gsm_old_serviceCentreAddressDA = -1;  /* T_serviceCentreAddressDA */
1639 static int hf_gsm_old_noSM_RP_DA = -1;            /* NULL */
1640 static int hf_gsm_old_msisdn_01 = -1;             /* T_msisdn */
1641 static int hf_gsm_old_serviceCentreAddressOA = -1;  /* T_serviceCentreAddressOA */
1642 static int hf_gsm_old_noSM_RP_OA = -1;            /* NULL */
1643 static int hf_gsm_old_cug_CheckInfo = -1;         /* CUG_CheckInfo */
1644 static int hf_gsm_old_numberOfForwarding = -1;    /* NumberOfForwarding */
1645 static int hf_gsm_old_networkSignalInfo = -1;     /* ExternalSignalInfo */
1646 static int hf_gsm_old_routingInfo = -1;           /* RoutingInfo */
1647 static int hf_gsm_old_originatingEntityNumber = -1;  /* ISDN_AddressString */
1648 static int hf_gsm_old_msisdn_02 = -1;             /* AddressString */
1649
1650 /* --- Module SS-DataTypes --- --- ---                                        */
1651
1652 static int hf_gsm_ss_ss_Code = -1;                /* SS_Code */
1653 static int hf_gsm_ss_ss_Status = -1;              /* SS_Status */
1654 static int hf_gsm_ss_ss_Notification = -1;        /* SS_Notification */
1655 static int hf_gsm_ss_callIsWaiting_Indicator = -1;  /* NULL */
1656 static int hf_gsm_ss_callOnHold_Indicator = -1;   /* CallOnHold_Indicator */
1657 static int hf_gsm_ss_mpty_Indicator = -1;         /* NULL */
1658 static int hf_gsm_ss_cug_Index = -1;              /* CUG_Index */
1659 static int hf_gsm_ss_clirSuppressionRejected = -1;  /* NULL */
1660 static int hf_gsm_ss_ect_Indicator = -1;          /* ECT_Indicator */
1661 static int hf_gsm_ss_nameIndicator = -1;          /* NameIndicator */
1662 static int hf_gsm_ss_ccbs_Feature = -1;           /* CCBS_Feature */
1663 static int hf_gsm_ss_alertingPattern = -1;        /* AlertingPattern */
1664 static int hf_gsm_ss_multicall_Indicator = -1;    /* Multicall_Indicator */
1665 static int hf_gsm_ss_chargingInformation = -1;    /* ChargingInformation */
1666 static int hf_gsm_ss_e1 = -1;                     /* E1 */
1667 static int hf_gsm_ss_e2 = -1;                     /* E2 */
1668 static int hf_gsm_ss_e3 = -1;                     /* E3 */
1669 static int hf_gsm_ss_e4 = -1;                     /* E4 */
1670 static int hf_gsm_ss_e5 = -1;                     /* E5 */
1671 static int hf_gsm_ss_e6 = -1;                     /* E6 */
1672 static int hf_gsm_ss_e7 = -1;                     /* E7 */
1673 static int hf_gsm_ss_suppressPrefCUG = -1;        /* NULL */
1674 static int hf_gsm_ss_suppressOA = -1;             /* NULL */
1675 static int hf_gsm_ss_ect_CallState = -1;          /* ECT_CallState */
1676 static int hf_gsm_ss_rdn = -1;                    /* RDN */
1677 static int hf_gsm_ss_callingName = -1;            /* Name */
1678 static int hf_gsm_ss_namePresentationAllowed = -1;  /* NameSet */
1679 static int hf_gsm_ss_presentationRestricted = -1;  /* NULL */
1680 static int hf_gsm_ss_nameUnavailable = -1;        /* NULL */
1681 static int hf_gsm_ss_namePresentationRestricted = -1;  /* NameSet */
1682 static int hf_gsm_ss_dataCodingScheme = -1;       /* USSD_DataCodingScheme */
1683 static int hf_gsm_ss_lengthInCharacters = -1;     /* INTEGER */
1684 static int hf_gsm_ss_nameString = -1;             /* USSD_String */
1685 static int hf_gsm_ss_presentationAllowedAddress = -1;  /* RemotePartyNumber */
1686 static int hf_gsm_ss_numberNotAvailableDueToInterworking = -1;  /* NULL */
1687 static int hf_gsm_ss_presentationRestrictedAddress = -1;  /* RemotePartyNumber */
1688 static int hf_gsm_ss_partyNumber = -1;            /* ISDN_AddressString */
1689 static int hf_gsm_ss_partyNumberSubaddress = -1;  /* ISDN_SubaddressString */
1690 static int hf_gsm_ss_deflectedToNumber = -1;      /* AddressString */
1691 static int hf_gsm_ss_deflectedToSubaddress = -1;  /* ISDN_SubaddressString */
1692 static int hf_gsm_ss_uUS_Service = -1;            /* UUS_Service */
1693 static int hf_gsm_ss_uUS_Required = -1;           /* BOOLEAN */
1694 static int hf_gsm_ss_notificationType = -1;       /* NotificationToMSUser */
1695 static int hf_gsm_ss_locationType = -1;           /* LocationType */
1696 static int hf_gsm_ss_lcsClientExternalID = -1;    /* LCSClientExternalID */
1697 static int hf_gsm_ss_lcsClientName = -1;          /* LCSClientName */
1698 static int hf_gsm_ss_lcsRequestorID = -1;         /* LCSRequestorID */
1699 static int hf_gsm_ss_lcsCodeword = -1;            /* LCSCodeword */
1700 static int hf_gsm_ss_lcsServiceTypeID = -1;       /* LCSServiceTypeID */
1701 static int hf_gsm_ss_verificationResponse = -1;   /* VerificationResponse */
1702 static int hf_gsm_ss_molr_Type = -1;              /* MOLR_Type */
1703 static int hf_gsm_ss_locationMethod = -1;         /* LocationMethod */
1704 static int hf_gsm_ss_lcs_QoS = -1;                /* LCS_QoS */
1705 static int hf_gsm_ss_mlc_Number = -1;             /* ISDN_AddressString */
1706 static int hf_gsm_ss_gpsAssistanceData = -1;      /* GPSAssistanceData */
1707 static int hf_gsm_ss_supportedGADShapes = -1;     /* SupportedGADShapes */
1708 static int hf_gsm_ss_ageOfLocationInfo = -1;      /* AgeOfLocationInformation */
1709 static int hf_gsm_ss_pseudonymIndicator = -1;     /* NULL */
1710 static int hf_gsm_ss_h_gmlc_address = -1;         /* GSN_Address */
1711 static int hf_gsm_ss_locationEstimate = -1;       /* Ext_GeographicalInformation */
1712 static int hf_gsm_ss_velocityEstimate = -1;       /* VelocityEstimate */
1713 static int hf_gsm_ss_referenceNumber = -1;        /* LCS_ReferenceNumber */
1714 static int hf_gsm_ss_periodicLDRInfo = -1;        /* PeriodicLDRInfo */
1715 static int hf_gsm_ss_locationUpdateRequest = -1;  /* NULL */
1716 static int hf_gsm_ss_sequenceNumber = -1;         /* SequenceNumber */
1717 static int hf_gsm_ss_terminationCause = -1;       /* TerminationCause */
1718 static int hf_gsm_ss_mo_lrShortCircuit = -1;      /* NULL */
1719 static int hf_gsm_ss_ganssAssistanceData = -1;    /* GANSSAssistanceData */
1720 static int hf_gsm_ss_multiplePositioningProtocolPDUs = -1;  /* MultiplePositioningProtocolPDUs */
1721 static int hf_gsm_ss_MultiplePositioningProtocolPDUs_item = -1;  /* PositioningProtocolPDU */
1722 static int hf_gsm_ss_decipheringKeys = -1;        /* DecipheringKeys */
1723 static int hf_gsm_ss_add_LocationEstimate = -1;   /* Add_GeographicalInformation */
1724 static int hf_gsm_ss_reportingPLMNList = -1;      /* ReportingPLMNList */
1725 static int hf_gsm_ss_deferredLocationEventType = -1;  /* DeferredLocationEventType */
1726 static int hf_gsm_ss_areaEventInfo = -1;          /* AreaEventInfo */
1727 static int hf_gsm_ss_qoS = -1;                    /* LCS_QoS */
1728
1729 /* --- Module EricssonMAP --- --- ---                                         */
1730
1731 static int hf_gsm_map_ericsson_imei = -1;         /* IMEI */
1732 static int hf_gsm_map_ericsson_requestedEquipmentInfo = -1;  /* RequestedEquipmentInfo */
1733 static int hf_gsm_map_ericsson_imsi = -1;         /* IMSI */
1734 static int hf_gsm_map_ericsson_locationInformation = -1;  /* T_locationInformation */
1735 static int hf_gsm_map_ericsson_extensionContainer = -1;  /* ExtensionContainer */
1736
1737 /*--- End of included file: packet-gsm_map-hf.c ---*/
1738 #line 156 "../../asn1/gsm_map/packet-gsm_map-template.c"
1739
1740 /* Initialize the subtree pointers */
1741 static gint ett_gsm_map = -1;
1742 static gint ett_gsm_map_InvokeId = -1;
1743 static gint ett_gsm_map_InvokePDU = -1;
1744 static gint ett_gsm_map_ReturnResultPDU = -1;
1745 static gint ett_gsm_map_ReturnErrorPDU = -1;
1746 static gint ett_gsm_map_ReturnResult_result = -1;
1747 static gint ett_gsm_map_ReturnError_result = -1;
1748 static gint ett_gsm_map_GSMMAPPDU = -1;
1749 static gint ett_gsm_map_ext_qos_subscribed = -1;
1750 static gint ett_gsm_map_pdptypenumber = -1;
1751 static gint ett_gsm_map_RAIdentity = -1;
1752 static gint ett_gsm_map_LAIFixedLength = -1;
1753 static gint ett_gsm_map_isdn_address_string = -1;
1754 static gint ett_gsm_map_geo_desc = -1;
1755 static gint ett_gsm_map_LongSignalInfo = -1;
1756 static gint ett_gsm_map_RadioResourceInformation =-1;
1757 static gint ett_gsm_map_MSNetworkCapability =-1;
1758 static gint ett_gsm_map_MSRadioAccessCapability = -1;
1759 static gint ett_gsm_map_externalsignalinfo = -1;
1760 static gint ett_gsm_map_cbs_data_coding = -1;
1761 static gint ett_gsm_map_GlobalCellId = -1;
1762 static gint ett_gsm_map_GeographicalInformation = -1;
1763 static gint ett_gsm_map_apn_str = -1;
1764 static gint ett_gsm_map_LocationNumber = -1;
1765 static gint ett_gsm_map_ericsson_locationInformation = -1;
1766
1767
1768 /*--- Included file: packet-gsm_map-ett.c ---*/
1769 #line 1 "../../asn1/gsm_map/packet-gsm_map-ett.c"
1770
1771 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
1772
1773 static gint ett_gsm_map_ExtensionContainer = -1;
1774 static gint ett_gsm_map_SLR_ArgExtensionContainer = -1;
1775 static gint ett_gsm_map_PrivateExtensionList = -1;
1776 static gint ett_gsm_map_PrivateExtension = -1;
1777 static gint ett_gsm_map_PCS_Extensions = -1;
1778 static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
1779
1780 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
1781
1782 static gint ett_gsm_map_ExternalSignalInfo = -1;
1783 static gint ett_gsm_map_Ext_ExternalSignalInfo = -1;
1784 static gint ett_gsm_map_AccessNetworkSignalInfo = -1;
1785 static gint ett_gsm_map_Identity = -1;
1786 static gint ett_gsm_map_IMSI_WithLMSI = -1;
1787 static gint ett_gsm_map_HLR_List = -1;
1788 static gint ett_gsm_map_NAEA_PreferredCI = -1;
1789 static gint ett_gsm_map_SubscriberIdentity = -1;
1790 static gint ett_gsm_map_LCSClientExternalID = -1;
1791 static gint ett_gsm_map_NetworkNodeDiameterAddress = -1;
1792 static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1;
1793 static gint ett_gsm_map_BasicServiceCode = -1;
1794 static gint ett_gsm_map_Ext_BasicServiceCode = -1;
1795 static gint ett_gsm_map_EMLPP_Info = -1;
1796 static gint ett_gsm_map_MC_SS_Info = -1;
1797
1798 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
1799
1800 static gint ett_gsm_map_ss_RegisterSS_Arg = -1;
1801 static gint ett_gsm_map_ss_SS_Info = -1;
1802 static gint ett_gsm_map_ss_ForwardingInfo = -1;
1803 static gint ett_gsm_map_ss_ForwardingFeatureList = -1;
1804 static gint ett_gsm_map_ss_ForwardingFeature = -1;
1805 static gint ett_gsm_map_ss_CallBarringInfo = -1;
1806 static gint ett_gsm_map_ss_CallBarringFeatureList = -1;
1807 static gint ett_gsm_map_ss_CallBarringFeature = -1;
1808 static gint ett_gsm_map_ss_SS_Data = -1;
1809 static gint ett_gsm_map_ss_SS_SubscriptionOption = -1;
1810 static gint ett_gsm_map_ss_SS_ForBS_Code = -1;
1811 static gint ett_gsm_map_ss_GenericServiceInfo = -1;
1812 static gint ett_gsm_map_ss_CCBS_FeatureList = -1;
1813 static gint ett_gsm_map_ss_CCBS_Feature = -1;
1814 static gint ett_gsm_map_ss_InterrogateSS_Res = -1;
1815 static gint ett_gsm_map_ss_USSD_Arg = -1;
1816 static gint ett_gsm_map_ss_USSD_Res = -1;
1817 static gint ett_gsm_map_ss_SS_List = -1;
1818 static gint ett_gsm_map_ss_BasicServiceGroupList = -1;
1819 static gint ett_gsm_map_ss_SS_InvocationNotificationArg = -1;
1820 static gint ett_gsm_map_ss_SS_InvocationNotificationRes = -1;
1821 static gint ett_gsm_map_ss_SS_EventSpecification = -1;
1822 static gint ett_gsm_map_ss_RegisterCC_EntryArg = -1;
1823 static gint ett_gsm_map_ss_CCBS_Data = -1;
1824 static gint ett_gsm_map_ss_ServiceIndicator = -1;
1825 static gint ett_gsm_map_ss_RegisterCC_EntryRes = -1;
1826 static gint ett_gsm_map_ss_EraseCC_EntryArg = -1;
1827 static gint ett_gsm_map_ss_EraseCC_EntryRes = -1;
1828
1829 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
1830
1831 static gint ett_gsm_map_er_RoamingNotAllowedParam = -1;
1832 static gint ett_gsm_map_er_CallBarredParam = -1;
1833 static gint ett_gsm_map_er_ExtensibleCallBarredParam = -1;
1834 static gint ett_gsm_map_er_CUG_RejectParam = -1;
1835 static gint ett_gsm_map_er_SS_IncompatibilityCause = -1;
1836 static gint ett_gsm_map_er_SM_DeliveryFailureCause = -1;
1837 static gint ett_gsm_map_er_AbsentSubscriberSM_Param = -1;
1838 static gint ett_gsm_map_er_SystemFailureParam = -1;
1839 static gint ett_gsm_map_er_ExtensibleSystemFailureParam = -1;
1840 static gint ett_gsm_map_er_DataMissingParam = -1;
1841 static gint ett_gsm_map_er_UnexpectedDataParam = -1;
1842 static gint ett_gsm_map_er_FacilityNotSupParam = -1;
1843 static gint ett_gsm_map_er_OR_NotAllowedParam = -1;
1844 static gint ett_gsm_map_er_UnknownSubscriberParam = -1;
1845 static gint ett_gsm_map_er_NumberChangedParam = -1;
1846 static gint ett_gsm_map_er_UnidentifiedSubParam = -1;
1847 static gint ett_gsm_map_er_IllegalSubscriberParam = -1;
1848 static gint ett_gsm_map_er_IllegalEquipmentParam = -1;
1849 static gint ett_gsm_map_er_BearerServNotProvParam = -1;
1850 static gint ett_gsm_map_er_TeleservNotProvParam = -1;
1851 static gint ett_gsm_map_er_TracingBufferFullParam = -1;
1852 static gint ett_gsm_map_er_NoRoamingNbParam = -1;
1853 static gint ett_gsm_map_er_AbsentSubscriberParam = -1;
1854 static gint ett_gsm_map_er_BusySubscriberParam = -1;
1855 static gint ett_gsm_map_er_NoSubscriberReplyParam = -1;
1856 static gint ett_gsm_map_er_ForwardingViolationParam = -1;
1857 static gint ett_gsm_map_er_ForwardingFailedParam = -1;
1858 static gint ett_gsm_map_er_ATI_NotAllowedParam = -1;
1859 static gint ett_gsm_map_er_ATSI_NotAllowedParam = -1;
1860 static gint ett_gsm_map_er_ATM_NotAllowedParam = -1;
1861 static gint ett_gsm_map_er_IllegalSS_OperationParam = -1;
1862 static gint ett_gsm_map_er_SS_NotAvailableParam = -1;
1863 static gint ett_gsm_map_er_SS_SubscriptionViolationParam = -1;
1864 static gint ett_gsm_map_er_InformationNotAvailableParam = -1;
1865 static gint ett_gsm_map_er_SubBusyForMT_SMS_Param = -1;
1866 static gint ett_gsm_map_er_MessageWaitListFullParam = -1;
1867 static gint ett_gsm_map_er_ResourceLimitationParam = -1;
1868 static gint ett_gsm_map_er_NoGroupCallNbParam = -1;
1869 static gint ett_gsm_map_er_IncompatibleTerminalParam = -1;
1870 static gint ett_gsm_map_er_ShortTermDenialParam = -1;
1871 static gint ett_gsm_map_er_LongTermDenialParam = -1;
1872 static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param = -1;
1873 static gint ett_gsm_map_er_UnauthorizedLCSClient_Param = -1;
1874 static gint ett_gsm_map_er_PositionMethodFailure_Param = -1;
1875 static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param = -1;
1876 static gint ett_gsm_map_er_MM_EventNotSupported_Param = -1;
1877 static gint ett_gsm_map_er_TargetCellOutsideGCA_Param = -1;
1878 static gint ett_gsm_map_er_OngoingGroupCallParam = -1;
1879
1880 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
1881
1882 static gint ett_gsm_map_sm_RoutingInfoForSM_Arg = -1;
1883 static gint ett_gsm_map_sm_RoutingInfoForSM_Res = -1;
1884 static gint ett_gsm_map_sm_IP_SM_GW_Guidance = -1;
1885 static gint ett_gsm_map_sm_LocationInfoWithLMSI = -1;
1886 static gint ett_gsm_map_sm_Additional_Number = -1;
1887 static gint ett_gsm_map_sm_MO_ForwardSM_Arg = -1;
1888 static gint ett_gsm_map_sm_MO_ForwardSM_Res = -1;
1889 static gint ett_gsm_map_sm_MT_ForwardSM_Arg = -1;
1890 static gint ett_gsm_map_sm_MT_ForwardSM_Res = -1;
1891 static gint ett_gsm_map_sm_SM_RP_DA = -1;
1892 static gint ett_gsm_map_sm_SM_RP_OA = -1;
1893 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg = -1;
1894 static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes = -1;
1895 static gint ett_gsm_map_sm_AlertServiceCentreArg = -1;
1896 static gint ett_gsm_map_sm_InformServiceCentreArg = -1;
1897 static gint ett_gsm_map_sm_MW_Status = -1;
1898 static gint ett_gsm_map_sm_ReadyForSM_Arg = -1;
1899 static gint ett_gsm_map_sm_ReadyForSM_Res = -1;
1900 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg = -1;
1901 static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res = -1;
1902 static gint ett_gsm_map_sm_DispatcherList = -1;
1903 static gint ett_gsm_map_sm_AdditionalDispatcherList = -1;
1904
1905 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
1906
1907 static gint ett_gsm_map_om_ActivateTraceModeArg = -1;
1908 static gint ett_gsm_map_om_MDT_Configuration = -1;
1909 static gint ett_gsm_map_om_AreaScope = -1;
1910 static gint ett_gsm_map_om_CGI_List = -1;
1911 static gint ett_gsm_map_om_E_UTRAN_CGI_List = -1;
1912 static gint ett_gsm_map_om_RoutingAreaId_List = -1;
1913 static gint ett_gsm_map_om_LocationAreaId_List = -1;
1914 static gint ett_gsm_map_om_TrackingAreaId_List = -1;
1915 static gint ett_gsm_map_om_TraceDepthList = -1;
1916 static gint ett_gsm_map_om_TraceNE_TypeList = -1;
1917 static gint ett_gsm_map_om_TraceInterfaceList = -1;
1918 static gint ett_gsm_map_om_MSC_S_InterfaceList = -1;
1919 static gint ett_gsm_map_om_MGW_InterfaceList = -1;
1920 static gint ett_gsm_map_om_SGSN_InterfaceList = -1;
1921 static gint ett_gsm_map_om_GGSN_InterfaceList = -1;
1922 static gint ett_gsm_map_om_RNC_InterfaceList = -1;
1923 static gint ett_gsm_map_om_BMSC_InterfaceList = -1;
1924 static gint ett_gsm_map_om_MME_InterfaceList = -1;
1925 static gint ett_gsm_map_om_SGW_InterfaceList = -1;
1926 static gint ett_gsm_map_om_PGW_InterfaceList = -1;
1927 static gint ett_gsm_map_om_ENB_InterfaceList = -1;
1928 static gint ett_gsm_map_om_TraceEventList = -1;
1929 static gint ett_gsm_map_om_MSC_S_EventList = -1;
1930 static gint ett_gsm_map_om_MGW_EventList = -1;
1931 static gint ett_gsm_map_om_SGSN_EventList = -1;
1932 static gint ett_gsm_map_om_GGSN_EventList = -1;
1933 static gint ett_gsm_map_om_BMSC_EventList = -1;
1934 static gint ett_gsm_map_om_MME_EventList = -1;
1935 static gint ett_gsm_map_om_SGW_EventList = -1;
1936 static gint ett_gsm_map_om_PGW_EventList = -1;
1937 static gint ett_gsm_map_om_TracePropagationList = -1;
1938 static gint ett_gsm_map_om_ActivateTraceModeRes = -1;
1939 static gint ett_gsm_map_om_DeactivateTraceModeArg = -1;
1940 static gint ett_gsm_map_om_DeactivateTraceModeRes = -1;
1941
1942 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
1943
1944 static gint ett_gsm_map_ms_UpdateLocationArg = -1;
1945 static gint ett_gsm_map_ms_VLR_Capability = -1;
1946 static gint ett_gsm_map_ms_SupportedRAT_Types = -1;
1947 static gint ett_gsm_map_ms_SuperChargerInfo = -1;
1948 static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets = -1;
1949 static gint ett_gsm_map_ms_UpdateLocationRes = -1;
1950 static gint ett_gsm_map_ms_ADD_Info = -1;
1951 static gint ett_gsm_map_ms_PagingArea = -1;
1952 static gint ett_gsm_map_ms_LocationArea = -1;
1953 static gint ett_gsm_map_ms_CancelLocationArg_U = -1;
1954 static gint ett_gsm_map_ms_CancelLocationRes = -1;
1955 static gint ett_gsm_map_ms_PurgeMS_Arg_U = -1;
1956 static gint ett_gsm_map_ms_PurgeMS_Res = -1;
1957 static gint ett_gsm_map_ms_SendIdentificationArg = -1;
1958 static gint ett_gsm_map_ms_SendIdentificationRes_U = -1;
1959 static gint ett_gsm_map_ms_AuthenticationSetList = -1;
1960 static gint ett_gsm_map_ms_TripletList = -1;
1961 static gint ett_gsm_map_ms_QuintupletList = -1;
1962 static gint ett_gsm_map_ms_AuthenticationTriplet = -1;
1963 static gint ett_gsm_map_ms_AuthenticationQuintuplet = -1;
1964 static gint ett_gsm_map_ms_CurrentSecurityContext = -1;
1965 static gint ett_gsm_map_ms_GSM_SecurityContextData = -1;
1966 static gint ett_gsm_map_ms_UMTS_SecurityContextData = -1;
1967 static gint ett_gsm_map_ms_AuthenticationFailureReportArg = -1;
1968 static gint ett_gsm_map_ms_AuthenticationFailureReportRes = -1;
1969 static gint ett_gsm_map_ms_UpdateGprsLocationArg = -1;
1970 static gint ett_gsm_map_ms_EPS_Info = -1;
1971 static gint ett_gsm_map_ms_PDN_GW_Update = -1;
1972 static gint ett_gsm_map_ms_ISR_Information = -1;
1973 static gint ett_gsm_map_ms_SGSN_Capability = -1;
1974 static gint ett_gsm_map_ms_SupportedFeatures = -1;
1975 static gint ett_gsm_map_ms_UpdateGprsLocationRes = -1;
1976 static gint ett_gsm_map_ms_EPLMN_List = -1;
1977 static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U = -1;
1978 static gint ett_gsm_map_ms_AllowedUMTS_Algorithms = -1;
1979 static gint ett_gsm_map_ms_PrepareHO_Arg_U = -1;
1980 static gint ett_gsm_map_ms_LCLS_Negotiation = -1;
1981 static gint ett_gsm_map_ms_LCLS_ConfigurationPreference = -1;
1982 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList = -1;
1983 static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo = -1;
1984 static gint ett_gsm_map_ms_RadioResourceList = -1;
1985 static gint ett_gsm_map_ms_RadioResource = -1;
1986 static gint ett_gsm_map_ms_PrepareHO_Res_U = -1;
1987 static gint ett_gsm_map_ms_SelectedUMTS_Algorithms = -1;
1988 static gint ett_gsm_map_ms_ChosenRadioResourceInformation = -1;
1989 static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U = -1;
1990 static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U = -1;
1991 static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U = -1;
1992 static gint ett_gsm_map_ms_AoIPCodecsList = -1;
1993 static gint ett_gsm_map_ms_SupportedCodecsList = -1;
1994 static gint ett_gsm_map_ms_CodecList = -1;
1995 static gint ett_gsm_map_ms_SendEndSignal_Arg_U = -1;
1996 static gint ett_gsm_map_ms_SendEndSignal_Res = -1;
1997 static gint ett_gsm_map_ms_RelocationNumberList = -1;
1998 static gint ett_gsm_map_ms_RelocationNumber = -1;
1999 static gint ett_gsm_map_ms_SendAuthenticationInfoArg = -1;
2000 static gint ett_gsm_map_ms_Re_synchronisationInfo = -1;
2001 static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U = -1;
2002 static gint ett_gsm_map_ms_EPS_AuthenticationSetList = -1;
2003 static gint ett_gsm_map_ms_EPC_AV = -1;
2004 static gint ett_gsm_map_ms_CheckIMEI_Arg = -1;
2005 static gint ett_gsm_map_ms_CheckIMEI_Res = -1;
2006 static gint ett_gsm_map_ms_RequestedEquipmentInfo = -1;
2007 static gint ett_gsm_map_ms_UESBI_Iu = -1;
2008 static gint ett_gsm_map_ms_InsertSubscriberDataArg = -1;
2009 static gint ett_gsm_map_ms_CSG_SubscriptionDataList = -1;
2010 static gint ett_gsm_map_ms_CSG_SubscriptionData = -1;
2011 static gint ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList = -1;
2012 static gint ett_gsm_map_ms_LIPA_AllowedAPNList = -1;
2013 static gint ett_gsm_map_ms_EPS_SubscriptionData = -1;
2014 static gint ett_gsm_map_ms_APN_ConfigurationProfile = -1;
2015 static gint ett_gsm_map_ms_EPS_DataList = -1;
2016 static gint ett_gsm_map_ms_APN_Configuration = -1;
2017 static gint ett_gsm_map_ms_EPS_QoS_Subscribed = -1;
2018 static gint ett_gsm_map_ms_AMBR = -1;
2019 static gint ett_gsm_map_ms_SpecificAPNInfoList = -1;
2020 static gint ett_gsm_map_ms_SpecificAPNInfo = -1;
2021 static gint ett_gsm_map_ms_Allocation_Retention_Priority = -1;
2022 static gint ett_gsm_map_ms_PDN_GW_Identity = -1;
2023 static gint ett_gsm_map_ms_AccessRestrictionData = -1;
2024 static gint ett_gsm_map_ms_LCSInformation = -1;
2025 static gint ett_gsm_map_ms_GMLC_List = -1;
2026 static gint ett_gsm_map_ms_GPRSDataList = -1;
2027 static gint ett_gsm_map_ms_PDP_Context = -1;
2028 static gint ett_gsm_map_ms_GPRSSubscriptionData = -1;
2029 static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo = -1;
2030 static gint ett_gsm_map_ms_GPRS_CSI = -1;
2031 static gint ett_gsm_map_ms_GPRS_CamelTDPDataList = -1;
2032 static gint ett_gsm_map_ms_GPRS_CamelTDPData = -1;
2033 static gint ett_gsm_map_ms_LSADataList = -1;
2034 static gint ett_gsm_map_ms_LSAData = -1;
2035 static gint ett_gsm_map_ms_LSAInformation = -1;
2036 static gint ett_gsm_map_ms_SubscriberData = -1;
2037 static gint ett_gsm_map_ms_BearerServiceList = -1;
2038 static gint ett_gsm_map_ms_TeleserviceList = -1;
2039 static gint ett_gsm_map_ms_ODB_Data = -1;
2040 static gint ett_gsm_map_ms_ODB_GeneralData = -1;
2041 static gint ett_gsm_map_ms_ODB_HPLMN_Data = -1;
2042 static gint ett_gsm_map_ms_Ext_SS_InfoList = -1;
2043 static gint ett_gsm_map_ms_Ext_SS_Info = -1;
2044 static gint ett_gsm_map_ms_Ext_ForwInfo = -1;
2045 static gint ett_gsm_map_ms_Ext_ForwFeatureList = -1;
2046 static gint ett_gsm_map_ms_Ext_ForwFeature = -1;
2047 static gint ett_gsm_map_ms_Ext_CallBarInfo = -1;
2048 static gint ett_gsm_map_ms_Ext_CallBarFeatureList = -1;
2049 static gint ett_gsm_map_ms_Ext_CallBarringFeature = -1;
2050 static gint ett_gsm_map_ms_CUG_Info = -1;
2051 static gint ett_gsm_map_ms_CUG_SubscriptionList = -1;
2052 static gint ett_gsm_map_ms_CUG_Subscription = -1;
2053 static gint ett_gsm_map_ms_CUG_FeatureList = -1;
2054 static gint ett_gsm_map_ms_Ext_BasicServiceGroupList = -1;
2055 static gint ett_gsm_map_ms_CUG_Feature = -1;
2056 static gint ett_gsm_map_ms_Ext_SS_Data = -1;
2057 static gint ett_gsm_map_ms_LCS_PrivacyExceptionList = -1;
2058 static gint ett_gsm_map_ms_LCS_PrivacyClass = -1;
2059 static gint ett_gsm_map_ms_ExternalClientList = -1;
2060 static gint ett_gsm_map_ms_PLMNClientList = -1;
2061 static gint ett_gsm_map_ms_Ext_ExternalClientList = -1;
2062 static gint ett_gsm_map_ms_ExternalClient = -1;
2063 static gint ett_gsm_map_ms_ServiceTypeList = -1;
2064 static gint ett_gsm_map_ms_ServiceType = -1;
2065 static gint ett_gsm_map_ms_MOLR_List = -1;
2066 static gint ett_gsm_map_ms_MOLR_Class = -1;
2067 static gint ett_gsm_map_ms_ZoneCodeList = -1;
2068 static gint ett_gsm_map_ms_InsertSubscriberDataRes = -1;
2069 static gint ett_gsm_map_ms_DeleteSubscriberDataArg = -1;
2070 static gint ett_gsm_map_ms_SpecificCSI_Withdraw = -1;
2071 static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw = -1;
2072 static gint ett_gsm_map_ms_EPS_SubscriptionDataWithdraw = -1;
2073 static gint ett_gsm_map_ms_ContextIdList = -1;
2074 static gint ett_gsm_map_ms_LSAInformationWithdraw = -1;
2075 static gint ett_gsm_map_ms_LSAIdentityList = -1;
2076 static gint ett_gsm_map_ms_BasicServiceList = -1;
2077 static gint ett_gsm_map_ms_DeleteSubscriberDataRes = -1;
2078 static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo = -1;
2079 static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList = -1;
2080 static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria = -1;
2081 static gint ett_gsm_map_ms_TPDU_TypeCriterion = -1;
2082 static gint ett_gsm_map_ms_D_CSI = -1;
2083 static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList = -1;
2084 static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium = -1;
2085 static gint ett_gsm_map_ms_SS_CSI = -1;
2086 static gint ett_gsm_map_ms_SS_CamelData = -1;
2087 static gint ett_gsm_map_ms_SS_EventList = -1;
2088 static gint ett_gsm_map_ms_O_CSI = -1;
2089 static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList = -1;
2090 static gint ett_gsm_map_ms_O_BcsmCamelTDPData = -1;
2091 static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList = -1;
2092 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList = -1;
2093 static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria = -1;
2094 static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria = -1;
2095 static gint ett_gsm_map_ms_DestinationNumberCriteria = -1;
2096 static gint ett_gsm_map_ms_DestinationNumberList = -1;
2097 static gint ett_gsm_map_ms_DestinationNumberLengthList = -1;
2098 static gint ett_gsm_map_ms_BasicServiceCriteria = -1;
2099 static gint ett_gsm_map_ms_O_CauseValueCriteria = -1;
2100 static gint ett_gsm_map_ms_T_CauseValueCriteria = -1;
2101 static gint ett_gsm_map_ms_SupportedCamelPhases = -1;
2102 static gint ett_gsm_map_ms_OfferedCamel4CSIs = -1;
2103 static gint ett_gsm_map_ms_OfferedCamel4Functionalities = -1;
2104 static gint ett_gsm_map_ms_SMS_CSI = -1;
2105 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList = -1;
2106 static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data = -1;
2107 static gint ett_gsm_map_ms_M_CSI = -1;
2108 static gint ett_gsm_map_ms_MG_CSI = -1;
2109 static gint ett_gsm_map_ms_MobilityTriggers = -1;
2110 static gint ett_gsm_map_ms_T_CSI = -1;
2111 static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList = -1;
2112 static gint ett_gsm_map_ms_T_BcsmCamelTDPData = -1;
2113 static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg = -1;
2114 static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes = -1;
2115 static gint ett_gsm_map_ms_FailureReportArg = -1;
2116 static gint ett_gsm_map_ms_FailureReportRes = -1;
2117 static gint ett_gsm_map_ms_NoteMsPresentForGprsArg = -1;
2118 static gint ett_gsm_map_ms_NoteMsPresentForGprsRes = -1;
2119 static gint ett_gsm_map_ms_ResetArg = -1;
2120 static gint ett_gsm_map_ms_SendingNode_Number = -1;
2121 static gint ett_gsm_map_ms_RestoreDataArg = -1;
2122 static gint ett_gsm_map_ms_RestoreDataRes = -1;
2123 static gint ett_gsm_map_ms_VBSDataList = -1;
2124 static gint ett_gsm_map_ms_VGCSDataList = -1;
2125 static gint ett_gsm_map_ms_VoiceGroupCallData = -1;
2126 static gint ett_gsm_map_ms_AdditionalSubscriptions = -1;
2127 static gint ett_gsm_map_ms_VoiceBroadcastData = -1;
2128 static gint ett_gsm_map_ms_ProvideSubscriberInfoArg = -1;
2129 static gint ett_gsm_map_ms_ProvideSubscriberInfoRes = -1;
2130 static gint ett_gsm_map_ms_SubscriberInfo = -1;
2131 static gint ett_gsm_map_ms_MNPInfoRes = -1;
2132 static gint ett_gsm_map_ms_GPRSMSClass = -1;
2133 static gint ett_gsm_map_ms_RequestedInfo = -1;
2134 static gint ett_gsm_map_ms_RequestedNodes = -1;
2135 static gint ett_gsm_map_ms_LocationInformation = -1;
2136 static gint ett_gsm_map_ms_LocationInformationEPS = -1;
2137 static gint ett_gsm_map_ms_LocationInformationGPRS = -1;
2138 static gint ett_gsm_map_ms_UserCSGInformation = -1;
2139 static gint ett_gsm_map_ms_SubscriberState = -1;
2140 static gint ett_gsm_map_ms_PS_SubscriberState = -1;
2141 static gint ett_gsm_map_ms_PDP_ContextInfoList = -1;
2142 static gint ett_gsm_map_ms_PDP_ContextInfo = -1;
2143 static gint ett_gsm_map_ms_AnyTimeInterrogationArg = -1;
2144 static gint ett_gsm_map_ms_AnyTimeInterrogationRes = -1;
2145 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg = -1;
2146 static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes = -1;
2147 static gint ett_gsm_map_ms_CallWaitingData = -1;
2148 static gint ett_gsm_map_ms_Ext_CwFeatureList = -1;
2149 static gint ett_gsm_map_ms_Ext_CwFeature = -1;
2150 static gint ett_gsm_map_ms_ClipData = -1;
2151 static gint ett_gsm_map_ms_ClirData = -1;
2152 static gint ett_gsm_map_ms_CallHoldData = -1;
2153 static gint ett_gsm_map_ms_EctData = -1;
2154 static gint ett_gsm_map_ms_RequestedSubscriptionInfo = -1;
2155 static gint ett_gsm_map_ms_MSISDN_BS_List = -1;
2156 static gint ett_gsm_map_ms_MSISDN_BS = -1;
2157 static gint ett_gsm_map_ms_CallForwardingData = -1;
2158 static gint ett_gsm_map_ms_CallBarringData = -1;
2159 static gint ett_gsm_map_ms_ODB_Info = -1;
2160 static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo = -1;
2161 static gint ett_gsm_map_ms_AnyTimeModificationArg = -1;
2162 static gint ett_gsm_map_ms_ModificationRequestFor_CW_Info = -1;
2163 static gint ett_gsm_map_ms_ModificationRequestFor_CH_Info = -1;
2164 static gint ett_gsm_map_ms_ModificationRequestFor_ECT_Info = -1;
2165 static gint ett_gsm_map_ms_ModificationRequestFor_CLIR_Info = -1;
2166 static gint ett_gsm_map_ms_ModificationRequestFor_CLIP_Info = -1;
2167 static gint ett_gsm_map_ms_ModificationRequestFor_CSG = -1;
2168 static gint ett_gsm_map_ms_RequestedServingNode = -1;
2169 static gint ett_gsm_map_ms_ServingNode = -1;
2170 static gint ett_gsm_map_ms_AnyTimeModificationRes = -1;
2171 static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info = -1;
2172 static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info = -1;
2173 static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data = -1;
2174 static gint ett_gsm_map_ms_ModificationRequestFor_CSI = -1;
2175 static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data = -1;
2176 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg = -1;
2177 static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes = -1;
2178 static gint ett_gsm_map_ms_NoteMM_EventArg = -1;
2179 static gint ett_gsm_map_ms_NoteMM_EventRes = -1;
2180 static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE = -1;
2181 static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE = -1;
2182 static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE = -1;
2183 static gint ett_gsm_map_ms_UpdateVcsgLocationArg = -1;
2184 static gint ett_gsm_map_ms_UpdateVcsgLocationRes = -1;
2185 static gint ett_gsm_map_ms_CancelVcsgLocationArg = -1;
2186 static gint ett_gsm_map_ms_CancelVcsgLocationRes = -1;
2187
2188 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
2189
2190 static gint ett_gsm_map_ch_CUG_CheckInfo = -1;
2191 static gint ett_gsm_map_ch_SendRoutingInfoArg = -1;
2192 static gint ett_gsm_map_ch_SuppressMTSS = -1;
2193 static gint ett_gsm_map_ch_SendRoutingInfoRes_U = -1;
2194 static gint ett_gsm_map_ch_AllowedServices = -1;
2195 static gint ett_gsm_map_ch_CCBS_Indicators = -1;
2196 static gint ett_gsm_map_ch_RoutingInfo = -1;
2197 static gint ett_gsm_map_ch_ForwardingData = -1;
2198 static gint ett_gsm_map_ch_ProvideRoamingNumberArg = -1;
2199 static gint ett_gsm_map_ch_ProvideRoamingNumberRes = -1;
2200 static gint ett_gsm_map_ch_ResumeCallHandlingArg = -1;
2201 static gint ett_gsm_map_ch_UU_Data = -1;
2202 static gint ett_gsm_map_ch_ResumeCallHandlingRes = -1;
2203 static gint ett_gsm_map_ch_CamelInfo = -1;
2204 static gint ett_gsm_map_ch_ExtendedRoutingInfo = -1;
2205 static gint ett_gsm_map_ch_CamelRoutingInfo = -1;
2206 static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo = -1;
2207 static gint ett_gsm_map_ch_SetReportingStateArg = -1;
2208 static gint ett_gsm_map_ch_SetReportingStateRes = -1;
2209 static gint ett_gsm_map_ch_StatusReportArg = -1;
2210 static gint ett_gsm_map_ch_EventReportData = -1;
2211 static gint ett_gsm_map_ch_CallReportData = -1;
2212 static gint ett_gsm_map_ch_StatusReportRes = -1;
2213 static gint ett_gsm_map_ch_RemoteUserFreeArg = -1;
2214 static gint ett_gsm_map_ch_RemoteUserFreeRes = -1;
2215 static gint ett_gsm_map_ch_IST_AlertArg = -1;
2216 static gint ett_gsm_map_ch_IST_AlertRes = -1;
2217 static gint ett_gsm_map_ch_IST_CommandArg = -1;
2218 static gint ett_gsm_map_ch_IST_CommandRes = -1;
2219 static gint ett_gsm_map_ch_ReleaseResourcesArg = -1;
2220 static gint ett_gsm_map_ch_ReleaseResourcesRes = -1;
2221
2222 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
2223
2224 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg = -1;
2225 static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res = -1;
2226 static gint ett_gsm_map_lcs_LCSLocationInfo = -1;
2227 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg = -1;
2228 static gint ett_gsm_map_lcs_LocationType = -1;
2229 static gint ett_gsm_map_lcs_DeferredLocationEventType = -1;
2230 static gint ett_gsm_map_lcs_LCS_ClientID = -1;
2231 static gint ett_gsm_map_lcs_LCSClientName = -1;
2232 static gint ett_gsm_map_lcs_LCSRequestorID = -1;
2233 static gint ett_gsm_map_lcs_LCS_QoS = -1;
2234 static gint ett_gsm_map_lcs_ResponseTime = -1;
2235 static gint ett_gsm_map_lcs_SupportedGADShapes = -1;
2236 static gint ett_gsm_map_lcs_LCSCodeword = -1;
2237 static gint ett_gsm_map_lcs_LCS_PrivacyCheck = -1;
2238 static gint ett_gsm_map_lcs_AreaEventInfo = -1;
2239 static gint ett_gsm_map_lcs_AreaDefinition = -1;
2240 static gint ett_gsm_map_lcs_AreaList = -1;
2241 static gint ett_gsm_map_lcs_Area = -1;
2242 static gint ett_gsm_map_lcs_PeriodicLDRInfo = -1;
2243 static gint ett_gsm_map_lcs_ReportingPLMNList = -1;
2244 static gint ett_gsm_map_lcs_PLMNList = -1;
2245 static gint ett_gsm_map_lcs_ReportingPLMN = -1;
2246 static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res = -1;
2247 static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg = -1;
2248 static gint ett_gsm_map_lcs_Deferredmt_lrData = -1;
2249 static gint ett_gsm_map_lcs_ServingNodeAddress = -1;
2250 static gint ett_gsm_map_lcs_SubscriberLocationReport_Res = -1;
2251
2252 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
2253
2254 static gint ett_gsm_map_gr_PrepareGroupCallArg = -1;
2255 static gint ett_gsm_map_gr_PrepareGroupCallRes = -1;
2256 static gint ett_gsm_map_gr_SendGroupCallEndSignalArg = -1;
2257 static gint ett_gsm_map_gr_SendGroupCallEndSignalRes = -1;
2258 static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg = -1;
2259 static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg = -1;
2260 static gint ett_gsm_map_gr_StateAttributes = -1;
2261 static gint ett_gsm_map_gr_SendGroupCallInfoArg = -1;
2262 static gint ett_gsm_map_gr_SendGroupCallInfoRes = -1;
2263
2264 /* --- Module MAP-DialogueInformation --- --- ---                             */
2265
2266 static gint ett_gsm_map_dialogue_MAP_DialoguePDU = -1;
2267 static gint ett_gsm_map_dialogue_MAP_OpenInfo = -1;
2268 static gint ett_gsm_map_dialogue_MAP_AcceptInfo = -1;
2269 static gint ett_gsm_map_dialogue_MAP_CloseInfo = -1;
2270 static gint ett_gsm_map_dialogue_MAP_RefuseInfo = -1;
2271 static gint ett_gsm_map_dialogue_MAP_UserAbortInfo = -1;
2272 static gint ett_gsm_map_dialogue_MAP_UserAbortChoice = -1;
2273 static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo = -1;
2274
2275 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
2276
2277
2278 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
2279
2280
2281 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
2282
2283
2284 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
2285
2286
2287 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
2288
2289
2290 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
2291
2292
2293 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
2294
2295
2296 /* --- Module MAP-Errors --- --- ---                                          */
2297
2298
2299 /* --- Module MAP-Protocol --- --- ---                                        */
2300
2301
2302 /* --- Module DummyMAP --- --- ---                                            */
2303
2304 static gint ett_gsm_old_Component = -1;
2305 static gint ett_gsm_old_Invoke = -1;
2306 static gint ett_gsm_old_ReturnResult = -1;
2307 static gint ett_gsm_old_T_resultretres = -1;
2308 static gint ett_gsm_old_ReturnError = -1;
2309 static gint ett_gsm_old_Reject = -1;
2310 static gint ett_gsm_old_T_invokeIDRej = -1;
2311 static gint ett_gsm_old_T_problem = -1;
2312 static gint ett_gsm_old_MAP_OPERATION = -1;
2313 static gint ett_gsm_old_MAP_ERROR = -1;
2314 static gint ett_gsm_old_Bss_APDU = -1;
2315 static gint ett_gsm_old_ProvideSIWFSNumberArg = -1;
2316 static gint ett_gsm_old_ProvideSIWFSNumberRes = -1;
2317 static gint ett_gsm_old_PurgeMSArgV2 = -1;
2318 static gint ett_gsm_old_PrepareHO_ArgOld = -1;
2319 static gint ett_gsm_old_PrepareHO_ResOld = -1;
2320 static gint ett_gsm_old_SendAuthenticationInfoResOld = -1;
2321 static gint ett_gsm_old_SendAuthenticationInfoResOld_item = -1;
2322 static gint ett_gsm_old_SendIdentificationResV2 = -1;
2323 static gint ett_gsm_old_TripletListold = -1;
2324 static gint ett_gsm_old_AuthenticationTriplet_v2 = -1;
2325 static gint ett_gsm_old_SIWFSSignallingModifyArg = -1;
2326 static gint ett_gsm_old_SIWFSSignallingModifyRes = -1;
2327 static gint ett_gsm_old_SecureTransportArg = -1;
2328 static gint ett_gsm_old_SecureTransportErrorParam = -1;
2329 static gint ett_gsm_old_SecureTransportRes = -1;
2330 static gint ett_gsm_old_SecurityHeader = -1;
2331 static gint ett_gsm_old_OriginalComponentIdentifier = -1;
2332 static gint ett_gsm_old_OperationCode = -1;
2333 static gint ett_gsm_old_ErrorCode = -1;
2334 static gint ett_gsm_old_PlmnContainer_U = -1;
2335 static gint ett_gsm_old_T_operatorSS_Code = -1;
2336 static gint ett_gsm_old_ForwardSM_Arg = -1;
2337 static gint ett_gsm_old_SM_RP_DAold = -1;
2338 static gint ett_gsm_old_SM_RP_OAold = -1;
2339 static gint ett_gsm_old_SendRoutingInfoArgV2 = -1;
2340 static gint ett_gsm_old_SendRoutingInfoResV2 = -1;
2341 static gint ett_gsm_old_BeginSubscriberActivityArg = -1;
2342
2343 /* --- Module SS-DataTypes --- --- ---                                        */
2344
2345 static gint ett_gsm_ss_NotifySS_Arg = -1;
2346 static gint ett_gsm_ss_ForwardChargeAdviceArg = -1;
2347 static gint ett_gsm_ss_ChargingInformation = -1;
2348 static gint ett_gsm_ss_ForwardCUG_InfoArg = -1;
2349 static gint ett_gsm_ss_ECT_Indicator = -1;
2350 static gint ett_gsm_ss_NameIndicator = -1;
2351 static gint ett_gsm_ss_Name = -1;
2352 static gint ett_gsm_ss_NameSet = -1;
2353 static gint ett_gsm_ss_RDN = -1;
2354 static gint ett_gsm_ss_RemotePartyNumber = -1;
2355 static gint ett_gsm_ss_AccessRegisterCCEntryArg = -1;
2356 static gint ett_gsm_ss_CallDeflectionArg = -1;
2357 static gint ett_gsm_ss_UserUserServiceArg = -1;
2358 static gint ett_gsm_ss_LocationNotificationArg = -1;
2359 static gint ett_gsm_ss_LocationNotificationRes = -1;
2360 static gint ett_gsm_ss_LCS_MOLRArg = -1;
2361 static gint ett_gsm_ss_MultiplePositioningProtocolPDUs = -1;
2362 static gint ett_gsm_ss_LCS_MOLRRes = -1;
2363 static gint ett_gsm_ss_LCS_AreaEventRequestArg = -1;
2364 static gint ett_gsm_ss_LCS_AreaEventReportArg = -1;
2365 static gint ett_gsm_ss_LCS_AreaEventCancellationArg = -1;
2366 static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg = -1;
2367 static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes = -1;
2368 static gint ett_gsm_ss_LCS_LocationUpdateArg = -1;
2369 static gint ett_gsm_ss_LCS_LocationUpdateRes = -1;
2370 static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg = -1;
2371
2372 /* --- Module SS-Operations --- --- ---                                       */
2373
2374
2375 /* --- Module EricssonMAP --- --- ---                                         */
2376
2377 static gint ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg = -1;
2378
2379 /*--- End of included file: packet-gsm_map-ett.c ---*/
2380 #line 185 "../../asn1/gsm_map/packet-gsm_map-template.c"
2381
2382 static expert_field ei_gsm_map_unknown_sequence3 = EI_INIT;
2383 static expert_field ei_gsm_map_unknown_sequence = EI_INIT;
2384 static expert_field ei_gsm_map_unknown_parameter = EI_INIT;
2385 static expert_field ei_gsm_map_unknown_invokeData = EI_INIT;
2386
2387 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
2388 static dissector_handle_t       data_handle;
2389 static dissector_handle_t       ranap_handle;
2390 static dissector_handle_t       dtap_handle;
2391 static dissector_handle_t       map_handle;
2392 static dissector_table_t        map_prop_arg_opcode_table; /* prorietary operation codes */
2393 static dissector_table_t        map_prop_res_opcode_table; /* prorietary operation codes */
2394 static dissector_table_t        map_prop_err_opcode_table; /* prorietary operation codes */
2395 /* Preferenc settings default */
2396 #define MAX_SSN 254
2397 static range_t *global_ssn_range;
2398 #define APPLICATON_CONTEXT_FROM_TRACE 0
2399 static gint pref_application_context_version = APPLICATON_CONTEXT_FROM_TRACE;
2400 static gboolean pref_ericsson_proprietary_ext = FALSE;
2401
2402 /* Global variables */
2403 static guint32 opcode=0;
2404 static guint32 errorCode;
2405 static proto_tree *top_tree;
2406 static int application_context_version;
2407 static guint ProtocolId;
2408 static guint AccessNetworkProtocolId;
2409 static const char *obj_id = NULL;
2410 static int gsm_map_tap = -1;
2411
2412 #define SMS_ENCODING_NOT_SET    0
2413 #define SMS_ENCODING_7BIT               1
2414 #define SMS_ENCODING_8BIT               2
2415 #define SMS_ENCODING_UCS2               3
2416 #define SMS_ENCODING_7BIT_LANG  4
2417 #define SMS_ENCODING_UCS2_LANG  5
2418
2419 static guint8 sms_encoding;
2420
2421 /* Forward declarations */
2422 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2423 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2424 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
2425 const gchar* gsm_map_opr_code(guint32 val);
2426
2427 /* Value strings */
2428
2429 const value_string gsm_map_PDP_Type_Organisation_vals[] = {
2430   {  0, "ETSI" },
2431   {  1, "IETF" },
2432   { 0, NULL }
2433 };
2434
2435 const value_string gsm_map_ietf_defined_pdp_vals[] = {
2436   {  0x21, "IPv4 Address" },
2437   {  0x57, "IPv6 Address" },
2438   { 0, NULL }
2439 };
2440
2441 const value_string gsm_map_etsi_defined_pdp_vals[] = {
2442   {  1, "PPP" },
2443   { 0, NULL }
2444 };
2445
2446 static const value_string gsm_map_tag_vals[] = {
2447   {  0x4, "Bearer Capability" },
2448   { 0, NULL }
2449 };
2450
2451 static const value_string gsm_map_disc_par_vals[] = {
2452   {  0, "Not Transparent" },
2453   {  1, "Transparent" },
2454   { 0, NULL }
2455 };
2456
2457 static const value_string gsm_map_ericsson_locationInformation_rat_vals[] = {
2458   { 0x0, "GSM" },
2459   { 0x1, "UMTS" },
2460   { 0x2, "LTE" },
2461   { 0xf, "No information" },
2462   { 0, NULL }
2463 };
2464
2465 /* ITU-T Q.763 (12/1999)
2466  * 3.30 Location number
2467  */
2468 /* b) Nature of address indicator */
2469 static const range_string gsm_map_na_vals[] = {
2470     { 0, 0, "spare" },
2471     { 1, 1, "reserved for subscriber number (national use)" },
2472     { 2, 2, "reserved for unknown (national use)" },
2473     { 3, 3, "national (significant) number (national use)" },
2474     { 4, 4, "international number" },
2475     { 5, 0x6f, "spare" },
2476     { 0x70, 0x7e, "spare" },
2477     { 0x70, 0x7e, "reserved for national use" },
2478     { 0x7f, 0x7f, "spare" },
2479     { 0,           0,          NULL                   }
2480 };
2481
2482 /* d) Numbering plan indicator */
2483 static const value_string gsm_map_np_vals[] = {
2484   {  0, "spare" },
2485   {  1, "ISDN (telephony) numbering plan (ITU-T Recommendation E.164)" },
2486   {  2, "spare" },
2487   {  3, "Data numbering plan (ITU-T Recommendation X.121) (national use)" },
2488   {  4, "Telex numbering plan (ITU-T Recommendation F.69) (national use)" },
2489   {  5, "private numbering plan" },
2490   {  6, "reserved for national use" },
2491   {  7, "spare" },
2492   { 0, NULL }
2493 };
2494 /*
2495  * e) Address presentation restricted indicator
2496  */
2497 static const value_string gsm_map_addr_pres_rest_vals[] = {
2498   {  0, "presentation allowed" },
2499   {  1, "presentation restricted" },
2500   {  2, "address not available (national use)" },
2501   {  3, "spare" },
2502   { 0, NULL }
2503 };
2504
2505 /* f) Screening indicator */
2506 static const value_string gsm_map_screening_ind_vals[] = {
2507   {  0, "reserved" },
2508   {  1, "user provided, verified and passed" },
2509   {  2, "reserved" },
2510   {  3, "network provided" },
2511   { 0, NULL }
2512 };
2513
2514 const char *
2515 unpack_digits(tvbuff_t *tvb, int offset) {
2516
2517         int length;
2518         guint8 octet;
2519         int i=0;
2520         char *digit_str;
2521
2522         length = tvb_length(tvb);
2523         if (length < offset)
2524                 return "";
2525         digit_str = (char *)ep_alloc((length - offset)*2+1);
2526
2527         while ( offset < length ){
2528
2529                 octet = tvb_get_guint8(tvb,offset);
2530                 digit_str[i] = ((octet & 0x0f) + '0');
2531                 i++;
2532
2533                 /*
2534                  * unpack second value in byte
2535                  */
2536                 octet = octet >> 4;
2537
2538                 if (octet == 0x0f)      /* odd number bytes - hit filler */
2539                         break;
2540
2541                 digit_str[i] = ((octet & 0x0f) + '0');
2542                 i++;
2543                 offset++;
2544
2545         }
2546         digit_str[i]= '\0';
2547         return digit_str;
2548 }
2549
2550 /* returns value in kb/s */
2551 static guint
2552 gsm_map_calc_bitrate(guint8 value){
2553
2554         guint8 granularity;
2555         guint returnvalue;
2556
2557         if (value == 0xff)
2558                 return 0;
2559
2560         granularity = value >> 6;
2561         returnvalue = value & 0x7f;
2562         switch (granularity){
2563         case 0:
2564                 break;
2565         case 1:
2566                 returnvalue = ((returnvalue - 0x40) << 3)+64;
2567                 break;
2568         case 2:
2569                 returnvalue = (returnvalue << 6)+576;
2570                 break;
2571         case 3:
2572                 returnvalue = (returnvalue << 6)+576;
2573                 break;
2574         }
2575         return returnvalue;
2576
2577 }
2578
2579 static void
2580 dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx){
2581         int offset = 0;
2582     proto_tree *subtree;
2583         guint8 octet;
2584         guint16 value;
2585
2586         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext_qos_subscribed);
2587         /*  OCTET 1:
2588                 Allocation/Retention Priority (This octet encodes each priority level defined in
2589                 23.107 as the binary value of the priority level, declaration in 29.060)
2590                 Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
2591                 6-13.
2592          */
2593         /* Allocation/Retention Priority */
2594         proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
2595         offset++;
2596
2597         /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
2598
2599         /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
2600         proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, ENC_BIG_ENDIAN);
2601         /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
2602         proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, ENC_BIG_ENDIAN);
2603         /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
2604         proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, ENC_BIG_ENDIAN);
2605         offset++;
2606
2607         /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
2608         octet = tvb_get_guint8(tvb,offset);
2609         switch (octet){
2610         case 0:
2611                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
2612                 break;
2613         case 0x93:
2614                 value = 1502;
2615                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2616                 break;
2617         case 0x98:
2618                 value = 1510;
2619                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2620                 break;
2621         case 0x99:
2622                 value = 1532;
2623                 proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2624                 break;
2625         default:
2626                 if (octet<0x97){
2627                         value = octet * 10;
2628                         proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
2629                 }else{
2630                         proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
2631                 }
2632         }
2633         offset++;
2634
2635         /* Maximum bit rate for uplink, octet 8 */
2636         octet = tvb_get_guint8(tvb,offset);
2637         if (octet == 0 ){
2638                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved"  );
2639         }else{
2640                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2641         }
2642         offset++;
2643         /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
2644         octet = tvb_get_guint8(tvb,offset);
2645         if (octet == 0 ){
2646                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved"  );
2647         }else{
2648                 proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2649         }
2650         offset++;
2651         /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
2652         proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, ENC_BIG_ENDIAN);
2653         /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
2654         proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, ENC_BIG_ENDIAN);
2655         offset++;
2656
2657         /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
2658         proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, ENC_BIG_ENDIAN);
2659         /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
2660         proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, ENC_BIG_ENDIAN);
2661         offset++;
2662
2663         /*      Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
2664                 Coding is identical to that of Maximum bit rate for uplink.
2665          */
2666         octet = tvb_get_guint8(tvb,offset);
2667         if (octet == 0 ){
2668                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved"  );
2669         }else{
2670                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2671         }
2672         offset++;
2673
2674         /*      Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
2675                 Coding is identical to that of Maximum bit rate for uplink.
2676          */
2677         octet = tvb_get_guint8(tvb,offset);
2678         if (octet == 0 ){
2679                 proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved"  );
2680         }else{
2681                 proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
2682         }
2683
2684 }
2685
2686 #define  ELLIPSOID_POINT 0
2687 #define  ELLIPSOID_POINT_WITH_UNCERT_CIRC 1
2688 #define  ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3
2689 #define  POLYGON 5
2690 #define  ELLIPSOID_POINT_WITH_ALT 8
2691 #define  ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9
2692 #define  ELLIPSOID_ARC 10
2693 /*
2694 4 3 2 1
2695 0 0 0 0 Ellipsoid Point
2696 0 0 0 1 Ellipsoid point with uncertainty Circle
2697 0 0 1 1 Ellipsoid point with uncertainty Ellipse
2698 0 1 0 1 Polygon
2699 1 0 0 0 Ellipsoid point with altitude
2700 1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid
2701 1 0 1 0 Ellipsoid Arc
2702 other values reserved for future use
2703 */
2704
2705 /* TS 23 032 Table 2a: Coding of Type of Shape */
2706 static const value_string type_of_shape_vals[] = {
2707         { ELLIPSOID_POINT,                                                                      "Ellipsoid Point"},
2708         { ELLIPSOID_POINT_WITH_UNCERT_CIRC,                                     "Ellipsoid point with uncertainty Circle"},
2709         { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE,                          "Ellipsoid point with uncertainty Ellipse"},
2710         { POLYGON,                                                                                      "Polygon"},
2711         { ELLIPSOID_POINT_WITH_ALT,                                                     "Ellipsoid point with altitude"},
2712         { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID,        "Ellipsoid point with altitude and uncertainty Ellipsoid"},
2713         { ELLIPSOID_ARC,                                                                        "Ellipsoid Arc"},
2714         { 0,    NULL }
2715 };
2716
2717 /* 3GPP TS 23.032 7.3.1 */
2718 static const value_string sign_of_latitude_vals[] = {
2719         { 0,            "North"},
2720         { 1,            "South"},
2721         { 0,    NULL }
2722 };
2723
2724 static const value_string dir_of_alt_vals[] = {
2725         { 0,            "Altitude expresses height"},
2726         { 1,            "Altitude expresses depth"},
2727         { 0,    NULL }
2728 };
2729
2730 static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = {
2731         { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" },
2732         { 1, "Coding Group 1" },
2733         { 2, "Coding Group 2" },
2734         { 3, "Coding Group 3" },
2735         { 4, "General Data Coding indication" },
2736         { 5, "General Data Coding indication" },
2737         { 6, "General Data Coding indication" },
2738         { 7, "General Data Coding indication" },
2739         { 8, "Reserved" },
2740         { 9, "Message with User Data Header (UDH) structure" },
2741         { 10,"Reserved" },
2742         { 11,"Reserved" },
2743         { 12,"Reserved" },
2744         { 13,"Reserved" },
2745         { 14,"Defined by the WAP Forum" },
2746         { 15,"Data coding / message handling" },
2747         { 0, NULL}
2748 };
2749 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);
2750
2751 /* Coding group 0
2752  * Bits 3..0 indicate the language:
2753  */
2754 static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = {
2755         { 0, "German"},
2756         { 1, "English"},
2757         { 2, "Italian"},
2758         { 3, "French"},
2759         { 4, "Spanish"},
2760         { 5, "Dutch"},
2761         { 6, "Swedish"},
2762         { 7, "Danish"},
2763         { 8, "Portuguese"},
2764         { 9, "Finnish"},
2765         { 10, "Norwegian"},
2766         { 11, "Greek"},
2767         { 12, "Turkish"},
2768         { 13, "Hungarian"},
2769         { 14, "Polish"},
2770         { 15, "Language unspecified"},
2771         { 0,    NULL }
2772 };
2773 static value_string_ext gsm_map_cbs_coding_grp0_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp0_lang_vals);
2774
2775 static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = {
2776         { 0, "GSM 7 bit default alphabet; message preceded by language indication"},
2777         { 1, "UCS2; message preceded by language indication"},
2778         { 2, "Reserved"},
2779         { 3, "Reserved"},
2780         { 4, "Reserved"},
2781         { 5, "Reserved"},
2782         { 6, "Reserved"},
2783         { 7, "Reserved"},
2784         { 8, "Reserved"},
2785         { 9, "Reserved"},
2786         { 10, "Reserved"},
2787         { 11, "Reserved"},
2788         { 12, "Reserved"},
2789         { 13, "Reserved"},
2790         { 14, "Reserved"},
2791         { 15, "Reserved"},
2792         { 0,    NULL }
2793 };
2794 static value_string_ext gsm_map_cbs_coding_grp1_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp1_lang_vals);
2795
2796 static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = {
2797         { 0, "Czech"},
2798         { 1, "Hebrew"},
2799         { 2, "Arabic"},
2800         { 3, "Russian"},
2801         { 4, "Icelandic"},
2802         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2803         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2804         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2805         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2806         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2807         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2808         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2809         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2810         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2811         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2812         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2813         { 0,    NULL }
2814 };
2815 static value_string_ext gsm_map_cbs_coding_grp2_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp2_lang_vals);
2816
2817 static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = {
2818         { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2819         { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2820         { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2821         { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2822         { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2823         { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2824         { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2825         { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2826         { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2827         { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2828         { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2829         { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2830         { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2831         { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2832         { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2833         { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"},
2834         { 0,    NULL }
2835 };
2836 static value_string_ext gsm_map_cbs_coding_grp3_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp3_lang_vals);
2837
2838 static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = {
2839   "The text is compressed using the compression algorithm defined in 3GPP TS 23.042",
2840   "The text is uncompressed"
2841 };
2842
2843 static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = {
2844   "Bits 1 to 0 have a message class meaning",
2845   "Bits 1 to 0 are reserved and have no message class meaning"
2846 };
2847
2848 /* Bits 3 and 2 indicate the character set being used, as follows: */
2849
2850 static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = {
2851         { 0, "GSM 7 bit default alphabet"},
2852         { 1, "8 bit data"},
2853         { 2, "UCS2 (16 bit)"},
2854         { 3, "Reserved"},
2855         { 0,    NULL }
2856 };
2857
2858 static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = {
2859         { 0, "Class 0"},
2860         { 1, "Class 1 Default meaning: ME-specific"},
2861         { 2, "Class 2 (U)SIM specific message"},
2862         { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"},
2863         { 0,    NULL }
2864 };
2865
2866 static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = {
2867         { 0, "GSM 7 bit default alphabet"},
2868         { 1, "8 bit data"},
2869         { 0,    NULL }
2870 };
2871
2872 static const value_string gsm_map_cbs_coding_grp15_class_vals[] = {
2873         { 0, "GSM 7 bit default alphabet"},
2874         { 1, "8 bit data"},
2875         { 0,    NULL }
2876 };
2877
2878
2879 /* 3GPP TS 23.038 version 7.0.0 Release 7 */
2880 guint8
2881 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint16 offset)
2882 {
2883         guint8 octet;
2884         guint8 coding_grp;
2885         guint8 character_set;
2886
2887         octet = tvb_get_guint8(tvb,offset);
2888         coding_grp = octet >>4;
2889         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN);
2890
2891         sms_encoding = SMS_ENCODING_NOT_SET;
2892         switch (coding_grp){
2893         case 0:
2894                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
2895                 sms_encoding = SMS_ENCODING_7BIT;
2896                 break;
2897         case 1:
2898                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
2899                 if ((octet & 0x0f)== 0){
2900                         sms_encoding = SMS_ENCODING_7BIT_LANG;
2901                 }else{
2902                         sms_encoding = SMS_ENCODING_UCS2_LANG;
2903                 }
2904                 break;
2905         case 2:
2906                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
2907                 sms_encoding = SMS_ENCODING_7BIT;
2908                 break;
2909         case 3:
2910                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN);
2911                 sms_encoding = SMS_ENCODING_7BIT;
2912                 break;
2913                 /* Coding_grp 01xx */
2914         case 4:
2915                   /* FALLTHRU */
2916         case 5:
2917                   /* FALLTHRU */
2918         case 6:
2919                   /* FALLTHRU */
2920         case 7:
2921                   /* FALLTHRU */
2922                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN);
2923                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
2924                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
2925                 if ((octet & 0x10)== 0x10){
2926                         proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
2927                 }
2928                 /* Bits 3 and 2 indicate the character set being used, */
2929                 character_set = (octet&0x0c)>>2;
2930                 switch (character_set){
2931                 case 0:
2932                         /* GSM 7 bit default alphabet */
2933                         sms_encoding = SMS_ENCODING_7BIT;
2934                         break;
2935                 case 1:
2936                         /* 8 bit data */
2937                         sms_encoding = SMS_ENCODING_8BIT;
2938                         break;
2939                 case 2:
2940                         /* UCS2 (16 bit) */
2941                         sms_encoding = SMS_ENCODING_UCS2;
2942                         break;
2943                 case 3:
2944                         /* Reserved */
2945                         sms_encoding = SMS_ENCODING_NOT_SET;
2946                         break;
2947                 default:
2948                         break;
2949                 }
2950                 break;
2951         case 8:
2952                 /* Reserved coding groups */
2953                 break;
2954         case 9:
2955                 /* Message with User Data Header (UDH) structure:*/
2956                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN);
2957                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN);
2958                 character_set = (octet&0x0c)>>2;
2959                 switch (character_set){
2960                 case 0:
2961                         /* GSM 7 bit default alphabet */
2962                         sms_encoding = SMS_ENCODING_7BIT;
2963                         break;
2964                 case 1:
2965                         /* 8 bit data */
2966                         sms_encoding = SMS_ENCODING_8BIT;
2967                         break;
2968                 case 2:
2969                         /* UCS2 (16 bit) */
2970                         sms_encoding = SMS_ENCODING_UCS2;
2971                         break;
2972                 case 3:
2973                         /* Reserved */
2974                         sms_encoding = SMS_ENCODING_NOT_SET;
2975                         break;
2976                 default:
2977                         break;
2978                 }
2979                 break;
2980         case 10:
2981                 /* FALLTHRU */
2982         case 11:
2983                 /* FALLTHRU */
2984         case 12:
2985                 /* FALLTHRU */
2986         case 13:
2987                 /* FALLTHRU */
2988                 /* 1010..1101 Reserved coding groups */
2989                 break;
2990         case 14:
2991                 /* Defined by the WAP Forum
2992                  * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd.
2993                  */
2994                 break;
2995         case 15:
2996                 /* Data coding / message handling */
2997                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN);
2998                 proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN);
2999                 character_set = (octet&0x04)>>2;
3000                 if (character_set == 0){
3001                         sms_encoding = SMS_ENCODING_7BIT;
3002                 }else{
3003                         sms_encoding = SMS_ENCODING_8BIT;
3004                 }
3005                 break;
3006         default:
3007                 break;
3008         }
3009
3010         return sms_encoding;
3011 }
3012 void
3013 dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
3014 {
3015  const char     *digit_str;
3016  guint8         octet;
3017  guint8         na;
3018  guint8         np;
3019
3020  proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN);
3021  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN);
3022  proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN);
3023
3024  if(tvb_length(tvb)==1)
3025          return;
3026
3027  digit_str = unpack_digits(tvb, 1);
3028
3029  proto_tree_add_string(tree, hf_gsm_map_address_digits, tvb, 1, -1, digit_str);
3030
3031  octet = tvb_get_guint8(tvb,0);
3032  na = (octet & 0x70)>>4;
3033  np = octet & 0x0f;
3034  if ((na == 1) && (np==1))/*International Number & E164*/
3035         dissect_e164_cc(tvb, tree, 1, TRUE);
3036  else if(np==6)
3037         dissect_e212_mcc_mnc_in_address(tvb, pinfo, tree, 1);
3038
3039 }
3040
3041
3042 /*--- Included file: packet-gsm_map-fn.c ---*/
3043 #line 1 "../../asn1/gsm_map/packet-gsm_map-fn.c"
3044
3045 /* --- Module MAP-SS-Code --- --- ---                                         */
3046
3047
3048
3049 int
3050 dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3051   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3052                                        NULL);
3053
3054   return offset;
3055 }
3056
3057
3058 /* --- Module MAP-BS-Code --- --- ---                                         */
3059
3060
3061
3062 static int
3063 dissect_gsm_map_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3064   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3065                                        NULL);
3066
3067   return offset;
3068 }
3069
3070
3071
3072 static int
3073 dissect_gsm_map_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3074   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3075                                        NULL);
3076
3077   return offset;
3078 }
3079
3080
3081 /* --- Module MAP-TS-Code --- --- ---                                         */
3082
3083
3084
3085 static int
3086 dissect_gsm_map_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3087   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3088                                        NULL);
3089
3090   return offset;
3091 }
3092
3093
3094
3095 static int
3096 dissect_gsm_map_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3097   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3098                                        NULL);
3099
3100   return offset;
3101 }
3102
3103
3104 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
3105
3106
3107
3108 static int
3109 dissect_gsm_map_T_extId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3110   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &obj_id);
3111
3112   return offset;
3113 }
3114
3115
3116
3117 static int
3118 dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3119 #line 202 "../../asn1/gsm_map/gsm_map.cnf"
3120   proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
3121   if (obj_id){
3122          offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree);
3123   }else{
3124          call_dissector(data_handle, tvb, actx->pinfo, tree);
3125          offset = tvb_length_remaining(tvb,offset);
3126   }
3127
3128
3129
3130   return offset;
3131 }
3132
3133
3134 static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = {
3135   { &hf_gsm_map_extId       , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId },
3136   { &hf_gsm_map_extType     , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType },
3137   { NULL, 0, 0, 0, NULL }
3138 };
3139
3140 static int
3141 dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3142   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3143                                    gsm_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
3144
3145   return offset;
3146 }
3147
3148
3149 static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = {
3150   { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension },
3151 };
3152
3153 static int
3154 dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3155   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3156                                       gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
3157
3158   return offset;
3159 }
3160
3161
3162 static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = {
3163   { NULL, 0, 0, 0, NULL }
3164 };
3165
3166 static int
3167 dissect_gsm_map_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3168   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3169                                    gsm_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions);
3170
3171   return offset;
3172 }
3173
3174
3175 static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = {
3176   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
3177   { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions },
3178   { NULL, 0, 0, 0, NULL }
3179 };
3180
3181 int
3182 dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3183   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3184                                    gsm_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
3185
3186   return offset;
3187 }
3188
3189
3190
3191 static int
3192 dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3193   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3194
3195   return offset;
3196 }
3197
3198
3199 static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = {
3200   { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL },
3201   { NULL, 0, 0, 0, NULL }
3202 };
3203
3204 static int
3205 dissect_gsm_map_SLR_Arg_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3206   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3207                                    gsm_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
3208
3209   return offset;
3210 }
3211
3212
3213 static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = {
3214   { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList },
3215   { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions },
3216   { NULL, 0, 0, 0, NULL }
3217 };
3218
3219 static int
3220 dissect_gsm_map_SLR_ArgExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3221   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3222                                    gsm_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
3223
3224   return offset;
3225 }
3226
3227
3228 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
3229
3230
3231
3232 int
3233 dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3234 #line 228 "../../asn1/gsm_map/gsm_map.cnf"
3235  tvbuff_t       *parameter_tvb;
3236  const char     *digit_str;
3237
3238    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3239                                        &parameter_tvb);
3240
3241
3242  if (!parameter_tvb)
3243         return offset;
3244
3245  digit_str = unpack_digits(parameter_tvb, 0);
3246  proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str);
3247
3248
3249
3250   return offset;
3251 }
3252
3253
3254
3255 static int
3256 dissect_gsm_map_DiameterIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3257   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3258                                        NULL);
3259
3260   return offset;
3261 }
3262
3263
3264
3265 int
3266 dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3267 #line 215 "../../asn1/gsm_map/gsm_map.cnf"
3268
3269  tvbuff_t       *parameter_tvb;
3270  proto_tree *subtree;
3271
3272   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3273                                        &parameter_tvb);
3274
3275
3276  if (!parameter_tvb)
3277         return offset;
3278
3279  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string);
3280  dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree);
3281
3282
3283
3284   return offset;
3285 }
3286
3287
3288
3289 int
3290 dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3291   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
3292
3293   return offset;
3294 }
3295
3296
3297
3298 static int
3299 dissect_gsm_map_FTN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3300   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
3301
3302   return offset;
3303 }
3304
3305
3306
3307 int
3308 dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3309   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3310                                        NULL);
3311
3312   return offset;
3313 }
3314
3315
3316 static const value_string gsm_map_ProtocolId_vals[] = {
3317   {   1, "gsm-0408" },
3318   {   2, "gsm-0806" },
3319   {   3, "gsm-BSSMAP" },
3320   {   4, "ets-300102-1" },
3321   { 0, NULL }
3322 };
3323
3324
3325 static int
3326 dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3327   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3328                                   &ProtocolId);
3329
3330   return offset;
3331 }
3332
3333
3334
3335 static int
3336 dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3337 #line 330 "../../asn1/gsm_map/gsm_map.cnf"
3338  tvbuff_t       *parameter_tvb;
3339
3340    offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3341                                        &parameter_tvb);
3342
3343         actx->value_ptr = (void*)parameter_tvb;
3344
3345
3346
3347
3348   return offset;
3349 }
3350
3351
3352 static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = {
3353   { &hf_gsm_map_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
3354   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
3355   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3356   { NULL, 0, 0, 0, NULL }
3357 };
3358
3359 int
3360 dissect_gsm_map_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3361 #line 755 "../../asn1/gsm_map/gsm_map.cnf"
3362 /*
3363 -- Information about the internal structure is given in
3364 -- clause 7.6.9.
3365 7.6.9.4 External Signal Information
3366 This parameter contains concatenated information elements (including tag and length) which are defined by a common
3367 protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via
3368 MAP interfaces
3369 */
3370  guint8         octet;
3371  guint8         length;
3372  tvbuff_t       *next_tvb;
3373  proto_tree *subtree;
3374
3375  ProtocolId = 0xffffffff;
3376   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3377                                    gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
3378
3379 if (!actx->value_ptr)
3380         return offset;
3381  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
3382  switch (ProtocolId){
3383         case 1:
3384         /* gsm-0408 */
3385                 /* As per comment abowe Individual IE:(s) will be found here in TLV format
3386                  * Unfortunatly a branch for each IE must be made to call the apropriate
3387                  * function
3388                  */
3389                  /* Get tag */
3390                  octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
3391                  proto_tree_add_item(subtree, hf_gsm_map_ie_tag, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
3392                  /* get length */
3393                  length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
3394                  proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
3395                  /* Branch on tag */
3396                  switch(octet){
3397                  case 4:
3398                         /* Dissect the data part */
3399                         de_bearer_cap((tvbuff_t*)actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
3400                         /* TODO: There may be more than one IE */
3401                         break;
3402                  default:
3403                         proto_tree_add_text(subtree, (tvbuff_t*)actx->value_ptr, 0, length, "If you want this decoded send the packet to Wireshark-dev");
3404                         break;
3405                 }/* switch(octet) */
3406                 break;
3407         case 2:
3408                 /* gsm-0806 */
3409                 octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
3410                 /* Discrimination parameter */
3411                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
3412                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
3413                         /* Strip off discrimination and length */
3414                         proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
3415                         next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
3416                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
3417                 }else if(octet==1){
3418                         proto_tree_add_item(subtree, hf_gsm_map_dlci, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
3419                         proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 2,1,ENC_BIG_ENDIAN);
3420                         next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 3);
3421                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
3422                 }
3423                 break;
3424         case 3:
3425         /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
3426                 octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
3427                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
3428                         next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
3429                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
3430                 }
3431                 break;
3432         /* ets-300102-1 (~Q.931 ) */
3433         case 4:
3434                 octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
3435                 length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
3436                 if ( octet == 4 )
3437                         dissect_q931_bearer_capability_ie((tvbuff_t*)actx->value_ptr, 2, length, subtree);
3438                 break;
3439         default:
3440                 break;
3441         }/*switch (ProtocolId)*/
3442
3443
3444
3445   return offset;
3446 }
3447
3448
3449 static const value_string gsm_map_Ext_ProtocolId_vals[] = {
3450   {   1, "ets-300356" },
3451   { 0, NULL }
3452 };
3453
3454
3455 static int
3456 dissect_gsm_map_Ext_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3457   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3458                                   NULL);
3459
3460   return offset;
3461 }
3462
3463
3464 static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = {
3465   { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId },
3466   { &hf_gsm_map_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
3467   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3468   { NULL, 0, 0, 0, NULL }
3469 };
3470
3471 static int
3472 dissect_gsm_map_Ext_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3473   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3474                                    gsm_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
3475
3476   return offset;
3477 }
3478
3479
3480 static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
3481   {   1, "ts3G-48006" },
3482   {   2, "ts3G-25413" },
3483   { 0, NULL }
3484 };
3485
3486
3487 static int
3488 dissect_gsm_map_AccessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3489   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3490                                   &AccessNetworkProtocolId);
3491
3492   return offset;
3493 }
3494
3495
3496
3497 static int
3498 dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3499 #line 247 "../../asn1/gsm_map/gsm_map.cnf"
3500
3501  tvbuff_t       *parameter_tvb;
3502  guint8         octet;
3503  tvbuff_t       *next_tvb;
3504  proto_tree *subtree;
3505
3506
3507   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3508                                        &parameter_tvb);
3509
3510
3511  if (!parameter_tvb)
3512         return offset;
3513
3514  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo);
3515
3516  switch (AccessNetworkProtocolId){
3517         /* ts3G-48006 */
3518         case 1:
3519                 octet = tvb_get_guint8(parameter_tvb,0);
3520                 /* Discrimination parameter */
3521                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
3522                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
3523                         /* Strip off discrimination and length */
3524                         proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
3525                         next_tvb = tvb_new_subset_remaining(parameter_tvb, 2);
3526                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
3527                 }else if(octet==1){
3528                         proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,ENC_BIG_ENDIAN);
3529                         proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,ENC_BIG_ENDIAN);
3530                         next_tvb = tvb_new_subset_remaining(parameter_tvb, 3);
3531                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
3532                 }
3533                 break;
3534         /* ts3G-25413 */
3535         case 2:
3536                 call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree);
3537                 break;
3538         default:
3539                 break;
3540
3541  }
3542
3543
3544   return offset;
3545 }
3546
3547
3548 static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = {
3549   { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId },
3550   { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo },
3551   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
3552   { NULL, 0, 0, 0, NULL }
3553 };
3554
3555 static int
3556 dissect_gsm_map_AccessNetworkSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3557   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3558                                    gsm_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
3559
3560   return offset;
3561 }
3562
3563
3564
3565 int
3566 dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3567   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3568                                        NULL);
3569
3570   return offset;
3571 }
3572
3573
3574
3575 int
3576 dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3577 #line 580 "../../asn1/gsm_map/gsm_map.cnf"
3578
3579         tvbuff_t        *parameter_tvb;
3580         guint8          octet;
3581         proto_tree *subtree;
3582
3583   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3584                                        &parameter_tvb);
3585
3586
3587         if (!parameter_tvb)
3588                 return offset;
3589         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_pdptypenumber);
3590
3591         octet = tvb_get_guint8(parameter_tvb,0);
3592         switch(octet){
3593         case 0x04: /* IPv4 */
3594                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), ENC_BIG_ENDIAN);
3595                 break;
3596         case 0x50: /* IPv4 */
3597                 proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), ENC_BIG_ENDIAN);
3598                 break;
3599         default:
3600                 break;
3601         }
3602
3603
3604
3605   return offset;
3606 }
3607
3608
3609
3610 static int
3611 dissect_gsm_map_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3612   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3613                                        NULL);
3614
3615   return offset;
3616 }
3617
3618
3619
3620 int
3621 dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3622   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3623
3624   return offset;
3625 }
3626
3627
3628
3629 static int
3630 dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3631   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3632                                        NULL);
3633
3634   return offset;
3635 }
3636
3637
3638 static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = {
3639   { &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3640   { &hf_gsm_map_lmsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
3641   { NULL, 0, 0, 0, NULL }
3642 };
3643
3644 static int
3645 dissect_gsm_map_IMSI_WithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3646   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3647                                    gsm_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
3648
3649   return offset;
3650 }
3651
3652
3653 static const value_string gsm_map_Identity_vals[] = {
3654   {   0, "imsi" },
3655   {   1, "imsi-WithLMSI" },
3656   { 0, NULL }
3657 };
3658
3659 static const ber_choice_t gsm_map_Identity_choice[] = {
3660   {   0, &hf_gsm_map_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
3661   {   1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI },
3662   { 0, NULL, 0, 0, 0, NULL }
3663 };
3664
3665 static int
3666 dissect_gsm_map_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3667   offset = dissect_ber_choice(actx, tree, tvb, offset,
3668                                  gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity,
3669                                  NULL);
3670
3671   return offset;
3672 }
3673
3674
3675
3676 static int
3677 dissect_gsm_map_ASCI_CallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3678   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3679
3680   return offset;
3681 }
3682
3683
3684
3685 static int
3686 dissect_gsm_map_TMSI(gboolean 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);
3689
3690   return offset;
3691 }
3692
3693
3694
3695 int
3696 dissect_gsm_map_IMEI(gboolean 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_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
3698
3699   return offset;
3700 }
3701
3702
3703
3704 static int
3705 dissect_gsm_map_HLR_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3706   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
3707
3708   return offset;
3709 }
3710
3711
3712 static const ber_sequence_t gsm_map_HLR_List_sequence_of[1] = {
3713   { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id },
3714 };
3715
3716 static int
3717 dissect_gsm_map_HLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3718   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3719                                       gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
3720
3721   return offset;
3722 }
3723
3724
3725
3726 int
3727 dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3728 #line 835 "../../asn1/gsm_map/gsm_map.cnf"
3729     tvbuff_t    *parameter_tvb;
3730         proto_tree      *subtree;
3731
3732   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3733                                        &parameter_tvb);
3734
3735
3736         if (!parameter_tvb)
3737                 return offset;
3738
3739     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId);
3740         be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
3741
3742
3743
3744   return offset;
3745 }
3746
3747
3748 const value_string gsm_map_NetworkResource_vals[] = {
3749   {   0, "plmn" },
3750   {   1, "hlr" },
3751   {   2, "vlr" },
3752   {   3, "pvlr" },
3753   {   4, "controllingMSC" },
3754   {   5, "vmsc" },
3755   {   6, "eir" },
3756   {   7, "rss" },
3757   { 0, NULL }
3758 };
3759
3760
3761 int
3762 dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3763   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3764                                   NULL);
3765
3766   return offset;
3767 }
3768
3769
3770 static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
3771   {   0, "sgsn" },
3772   {   1, "ggsn" },
3773   {   2, "gmlc" },
3774   {   3, "gsmSCF" },
3775   {   4, "nplr" },
3776   {   5, "auc" },
3777   {   6, "ue" },
3778   {   7, "mme" },
3779   { 0, NULL }
3780 };
3781
3782
3783 static int
3784 dissect_gsm_map_AdditionalNetworkResource(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3786                                   NULL);
3787
3788   return offset;
3789 }
3790
3791
3792
3793 int
3794 dissect_gsm_map_NAEA_CIC(gboolean 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3796                                        NULL);
3797
3798   return offset;
3799 }
3800
3801
3802 static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = {
3803   { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC },
3804   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3805   { NULL, 0, 0, 0, NULL }
3806 };
3807
3808 static int
3809 dissect_gsm_map_NAEA_PreferredCI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3811                                    gsm_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
3812
3813   return offset;
3814 }
3815
3816
3817 static const value_string gsm_map_SubscriberIdentity_vals[] = {
3818   {   0, "imsi" },
3819   {   1, "msisdn" },
3820   { 0, NULL }
3821 };
3822
3823 static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = {
3824   {   0, &hf_gsm_map_imsi        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
3825   {   1, &hf_gsm_map_msisdn      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3826   { 0, NULL, 0, 0, 0, NULL }
3827 };
3828
3829 static int
3830 dissect_gsm_map_SubscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3831   offset = dissect_ber_choice(actx, tree, tvb, offset,
3832                                  gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
3833                                  NULL);
3834
3835   return offset;
3836 }
3837
3838
3839 static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = {
3840   { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
3841   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
3842   { NULL, 0, 0, 0, NULL }
3843 };
3844
3845 int
3846 dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3847   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3848                                    gsm_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
3849
3850   return offset;
3851 }
3852
3853
3854 const value_string gsm_map_LCSClientInternalID_vals[] = {
3855   {   0, "broadcastService" },
3856   {   1, "o-andM-HPLMN" },
3857   {   2, "o-andM-VPLMN" },
3858   {   3, "anonymousLocation" },
3859   {   4, "targetMSsubscribedService" },
3860   { 0, NULL }
3861 };
3862
3863
3864 int
3865 dissect_gsm_map_LCSClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3866   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3867                                   NULL);
3868
3869   return offset;
3870 }
3871
3872
3873 const value_string gsm_map_LCSServiceTypeID_vals[] = {
3874   {   0, "emergencyServices" },
3875   {   1, "emergencyAlertServices" },
3876   {   2, "personTracking" },
3877   {   3, "fleetManagement" },
3878   {   4, "assetManagement" },
3879   {   5, "trafficCongestionReporting" },
3880   {   6, "roadsideAssistance" },
3881   {   7, "routingToNearestCommercialEnterprise" },
3882   {   8, "navigation" },
3883   {   9, "citySightseeing" },
3884   {  10, "localizedAdvertising" },
3885   {  11, "mobileYellowPages" },
3886   {  12, "trafficAndPublicTransportationInfo" },
3887   {  13, "weather" },
3888   {  14, "assetAndServiceFinding" },
3889   {  15, "gaming" },
3890   {  16, "findYourFriend" },
3891   {  17, "dating" },
3892   {  18, "chatting" },
3893   {  19, "routeFinding" },
3894   {  20, "whereAmI" },
3895   {  64, "serv64" },
3896   {  65, "serv65" },
3897   {  66, "serv66" },
3898   {  67, "serv67" },
3899   {  68, "serv68" },
3900   {  69, "serv69" },
3901   {  70, "serv70" },
3902   {  71, "serv71" },
3903   {  72, "serv72" },
3904   {  73, "serv73" },
3905   {  74, "serv74" },
3906   {  75, "serv75" },
3907   {  76, "serv76" },
3908   {  77, "serv77" },
3909   {  78, "serv78" },
3910   {  79, "serv79" },
3911   {  80, "serv80" },
3912   {  81, "serv81" },
3913   {  82, "serv82" },
3914   {  83, "serv83" },
3915   {  84, "serv84" },
3916   {  85, "serv85" },
3917   {  86, "serv86" },
3918   {  87, "serv87" },
3919   {  88, "serv88" },
3920   {  89, "serv89" },
3921   {  90, "serv90" },
3922   {  91, "serv91" },
3923   {  92, "serv92" },
3924   {  93, "serv93" },
3925   {  94, "serv94" },
3926   {  95, "serv95" },
3927   {  96, "serv96" },
3928   {  97, "serv97" },
3929   {  98, "serv98" },
3930   {  99, "serv99" },
3931   { 100, "serv100" },
3932   { 101, "serv101" },
3933   { 102, "serv102" },
3934   { 103, "serv103" },
3935   { 104, "serv104" },
3936   { 105, "serv105" },
3937   { 106, "serv106" },
3938   { 107, "serv107" },
3939   { 108, "serv108" },
3940   { 109, "serv109" },
3941   { 110, "serv110" },
3942   { 111, "serv111" },
3943   { 112, "serv112" },
3944   { 113, "serv113" },
3945   { 114, "serv114" },
3946   { 115, "serv115" },
3947   { 116, "serv116" },
3948   { 117, "serv117" },
3949   { 118, "serv118" },
3950   { 119, "serv119" },
3951   { 120, "serv120" },
3952   { 121, "serv121" },
3953   { 122, "serv122" },
3954   { 123, "serv123" },
3955   { 124, "serv124" },
3956   { 125, "serv125" },
3957   { 126, "serv126" },
3958   { 127, "serv127" },
3959   { 0, NULL }
3960 };
3961
3962
3963 int
3964 dissect_gsm_map_LCSServiceTypeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3965   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3966                                                 NULL);
3967
3968   return offset;
3969 }
3970
3971
3972
3973 static int
3974 dissect_gsm_map_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3975   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3976                                        NULL);
3977
3978   return offset;
3979 }
3980
3981
3982
3983 static int
3984 dissect_gsm_map_E_UTRAN_CGI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3985   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3986                                        NULL);
3987
3988   return offset;
3989 }
3990
3991
3992
3993 static int
3994 dissect_gsm_map_TA_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3995   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3996                                        NULL);
3997
3998   return offset;
3999 }
4000
4001
4002
4003 int
4004 dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4005 #line 604 "../../asn1/gsm_map/gsm_map.cnf"
4006
4007         tvbuff_t        *parameter_tvb;
4008         proto_tree *subtree;
4009
4010   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4011                                        &parameter_tvb);
4012
4013
4014          if (!parameter_tvb)
4015                 return offset;
4016         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
4017         de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0);
4018
4019
4020
4021   return offset;
4022 }
4023
4024
4025 static const ber_sequence_t gsm_map_NetworkNodeDiameterAddress_sequence[] = {
4026   { &hf_gsm_map_diameter_Name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
4027   { &hf_gsm_map_diameter_Realm, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
4028   { NULL, 0, 0, 0, NULL }
4029 };
4030
4031 static int
4032 dissect_gsm_map_NetworkNodeDiameterAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4033   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4034                                    gsm_map_NetworkNodeDiameterAddress_sequence, hf_index, ett_gsm_map_NetworkNodeDiameterAddress);
4035
4036   return offset;
4037 }
4038
4039
4040
4041 int
4042 dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4043   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4044                                        NULL);
4045
4046   return offset;
4047 }
4048
4049
4050
4051 int
4052 dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4053 #line 616 "../../asn1/gsm_map/gsm_map.cnf"
4054
4055         tvbuff_t        *parameter_tvb;
4056         proto_tree *subtree;
4057
4058   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4059                                        &parameter_tvb);
4060
4061
4062          if (!parameter_tvb)
4063                 return offset;
4064         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength);
4065         dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, TRUE);
4066
4067
4068
4069   return offset;
4070 }
4071
4072
4073 const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
4074   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
4075   {   1, "laiFixedLength" },
4076   { 0, NULL }
4077 };
4078
4079 static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
4080   {   0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
4081   {   1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
4082   { 0, NULL, 0, 0, 0, NULL }
4083 };
4084
4085 int
4086 dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4087   offset = dissect_ber_choice(actx, tree, tvb, offset,
4088                                  gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
4089                                  NULL);
4090
4091   return offset;
4092 }
4093
4094
4095 const value_string gsm_map_BasicServiceCode_vals[] = {
4096   {   2, "bearerService" },
4097   {   3, "teleservice" },
4098   { 0, NULL }
4099 };
4100
4101 static const ber_choice_t gsm_map_BasicServiceCode_choice[] = {
4102   {   2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode },
4103   {   3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
4104   { 0, NULL, 0, 0, 0, NULL }
4105 };
4106
4107 int
4108 dissect_gsm_map_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4109   offset = dissect_ber_choice(actx, tree, tvb, offset,
4110                                  gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
4111                                  NULL);
4112
4113   return offset;
4114 }
4115
4116
4117 const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
4118   {   2, "ext-BearerService" },
4119   {   3, "ext-Teleservice" },
4120   { 0, NULL }
4121 };
4122
4123 static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = {
4124   {   2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode },
4125   {   3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode },
4126   { 0, NULL, 0, 0, 0, NULL }
4127 };
4128
4129 int
4130 dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4131   offset = dissect_ber_choice(actx, tree, tvb, offset,
4132                                  gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
4133                                  NULL);
4134
4135   return offset;
4136 }
4137
4138
4139 static const value_string gsm_map_EMLPP_Priority_vals[] = {
4140   {   6, "priorityLevelA" },
4141   {   5, "priorityLevelB" },
4142   {   0, "priorityLevel0" },
4143   {   1, "priorityLevel1" },
4144   {   2, "priorityLevel2" },
4145   {   3, "priorityLevel3" },
4146   {   4, "priorityLevel4" },
4147   { 0, NULL }
4148 };
4149
4150
4151 static int
4152 dissect_gsm_map_EMLPP_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4153   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4154                                                 NULL);
4155
4156   return offset;
4157 }
4158
4159
4160 static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = {
4161   { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4162   { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4163   { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4164   { NULL, 0, 0, 0, NULL }
4165 };
4166
4167 static int
4168 dissect_gsm_map_EMLPP_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4169   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4170                                    gsm_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
4171
4172   return offset;
4173 }
4174
4175
4176
4177 static int
4178 dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4179 #line 432 "../../asn1/gsm_map/gsm_map.cnf"
4180  /* Note Ext-SS-Status can have more than one byte */
4181
4182  tvbuff_t       *parameter_tvb;
4183  guint8         octet;
4184
4185   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4186                                        &parameter_tvb);
4187
4188
4189  if (!parameter_tvb)
4190         return offset;
4191
4192  octet = tvb_get_guint8(parameter_tvb,0);
4193
4194  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
4195  if ((octet & 0x01)== 1)
4196         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
4197
4198  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
4199  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
4200  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
4201
4202
4203
4204   return offset;
4205 }
4206
4207
4208
4209 static int
4210 dissect_gsm_map_MaxMC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4211   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4212                                                 NULL);
4213
4214   return offset;
4215 }
4216
4217
4218
4219 static int
4220 dissect_gsm_map_MC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4221   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4222                                                 NULL);
4223
4224   return offset;
4225 }
4226
4227
4228 static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = {
4229   { &hf_gsm_map_ss_Code     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4230   { &hf_gsm_map_ss_Status   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
4231   { &hf_gsm_map_nbrSB       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
4232   { &hf_gsm_map_nbrUser     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4233   { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4234   { NULL, 0, 0, 0, NULL }
4235 };
4236
4237 static int
4238 dissect_gsm_map_MC_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4239   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4240                                    gsm_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
4241
4242   return offset;
4243 }
4244
4245
4246
4247 int
4248 dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4249   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4250                                                 NULL);
4251
4252   return offset;
4253 }
4254
4255 /*--- PDUs ---*/
4256
4257 int dissect_gsm_map_ISDN_AddressString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
4258   int offset = 0;
4259   asn1_ctx_t asn1_ctx;
4260   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4261   offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_gsm_map_ISDN_AddressString_PDU);
4262   return offset;
4263 }
4264
4265
4266 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
4267
4268
4269
4270 static int
4271 dissect_gsm_map_ss_NoReplyConditionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4272   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4273                                                 NULL);
4274
4275   return offset;
4276 }
4277
4278
4279
4280 static int
4281 dissect_gsm_map_ss_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4282   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4283
4284   return offset;
4285 }
4286
4287
4288 static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = {
4289   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4290   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4291   { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
4292   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
4293   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
4294   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4295   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4296   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
4297   { NULL, 0, 0, 0, NULL }
4298 };
4299
4300 int
4301 dissect_gsm_map_ss_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4302   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4303                                    gsm_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg);
4304
4305   return offset;
4306 }
4307
4308
4309
4310 int
4311 dissect_gsm_map_ss_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4312 #line 412 "../../asn1/gsm_map/gsm_map.cnf"
4313
4314  tvbuff_t       *parameter_tvb;
4315  guint8         octet;
4316
4317   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4318                                        &parameter_tvb);
4319
4320
4321  if (!parameter_tvb)
4322         return offset;
4323
4324  octet = tvb_get_guint8(parameter_tvb,0);
4325
4326  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
4327  if ((octet & 0x01)== 1)
4328         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
4329
4330  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
4331  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
4332  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
4333
4334
4335
4336   return offset;
4337 }
4338
4339
4340
4341 int
4342 dissect_gsm_map_ss_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4343   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4344                                        NULL);
4345
4346 #line 523 "../../asn1/gsm_map/gsm_map.cnf"
4347
4348         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
4349         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
4350         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
4351         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
4352
4353   return offset;
4354 }
4355
4356
4357 static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = {
4358   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4359   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4360   { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4361   { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
4362   { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
4363   { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime },
4364   { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
4365   { NULL, 0, 0, 0, NULL }
4366 };
4367
4368 static int
4369 dissect_gsm_map_ss_ForwardingFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4370   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4371                                    gsm_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature);
4372
4373   return offset;
4374 }
4375
4376
4377 static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = {
4378   { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature },
4379 };
4380
4381 static int
4382 dissect_gsm_map_ss_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4383   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4384                                       gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList);
4385
4386   return offset;
4387 }
4388
4389
4390 static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = {
4391   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4392   { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList },
4393   { NULL, 0, 0, 0, NULL }
4394 };
4395
4396 static int
4397 dissect_gsm_map_ss_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4398   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4399                                    gsm_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo);
4400
4401   return offset;
4402 }
4403
4404
4405 static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = {
4406   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4407   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4408   { NULL, 0, 0, 0, NULL }
4409 };
4410
4411 static int
4412 dissect_gsm_map_ss_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4413   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4414                                    gsm_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature);
4415
4416   return offset;
4417 }
4418
4419
4420 static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = {
4421   { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature },
4422 };
4423
4424 static int
4425 dissect_gsm_map_ss_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4426   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4427                                       gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList);
4428
4429   return offset;
4430 }
4431
4432
4433 static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = {
4434   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4435   { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList },
4436   { NULL, 0, 0, 0, NULL }
4437 };
4438
4439 static int
4440 dissect_gsm_map_ss_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4441   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4442                                    gsm_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo);
4443
4444   return offset;
4445 }
4446
4447
4448 static const value_string gsm_map_ss_CliRestrictionOption_vals[] = {
4449   {   0, "permanent" },
4450   {   1, "temporaryDefaultRestricted" },
4451   {   2, "temporaryDefaultAllowed" },
4452   { 0, NULL }
4453 };
4454
4455
4456 static int
4457 dissect_gsm_map_ss_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4458   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4459                                   NULL);
4460
4461   return offset;
4462 }
4463
4464
4465 static const value_string gsm_map_ss_OverrideCategory_vals[] = {
4466   {   0, "overrideEnabled" },
4467   {   1, "overrideDisabled" },
4468   { 0, NULL }
4469 };
4470
4471
4472 static int
4473 dissect_gsm_map_ss_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4474   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4475                                   NULL);
4476
4477   return offset;
4478 }
4479
4480
4481 static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = {
4482   {   2, "cliRestrictionOption" },
4483   {   1, "overrideCategory" },
4484   { 0, NULL }
4485 };
4486
4487 static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = {
4488   {   2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
4489   {   1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
4490   { 0, NULL, 0, 0, 0, NULL }
4491 };
4492
4493 static int
4494 dissect_gsm_map_ss_SS_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4495   offset = dissect_ber_choice(actx, tree, tvb, offset,
4496                                  gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption,
4497                                  NULL);
4498
4499   return offset;
4500 }
4501
4502
4503 static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = {
4504   { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4505 };
4506
4507 static int
4508 dissect_gsm_map_ss_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4509   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4510                                       gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList);
4511
4512   return offset;
4513 }
4514
4515
4516 static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = {
4517   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4518   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4519   { &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 },
4520   { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList },
4521   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority },
4522   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4523   { NULL, 0, 0, 0, NULL }
4524 };
4525
4526 static int
4527 dissect_gsm_map_ss_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4528   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4529                                    gsm_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data);
4530
4531   return offset;
4532 }
4533
4534
4535 const value_string gsm_map_ss_SS_Info_vals[] = {
4536   {   0, "forwardingInfo" },
4537   {   1, "callBarringInfo" },
4538   {   3, "ss-Data" },
4539   { 0, NULL }
4540 };
4541
4542 static const ber_choice_t gsm_map_ss_SS_Info_choice[] = {
4543   {   0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo },
4544   {   1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo },
4545   {   3, &hf_gsm_map_ss_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data },
4546   { 0, NULL, 0, 0, 0, NULL }
4547 };
4548
4549 int
4550 dissect_gsm_map_ss_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4551   offset = dissect_ber_choice(actx, tree, tvb, offset,
4552                                  gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info,
4553                                  NULL);
4554
4555   return offset;
4556 }
4557
4558
4559 static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = {
4560   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4561   { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
4562   { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL },
4563   { NULL, 0, 0, 0, NULL }
4564 };
4565
4566 int
4567 dissect_gsm_map_ss_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4568   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4569                                    gsm_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code);
4570
4571   return offset;
4572 }
4573
4574
4575
4576 static int
4577 dissect_gsm_map_ss_CCBS_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4578   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4579                                                 NULL);
4580
4581   return offset;
4582 }
4583
4584
4585 static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = {
4586   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4587   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4588   { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
4589   { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode },
4590   { NULL, 0, 0, 0, NULL }
4591 };
4592
4593 int
4594 dissect_gsm_map_ss_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4595   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4596                                    gsm_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature);
4597
4598   return offset;
4599 }
4600
4601
4602 static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = {
4603   { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature },
4604 };
4605
4606 static int
4607 dissect_gsm_map_ss_CCBS_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4608   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4609                                       gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList);
4610
4611   return offset;
4612 }
4613
4614
4615 static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = {
4616   { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status },
4617   { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption },
4618   { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4619   { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
4620   { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList },
4621   { &hf_gsm_map_ss_nbrSB    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers },
4622   { &hf_gsm_map_ss_nbrUser  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4623   { &hf_gsm_map_ss_nbrSN    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers },
4624   { NULL, 0, 0, 0, NULL }
4625 };
4626
4627 static int
4628 dissect_gsm_map_ss_GenericServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4629   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4630                                    gsm_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo);
4631
4632   return offset;
4633 }
4634
4635
4636 const value_string gsm_map_ss_InterrogateSS_Res_vals[] = {
4637   {   0, "ss-Status" },
4638   {   2, "basicServiceGroupList" },
4639   {   3, "forwardingFeatureList" },
4640   {   4, "genericServiceInfo" },
4641   { 0, NULL }
4642 };
4643
4644 static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = {
4645   {   0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4646   {   2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList },
4647   {   3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList },
4648   {   4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo },
4649   { 0, NULL, 0, 0, 0, NULL }
4650 };
4651
4652 int
4653 dissect_gsm_map_ss_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4654   offset = dissect_ber_choice(actx, tree, tvb, offset,
4655                                  gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res,
4656                                  NULL);
4657
4658   return offset;
4659 }
4660
4661
4662
4663 int
4664 dissect_gsm_map_ss_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4665 #line 455 "../../asn1/gsm_map/gsm_map.cnf"
4666  /*The structure of the USSD-DataCodingScheme is defined by
4667   * the Cell Broadcast Data Coding Scheme as described in
4668   * TS 3GPP TS 23.038
4669   * TODO: Should dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet
4670   */
4671   tvbuff_t      *parameter_tvb;
4672   proto_tree *subtree;
4673
4674   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4675                                        &parameter_tvb);
4676
4677   if (!parameter_tvb)
4678      return offset;
4679   subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding);
4680   dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
4681
4682
4683
4684   return offset;
4685 }
4686
4687
4688
4689 int
4690 dissect_gsm_map_ss_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4691 #line 470 "../../asn1/gsm_map/gsm_map.cnf"
4692
4693   tvbuff_t      *parameter_tvb;
4694   guint         length;
4695   guint8                out_len;
4696   /* XXX - The maximum item label length is 240.  Does this really need to be 1024?
4697    * use ep_alloc ?
4698    */
4699   static unsigned char msgbuf[1024];
4700   gchar *utf8_text = NULL;
4701   GIConv cd;
4702   GError *l_conv_error = NULL;
4703
4704   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4705                                        &parameter_tvb);
4706
4707   if (!parameter_tvb)
4708      return offset;
4709
4710   length = tvb_ensure_length_remaining(parameter_tvb,0);
4711   switch(sms_encoding){
4712     case SMS_ENCODING_7BIT:
4713     case SMS_ENCODING_7BIT_LANG:
4714         out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(msgbuf),
4715                                            tvb_get_ptr(parameter_tvb, 0, length),
4716                                                        msgbuf);
4717
4718         msgbuf[out_len] = '\0';
4719         utf8_text = gsm_sms_chars_to_utf8(msgbuf, out_len);
4720         proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", utf8_text);
4721         break;
4722     case SMS_ENCODING_8BIT:
4723         proto_tree_add_text(tree, parameter_tvb , 0, length, "USSD String: %s", tvb_get_ephemeral_string(parameter_tvb, 0, length));
4724         break;
4725     case SMS_ENCODING_UCS2:
4726     case SMS_ENCODING_UCS2_LANG:
4727         if ((cd = g_iconv_open("UTF-8","UCS-2BE")) != (GIConv) -1)
4728         {
4729             utf8_text = g_convert_with_iconv(tvb_get_ptr(parameter_tvb, 0, length), length, cd, NULL, NULL, &l_conv_error);
4730             if(!l_conv_error)
4731                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: %s", utf8_text);
4732             else
4733                 proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_convert_with_iconv FAILED");
4734
4735             g_free(utf8_text);
4736             g_iconv_close(cd);
4737         }
4738         else
4739             proto_tree_add_text(tree, tvb, 0, length, "USSD String: g_iconv_open FAILED contact wireshark");
4740
4741         break;
4742     default:
4743         break;
4744   }
4745
4746
4747
4748   return offset;
4749 }
4750
4751
4752 static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = {
4753   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4754   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4755   { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern },
4756   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4757   { NULL, 0, 0, 0, NULL }
4758 };
4759
4760 int
4761 dissect_gsm_map_ss_USSD_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4762   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4763                                    gsm_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg);
4764
4765   return offset;
4766 }
4767
4768
4769 static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = {
4770   { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
4771   { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String },
4772   { NULL, 0, 0, 0, NULL }
4773 };
4774
4775 int
4776 dissect_gsm_map_ss_USSD_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4777   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4778                                    gsm_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res);
4779
4780   return offset;
4781 }
4782
4783
4784
4785 static int
4786 dissect_gsm_map_ss_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4787   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
4788                                             actx, tree, tvb, offset, hf_index,
4789                                             NULL);
4790
4791   return offset;
4792 }
4793
4794
4795 static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = {
4796   { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
4797 };
4798
4799 static int
4800 dissect_gsm_map_ss_SS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4801   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4802                                       gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List);
4803
4804   return offset;
4805 }
4806
4807
4808 static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = {
4809   { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
4810 };
4811
4812 static int
4813 dissect_gsm_map_ss_SS_EventSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4814   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4815                                       gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification);
4816
4817   return offset;
4818 }
4819
4820
4821 static const value_string gsm_map_ss_CCBS_RequestState_vals[] = {
4822   {   0, "request" },
4823   {   1, "recall" },
4824   {   2, "active" },
4825   {   3, "completed" },
4826   {   4, "suspended" },
4827   {   5, "frozen" },
4828   {   6, "deleted" },
4829   { 0, NULL }
4830 };
4831
4832
4833 static int
4834 dissect_gsm_map_ss_CCBS_RequestState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4835   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4836                                   NULL);
4837
4838   return offset;
4839 }
4840
4841
4842 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = {
4843   { &hf_gsm_map_ss_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
4844   { &hf_gsm_map_ss_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4845   { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4846   { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification },
4847   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4848   { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4849   { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState },
4850   { NULL, 0, 0, 0, NULL }
4851 };
4852
4853 static int
4854 dissect_gsm_map_ss_SS_InvocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4855   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4856                                    gsm_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg);
4857
4858   return offset;
4859 }
4860
4861
4862 static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = {
4863   { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
4864   { NULL, 0, 0, 0, NULL }
4865 };
4866
4867 static int
4868 dissect_gsm_map_ss_SS_InvocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4869   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4870                                    gsm_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes);
4871
4872   return offset;
4873 }
4874
4875
4876 static const asn_namedbit gsm_map_ss_ServiceIndicator_bits[] = {
4877   {  0, &hf_gsm_map_ss_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
4878   {  1, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
4879   { 0, NULL, 0, 0, NULL, NULL }
4880 };
4881
4882 static int
4883 dissect_gsm_map_ss_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4884   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
4885                                     gsm_map_ss_ServiceIndicator_bits, hf_index, ett_gsm_map_ss_ServiceIndicator,
4886                                     NULL);
4887
4888   return offset;
4889 }
4890
4891
4892 static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = {
4893   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4894   { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4895   { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator },
4896   { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4897   { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
4898   { NULL, 0, 0, 0, NULL }
4899 };
4900
4901 static int
4902 dissect_gsm_map_ss_CCBS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4903   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4904                                    gsm_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data);
4905
4906   return offset;
4907 }
4908
4909
4910 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = {
4911   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4912   { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data },
4913   { NULL, 0, 0, 0, NULL }
4914 };
4915
4916 static int
4917 dissect_gsm_map_ss_RegisterCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4918   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4919                                    gsm_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg);
4920
4921   return offset;
4922 }
4923
4924
4925 static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = {
4926   { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
4927   { NULL, 0, 0, 0, NULL }
4928 };
4929
4930 int
4931 dissect_gsm_map_ss_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4932   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4933                                    gsm_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes);
4934
4935   return offset;
4936 }
4937
4938
4939 static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = {
4940   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4941   { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index },
4942   { NULL, 0, 0, 0, NULL }
4943 };
4944
4945 int
4946 dissect_gsm_map_ss_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4947   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4948                                    gsm_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg);
4949
4950   return offset;
4951 }
4952
4953
4954 static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = {
4955   { &hf_gsm_map_ss_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
4956   { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
4957   { NULL, 0, 0, 0, NULL }
4958 };
4959
4960 int
4961 dissect_gsm_map_ss_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4962   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4963                                    gsm_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes);
4964
4965   return offset;
4966 }
4967
4968
4969 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
4970
4971
4972 static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = {
4973   {   0, "plmnRoamingNotAllowed" },
4974   {   3, "operatorDeterminedBarring" },
4975   { 0, NULL }
4976 };
4977
4978
4979 static int
4980 dissect_gsm_map_er_RoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4981   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4982                                   NULL);
4983
4984   return offset;
4985 }
4986
4987
4988 static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = {
4989   {   0, "supportedRAT-TypesNotAllowed" },
4990   { 0, NULL }
4991 };
4992
4993
4994 static int
4995 dissect_gsm_map_er_AdditionalRoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4996   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4997                                   NULL);
4998
4999   return offset;
5000 }
5001
5002
5003 static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = {
5004   { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause },
5005   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5006   { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause },
5007   { NULL, 0, 0, 0, NULL }
5008 };
5009
5010 static int
5011 dissect_gsm_map_er_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5012   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5013                                    gsm_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam);
5014
5015   return offset;
5016 }
5017
5018
5019 static const value_string gsm_map_er_CallBarringCause_vals[] = {
5020   {   0, "barringServiceActive" },
5021   {   1, "operatorBarring" },
5022   { 0, NULL }
5023 };
5024
5025
5026 static int
5027 dissect_gsm_map_er_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5028   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5029                                   NULL);
5030
5031   return offset;
5032 }
5033
5034
5035
5036 static int
5037 dissect_gsm_map_er_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5038   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5039
5040   return offset;
5041 }
5042
5043
5044 static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = {
5045   { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
5046   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5047   { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5048   { &hf_gsm_map_er_anonymousCallRejection, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5049   { NULL, 0, 0, 0, NULL }
5050 };
5051
5052 static int
5053 dissect_gsm_map_er_ExtensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5054   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5055                                    gsm_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam);
5056
5057   return offset;
5058 }
5059
5060
5061 static const value_string gsm_map_er_CallBarredParam_vals[] = {
5062   {   0, "callBarringCause" },
5063   {   1, "extensibleCallBarredParam" },
5064   { 0, NULL }
5065 };
5066
5067 static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = {
5068   {   0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause },
5069   {   1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam },
5070   { 0, NULL, 0, 0, 0, NULL }
5071 };
5072
5073 static int
5074 dissect_gsm_map_er_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5075   offset = dissect_ber_choice(actx, tree, tvb, offset,
5076                                  gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam,
5077                                  NULL);
5078
5079   return offset;
5080 }
5081
5082
5083 static const value_string gsm_map_er_CUG_RejectCause_vals[] = {
5084   {   0, "incomingCallsBarredWithinCUG" },
5085   {   1, "subscriberNotMemberOfCUG" },
5086   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
5087   {   7, "calledPartySS-InteractionViolation" },
5088   { 0, NULL }
5089 };
5090
5091
5092 static int
5093 dissect_gsm_map_er_CUG_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5094   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5095                                   NULL);
5096
5097   return offset;
5098 }
5099
5100
5101 static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = {
5102   { &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 },
5103   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5104   { NULL, 0, 0, 0, NULL }
5105 };
5106
5107 static int
5108 dissect_gsm_map_er_CUG_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5109   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5110                                    gsm_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam);
5111
5112   return offset;
5113 }
5114
5115
5116 static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = {
5117   { &hf_gsm_map_er_ss_Code  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
5118   { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
5119   { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
5120   { NULL, 0, 0, 0, NULL }
5121 };
5122
5123 static int
5124 dissect_gsm_map_er_SS_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5125   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5126                                    gsm_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause);
5127
5128   return offset;
5129 }
5130
5131
5132 static const value_string gsm_map_er_PW_RegistrationFailureCause_vals[] = {
5133   {   0, "undetermined" },
5134   {   1, "invalidFormat" },
5135   {   2, "newPasswordsMismatch" },
5136   { 0, NULL }
5137 };
5138
5139
5140 static int
5141 dissect_gsm_map_er_PW_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5142   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5143                                   NULL);
5144
5145   return offset;
5146 }
5147
5148
5149 static const value_string gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals[] = {
5150   {   0, "memoryCapacityExceeded" },
5151   {   1, "equipmentProtocolError" },
5152   {   2, "equipmentNotSM-Equipped" },
5153   {   3, "unknownServiceCentre" },
5154   {   4, "sc-Congestion" },
5155   {   5, "invalidSME-Address" },
5156   {   6, "subscriberNotSC-Subscriber" },
5157   { 0, NULL }
5158 };
5159
5160
5161 static int
5162 dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5163   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5164                                   NULL);
5165
5166   return offset;
5167 }
5168
5169
5170 static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = {
5171   { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause },
5172   { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
5173   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5174   { NULL, 0, 0, 0, NULL }
5175 };
5176
5177 static int
5178 dissect_gsm_map_er_SM_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5179 #line 337 "../../asn1/gsm_map/gsm_map.cnf"
5180         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
5181   guint8 oct;
5182   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5183                                    gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause);
5184
5185
5186   if (!actx->value_ptr)
5187     return offset;
5188   /* Detailed diagnostic information contains either a SMS-SUBMIT-REPORT or a SMS-DELIVERY-REPORT */
5189   oct = tvb_get_guint8((tvbuff_t*)actx->value_ptr, 0);
5190   actx->pinfo->p2p_dir = ((oct & 0x03) == 0) ? P2P_DIR_RECV : P2P_DIR_SENT; 
5191   dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
5192
5193
5194
5195   return offset;
5196 }
5197
5198
5199
5200 static int
5201 dissect_gsm_map_er_AbsentSubscriberDiagnosticSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5202   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5203                                                 NULL);
5204
5205   return offset;
5206 }
5207
5208
5209 static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = {
5210   { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5211   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5212   { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
5213   { &hf_gsm_map_er_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5214   { NULL, 0, 0, 0, NULL }
5215 };
5216
5217 static int
5218 dissect_gsm_map_er_AbsentSubscriberSM_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5220                                    gsm_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param);
5221
5222   return offset;
5223 }
5224
5225
5226 static const value_string gsm_map_er_FailureCauseParam_vals[] = {
5227   {   0, "limitReachedOnNumberOfConcurrentLocationRequests" },
5228   { 0, NULL }
5229 };
5230
5231
5232 static int
5233 dissect_gsm_map_er_FailureCauseParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5234   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5235                                   NULL);
5236
5237   return offset;
5238 }
5239
5240
5241 static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = {
5242   { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
5243   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5244   { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource },
5245   { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam },
5246   { NULL, 0, 0, 0, NULL }
5247 };
5248
5249 static int
5250 dissect_gsm_map_er_ExtensibleSystemFailureParam(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
5252                                    gsm_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam);
5253
5254   return offset;
5255 }
5256
5257
5258 static const value_string gsm_map_er_SystemFailureParam_vals[] = {
5259   {   0, "networkResource" },
5260   {   1, "extensibleSystemFailureParam" },
5261   { 0, NULL }
5262 };
5263
5264 static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = {
5265   {   0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource },
5266   {   1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam },
5267   { 0, NULL, 0, 0, 0, NULL }
5268 };
5269
5270 static int
5271 dissect_gsm_map_er_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5272   offset = dissect_ber_choice(actx, tree, tvb, offset,
5273                                  gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam,
5274                                  NULL);
5275
5276   return offset;
5277 }
5278
5279
5280 static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = {
5281   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5282   { NULL, 0, 0, 0, NULL }
5283 };
5284
5285 static int
5286 dissect_gsm_map_er_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5287   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5288                                    gsm_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam);
5289
5290   return offset;
5291 }
5292
5293
5294 static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = {
5295   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5296   { &hf_gsm_map_er_unexpectedSubscriber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5297   { NULL, 0, 0, 0, NULL }
5298 };
5299
5300 static int
5301 dissect_gsm_map_er_UnexpectedDataParam(gboolean 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_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam);
5304
5305   return offset;
5306 }
5307
5308
5309 static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = {
5310   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5311   { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5312   { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5313   { NULL, 0, 0, 0, NULL }
5314 };
5315
5316 static int
5317 dissect_gsm_map_er_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5318   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5319                                    gsm_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam);
5320
5321   return offset;
5322 }
5323
5324
5325 static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = {
5326   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5327   { NULL, 0, 0, 0, NULL }
5328 };
5329
5330 static int
5331 dissect_gsm_map_er_OR_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5332   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5333                                    gsm_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam);
5334
5335   return offset;
5336 }
5337
5338
5339 static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = {
5340   {   0, "imsiUnknown" },
5341   {   1, "gprs-eps-SubscriptionUnknown" },
5342   {   2, "npdbMismatch" },
5343   { 0, NULL }
5344 };
5345
5346
5347 static int
5348 dissect_gsm_map_er_UnknownSubscriberDiagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5349   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5350                                   NULL);
5351
5352   return offset;
5353 }
5354
5355
5356 static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = {
5357   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5358   { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic },
5359   { NULL, 0, 0, 0, NULL }
5360 };
5361
5362 static int
5363 dissect_gsm_map_er_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5364   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5365                                    gsm_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam);
5366
5367   return offset;
5368 }
5369
5370
5371 static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = {
5372   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5373   { NULL, 0, 0, 0, NULL }
5374 };
5375
5376 static int
5377 dissect_gsm_map_er_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5378   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5379                                    gsm_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam);
5380
5381   return offset;
5382 }
5383
5384
5385 static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = {
5386   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5387   { NULL, 0, 0, 0, NULL }
5388 };
5389
5390 static int
5391 dissect_gsm_map_er_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5392   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5393                                    gsm_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam);
5394
5395   return offset;
5396 }
5397
5398
5399 static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = {
5400   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5401   { NULL, 0, 0, 0, NULL }
5402 };
5403
5404 static int
5405 dissect_gsm_map_er_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5406   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5407                                    gsm_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam);
5408
5409   return offset;
5410 }
5411
5412
5413 static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = {
5414   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5415   { NULL, 0, 0, 0, NULL }
5416 };
5417
5418 static int
5419 dissect_gsm_map_er_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5420   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5421                                    gsm_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam);
5422
5423   return offset;
5424 }
5425
5426
5427 static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = {
5428   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5429   { NULL, 0, 0, 0, NULL }
5430 };
5431
5432 static int
5433 dissect_gsm_map_er_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5434   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5435                                    gsm_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam);
5436
5437   return offset;
5438 }
5439
5440
5441 static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = {
5442   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5443   { NULL, 0, 0, 0, NULL }
5444 };
5445
5446 static int
5447 dissect_gsm_map_er_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5448   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5449                                    gsm_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam);
5450
5451   return offset;
5452 }
5453
5454
5455 static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = {
5456   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5457   { NULL, 0, 0, 0, NULL }
5458 };
5459
5460 static int
5461 dissect_gsm_map_er_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5462   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5463                                    gsm_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam);
5464
5465   return offset;
5466 }
5467
5468
5469 static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = {
5470   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5471   { NULL, 0, 0, 0, NULL }
5472 };
5473
5474 static int
5475 dissect_gsm_map_er_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5476   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5477                                    gsm_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam);
5478
5479   return offset;
5480 }
5481
5482
5483 static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = {
5484   {   0, "imsiDetach" },
5485   {   1, "restrictedArea" },
5486   {   2, "noPageResponse" },
5487   {   3, "purgedMS" },
5488   {   4, "mtRoamingRetry" },
5489   {   5, "busySubscriber" },
5490   { 0, NULL }
5491 };
5492
5493
5494 static int
5495 dissect_gsm_map_er_AbsentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5496   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5497                                   NULL);
5498
5499   return offset;
5500 }
5501
5502
5503 static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = {
5504   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5505   { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason },
5506   { NULL, 0, 0, 0, NULL }
5507 };
5508
5509 static int
5510 dissect_gsm_map_er_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5511   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5512                                    gsm_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam);
5513
5514   return offset;
5515 }
5516
5517
5518 static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = {
5519   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5520   { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5521   { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL },
5522   { NULL, 0, 0, 0, NULL }
5523 };
5524
5525 static int
5526 dissect_gsm_map_er_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5527   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5528                                    gsm_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam);
5529
5530   return offset;
5531 }
5532
5533
5534 static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = {
5535   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5536   { NULL, 0, 0, 0, NULL }
5537 };
5538
5539 static int
5540 dissect_gsm_map_er_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5541   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5542                                    gsm_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam);
5543
5544   return offset;
5545 }
5546
5547
5548 static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = {
5549   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5550   { NULL, 0, 0, 0, NULL }
5551 };
5552
5553 static int
5554 dissect_gsm_map_er_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5555   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5556                                    gsm_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam);
5557
5558   return offset;
5559 }
5560
5561
5562 static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = {
5563   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5564   { NULL, 0, 0, 0, NULL }
5565 };
5566
5567 static int
5568 dissect_gsm_map_er_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5569   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5570                                    gsm_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam);
5571
5572   return offset;
5573 }
5574
5575
5576 static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = {
5577   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5578   { NULL, 0, 0, 0, NULL }
5579 };
5580
5581 static int
5582 dissect_gsm_map_er_ATI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5583   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5584                                    gsm_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam);
5585
5586   return offset;
5587 }
5588
5589
5590 static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = {
5591   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5592   { NULL, 0, 0, 0, NULL }
5593 };
5594
5595 static int
5596 dissect_gsm_map_er_ATSI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5597   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5598                                    gsm_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam);
5599
5600   return offset;
5601 }
5602
5603
5604 static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = {
5605   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5606   { NULL, 0, 0, 0, NULL }
5607 };
5608
5609 static int
5610 dissect_gsm_map_er_ATM_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5611   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5612                                    gsm_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam);
5613
5614   return offset;
5615 }
5616
5617
5618 static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = {
5619   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5620   { NULL, 0, 0, 0, NULL }
5621 };
5622
5623 static int
5624 dissect_gsm_map_er_IllegalSS_OperationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5625   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5626                                    gsm_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam);
5627
5628   return offset;
5629 }
5630
5631
5632 static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = {
5633   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5634   { NULL, 0, 0, 0, NULL }
5635 };
5636
5637 static int
5638 dissect_gsm_map_er_SS_NotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5639   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5640                                    gsm_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam);
5641
5642   return offset;
5643 }
5644
5645
5646 static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = {
5647   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5648   { NULL, 0, 0, 0, NULL }
5649 };
5650
5651 static int
5652 dissect_gsm_map_er_SS_SubscriptionViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5653   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5654                                    gsm_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam);
5655
5656   return offset;
5657 }
5658
5659
5660 static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = {
5661   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5662   { NULL, 0, 0, 0, NULL }
5663 };
5664
5665 static int
5666 dissect_gsm_map_er_InformationNotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5667   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5668                                    gsm_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam);
5669
5670   return offset;
5671 }
5672
5673
5674 static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = {
5675   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5676   { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL },
5677   { NULL, 0, 0, 0, NULL }
5678 };
5679
5680 static int
5681 dissect_gsm_map_er_SubBusyForMT_SMS_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5682   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5683                                    gsm_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param);
5684
5685   return offset;
5686 }
5687
5688
5689 static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = {
5690   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5691   { NULL, 0, 0, 0, NULL }
5692 };
5693
5694 static int
5695 dissect_gsm_map_er_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5696   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5697                                    gsm_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam);
5698
5699   return offset;
5700 }
5701
5702
5703 static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = {
5704   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5705   { NULL, 0, 0, 0, NULL }
5706 };
5707
5708 static int
5709 dissect_gsm_map_er_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5710   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5711                                    gsm_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam);
5712
5713   return offset;
5714 }
5715
5716
5717 static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = {
5718   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5719   { NULL, 0, 0, 0, NULL }
5720 };
5721
5722 static int
5723 dissect_gsm_map_er_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5724   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5725                                    gsm_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam);
5726
5727   return offset;
5728 }
5729
5730
5731 static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = {
5732   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5733   { NULL, 0, 0, 0, NULL }
5734 };
5735
5736 static int
5737 dissect_gsm_map_er_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5738   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5739                                    gsm_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam);
5740
5741   return offset;
5742 }
5743
5744
5745 static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = {
5746   { NULL, 0, 0, 0, NULL }
5747 };
5748
5749 static int
5750 dissect_gsm_map_er_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5751   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5752                                    gsm_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam);
5753
5754   return offset;
5755 }
5756
5757
5758 static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = {
5759   { NULL, 0, 0, 0, NULL }
5760 };
5761
5762 static int
5763 dissect_gsm_map_er_LongTermDenialParam(gboolean 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_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam);
5766
5767   return offset;
5768 }
5769
5770
5771 static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = {
5772   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5773   { NULL, 0, 0, 0, NULL }
5774 };
5775
5776 static int
5777 dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5778   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5779                                    gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param);
5780
5781   return offset;
5782 }
5783
5784
5785 const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = {
5786   {   0, "noAdditionalInformation" },
5787   {   1, "clientNotInMSPrivacyExceptionList" },
5788   {   2, "callToClientNotSetup" },
5789   {   3, "privacyOverrideNotApplicable" },
5790   {   4, "disallowedByLocalRegulatoryRequirements" },
5791   {   5, "unauthorizedPrivacyClass" },
5792   {   6, "unauthorizedCallSessionUnrelatedExternalClient" },
5793   {   7, "unauthorizedCallSessionRelatedExternalClient" },
5794   { 0, NULL }
5795 };
5796
5797
5798 int
5799 dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5800   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5801                                   NULL);
5802
5803   return offset;
5804 }
5805
5806
5807 static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = {
5808   { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic },
5809   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5810   { NULL, 0, 0, 0, NULL }
5811 };
5812
5813 static int
5814 dissect_gsm_map_er_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5815   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5816                                    gsm_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param);
5817
5818   return offset;
5819 }
5820
5821
5822 const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = {
5823   {   0, "congestion" },
5824   {   1, "insufficientResources" },
5825   {   2, "insufficientMeasurementData" },
5826   {   3, "inconsistentMeasurementData" },
5827   {   4, "locationProcedureNotCompleted" },
5828   {   5, "locationProcedureNotSupportedByTargetMS" },
5829   {   6, "qoSNotAttainable" },
5830   {   7, "positionMethodNotAvailableInNetwork" },
5831   {   8, "positionMethodNotAvailableInLocationArea" },
5832   { 0, NULL }
5833 };
5834
5835
5836 int
5837 dissect_gsm_map_er_PositionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5838   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5839                                   NULL);
5840
5841   return offset;
5842 }
5843
5844
5845 static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = {
5846   { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic },
5847   { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5848   { NULL, 0, 0, 0, NULL }
5849 };
5850
5851 static int
5852 dissect_gsm_map_er_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5853   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5854                                    gsm_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param);
5855
5856   return offset;
5857 }
5858
5859
5860 static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = {
5861   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5862   { NULL, 0, 0, 0, NULL }
5863 };
5864
5865 static int
5866 dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
5868                                    gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param);
5869
5870   return offset;
5871 }
5872
5873
5874 static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = {
5875   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5876   { NULL, 0, 0, 0, NULL }
5877 };
5878
5879 static int
5880 dissect_gsm_map_er_MM_EventNotSupported_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5881   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5882                                    gsm_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param);
5883
5884   return offset;
5885 }
5886
5887
5888 static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = {
5889   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5890   { NULL, 0, 0, 0, NULL }
5891 };
5892
5893 static int
5894 dissect_gsm_map_er_TargetCellOutsideGCA_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5895   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5896                                    gsm_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param);
5897
5898   return offset;
5899 }
5900
5901
5902 static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = {
5903   { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
5904   { NULL, 0, 0, 0, NULL }
5905 };
5906
5907 static int
5908 dissect_gsm_map_er_OngoingGroupCallParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5909   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5910                                    gsm_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam);
5911
5912   return offset;
5913 }
5914
5915
5916 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
5917
5918
5919
5920 static int
5921 dissect_gsm_map_sm_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5922   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
5923
5924   return offset;
5925 }
5926
5927
5928
5929 static int
5930 dissect_gsm_map_sm_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5931   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5932
5933   return offset;
5934 }
5935
5936
5937
5938 static int
5939 dissect_gsm_map_sm_SM_RP_MTI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5940   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5941                                                 NULL);
5942
5943   return offset;
5944 }
5945
5946
5947
5948 static int
5949 dissect_gsm_map_sm_SM_RP_SMEA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5950   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
5951                                        NULL);
5952
5953   return offset;
5954 }
5955
5956
5957 static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = {
5958   {   0, "onlyIMSI-requested" },
5959   {   1, "onlyMCC-MNC-requested" },
5960   { 0, NULL }
5961 };
5962
5963
5964 static int
5965 dissect_gsm_map_sm_SM_DeliveryNotIntended(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5966   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5967                                   NULL);
5968
5969   return offset;
5970 }
5971
5972
5973 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = {
5974   { &hf_gsm_map_sm_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5975   { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN },
5976   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
5977   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
5978   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5979   { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI },
5980   { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA },
5981   { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended },
5982   { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
5983   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5984   { NULL, 0, 0, 0, NULL }
5985 };
5986
5987 static int
5988 dissect_gsm_map_sm_RoutingInfoForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5989   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5990                                    gsm_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg);
5991
5992   return offset;
5993 }
5994
5995
5996 static const value_string gsm_map_sm_Additional_Number_vals[] = {
5997   {   0, "msc-Number" },
5998   {   1, "sgsn-Number" },
5999   { 0, NULL }
6000 };
6001
6002 static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = {
6003   {   0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6004   {   1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6005   { 0, NULL, 0, 0, 0, NULL }
6006 };
6007
6008 static int
6009 dissect_gsm_map_sm_Additional_Number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6010   offset = dissect_ber_choice(actx, tree, tvb, offset,
6011                                  gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number,
6012                                  NULL);
6013
6014   return offset;
6015 }
6016
6017
6018 static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = {
6019   { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
6020   { &hf_gsm_map_sm_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
6021   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6022   { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6023   { &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 },
6024   { &hf_gsm_map_sm_networkNodeDiameterAddress, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6025   { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6026   { &hf_gsm_map_sm_thirdNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number },
6027   { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
6028   { &hf_gsm_map_sm_imsNodeIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6029   { NULL, 0, 0, 0, NULL }
6030 };
6031
6032 static int
6033 dissect_gsm_map_sm_LocationInfoWithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6034   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6035                                    gsm_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI);
6036
6037   return offset;
6038 }
6039
6040
6041
6042 static int
6043 dissect_gsm_map_sm_SM_DeliveryTimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6044   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6045                                                 NULL);
6046
6047   return offset;
6048 }
6049
6050
6051 static const ber_sequence_t gsm_map_sm_IP_SM_GW_Guidance_sequence[] = {
6052   { &hf_gsm_map_sm_minimumDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6053   { &hf_gsm_map_sm_recommendedDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6054   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6055   { NULL, 0, 0, 0, NULL }
6056 };
6057
6058 static int
6059 dissect_gsm_map_sm_IP_SM_GW_Guidance(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6060   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6061                                    gsm_map_sm_IP_SM_GW_Guidance_sequence, hf_index, ett_gsm_map_sm_IP_SM_GW_Guidance);
6062
6063   return offset;
6064 }
6065
6066
6067 static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = {
6068   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6069   { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI },
6070   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6071   { &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 },
6072   { NULL, 0, 0, 0, NULL }
6073 };
6074
6075 static int
6076 dissect_gsm_map_sm_RoutingInfoForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6077   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6078                                    gsm_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res);
6079
6080   return offset;
6081 }
6082
6083
6084
6085 static int
6086 dissect_gsm_map_sm_T_imsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6087 #line 306 "../../asn1/gsm_map/gsm_map.cnf"
6088         actx->pinfo->p2p_dir = P2P_DIR_SENT;
6089   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
6090
6091
6092
6093
6094   return offset;
6095 }
6096
6097
6098
6099 static int
6100 dissect_gsm_map_sm_T_lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6101 #line 310 "../../asn1/gsm_map/gsm_map.cnf"
6102         actx->pinfo->p2p_dir = P2P_DIR_SENT;
6103   offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
6104
6105
6106
6107
6108   return offset;
6109 }
6110
6111
6112
6113 static int
6114 dissect_gsm_map_sm_T_serviceCentreAddressDA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6115 #line 326 "../../asn1/gsm_map/gsm_map.cnf"
6116         actx->pinfo->p2p_dir = P2P_DIR_RECV;
6117   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6118
6119
6120
6121
6122   return offset;
6123 }
6124
6125
6126 const value_string gsm_map_sm_SM_RP_DA_vals[] = {
6127   {   0, "imsi" },
6128   {   1, "lmsi" },
6129   {   4, "serviceCentreAddressDA" },
6130   {   5, "noSM-RP-DA" },
6131   { 0, NULL }
6132 };
6133
6134 static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = {
6135   {   0, &hf_gsm_map_sm_imsi_01  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_imsi },
6136   {   1, &hf_gsm_map_sm_lmsi_01  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_lmsi },
6137   {   4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressDA },
6138   {   5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6139   { 0, NULL, 0, 0, 0, NULL }
6140 };
6141
6142 int
6143 dissect_gsm_map_sm_SM_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6144   offset = dissect_ber_choice(actx, tree, tvb, offset,
6145                                  gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA,
6146                                  NULL);
6147
6148   return offset;
6149 }
6150
6151
6152
6153 static int
6154 dissect_gsm_map_sm_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6155 #line 318 "../../asn1/gsm_map/gsm_map.cnf"
6156 actx->pinfo->p2p_dir = P2P_DIR_RECV;
6157    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6158
6159
6160
6161
6162   return offset;
6163 }
6164
6165
6166
6167 static int
6168 dissect_gsm_map_sm_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6169 #line 294 "../../asn1/gsm_map/gsm_map.cnf"
6170         actx->pinfo->p2p_dir = P2P_DIR_SENT;
6171   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
6172
6173
6174
6175
6176   return offset;
6177 }
6178
6179
6180 const value_string gsm_map_sm_SM_RP_OA_vals[] = {
6181   {   2, "msisdn" },
6182   {   4, "serviceCentreAddressOA" },
6183   {   5, "noSM-RP-OA" },
6184   { 0, NULL }
6185 };
6186
6187 static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = {
6188   {   2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn },
6189   {   4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA },
6190   {   5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6191   { 0, NULL, 0, 0, 0, NULL }
6192 };
6193
6194 int
6195 dissect_gsm_map_sm_SM_RP_OA(gboolean 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_choice(actx, tree, tvb, offset,
6197                                  gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA,
6198                                  NULL);
6199
6200   return offset;
6201 }
6202
6203
6204 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = {
6205   { &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 },
6206   { &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 },
6207   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6208   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6209   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6210   { NULL, 0, 0, 0, NULL }
6211 };
6212
6213 static int
6214 dissect_gsm_map_sm_MO_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6215 #line 358 "../../asn1/gsm_map/gsm_map.cnf"
6216
6217         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6218   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6219                                    gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg);
6220
6221
6222         if (!actx->value_ptr)
6223                 return offset;
6224         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
6225
6226
6227
6228   return offset;
6229 }
6230
6231
6232 static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = {
6233   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6234   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6235   { NULL, 0, 0, 0, NULL }
6236 };
6237
6238 static int
6239 dissect_gsm_map_sm_MO_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6240 #line 367 "../../asn1/gsm_map/gsm_map.cnf"
6241
6242         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6243   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6244                                    gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res);
6245
6246
6247         if (!actx->value_ptr)
6248                 return offset;
6249         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
6250
6251
6252
6253   return offset;
6254 }
6255
6256
6257 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = {
6258   { &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 },
6259   { &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 },
6260   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6261   { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
6262   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6263   { &hf_gsm_map_sm_smDeliveryTimer, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue },
6264   { &hf_gsm_map_sm_smDeliveryStartTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
6265   { &hf_gsm_map_sm_smsOverIP_OnlyIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6266   { NULL, 0, 0, 0, NULL }
6267 };
6268
6269 static int
6270 dissect_gsm_map_sm_MT_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6271 #line 376 "../../asn1/gsm_map/gsm_map.cnf"
6272
6273         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6274   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6275                                    gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg);
6276
6277
6278         if (!actx->value_ptr)
6279                 return offset;
6280         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
6281
6282
6283
6284   return offset;
6285 }
6286
6287
6288 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = {
6289   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6290   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6291   { NULL, 0, 0, 0, NULL }
6292 };
6293
6294 static int
6295 dissect_gsm_map_sm_MT_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6296 #line 385 "../../asn1/gsm_map/gsm_map.cnf"
6297
6298         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6299   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6300                                    gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res);
6301
6302
6303         if (!actx->value_ptr)
6304                 return offset;
6305         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
6306
6307
6308
6309   return offset;
6310 }
6311
6312
6313 static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = {
6314   {   0, "memoryCapacityExceeded" },
6315   {   1, "absentSubscriber" },
6316   {   2, "successfulTransfer" },
6317   { 0, NULL }
6318 };
6319
6320
6321 static int
6322 dissect_gsm_map_sm_SM_DeliveryOutcome(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6324                                   NULL);
6325
6326   return offset;
6327 }
6328
6329
6330 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = {
6331   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6332   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
6333   { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
6334   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
6335   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6336   { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6337   { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6338   { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome },
6339   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
6340   { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6341   { &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 },
6342   { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
6343   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6344   { NULL, 0, 0, 0, NULL }
6345 };
6346
6347 static int
6348 dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6349   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6350                                    gsm_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg);
6351
6352   return offset;
6353 }
6354
6355
6356 static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = {
6357   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6358   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6359   { NULL, 0, 0, 0, NULL }
6360 };
6361
6362 static int
6363 dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6364   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6365                                    gsm_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes);
6366
6367   return offset;
6368 }
6369
6370
6371 static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = {
6372   { &hf_gsm_map_sm_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6373   { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString },
6374   { &hf_gsm_map_sm_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
6375   { NULL, 0, 0, 0, NULL }
6376 };
6377
6378 static int
6379 dissect_gsm_map_sm_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6380   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6381                                    gsm_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg);
6382
6383   return offset;
6384 }
6385
6386
6387 static const asn_namedbit gsm_map_sm_MW_Status_bits[] = {
6388   {  0, &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL },
6389   {  1, &hf_gsm_map_sm_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL },
6390   {  2, &hf_gsm_map_sm_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL },
6391   {  3, &hf_gsm_map_sm_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL },
6392   { 0, NULL, 0, 0, NULL, NULL }
6393 };
6394
6395 static int
6396 dissect_gsm_map_sm_MW_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6397   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6398                                     gsm_map_sm_MW_Status_bits, hf_index, ett_gsm_map_sm_MW_Status,
6399                                     NULL);
6400
6401   return offset;
6402 }
6403
6404
6405 static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = {
6406   { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6407   { &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 },
6408   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6409   { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
6410   { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
6411   { NULL, 0, 0, 0, NULL }
6412 };
6413
6414 static int
6415 dissect_gsm_map_sm_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6416   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6417                                    gsm_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg);
6418
6419   return offset;
6420 }
6421
6422
6423 static const value_string gsm_map_sm_AlertReason_vals[] = {
6424   {   0, "ms-Present" },
6425   {   1, "memoryAvailable" },
6426   { 0, NULL }
6427 };
6428
6429
6430 static int
6431 dissect_gsm_map_sm_AlertReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6432   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6433                                   NULL);
6434
6435   return offset;
6436 }
6437
6438
6439 static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = {
6440   { &hf_gsm_map_sm_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
6441   { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason },
6442   { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
6443   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6444   { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL },
6445   { NULL, 0, 0, 0, NULL }
6446 };
6447
6448 static int
6449 dissect_gsm_map_sm_ReadyForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6450   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6451                                    gsm_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg);
6452
6453   return offset;
6454 }
6455
6456
6457 static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = {
6458   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6459   { NULL, 0, 0, 0, NULL }
6460 };
6461
6462 static int
6463 dissect_gsm_map_sm_ReadyForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6464   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6465                                    gsm_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res);
6466
6467   return offset;
6468 }
6469
6470
6471 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = {
6472   { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
6473   { &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 },
6474   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
6475   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
6476   { NULL, 0, 0, 0, NULL }
6477 };
6478
6479 static int
6480 dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6481 #line 394 "../../asn1/gsm_map/gsm_map.cnf"
6482
6483         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6484   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6485                                    gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg);
6486
6487
6488         if (!actx->value_ptr)
6489                 return offset;
6490         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
6491
6492
6493
6494   return offset;
6495 }
6496
6497
6498 static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = {
6499   { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6500 };
6501
6502 static int
6503 dissect_gsm_map_sm_DispatcherList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6504   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6505                                       gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList);
6506
6507   return offset;
6508 }
6509
6510
6511 static const ber_sequence_t gsm_map_sm_AdditionalDispatcherList_sequence_of[1] = {
6512   { &hf_gsm_map_sm_AdditionalDispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
6513 };
6514
6515 static int
6516 dissect_gsm_map_sm_AdditionalDispatcherList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6517   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6518                                       gsm_map_sm_AdditionalDispatcherList_sequence_of, hf_index, ett_gsm_map_sm_AdditionalDispatcherList);
6519
6520   return offset;
6521 }
6522
6523
6524 static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = {
6525   { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
6526   { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList },
6527   { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL },
6528   { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
6529   { &hf_gsm_map_sm_additionalDispatcherList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_AdditionalDispatcherList },
6530   { NULL, 0, 0, 0, NULL }
6531 };
6532
6533 static int
6534 dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6535 #line 403 "../../asn1/gsm_map/gsm_map.cnf"
6536
6537         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
6538   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6539                                    gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res);
6540
6541
6542         if (!actx->value_ptr)
6543                 return offset;
6544         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
6545
6546
6547
6548   return offset;
6549 }
6550
6551
6552 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
6553
6554
6555
6556 static int
6557 dissect_gsm_map_om_TraceReference(gboolean 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6559                                        NULL);
6560
6561   return offset;
6562 }
6563
6564
6565
6566 static int
6567 dissect_gsm_map_om_TraceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6568   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6569                                                 NULL);
6570
6571   return offset;
6572 }
6573
6574
6575
6576 static int
6577 dissect_gsm_map_om_TraceReference2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6578   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
6579                                        NULL);
6580
6581   return offset;
6582 }
6583
6584
6585 static const value_string gsm_map_om_TraceDepth_vals[] = {
6586   {   0, "minimum" },
6587   {   1, "medium" },
6588   {   2, "maximum" },
6589   { 0, NULL }
6590 };
6591
6592
6593 static int
6594 dissect_gsm_map_om_TraceDepth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6595   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6596                                   NULL);
6597
6598   return offset;
6599 }
6600
6601
6602 static const value_string gsm_map_om_TraceDepthExtension_vals[] = {
6603   {   0, "minimumWithoutVendorSpecificExtension" },
6604   {   1, "mediumWithoutVendorSpecificExtension" },
6605   {   2, "maximumWithoutVendorSpecificExtension" },
6606   { 0, NULL }
6607 };
6608
6609
6610 static int
6611 dissect_gsm_map_om_TraceDepthExtension(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6613                                   NULL);
6614
6615   return offset;
6616 }
6617
6618
6619 static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = {
6620   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6621   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6622   { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6623   { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6624   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6625   { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6626   { &hf_gsm_map_om_mme_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6627   { &hf_gsm_map_om_sgw_TraceDepth, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6628   { &hf_gsm_map_om_pgw_TraceDepth, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6629   { &hf_gsm_map_om_eNB_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
6630   { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6631   { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6632   { &hf_gsm_map_om_sgsn_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6633   { &hf_gsm_map_om_ggsn_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6634   { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6635   { &hf_gsm_map_om_bmsc_TraceDepthExtension, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6636   { &hf_gsm_map_om_mme_TraceDepthExtension, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6637   { &hf_gsm_map_om_sgw_TraceDepthExtension, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6638   { &hf_gsm_map_om_pgw_TraceDepthExtension, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6639   { &hf_gsm_map_om_eNB_TraceDepthExtension, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
6640   { NULL, 0, 0, 0, NULL }
6641 };
6642
6643 static int
6644 dissect_gsm_map_om_TraceDepthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6645   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6646                                    gsm_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList);
6647
6648   return offset;
6649 }
6650
6651
6652 static const asn_namedbit gsm_map_om_TraceNE_TypeList_bits[] = {
6653   {  0, &hf_gsm_map_om_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL },
6654   {  1, &hf_gsm_map_om_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL },
6655   {  2, &hf_gsm_map_om_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL },
6656   {  3, &hf_gsm_map_om_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL },
6657   {  4, &hf_gsm_map_om_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL },
6658   {  5, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL },
6659   {  6, &hf_gsm_map_om_TraceNE_TypeList_mme, -1, -1, "mme", NULL },
6660   {  7, &hf_gsm_map_om_TraceNE_TypeList_sgw, -1, -1, "sgw", NULL },
6661   {  8, &hf_gsm_map_om_TraceNE_TypeList_pgw, -1, -1, "pgw", NULL },
6662   {  9, &hf_gsm_map_om_TraceNE_TypeList_eNB, -1, -1, "eNB", NULL },
6663   { 0, NULL, 0, 0, NULL, NULL }
6664 };
6665
6666 static int
6667 dissect_gsm_map_om_TraceNE_TypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6668   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6669                                     gsm_map_om_TraceNE_TypeList_bits, hf_index, ett_gsm_map_om_TraceNE_TypeList,
6670                                     NULL);
6671
6672   return offset;
6673 }
6674
6675
6676 static const asn_namedbit gsm_map_om_MSC_S_InterfaceList_bits[] = {
6677   {  0, &hf_gsm_map_om_MSC_S_InterfaceList_a, -1, -1, "a", NULL },
6678   {  1, &hf_gsm_map_om_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL },
6679   {  2, &hf_gsm_map_om_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL },
6680   {  3, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL },
6681   {  4, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL },
6682   {  5, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL },
6683   {  6, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL },
6684   {  7, &hf_gsm_map_om_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL },
6685   {  8, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL },
6686   {  9, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL },
6687   { 0, NULL, 0, 0, NULL, NULL }
6688 };
6689
6690 static int
6691 dissect_gsm_map_om_MSC_S_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6692   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6693                                     gsm_map_om_MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_om_MSC_S_InterfaceList,
6694                                     NULL);
6695
6696   return offset;
6697 }
6698
6699
6700 static const asn_namedbit gsm_map_om_MGW_InterfaceList_bits[] = {
6701   {  0, &hf_gsm_map_om_MGW_InterfaceList_mc, -1, -1, "mc", NULL },
6702   {  1, &hf_gsm_map_om_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL },
6703   {  2, &hf_gsm_map_om_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL },
6704   { 0, NULL, 0, 0, NULL, NULL }
6705 };
6706
6707 static int
6708 dissect_gsm_map_om_MGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6709   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6710                                     gsm_map_om_MGW_InterfaceList_bits, hf_index, ett_gsm_map_om_MGW_InterfaceList,
6711                                     NULL);
6712
6713   return offset;
6714 }
6715
6716
6717 static const asn_namedbit gsm_map_om_SGSN_InterfaceList_bits[] = {
6718   {  0, &hf_gsm_map_om_SGSN_InterfaceList_gb, -1, -1, "gb", NULL },
6719   {  1, &hf_gsm_map_om_SGSN_InterfaceList_iu, -1, -1, "iu", NULL },
6720   {  2, &hf_gsm_map_om_SGSN_InterfaceList_gn, -1, -1, "gn", NULL },
6721   {  3, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL },
6722   {  4, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL },
6723   {  5, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL },
6724   {  6, &hf_gsm_map_om_SGSN_InterfaceList_gs, -1, -1, "gs", NULL },
6725   {  7, &hf_gsm_map_om_SGSN_InterfaceList_ge, -1, -1, "ge", NULL },
6726   {  8, &hf_gsm_map_om_SGSN_InterfaceList_s3, -1, -1, "s3", NULL },
6727   {  9, &hf_gsm_map_om_SGSN_InterfaceList_s4, -1, -1, "s4", NULL },
6728   { 10, &hf_gsm_map_om_SGSN_InterfaceList_s6d, -1, -1, "s6d", NULL },
6729   { 0, NULL, 0, 0, NULL, NULL }
6730 };
6731
6732 static int
6733 dissect_gsm_map_om_SGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6734   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6735                                     gsm_map_om_SGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_SGSN_InterfaceList,
6736                                     NULL);
6737
6738   return offset;
6739 }
6740
6741
6742 static const asn_namedbit gsm_map_om_GGSN_InterfaceList_bits[] = {
6743   {  0, &hf_gsm_map_om_GGSN_InterfaceList_gn, -1, -1, "gn", NULL },
6744   {  1, &hf_gsm_map_om_GGSN_InterfaceList_gi, -1, -1, "gi", NULL },
6745   {  2, &hf_gsm_map_om_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL },
6746   { 0, NULL, 0, 0, NULL, NULL }
6747 };
6748
6749 static int
6750 dissect_gsm_map_om_GGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6751   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6752                                     gsm_map_om_GGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_GGSN_InterfaceList,
6753                                     NULL);
6754
6755   return offset;
6756 }
6757
6758
6759 static const asn_namedbit gsm_map_om_RNC_InterfaceList_bits[] = {
6760   {  0, &hf_gsm_map_om_RNC_InterfaceList_iu, -1, -1, "iu", NULL },
6761   {  1, &hf_gsm_map_om_RNC_InterfaceList_iur, -1, -1, "iur", NULL },
6762   {  2, &hf_gsm_map_om_RNC_InterfaceList_iub, -1, -1, "iub", NULL },
6763   {  3, &hf_gsm_map_om_RNC_InterfaceList_uu, -1, -1, "uu", NULL },
6764   { 0, NULL, 0, 0, NULL, NULL }
6765 };
6766
6767 static int
6768 dissect_gsm_map_om_RNC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6769   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6770                                     gsm_map_om_RNC_InterfaceList_bits, hf_index, ett_gsm_map_om_RNC_InterfaceList,
6771                                     NULL);
6772
6773   return offset;
6774 }
6775
6776
6777 static const asn_namedbit gsm_map_om_BMSC_InterfaceList_bits[] = {
6778   {  0, &hf_gsm_map_om_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL },
6779   { 0, NULL, 0, 0, NULL, NULL }
6780 };
6781
6782 static int
6783 dissect_gsm_map_om_BMSC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6784   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6785                                     gsm_map_om_BMSC_InterfaceList_bits, hf_index, ett_gsm_map_om_BMSC_InterfaceList,
6786                                     NULL);
6787
6788   return offset;
6789 }
6790
6791
6792 static const asn_namedbit gsm_map_om_MME_InterfaceList_bits[] = {
6793   {  0, &hf_gsm_map_om_MME_InterfaceList_s1_mme, -1, -1, "s1-mme", NULL },
6794   {  1, &hf_gsm_map_om_MME_InterfaceList_s3, -1, -1, "s3", NULL },
6795   {  2, &hf_gsm_map_om_MME_InterfaceList_s6a, -1, -1, "s6a", NULL },
6796   {  3, &hf_gsm_map_om_MME_InterfaceList_s10, -1, -1, "s10", NULL },
6797   {  4, &hf_gsm_map_om_MME_InterfaceList_s11, -1, -1, "s11", NULL },
6798   { 0, NULL, 0, 0, NULL, NULL }
6799 };
6800
6801 static int
6802 dissect_gsm_map_om_MME_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6803   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6804                                     gsm_map_om_MME_InterfaceList_bits, hf_index, ett_gsm_map_om_MME_InterfaceList,
6805                                     NULL);
6806
6807   return offset;
6808 }
6809
6810
6811 static const asn_namedbit gsm_map_om_SGW_InterfaceList_bits[] = {
6812   {  0, &hf_gsm_map_om_SGW_InterfaceList_s4, -1, -1, "s4", NULL },
6813   {  1, &hf_gsm_map_om_SGW_InterfaceList_s5, -1, -1, "s5", NULL },
6814   {  2, &hf_gsm_map_om_SGW_InterfaceList_s8b, -1, -1, "s8b", NULL },
6815   {  3, &hf_gsm_map_om_SGW_InterfaceList_s11, -1, -1, "s11", NULL },
6816   {  4, &hf_gsm_map_om_SGW_InterfaceList_gxc, -1, -1, "gxc", NULL },
6817   { 0, NULL, 0, 0, NULL, NULL }
6818 };
6819
6820 static int
6821 dissect_gsm_map_om_SGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6822   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6823                                     gsm_map_om_SGW_InterfaceList_bits, hf_index, ett_gsm_map_om_SGW_InterfaceList,
6824                                     NULL);
6825
6826   return offset;
6827 }
6828
6829
6830 static const asn_namedbit gsm_map_om_PGW_InterfaceList_bits[] = {
6831   {  0, &hf_gsm_map_om_PGW_InterfaceList_s2a, -1, -1, "s2a", NULL },
6832   {  1, &hf_gsm_map_om_PGW_InterfaceList_s2b, -1, -1, "s2b", NULL },
6833   {  2, &hf_gsm_map_om_PGW_InterfaceList_s2c, -1, -1, "s2c", NULL },
6834   {  3, &hf_gsm_map_om_PGW_InterfaceList_s5, -1, -1, "s5", NULL },
6835   {  4, &hf_gsm_map_om_PGW_InterfaceList_s6b, -1, -1, "s6b", NULL },
6836   {  5, &hf_gsm_map_om_PGW_InterfaceList_gx, -1, -1, "gx", NULL },
6837   {  6, &hf_gsm_map_om_PGW_InterfaceList_s8b, -1, -1, "s8b", NULL },
6838   {  7, &hf_gsm_map_om_PGW_InterfaceList_sgi, -1, -1, "sgi", NULL },
6839   { 0, NULL, 0, 0, NULL, NULL }
6840 };
6841
6842 static int
6843 dissect_gsm_map_om_PGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6844   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6845                                     gsm_map_om_PGW_InterfaceList_bits, hf_index, ett_gsm_map_om_PGW_InterfaceList,
6846                                     NULL);
6847
6848   return offset;
6849 }
6850
6851
6852 static const asn_namedbit gsm_map_om_ENB_InterfaceList_bits[] = {
6853   {  0, &hf_gsm_map_om_ENB_InterfaceList_s1_mme, -1, -1, "s1-mme", NULL },
6854   {  1, &hf_gsm_map_om_ENB_InterfaceList_x2, -1, -1, "x2", NULL },
6855   {  2, &hf_gsm_map_om_ENB_InterfaceList_uu, -1, -1, "uu", NULL },
6856   { 0, NULL, 0, 0, NULL, NULL }
6857 };
6858
6859 static int
6860 dissect_gsm_map_om_ENB_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6861   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6862                                     gsm_map_om_ENB_InterfaceList_bits, hf_index, ett_gsm_map_om_ENB_InterfaceList,
6863                                     NULL);
6864
6865   return offset;
6866 }
6867
6868
6869 static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = {
6870   { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
6871   { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
6872   { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList },
6873   { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList },
6874   { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
6875   { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList },
6876   { &hf_gsm_map_om_mme_List , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_InterfaceList },
6877   { &hf_gsm_map_om_sgw_List , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_InterfaceList },
6878   { &hf_gsm_map_om_pgw_List , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_InterfaceList },
6879   { &hf_gsm_map_om_eNB_List , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ENB_InterfaceList },
6880   { NULL, 0, 0, 0, NULL }
6881 };
6882
6883 static int
6884 dissect_gsm_map_om_TraceInterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6885   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6886                                    gsm_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList);
6887
6888   return offset;
6889 }
6890
6891
6892 static const asn_namedbit gsm_map_om_MSC_S_EventList_bits[] = {
6893   {  0, &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL },
6894   {  1, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6895   {  2, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL },
6896   {  3, &hf_gsm_map_om_MSC_S_EventList_handovers, -1, -1, "handovers", NULL },
6897   {  4, &hf_gsm_map_om_MSC_S_EventList_ss, -1, -1, "ss", NULL },
6898   { 0, NULL, 0, 0, NULL, NULL }
6899 };
6900
6901 static int
6902 dissect_gsm_map_om_MSC_S_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6903   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6904                                     gsm_map_om_MSC_S_EventList_bits, hf_index, ett_gsm_map_om_MSC_S_EventList,
6905                                     NULL);
6906
6907   return offset;
6908 }
6909
6910
6911 static const asn_namedbit gsm_map_om_MGW_EventList_bits[] = {
6912   {  0, &hf_gsm_map_om_MGW_EventList_context, -1, -1, "context", NULL },
6913   { 0, NULL, 0, 0, NULL, NULL }
6914 };
6915
6916 static int
6917 dissect_gsm_map_om_MGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6918   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6919                                     gsm_map_om_MGW_EventList_bits, hf_index, ett_gsm_map_om_MGW_EventList,
6920                                     NULL);
6921
6922   return offset;
6923 }
6924
6925
6926 static const asn_namedbit gsm_map_om_SGSN_EventList_bits[] = {
6927   {  0, &hf_gsm_map_om_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6928   {  1, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
6929   {  2, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL },
6930   {  3, &hf_gsm_map_om_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6931   { 0, NULL, 0, 0, NULL, NULL }
6932 };
6933
6934 static int
6935 dissect_gsm_map_om_SGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6936   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6937                                     gsm_map_om_SGSN_EventList_bits, hf_index, ett_gsm_map_om_SGSN_EventList,
6938                                     NULL);
6939
6940   return offset;
6941 }
6942
6943
6944 static const asn_namedbit gsm_map_om_GGSN_EventList_bits[] = {
6945   {  0, &hf_gsm_map_om_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
6946   {  1, &hf_gsm_map_om_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
6947   { 0, NULL, 0, 0, NULL, NULL }
6948 };
6949
6950 static int
6951 dissect_gsm_map_om_GGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6952   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6953                                     gsm_map_om_GGSN_EventList_bits, hf_index, ett_gsm_map_om_GGSN_EventList,
6954                                     NULL);
6955
6956   return offset;
6957 }
6958
6959
6960 static const asn_namedbit gsm_map_om_BMSC_EventList_bits[] = {
6961   {  0, &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL },
6962   { 0, NULL, 0, 0, NULL, NULL }
6963 };
6964
6965 static int
6966 dissect_gsm_map_om_BMSC_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6967   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6968                                     gsm_map_om_BMSC_EventList_bits, hf_index, ett_gsm_map_om_BMSC_EventList,
6969                                     NULL);
6970
6971   return offset;
6972 }
6973
6974
6975 static const asn_namedbit gsm_map_om_MME_EventList_bits[] = {
6976   {  0, &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest, -1, -1, "ue-initiatedPDNconectivityRequest", NULL },
6977   {  1, &hf_gsm_map_om_MME_EventList_serviceRequestts, -1, -1, "serviceRequestts", NULL },
6978   {  2, &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach, -1, -1, "initialAttachTrackingAreaUpdateDetach", NULL },
6979   {  3, &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection, -1, -1, "ue-initiatedPDNdisconnection", NULL },
6980   {  4, &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion, -1, -1, "bearerActivationModificationDeletion", NULL },
6981   {  5, &hf_gsm_map_om_MME_EventList_handover, -1, -1, "handover", NULL },
6982   { 0, NULL, 0, 0, NULL, NULL }
6983 };
6984
6985 static int
6986 dissect_gsm_map_om_MME_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6987   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
6988                                     gsm_map_om_MME_EventList_bits, hf_index, ett_gsm_map_om_MME_EventList,
6989                                     NULL);
6990
6991   return offset;
6992 }
6993
6994
6995 static const asn_namedbit gsm_map_om_SGW_EventList_bits[] = {
6996   {  0, &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation, -1, -1, "pdn-connectionCreation", NULL },
6997   {  1, &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination, -1, -1, "pdn-connectionTermination", NULL },
6998   {  2, &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion, -1, -1, "bearerActivationModificationDeletion", NULL },
6999   { 0, NULL, 0, 0, NULL, NULL }
7000 };
7001
7002 static int
7003 dissect_gsm_map_om_SGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7004   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7005                                     gsm_map_om_SGW_EventList_bits, hf_index, ett_gsm_map_om_SGW_EventList,
7006                                     NULL);
7007
7008   return offset;
7009 }
7010
7011
7012 static const asn_namedbit gsm_map_om_PGW_EventList_bits[] = {
7013   {  0, &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation, -1, -1, "pdn-connectionCreation", NULL },
7014   {  1, &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination, -1, -1, "pdn-connectionTermination", NULL },
7015   {  2, &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion, -1, -1, "bearerActivationModificationDeletion", NULL },
7016   { 0, NULL, 0, 0, NULL, NULL }
7017 };
7018
7019 static int
7020 dissect_gsm_map_om_PGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7021   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7022                                     gsm_map_om_PGW_EventList_bits, hf_index, ett_gsm_map_om_PGW_EventList,
7023                                     NULL);
7024
7025   return offset;
7026 }
7027
7028
7029 static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = {
7030   { &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 },
7031   { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
7032   { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList },
7033   { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList },
7034   { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList },
7035   { &hf_gsm_map_om_mme_List_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_EventList },
7036   { &hf_gsm_map_om_sgw_List_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_EventList },
7037   { &hf_gsm_map_om_pgw_List_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_EventList },
7038   { NULL, 0, 0, 0, NULL }
7039 };
7040
7041 static int
7042 dissect_gsm_map_om_TraceEventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7043   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7044                                    gsm_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList);
7045
7046   return offset;
7047 }
7048
7049
7050 static const value_string gsm_map_om_JobType_vals[] = {
7051   {   0, "immediate-MDT-only" },
7052   {   1, "logged-MDT-only" },
7053   {   2, "trace-only" },
7054   {   3, "immediate-MDT-and-trace" },
7055   { 0, NULL }
7056 };
7057
7058
7059 static int
7060 dissect_gsm_map_om_JobType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7061   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7062                                   NULL);
7063
7064   return offset;
7065 }
7066
7067
7068 static const ber_sequence_t gsm_map_om_CGI_List_sequence_of[1] = {
7069   { &hf_gsm_map_om_CGI_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
7070 };
7071
7072 static int
7073 dissect_gsm_map_om_CGI_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7074   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7075                                       gsm_map_om_CGI_List_sequence_of, hf_index, ett_gsm_map_om_CGI_List);
7076
7077   return offset;
7078 }
7079
7080
7081 static const ber_sequence_t gsm_map_om_E_UTRAN_CGI_List_sequence_of[1] = {
7082   { &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 },
7083 };
7084
7085 static int
7086 dissect_gsm_map_om_E_UTRAN_CGI_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7087   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7088                                       gsm_map_om_E_UTRAN_CGI_List_sequence_of, hf_index, ett_gsm_map_om_E_UTRAN_CGI_List);
7089
7090   return offset;
7091 }
7092
7093
7094 static const ber_sequence_t gsm_map_om_RoutingAreaId_List_sequence_of[1] = {
7095   { &hf_gsm_map_om_RoutingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_RAIdentity },
7096 };
7097
7098 static int
7099 dissect_gsm_map_om_RoutingAreaId_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7100   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7101                                       gsm_map_om_RoutingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_RoutingAreaId_List);
7102
7103   return offset;
7104 }
7105
7106
7107 static const ber_sequence_t gsm_map_om_LocationAreaId_List_sequence_of[1] = {
7108   { &hf_gsm_map_om_LocationAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LAIFixedLength },
7109 };
7110
7111 static int
7112 dissect_gsm_map_om_LocationAreaId_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7113   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7114                                       gsm_map_om_LocationAreaId_List_sequence_of, hf_index, ett_gsm_map_om_LocationAreaId_List);
7115
7116   return offset;
7117 }
7118
7119
7120 static const ber_sequence_t gsm_map_om_TrackingAreaId_List_sequence_of[1] = {
7121   { &hf_gsm_map_om_TrackingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TA_Id },
7122 };
7123
7124 static int
7125 dissect_gsm_map_om_TrackingAreaId_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7126   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7127                                       gsm_map_om_TrackingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_TrackingAreaId_List);
7128
7129   return offset;
7130 }
7131
7132
7133 static const ber_sequence_t gsm_map_om_AreaScope_sequence[] = {
7134   { &hf_gsm_map_om_cgi_List , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_CGI_List },
7135   { &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 },
7136   { &hf_gsm_map_om_routingAreaId_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RoutingAreaId_List },
7137   { &hf_gsm_map_om_locationAreaId_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LocationAreaId_List },
7138   { &hf_gsm_map_om_trackingAreaId_List, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TrackingAreaId_List },
7139   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7140   { NULL, 0, 0, 0, NULL }
7141 };
7142
7143 static int
7144 dissect_gsm_map_om_AreaScope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7145   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7146                                    gsm_map_om_AreaScope_sequence, hf_index, ett_gsm_map_om_AreaScope);
7147
7148   return offset;
7149 }
7150
7151
7152
7153 static int
7154 dissect_gsm_map_om_ListOfMeasurements(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7155   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7156                                        NULL);
7157
7158   return offset;
7159 }
7160
7161
7162
7163 static int
7164 dissect_gsm_map_om_ReportingTrigger(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7165   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7166                                        NULL);
7167
7168   return offset;
7169 }
7170
7171
7172 static const value_string gsm_map_om_ReportInterval_vals[] = {
7173   {   0, "umts250ms" },
7174   {   1, "umts500ms" },
7175   {   2, "umts1000ms" },
7176   {   3, "umts2000ms" },
7177   {   4, "umts3000ms" },
7178   {   5, "umts4000ms" },
7179   {   6, "umts6000ms" },
7180   {   7, "umts8000ms" },
7181   {   8, "umts12000ms" },
7182   {   9, "umts16000ms" },
7183   {  10, "umts20000ms" },
7184   {  11, "umts24000ms" },
7185   {  12, "umts28000ms" },
7186   {  13, "umts32000ms" },
7187   {  14, "umts64000ms" },
7188   {  15, "lte120ms" },
7189   {  16, "lte240ms" },
7190   {  17, "lte480ms" },
7191   {  18, "lte640ms" },
7192   {  19, "lte1024ms" },
7193   {  20, "lte2048ms" },
7194   {  21, "lte5120ms" },
7195   {  22, "lte10240ms" },
7196   {  23, "lte1min" },
7197   {  24, "lte6min" },
7198   {  25, "lte12min" },
7199   {  26, "lte30min" },
7200   {  27, "lte60min" },
7201   { 0, NULL }
7202 };
7203
7204
7205 static int
7206 dissect_gsm_map_om_ReportInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7207   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7208                                   NULL);
7209
7210   return offset;
7211 }
7212
7213
7214 static const value_string gsm_map_om_ReportAmount_vals[] = {
7215   {   0, "d1" },
7216   {   1, "d2" },
7217   {   2, "d4" },
7218   {   3, "d8" },
7219   {   4, "d16" },
7220   {   5, "d32" },
7221   {   6, "d64" },
7222   {   7, "infinity" },
7223   { 0, NULL }
7224 };
7225
7226
7227 static int
7228 dissect_gsm_map_om_ReportAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7229   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7230                                   NULL);
7231
7232   return offset;
7233 }
7234
7235
7236
7237 static int
7238 dissect_gsm_map_om_EventThresholdRSRP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7239   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7240                                                 NULL);
7241
7242   return offset;
7243 }
7244
7245
7246
7247 static int
7248 dissect_gsm_map_om_EventThresholdRSRQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7249   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7250                                                 NULL);
7251
7252   return offset;
7253 }
7254
7255
7256 static const value_string gsm_map_om_LoggingInterval_vals[] = {
7257   {   0, "d1dot28" },
7258   {   1, "d2dot56" },
7259   {   2, "d5dot12" },
7260   {   3, "d10dot24" },
7261   {   4, "d20dot48" },
7262   {   5, "d30dot72" },
7263   {   6, "d40dot96" },
7264   {   7, "d61dot44" },
7265   { 0, NULL }
7266 };
7267
7268
7269 static int
7270 dissect_gsm_map_om_LoggingInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7271   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7272                                   NULL);
7273
7274   return offset;
7275 }
7276
7277
7278 static const value_string gsm_map_om_LoggingDuration_vals[] = {
7279   {   0, "d600sec" },
7280   {   1, "d1200sec" },
7281   {   2, "d2400sec" },
7282   {   3, "d3600sec" },
7283   {   4, "d5400sec" },
7284   {   5, "d7200sec" },
7285   { 0, NULL }
7286 };
7287
7288
7289 static int
7290 dissect_gsm_map_om_LoggingDuration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7291   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7292                                   NULL);
7293
7294   return offset;
7295 }
7296
7297
7298 static const ber_sequence_t gsm_map_om_MDT_Configuration_sequence[] = {
7299   { &hf_gsm_map_om_jobType  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_JobType },
7300   { &hf_gsm_map_om_areaScope, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_AreaScope },
7301   { &hf_gsm_map_om_listOfMeasurements, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ListOfMeasurements },
7302   { &hf_gsm_map_om_reportingTrigger, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportingTrigger },
7303   { &hf_gsm_map_om_reportInterval, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ReportInterval },
7304   { &hf_gsm_map_om_reportAmount, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportAmount },
7305   { &hf_gsm_map_om_eventThresholdRSRP, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_EventThresholdRSRP },
7306   { &hf_gsm_map_om_eventThresholdRSRQ, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThresholdRSRQ },
7307   { &hf_gsm_map_om_loggingInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingInterval },
7308   { &hf_gsm_map_om_loggingDuration, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingDuration },
7309   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7310   { NULL, 0, 0, 0, NULL }
7311 };
7312
7313 static int
7314 dissect_gsm_map_om_MDT_Configuration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7315   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7316                                    gsm_map_om_MDT_Configuration_sequence, hf_index, ett_gsm_map_om_MDT_Configuration);
7317
7318   return offset;
7319 }
7320
7321
7322 static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = {
7323   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7324   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
7325   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
7326   { &hf_gsm_map_om_omc_Id   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
7327   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7328   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
7329   { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList },
7330   { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList },
7331   { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList },
7332   { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList },
7333   { &hf_gsm_map_om_traceCollectionEntity, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
7334   { &hf_gsm_map_om_mdt_Configuration, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MDT_Configuration },
7335   { NULL, 0, 0, 0, NULL }
7336 };
7337
7338 static int
7339 dissect_gsm_map_om_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7340   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7341                                    gsm_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg);
7342
7343   return offset;
7344 }
7345
7346
7347
7348 static int
7349 dissect_gsm_map_om_TraceRecordingSessionReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7350   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7351                                        NULL);
7352
7353   return offset;
7354 }
7355
7356
7357 static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = {
7358   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
7359   { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType },
7360   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
7361   { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference },
7362   { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7363   { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList },
7364   { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7365   { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList },
7366   { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList },
7367   { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth },
7368   { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList },
7369   { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList },
7370   { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7371   { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7372   { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension },
7373   { NULL, 0, 0, 0, NULL }
7374 };
7375
7376 static int
7377 dissect_gsm_map_om_TracePropagationList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7378   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7379                                    gsm_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList);
7380
7381   return offset;
7382 }
7383
7384
7385
7386 static int
7387 dissect_gsm_map_om_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7388   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7389
7390   return offset;
7391 }
7392
7393
7394 static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = {
7395   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7396   { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL },
7397   { NULL, 0, 0, 0, NULL }
7398 };
7399
7400 static int
7401 dissect_gsm_map_om_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7402   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7403                                    gsm_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes);
7404
7405   return offset;
7406 }
7407
7408
7409 static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = {
7410   { &hf_gsm_map_om_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
7411   { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference },
7412   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7413   { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 },
7414   { NULL, 0, 0, 0, NULL }
7415 };
7416
7417 static int
7418 dissect_gsm_map_om_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7419   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7420                                    gsm_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg);
7421
7422   return offset;
7423 }
7424
7425
7426 static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = {
7427   { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
7428   { NULL, 0, 0, 0, NULL }
7429 };
7430
7431 static int
7432 dissect_gsm_map_om_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7433   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7434                                    gsm_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes);
7435
7436   return offset;
7437 }
7438
7439
7440 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
7441
7442
7443 static const asn_namedbit gsm_map_ms_SupportedCamelPhases_bits[] = {
7444   {  0, &hf_gsm_map_ms_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
7445   {  1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
7446   {  2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
7447   {  3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
7448   { 0, NULL, 0, 0, NULL, NULL }
7449 };
7450
7451 int
7452 dissect_gsm_map_ms_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7453   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7454                                     gsm_map_ms_SupportedCamelPhases_bits, hf_index, ett_gsm_map_ms_SupportedCamelPhases,
7455                                     NULL);
7456
7457   return offset;
7458 }
7459
7460
7461
7462 static int
7463 dissect_gsm_map_ms_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7464   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7465
7466   return offset;
7467 }
7468
7469
7470 static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = {
7471   {   0, "basicISTSupported" },
7472   {   1, "istCommandSupported" },
7473   { 0, NULL }
7474 };
7475
7476
7477 static int
7478 dissect_gsm_map_ms_IST_SupportIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7479   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7480                                   NULL);
7481
7482   return offset;
7483 }
7484
7485
7486
7487 static int
7488 dissect_gsm_map_ms_AgeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7489   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7490                                        NULL);
7491
7492   return offset;
7493 }
7494
7495
7496 static const value_string gsm_map_ms_SuperChargerInfo_vals[] = {
7497   {   0, "sendSubscriberData" },
7498   {   1, "subscriberDataStored" },
7499   { 0, NULL }
7500 };
7501
7502 static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = {
7503   {   0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7504   {   1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
7505   { 0, NULL, 0, 0, 0, NULL }
7506 };
7507
7508 static int
7509 dissect_gsm_map_ms_SuperChargerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7510   offset = dissect_ber_choice(actx, tree, tvb, offset,
7511                                  gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo,
7512                                  NULL);
7513
7514   return offset;
7515 }
7516
7517
7518 static const asn_namedbit gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = {
7519   {  0, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
7520   {  1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
7521   {  2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL },
7522   {  3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL },
7523   {  4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, -1, -1, "lcsCapabilitySet5", NULL },
7524   { 0, NULL, 0, 0, NULL, NULL }
7525 };
7526
7527 static int
7528 dissect_gsm_map_ms_SupportedLCS_CapabilitySets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7529   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7530                                     gsm_map_ms_SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets,
7531                                     NULL);
7532
7533   return offset;
7534 }
7535
7536
7537 static const asn_namedbit gsm_map_ms_OfferedCamel4CSIs_bits[] = {
7538   {  0, &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
7539   {  1, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
7540   {  2, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL },
7541   {  3, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL },
7542   {  4, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
7543   {  5, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL },
7544   {  6, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL },
7545   { 0, NULL, 0, 0, NULL, NULL }
7546 };
7547
7548 static int
7549 dissect_gsm_map_ms_OfferedCamel4CSIs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7550   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7551                                     gsm_map_ms_OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs,
7552                                     NULL);
7553
7554   return offset;
7555 }
7556
7557
7558 static const asn_namedbit gsm_map_ms_SupportedRAT_Types_bits[] = {
7559   {  0, &hf_gsm_map_ms_SupportedRAT_Types_utran, -1, -1, "utran", NULL },
7560   {  1, &hf_gsm_map_ms_SupportedRAT_Types_geran, -1, -1, "geran", NULL },
7561   {  2, &hf_gsm_map_ms_SupportedRAT_Types_gan, -1, -1, "gan", NULL },
7562   {  3, &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution, -1, -1, "i-hspa-evolution", NULL },
7563   {  4, &hf_gsm_map_ms_SupportedRAT_Types_e_utran, -1, -1, "e-utran", NULL },
7564   { 0, NULL, 0, 0, NULL, NULL }
7565 };
7566
7567 static int
7568 dissect_gsm_map_ms_SupportedRAT_Types(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7569   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
7570                                     gsm_map_ms_SupportedRAT_Types_bits, hf_index, ett_gsm_map_ms_SupportedRAT_Types,
7571                                     NULL);
7572
7573   return offset;
7574 }
7575
7576
7577 static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = {
7578   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
7579   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7580   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7581   { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
7582   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
7583   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7584   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
7585   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
7586   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
7587   { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7588   { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7589   { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7590   { NULL, 0, 0, 0, NULL }
7591 };
7592
7593 static int
7594 dissect_gsm_map_ms_VLR_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7595   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7596                                    gsm_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability);
7597
7598   return offset;
7599 }
7600
7601
7602 static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = {
7603   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
7604   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7605   { NULL, 0, 0, 0, NULL }
7606 };
7607
7608 static int
7609 dissect_gsm_map_ms_ADD_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7610   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7611                                    gsm_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info);
7612
7613   return offset;
7614 }
7615
7616
7617
7618 static int
7619 dissect_gsm_map_ms_LAC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7620   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7621                                        NULL);
7622
7623   return offset;
7624 }
7625
7626
7627 static const value_string gsm_map_ms_LocationArea_vals[] = {
7628   {   0, "laiFixedLength" },
7629   {   1, "lac" },
7630   { 0, NULL }
7631 };
7632
7633 static const ber_choice_t gsm_map_ms_LocationArea_choice[] = {
7634   {   0, &hf_gsm_map_ms_laiFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
7635   {   1, &hf_gsm_map_ms_lac      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LAC },
7636   { 0, NULL, 0, 0, 0, NULL }
7637 };
7638
7639 static int
7640 dissect_gsm_map_ms_LocationArea(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7641   offset = dissect_ber_choice(actx, tree, tvb, offset,
7642                                  gsm_map_ms_LocationArea_choice, hf_index, ett_gsm_map_ms_LocationArea,
7643                                  NULL);
7644
7645   return offset;
7646 }
7647
7648
7649 static const ber_sequence_t gsm_map_ms_PagingArea_sequence_of[1] = {
7650   { &hf_gsm_map_ms_PagingArea_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LocationArea },
7651 };
7652
7653 static int
7654 dissect_gsm_map_ms_PagingArea(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7655   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7656                                       gsm_map_ms_PagingArea_sequence_of, hf_index, ett_gsm_map_ms_PagingArea);
7657
7658   return offset;
7659 }
7660
7661
7662 static const ber_sequence_t gsm_map_ms_EPLMN_List_sequence_of[1] = {
7663   { &hf_gsm_map_ms_EPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id },
7664 };
7665
7666 static int
7667 dissect_gsm_map_ms_EPLMN_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7668   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7669                                       gsm_map_ms_EPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_EPLMN_List);
7670
7671   return offset;
7672 }
7673
7674
7675 static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = {
7676   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7677   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7678   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7679   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
7680   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7681   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
7682   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7683   { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7684   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
7685   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
7686   { &hf_gsm_map_ms_pagingArea, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
7687   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7688   { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7689   { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List },
7690   { &hf_gsm_map_ms_mme_DiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
7691   { NULL, 0, 0, 0, NULL }
7692 };
7693
7694 static int
7695 dissect_gsm_map_ms_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7696   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7697                                    gsm_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg);
7698
7699   return offset;
7700 }
7701
7702
7703 static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = {
7704   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7705   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7706   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7707   { &hf_gsm_map_ms_pagingArea_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7708   { NULL, 0, 0, 0, NULL }
7709 };
7710
7711 static int
7712 dissect_gsm_map_ms_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7713   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7714                                    gsm_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes);
7715
7716   return offset;
7717 }
7718
7719
7720 static const value_string gsm_map_ms_CancellationType_vals[] = {
7721   {   0, "updateProcedure" },
7722   {   1, "subscriptionWithdraw" },
7723   {   2, "initialAttachProcedure" },
7724   { 0, NULL }
7725 };
7726
7727
7728 static int
7729 dissect_gsm_map_ms_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7730   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7731                                   NULL);
7732
7733   return offset;
7734 }
7735
7736
7737 static const value_string gsm_map_ms_TypeOfUpdate_vals[] = {
7738   {   0, "sgsn-change" },
7739   {   1, "mme-change" },
7740   { 0, NULL }
7741 };
7742
7743
7744 static int
7745 dissect_gsm_map_ms_TypeOfUpdate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7746   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7747                                   NULL);
7748
7749   return offset;
7750 }
7751
7752
7753 static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = {
7754   { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
7755   { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType },
7756   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7757   { &hf_gsm_map_ms_typeOfUpdate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TypeOfUpdate },
7758   { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7759   { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7760   { &hf_gsm_map_ms_newMSC_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7761   { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7762   { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
7763   { NULL, 0, 0, 0, NULL }
7764 };
7765
7766 static int
7767 dissect_gsm_map_ms_CancelLocationArg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7768   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7769                                    gsm_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U);
7770
7771   return offset;
7772 }
7773
7774
7775
7776 static int
7777 dissect_gsm_map_ms_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7778   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7779                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_CancelLocationArg_U);
7780
7781   return offset;
7782 }
7783
7784
7785 static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = {
7786   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7787   { NULL, 0, 0, 0, NULL }
7788 };
7789
7790 static int
7791 dissect_gsm_map_ms_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7792   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7793                                    gsm_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes);
7794
7795   return offset;
7796 }
7797
7798
7799 static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = {
7800   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
7801   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7802   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7803   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7804   { NULL, 0, 0, 0, NULL }
7805 };
7806
7807 static int
7808 dissect_gsm_map_ms_PurgeMS_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7809   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7810                                    gsm_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U);
7811
7812   return offset;
7813 }
7814
7815
7816
7817 static int
7818 dissect_gsm_map_ms_PurgeMS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7819   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
7820                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PurgeMS_Arg_U);
7821
7822   return offset;
7823 }
7824
7825
7826 static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = {
7827   { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7828   { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7829   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7830   { &hf_gsm_map_ms_freezeM_TMSI, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7831   { NULL, 0, 0, 0, NULL }
7832 };
7833
7834 static int
7835 dissect_gsm_map_ms_PurgeMS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7836   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7837                                    gsm_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res);
7838
7839   return offset;
7840 }
7841
7842
7843
7844 static int
7845 dissect_gsm_map_ms_NumberOfRequestedVectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7846   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7847                                                 NULL);
7848
7849   return offset;
7850 }
7851
7852
7853
7854 static int
7855 dissect_gsm_map_ms_HopCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7856   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7857                                                 NULL);
7858
7859   return offset;
7860 }
7861
7862
7863 static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = {
7864   { &hf_gsm_map_ms_tmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI },
7865   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
7866   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
7867   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
7868   { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
7869   { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
7870   { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter },
7871   { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
7872   { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
7873   { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
7874   { NULL, 0, 0, 0, NULL }
7875 };
7876
7877 static int
7878 dissect_gsm_map_ms_SendIdentificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7879   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7880                                    gsm_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg);
7881
7882   return offset;
7883 }
7884
7885
7886
7887 static int
7888 dissect_gsm_map_ms_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7889   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7890                                        NULL);
7891
7892   return offset;
7893 }
7894
7895
7896
7897 static int
7898 dissect_gsm_map_ms_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7899   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7900                                        NULL);
7901
7902   return offset;
7903 }
7904
7905
7906
7907 static int
7908 dissect_gsm_map_ms_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7909   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7910                                        NULL);
7911
7912   return offset;
7913 }
7914
7915
7916 static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = {
7917   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7918   { &hf_gsm_map_ms_sres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES },
7919   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
7920   { NULL, 0, 0, 0, NULL }
7921 };
7922
7923 static int
7924 dissect_gsm_map_ms_AuthenticationTriplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7925   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7926                                    gsm_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet);
7927
7928   return offset;
7929 }
7930
7931
7932 static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = {
7933   { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet },
7934 };
7935
7936 static int
7937 dissect_gsm_map_ms_TripletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7938   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7939                                       gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList);
7940
7941   return offset;
7942 }
7943
7944
7945
7946 static int
7947 dissect_gsm_map_ms_XRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7948   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7949                                        NULL);
7950
7951   return offset;
7952 }
7953
7954
7955
7956 static int
7957 dissect_gsm_map_ms_CK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7958   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7959                                        NULL);
7960
7961   return offset;
7962 }
7963
7964
7965
7966 static int
7967 dissect_gsm_map_ms_IK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7968   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7969                                        NULL);
7970
7971   return offset;
7972 }
7973
7974
7975
7976 static int
7977 dissect_gsm_map_ms_AUTN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7978   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
7979                                        NULL);
7980
7981   return offset;
7982 }
7983
7984
7985 static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = {
7986   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
7987   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
7988   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
7989   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
7990   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
7991   { NULL, 0, 0, 0, NULL }
7992 };
7993
7994 static int
7995 dissect_gsm_map_ms_AuthenticationQuintuplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7996   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7997                                    gsm_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet);
7998
7999   return offset;
8000 }
8001
8002
8003 static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = {
8004   { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet },
8005 };
8006
8007 static int
8008 dissect_gsm_map_ms_QuintupletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8009   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8010                                       gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList);
8011
8012   return offset;
8013 }
8014
8015
8016 static const value_string gsm_map_ms_AuthenticationSetList_vals[] = {
8017   {   0, "tripletList" },
8018   {   1, "quintupletList" },
8019   { 0, NULL }
8020 };
8021
8022 static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = {
8023   {   0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList },
8024   {   1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList },
8025   { 0, NULL, 0, 0, 0, NULL }
8026 };
8027
8028 static int
8029 dissect_gsm_map_ms_AuthenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8030   offset = dissect_ber_choice(actx, tree, tvb, offset,
8031                                  gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList,
8032                                  NULL);
8033
8034   return offset;
8035 }
8036
8037
8038
8039 static int
8040 dissect_gsm_map_ms_Cksn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8041   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8042                                        NULL);
8043
8044   return offset;
8045 }
8046
8047
8048 static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = {
8049   { &hf_gsm_map_ms_kc       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc },
8050   { &hf_gsm_map_ms_cksn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn },
8051   { NULL, 0, 0, 0, NULL }
8052 };
8053
8054 static int
8055 dissect_gsm_map_ms_GSM_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8056   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8057                                    gsm_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData);
8058
8059   return offset;
8060 }
8061
8062
8063
8064 static int
8065 dissect_gsm_map_ms_KSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8066   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8067                                        NULL);
8068
8069   return offset;
8070 }
8071
8072
8073 static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = {
8074   { &hf_gsm_map_ms_ck       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK },
8075   { &hf_gsm_map_ms_ik       , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK },
8076   { &hf_gsm_map_ms_ksi      , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI },
8077   { NULL, 0, 0, 0, NULL }
8078 };
8079
8080 static int
8081 dissect_gsm_map_ms_UMTS_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8082   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8083                                    gsm_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData);
8084
8085   return offset;
8086 }
8087
8088
8089 static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = {
8090   {   0, "gsm-SecurityContextData" },
8091   {   1, "umts-SecurityContextData" },
8092   { 0, NULL }
8093 };
8094
8095 static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = {
8096   {   0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData },
8097   {   1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData },
8098   { 0, NULL, 0, 0, 0, NULL }
8099 };
8100
8101 static int
8102 dissect_gsm_map_ms_CurrentSecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8103   offset = dissect_ber_choice(actx, tree, tvb, offset,
8104                                  gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext,
8105                                  NULL);
8106
8107   return offset;
8108 }
8109
8110
8111 static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = {
8112   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
8113   { &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 },
8114   { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext },
8115   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8116   { NULL, 0, 0, 0, NULL }
8117 };
8118
8119 static int
8120 dissect_gsm_map_ms_SendIdentificationRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8121   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8122                                    gsm_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U);
8123
8124   return offset;
8125 }
8126
8127
8128
8129 static int
8130 dissect_gsm_map_ms_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8131   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8132                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendIdentificationRes_U);
8133
8134   return offset;
8135 }
8136
8137
8138
8139 static int
8140 dissect_gsm_map_ms_AUTS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8141   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8142                                        NULL);
8143
8144   return offset;
8145 }
8146
8147
8148 static const value_string gsm_map_ms_FailureCause_vals[] = {
8149   {   0, "wrongUserResponse" },
8150   {   1, "wrongNetworkSignature" },
8151   { 0, NULL }
8152 };
8153
8154
8155 static int
8156 dissect_gsm_map_ms_FailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8157   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8158                                   NULL);
8159
8160   return offset;
8161 }
8162
8163
8164
8165 static int
8166 dissect_gsm_map_ms_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8167   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
8168
8169   return offset;
8170 }
8171
8172
8173 static const value_string gsm_map_ms_AccessType_vals[] = {
8174   {   0, "call" },
8175   {   1, "emergencyCall" },
8176   {   2, "locationUpdating" },
8177   {   3, "supplementaryService" },
8178   {   4, "shortMessage" },
8179   {   5, "gprsAttach" },
8180   {   6, "routingAreaUpdating" },
8181   {   7, "serviceRequest" },
8182   {   8, "pdpContextActivation" },
8183   {   9, "pdpContextDeactivation" },
8184   {  10, "gprsDetach" },
8185   { 0, NULL }
8186 };
8187
8188
8189 static int
8190 dissect_gsm_map_ms_AccessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8191   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8192                                   NULL);
8193
8194   return offset;
8195 }
8196
8197
8198 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = {
8199   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
8200   { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause },
8201   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8202   { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN },
8203   { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType },
8204   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
8205   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8206   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8207   { NULL, 0, 0, 0, NULL }
8208 };
8209
8210 static int
8211 dissect_gsm_map_ms_AuthenticationFailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8212   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8213                                    gsm_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg);
8214
8215   return offset;
8216 }
8217
8218
8219 static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = {
8220   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8221   { NULL, 0, 0, 0, NULL }
8222 };
8223
8224 static int
8225 dissect_gsm_map_ms_AuthenticationFailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8226   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8227                                    gsm_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes);
8228
8229   return offset;
8230 }
8231
8232
8233 static const asn_namedbit gsm_map_ms_SupportedFeatures_bits[] = {
8234   {  0, &hf_gsm_map_ms_SupportedFeatures_odb_all_apn, -1, -1, "odb-all-apn", NULL },
8235   {  1, &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN, -1, -1, "odb-HPLMN-APN", NULL },
8236   {  2, &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN, -1, -1, "odb-VPLMN-APN", NULL },
8237   {  3, &hf_gsm_map_ms_SupportedFeatures_odb_all_og, -1, -1, "odb-all-og", NULL },
8238   {  4, &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og, -1, -1, "odb-all-international-og", NULL },
8239   {  5, &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country, -1, -1, "odb-all-int-og-not-to-HPLMN-country", NULL },
8240   {  6, &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og, -1, -1, "odb-all-interzonal-og", NULL },
8241   {  7, &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country, -1, -1, "odb-all-interzonal-og-not-to-HPLMN-country", NULL },
8242   {  8, &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country, -1, -1, "odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country", NULL },
8243   {  9, &hf_gsm_map_ms_SupportedFeatures_regSub, -1, -1, "regSub", NULL },
8244   { 10, &hf_gsm_map_ms_SupportedFeatures_trace, -1, -1, "trace", NULL },
8245   { 11, &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep, -1, -1, "lcs-all-PrivExcep", NULL },
8246   { 12, &hf_gsm_map_ms_SupportedFeatures_lcs_universal, -1, -1, "lcs-universal", NULL },
8247   { 13, &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated, -1, -1, "lcs-CallSessionRelated", NULL },
8248   { 14, &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated, -1, -1, "lcs-CallSessionUnrelated", NULL },
8249   { 15, &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator, -1, -1, "lcs-PLMN-operator", NULL },
8250   { 16, &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType, -1, -1, "lcs-ServiceType", NULL },
8251   { 17, &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS, -1, -1, "lcs-all-MOLR-SS", NULL },
8252   { 18, &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation, -1, -1, "lcs-basicSelfLocation", NULL },
8253   { 19, &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation, -1, -1, "lcs-autonomousSelfLocation", NULL },
8254   { 20, &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty, -1, -1, "lcs-transferToThirdParty", NULL },
8255   { 21, &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp, -1, -1, "sm-mo-pp", NULL },
8256   { 22, &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls, -1, -1, "barring-OutgoingCalls", NULL },
8257   { 23, &hf_gsm_map_ms_SupportedFeatures_baoc, -1, -1, "baoc", NULL },
8258   { 24, &hf_gsm_map_ms_SupportedFeatures_boic, -1, -1, "boic", NULL },
8259   { 25, &hf_gsm_map_ms_SupportedFeatures_boicExHC, -1, -1, "boicExHC", NULL },
8260   { 26, &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval, -1, -1, "localTimeZoneRetrieval", NULL },
8261   { 27, &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn, -1, -1, "additionalMsisdn", NULL },
8262   { 28, &hf_gsm_map_ms_SupportedFeatures_smsInMME, -1, -1, "smsInMME", NULL },
8263   { 29, &hf_gsm_map_ms_SupportedFeatures_smsInSGSN, -1, -1, "smsInSGSN", NULL },
8264   { 0, NULL, 0, 0, NULL, NULL }
8265 };
8266
8267 static int
8268 dissect_gsm_map_ms_SupportedFeatures(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8269   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8270                                     gsm_map_ms_SupportedFeatures_bits, hf_index, ett_gsm_map_ms_SupportedFeatures,
8271                                     NULL);
8272
8273   return offset;
8274 }
8275
8276
8277 static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = {
8278   { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8279   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8280   { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo },
8281   { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8282   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
8283   { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
8284   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
8285   { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8286   { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types },
8287   { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
8288   { &hf_gsm_map_ms_t_adsDataRetrieval, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8289   { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
8290   { &hf_gsm_map_ms_cancellationTypeInitialAttach, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8291   { &hf_gsm_map_ms_additionalMsisdnSupport, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8292   { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8293   { NULL, 0, 0, 0, NULL }
8294 };
8295
8296 static int
8297 dissect_gsm_map_ms_SGSN_Capability(gboolean 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_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability);
8300
8301   return offset;
8302 }
8303
8304
8305
8306 static int
8307 dissect_gsm_map_ms_APN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8308 #line 869 "../../asn1/gsm_map/gsm_map.cnf"
8309     tvbuff_t    *parameter_tvb;
8310     proto_tree  *subtree;
8311     int                 length, name_len, tmp;
8312     guint8              *apn_str = NULL;
8313
8314   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8315                                        &parameter_tvb);
8316
8317         if (!parameter_tvb)
8318                 return offset;
8319                 
8320     length = tvb_length(parameter_tvb);
8321     name_len = tvb_get_guint8(parameter_tvb, 0);
8322         apn_str = tvb_get_ephemeral_string(parameter_tvb, 1, length - 1);
8323     if (name_len < length-1) {
8324                 for (;;) {
8325                         if (name_len >= length - 1)
8326                                 break;
8327                         tmp = name_len;
8328                         name_len = name_len + apn_str[tmp] + 1;
8329                         apn_str[tmp] = '.';
8330                 }
8331         }
8332         proto_item_append_text(actx->created_item, " - %s", apn_str);
8333         subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_apn_str);
8334         proto_tree_add_string(subtree, hf_gsm_apn_str, parameter_tvb, 0, -1, apn_str);
8335
8336
8337
8338
8339   return offset;
8340 }
8341
8342
8343
8344 static int
8345 dissect_gsm_map_ms_PDP_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8346   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8347                                        NULL);
8348
8349   return offset;
8350 }
8351
8352
8353
8354 static int
8355 dissect_gsm_map_ms_FQDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8356   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8357                                        NULL);
8358
8359   return offset;
8360 }
8361
8362
8363 static const ber_sequence_t gsm_map_ms_PDN_GW_Identity_sequence[] = {
8364   { &hf_gsm_map_ms_pdn_gw_ipv4_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
8365   { &hf_gsm_map_ms_pdn_gw_ipv6_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
8366   { &hf_gsm_map_ms_pdn_gw_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN },
8367   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8368   { NULL, 0, 0, 0, NULL }
8369 };
8370
8371 static int
8372 dissect_gsm_map_ms_PDN_GW_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8373   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8374                                    gsm_map_ms_PDN_GW_Identity_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Identity);
8375
8376   return offset;
8377 }
8378
8379
8380
8381 static int
8382 dissect_gsm_map_ms_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8383   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8384                                                 NULL);
8385
8386   return offset;
8387 }
8388
8389
8390 static const ber_sequence_t gsm_map_ms_PDN_GW_Update_sequence[] = {
8391   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
8392   { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
8393   { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
8394   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8395   { NULL, 0, 0, 0, NULL }
8396 };
8397
8398 static int
8399 dissect_gsm_map_ms_PDN_GW_Update(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8400   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8401                                    gsm_map_ms_PDN_GW_Update_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Update);
8402
8403   return offset;
8404 }
8405
8406
8407 static const asn_namedbit gsm_map_ms_ISR_Information_bits[] = {
8408   {  0, &hf_gsm_map_ms_ISR_Information_updateLocation, -1, -1, "updateLocation", NULL },
8409   {  1, &hf_gsm_map_ms_ISR_Information_cancelSGSN, -1, -1, "cancelSGSN", NULL },
8410   {  2, &hf_gsm_map_ms_ISR_Information_initialAttachIndicator, -1, -1, "initialAttachIndicator", NULL },
8411   { 0, NULL, 0, 0, NULL, NULL }
8412 };
8413
8414 static int
8415 dissect_gsm_map_ms_ISR_Information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8416   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8417                                     gsm_map_ms_ISR_Information_bits, hf_index, ett_gsm_map_ms_ISR_Information,
8418                                     NULL);
8419
8420   return offset;
8421 }
8422
8423
8424 static const value_string gsm_map_ms_EPS_Info_vals[] = {
8425   {   0, "pdn-gw-update" },
8426   {   1, "isr-Information" },
8427   { 0, NULL }
8428 };
8429
8430 static const ber_choice_t gsm_map_ms_EPS_Info_choice[] = {
8431   {   0, &hf_gsm_map_ms_pdn_gw_update, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Update },
8432   {   1, &hf_gsm_map_ms_isr_Information, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ISR_Information },
8433   { 0, NULL, 0, 0, 0, NULL }
8434 };
8435
8436 static int
8437 dissect_gsm_map_ms_EPS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8438   offset = dissect_ber_choice(actx, tree, tvb, offset,
8439                                  gsm_map_ms_EPS_Info_choice, hf_index, ett_gsm_map_ms_EPS_Info,
8440                                  NULL);
8441
8442   return offset;
8443 }
8444
8445
8446 static const value_string gsm_map_ms_Used_RAT_Type_vals[] = {
8447   {   0, "utran" },
8448   {   1, "geran" },
8449   {   2, "gan" },
8450   {   3, "i-hspa-evolution" },
8451   {   4, "e-utran" },
8452   { 0, NULL }
8453 };
8454
8455
8456 static int
8457 dissect_gsm_map_ms_Used_RAT_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8458   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8459                                   NULL);
8460
8461   return offset;
8462 }
8463
8464
8465 static const value_string gsm_map_ms_UE_SRVCC_Capability_vals[] = {
8466   {   0, "ue-srvcc-not-supported" },
8467   {   1, "ue-srvcc-supported" },
8468   { 0, NULL }
8469 };
8470
8471
8472 static int
8473 dissect_gsm_map_ms_UE_SRVCC_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8474   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8475                                   NULL);
8476
8477   return offset;
8478 }
8479
8480
8481 static const value_string gsm_map_ms_SMSRegisterRequest_vals[] = {
8482   {   0, "sms-registration-required" },
8483   {   1, "sms-registration-not-preferred" },
8484   {   2, "no-preference" },
8485   { 0, NULL }
8486 };
8487
8488
8489 static int
8490 dissect_gsm_map_ms_SMSRegisterRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8491   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8492                                   NULL);
8493
8494   return offset;
8495 }
8496
8497
8498 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = {
8499   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
8500   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8501   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GSN_Address },
8502   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8503   { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability },
8504   { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8505   { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8506   { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
8507   { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info },
8508   { &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 },
8509   { &hf_gsm_map_ms_servingNodeTypeIndicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8510   { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8511   { &hf_gsm_map_ms_usedRAT_Type, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
8512   { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8513   { &hf_gsm_map_ms_nodeTypeIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8514   { &hf_gsm_map_ms_areaRestricted, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8515   { &hf_gsm_map_ms_ue_reachableIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8516   { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8517   { &hf_gsm_map_ms_ue_srvcc_Capability, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_SRVCC_Capability },
8518   { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List },
8519   { &hf_gsm_map_ms_mmeNumberforMTSMS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
8520   { &hf_gsm_map_ms_smsRegisterRequest, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMSRegisterRequest },
8521   { &hf_gsm_map_ms_sms_Only , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8522   { NULL, 0, 0, 0, NULL }
8523 };
8524
8525 static int
8526 dissect_gsm_map_ms_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8527   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8528                                    gsm_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg);
8529
8530   return offset;
8531 }
8532
8533
8534 static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = {
8535   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
8536   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
8537   { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
8538   { &hf_gsm_map_ms_sgsn_mmeSeparationSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8539   { &hf_gsm_map_ms_mmeRegisteredforSMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8540   { NULL, 0, 0, 0, NULL }
8541 };
8542
8543 static int
8544 dissect_gsm_map_ms_UpdateGprsLocationRes(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
8546                                    gsm_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes);
8547
8548   return offset;
8549 }
8550
8551
8552
8553 static int
8554 dissect_gsm_map_ms_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8555 #line 652 "../../asn1/gsm_map/gsm_map.cnf"
8556     tvbuff_t        *parameter_tvb;
8557         asn1_ctx_t              asn1_ctx;
8558
8559   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8560                                        &parameter_tvb);
8561
8562
8563         if (!parameter_tvb)
8564                 return offset;
8565
8566         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
8567         dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation);
8568
8569
8570
8571   return offset;
8572 }
8573
8574
8575
8576 static int
8577 dissect_gsm_map_ms_EncryptionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8578 #line 664 "../../asn1/gsm_map/gsm_map.cnf"
8579     tvbuff_t        *parameter_tvb;
8580         asn1_ctx_t              asn1_ctx;
8581
8582   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8583                                        &parameter_tvb);
8584
8585
8586         if (!parameter_tvb)
8587                 return offset;
8588
8589         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
8590         dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_EncryptionInformation);
8591
8592
8593
8594   return offset;
8595 }
8596
8597
8598 static const value_string gsm_map_ms_KeyStatus_vals[] = {
8599   {   0, "old" },
8600   {   1, "new" },
8601   { 0, NULL }
8602 };
8603
8604
8605 static int
8606 dissect_gsm_map_ms_KeyStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8607   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8608                                   NULL);
8609
8610   return offset;
8611 }
8612
8613
8614
8615 static int
8616 dissect_gsm_map_ms_AllowedGSM_Algorithms(gboolean 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8618                                        NULL);
8619
8620   return offset;
8621 }
8622
8623
8624
8625 static int
8626 dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8627   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8628                                        NULL);
8629
8630   return offset;
8631 }
8632
8633
8634
8635 static int
8636 dissect_gsm_map_ms_PermittedEncryptionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8637   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8638                                        NULL);
8639
8640   return offset;
8641 }
8642
8643
8644 static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = {
8645   { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms },
8646   { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms },
8647   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8648   { NULL, 0, 0, 0, NULL }
8649 };
8650
8651 static int
8652 dissect_gsm_map_ms_AllowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8653   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8654                                    gsm_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms);
8655
8656   return offset;
8657 }
8658
8659
8660
8661 static int
8662 dissect_gsm_map_ms_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8663 #line 628 "../../asn1/gsm_map/gsm_map.cnf"
8664     tvbuff_t        *parameter_tvb;
8665         proto_tree *subtree;
8666
8667   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8668                                        &parameter_tvb);
8669
8670
8671         if (!parameter_tvb)
8672                 return offset;
8673
8674     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation);
8675         be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_length_remaining(tvb,0), NULL, 0);
8676
8677
8678
8679   return offset;
8680 }
8681
8682
8683
8684 static int
8685 dissect_gsm_map_ms_RAB_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8686   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8687                                                 NULL);
8688
8689   return offset;
8690 }
8691
8692
8693 static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = {
8694   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation },
8695   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
8696   { NULL, 0, 0, 0, NULL }
8697 };
8698
8699 static int
8700 dissect_gsm_map_ms_RadioResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8701   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8702                                    gsm_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource);
8703
8704   return offset;
8705 }
8706
8707
8708 static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = {
8709   { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource },
8710 };
8711
8712 static int
8713 dissect_gsm_map_ms_RadioResourceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8714   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8715                                       gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList);
8716
8717   return offset;
8718 }
8719
8720
8721
8722 static int
8723 dissect_gsm_map_ms_BSSMAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8724   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8725                                        NULL);
8726
8727   return offset;
8728 }
8729
8730
8731
8732 static int
8733 dissect_gsm_map_ms_RANAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8734 #line 640 "../../asn1/gsm_map/gsm_map.cnf"
8735     tvbuff_t        *parameter_tvb;
8736         asn1_ctx_t              asn1_ctx;
8737
8738   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8739                                        &parameter_tvb);
8740
8741
8742         if (!parameter_tvb)
8743                 return offset;
8744
8745         asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
8746         dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
8747
8748
8749
8750   return offset;
8751 }
8752
8753
8754 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = {
8755   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
8756   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
8757   { NULL, 0, 0, 0, NULL }
8758 };
8759
8760 static int
8761 dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8762   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8763                                    gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo);
8764
8765   return offset;
8766 }
8767
8768
8769 static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = {
8770   { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo },
8771 };
8772
8773 static int
8774 dissect_gsm_map_ms_BSSMAP_ServiceHandoverList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8775   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8776                                       gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList);
8777
8778   return offset;
8779 }
8780
8781
8782
8783 static int
8784 dissect_gsm_map_ms_Codec(gboolean 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8786                                        NULL);
8787
8788   return offset;
8789 }
8790
8791
8792 static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = {
8793   { &hf_gsm_map_ms_codec1_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8794   { &hf_gsm_map_ms_codec2_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8795   { &hf_gsm_map_ms_codec3_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8796   { &hf_gsm_map_ms_codec4_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8797   { &hf_gsm_map_ms_codec5_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8798   { &hf_gsm_map_ms_codec6_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8799   { &hf_gsm_map_ms_codec7_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8800   { &hf_gsm_map_ms_codec8_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8801   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8802   { NULL, 0, 0, 0, NULL }
8803 };
8804
8805 static int
8806 dissect_gsm_map_ms_CodecList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8807   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8808                                    gsm_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList);
8809
8810   return offset;
8811 }
8812
8813
8814 static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = {
8815   { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
8816   { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
8817   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8818   { NULL, 0, 0, 0, NULL }
8819 };
8820
8821 static int
8822 dissect_gsm_map_ms_SupportedCodecsList(gboolean 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_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList);
8825
8826   return offset;
8827 }
8828
8829
8830
8831 static int
8832 dissect_gsm_map_ms_AoIPCodec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8833   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8834                                        NULL);
8835
8836   return offset;
8837 }
8838
8839
8840 static const ber_sequence_t gsm_map_ms_AoIPCodecsList_sequence[] = {
8841   { &hf_gsm_map_ms_codec1   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8842   { &hf_gsm_map_ms_codec2   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8843   { &hf_gsm_map_ms_codec3   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8844   { &hf_gsm_map_ms_codec4   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8845   { &hf_gsm_map_ms_codec5   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8846   { &hf_gsm_map_ms_codec6   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8847   { &hf_gsm_map_ms_codec7   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8848   { &hf_gsm_map_ms_codec8   , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8849   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8850   { NULL, 0, 0, 0, NULL }
8851 };
8852
8853 static int
8854 dissect_gsm_map_ms_AoIPCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8855   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8856                                    gsm_map_ms_AoIPCodecsList_sequence, hf_index, ett_gsm_map_ms_AoIPCodecsList);
8857
8858   return offset;
8859 }
8860
8861
8862 static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = {
8863   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
8864   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
8865   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
8866   { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus },
8867   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
8868   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
8869   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
8870   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
8871   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
8872   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
8873   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
8874   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
8875   { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8876   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
8877   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
8878   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
8879   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
8880   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
8881   { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
8882   { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
8883   { NULL, 0, 0, 0, NULL }
8884 };
8885
8886 static int
8887 dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8888   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8889                                    gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U);
8890
8891   return offset;
8892 }
8893
8894
8895
8896 static int
8897 dissect_gsm_map_ms_ForwardAccessSignalling_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8898   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
8899                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U);
8900
8901   return offset;
8902 }
8903
8904
8905
8906 static int
8907 dissect_gsm_map_ms_RNCId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8908   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8909                                        NULL);
8910
8911   return offset;
8912 }
8913
8914
8915
8916 static int
8917 dissect_gsm_map_ms_GERAN_Classmark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8918   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8919                                        NULL);
8920
8921   return offset;
8922 }
8923
8924
8925
8926 static int
8927 dissect_gsm_map_ms_UESBI_IuA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8928   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8929                                     NULL, hf_index, -1,
8930                                     NULL);
8931
8932   return offset;
8933 }
8934
8935
8936
8937 static int
8938 dissect_gsm_map_ms_UESBI_IuB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8939   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8940                                     NULL, hf_index, -1,
8941                                     NULL);
8942
8943   return offset;
8944 }
8945
8946
8947 static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = {
8948   { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA },
8949   { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB },
8950   { NULL, 0, 0, 0, NULL }
8951 };
8952
8953 static int
8954 dissect_gsm_map_ms_UESBI_Iu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8955   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8956                                    gsm_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu);
8957
8958   return offset;
8959 }
8960
8961
8962
8963 static int
8964 dissect_gsm_map_ms_ZoneCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8965   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8966                                        NULL);
8967
8968   return offset;
8969 }
8970
8971
8972 static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = {
8973   { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode },
8974 };
8975
8976 static int
8977 dissect_gsm_map_ms_ZoneCodeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8978   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8979                                       gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList);
8980
8981   return offset;
8982 }
8983
8984
8985
8986 static int
8987 dissect_gsm_map_ms_LCLS_GlobalCallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8988   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
8989                                        NULL);
8990
8991   return offset;
8992 }
8993
8994
8995 static const asn_namedbit gsm_map_ms_LCLS_Negotiation_bits[] = {
8996   {  0, &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit, -1, -1, "permission-indicator-not-allowed-bit", NULL },
8997   {  1, &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit, -1, -1, "permission-indicator-spare-bit", NULL },
8998   { 0, NULL, 0, 0, NULL, NULL }
8999 };
9000
9001 static int
9002 dissect_gsm_map_ms_LCLS_Negotiation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9003   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9004                                     gsm_map_ms_LCLS_Negotiation_bits, hf_index, ett_gsm_map_ms_LCLS_Negotiation,
9005                                     NULL);
9006
9007   return offset;
9008 }
9009
9010
9011 static const asn_namedbit gsm_map_ms_LCLS_ConfigurationPreference_bits[] = {
9012   {  0, &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator, -1, -1, "forward-data-sending-indicator", NULL },
9013   {  1, &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator, -1, -1, "backward-data-sending-indicator", NULL },
9014   {  2, &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator, -1, -1, "forward-data-reception-indicator", NULL },
9015   {  3, &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator, -1, -1, "backward-data-reception-indicator", NULL },
9016   { 0, NULL, 0, 0, NULL, NULL }
9017 };
9018
9019 static int
9020 dissect_gsm_map_ms_LCLS_ConfigurationPreference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9021   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9022                                     gsm_map_ms_LCLS_ConfigurationPreference_bits, hf_index, ett_gsm_map_ms_LCLS_ConfigurationPreference,
9023                                     NULL);
9024
9025   return offset;
9026 }
9027
9028
9029
9030 static int
9031 dissect_gsm_map_ms_CSG_Id(gboolean 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_bitstring(implicit_tag, actx, tree, tvb, offset,
9033                                     NULL, hf_index, -1,
9034                                     NULL);
9035
9036   return offset;
9037 }
9038
9039
9040 static const ber_sequence_t gsm_map_ms_LIPA_AllowedAPNList_sequence_of[1] = {
9041   { &hf_gsm_map_ms_LIPA_AllowedAPNList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN },
9042 };
9043
9044 static int
9045 dissect_gsm_map_ms_LIPA_AllowedAPNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9046   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9047                                       gsm_map_ms_LIPA_AllowedAPNList_sequence_of, hf_index, ett_gsm_map_ms_LIPA_AllowedAPNList);
9048
9049   return offset;
9050 }
9051
9052
9053 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionData_sequence[] = {
9054   { &hf_gsm_map_ms_csg_Id   , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_Id },
9055   { &hf_gsm_map_ms_expirationDate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time },
9056   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9057   { &hf_gsm_map_ms_lipa_AllowedAPNList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_AllowedAPNList },
9058   { &hf_gsm_map_ms_plmn_Id  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
9059   { NULL, 0, 0, 0, NULL }
9060 };
9061
9062 static int
9063 dissect_gsm_map_ms_CSG_SubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9064   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9065                                    gsm_map_ms_CSG_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_CSG_SubscriptionData);
9066
9067   return offset;
9068 }
9069
9070
9071 static const ber_sequence_t gsm_map_ms_CSG_SubscriptionDataList_sequence_of[1] = {
9072   { &hf_gsm_map_ms_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
9073 };
9074
9075 static int
9076 dissect_gsm_map_ms_CSG_SubscriptionDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9077   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9078                                       gsm_map_ms_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_CSG_SubscriptionDataList);
9079
9080   return offset;
9081 }
9082
9083
9084 static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = {
9085   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
9086   { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9087   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
9088   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
9089   { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9090   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9091   { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation },
9092   { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation },
9093   { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
9094   { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms },
9095   { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms },
9096   { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList },
9097   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9098   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
9099   { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover },
9100   { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover },
9101   { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList },
9102   { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
9103   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
9104   { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9105   { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList },
9106   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9107   { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu },
9108   { &hf_gsm_map_ms_imeisv   , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
9109   { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation },
9110   { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList },
9111   { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
9112   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
9113   { &hf_gsm_map_ms_lclsGlobalCallReference, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_GlobalCallReference },
9114   { &hf_gsm_map_ms_lcls_Negotiation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_Negotiation },
9115   { &hf_gsm_map_ms_lcls_Configuration_Preference, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_ConfigurationPreference },
9116   { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
9117   { NULL, 0, 0, 0, NULL }
9118 };
9119
9120 static int
9121 dissect_gsm_map_ms_PrepareHO_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9122   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9123                                    gsm_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U);
9124
9125   return offset;
9126 }
9127
9128
9129
9130 static int
9131 dissect_gsm_map_ms_PrepareHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9132   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9133                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U);
9134
9135   return offset;
9136 }
9137
9138
9139 static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = {
9140   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
9141   { &hf_gsm_map_ms_rab_Id   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id },
9142   { NULL, 0, 0, 0, NULL }
9143 };
9144
9145 static int
9146 dissect_gsm_map_ms_RelocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9147   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9148                                    gsm_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber);
9149
9150   return offset;
9151 }
9152
9153
9154 static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = {
9155   { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber },
9156 };
9157
9158 static int
9159 dissect_gsm_map_ms_RelocationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9160   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9161                                       gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList);
9162
9163   return offset;
9164 }
9165
9166
9167
9168 static int
9169 dissect_gsm_map_ms_MulticallBearerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9170   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9171                                                 NULL);
9172
9173   return offset;
9174 }
9175
9176
9177
9178 static int
9179 dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9180   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9181                                        NULL);
9182
9183   return offset;
9184 }
9185
9186
9187
9188 static int
9189 dissect_gsm_map_ms_ChosenEncryptionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9190   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9191                                        NULL);
9192
9193   return offset;
9194 }
9195
9196
9197 static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = {
9198   { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm },
9199   { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm },
9200   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9201   { NULL, 0, 0, 0, NULL }
9202 };
9203
9204 static int
9205 dissect_gsm_map_ms_SelectedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9206   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9207                                    gsm_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms);
9208
9209   return offset;
9210 }
9211
9212
9213
9214 static int
9215 dissect_gsm_map_ms_ChosenChannelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9216   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9217                                        NULL);
9218
9219   return offset;
9220 }
9221
9222
9223
9224 static int
9225 dissect_gsm_map_ms_ChosenSpeechVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9226   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9227                                        NULL);
9228
9229   return offset;
9230 }
9231
9232
9233 static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = {
9234   { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo },
9235   { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion },
9236   { NULL, 0, 0, 0, NULL }
9237 };
9238
9239 static int
9240 dissect_gsm_map_ms_ChosenRadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9241   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9242                                    gsm_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation);
9243
9244   return offset;
9245 }
9246
9247
9248 static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = {
9249   { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9250   { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList },
9251   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
9252   { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo },
9253   { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9254   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
9255   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
9256   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9257   { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9258   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
9259   { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9260   { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
9261   { NULL, 0, 0, 0, NULL }
9262 };
9263
9264 static int
9265 dissect_gsm_map_ms_PrepareHO_Res_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9266   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9267                                    gsm_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U);
9268
9269   return offset;
9270 }
9271
9272
9273
9274 static int
9275 dissect_gsm_map_ms_PrepareHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9276   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9277                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Res_U);
9278
9279   return offset;
9280 }
9281
9282
9283 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = {
9284   { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
9285   { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9286   { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId },
9287   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
9288   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
9289   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9290   { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark },
9291   { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9292   { NULL, 0, 0, 0, NULL }
9293 };
9294
9295 static int
9296 dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9297   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9298                                    gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U);
9299
9300   return offset;
9301 }
9302
9303
9304
9305 static int
9306 dissect_gsm_map_ms_PrepareSubsequentHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9307   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9308                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U);
9309
9310   return offset;
9311 }
9312
9313
9314 static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = {
9315   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
9316   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9317   { NULL, 0, 0, 0, NULL }
9318 };
9319
9320 static int
9321 dissect_gsm_map_ms_PrepareSubsequentHO_Res_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9322   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9323                                    gsm_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U);
9324
9325   return offset;
9326 }
9327
9328
9329
9330 static int
9331 dissect_gsm_map_ms_PrepareSubsequentHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9332   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9333                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U);
9334
9335   return offset;
9336 }
9337
9338
9339
9340 static int
9341 dissect_gsm_map_ms_SelectedGSM_Algorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9342   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9343                                        NULL);
9344
9345   return offset;
9346 }
9347
9348
9349 static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = {
9350   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
9351   { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms },
9352   { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm },
9353   { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation },
9354   { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id },
9355   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9356   { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec },
9357   { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList },
9358   { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec },
9359   { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList },
9360   { NULL, 0, 0, 0, NULL }
9361 };
9362
9363 static int
9364 dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
9366                                    gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U);
9367
9368   return offset;
9369 }
9370
9371
9372
9373 static int
9374 dissect_gsm_map_ms_ProcessAccessSignalling_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9375   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9376                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U);
9377
9378   return offset;
9379 }
9380
9381
9382 static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = {
9383   { &hf_gsm_map_ms_an_APDU  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo },
9384   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9385   { NULL, 0, 0, 0, NULL }
9386 };
9387
9388 static int
9389 dissect_gsm_map_ms_SendEndSignal_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9390   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9391                                    gsm_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U);
9392
9393   return offset;
9394 }
9395
9396
9397
9398 static int
9399 dissect_gsm_map_ms_SendEndSignal_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9400   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9401                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendEndSignal_Arg_U);
9402
9403   return offset;
9404 }
9405
9406
9407 static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = {
9408   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9409   { NULL, 0, 0, 0, NULL }
9410 };
9411
9412 static int
9413 dissect_gsm_map_ms_SendEndSignal_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9414   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9415                                    gsm_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res);
9416
9417   return offset;
9418 }
9419
9420
9421 static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = {
9422   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9423   { &hf_gsm_map_ms_auts     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS },
9424   { NULL, 0, 0, 0, NULL }
9425 };
9426
9427 static int
9428 dissect_gsm_map_ms_Re_synchronisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9429   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9430                                    gsm_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo);
9431
9432   return offset;
9433 }
9434
9435
9436 static const value_string gsm_map_ms_RequestingNodeType_vals[] = {
9437   {   0, "vlr" },
9438   {   1, "sgsn" },
9439   {   2, "s-cscf" },
9440   {   3, "bsf" },
9441   {   4, "gan-aaa-server" },
9442   {   5, "wlan-aaa-server" },
9443   {  16, "mme" },
9444   {  17, "mme-sgsn" },
9445   { 0, NULL }
9446 };
9447
9448
9449 static int
9450 dissect_gsm_map_ms_RequestingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9451   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9452                                   NULL);
9453
9454   return offset;
9455 }
9456
9457
9458 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = {
9459   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
9460   { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
9461   { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
9462   { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9463   { &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 },
9464   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9465   { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType },
9466   { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
9467   { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberOfRequestedVectors },
9468   { &hf_gsm_map_ms_additionalVectorsAreForEPS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
9469   { NULL, 0, 0, 0, NULL }
9470 };
9471
9472 static int
9473 dissect_gsm_map_ms_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9474   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9475                                    gsm_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg);
9476
9477   return offset;
9478 }
9479
9480
9481
9482 static int
9483 dissect_gsm_map_ms_KASME(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9484   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9485                                        NULL);
9486
9487   return offset;
9488 }
9489
9490
9491 static const ber_sequence_t gsm_map_ms_EPC_AV_sequence[] = {
9492   { &hf_gsm_map_ms_rand     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND },
9493   { &hf_gsm_map_ms_xres     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES },
9494   { &hf_gsm_map_ms_autn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN },
9495   { &hf_gsm_map_ms_kasme    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KASME },
9496   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9497   { NULL, 0, 0, 0, NULL }
9498 };
9499
9500 static int
9501 dissect_gsm_map_ms_EPC_AV(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9502   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9503                                    gsm_map_ms_EPC_AV_sequence, hf_index, ett_gsm_map_ms_EPC_AV);
9504
9505   return offset;
9506 }
9507
9508
9509 static const ber_sequence_t gsm_map_ms_EPS_AuthenticationSetList_sequence_of[1] = {
9510   { &hf_gsm_map_ms_EPS_AuthenticationSetList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EPC_AV },
9511 };
9512
9513 static int
9514 dissect_gsm_map_ms_EPS_AuthenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9515   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9516                                       gsm_map_ms_EPS_AuthenticationSetList_sequence_of, hf_index, ett_gsm_map_ms_EPS_AuthenticationSetList);
9517
9518   return offset;
9519 }
9520
9521
9522 static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = {
9523   { &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 },
9524   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9525   { &hf_gsm_map_ms_eps_AuthenticationSetList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_AuthenticationSetList },
9526   { NULL, 0, 0, 0, NULL }
9527 };
9528
9529 static int
9530 dissect_gsm_map_ms_SendAuthenticationInfoRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9531   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9532                                    gsm_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U);
9533
9534   return offset;
9535 }
9536
9537
9538
9539 static int
9540 dissect_gsm_map_ms_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9541   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
9542                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U);
9543
9544   return offset;
9545 }
9546
9547
9548 static const asn_namedbit gsm_map_ms_RequestedEquipmentInfo_bits[] = {
9549   {  0, &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
9550   {  1, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
9551   { 0, NULL, 0, 0, NULL, NULL }
9552 };
9553
9554 static int
9555 dissect_gsm_map_ms_RequestedEquipmentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9556   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
9557                                     gsm_map_ms_RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo,
9558                                     NULL);
9559
9560   return offset;
9561 }
9562
9563
9564 static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = {
9565   { &hf_gsm_map_ms_imei     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
9566   { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
9567   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9568   { NULL, 0, 0, 0, NULL }
9569 };
9570
9571 static int
9572 dissect_gsm_map_ms_CheckIMEI_Arg(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
9574                                    gsm_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg);
9575
9576   return offset;
9577 }
9578
9579
9580 static const value_string gsm_map_ms_EquipmentStatus_vals[] = {
9581   {   0, "whiteListed" },
9582   {   1, "blackListed" },
9583   {   2, "greyListed" },
9584   { 0, NULL }
9585 };
9586
9587
9588 static int
9589 dissect_gsm_map_ms_EquipmentStatus(gboolean 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);
9592
9593   return offset;
9594 }
9595
9596
9597 static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = {
9598   { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus },
9599   { &hf_gsm_map_ms_bmuef    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu },
9600   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9601   { NULL, 0, 0, 0, NULL }
9602 };
9603
9604 static int
9605 dissect_gsm_map_ms_CheckIMEI_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9606   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9607                                    gsm_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res);
9608
9609   return offset;
9610 }
9611
9612
9613
9614 static int
9615 dissect_gsm_map_ms_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9616   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9617                                        NULL);
9618
9619   return offset;
9620 }
9621
9622
9623 static const value_string gsm_map_ms_SubscriberStatus_vals[] = {
9624   {   0, "serviceGranted" },
9625   {   1, "operatorDeterminedBarring" },
9626   { 0, NULL }
9627 };
9628
9629
9630 static int
9631 dissect_gsm_map_ms_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9632   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9633                                   NULL);
9634
9635   return offset;
9636 }
9637
9638
9639 static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = {
9640   { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode },
9641 };
9642
9643 static int
9644 dissect_gsm_map_ms_BearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9645   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9646                                       gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList);
9647
9648   return offset;
9649 }
9650
9651
9652 static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = {
9653   { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
9654 };
9655
9656 static int
9657 dissect_gsm_map_ms_TeleserviceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9658   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9659                                       gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList);
9660
9661   return offset;
9662 }
9663
9664
9665
9666 int
9667 dissect_gsm_map_ms_Ext_ForwOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9668   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9669                                        NULL);
9670
9671   return offset;
9672 }
9673
9674
9675
9676 static int
9677 dissect_gsm_map_ms_T_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9678   offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
9679
9680 #line 529 "../../asn1/gsm_map/gsm_map.cnf"
9681
9682         proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN);
9683         proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN);
9684         proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN);
9685         proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN);
9686
9687
9688
9689   return offset;
9690 }
9691
9692
9693
9694 int
9695 dissect_gsm_map_ms_Ext_NoRepCondTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9696   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9697                                                 NULL);
9698
9699   return offset;
9700 }
9701
9702
9703 static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = {
9704   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9705   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
9706   { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
9707   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
9708   { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions },
9709   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
9710   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9711   { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
9712   { NULL, 0, 0, 0, NULL }
9713 };
9714
9715 static int
9716 dissect_gsm_map_ms_Ext_ForwFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9717   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9718                                    gsm_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature);
9719
9720   return offset;
9721 }
9722
9723
9724 static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = {
9725   { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature },
9726 };
9727
9728 static int
9729 dissect_gsm_map_ms_Ext_ForwFeatureList(gboolean 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_sequence_of(implicit_tag, actx, tree, tvb, offset,
9731                                       gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList);
9732
9733   return offset;
9734 }
9735
9736
9737 static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = {
9738   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9739   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
9740   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9741   { NULL, 0, 0, 0, NULL }
9742 };
9743
9744 static int
9745 dissect_gsm_map_ms_Ext_ForwInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9746   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9747                                    gsm_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo);
9748
9749   return offset;
9750 }
9751
9752
9753 static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = {
9754   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9755   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
9756   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9757   { NULL, 0, 0, 0, NULL }
9758 };
9759
9760 static int
9761 dissect_gsm_map_ms_Ext_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9762   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9763                                    gsm_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature);
9764
9765   return offset;
9766 }
9767
9768
9769 static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = {
9770   { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature },
9771 };
9772
9773 static int
9774 dissect_gsm_map_ms_Ext_CallBarFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9775   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9776                                       gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList);
9777
9778   return offset;
9779 }
9780
9781
9782 static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = {
9783   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9784   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
9785   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9786   { NULL, 0, 0, 0, NULL }
9787 };
9788
9789 static int
9790 dissect_gsm_map_ms_Ext_CallBarInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9791   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9792                                    gsm_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo);
9793
9794   return offset;
9795 }
9796
9797
9798
9799 int
9800 dissect_gsm_map_ms_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9801   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9802                                                 NULL);
9803
9804   return offset;
9805 }
9806
9807
9808
9809 int
9810 dissect_gsm_map_ms_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9811   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9812                                        NULL);
9813
9814   return offset;
9815 }
9816
9817
9818 static const value_string gsm_map_ms_IntraCUG_Options_vals[] = {
9819   {   0, "noCUG-Restrictions" },
9820   {   1, "cugIC-CallBarred" },
9821   {   2, "cugOG-CallBarred" },
9822   { 0, NULL }
9823 };
9824
9825
9826 static int
9827 dissect_gsm_map_ms_IntraCUG_Options(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9828   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
9829                                   NULL);
9830
9831   return offset;
9832 }
9833
9834
9835 static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = {
9836   { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9837 };
9838
9839 static int
9840 dissect_gsm_map_ms_Ext_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9841   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9842                                       gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList);
9843
9844   return offset;
9845 }
9846
9847
9848 static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = {
9849   { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index },
9850   { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
9851   { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options },
9852   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
9853   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9854   { NULL, 0, 0, 0, NULL }
9855 };
9856
9857 static int
9858 dissect_gsm_map_ms_CUG_Subscription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9859   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9860                                    gsm_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription);
9861
9862   return offset;
9863 }
9864
9865
9866 static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = {
9867   { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription },
9868 };
9869
9870 static int
9871 dissect_gsm_map_ms_CUG_SubscriptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9872   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9873                                       gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList);
9874
9875   return offset;
9876 }
9877
9878
9879
9880 static int
9881 dissect_gsm_map_ms_InterCUG_Restrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9882   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
9883                                        NULL);
9884
9885   return offset;
9886 }
9887
9888
9889 static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = {
9890   { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
9891   { &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 },
9892   { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions },
9893   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
9894   { NULL, 0, 0, 0, NULL }
9895 };
9896
9897 static int
9898 dissect_gsm_map_ms_CUG_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9899   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9900                                    gsm_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature);
9901
9902   return offset;
9903 }
9904
9905
9906 static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = {
9907   { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature },
9908 };
9909
9910 static int
9911 dissect_gsm_map_ms_CUG_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9912   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9913                                       gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList);
9914
9915   return offset;
9916 }
9917
9918
9919 static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = {
9920   { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList },
9921   { &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 },
9922   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9923   { NULL, 0, 0, 0, NULL }
9924 };
9925
9926 int
9927 dissect_gsm_map_ms_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9928   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9929                                    gsm_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info);
9930
9931   return offset;
9932 }
9933
9934
9935 static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = {
9936   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
9937   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
9938   { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption },
9939   { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList },
9940   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
9941   { NULL, 0, 0, 0, NULL }
9942 };
9943
9944 static int
9945 dissect_gsm_map_ms_Ext_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9946   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
9947                                    gsm_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data);
9948
9949   return offset;
9950 }
9951
9952
9953 static const value_string gsm_map_ms_Ext_SS_Info_vals[] = {
9954   {   0, "forwardingInfo" },
9955   {   1, "callBarringInfo" },
9956   {   2, "cug-Info" },
9957   {   3, "ss-Data" },
9958   {   4, "emlpp-Info" },
9959   { 0, NULL }
9960 };
9961
9962 static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = {
9963   {   0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo },
9964   {   1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo },
9965   {   2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info },
9966   {   3, &hf_gsm_map_ms_ss_Data  , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data },
9967   {   4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info },
9968   { 0, NULL, 0, 0, 0, NULL }
9969 };
9970
9971 static int
9972 dissect_gsm_map_ms_Ext_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9973   offset = dissect_ber_choice(actx, tree, tvb, offset,
9974                                  gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info,
9975                                  NULL);
9976
9977   return offset;
9978 }
9979
9980
9981 static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = {
9982   { &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 },
9983 };
9984
9985 static int
9986 dissect_gsm_map_ms_Ext_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9987   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
9988                                       gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList);
9989
9990   return offset;
9991 }
9992
9993
9994 static const asn_namedbit gsm_map_ms_ODB_GeneralData_bits[] = {
9995   {  0, &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
9996   {  1, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
9997   {  2, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL },
9998   {  6, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL },
9999   {  7, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL },
10000   {  8, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL },
10001   {  3, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL },
10002   {  4, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL },
10003   {  5, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL },
10004   {  9, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL },
10005   { 10, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL },
10006   { 11, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL },
10007   { 12, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL },
10008   { 13, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL },
10009   { 14, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL },
10010   { 15, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL },
10011   { 16, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL },
10012   { 17, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL },
10013   { 18, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL },
10014   { 19, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL },
10015   { 20, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL },
10016   { 21, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL },
10017   { 22, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL },
10018   { 23, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL },
10019   { 24, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL },
10020   { 25, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL },
10021   { 26, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL },
10022   { 27, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL },
10023   { 28, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL },
10024   { 0, NULL, 0, 0, NULL, NULL }
10025 };
10026
10027 static int
10028 dissect_gsm_map_ms_ODB_GeneralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10029   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10030                                     gsm_map_ms_ODB_GeneralData_bits, hf_index, ett_gsm_map_ms_ODB_GeneralData,
10031                                     NULL);
10032
10033   return offset;
10034 }
10035
10036
10037 static const asn_namedbit gsm_map_ms_ODB_HPLMN_Data_bits[] = {
10038   {  0, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
10039   {  1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
10040   {  2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL },
10041   {  3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL },
10042   { 0, NULL, 0, 0, NULL, NULL }
10043 };
10044
10045 static int
10046 dissect_gsm_map_ms_ODB_HPLMN_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10047   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10048                                     gsm_map_ms_ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data,
10049                                     NULL);
10050
10051   return offset;
10052 }
10053
10054
10055 static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = {
10056   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData },
10057   { &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 },
10058   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10059   { NULL, 0, 0, 0, NULL }
10060 };
10061
10062 static int
10063 dissect_gsm_map_ms_ODB_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10064   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10065                                    gsm_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data);
10066
10067   return offset;
10068 }
10069
10070
10071
10072 static int
10073 dissect_gsm_map_ms_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10074   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10075
10076   return offset;
10077 }
10078
10079
10080
10081 static int
10082 dissect_gsm_map_ms_Long_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10083   offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
10084
10085   return offset;
10086 }
10087
10088
10089 static const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = {
10090   { &hf_gsm_map_ms_groupid  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
10091   { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
10092   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10093   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
10094   { NULL, 0, 0, 0, NULL }
10095 };
10096
10097 static int
10098 dissect_gsm_map_ms_VoiceBroadcastData(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
10100                                    gsm_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData);
10101
10102   return offset;
10103 }
10104
10105
10106 static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = {
10107   { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData },
10108 };
10109
10110 static int
10111 dissect_gsm_map_ms_VBSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10112   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10113                                       gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList);
10114
10115   return offset;
10116 }
10117
10118
10119 static const asn_namedbit gsm_map_ms_AdditionalSubscriptions_bits[] = {
10120   {  0, &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL },
10121   {  1, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL },
10122   {  2, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL },
10123   { 0, NULL, 0, 0, NULL, NULL }
10124 };
10125
10126 static int
10127 dissect_gsm_map_ms_AdditionalSubscriptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10128   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10129                                     gsm_map_ms_AdditionalSubscriptions_bits, hf_index, ett_gsm_map_ms_AdditionalSubscriptions,
10130                                     NULL);
10131
10132   return offset;
10133 }
10134
10135
10136
10137 static int
10138 dissect_gsm_map_ms_AdditionalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10139   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
10140                                     NULL, hf_index, -1,
10141                                     NULL);
10142
10143   return offset;
10144 }
10145
10146
10147 static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = {
10148   { &hf_gsm_map_ms_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId },
10149   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10150   { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
10151   { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
10152   { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId },
10153   { NULL, 0, 0, 0, NULL }
10154 };
10155
10156 static int
10157 dissect_gsm_map_ms_VoiceGroupCallData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10158   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10159                                    gsm_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData);
10160
10161   return offset;
10162 }
10163
10164
10165 static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = {
10166   { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData },
10167 };
10168
10169 static int
10170 dissect_gsm_map_ms_VGCSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10171   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10172                                       gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList);
10173
10174   return offset;
10175 }
10176
10177
10178 static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = {
10179   {   2, "collectedInfo" },
10180   {   4, "routeSelectFailure" },
10181   { 0, NULL }
10182 };
10183
10184
10185 static int
10186 dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10187   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10188                                   NULL);
10189
10190   return offset;
10191 }
10192
10193
10194
10195 int
10196 dissect_gsm_map_ms_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10197   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10198                                                 NULL);
10199
10200   return offset;
10201 }
10202
10203
10204 static const value_string gsm_map_ms_DefaultCallHandling_vals[] = {
10205   {   0, "continueCall" },
10206   {   1, "releaseCall" },
10207   { 0, NULL }
10208 };
10209
10210
10211 static int
10212 dissect_gsm_map_ms_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10213   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10214                                   NULL);
10215
10216   return offset;
10217 }
10218
10219
10220 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = {
10221   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
10222   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
10223   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10224   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
10225   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10226   { NULL, 0, 0, 0, NULL }
10227 };
10228
10229 static int
10230 dissect_gsm_map_ms_O_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10231   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10232                                    gsm_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData);
10233
10234   return offset;
10235 }
10236
10237
10238 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = {
10239   { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData },
10240 };
10241
10242 static int
10243 dissect_gsm_map_ms_O_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10244   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10245                                       gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList);
10246
10247   return offset;
10248 }
10249
10250
10251
10252 static int
10253 dissect_gsm_map_ms_CamelCapabilityHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10254   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10255                                                 NULL);
10256
10257   return offset;
10258 }
10259
10260
10261 static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = {
10262   { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList },
10263   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10264   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
10265   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10266   { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10267   { NULL, 0, 0, 0, NULL }
10268 };
10269
10270 int
10271 dissect_gsm_map_ms_O_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10272   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10273                                    gsm_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI);
10274
10275   return offset;
10276 }
10277
10278
10279 static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = {
10280   { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
10281 };
10282
10283 static int
10284 dissect_gsm_map_ms_SS_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10285   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10286                                       gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList);
10287
10288   return offset;
10289 }
10290
10291
10292 static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = {
10293   { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList },
10294   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10295   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10296   { NULL, 0, 0, 0, NULL }
10297 };
10298
10299 static int
10300 dissect_gsm_map_ms_SS_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10301   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10302                                    gsm_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData);
10303
10304   return offset;
10305 }
10306
10307
10308 static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = {
10309   { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData },
10310   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10311   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10312   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10313   { NULL, 0, 0, 0, NULL }
10314 };
10315
10316 static int
10317 dissect_gsm_map_ms_SS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10318   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10319                                    gsm_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI);
10320
10321   return offset;
10322 }
10323
10324
10325 static const value_string gsm_map_ms_MatchType_vals[] = {
10326   {   0, "inhibiting" },
10327   {   1, "enabling" },
10328   { 0, NULL }
10329 };
10330
10331
10332 static int
10333 dissect_gsm_map_ms_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10334   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10335                                   NULL);
10336
10337   return offset;
10338 }
10339
10340
10341 static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = {
10342   { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10343 };
10344
10345 static int
10346 dissect_gsm_map_ms_DestinationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10347   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10348                                       gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList);
10349
10350   return offset;
10351 }
10352
10353
10354
10355 static int
10356 dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10357   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10358                                                 NULL);
10359
10360   return offset;
10361 }
10362
10363
10364 static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = {
10365   { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits },
10366 };
10367
10368 static int
10369 dissect_gsm_map_ms_DestinationNumberLengthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10370   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10371                                       gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList);
10372
10373   return offset;
10374 }
10375
10376
10377 static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = {
10378   { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType },
10379   { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList },
10380   { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList },
10381   { NULL, 0, 0, 0, NULL }
10382 };
10383
10384 static int
10385 dissect_gsm_map_ms_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10386   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10387                                    gsm_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria);
10388
10389   return offset;
10390 }
10391
10392
10393 static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = {
10394   { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
10395 };
10396
10397 static int
10398 dissect_gsm_map_ms_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10399   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10400                                       gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria);
10401
10402   return offset;
10403 }
10404
10405
10406 static const value_string gsm_map_ms_CallTypeCriteria_vals[] = {
10407   {   0, "forwarded" },
10408   {   1, "notForwarded" },
10409   { 0, NULL }
10410 };
10411
10412
10413 static int
10414 dissect_gsm_map_ms_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10415   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10416                                   NULL);
10417
10418   return offset;
10419 }
10420
10421
10422
10423 static int
10424 dissect_gsm_map_ms_CauseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10425   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10426                                        NULL);
10427
10428   return offset;
10429 }
10430
10431
10432 static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = {
10433   { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
10434 };
10435
10436 static int
10437 dissect_gsm_map_ms_O_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10438   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10439                                       gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria);
10440
10441   return offset;
10442 }
10443
10444
10445 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = {
10446   { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint },
10447   { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria },
10448   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
10449   { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria },
10450   { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria },
10451   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10452   { NULL, 0, 0, 0, NULL }
10453 };
10454
10455 static int
10456 dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10457   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10458                                    gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria);
10459
10460   return offset;
10461 }
10462
10463
10464 static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
10465   { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria },
10466 };
10467
10468 int
10469 dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10470   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10471                                       gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList);
10472
10473   return offset;
10474 }
10475
10476
10477
10478 static int
10479 dissect_gsm_map_ms_MM_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10480   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10481                                        NULL);
10482
10483   return offset;
10484 }
10485
10486
10487 static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = {
10488   { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code },
10489 };
10490
10491 static int
10492 dissect_gsm_map_ms_MobilityTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10493   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10494                                       gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers);
10495
10496   return offset;
10497 }
10498
10499
10500 static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = {
10501   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
10502   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
10503   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10504   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10505   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10506   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10507   { NULL, 0, 0, 0, NULL }
10508 };
10509
10510 static int
10511 dissect_gsm_map_ms_M_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10512   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10513                                    gsm_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI);
10514
10515   return offset;
10516 }
10517
10518
10519 static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = {
10520   {   1, "sms-CollectedInfo" },
10521   {   2, "sms-DeliveryRequest" },
10522   { 0, NULL }
10523 };
10524
10525
10526 static int
10527 dissect_gsm_map_ms_SMS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10528   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10529                                   NULL);
10530
10531   return offset;
10532 }
10533
10534
10535 const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = {
10536   {   0, "continueTransaction" },
10537   {   1, "releaseTransaction" },
10538   { 0, NULL }
10539 };
10540
10541
10542 int
10543 dissect_gsm_map_ms_DefaultSMS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10544   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10545                                   NULL);
10546
10547   return offset;
10548 }
10549
10550
10551 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = {
10552   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
10553   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
10554   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10555   { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling },
10556   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10557   { NULL, 0, 0, 0, NULL }
10558 };
10559
10560 static int
10561 dissect_gsm_map_ms_SMS_CAMEL_TDP_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10563                                    gsm_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data);
10564
10565   return offset;
10566 }
10567
10568
10569 static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = {
10570   { &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 },
10571 };
10572
10573 static int
10574 dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList(gboolean 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_of(implicit_tag, actx, tree, tvb, offset,
10576                                       gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList);
10577
10578   return offset;
10579 }
10580
10581
10582 static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = {
10583   { &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 },
10584   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
10585   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10586   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10587   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10588   { NULL, 0, 0, 0, NULL }
10589 };
10590
10591 static int
10592 dissect_gsm_map_ms_SMS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10593   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10594                                    gsm_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI);
10595
10596   return offset;
10597 }
10598
10599
10600 static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = {
10601   {  12, "termAttemptAuthorized" },
10602   {  13, "tBusy" },
10603   {  14, "tNoAnswer" },
10604   { 0, NULL }
10605 };
10606
10607
10608 static int
10609 dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10610   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10611                                   NULL);
10612
10613   return offset;
10614 }
10615
10616
10617 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = {
10618   { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
10619   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
10620   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
10621   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling },
10622   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10623   { NULL, 0, 0, 0, NULL }
10624 };
10625
10626 static int
10627 dissect_gsm_map_ms_T_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10628   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10629                                    gsm_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData);
10630
10631   return offset;
10632 }
10633
10634
10635 static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = {
10636   { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData },
10637 };
10638
10639 static int
10640 dissect_gsm_map_ms_T_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10641   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10642                                       gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList);
10643
10644   return offset;
10645 }
10646
10647
10648 static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = {
10649   { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList },
10650   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10651   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
10652   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10653   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10654   { NULL, 0, 0, 0, NULL }
10655 };
10656
10657 static int
10658 dissect_gsm_map_ms_T_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10659   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10660                                    gsm_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI);
10661
10662   return offset;
10663 }
10664
10665
10666 static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = {
10667   { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue },
10668 };
10669
10670 static int
10671 dissect_gsm_map_ms_T_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10672   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10673                                       gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria);
10674
10675   return offset;
10676 }
10677
10678
10679 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
10680   { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint },
10681   { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria },
10682   { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria },
10683   { NULL, 0, 0, 0, NULL }
10684 };
10685
10686 static int
10687 dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10688   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10689                                    gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria);
10690
10691   return offset;
10692 }
10693
10694
10695 static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
10696   { &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 },
10697 };
10698
10699 static int
10700 dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10701   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10702                                       gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList);
10703
10704   return offset;
10705 }
10706
10707
10708 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = {
10709   { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10710   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
10711   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
10712   { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling },
10713   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
10714   { NULL, 0, 0, 0, NULL }
10715 };
10716
10717 static int
10718 dissect_gsm_map_ms_DP_AnalysedInfoCriterium(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10719   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10720                                    gsm_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium);
10721
10722   return offset;
10723 }
10724
10725
10726 static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = {
10727   { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium },
10728 };
10729
10730 static int
10731 dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10732   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10733                                       gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList);
10734
10735   return offset;
10736 }
10737
10738
10739 static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = {
10740   { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList },
10741   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
10742   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10743   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10744   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10745   { NULL, 0, 0, 0, NULL }
10746 };
10747
10748 int
10749 dissect_gsm_map_ms_D_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10750   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10751                                    gsm_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI);
10752
10753   return offset;
10754 }
10755
10756
10757 static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = {
10758   {   0, "sms-DELIVER" },
10759   {   1, "sms-SUBMIT-REPORT" },
10760   {   2, "sms-STATUS-REPORT" },
10761   { 0, NULL }
10762 };
10763
10764
10765 static int
10766 dissect_gsm_map_ms_MT_SMS_TPDU_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10767   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10768                                   NULL);
10769
10770   return offset;
10771 }
10772
10773
10774 static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = {
10775   { &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 },
10776 };
10777
10778 static int
10779 dissect_gsm_map_ms_TPDU_TypeCriterion(gboolean 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_sequence_of(implicit_tag, actx, tree, tvb, offset,
10781                                       gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion);
10782
10783   return offset;
10784 }
10785
10786
10787 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = {
10788   { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint },
10789   { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion },
10790   { NULL, 0, 0, 0, NULL }
10791 };
10792
10793 static int
10794 dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10795   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10796                                    gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria);
10797
10798   return offset;
10799 }
10800
10801
10802 static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
10803   { &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 },
10804 };
10805
10806 static int
10807 dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10808   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
10809                                       gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList);
10810
10811   return offset;
10812 }
10813
10814
10815 static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = {
10816   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
10817   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10818   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
10819   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
10820   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
10821   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
10822   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10823   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
10824   { &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 },
10825   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
10826   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
10827   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
10828   { NULL, 0, 0, 0, NULL }
10829 };
10830
10831 static int
10832 dissect_gsm_map_ms_VlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10833   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10834                                    gsm_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo);
10835
10836   return offset;
10837 }
10838
10839
10840
10841 static int
10842 dissect_gsm_map_ms_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10843 #line 537 "../../asn1/gsm_map/gsm_map.cnf"
10844         guint8 pdp_type_org;
10845         tvbuff_t        *parameter_tvb;
10846
10847
10848   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10849                                        &parameter_tvb);
10850
10851
10852  if (!parameter_tvb)
10853         return offset;
10854         proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
10855         pdp_type_org = tvb_get_guint8(parameter_tvb,1);
10856         switch (pdp_type_org){
10857                 case 0: /* ETSI */
10858                         proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
10859                         break;
10860                 case 1: /* IETF */
10861                         proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN);
10862                         break;
10863                 default:
10864                 break;
10865         }
10866
10867
10868
10869   return offset;
10870 }
10871
10872
10873
10874 int
10875 dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10876 #line 559 "../../asn1/gsm_map/gsm_map.cnf"
10877
10878
10879         tvbuff_t        *parameter_tvb;
10880
10881   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10882                                        &parameter_tvb);
10883
10884
10885          if (!parameter_tvb)
10886                 return offset;
10887         de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0);
10888
10889
10890
10891   return offset;
10892 }
10893
10894
10895
10896 int
10897 dissect_gsm_map_ms_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10898 #line 570 "../../asn1/gsm_map/gsm_map.cnf"
10899
10900         tvbuff_t        *parameter_tvb;
10901
10902   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10903                                        &parameter_tvb);
10904
10905
10906         if (!parameter_tvb)
10907                 return offset;
10908         dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx);
10909
10910
10911
10912   return offset;
10913 }
10914
10915
10916
10917 static int
10918 dissect_gsm_map_ms_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10919   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10920                                        NULL);
10921
10922   return offset;
10923 }
10924
10925
10926
10927 int
10928 dissect_gsm_map_ms_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10929   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10930                                        NULL);
10931
10932   return offset;
10933 }
10934
10935
10936
10937 int
10938 dissect_gsm_map_ms_Ext3_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10939   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10940                                        NULL);
10941
10942   return offset;
10943 }
10944
10945
10946
10947 static int
10948 dissect_gsm_map_ms_Ext4_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10949   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10950                                        NULL);
10951
10952   return offset;
10953 }
10954
10955
10956
10957 static int
10958 dissect_gsm_map_ms_APN_OI_Replacement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10959   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10960                                        NULL);
10961
10962   return offset;
10963 }
10964
10965
10966
10967 static int
10968 dissect_gsm_map_ms_Ext_PDP_Type(gboolean 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
10970                                        NULL);
10971
10972   return offset;
10973 }
10974
10975
10976
10977 static int
10978 dissect_gsm_map_ms_Bandwidth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10979   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
10980                                                 NULL);
10981
10982   return offset;
10983 }
10984
10985
10986 static const ber_sequence_t gsm_map_ms_AMBR_sequence[] = {
10987   { &hf_gsm_map_ms_max_RequestedBandwidth_UL, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
10988   { &hf_gsm_map_ms_max_RequestedBandwidth_DL, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth },
10989   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
10990   { NULL, 0, 0, 0, NULL }
10991 };
10992
10993 static int
10994 dissect_gsm_map_ms_AMBR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10995   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
10996                                    gsm_map_ms_AMBR_sequence, hf_index, ett_gsm_map_ms_AMBR);
10997
10998   return offset;
10999 }
11000
11001
11002 static const value_string gsm_map_ms_SIPTO_Permission_vals[] = {
11003   {   0, "siptoAllowed" },
11004   {   1, "siptoNotAllowed" },
11005   { 0, NULL }
11006 };
11007
11008
11009 static int
11010 dissect_gsm_map_ms_SIPTO_Permission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11011   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11012                                   NULL);
11013
11014   return offset;
11015 }
11016
11017
11018 static const value_string gsm_map_ms_LIPA_Permission_vals[] = {
11019   {   0, "lipaProhibited" },
11020   {   1, "lipaOnly" },
11021   {   2, "lipaConditional" },
11022   { 0, NULL }
11023 };
11024
11025
11026 static int
11027 dissect_gsm_map_ms_LIPA_Permission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11028   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11029                                   NULL);
11030
11031   return offset;
11032 }
11033
11034
11035 static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = {
11036   { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
11037   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
11038   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
11039   { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
11040   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11041   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
11042   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11043   { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
11044   { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
11045   { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
11046   { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
11047   { &hf_gsm_map_ms_ext4_QoS_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
11048   { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
11049   { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type },
11050   { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
11051   { &hf_gsm_map_ms_ambr     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
11052   { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission },
11053   { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission },
11054   { NULL, 0, 0, 0, NULL }
11055 };
11056
11057 static int
11058 dissect_gsm_map_ms_PDP_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11059   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11060                                    gsm_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context);
11061
11062   return offset;
11063 }
11064
11065
11066 static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = {
11067   { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context },
11068 };
11069
11070 static int
11071 dissect_gsm_map_ms_GPRSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11072   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11073                                       gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList);
11074
11075   return offset;
11076 }
11077
11078
11079 static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = {
11080   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11081   { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList },
11082   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11083   { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
11084   { NULL, 0, 0, 0, NULL }
11085 };
11086
11087 static int
11088 dissect_gsm_map_ms_GPRSSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11089   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11090                                    gsm_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData);
11091
11092   return offset;
11093 }
11094
11095
11096 static const value_string gsm_map_ms_NetworkAccessMode_vals[] = {
11097   {   0, "packetAndCircuit" },
11098   {   1, "onlyCircuit" },
11099   {   2, "onlyPacket" },
11100   { 0, NULL }
11101 };
11102
11103
11104 static int
11105 dissect_gsm_map_ms_NetworkAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11106   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11107                                   NULL);
11108
11109   return offset;
11110 }
11111
11112
11113 static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = {
11114   {   0, "accessOutsideLSAsAllowed" },
11115   {   1, "accessOutsideLSAsRestricted" },
11116   { 0, NULL }
11117 };
11118
11119
11120 static int
11121 dissect_gsm_map_ms_LSAOnlyAccessIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11122   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11123                                   NULL);
11124
11125   return offset;
11126 }
11127
11128
11129
11130 int
11131 dissect_gsm_map_ms_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11132   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11133                                        NULL);
11134
11135   return offset;
11136 }
11137
11138
11139
11140 static int
11141 dissect_gsm_map_ms_LSAAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11142   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11143                                        NULL);
11144
11145   return offset;
11146 }
11147
11148
11149 static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = {
11150   { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
11151   { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes },
11152   { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11153   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11154   { NULL, 0, 0, 0, NULL }
11155 };
11156
11157 static int
11158 dissect_gsm_map_ms_LSAData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11159   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11160                                    gsm_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData);
11161
11162   return offset;
11163 }
11164
11165
11166 static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = {
11167   { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData },
11168 };
11169
11170 static int
11171 dissect_gsm_map_ms_LSADataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11172   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11173                                       gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList);
11174
11175   return offset;
11176 }
11177
11178
11179 static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = {
11180   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11181   { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator },
11182   { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList },
11183   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11184   { NULL, 0, 0, 0, NULL }
11185 };
11186
11187 static int
11188 dissect_gsm_map_ms_LSAInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11189   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11190                                    gsm_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation);
11191
11192   return offset;
11193 }
11194
11195
11196 static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = {
11197   { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
11198 };
11199
11200 static int
11201 dissect_gsm_map_ms_GMLC_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11202   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11203                                       gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List);
11204
11205   return offset;
11206 }
11207
11208
11209 const value_string gsm_map_ms_NotificationToMSUser_vals[] = {
11210   {   0, "notifyLocationAllowed" },
11211   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
11212   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
11213   {   3, "locationNotAllowed" },
11214   { 0, NULL }
11215 };
11216
11217
11218 int
11219 dissect_gsm_map_ms_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11220   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11221                                   NULL);
11222
11223   return offset;
11224 }
11225
11226
11227 static const value_string gsm_map_ms_GMLC_Restriction_vals[] = {
11228   {   0, "gmlc-List" },
11229   {   1, "home-Country" },
11230   { 0, NULL }
11231 };
11232
11233
11234 static int
11235 dissect_gsm_map_ms_GMLC_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11236   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11237                                   NULL);
11238
11239   return offset;
11240 }
11241
11242
11243 static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = {
11244   { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID },
11245   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
11246   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
11247   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11248   { NULL, 0, 0, 0, NULL }
11249 };
11250
11251 static int
11252 dissect_gsm_map_ms_ExternalClient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11253   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11254                                    gsm_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient);
11255
11256   return offset;
11257 }
11258
11259
11260 static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = {
11261   { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
11262 };
11263
11264 static int
11265 dissect_gsm_map_ms_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11266   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11267                                       gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList);
11268
11269   return offset;
11270 }
11271
11272
11273 static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = {
11274   { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID },
11275 };
11276
11277 static int
11278 dissect_gsm_map_ms_PLMNClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11279   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11280                                       gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList);
11281
11282   return offset;
11283 }
11284
11285
11286 static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = {
11287   { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient },
11288 };
11289
11290 static int
11291 dissect_gsm_map_ms_Ext_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11292   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11293                                       gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList);
11294
11295   return offset;
11296 }
11297
11298
11299 static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = {
11300   { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID },
11301   { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction },
11302   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
11303   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11304   { NULL, 0, 0, 0, NULL }
11305 };
11306
11307 static int
11308 dissect_gsm_map_ms_ServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11309   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11310                                    gsm_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType);
11311
11312   return offset;
11313 }
11314
11315
11316 static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = {
11317   { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType },
11318 };
11319
11320 static int
11321 dissect_gsm_map_ms_ServiceTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11322   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11323                                       gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList);
11324
11325   return offset;
11326 }
11327
11328
11329 static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = {
11330   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11331   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
11332   { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
11333   { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList },
11334   { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList },
11335   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11336   { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList },
11337   { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList },
11338   { NULL, 0, 0, 0, NULL }
11339 };
11340
11341 static int
11342 dissect_gsm_map_ms_LCS_PrivacyClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11343   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11344                                    gsm_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass);
11345
11346   return offset;
11347 }
11348
11349
11350 static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = {
11351   { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass },
11352 };
11353
11354 static int
11355 dissect_gsm_map_ms_LCS_PrivacyExceptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11356   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11357                                       gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList);
11358
11359   return offset;
11360 }
11361
11362
11363 static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = {
11364   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code },
11365   { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status },
11366   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11367   { NULL, 0, 0, 0, NULL }
11368 };
11369
11370 static int
11371 dissect_gsm_map_ms_MOLR_Class(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11372   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11373                                    gsm_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class);
11374
11375   return offset;
11376 }
11377
11378
11379 static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = {
11380   { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class },
11381 };
11382
11383 static int
11384 dissect_gsm_map_ms_MOLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11385   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11386                                       gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List);
11387
11388   return offset;
11389 }
11390
11391
11392 static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = {
11393   { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List },
11394   { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
11395   { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List },
11396   { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList },
11397   { NULL, 0, 0, 0, NULL }
11398 };
11399
11400 static int
11401 dissect_gsm_map_ms_LCSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11402   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11403                                    gsm_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation);
11404
11405   return offset;
11406 }
11407
11408
11409
11410 static int
11411 dissect_gsm_map_ms_IST_AlertTimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11412   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11413                                                 NULL);
11414
11415   return offset;
11416 }
11417
11418
11419
11420 static int
11421 dissect_gsm_map_ms_CS_AllocationRetentionPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11422   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11423                                        NULL);
11424
11425   return offset;
11426 }
11427
11428
11429 static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = {
11430   {   1, "attach" },
11431   {   2, "attachChangeOfPosition" },
11432   {  11, "pdp-ContextEstablishment" },
11433   {  12, "pdp-ContextEstablishmentAcknowledgement" },
11434   {  14, "pdp-ContextChangeOfPosition" },
11435   { 0, NULL }
11436 };
11437
11438
11439 static int
11440 dissect_gsm_map_ms_GPRS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11441   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11442                                   NULL);
11443
11444   return offset;
11445 }
11446
11447
11448 const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = {
11449   {   0, "continueTransaction" },
11450   {   1, "releaseTransaction" },
11451   { 0, NULL }
11452 };
11453
11454
11455 int
11456 dissect_gsm_map_ms_DefaultGPRS_Handling(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11458                                   NULL);
11459
11460   return offset;
11461 }
11462
11463
11464 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = {
11465   { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint },
11466   { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
11467   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11468   { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling },
11469   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11470   { NULL, 0, 0, 0, NULL }
11471 };
11472
11473 static int
11474 dissect_gsm_map_ms_GPRS_CamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11475   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11476                                    gsm_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData);
11477
11478   return offset;
11479 }
11480
11481
11482 static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = {
11483   { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData },
11484 };
11485
11486 static int
11487 dissect_gsm_map_ms_GPRS_CamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11488   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11489                                       gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList);
11490
11491   return offset;
11492 }
11493
11494
11495 static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = {
11496   { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList },
11497   { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling },
11498   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11499   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11500   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11501   { NULL, 0, 0, 0, NULL }
11502 };
11503
11504 static int
11505 dissect_gsm_map_ms_GPRS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11506   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11507                                    gsm_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI);
11508
11509   return offset;
11510 }
11511
11512
11513 static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = {
11514   { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers },
11515   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
11516   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11517   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11518   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11519   { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11520   { NULL, 0, 0, 0, NULL }
11521 };
11522
11523 static int
11524 dissect_gsm_map_ms_MG_CSI(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
11526                                    gsm_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI);
11527
11528   return offset;
11529 }
11530
11531
11532 static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = {
11533   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
11534   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
11535   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11536   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
11537   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
11538   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
11539   { NULL, 0, 0, 0, NULL }
11540 };
11541
11542 static int
11543 dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11544   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11545                                    gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo);
11546
11547   return offset;
11548 }
11549
11550
11551 static const asn_namedbit gsm_map_ms_AccessRestrictionData_bits[] = {
11552   {  0, &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
11553   {  1, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
11554   {  2, &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed, -1, -1, "ganNotAllowed", NULL },
11555   {  3, &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed, -1, -1, "i-hspa-evolutionNotAllowed", NULL },
11556   {  4, &hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed, -1, -1, "e-utranNotAllowed", NULL },
11557   {  5, &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed, -1, -1, "ho-toNon3GPP-AccessNotAllowed", NULL },
11558   { 0, NULL, 0, 0, NULL, NULL }
11559 };
11560
11561 static int
11562 dissect_gsm_map_ms_AccessRestrictionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11563   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
11564                                     gsm_map_ms_AccessRestrictionData_bits, hf_index, ett_gsm_map_ms_AccessRestrictionData,
11565                                     NULL);
11566
11567   return offset;
11568 }
11569
11570
11571
11572 static int
11573 dissect_gsm_map_ms_RFSP_ID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11574   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11575                                                 NULL);
11576
11577   return offset;
11578 }
11579
11580
11581
11582 static int
11583 dissect_gsm_map_ms_PDN_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11584   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
11585                                        NULL);
11586
11587   return offset;
11588 }
11589
11590
11591
11592 static int
11593 dissect_gsm_map_ms_QoS_Class_Identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11594   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11595                                                 NULL);
11596
11597   return offset;
11598 }
11599
11600
11601
11602 static int
11603 dissect_gsm_map_ms_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11604   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11605                                                 NULL);
11606
11607   return offset;
11608 }
11609
11610
11611 static const ber_sequence_t gsm_map_ms_Allocation_Retention_Priority_sequence[] = {
11612   { &hf_gsm_map_ms_priority_level, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_INTEGER },
11613   { &hf_gsm_map_ms_pre_emption_capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
11614   { &hf_gsm_map_ms_pre_emption_vulnerability, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
11615   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11616   { NULL, 0, 0, 0, NULL }
11617 };
11618
11619 static int
11620 dissect_gsm_map_ms_Allocation_Retention_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11621   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11622                                    gsm_map_ms_Allocation_Retention_Priority_sequence, hf_index, ett_gsm_map_ms_Allocation_Retention_Priority);
11623
11624   return offset;
11625 }
11626
11627
11628 static const ber_sequence_t gsm_map_ms_EPS_QoS_Subscribed_sequence[] = {
11629   { &hf_gsm_map_ms_qos_Class_Identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Class_Identifier },
11630   { &hf_gsm_map_ms_allocation_Retention_Priority, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Allocation_Retention_Priority },
11631   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11632   { NULL, 0, 0, 0, NULL }
11633 };
11634
11635 static int
11636 dissect_gsm_map_ms_EPS_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11637   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11638                                    gsm_map_ms_EPS_QoS_Subscribed_sequence, hf_index, ett_gsm_map_ms_EPS_QoS_Subscribed);
11639
11640   return offset;
11641 }
11642
11643
11644 static const value_string gsm_map_ms_PDN_GW_AllocationType_vals[] = {
11645   {   0, "static" },
11646   {   1, "dynamic" },
11647   { 0, NULL }
11648 };
11649
11650
11651 static int
11652 dissect_gsm_map_ms_PDN_GW_AllocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11653   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11654                                   NULL);
11655
11656   return offset;
11657 }
11658
11659
11660 static const ber_sequence_t gsm_map_ms_SpecificAPNInfo_sequence[] = {
11661   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
11662   { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
11663   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11664   { NULL, 0, 0, 0, NULL }
11665 };
11666
11667 static int
11668 dissect_gsm_map_ms_SpecificAPNInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11669   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11670                                    gsm_map_ms_SpecificAPNInfo_sequence, hf_index, ett_gsm_map_ms_SpecificAPNInfo);
11671
11672   return offset;
11673 }
11674
11675
11676 static const ber_sequence_t gsm_map_ms_SpecificAPNInfoList_sequence_of[1] = {
11677   { &hf_gsm_map_ms_SpecificAPNInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SpecificAPNInfo },
11678 };
11679
11680 static int
11681 dissect_gsm_map_ms_SpecificAPNInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11682   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11683                                       gsm_map_ms_SpecificAPNInfoList_sequence_of, hf_index, ett_gsm_map_ms_SpecificAPNInfoList);
11684
11685   return offset;
11686 }
11687
11688
11689 static const ber_sequence_t gsm_map_ms_APN_Configuration_sequence[] = {
11690   { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
11691   { &hf_gsm_map_ms_pdn_Type , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_Type },
11692   { &hf_gsm_map_ms_servedPartyIP_IPv4_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
11693   { &hf_gsm_map_ms_apn      , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
11694   { &hf_gsm_map_ms_eps_qos_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_QoS_Subscribed },
11695   { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity },
11696   { &hf_gsm_map_ms_pdn_gw_AllocationType, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_AllocationType },
11697   { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11698   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
11699   { &hf_gsm_map_ms_ambr     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
11700   { &hf_gsm_map_ms_specificAPNInfoList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificAPNInfoList },
11701   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11702   { &hf_gsm_map_ms_servedPartyIP_IPv6_Address, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
11703   { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
11704   { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission },
11705   { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission },
11706   { NULL, 0, 0, 0, NULL }
11707 };
11708
11709 static int
11710 dissect_gsm_map_ms_APN_Configuration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11711   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11712                                    gsm_map_ms_APN_Configuration_sequence, hf_index, ett_gsm_map_ms_APN_Configuration);
11713
11714   return offset;
11715 }
11716
11717
11718 static const ber_sequence_t gsm_map_ms_EPS_DataList_sequence_of[1] = {
11719   { &hf_gsm_map_ms_EPS_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN_Configuration },
11720 };
11721
11722 static int
11723 dissect_gsm_map_ms_EPS_DataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11724   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11725                                       gsm_map_ms_EPS_DataList_sequence_of, hf_index, ett_gsm_map_ms_EPS_DataList);
11726
11727   return offset;
11728 }
11729
11730
11731 static const ber_sequence_t gsm_map_ms_APN_ConfigurationProfile_sequence[] = {
11732   { &hf_gsm_map_ms_defaultContext, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
11733   { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11734   { &hf_gsm_map_ms_epsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_DataList },
11735   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11736   { NULL, 0, 0, 0, NULL }
11737 };
11738
11739 static int
11740 dissect_gsm_map_ms_APN_ConfigurationProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11741   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11742                                    gsm_map_ms_APN_ConfigurationProfile_sequence, hf_index, ett_gsm_map_ms_APN_ConfigurationProfile);
11743
11744   return offset;
11745 }
11746
11747
11748 static const ber_sequence_t gsm_map_ms_EPS_SubscriptionData_sequence[] = {
11749   { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement },
11750   { &hf_gsm_map_ms_rfsp_id  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RFSP_ID },
11751   { &hf_gsm_map_ms_ambr     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR },
11752   { &hf_gsm_map_ms_apn_ConfigurationProfile, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_ConfigurationProfile },
11753   { &hf_gsm_map_ms_stn_sr   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11754   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11755   { &hf_gsm_map_ms_mps_CSPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11756   { &hf_gsm_map_ms_mps_EPSPriority, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11757   { &hf_gsm_map_ms_subscribed_vsrvcc, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11758   { NULL, 0, 0, 0, NULL }
11759 };
11760
11761 static int
11762 dissect_gsm_map_ms_EPS_SubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11763   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11764                                    gsm_map_ms_EPS_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_EPS_SubscriptionData);
11765
11766   return offset;
11767 }
11768
11769
11770
11771 static int
11772 dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11773   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11774                                                 NULL);
11775
11776   return offset;
11777 }
11778
11779
11780
11781 static int
11782 dissect_gsm_map_ms_SubscribedPeriodicLAUtimer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11783   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11784                                                 NULL);
11785
11786   return offset;
11787 }
11788
11789
11790 static const ber_sequence_t gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of[1] = {
11791   { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData },
11792 };
11793
11794 static int
11795 dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11796   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11797                                       gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList);
11798
11799   return offset;
11800 }
11801
11802
11803 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = {
11804   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
11805   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11806   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
11807   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
11808   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
11809   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
11810   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
11811   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
11812   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11813   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
11814   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
11815   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
11816   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
11817   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11818   { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
11819   { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData },
11820   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11821   { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode },
11822   { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation },
11823   { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11824   { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation },
11825   { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
11826   { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator },
11827   { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info },
11828   { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority },
11829   { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo },
11830   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
11831   { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData },
11832   { &hf_gsm_map_ms_ics_Indicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
11833   { &hf_gsm_map_ms_eps_SubscriptionData, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_SubscriptionData },
11834   { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
11835   { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11836   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11837   { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
11838   { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer },
11839   { &hf_gsm_map_ms_vplmnLIPAAllowed, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11840   { &hf_gsm_map_ms_mdtUserConsent, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN },
11841   { &hf_gsm_map_ms_subscribedPeriodicLAUtimer, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicLAUtimer },
11842   { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList },
11843   { &hf_gsm_map_ms_additionalMSISDN, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11844   { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11845   { &hf_gsm_map_ms_smsInSGSNAllowed, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11846   { NULL, 0, 0, 0, NULL }
11847 };
11848
11849 static int
11850 dissect_gsm_map_ms_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11851   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11852                                    gsm_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg);
11853
11854   return offset;
11855 }
11856
11857
11858 static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = {
11859   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
11860   { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category },
11861   { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus },
11862   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
11863   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
11864   { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList },
11865   { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
11866   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
11867   { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList },
11868   { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList },
11869   { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList },
11870   { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo },
11871   { NULL, 0, 0, 0, NULL }
11872 };
11873
11874 static int
11875 dissect_gsm_map_ms_SubscriberData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11876   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11877                                    gsm_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData);
11878
11879   return offset;
11880 }
11881
11882
11883 static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = {
11884   {   0, "networkNode-AreaRestricted" },
11885   {   1, "tooManyZoneCodes" },
11886   {   2, "zoneCodesConflict" },
11887   {   3, "regionalSubscNotSupported" },
11888   { 0, NULL }
11889 };
11890
11891
11892 static int
11893 dissect_gsm_map_ms_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11894   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
11895                                   NULL);
11896
11897   return offset;
11898 }
11899
11900
11901 static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = {
11902   { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList },
11903   { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList },
11904   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
11905   { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData },
11906   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
11907   { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
11908   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
11909   { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
11910   { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures },
11911   { NULL, 0, 0, 0, NULL }
11912 };
11913
11914 static int
11915 dissect_gsm_map_ms_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11916   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
11917                                    gsm_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes);
11918
11919   return offset;
11920 }
11921
11922
11923 static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = {
11924   { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode },
11925 };
11926
11927 static int
11928 dissect_gsm_map_ms_BasicServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11929   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11930                                       gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList);
11931
11932   return offset;
11933 }
11934
11935
11936 static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = {
11937   { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId },
11938 };
11939
11940 static int
11941 dissect_gsm_map_ms_ContextIdList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11942   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11943                                       gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList);
11944
11945   return offset;
11946 }
11947
11948
11949 static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = {
11950   {   0, "allGPRSData" },
11951   {   1, "contextIdList" },
11952   { 0, NULL }
11953 };
11954
11955 static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = {
11956   {   0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11957   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
11958   { 0, NULL, 0, 0, 0, NULL }
11959 };
11960
11961 static int
11962 dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11963   offset = dissect_ber_choice(actx, tree, tvb, offset,
11964                                  gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
11965                                  NULL);
11966
11967   return offset;
11968 }
11969
11970
11971 static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = {
11972   { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity },
11973 };
11974
11975 static int
11976 dissect_gsm_map_ms_LSAIdentityList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11977   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
11978                                       gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList);
11979
11980   return offset;
11981 }
11982
11983
11984 static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = {
11985   {   0, "allLSAData" },
11986   {   1, "lsaIdentityList" },
11987   { 0, NULL }
11988 };
11989
11990 static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = {
11991   {   0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
11992   {   1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList },
11993   { 0, NULL, 0, 0, 0, NULL }
11994 };
11995
11996 static int
11997 dissect_gsm_map_ms_LSAInformationWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11998   offset = dissect_ber_choice(actx, tree, tvb, offset,
11999                                  gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw,
12000                                  NULL);
12001
12002   return offset;
12003 }
12004
12005
12006 static const asn_namedbit gsm_map_ms_SpecificCSI_Withdraw_bits[] = {
12007   {  0, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
12008   {  1, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
12009   {  2, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL },
12010   {  3, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL },
12011   {  4, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL },
12012   {  5, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL },
12013   {  6, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL },
12014   {  7, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL },
12015   {  8, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL },
12016   {  9, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
12017   { 10, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL },
12018   { 11, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL },
12019   { 12, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL },
12020   { 13, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL },
12021   { 0, NULL, 0, 0, NULL, NULL }
12022 };
12023
12024 static int
12025 dissect_gsm_map_ms_SpecificCSI_Withdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12026   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12027                                     gsm_map_ms_SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw,
12028                                     NULL);
12029
12030   return offset;
12031 }
12032
12033
12034 static const value_string gsm_map_ms_EPS_SubscriptionDataWithdraw_vals[] = {
12035   {   0, "allEPS-Data" },
12036   {   1, "contextIdList" },
12037   { 0, NULL }
12038 };
12039
12040 static const ber_choice_t gsm_map_ms_EPS_SubscriptionDataWithdraw_choice[] = {
12041   {   0, &hf_gsm_map_ms_allEPS_Data, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12042   {   1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList },
12043   { 0, NULL, 0, 0, 0, NULL }
12044 };
12045
12046 static int
12047 dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12048   offset = dissect_ber_choice(actx, tree, tvb, offset,
12049                                  gsm_map_ms_EPS_SubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
12050                                  NULL);
12051
12052   return offset;
12053 }
12054
12055
12056 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = {
12057   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12058   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
12059   { &hf_gsm_map_ms_ss_List  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
12060   { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12061   { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode },
12062   { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12063   { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12064   { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12065   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12066   { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw },
12067   { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12068   { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw },
12069   { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12070   { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12071   { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
12072   { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12073   { &hf_gsm_map_ms_stn_srWithdraw, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12074   { &hf_gsm_map_ms_epsSubscriptionDataWithdraw, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw },
12075   { &hf_gsm_map_ms_apn_oi_replacementWithdraw, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12076   { &hf_gsm_map_ms_csg_SubscriptionDeleted, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12077   { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12078   { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12079   { &hf_gsm_map_ms_subscribed_vsrvccWithdraw, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12080   { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12081   { &hf_gsm_map_ms_additionalMSISDN_Withdraw, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12082   { NULL, 0, 0, 0, NULL }
12083 };
12084
12085 static int
12086 dissect_gsm_map_ms_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12087   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12088                                    gsm_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg);
12089
12090   return offset;
12091 }
12092
12093
12094 static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = {
12095   { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse },
12096   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12097   { NULL, 0, 0, 0, NULL }
12098 };
12099
12100 static int
12101 dissect_gsm_map_ms_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12102   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12103                                    gsm_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes);
12104
12105   return offset;
12106 }
12107
12108
12109 static const asn_namedbit gsm_map_ms_OfferedCamel4Functionalities_bits[] = {
12110   {  0, &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
12111   {  1, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
12112   {  2, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
12113   {  3, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
12114   {  4, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
12115   {  5, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
12116   {  6, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
12117   {  7, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
12118   {  8, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
12119   {  9, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
12120   { 10, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
12121   { 11, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
12122   { 12, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
12123   { 13, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
12124   { 14, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
12125   { 15, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
12126   { 16, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
12127   { 17, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
12128   { 18, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
12129   { 19, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL },
12130   { 0, NULL, 0, 0, NULL, NULL }
12131 };
12132
12133 int
12134 dissect_gsm_map_ms_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12135   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12136                                     gsm_map_ms_OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities,
12137                                     NULL);
12138
12139   return offset;
12140 }
12141
12142
12143 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = {
12144   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12145   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12146   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12147   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12148   { NULL, 0, 0, 0, NULL }
12149 };
12150
12151 static int
12152 dissect_gsm_map_ms_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12153   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12154                                    gsm_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg);
12155
12156   return offset;
12157 }
12158
12159
12160 static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = {
12161   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12162   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12163   { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM },
12164   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12165   { NULL, 0, 0, 0, NULL }
12166 };
12167
12168 static int
12169 dissect_gsm_map_ms_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12170   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12171                                    gsm_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes);
12172
12173   return offset;
12174 }
12175
12176
12177 static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = {
12178   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12179   { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12180   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12181   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12182   { NULL, 0, 0, 0, NULL }
12183 };
12184
12185 static int
12186 dissect_gsm_map_ms_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12187   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12188                                    gsm_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg);
12189
12190   return offset;
12191 }
12192
12193
12194 static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = {
12195   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12196   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12197   { NULL, 0, 0, 0, NULL }
12198 };
12199
12200 static int
12201 dissect_gsm_map_ms_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12202   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12203                                    gsm_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes);
12204
12205   return offset;
12206 }
12207
12208
12209 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = {
12210   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12211   { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12212   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12213   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12214   { NULL, 0, 0, 0, NULL }
12215 };
12216
12217 static int
12218 dissect_gsm_map_ms_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12219   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12220                                    gsm_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg);
12221
12222   return offset;
12223 }
12224
12225
12226 static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = {
12227   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12228   { NULL, 0, 0, 0, NULL }
12229 };
12230
12231 static int
12232 dissect_gsm_map_ms_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12233   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12234                                    gsm_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes);
12235
12236   return offset;
12237 }
12238
12239
12240 static const value_string gsm_map_ms_SendingNode_Number_vals[] = {
12241   {   0, "hlr-Number" },
12242   {   1, "css-Number" },
12243   { 0, NULL }
12244 };
12245
12246 static const ber_choice_t gsm_map_ms_SendingNode_Number_choice[] = {
12247   {   0, &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12248   {   1, &hf_gsm_map_ms_css_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12249   { 0, NULL, 0, 0, 0, NULL }
12250 };
12251
12252 static int
12253 dissect_gsm_map_ms_SendingNode_Number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12254   offset = dissect_ber_choice(actx, tree, tvb, offset,
12255                                  gsm_map_ms_SendingNode_Number_choice, hf_index, ett_gsm_map_ms_SendingNode_Number,
12256                                  NULL);
12257
12258   return offset;
12259 }
12260
12261
12262 static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = {
12263   { &hf_gsm_map_ms_sendingNodenumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SendingNode_Number },
12264   { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List },
12265   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12266   { NULL, 0, 0, 0, NULL }
12267 };
12268
12269 static int
12270 dissect_gsm_map_ms_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12271   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12272                                    gsm_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg);
12273
12274   return offset;
12275 }
12276
12277
12278 static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = {
12279   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
12280   { &hf_gsm_map_ms_lmsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI },
12281   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12282   { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability },
12283   { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12284   { NULL, 0, 0, 0, NULL }
12285 };
12286
12287 static int
12288 dissect_gsm_map_ms_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12289   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12290                                    gsm_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg);
12291
12292   return offset;
12293 }
12294
12295
12296 static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = {
12297   { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
12298   { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
12299   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12300   { NULL, 0, 0, 0, NULL }
12301 };
12302
12303 static int
12304 dissect_gsm_map_ms_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12305   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12306                                    gsm_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes);
12307
12308   return offset;
12309 }
12310
12311
12312 static const value_string gsm_map_ms_DomainType_vals[] = {
12313   {   0, "cs-Domain" },
12314   {   1, "ps-Domain" },
12315   { 0, NULL }
12316 };
12317
12318
12319 static int
12320 dissect_gsm_map_ms_DomainType(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12322                                   NULL);
12323
12324   return offset;
12325 }
12326
12327
12328 static const asn_namedbit gsm_map_ms_RequestedNodes_bits[] = {
12329   {  0, &hf_gsm_map_ms_RequestedNodes_mme, -1, -1, "mme", NULL },
12330   {  1, &hf_gsm_map_ms_RequestedNodes_sgsn, -1, -1, "sgsn", NULL },
12331   { 0, NULL, 0, 0, NULL, NULL }
12332 };
12333
12334 static int
12335 dissect_gsm_map_ms_RequestedNodes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12336   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
12337                                     gsm_map_ms_RequestedNodes_bits, hf_index, ett_gsm_map_ms_RequestedNodes,
12338                                     NULL);
12339
12340   return offset;
12341 }
12342
12343
12344 static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = {
12345   { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12346   { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12347   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12348   { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12349   { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType },
12350   { &hf_gsm_map_ms_imei_01  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12351   { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12352   { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12353   { &hf_gsm_map_ms_locationInformationEPS_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12354   { &hf_gsm_map_ms_t_adsData, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12355   { &hf_gsm_map_ms_requestedNodes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedNodes },
12356   { &hf_gsm_map_ms_servingNodeIndication, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12357   { &hf_gsm_map_ms_localTimeZoneRequest, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12358   { NULL, 0, 0, 0, NULL }
12359 };
12360
12361 static int
12362 dissect_gsm_map_ms_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12363   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12364                                    gsm_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo);
12365
12366   return offset;
12367 }
12368
12369
12370 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = {
12371   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12372   { &hf_gsm_map_ms_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
12373   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
12374   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12375   { &hf_gsm_map_ms_callPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
12376   { NULL, 0, 0, 0, NULL }
12377 };
12378
12379 static int
12380 dissect_gsm_map_ms_ProvideSubscriberInfoArg(gboolean 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(implicit_tag, actx, tree, tvb, offset,
12382                                    gsm_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg);
12383
12384   return offset;
12385 }
12386
12387
12388
12389 int
12390 dissect_gsm_map_ms_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12391   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12392                                        NULL);
12393
12394   return offset;
12395 }
12396
12397
12398
12399 static int
12400 dissect_gsm_map_ms_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12401 #line 896 "../../asn1/gsm_map/gsm_map.cnf"
12402  tvbuff_t       *parameter_tvb;
12403  proto_tree     *subtree;
12404  const char     *digit_str;
12405  guint8         na;
12406  guint8         np;
12407   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12408                                        &parameter_tvb);
12409
12410   if (!parameter_tvb)
12411       return offset;
12412
12413   subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LocationNumber);
12414
12415   proto_tree_add_item(subtree, hf_gsm_map_locationnumber_odd_even, tvb, 0, 1, ENC_BIG_ENDIAN);
12416   na = tvb_get_guint8(tvb,0) & 0x7f;
12417   proto_tree_add_item(subtree, hf_gsm_map_locationnumber_nai, tvb, 0, 1, ENC_BIG_ENDIAN);
12418
12419   proto_tree_add_item(subtree, hf_gsm_map_locationnumber_inn, tvb, 1, 1, ENC_BIG_ENDIAN);
12420   np = (tvb_get_guint8(tvb,1) & 0x70) >> 4;
12421   proto_tree_add_item(subtree, hf_gsm_map_locationnumber_npi, tvb, 1, 1, ENC_BIG_ENDIAN);
12422   proto_tree_add_item(subtree, hf_gsm_map_locationnumber_apri, tvb, 1, 1, ENC_BIG_ENDIAN);
12423   proto_tree_add_item(subtree, hf_gsm_map_locationnumber_screening_ind, tvb, 1, 1, ENC_BIG_ENDIAN);
12424
12425  digit_str = unpack_digits(tvb, 1);
12426
12427  proto_tree_add_string(tree, hf_gsm_map_locationnumber_digits, tvb, 1, -1, digit_str);
12428
12429  if ((na == 3) && (np==1))/*International Number & E164*/
12430         dissect_e164_cc(tvb, tree, 1, TRUE);
12431
12432
12433
12434   return offset;
12435 }
12436
12437
12438
12439 static int
12440 dissect_gsm_map_ms_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12441   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12442                                        NULL);
12443
12444   return offset;
12445 }
12446
12447
12448 static const ber_sequence_t gsm_map_ms_LocationInformationEPS_sequence[] = {
12449   { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI },
12450   { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id },
12451   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12452   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
12453   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
12454   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12455   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12456   { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
12457   { NULL, 0, 0, 0, NULL }
12458 };
12459
12460 static int
12461 dissect_gsm_map_ms_LocationInformationEPS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12462   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12463                                    gsm_map_ms_LocationInformationEPS_sequence, hf_index, ett_gsm_map_ms_LocationInformationEPS);
12464
12465   return offset;
12466 }
12467
12468
12469
12470 static int
12471 dissect_gsm_map_ms_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12472   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12473                                        NULL);
12474
12475   return offset;
12476 }
12477
12478
12479 static const ber_sequence_t gsm_map_ms_UserCSGInformation_sequence[] = {
12480   { &hf_gsm_map_ms_csg_Id   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_Id },
12481   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12482   { &hf_gsm_map_ms_accessMode, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 },
12483   { &hf_gsm_map_ms_cmi      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 },
12484   { NULL, 0, 0, 0, NULL }
12485 };
12486
12487 static int
12488 dissect_gsm_map_ms_UserCSGInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12489   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12490                                    gsm_map_ms_UserCSGInformation_sequence, hf_index, ett_gsm_map_ms_UserCSGInformation);
12491
12492   return offset;
12493 }
12494
12495
12496 static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = {
12497   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation },
12498   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
12499   { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12500   { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber },
12501   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12502   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12503   { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
12504   { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12505   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
12506   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12507   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12508   { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
12509   { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation },
12510   { NULL, 0, 0, 0, NULL }
12511 };
12512
12513 int
12514 dissect_gsm_map_ms_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12515   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12516                                    gsm_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation);
12517
12518   return offset;
12519 }
12520
12521
12522 static const value_string gsm_map_ms_NotReachableReason_vals[] = {
12523   {   0, "msPurged" },
12524   {   1, "imsiDetached" },
12525   {   2, "restrictedArea" },
12526   {   3, "notRegistered" },
12527   { 0, NULL }
12528 };
12529
12530
12531 static int
12532 dissect_gsm_map_ms_NotReachableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12533   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12534                                   NULL);
12535
12536   return offset;
12537 }
12538
12539
12540 const value_string gsm_map_ms_SubscriberState_vals[] = {
12541   {   0, "assumedIdle" },
12542   {   1, "camelBusy" },
12543   {   2, "netDetNotReachable" },
12544   {   3, "notProvidedFromVLR" },
12545   { 0, NULL }
12546 };
12547
12548 static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = {
12549   {   0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12550   {   1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12551   {   2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
12552   {   3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12553   { 0, NULL, 0, 0, 0, NULL }
12554 };
12555
12556 int
12557 dissect_gsm_map_ms_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12558   offset = dissect_ber_choice(actx, tree, tvb, offset,
12559                                  gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState,
12560                                  NULL);
12561
12562   return offset;
12563 }
12564
12565
12566 static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = {
12567   { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
12568   { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_RAIdentity },
12569   { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
12570   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12571   { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
12572   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12573   { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12574   { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation },
12575   { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12576   { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
12577   { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation },
12578   { NULL, 0, 0, 0, NULL }
12579 };
12580
12581 static int
12582 dissect_gsm_map_ms_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12583   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12584                                    gsm_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS);
12585
12586   return offset;
12587 }
12588
12589
12590
12591 static int
12592 dissect_gsm_map_ms_NSAPI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12593   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12594                                                 NULL);
12595
12596   return offset;
12597 }
12598
12599
12600
12601 static int
12602 dissect_gsm_map_ms_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12603   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12604                                        NULL);
12605
12606   return offset;
12607 }
12608
12609
12610
12611 static int
12612 dissect_gsm_map_ms_TEID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12613   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12614                                        NULL);
12615
12616   return offset;
12617 }
12618
12619
12620
12621 int
12622 dissect_gsm_map_ms_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12623   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12624                                        NULL);
12625
12626   return offset;
12627 }
12628
12629
12630 static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = {
12631   { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId },
12632   { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12633   { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type },
12634   { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12635   { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12636   { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
12637   { &hf_gsm_map_ms_nsapi    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI },
12638   { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId },
12639   { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
12640   { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID },
12641   { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12642   { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
12643   { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
12644   { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
12645   { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
12646   { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics },
12647   { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
12648   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12649   { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
12650   { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
12651   { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
12652   { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
12653   { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
12654   { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
12655   { &hf_gsm_map_ms_qos4_Subscribed, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
12656   { &hf_gsm_map_ms_qos4_Requested, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
12657   { &hf_gsm_map_ms_qos4_Negotiated, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed },
12658   { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type },
12659   { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address },
12660   { NULL, 0, 0, 0, NULL }
12661 };
12662
12663 static int
12664 dissect_gsm_map_ms_PDP_ContextInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12665   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12666                                    gsm_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo);
12667
12668   return offset;
12669 }
12670
12671
12672 static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = {
12673   { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo },
12674 };
12675
12676 static int
12677 dissect_gsm_map_ms_PDP_ContextInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12678   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
12679                                       gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList);
12680
12681   return offset;
12682 }
12683
12684
12685 static const value_string gsm_map_ms_PS_SubscriberState_vals[] = {
12686   {   0, "notProvidedFromSGSNorMME" },
12687   {   1, "ps-Detached" },
12688   {   2, "ps-AttachedNotReachableForPaging" },
12689   {   3, "ps-AttachedReachableForPaging" },
12690   {   4, "ps-PDP-ActiveNotReachableForPaging" },
12691   {   5, "ps-PDP-ActiveReachableForPaging" },
12692   {   6, "netDetNotReachable" },
12693   { 0, NULL }
12694 };
12695
12696 static const ber_choice_t gsm_map_ms_PS_SubscriberState_choice[] = {
12697   {   0, &hf_gsm_map_ms_notProvidedFromSGSNorMME, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12698   {   1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12699   {   2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12700   {   3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12701   {   4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
12702   {   5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList },
12703   {   6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason },
12704   { 0, NULL, 0, 0, 0, NULL }
12705 };
12706
12707 static int
12708 dissect_gsm_map_ms_PS_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12709   offset = dissect_ber_choice(actx, tree, tvb, offset,
12710                                  gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState,
12711                                  NULL);
12712
12713   return offset;
12714 }
12715
12716
12717
12718 int
12719 dissect_gsm_map_ms_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12720   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12721                                        NULL);
12722
12723   return offset;
12724 }
12725
12726
12727
12728 static int
12729 dissect_gsm_map_ms_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12730   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12731                                        NULL);
12732
12733   return offset;
12734 }
12735
12736
12737
12738 static int
12739 dissect_gsm_map_ms_MSRadioAccessCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12740   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12741                                        NULL);
12742
12743   return offset;
12744 }
12745
12746
12747 static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = {
12748   { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability },
12749   { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability },
12750   { NULL, 0, 0, 0, NULL }
12751 };
12752
12753 int
12754 dissect_gsm_map_ms_GPRSMSClass(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
12756                                    gsm_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass);
12757
12758   return offset;
12759 }
12760
12761
12762
12763 static int
12764 dissect_gsm_map_ms_RouteingNumber(gboolean 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_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
12766
12767   return offset;
12768 }
12769
12770
12771 static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = {
12772   {   0, "notKnownToBePorted" },
12773   {   1, "ownNumberPortedOut" },
12774   {   2, "foreignNumberPortedToForeignNetwork" },
12775   {   4, "ownNumberNotPortedOut" },
12776   {   5, "foreignNumberPortedIn" },
12777   { 0, NULL }
12778 };
12779
12780
12781 static int
12782 dissect_gsm_map_ms_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12783   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12784                                   NULL);
12785
12786   return offset;
12787 }
12788
12789
12790 static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = {
12791   { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber },
12792   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
12793   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12794   { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
12795   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12796   { NULL, 0, 0, 0, NULL }
12797 };
12798
12799 static int
12800 dissect_gsm_map_ms_MNPInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12801   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12802                                    gsm_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes);
12803
12804   return offset;
12805 }
12806
12807
12808 static const value_string gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals[] = {
12809   {   0, "imsVoiceOverPS-SessionsNotSupported" },
12810   {   1, "imsVoiceOverPS-SessionsSupported" },
12811   {   2, "unknown" },
12812   { 0, NULL }
12813 };
12814
12815
12816 static int
12817 dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12819                                   NULL);
12820
12821   return offset;
12822 }
12823
12824
12825
12826 static int
12827 dissect_gsm_map_ms_TimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12828   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
12829                                        NULL);
12830
12831   return offset;
12832 }
12833
12834
12835 static const value_string gsm_map_ms_DaylightSavingTime_vals[] = {
12836   {   0, "noAdjustment" },
12837   {   1, "plusOneHourAdjustment" },
12838   {   2, "plusTwoHoursAdjustment" },
12839   { 0, NULL }
12840 };
12841
12842
12843 static int
12844 dissect_gsm_map_ms_DaylightSavingTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12845   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12846                                   NULL);
12847
12848   return offset;
12849 }
12850
12851
12852 static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = {
12853   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
12854   { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState },
12855   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12856   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
12857   { &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 },
12858   { &hf_gsm_map_ms_imei     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
12859   { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
12860   { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
12861   { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes },
12862   { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd },
12863   { &hf_gsm_map_ms_lastUE_ActivityTime, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time },
12864   { &hf_gsm_map_ms_lastRAT_Type, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type },
12865   { &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 },
12866   { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS },
12867   { &hf_gsm_map_ms_timeZone , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone },
12868   { &hf_gsm_map_ms_daylightSavingTime, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DaylightSavingTime },
12869   { NULL, 0, 0, 0, NULL }
12870 };
12871
12872 static int
12873 dissect_gsm_map_ms_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12874   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12875                                    gsm_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo);
12876
12877   return offset;
12878 }
12879
12880
12881 static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = {
12882   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
12883   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12884   { NULL, 0, 0, 0, NULL }
12885 };
12886
12887 static int
12888 dissect_gsm_map_ms_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12889   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12890                                    gsm_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes);
12891
12892   return offset;
12893 }
12894
12895
12896 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = {
12897   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12898   { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo },
12899   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
12900   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12901   { NULL, 0, 0, 0, NULL }
12902 };
12903
12904 static int
12905 dissect_gsm_map_ms_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12906   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12907                                    gsm_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg);
12908
12909   return offset;
12910 }
12911
12912
12913 static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = {
12914   { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo },
12915   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
12916   { NULL, 0, 0, 0, NULL }
12917 };
12918
12919 static int
12920 dissect_gsm_map_ms_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12921   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12922                                    gsm_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes);
12923
12924   return offset;
12925 }
12926
12927
12928 static const value_string gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals[] = {
12929   {   0, "o-CSI" },
12930   {   1, "t-CSI" },
12931   {   2, "vt-CSI" },
12932   {   3, "tif-CSI" },
12933   {   4, "gprs-CSI" },
12934   {   5, "mo-sms-CSI" },
12935   {   6, "ss-CSI" },
12936   {   7, "m-CSI" },
12937   {   8, "d-csi" },
12938   { 0, NULL }
12939 };
12940
12941
12942 static int
12943 dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12944   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12945                                   NULL);
12946
12947   return offset;
12948 }
12949
12950
12951 static const value_string gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
12952   {   0, "mt-sms-CSI" },
12953   {   1, "mg-csi" },
12954   {   2, "o-IM-CSI" },
12955   {   3, "d-IM-CSI" },
12956   {   4, "vt-IM-CSI" },
12957   { 0, NULL }
12958 };
12959
12960
12961 static int
12962 dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12963   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
12964                                   NULL);
12965
12966   return offset;
12967 }
12968
12969
12970 static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = {
12971   { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code },
12972   { &hf_gsm_map_ms_odb      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12973   { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
12974   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12975   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12976   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
12977   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
12978   { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12979   { &hf_gsm_map_ms_csg_SubscriptionDataRequested, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12980   { &hf_gsm_map_ms_cw_Info  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12981   { &hf_gsm_map_ms_clip_Info, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12982   { &hf_gsm_map_ms_clir_Info, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12983   { &hf_gsm_map_ms_hold_Info, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12984   { &hf_gsm_map_ms_ect_Info , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
12985   { NULL, 0, 0, 0, NULL }
12986 };
12987
12988 static int
12989 dissect_gsm_map_ms_RequestedSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12990   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
12991                                    gsm_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo);
12992
12993   return offset;
12994 }
12995
12996
12997 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = {
12998   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
12999   { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo },
13000   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13001   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13002   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13003   { NULL, 0, 0, 0, NULL }
13004 };
13005
13006 static int
13007 dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13008   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13009                                    gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg);
13010
13011   return offset;
13012 }
13013
13014
13015 static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = {
13016   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
13017   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13018   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13019   { NULL, 0, 0, 0, NULL }
13020 };
13021
13022 static int
13023 dissect_gsm_map_ms_CallForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13024   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13025                                    gsm_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData);
13026
13027   return offset;
13028 }
13029
13030
13031
13032 static int
13033 dissect_gsm_map_ms_WrongPasswordAttemptsCounter(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13035                                                 NULL);
13036
13037   return offset;
13038 }
13039
13040
13041 static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = {
13042   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
13043   { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password },
13044   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
13045   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13046   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13047   { NULL, 0, 0, 0, NULL }
13048 };
13049
13050 static int
13051 dissect_gsm_map_ms_CallBarringData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13052   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13053                                    gsm_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData);
13054
13055   return offset;
13056 }
13057
13058
13059 static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = {
13060   { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data },
13061   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13062   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13063   { NULL, 0, 0, 0, NULL }
13064 };
13065
13066 static int
13067 dissect_gsm_map_ms_ODB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13068   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13069                                    gsm_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info);
13070
13071   return offset;
13072 }
13073
13074
13075 static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = {
13076   { &hf_gsm_map_ms_o_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
13077   { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
13078   { &hf_gsm_map_ms_d_CSI    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
13079   { &hf_gsm_map_ms_t_CSI    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
13080   { &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 },
13081   { &hf_gsm_map_ms_vt_CSI   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
13082   { &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 },
13083   { &hf_gsm_map_ms_tif_CSI  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13084   { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13085   { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI },
13086   { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
13087   { &hf_gsm_map_ms_ss_CSI   , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI },
13088   { &hf_gsm_map_ms_m_CSI    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI },
13089   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13090   { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw },
13091   { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI },
13092   { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList },
13093   { &hf_gsm_map_ms_mg_csi   , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI },
13094   { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
13095   { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
13096   { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
13097   { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
13098   { &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 },
13099   { NULL, 0, 0, 0, NULL }
13100 };
13101
13102 static int
13103 dissect_gsm_map_ms_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13104   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13105                                    gsm_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo);
13106
13107   return offset;
13108 }
13109
13110
13111 static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = {
13112   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13113   { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList },
13114   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13115   { NULL, 0, 0, 0, NULL }
13116 };
13117
13118 static int
13119 dissect_gsm_map_ms_MSISDN_BS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13120   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13121                                    gsm_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS);
13122
13123   return offset;
13124 }
13125
13126
13127 static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = {
13128   { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS },
13129 };
13130
13131 static int
13132 dissect_gsm_map_ms_MSISDN_BS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13133   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
13134                                       gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List);
13135
13136   return offset;
13137 }
13138
13139
13140 static const ber_sequence_t gsm_map_ms_Ext_CwFeature_sequence[] = {
13141   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
13142   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13143   { NULL, 0, 0, 0, NULL }
13144 };
13145
13146 static int
13147 dissect_gsm_map_ms_Ext_CwFeature(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
13149                                    gsm_map_ms_Ext_CwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CwFeature);
13150
13151   return offset;
13152 }
13153
13154
13155 static const ber_sequence_t gsm_map_ms_Ext_CwFeatureList_sequence_of[1] = {
13156   { &hf_gsm_map_ms_Ext_CwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CwFeature },
13157 };
13158
13159 static int
13160 dissect_gsm_map_ms_Ext_CwFeatureList(gboolean 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_Ext_CwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CwFeatureList);
13163
13164   return offset;
13165 }
13166
13167
13168 static const ber_sequence_t gsm_map_ms_CallWaitingData_sequence[] = {
13169   { &hf_gsm_map_ms_cwFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CwFeatureList },
13170   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13171   { NULL, 0, 0, 0, NULL }
13172 };
13173
13174 static int
13175 dissect_gsm_map_ms_CallWaitingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13176   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13177                                    gsm_map_ms_CallWaitingData_sequence, hf_index, ett_gsm_map_ms_CallWaitingData);
13178
13179   return offset;
13180 }
13181
13182
13183 static const ber_sequence_t gsm_map_ms_CallHoldData_sequence[] = {
13184   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13185   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13186   { NULL, 0, 0, 0, NULL }
13187 };
13188
13189 static int
13190 dissect_gsm_map_ms_CallHoldData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13191   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13192                                    gsm_map_ms_CallHoldData_sequence, hf_index, ett_gsm_map_ms_CallHoldData);
13193
13194   return offset;
13195 }
13196
13197
13198 static const ber_sequence_t gsm_map_ms_ClipData_sequence[] = {
13199   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13200   { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
13201   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13202   { NULL, 0, 0, 0, NULL }
13203 };
13204
13205 static int
13206 dissect_gsm_map_ms_ClipData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13207   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13208                                    gsm_map_ms_ClipData_sequence, hf_index, ett_gsm_map_ms_ClipData);
13209
13210   return offset;
13211 }
13212
13213
13214 static const ber_sequence_t gsm_map_ms_ClirData_sequence[] = {
13215   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13216   { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
13217   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13218   { NULL, 0, 0, 0, NULL }
13219 };
13220
13221 static int
13222 dissect_gsm_map_ms_ClirData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13223   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13224                                    gsm_map_ms_ClirData_sequence, hf_index, ett_gsm_map_ms_ClirData);
13225
13226   return offset;
13227 }
13228
13229
13230 static const ber_sequence_t gsm_map_ms_EctData_sequence[] = {
13231   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13232   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13233   { NULL, 0, 0, 0, NULL }
13234 };
13235
13236 static int
13237 dissect_gsm_map_ms_EctData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13238   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13239                                    gsm_map_ms_EctData_sequence, hf_index, ett_gsm_map_ms_EctData);
13240
13241   return offset;
13242 }
13243
13244
13245 static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = {
13246   { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData },
13247   { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData },
13248   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
13249   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
13250   { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
13251   { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
13252   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13253   { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
13254   { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
13255   { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List },
13256   { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
13257   { &hf_gsm_map_ms_cw_Data  , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
13258   { &hf_gsm_map_ms_ch_Data  , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
13259   { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
13260   { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
13261   { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
13262   { NULL, 0, 0, 0, NULL }
13263 };
13264
13265 static int
13266 dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13267   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13268                                    gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes);
13269
13270   return offset;
13271 }
13272
13273
13274 static const value_string gsm_map_ms_ModificationInstruction_vals[] = {
13275   {   0, "deactivate" },
13276   {   1, "activate" },
13277   { 0, NULL }
13278 };
13279
13280
13281 static int
13282 dissect_gsm_map_ms_ModificationInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13283   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13284                                   NULL);
13285
13286   return offset;
13287 }
13288
13289
13290 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = {
13291   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
13292   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
13293   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13294   { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13295   { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
13296   { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime },
13297   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13298   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13299   { NULL, 0, 0, 0, NULL }
13300 };
13301
13302 static int
13303 dissect_gsm_map_ms_ModificationRequestFor_CF_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13304   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13305                                    gsm_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info);
13306
13307   return offset;
13308 }
13309
13310
13311 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = {
13312   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
13313   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
13314   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13315   { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
13316   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
13317   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13318   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13319   { NULL, 0, 0, 0, NULL }
13320 };
13321
13322 static int
13323 dissect_gsm_map_ms_ModificationRequestFor_CB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13324   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13325                                    gsm_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info);
13326
13327   return offset;
13328 }
13329
13330
13331 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = {
13332   { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo },
13333   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13334   { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13335   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13336   { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo },
13337   { NULL, 0, 0, 0, NULL }
13338 };
13339
13340 static int
13341 dissect_gsm_map_ms_ModificationRequestFor_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13342   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13343                                    gsm_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI);
13344
13345   return offset;
13346 }
13347
13348
13349 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = {
13350   { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data },
13351   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13352   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13353   { NULL, 0, 0, 0, NULL }
13354 };
13355
13356 static int
13357 dissect_gsm_map_ms_ModificationRequestFor_ODB_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13358   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13359                                    gsm_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data);
13360
13361   return offset;
13362 }
13363
13364
13365 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = {
13366   { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13367   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13368   { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress },
13369   { NULL, 0, 0, 0, NULL }
13370 };
13371
13372 static int
13373 dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13374   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13375                                    gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data);
13376
13377   return offset;
13378 }
13379
13380
13381 static const asn_namedbit gsm_map_ms_RequestedServingNode_bits[] = {
13382   {  0, &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn, -1, -1, "mmeAndSgsn", NULL },
13383   { 0, NULL, 0, 0, NULL, NULL }
13384 };
13385
13386 static int
13387 dissect_gsm_map_ms_RequestedServingNode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13388   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13389                                     gsm_map_ms_RequestedServingNode_bits, hf_index, ett_gsm_map_ms_RequestedServingNode,
13390                                     NULL);
13391
13392   return offset;
13393 }
13394
13395
13396 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSG_sequence[] = {
13397   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13398   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13399   { NULL, 0, 0, 0, NULL }
13400 };
13401
13402 static int
13403 dissect_gsm_map_ms_ModificationRequestFor_CSG(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13404   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13405                                    gsm_map_ms_ModificationRequestFor_CSG_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSG);
13406
13407   return offset;
13408 }
13409
13410
13411 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CW_Info_sequence[] = {
13412   { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
13413   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13414   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13415   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13416   { NULL, 0, 0, 0, NULL }
13417 };
13418
13419 static int
13420 dissect_gsm_map_ms_ModificationRequestFor_CW_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13421   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13422                                    gsm_map_ms_ModificationRequestFor_CW_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CW_Info);
13423
13424   return offset;
13425 }
13426
13427
13428 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence[] = {
13429   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13430   { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory },
13431   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13432   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13433   { NULL, 0, 0, 0, NULL }
13434 };
13435
13436 static int
13437 dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13438   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13439                                    gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIP_Info);
13440
13441   return offset;
13442 }
13443
13444
13445 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence[] = {
13446   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13447   { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption },
13448   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13449   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13450   { NULL, 0, 0, 0, NULL }
13451 };
13452
13453 static int
13454 dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13455   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13456                                    gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIR_Info);
13457
13458   return offset;
13459 }
13460
13461
13462 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CH_Info_sequence[] = {
13463   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13464   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13465   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13466   { NULL, 0, 0, 0, NULL }
13467 };
13468
13469 static int
13470 dissect_gsm_map_ms_ModificationRequestFor_CH_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13471   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13472                                    gsm_map_ms_ModificationRequestFor_CH_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CH_Info);
13473
13474   return offset;
13475 }
13476
13477
13478 static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ECT_Info_sequence[] = {
13479   { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status },
13480   { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction },
13481   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13482   { NULL, 0, 0, 0, NULL }
13483 };
13484
13485 static int
13486 dissect_gsm_map_ms_ModificationRequestFor_ECT_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13487   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13488                                    gsm_map_ms_ModificationRequestFor_ECT_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ECT_Info);
13489
13490   return offset;
13491 }
13492
13493
13494 static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = {
13495   { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
13496   { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13497   { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info },
13498   { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info },
13499   { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI },
13500   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13501   { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13502   { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data },
13503   { &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 },
13504   { &hf_gsm_map_ms_activationRequestForUE_reachability, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedServingNode },
13505   { &hf_gsm_map_ms_modificationRequestFor_CSG, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSG },
13506   { &hf_gsm_map_ms_modificationRequestFor_CW_Data, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CW_Info },
13507   { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info },
13508   { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info },
13509   { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CH_Info },
13510   { &hf_gsm_map_ms_modificationRequestFor_ECT_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ECT_Info },
13511   { NULL, 0, 0, 0, NULL }
13512 };
13513
13514 static int
13515 dissect_gsm_map_ms_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13516   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13517                                    gsm_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg);
13518
13519   return offset;
13520 }
13521
13522
13523 static const asn_namedbit gsm_map_ms_ServingNode_bits[] = {
13524   {  0, &hf_gsm_map_ms_ServingNode_mme, -1, -1, "mme", NULL },
13525   {  1, &hf_gsm_map_ms_ServingNode_sgsn, -1, -1, "sgsn", NULL },
13526   { 0, NULL, 0, 0, NULL, NULL }
13527 };
13528
13529 static int
13530 dissect_gsm_map_ms_ServingNode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13531   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13532                                     gsm_map_ms_ServingNode_bits, hf_index, ett_gsm_map_ms_ServingNode,
13533                                     NULL);
13534
13535   return offset;
13536 }
13537
13538
13539 static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = {
13540   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
13541   { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList },
13542   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13543   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13544   { NULL, 0, 0, 0, NULL }
13545 };
13546
13547 static int
13548 dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13549   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13550                                    gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE);
13551
13552   return offset;
13553 }
13554
13555
13556 static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = {
13557   { &hf_gsm_map_ms_ss_Code  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
13558   { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList },
13559   { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password },
13560   { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter },
13561   { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13562   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13563   { NULL, 0, 0, 0, NULL }
13564 };
13565
13566 static int
13567 dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13568   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13569                                    gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE);
13570
13571   return offset;
13572 }
13573
13574
13575 static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = {
13576   {   0, "forwardingInfoFor-CSE" },
13577   {   1, "callBarringInfoFor-CSE" },
13578   { 0, NULL }
13579 };
13580
13581 static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = {
13582   {   0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
13583   {   1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
13584   { 0, NULL, 0, 0, 0, NULL }
13585 };
13586
13587 static int
13588 dissect_gsm_map_ms_Ext_SS_InfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13589   offset = dissect_ber_choice(actx, tree, tvb, offset,
13590                                  gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
13591                                  NULL);
13592
13593   return offset;
13594 }
13595
13596
13597 static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = {
13598   { &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 },
13599   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
13600   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13601   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
13602   { &hf_gsm_map_ms_cw_Data  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
13603   { &hf_gsm_map_ms_ch_Data  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
13604   { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
13605   { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
13606   { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
13607   { &hf_gsm_map_ms_serviceCentreAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
13608   { NULL, 0, 0, 0, NULL }
13609 };
13610
13611 static int
13612 dissect_gsm_map_ms_AnyTimeModificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13613   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13614                                    gsm_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes);
13615
13616   return offset;
13617 }
13618
13619
13620 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = {
13621   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13622   { &hf_gsm_map_ms_msisdn   , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13623   { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE },
13624   { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE },
13625   { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info },
13626   { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo },
13627   { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL },
13628   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13629   { &hf_gsm_map_ms_ue_reachable, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServingNode },
13630   { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList },
13631   { &hf_gsm_map_ms_cw_Data  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData },
13632   { &hf_gsm_map_ms_ch_Data  , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData },
13633   { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData },
13634   { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData },
13635   { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData },
13636   { NULL, 0, 0, 0, NULL }
13637 };
13638
13639 static int
13640 dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(gboolean 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_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg);
13643
13644   return offset;
13645 }
13646
13647
13648 static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = {
13649   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13650   { NULL, 0, 0, 0, NULL }
13651 };
13652
13653 static int
13654 dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(gboolean 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_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes);
13657
13658   return offset;
13659 }
13660
13661
13662 static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = {
13663   { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey },
13664   { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code },
13665   { &hf_gsm_map_ms_imsi     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
13666   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13667   { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
13668   { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
13669   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13670   { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS },
13671   { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
13672   { NULL, 0, 0, 0, NULL }
13673 };
13674
13675 static int
13676 dissect_gsm_map_ms_NoteMM_EventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13677   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13678                                    gsm_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg);
13679
13680   return offset;
13681 }
13682
13683
13684 static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = {
13685   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13686   { NULL, 0, 0, 0, NULL }
13687 };
13688
13689 static int
13690 dissect_gsm_map_ms_NoteMM_EventRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13691   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13692                                    gsm_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes);
13693
13694   return offset;
13695 }
13696
13697
13698 static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationArg_sequence[] = {
13699   { &hf_gsm_map_ms_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
13700   { &hf_gsm_map_ms_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13701   { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13702   { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13703   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13704   { NULL, 0, 0, 0, NULL }
13705 };
13706
13707 static int
13708 dissect_gsm_map_ms_UpdateVcsgLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13709   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13710                                    gsm_map_ms_UpdateVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationArg);
13711
13712   return offset;
13713 }
13714
13715
13716 static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationRes_sequence[] = {
13717   { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL },
13718   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13719   { NULL, 0, 0, 0, NULL }
13720 };
13721
13722 static int
13723 dissect_gsm_map_ms_UpdateVcsgLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13724   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13725                                    gsm_map_ms_UpdateVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationRes);
13726
13727   return offset;
13728 }
13729
13730
13731 static const ber_sequence_t gsm_map_ms_CancelVcsgLocationArg_sequence[] = {
13732   { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity },
13733   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13734   { NULL, 0, 0, 0, NULL }
13735 };
13736
13737 static int
13738 dissect_gsm_map_ms_CancelVcsgLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13739   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13740                                    gsm_map_ms_CancelVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationArg);
13741
13742   return offset;
13743 }
13744
13745
13746 static const ber_sequence_t gsm_map_ms_CancelVcsgLocationRes_sequence[] = {
13747   { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13748   { NULL, 0, 0, 0, NULL }
13749 };
13750
13751 static int
13752 dissect_gsm_map_ms_CancelVcsgLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13753   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13754                                    gsm_map_ms_CancelVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationRes);
13755
13756   return offset;
13757 }
13758
13759
13760 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
13761
13762
13763
13764 static int
13765 dissect_gsm_map_ch_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13766   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13767
13768   return offset;
13769 }
13770
13771
13772 static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = {
13773   { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock },
13774   { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
13775   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13776   { NULL, 0, 0, 0, NULL }
13777 };
13778
13779 int
13780 dissect_gsm_map_ch_CUG_CheckInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13781   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13782                                    gsm_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo);
13783
13784   return offset;
13785 }
13786
13787
13788
13789 static int
13790 dissect_gsm_map_ch_NumberOfForwarding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13791   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13792                                                 NULL);
13793
13794   return offset;
13795 }
13796
13797
13798 static const value_string gsm_map_ch_InterrogationType_vals[] = {
13799   {   0, "basicCall" },
13800   {   1, "forwarding" },
13801   { 0, NULL }
13802 };
13803
13804
13805 static int
13806 dissect_gsm_map_ch_InterrogationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13807   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13808                                   NULL);
13809
13810   return offset;
13811 }
13812
13813
13814
13815 static int
13816 dissect_gsm_map_ch_OR_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13817   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13818                                                 NULL);
13819
13820   return offset;
13821 }
13822
13823
13824
13825 int
13826 dissect_gsm_map_ch_CallReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13827   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
13828                                        NULL);
13829
13830   return offset;
13831 }
13832
13833
13834 static const value_string gsm_map_ch_ForwardingReason_vals[] = {
13835   {   0, "notReachable" },
13836   {   1, "busy" },
13837   {   2, "noReply" },
13838   { 0, NULL }
13839 };
13840
13841
13842 static int
13843 dissect_gsm_map_ch_ForwardingReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13844   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13845                                   NULL);
13846
13847   return offset;
13848 }
13849
13850
13851 static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = {
13852   { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases },
13853   { &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 },
13854   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
13855   { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
13856   { NULL, 0, 0, 0, NULL }
13857 };
13858
13859 static int
13860 dissect_gsm_map_ch_CamelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13861   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13862                                    gsm_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo);
13863
13864   return offset;
13865 }
13866
13867
13868
13869 int
13870 dissect_gsm_map_ch_SuppressionOfAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13871   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
13872
13873   return offset;
13874 }
13875
13876
13877
13878 static int
13879 dissect_gsm_map_ch_SupportedCCBS_Phase(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
13881                                                 NULL);
13882
13883   return offset;
13884 }
13885
13886
13887
13888 static int
13889 dissect_gsm_map_ch_CallDiversionTreatmentIndicator(gboolean 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);
13892
13893   return offset;
13894 }
13895
13896
13897 static const asn_namedbit gsm_map_ch_SuppressMTSS_bits[] = {
13898   {  0, &hf_gsm_map_ch_SuppressMTSS_suppressCUG, -1, -1, "suppressCUG", NULL },
13899   {  1, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, -1, -1, "suppressCCBS", NULL },
13900   { 0, NULL, 0, 0, NULL, NULL }
13901 };
13902
13903 static int
13904 dissect_gsm_map_ch_SuppressMTSS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13905   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
13906                                     gsm_map_ch_SuppressMTSS_bits, hf_index, ett_gsm_map_ch_SuppressMTSS,
13907                                     NULL);
13908
13909   return offset;
13910 }
13911
13912
13913 static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = {
13914   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13915   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
13916   { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
13917   { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType },
13918   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13919   { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase },
13920   { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13921   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
13922   { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason },
13923   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
13924   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13925   { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo },
13926   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
13927   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13928   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
13929   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13930   { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase },
13931   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
13932   { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator },
13933   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13934   { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator },
13935   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13936   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13937   { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13938   { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13939   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
13940   { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
13941   { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS },
13942   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
13943   { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
13944   { NULL, 0, 0, 0, NULL }
13945 };
13946
13947 static int
13948 dissect_gsm_map_ch_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13949   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13950                                    gsm_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg);
13951
13952   return offset;
13953 }
13954
13955
13956 static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = {
13957   { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
13958   { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
13959   { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions },
13960   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
13961   { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString },
13962   { NULL, 0, 0, 0, NULL }
13963 };
13964
13965 static int
13966 dissect_gsm_map_ch_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13967   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
13968                                    gsm_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData);
13969
13970   return offset;
13971 }
13972
13973
13974 static const value_string gsm_map_ch_RoutingInfo_vals[] = {
13975   {   0, "roamingNumber" },
13976   {   1, "forwardingData" },
13977   { 0, NULL }
13978 };
13979
13980 static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = {
13981   {   0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
13982   {   1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
13983   { 0, NULL, 0, 0, 0, NULL }
13984 };
13985
13986 static int
13987 dissect_gsm_map_ch_RoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13988   offset = dissect_ber_choice(actx, tree, tvb, offset,
13989                                  gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo,
13990                                  NULL);
13991
13992   return offset;
13993 }
13994
13995
13996 static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = {
13997   { &hf_gsm_map_ch_t_CSI    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI },
13998   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
13999   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14000   { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
14001   { &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 },
14002   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
14003   { NULL, 0, 0, 0, NULL }
14004 };
14005
14006 static int
14007 dissect_gsm_map_ch_GmscCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14008   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14009                                    gsm_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo);
14010
14011   return offset;
14012 }
14013
14014
14015 static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = {
14016   { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData },
14017   { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo },
14018   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14019   { NULL, 0, 0, 0, NULL }
14020 };
14021
14022 static int
14023 dissect_gsm_map_ch_CamelRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14024   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14025                                    gsm_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo);
14026
14027   return offset;
14028 }
14029
14030
14031 static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = {
14032   {   0, "routingInfo" },
14033   {   1, "camelRoutingInfo" },
14034   { 0, NULL }
14035 };
14036
14037 static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = {
14038   {   0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
14039   {   1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo },
14040   { 0, NULL, 0, 0, 0, NULL }
14041 };
14042
14043 static int
14044 dissect_gsm_map_ch_ExtendedRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14045   offset = dissect_ber_choice(actx, tree, tvb, offset,
14046                                  gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo,
14047                                  NULL);
14048
14049   return offset;
14050 }
14051
14052
14053 static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = {
14054   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14055   { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14056   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14057   { NULL, 0, 0, 0, NULL }
14058 };
14059
14060 static int
14061 dissect_gsm_map_ch_CCBS_Indicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14062   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14063                                    gsm_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators);
14064
14065   return offset;
14066 }
14067
14068
14069 static const asn_namedbit gsm_map_ch_AllowedServices_bits[] = {
14070   {  0, &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
14071   {  1, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
14072   { 0, NULL, 0, 0, NULL, NULL }
14073 };
14074
14075 static int
14076 dissect_gsm_map_ch_AllowedServices(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14077   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14078                                     gsm_map_ch_AllowedServices_bits, hf_index, ett_gsm_map_ch_AllowedServices,
14079                                     NULL);
14080
14081   return offset;
14082 }
14083
14084
14085 static const value_string gsm_map_ch_UnavailabilityCause_vals[] = {
14086   {   1, "bearerServiceNotProvisioned" },
14087   {   2, "teleserviceNotProvisioned" },
14088   {   3, "absentSubscriber" },
14089   {   4, "busySubscriber" },
14090   {   5, "callBarred" },
14091   {   6, "cug-Reject" },
14092   { 0, NULL }
14093 };
14094
14095
14096 static int
14097 dissect_gsm_map_ch_UnavailabilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14098   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14099                                   NULL);
14100
14101   return offset;
14102 }
14103
14104
14105 static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = {
14106   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14107   { &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 },
14108   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14109   { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14110   { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo },
14111   { &hf_gsm_map_ch_ss_List  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
14112   { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14113   { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14114   { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14115   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14116   { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI },
14117   { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators },
14118   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14119   { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus },
14120   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
14121   { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14122   { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
14123   { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo },
14124   { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List },
14125   { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14126   { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices },
14127   { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause },
14128   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14129   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14130   { NULL, 0, 0, 0, NULL }
14131 };
14132
14133 static int
14134 dissect_gsm_map_ch_SendRoutingInfoRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14135   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14136                                    gsm_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U);
14137
14138   return offset;
14139 }
14140
14141
14142
14143 static int
14144 dissect_gsm_map_ch_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14145   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
14146                                       hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U);
14147
14148   return offset;
14149 }
14150
14151
14152 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = {
14153   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14154   { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14155   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14156   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
14157   { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14158   { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14159   { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
14160   { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14161   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
14162   { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14163   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14164   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
14165   { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14166   { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
14167   { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo },
14168   { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14169   { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14170   { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14171   { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14172   { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs },
14173   { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14174   { &hf_gsm_map_ch_pagingArea, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea },
14175   { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
14176   { &hf_gsm_map_ch_mtrf_Indicator, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14177   { &hf_gsm_map_ch_oldMSC_Number, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14178   { NULL, 0, 0, 0, NULL }
14179 };
14180
14181 static int
14182 dissect_gsm_map_ch_ProvideRoamingNumberArg(gboolean 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_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg);
14185
14186   return offset;
14187 }
14188
14189
14190 static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = {
14191   { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14192   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14193   { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL },
14194   { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14195   { NULL, 0, 0, 0, NULL }
14196 };
14197
14198 static int
14199 dissect_gsm_map_ch_ProvideRoamingNumberRes(gboolean 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_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes);
14202
14203   return offset;
14204 }
14205
14206
14207
14208 static int
14209 dissect_gsm_map_ch_UUIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14210   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14211                                        NULL);
14212
14213   return offset;
14214 }
14215
14216
14217
14218 static int
14219 dissect_gsm_map_ch_UUI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14220   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14221                                        NULL);
14222
14223   return offset;
14224 }
14225
14226
14227 static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = {
14228   { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator },
14229   { &hf_gsm_map_ch_uui      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI },
14230   { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14231   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14232   { NULL, 0, 0, 0, NULL }
14233 };
14234
14235 int
14236 dissect_gsm_map_ch_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14237   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14238                                    gsm_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data);
14239
14240   return offset;
14241 }
14242
14243
14244 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = {
14245   { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
14246   { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14247   { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData },
14248   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14249   { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
14250   { &hf_gsm_map_ch_o_CSI    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI },
14251   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14252   { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14253   { &hf_gsm_map_ch_msisdn   , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14254   { &hf_gsm_map_ch_uu_Data  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
14255   { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14256   { &hf_gsm_map_ch_d_csi    , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI },
14257   { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList },
14258   { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
14259   { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14260   { NULL, 0, 0, 0, NULL }
14261 };
14262
14263 static int
14264 dissect_gsm_map_ch_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14265   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14266                                    gsm_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg);
14267
14268   return offset;
14269 }
14270
14271
14272 static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = {
14273   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14274   { NULL, 0, 0, 0, NULL }
14275 };
14276
14277 static int
14278 dissect_gsm_map_ch_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14279   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14280                                    gsm_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes);
14281
14282   return offset;
14283 }
14284
14285
14286 static const value_string gsm_map_ch_ReportingState_vals[] = {
14287   {   0, "stopMonitoring" },
14288   {   1, "startMonitoring" },
14289   { 0, NULL }
14290 };
14291
14292
14293 static int
14294 dissect_gsm_map_ch_ReportingState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14295   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14296                                   NULL);
14297
14298   return offset;
14299 }
14300
14301
14302 static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = {
14303   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14304   { &hf_gsm_map_ch_lmsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
14305   { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState },
14306   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14307   { NULL, 0, 0, 0, NULL }
14308 };
14309
14310 static int
14311 dissect_gsm_map_ch_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14312   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14313                                    gsm_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg);
14314
14315   return offset;
14316 }
14317
14318
14319 static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = {
14320   {   0, "ccbsNotIdle" },
14321   {   1, "ccbsIdle" },
14322   {   2, "ccbsNotReachable" },
14323   { 0, NULL }
14324 };
14325
14326
14327 static int
14328 dissect_gsm_map_ch_CCBS_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14329   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14330                                   NULL);
14331
14332   return offset;
14333 }
14334
14335
14336 static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = {
14337   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
14338   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14339   { NULL, 0, 0, 0, NULL }
14340 };
14341
14342 static int
14343 dissect_gsm_map_ch_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14344   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14345                                    gsm_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes);
14346
14347   return offset;
14348 }
14349
14350
14351 static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = {
14352   { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus },
14353   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14354   { NULL, 0, 0, 0, NULL }
14355 };
14356
14357 static int
14358 dissect_gsm_map_ch_EventReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14359   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14360                                    gsm_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData);
14361
14362   return offset;
14363 }
14364
14365
14366 static const value_string gsm_map_ch_MonitoringMode_vals[] = {
14367   {   0, "a-side" },
14368   {   1, "b-side" },
14369   { 0, NULL }
14370 };
14371
14372
14373 static int
14374 dissect_gsm_map_ch_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14375   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14376                                   NULL);
14377
14378   return offset;
14379 }
14380
14381
14382 static const value_string gsm_map_ch_CallOutcome_vals[] = {
14383   {   0, "success" },
14384   {   1, "failure" },
14385   {   2, "busy" },
14386   { 0, NULL }
14387 };
14388
14389
14390 static int
14391 dissect_gsm_map_ch_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14392   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14393                                   NULL);
14394
14395   return offset;
14396 }
14397
14398
14399 static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = {
14400   { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode },
14401   { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome },
14402   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14403   { NULL, 0, 0, 0, NULL }
14404 };
14405
14406 static int
14407 dissect_gsm_map_ch_CallReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14408   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14409                                    gsm_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData);
14410
14411   return offset;
14412 }
14413
14414
14415 static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = {
14416   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14417   { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData },
14418   { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData },
14419   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14420   { NULL, 0, 0, 0, NULL }
14421 };
14422
14423 static int
14424 dissect_gsm_map_ch_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14425   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14426                                    gsm_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg);
14427
14428   return offset;
14429 }
14430
14431
14432 static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = {
14433   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14434   { NULL, 0, 0, 0, NULL }
14435 };
14436
14437 static int
14438 dissect_gsm_map_ch_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14439   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14440                                    gsm_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes);
14441
14442   return offset;
14443 }
14444
14445
14446 static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = {
14447   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14448   { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
14449   { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
14450   { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14451   { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14452   { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
14453   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14454   { NULL, 0, 0, 0, NULL }
14455 };
14456
14457 static int
14458 dissect_gsm_map_ch_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14459   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14460                                    gsm_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg);
14461
14462   return offset;
14463 }
14464
14465
14466 static const value_string gsm_map_ch_RUF_Outcome_vals[] = {
14467   {   0, "accepted" },
14468   {   1, "rejected" },
14469   {   2, "noResponseFromFreeMS" },
14470   {   3, "noResponseFromBusyMS" },
14471   {   4, "udubFromFreeMS" },
14472   {   5, "udubFromBusyMS" },
14473   { 0, NULL }
14474 };
14475
14476
14477 static int
14478 dissect_gsm_map_ch_RUF_Outcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14479   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14480                                   NULL);
14481
14482   return offset;
14483 }
14484
14485
14486 static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = {
14487   { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome },
14488   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14489   { NULL, 0, 0, 0, NULL }
14490 };
14491
14492 static int
14493 dissect_gsm_map_ch_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14494   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14495                                    gsm_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes);
14496
14497   return offset;
14498 }
14499
14500
14501 static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = {
14502   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14503   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14504   { NULL, 0, 0, 0, NULL }
14505 };
14506
14507 static int
14508 dissect_gsm_map_ch_IST_AlertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14509   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14510                                    gsm_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg);
14511
14512   return offset;
14513 }
14514
14515
14516 static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = {
14517   {   0, "terminateCallActivityReferred" },
14518   {   1, "terminateAllCallActivities" },
14519   { 0, NULL }
14520 };
14521
14522
14523 static int
14524 dissect_gsm_map_ch_CallTerminationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14525   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14526                                   NULL);
14527
14528   return offset;
14529 }
14530
14531
14532 static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = {
14533   { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue },
14534   { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL },
14535   { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator },
14536   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14537   { NULL, 0, 0, 0, NULL }
14538 };
14539
14540 static int
14541 dissect_gsm_map_ch_IST_AlertRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14542   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14543                                    gsm_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes);
14544
14545   return offset;
14546 }
14547
14548
14549 static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = {
14550   { &hf_gsm_map_ch_imsi     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
14551   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14552   { NULL, 0, 0, 0, NULL }
14553 };
14554
14555 static int
14556 dissect_gsm_map_ch_IST_CommandArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14557   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14558                                    gsm_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg);
14559
14560   return offset;
14561 }
14562
14563
14564 static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = {
14565   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14566   { NULL, 0, 0, 0, NULL }
14567 };
14568
14569 static int
14570 dissect_gsm_map_ch_IST_CommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14571   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14572                                    gsm_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes);
14573
14574   return offset;
14575 }
14576
14577
14578 static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = {
14579   { &hf_gsm_map_ch_msrn     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14580   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14581   { NULL, 0, 0, 0, NULL }
14582 };
14583
14584 static int
14585 dissect_gsm_map_ch_ReleaseResourcesArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14586   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14587                                    gsm_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg);
14588
14589   return offset;
14590 }
14591
14592
14593 static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = {
14594   { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
14595   { NULL, 0, 0, 0, NULL }
14596 };
14597
14598 static int
14599 dissect_gsm_map_ch_ReleaseResourcesRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14600   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14601                                    gsm_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes);
14602
14603   return offset;
14604 }
14605
14606
14607 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
14608
14609
14610 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = {
14611   { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
14612   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14613   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14614   { NULL, 0, 0, 0, NULL }
14615 };
14616
14617 static int
14618 dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14619   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14620                                    gsm_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg);
14621
14622   return offset;
14623 }
14624
14625
14626
14627 static int
14628 dissect_gsm_map_lcs_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14629   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
14630
14631   return offset;
14632 }
14633
14634
14635 static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = {
14636   { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
14637   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
14638   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14639   { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
14640   { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number },
14641   { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
14642   { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets },
14643   { &hf_gsm_map_lcs_mme_Name, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
14644   { &hf_gsm_map_lcs_aaa_Server_Name, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
14645   { NULL, 0, 0, 0, NULL }
14646 };
14647
14648 static int
14649 dissect_gsm_map_lcs_LCSLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14650   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14651                                    gsm_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo);
14652
14653   return offset;
14654 }
14655
14656
14657 static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = {
14658   { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity },
14659   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
14660   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14661   { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
14662   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
14663   { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
14664   { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
14665   { NULL, 0, 0, 0, NULL }
14666 };
14667
14668 static int
14669 dissect_gsm_map_lcs_RoutingInfoForLCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14670   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14671                                    gsm_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res);
14672
14673   return offset;
14674 }
14675
14676
14677 static const value_string gsm_map_lcs_LocationEstimateType_vals[] = {
14678   {   0, "currentLocation" },
14679   {   1, "currentOrLastKnownLocation" },
14680   {   2, "initialLocation" },
14681   {   3, "activateDeferredLocation" },
14682   {   4, "cancelDeferredLocation" },
14683   {   5, "notificationVerificationOnly" },
14684   { 0, NULL }
14685 };
14686
14687
14688 static int
14689 dissect_gsm_map_lcs_LocationEstimateType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14690   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14691                                   NULL);
14692
14693   return offset;
14694 }
14695
14696
14697 static const asn_namedbit gsm_map_lcs_DeferredLocationEventType_bits[] = {
14698   {  0, &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
14699   {  1, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
14700   {  2, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL },
14701   {  3, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL },
14702   {  4, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL },
14703   { 0, NULL, 0, 0, NULL, NULL }
14704 };
14705
14706 int
14707 dissect_gsm_map_lcs_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14708   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14709                                     gsm_map_lcs_DeferredLocationEventType_bits, hf_index, ett_gsm_map_lcs_DeferredLocationEventType,
14710                                     NULL);
14711
14712   return offset;
14713 }
14714
14715
14716 static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = {
14717   { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType },
14718   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
14719   { NULL, 0, 0, 0, NULL }
14720 };
14721
14722 int
14723 dissect_gsm_map_lcs_LocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14724   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14725                                    gsm_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType);
14726
14727   return offset;
14728 }
14729
14730
14731 const value_string gsm_map_lcs_LCSClientType_vals[] = {
14732   {   0, "emergencyServices" },
14733   {   1, "valueAddedServices" },
14734   {   2, "plmnOperatorServices" },
14735   {   3, "lawfulInterceptServices" },
14736   { 0, NULL }
14737 };
14738
14739
14740 int
14741 dissect_gsm_map_lcs_LCSClientType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14742   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14743                                   NULL);
14744
14745   return offset;
14746 }
14747
14748
14749
14750 static int
14751 dissect_gsm_map_lcs_NameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14752   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
14753
14754   return offset;
14755 }
14756
14757
14758 static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = {
14759   {   0, "logicalName" },
14760   {   1, "e-mailAddress" },
14761   {   2, "msisdn" },
14762   {   3, "url" },
14763   {   4, "sipUrl" },
14764   { 0, NULL }
14765 };
14766
14767
14768 static int
14769 dissect_gsm_map_lcs_LCS_FormatIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14770   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14771                                   NULL);
14772
14773   return offset;
14774 }
14775
14776
14777 static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = {
14778   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
14779   { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString },
14780   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
14781   { NULL, 0, 0, 0, NULL }
14782 };
14783
14784 int
14785 dissect_gsm_map_lcs_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14786   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14787                                    gsm_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName);
14788
14789   return offset;
14790 }
14791
14792
14793
14794 static int
14795 dissect_gsm_map_lcs_RequestorIDString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14796   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
14797
14798   return offset;
14799 }
14800
14801
14802 static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = {
14803   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
14804   { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString },
14805   { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator },
14806   { NULL, 0, 0, 0, NULL }
14807 };
14808
14809 int
14810 dissect_gsm_map_lcs_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14811   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14812                                    gsm_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID);
14813
14814   return offset;
14815 }
14816
14817
14818 static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = {
14819   { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType },
14820   { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
14821   { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
14822   { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID },
14823   { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
14824   { &hf_gsm_map_lcs_lcsAPN  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN },
14825   { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
14826   { NULL, 0, 0, 0, NULL }
14827 };
14828
14829 int
14830 dissect_gsm_map_lcs_LCS_ClientID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14831   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14832                                    gsm_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID);
14833
14834   return offset;
14835 }
14836
14837
14838
14839 int
14840 dissect_gsm_map_lcs_LCS_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14841   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14842                                        NULL);
14843
14844   return offset;
14845 }
14846
14847
14848
14849 static int
14850 dissect_gsm_map_lcs_Horizontal_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14851   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14852                                        NULL);
14853
14854   return offset;
14855 }
14856
14857
14858
14859 static int
14860 dissect_gsm_map_lcs_Vertical_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14861   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14862                                        NULL);
14863
14864   return offset;
14865 }
14866
14867
14868 static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = {
14869   {   0, "lowdelay" },
14870   {   1, "delaytolerant" },
14871   { 0, NULL }
14872 };
14873
14874
14875 static int
14876 dissect_gsm_map_lcs_ResponseTimeCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14877   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14878                                   NULL);
14879
14880   return offset;
14881 }
14882
14883
14884 static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = {
14885   { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory },
14886   { NULL, 0, 0, 0, NULL }
14887 };
14888
14889 static int
14890 dissect_gsm_map_lcs_ResponseTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14891   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14892                                    gsm_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime);
14893
14894   return offset;
14895 }
14896
14897
14898 static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = {
14899   { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy },
14900   { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
14901   { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy },
14902   { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime },
14903   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
14904   { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
14905   { NULL, 0, 0, 0, NULL }
14906 };
14907
14908 int
14909 dissect_gsm_map_lcs_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14910   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14911                                    gsm_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS);
14912
14913   return offset;
14914 }
14915
14916
14917 static const asn_namedbit gsm_map_lcs_SupportedGADShapes_bits[] = {
14918   {  0, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
14919   {  1, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
14920   {  2, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL },
14921   {  3, &hf_gsm_map_lcs_SupportedGADShapes_polygon, -1, -1, "polygon", NULL },
14922   {  4, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL },
14923   {  5, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL },
14924   {  6, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL },
14925   { 0, NULL, 0, 0, NULL, NULL }
14926 };
14927
14928 int
14929 dissect_gsm_map_lcs_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14930   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
14931                                     gsm_map_lcs_SupportedGADShapes_bits, hf_index, ett_gsm_map_lcs_SupportedGADShapes,
14932                                     NULL);
14933
14934   return offset;
14935 }
14936
14937
14938
14939 int
14940 dissect_gsm_map_lcs_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14941   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
14942                                        NULL);
14943
14944   return offset;
14945 }
14946
14947
14948
14949 static int
14950 dissect_gsm_map_lcs_LCSCodewordString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14951   offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
14952
14953   return offset;
14954 }
14955
14956
14957 static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = {
14958   { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
14959   { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString },
14960   { NULL, 0, 0, 0, NULL }
14961 };
14962
14963 int
14964 dissect_gsm_map_lcs_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14965   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
14966                                    gsm_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword);
14967
14968   return offset;
14969 }
14970
14971
14972 static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = {
14973   {   0, "allowedWithoutNotification" },
14974   {   1, "allowedWithNotification" },
14975   {   2, "allowedIfNoResponse" },
14976   {   3, "restrictedIfNoResponse" },
14977   {   4, "notAllowed" },
14978   { 0, NULL }
14979 };
14980
14981
14982 static int
14983 dissect_gsm_map_lcs_PrivacyCheckRelatedAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14984   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
14985                                   NULL);
14986
14987   return offset;
14988 }
14989
14990
14991 static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = {
14992   { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
14993   { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction },
14994   { NULL, 0, 0, 0, NULL }
14995 };
14996
14997 static int
14998 dissect_gsm_map_lcs_LCS_PrivacyCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14999   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15000                                    gsm_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck);
15001
15002   return offset;
15003 }
15004
15005
15006 static const value_string gsm_map_lcs_AreaType_vals[] = {
15007   {   0, "countryCode" },
15008   {   1, "plmnId" },
15009   {   2, "locationAreaId" },
15010   {   3, "routingAreaId" },
15011   {   4, "cellGlobalId" },
15012   {   5, "utranCellId" },
15013   { 0, NULL }
15014 };
15015
15016
15017 static int
15018 dissect_gsm_map_lcs_AreaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15019   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15020                                   NULL);
15021
15022   return offset;
15023 }
15024
15025
15026
15027 static int
15028 dissect_gsm_map_lcs_AreaIdentification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15029   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15030                                        NULL);
15031
15032   return offset;
15033 }
15034
15035
15036 static const ber_sequence_t gsm_map_lcs_Area_sequence[] = {
15037   { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType },
15038   { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification },
15039   { NULL, 0, 0, 0, NULL }
15040 };
15041
15042 static int
15043 dissect_gsm_map_lcs_Area(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15044   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15045                                    gsm_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area);
15046
15047   return offset;
15048 }
15049
15050
15051 static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = {
15052   { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area },
15053 };
15054
15055 static int
15056 dissect_gsm_map_lcs_AreaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15057   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
15058                                       gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList);
15059
15060   return offset;
15061 }
15062
15063
15064 static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = {
15065   { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList },
15066   { NULL, 0, 0, 0, NULL }
15067 };
15068
15069 static int
15070 dissect_gsm_map_lcs_AreaDefinition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15071   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15072                                    gsm_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition);
15073
15074   return offset;
15075 }
15076
15077
15078 static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = {
15079   {   0, "oneTimeEvent" },
15080   {   1, "multipleTimeEvent" },
15081   { 0, NULL }
15082 };
15083
15084
15085 static int
15086 dissect_gsm_map_lcs_OccurrenceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15087   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15088                                   NULL);
15089
15090   return offset;
15091 }
15092
15093
15094
15095 static int
15096 dissect_gsm_map_lcs_IntervalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15097   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15098                                                 NULL);
15099
15100   return offset;
15101 }
15102
15103
15104 static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = {
15105   { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition },
15106   { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo },
15107   { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime },
15108   { NULL, 0, 0, 0, NULL }
15109 };
15110
15111 int
15112 dissect_gsm_map_lcs_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15113   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15114                                    gsm_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo);
15115
15116   return offset;
15117 }
15118
15119
15120
15121 static int
15122 dissect_gsm_map_lcs_ReportingAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15123   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15124                                                 NULL);
15125
15126   return offset;
15127 }
15128
15129
15130
15131 static int
15132 dissect_gsm_map_lcs_ReportingInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15133   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15134                                                 NULL);
15135
15136   return offset;
15137 }
15138
15139
15140 static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = {
15141   { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount },
15142   { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval },
15143   { NULL, 0, 0, 0, NULL }
15144 };
15145
15146 static int
15147 dissect_gsm_map_lcs_PeriodicLDRInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15148   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15149                                    gsm_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo);
15150
15151   return offset;
15152 }
15153
15154
15155 static const value_string gsm_map_lcs_RAN_Technology_vals[] = {
15156   {   0, "gsm" },
15157   {   1, "umts" },
15158   { 0, NULL }
15159 };
15160
15161
15162 static int
15163 dissect_gsm_map_lcs_RAN_Technology(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15164   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15165                                   NULL);
15166
15167   return offset;
15168 }
15169
15170
15171 static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = {
15172   { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id },
15173   { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology },
15174   { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15175   { NULL, 0, 0, 0, NULL }
15176 };
15177
15178 static int
15179 dissect_gsm_map_lcs_ReportingPLMN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15180   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15181                                    gsm_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN);
15182
15183   return offset;
15184 }
15185
15186
15187 static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = {
15188   { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN },
15189 };
15190
15191 static int
15192 dissect_gsm_map_lcs_PLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15193   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
15194                                       gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList);
15195
15196   return offset;
15197 }
15198
15199
15200 static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = {
15201   { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15202   { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList },
15203   { NULL, 0, 0, 0, NULL }
15204 };
15205
15206 static int
15207 dissect_gsm_map_lcs_ReportingPLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15208   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15209                                    gsm_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList);
15210
15211   return offset;
15212 }
15213
15214
15215 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = {
15216   { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType },
15217   { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15218   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID },
15219   { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15220   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15221   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15222   { &hf_gsm_map_lcs_lmsi    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI },
15223   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
15224   { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority },
15225   { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
15226   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15227   { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
15228   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15229   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15230   { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
15231   { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck },
15232   { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
15233   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15234   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15235   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15236   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15237   { NULL, 0, 0, 0, NULL }
15238 };
15239
15240 static int
15241 dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15242   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15243                                    gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg);
15244
15245   return offset;
15246 }
15247
15248
15249
15250 int
15251 dissect_gsm_map_lcs_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15252 #line 847 "../../asn1/gsm_map/gsm_map.cnf"
15253     tvbuff_t    *parameter_tvb;
15254         proto_tree      *subtree;
15255
15256   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15257                                        &parameter_tvb);
15258
15259
15260         if (!parameter_tvb)
15261                 return offset;
15262
15263     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation);
15264         dissect_geographical_description(parameter_tvb, actx->pinfo, subtree);
15265
15266
15267
15268
15269   return offset;
15270 }
15271
15272
15273
15274 int
15275 dissect_gsm_map_lcs_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15276   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15277                                        NULL);
15278
15279   return offset;
15280 }
15281
15282
15283
15284 static int
15285 dissect_gsm_map_lcs_PositioningDataInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15286   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15287                                        NULL);
15288
15289   return offset;
15290 }
15291
15292
15293
15294 static int
15295 dissect_gsm_map_lcs_UtranPositioningDataInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15296   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15297                                        NULL);
15298
15299   return offset;
15300 }
15301
15302
15303 static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = {
15304   {   0, "requestedAccuracyFulfilled" },
15305   {   1, "requestedAccuracyNotFulfilled" },
15306   { 0, NULL }
15307 };
15308
15309
15310 static int
15311 dissect_gsm_map_lcs_AccuracyFulfilmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15312   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15313                                   NULL);
15314
15315   return offset;
15316 }
15317
15318
15319
15320 int
15321 dissect_gsm_map_lcs_VelocityEstimate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15322   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15323                                        NULL);
15324
15325   return offset;
15326 }
15327
15328
15329
15330 static int
15331 dissect_gsm_map_lcs_GeranGANSSpositioningData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15332   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15333                                        NULL);
15334
15335   return offset;
15336 }
15337
15338
15339
15340 static int
15341 dissect_gsm_map_lcs_UtranGANSSpositioningData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15342   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15343                                        NULL);
15344
15345   return offset;
15346 }
15347
15348
15349 static const value_string gsm_map_lcs_ServingNodeAddress_vals[] = {
15350   {   0, "msc-Number" },
15351   {   1, "sgsn-Number" },
15352   {   2, "mme-Number" },
15353   { 0, NULL }
15354 };
15355
15356 static const ber_choice_t gsm_map_lcs_ServingNodeAddress_choice[] = {
15357   {   0, &hf_gsm_map_lcs_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15358   {   1, &hf_gsm_map_lcs_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15359   {   2, &hf_gsm_map_lcs_mme_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity },
15360   { 0, NULL, 0, 0, 0, NULL }
15361 };
15362
15363 static int
15364 dissect_gsm_map_lcs_ServingNodeAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15365   offset = dissect_ber_choice(actx, tree, tvb, offset,
15366                                  gsm_map_lcs_ServingNodeAddress_choice, hf_index, ett_gsm_map_lcs_ServingNodeAddress,
15367                                  NULL);
15368
15369   return offset;
15370 }
15371
15372
15373 static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = {
15374   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15375   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
15376   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15377   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15378   { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15379   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
15380   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
15381   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
15382   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15383   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
15384   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15385   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15386   { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData },
15387   { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData },
15388   { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress },
15389   { NULL, 0, 0, 0, NULL }
15390 };
15391
15392 static int
15393 dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15394   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15395                                    gsm_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res);
15396
15397   return offset;
15398 }
15399
15400
15401 static const value_string gsm_map_lcs_LCS_Event_vals[] = {
15402   {   0, "emergencyCallOrigination" },
15403   {   1, "emergencyCallRelease" },
15404   {   2, "mo-lr" },
15405   {   3, "deferredmt-lrResponse" },
15406   {   4, "deferredmo-lrTTTPInitiation" },
15407   {   5, "emergencyCallHandover" },
15408   { 0, NULL }
15409 };
15410
15411
15412 static int
15413 dissect_gsm_map_lcs_LCS_Event(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15414   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15415                                   NULL);
15416
15417   return offset;
15418 }
15419
15420
15421 static const value_string gsm_map_lcs_TerminationCause_vals[] = {
15422   {   0, "normal" },
15423   {   1, "errorundefined" },
15424   {   2, "internalTimeout" },
15425   {   3, "congestion" },
15426   {   4, "mt-lrRestart" },
15427   {   5, "privacyViolation" },
15428   {   6, "shapeOfLocationEstimateNotSupported" },
15429   {   7, "subscriberTermination" },
15430   {   8, "uETermination" },
15431   {   9, "networkTermination" },
15432   { 0, NULL }
15433 };
15434
15435
15436 static int
15437 dissect_gsm_map_lcs_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15438   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15439                                   NULL);
15440
15441   return offset;
15442 }
15443
15444
15445 static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = {
15446   { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
15447   { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause },
15448   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo },
15449   { NULL, 0, 0, 0, NULL }
15450 };
15451
15452 static int
15453 dissect_gsm_map_lcs_Deferredmt_lrData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15454   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15455                                    gsm_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData);
15456
15457   return offset;
15458 }
15459
15460
15461
15462 static int
15463 dissect_gsm_map_lcs_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15464   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15465                                                 NULL);
15466
15467   return offset;
15468 }
15469
15470
15471 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = {
15472   { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event },
15473   { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID },
15474   { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo },
15475   { &hf_gsm_map_lcs_msisdn  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15476   { &hf_gsm_map_lcs_imsi    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15477   { &hf_gsm_map_lcs_imei    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
15478   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15479   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15480   { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
15481   { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
15482   { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer },
15483   { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
15484   { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData },
15485   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15486   { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation },
15487   { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo },
15488   { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI },
15489   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15490   { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
15491   { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15492   { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15493   { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator },
15494   { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
15495   { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
15496   { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
15497   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15498   { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData },
15499   { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData },
15500   { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress },
15501   { NULL, 0, 0, 0, NULL }
15502 };
15503
15504 static int
15505 dissect_gsm_map_lcs_SubscriberLocationReport_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15506   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15507                                    gsm_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg);
15508
15509   return offset;
15510 }
15511
15512
15513 static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = {
15514   { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15515   { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15516   { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15517   { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
15518   { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL },
15519   { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
15520   { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
15521   { NULL, 0, 0, 0, NULL }
15522 };
15523
15524 static int
15525 dissect_gsm_map_lcs_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15526   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15527                                    gsm_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res);
15528
15529   return offset;
15530 }
15531
15532 /*--- PDUs ---*/
15533
15534 int dissect_gsm_map_lcs_LCS_ClientID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
15535   int offset = 0;
15536   asn1_ctx_t asn1_ctx;
15537   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
15538   offset = dissect_gsm_map_lcs_LCS_ClientID(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU);
15539   return offset;
15540 }
15541
15542
15543 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
15544
15545
15546
15547 static int
15548 dissect_gsm_map_gr_CODEC_Info(gboolean 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15550                                        NULL);
15551
15552   return offset;
15553 }
15554
15555
15556
15557 static int
15558 dissect_gsm_map_gr_CipheringAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15559   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15560                                        NULL);
15561
15562   return offset;
15563 }
15564
15565
15566
15567 static int
15568 dissect_gsm_map_gr_GroupKeyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15569   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15570                                                 NULL);
15571
15572   return offset;
15573 }
15574
15575
15576
15577 static int
15578 dissect_gsm_map_gr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15579   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15580
15581   return offset;
15582 }
15583
15584
15585
15586 static int
15587 dissect_gsm_map_gr_VSTK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15588   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15589                                        NULL);
15590
15591   return offset;
15592 }
15593
15594
15595
15596 static int
15597 dissect_gsm_map_gr_VSTK_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15598   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
15599                                        NULL);
15600
15601   return offset;
15602 }
15603
15604
15605 static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = {
15606   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
15607   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference },
15608   { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info },
15609   { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm },
15610   { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber },
15611   { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
15612   { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority },
15613   { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15614   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15615   { &hf_gsm_map_gr_vstk     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK },
15616   { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND },
15617   { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15618   { &hf_gsm_map_gr_uplinkReplyIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15619   { NULL, 0, 0, 0, NULL }
15620 };
15621
15622 static int
15623 dissect_gsm_map_gr_PrepareGroupCallArg(gboolean 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_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg);
15626
15627   return offset;
15628 }
15629
15630
15631 static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = {
15632   { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
15633   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15634   { NULL, 0, 0, 0, NULL }
15635 };
15636
15637 static int
15638 dissect_gsm_map_gr_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15639   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15640                                    gsm_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes);
15641
15642   return offset;
15643 }
15644
15645
15646 static const value_string gsm_map_gr_TalkerPriority_vals[] = {
15647   {   0, "normal" },
15648   {   1, "privileged" },
15649   {   2, "emergency" },
15650   { 0, NULL }
15651 };
15652
15653
15654 static int
15655 dissect_gsm_map_gr_TalkerPriority(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15657                                   NULL);
15658
15659   return offset;
15660 }
15661
15662
15663 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = {
15664   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
15665   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15666   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
15667   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
15668   { NULL, 0, 0, 0, NULL }
15669 };
15670
15671 static int
15672 dissect_gsm_map_gr_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15673   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15674                                    gsm_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg);
15675
15676   return offset;
15677 }
15678
15679
15680 static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = {
15681   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15682   { NULL, 0, 0, 0, NULL }
15683 };
15684
15685 static int
15686 dissect_gsm_map_gr_SendGroupCallEndSignalRes(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
15688                                    gsm_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes);
15689
15690   return offset;
15691 }
15692
15693
15694 static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = {
15695   { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15696   { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15697   { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15698   { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15699   { NULL, 0, 0, 0, NULL }
15700 };
15701
15702 static int
15703 dissect_gsm_map_gr_StateAttributes(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
15705                                    gsm_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes);
15706
15707   return offset;
15708 }
15709
15710
15711 static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = {
15712   { &hf_gsm_map_gr_imsi     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
15713   { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15714   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15715   { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15716   { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15717   { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15718   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15719   { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes },
15720   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
15721   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
15722   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15723   { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo },
15724   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
15725   { NULL, 0, 0, 0, NULL }
15726 };
15727
15728 static int
15729 dissect_gsm_map_gr_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15730   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15731                                    gsm_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg);
15732
15733   return offset;
15734 }
15735
15736
15737 static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = {
15738   { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15739   { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15740   { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15741   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15742   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
15743   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
15744   { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL },
15745   { &hf_gsm_map_gr_an_APDU  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo },
15746   { NULL, 0, 0, 0, NULL }
15747 };
15748
15749 static int
15750 dissect_gsm_map_gr_ProcessGroupCallSignallingArg(gboolean 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_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg);
15753
15754   return offset;
15755 }
15756
15757
15758 static const value_string gsm_map_gr_RequestedInfo_vals[] = {
15759   {   0, "anchorMSC-AddressAndASCI-CallReference" },
15760   {   1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
15761   { 0, NULL }
15762 };
15763
15764
15765 static int
15766 dissect_gsm_map_gr_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15767   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15768                                   NULL);
15769
15770   return offset;
15771 }
15772
15773
15774 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = {
15775   { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo },
15776   { &hf_gsm_map_gr_groupId  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId },
15777   { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode },
15778   { &hf_gsm_map_gr_cellId   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId },
15779   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15780   { &hf_gsm_map_gr_tmsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI },
15781   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
15782   { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority },
15783   { &hf_gsm_map_gr_cksn     , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn },
15784   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15785   { NULL, 0, 0, 0, NULL }
15786 };
15787
15788 static int
15789 dissect_gsm_map_gr_SendGroupCallInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15790   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15791                                    gsm_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg);
15792
15793   return offset;
15794 }
15795
15796
15797 static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = {
15798   { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
15799   { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference },
15800   { &hf_gsm_map_gr_imsi     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
15801   { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo },
15802   { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions },
15803   { &hf_gsm_map_gr_kc       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc },
15804   { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
15805   { NULL, 0, 0, 0, NULL }
15806 };
15807
15808 static int
15809 dissect_gsm_map_gr_SendGroupCallInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15811                                    gsm_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes);
15812
15813   return offset;
15814 }
15815
15816
15817 /* --- Module MAP-DialogueInformation --- --- ---                             */
15818
15819
15820 static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = {
15821   { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15822   { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
15823   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15824   { NULL, 0, 0, 0, NULL }
15825 };
15826
15827 static int
15828 dissect_gsm_map_dialogue_MAP_OpenInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15829   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15830                                    gsm_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo);
15831
15832   return offset;
15833 }
15834
15835
15836 static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = {
15837   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15838   { NULL, 0, 0, 0, NULL }
15839 };
15840
15841 static int
15842 dissect_gsm_map_dialogue_MAP_AcceptInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15843   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15844                                    gsm_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo);
15845
15846   return offset;
15847 }
15848
15849
15850 static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = {
15851   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15852   { NULL, 0, 0, 0, NULL }
15853 };
15854
15855 static int
15856 dissect_gsm_map_dialogue_MAP_CloseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15857   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15858                                    gsm_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo);
15859
15860   return offset;
15861 }
15862
15863
15864 static const value_string gsm_map_dialogue_Reason_vals[] = {
15865   {   0, "noReasonGiven" },
15866   {   1, "invalidDestinationReference" },
15867   {   2, "invalidOriginatingReference" },
15868   { 0, NULL }
15869 };
15870
15871
15872 static int
15873 dissect_gsm_map_dialogue_Reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15874   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15875                                   NULL);
15876
15877   return offset;
15878 }
15879
15880
15881
15882 static int
15883 dissect_gsm_map_dialogue_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15884   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
15885
15886   return offset;
15887 }
15888
15889
15890 static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = {
15891   { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason },
15892   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15893   { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER },
15894   { NULL, 0, 0, 0, NULL }
15895 };
15896
15897 static int
15898 dissect_gsm_map_dialogue_MAP_RefuseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15899   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15900                                    gsm_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo);
15901
15902   return offset;
15903 }
15904
15905
15906
15907 static int
15908 dissect_gsm_map_dialogue_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15909   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
15910
15911   return offset;
15912 }
15913
15914
15915 static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = {
15916   {   0, "shortTermResourceLimitation" },
15917   {   1, "longTermResourceLimitation" },
15918   { 0, NULL }
15919 };
15920
15921
15922 static int
15923 dissect_gsm_map_dialogue_ResourceUnavailableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15924   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15925                                   NULL);
15926
15927   return offset;
15928 }
15929
15930
15931 static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = {
15932   {   0, "handoverCancellation" },
15933   {   1, "radioChannelRelease" },
15934   {   2, "networkPathRelease" },
15935   {   3, "callRelease" },
15936   {   4, "associatedProcedureFailure" },
15937   {   5, "tandemDialogueRelease" },
15938   {   6, "remoteOperationsFailure" },
15939   { 0, NULL }
15940 };
15941
15942
15943 static int
15944 dissect_gsm_map_dialogue_ProcedureCancellationReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15945   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
15946                                   NULL);
15947
15948   return offset;
15949 }
15950
15951
15952 static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = {
15953   {   0, "userSpecificReason" },
15954   {   1, "userResourceLimitation" },
15955   {   2, "resourceUnavailable" },
15956   {   3, "applicationProcedureCancellation" },
15957   { 0, NULL }
15958 };
15959
15960 static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = {
15961   {   0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
15962   {   1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL },
15963   {   2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason },
15964   {   3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason },
15965   { 0, NULL, 0, 0, 0, NULL }
15966 };
15967
15968 static int
15969 dissect_gsm_map_dialogue_MAP_UserAbortChoice(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15970   offset = dissect_ber_choice(actx, tree, tvb, offset,
15971                                  gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice,
15972                                  NULL);
15973
15974   return offset;
15975 }
15976
15977
15978 static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = {
15979   { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice },
15980   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
15981   { NULL, 0, 0, 0, NULL }
15982 };
15983
15984 static int
15985 dissect_gsm_map_dialogue_MAP_UserAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
15986   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
15987                                    gsm_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo);
15988
15989   return offset;
15990 }
15991
15992
15993 static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = {
15994   {   0, "abnormalDialogue" },
15995   {   1, "invalidPDU" },
15996   { 0, NULL }
15997 };
15998
15999
16000 static int
16001 dissect_gsm_map_dialogue_MAP_ProviderAbortReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16002   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16003                                   NULL);
16004
16005   return offset;
16006 }
16007
16008
16009 static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = {
16010   { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason },
16011   { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16012   { NULL, 0, 0, 0, NULL }
16013 };
16014
16015 static int
16016 dissect_gsm_map_dialogue_MAP_ProviderAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16017   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16018                                    gsm_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo);
16019
16020   return offset;
16021 }
16022
16023
16024 static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = {
16025   {   0, "map-open" },
16026   {   1, "map-accept" },
16027   {   2, "map-close" },
16028   {   3, "map-refuse" },
16029   {   4, "map-userAbort" },
16030   {   5, "map-providerAbort" },
16031   { 0, NULL }
16032 };
16033
16034 static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = {
16035   {   0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo },
16036   {   1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo },
16037   {   2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo },
16038   {   3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo },
16039   {   4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo },
16040   {   5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo },
16041   { 0, NULL, 0, 0, 0, NULL }
16042 };
16043
16044 static int
16045 dissect_gsm_map_dialogue_MAP_DialoguePDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16046   offset = dissect_ber_choice(actx, tree, tvb, offset,
16047                                  gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU,
16048                                  NULL);
16049
16050   return offset;
16051 }
16052
16053 /*--- PDUs ---*/
16054
16055 static void dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
16056   asn1_ctx_t asn1_ctx;
16057   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
16058   dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU);
16059 }
16060
16061
16062 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
16063
16064
16065 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
16066
16067
16068 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
16069
16070
16071 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
16072
16073
16074 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
16075
16076
16077 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
16078
16079
16080 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
16081
16082
16083 /* --- Module MAP-Errors --- --- ---                                          */
16084
16085
16086 /* --- Module MAP-Protocol --- --- ---                                        */
16087
16088
16089 /* --- Module DummyMAP --- --- ---                                            */
16090
16091
16092
16093 static int
16094 dissect_gsm_old_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16095   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16096                                                 NULL);
16097
16098   return offset;
16099 }
16100
16101
16102 static const value_string gsm_old_GSMMAPOperationLocalvalue_vals[] = {
16103   {   2, "updateLocation" },
16104   {   3, "cancelLocation" },
16105   {   4, "provideRoamingNumber" },
16106   {   5, "noteSubscriberDataModified" },
16107   {   6, "resumeCallHandling" },
16108   {   7, "insertSubscriberData" },
16109   {   8, "deleteSubscriberData" },
16110   {   9, "sendParameters" },
16111   {  10, "registerSS" },
16112   {  11, "eraseSS" },
16113   {  12, "activateSS" },
16114   {  13, "deactivateSS" },
16115   {  14, "interrogateSS" },
16116   {  15, "authenticationFailureReport" },
16117   {  16, "notifySS" },
16118   {  17, "registerPassword" },
16119   {  18, "getPassword" },
16120   {  19, "processUnstructuredSS-Data" },
16121   {  20, "releaseResources" },
16122   {  21, "mt-ForwardSM-VGCS" },
16123   {  22, "sendRoutingInfo" },
16124   {  23, "updateGprsLocation" },
16125   {  24, "sendRoutingInfoForGprs" },
16126   {  25, "failureReport" },
16127   {  26, "noteMsPresentForGprs" },
16128   {  27, "unAllocated" },
16129   {  28, "performHandover" },
16130   {  29, "sendEndSignal" },
16131   {  30, "performSubsequentHandover" },
16132   {  31, "provideSIWFSNumber" },
16133   {  32, "sIWFSSignallingModify" },
16134   {  33, "processAccessSignalling" },
16135   {  34, "forwardAccessSignalling" },
16136   {  35, "noteInternalHandover" },
16137   {  36, "unAllocated" },
16138   {  37, "reset" },
16139   {  38, "forwardCheckSS" },
16140   {  39, "prepareGroupCall" },
16141   {  40, "sendGroupCallEndSignal" },
16142   {  41, "processGroupCallSignalling" },
16143   {  42, "forwardGroupCallSignalling" },
16144   {  43, "checkIMEI" },
16145   {  44, "mt-forwardSM" },
16146   {  45, "sendRoutingInfoForSM" },
16147   {  46, "mo-forwardSM" },
16148   {  47, "reportSM-DeliveryStatus" },
16149   {  48, "noteSubscriberPresent" },
16150   {  49, "alertServiceCentreWithoutResult" },
16151   {  50, "activateTraceMode" },
16152   {  51, "deactivateTraceMode" },
16153   {  52, "traceSubscriberActivity" },
16154   {  53, "unAllocated" },
16155   {  54, "beginSubscriberActivity" },
16156   {  55, "sendIdentification" },
16157   {  56, "sendAuthenticationInfo" },
16158   {  57, "restoreData" },
16159   {  58, "sendIMSI" },
16160   {  59, "processUnstructuredSS-Request" },
16161   {  60, "unstructuredSS-Request" },
16162   {  61, "unstructuredSS-Notify" },
16163   {  62, "anyTimeSubscriptionInterrogation" },
16164   {  63, "informServiceCentre" },
16165   {  64, "alertServiceCentre" },
16166   {  65, "anyTimeModification" },
16167   {  66, "readyForSM" },
16168   {  67, "purgeMS" },
16169   {  68, "prepareHandover" },
16170   {  69, "prepareSubsequentHandover" },
16171   {  70, "provideSubscriberInfo" },
16172   {  71, "anyTimeInterrogation" },
16173   {  72, "ss-InvocationNotification" },
16174   {  73, "setReportingState" },
16175   {  74, "statusReport" },
16176   {  75, "remoteUserFree" },
16177   {  76, "registerCC-Entry" },
16178   {  77, "eraseCC-Entry" },
16179   {  78, "secureTransportClass1" },
16180   {  79, "secureTransportClass2" },
16181   {  80, "secureTransportClass3" },
16182   {  81, "secureTransportClass4" },
16183   {  82, "unAllocated" },
16184   {  83, "provideSubscriberLocation" },
16185   {  84, "sendGroupCallInfo" },
16186   {  85, "sendRoutingInfoForLCS" },
16187   {  86, "subscriberLocationReport" },
16188   {  87, "ist-Alert" },
16189   {  88, "ist-Command" },
16190   {  89, "noteMM-Event" },
16191   {  90, "unAllocated" },
16192   {  91, "unAllocated" },
16193   {  92, "unAllocated" },
16194   {  93, "unAllocated" },
16195   {  94, "unAllocated" },
16196   {  95, "unAllocated" },
16197   {  96, "unAllocated" },
16198   {  97, "unAllocated" },
16199   {  98, "unAllocated" },
16200   {  99, "unAllocated" },
16201   { 100, "unAllocated" },
16202   { 101, "unAllocated" },
16203   { 102, "unAllocated" },
16204   { 103, "unAllocated" },
16205   { 104, "unAllocated" },
16206   { 105, "unAllocated" },
16207   { 106, "unAllocated" },
16208   { 107, "unAllocated" },
16209   { 108, "unAllocated" },
16210   { 109, "lcs-PeriodicLocationCancellation" },
16211   { 110, "lcs-LocationUpdate" },
16212   { 111, "lcs-PeriodicLocationRequest" },
16213   { 112, "lcs-AreaEventCancellation" },
16214   { 113, "lcs-AreaEventReport" },
16215   { 114, "lcs-AreaEventRequest" },
16216   { 115, "lcs-MOLR" },
16217   { 116, "lcs-LocationNotification" },
16218   { 117, "callDeflection" },
16219   { 118, "userUserService" },
16220   { 119, "accessRegisterCCEntry" },
16221   { 120, "forwardCUG-Info" },
16222   { 121, "splitMPTY" },
16223   { 122, "retrieveMPTY" },
16224   { 123, "holdMPTY" },
16225   { 124, "buildMPTY" },
16226   { 125, "forwardChargeAdvice" },
16227   { 126, "explicitCT" },
16228   { 0, NULL }
16229 };
16230
16231 static value_string_ext gsm_old_GSMMAPOperationLocalvalue_vals_ext = VALUE_STRING_EXT_INIT(gsm_old_GSMMAPOperationLocalvalue_vals);
16232
16233
16234 static int
16235 dissect_gsm_old_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16236 #line 188 "../../asn1/gsm_map/gsm_map.cnf"
16237
16238   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16239                                                 &opcode);
16240
16241   col_append_str(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
16242   col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
16243
16244
16245
16246   return offset;
16247 }
16248
16249
16250
16251 static int
16252 dissect_gsm_old_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16253   offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
16254
16255   return offset;
16256 }
16257
16258
16259
16260 static int
16261 dissect_gsm_old_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16262   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
16263
16264   return offset;
16265 }
16266
16267
16268 static const value_string gsm_old_MAP_OPERATION_vals[] = {
16269   {   0, "localValue" },
16270   {   1, "globalValue" },
16271   { 0, NULL }
16272 };
16273
16274 static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = {
16275   {   0, &hf_gsm_old_localValue  , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue },
16276   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
16277   { 0, NULL, 0, 0, 0, NULL }
16278 };
16279
16280 static int
16281 dissect_gsm_old_MAP_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16282   offset = dissect_ber_choice(actx, tree, tvb, offset,
16283                                  gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION,
16284                                  NULL);
16285
16286   return offset;
16287 }
16288
16289
16290
16291 static int
16292 dissect_gsm_old_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16293 #line 175 "../../asn1/gsm_map/gsm_map.cnf"
16294         offset = dissect_invokeData(tree, tvb, offset, actx);
16295
16296
16297
16298   return offset;
16299 }
16300
16301
16302 static const ber_sequence_t gsm_old_Invoke_sequence[] = {
16303   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
16304   { &hf_gsm_old_linkedID    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType },
16305   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
16306   { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter },
16307   { NULL, 0, 0, 0, NULL }
16308 };
16309
16310 static int
16311 dissect_gsm_old_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16312   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16313                                    gsm_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke);
16314
16315   return offset;
16316 }
16317
16318
16319
16320 static int
16321 dissect_gsm_old_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16322 #line 178 "../../asn1/gsm_map/gsm_map.cnf"
16323         offset = dissect_returnResultData(tree, tvb, offset, actx);
16324
16325
16326
16327   return offset;
16328 }
16329
16330
16331 static const ber_sequence_t gsm_old_T_resultretres_sequence[] = {
16332   { &hf_gsm_old_opCode      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION },
16333   { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter },
16334   { NULL, 0, 0, 0, NULL }
16335 };
16336
16337 static int
16338 dissect_gsm_old_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16339   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16340                                    gsm_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres);
16341
16342   return offset;
16343 }
16344
16345
16346 static const ber_sequence_t gsm_old_ReturnResult_sequence[] = {
16347   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
16348   { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres },
16349   { NULL, 0, 0, 0, NULL }
16350 };
16351
16352 static int
16353 dissect_gsm_old_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16354   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16355                                    gsm_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult);
16356
16357   return offset;
16358 }
16359
16360
16361 const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = {
16362   {   1, "unknownSubscriber" },
16363   {   2, "unknownBaseStation" },
16364   {   3, "unknownMSC" },
16365   {   4, "secureTransportError" },
16366   {   5, "unidentifiedSubscriber" },
16367   {   6, "absentSubscriberSM" },
16368   {   7, "unknownEquipment" },
16369   {   8, "roamingNotAllowed" },
16370   {   9, "illegalSubscriber" },
16371   {  10, "bearerServiceNotProvisioned" },
16372   {  11, "teleserviceNotProvisioned" },
16373   {  12, "illegalEquipment" },
16374   {  13, "callBarred" },
16375   {  14, "forwardingViolation" },
16376   {  15, "cug-Reject" },
16377   {  16, "illegalSS-Operation" },
16378   {  17, "ss-ErrorStatus" },
16379   {  18, "ss-NotAvailable" },
16380   {  19, "ss-SubscriptionViolatio" },
16381   {  20, "ss-Incompatibility" },
16382   {  21, "facilityNotSupported" },
16383   {  22, "ongoingGroupCall" },
16384   {  23, "invalidTargetBaseStation" },
16385   {  24, "noRadioResourceAvailable" },
16386   {  25, "noHandoverNumberAvailable" },
16387   {  26, "subsequentHandoverFailure" },
16388   {  27, "absentSubscriber" },
16389   {  28, "incompatibleTerminal" },
16390   {  29, "shortTermDenial" },
16391   {  30, "longTermDenial" },
16392   {  31, "subscriberBusyForMT-SMS" },
16393   {  32, "sm-DeliveryFailure" },
16394   {  33, "messageWaitingListFull" },
16395   {  34, "systemFailure" },
16396   {  35, "dataMissing" },
16397   {  36, "unexpectedDataValue" },
16398   {  37, "pw-RegistrationFailur" },
16399   {  38, "negativePW-Check" },
16400   {  39, "noRoamingNumberAvailable" },
16401   {  40, "tracingBufferFull" },
16402   {  42, "targetCellOutsideGroupCallArea" },
16403   {  43, "numberOfPW-AttemptsViolation" },
16404   {  44, "numberChanged" },
16405   {  45, "busySubscriber" },
16406   {  46, "noSubscriberReply" },
16407   {  47, "forwardingFailed" },
16408   {  48, "or-NotAllowed" },
16409   {  49, "ati-NotAllowed" },
16410   {  50, "noGroupCallNumberAvailable" },
16411   {  51, "resourceLimitation" },
16412   {  52, "unauthorizedRequestingNetwork" },
16413   {  53, "unauthorizedLCSClient" },
16414   {  54, "positionMethodFailure" },
16415   {  58, "unknownOrUnreachableLCSClient" },
16416   {  59, "mm-EventNotSupported" },
16417   {  60, "atsi-NotAllowed" },
16418   {  61, "atm-NotAllowed" },
16419   {  62, "informationNotAvailabl" },
16420   {  71, "unknownAlphabe" },
16421   {  72, "ussd-Busy" },
16422   { 0, NULL }
16423 };
16424
16425
16426 int
16427 dissect_gsm_old_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16428   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16429                                                 &errorCode);
16430
16431   return offset;
16432 }
16433
16434
16435
16436 static int
16437 dissect_gsm_old_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16438   offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
16439
16440   return offset;
16441 }
16442
16443
16444 static const value_string gsm_old_MAP_ERROR_vals[] = {
16445   {   0, "localValue" },
16446   {   1, "globalValue" },
16447   { 0, NULL }
16448 };
16449
16450 static const ber_choice_t gsm_old_MAP_ERROR_choice[] = {
16451   {   0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode },
16452   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
16453   { 0, NULL, 0, 0, 0, NULL }
16454 };
16455
16456 static int
16457 dissect_gsm_old_MAP_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16458   offset = dissect_ber_choice(actx, tree, tvb, offset,
16459                                  gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR,
16460                                  NULL);
16461
16462   return offset;
16463 }
16464
16465
16466
16467 static int
16468 dissect_gsm_old_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16469 #line 181 "../../asn1/gsm_map/gsm_map.cnf"
16470         offset = dissect_returnErrorData(tree, tvb, offset, actx);
16471
16472
16473
16474   return offset;
16475 }
16476
16477
16478 static const ber_sequence_t gsm_old_ReturnError_sequence[] = {
16479   { &hf_gsm_old_invokeID    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
16480   { &hf_gsm_old_errorCode   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR },
16481   { &hf_gsm_old_parameter   , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter },
16482   { NULL, 0, 0, 0, NULL }
16483 };
16484
16485 static int
16486 dissect_gsm_old_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16487   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16488                                    gsm_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError);
16489
16490   return offset;
16491 }
16492
16493
16494
16495 static int
16496 dissect_gsm_old_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16497   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
16498
16499   return offset;
16500 }
16501
16502
16503 static const value_string gsm_old_T_invokeIDRej_vals[] = {
16504   {   0, "derivable" },
16505   {   1, "not-derivable" },
16506   { 0, NULL }
16507 };
16508
16509 static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = {
16510   {   0, &hf_gsm_old_derivable   , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType },
16511   {   1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
16512   { 0, NULL, 0, 0, 0, NULL }
16513 };
16514
16515 static int
16516 dissect_gsm_old_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16517   offset = dissect_ber_choice(actx, tree, tvb, offset,
16518                                  gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej,
16519                                  NULL);
16520
16521   return offset;
16522 }
16523
16524
16525 static const value_string gsm_old_GeneralProblem_vals[] = {
16526   {   0, "unrecognizedComponent" },
16527   {   1, "mistypedComponent" },
16528   {   2, "badlyStructuredComponent" },
16529   { 0, NULL }
16530 };
16531
16532
16533 static int
16534 dissect_gsm_old_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16535   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16536                                                 NULL);
16537
16538   return offset;
16539 }
16540
16541
16542 static const value_string gsm_old_InvokeProblem_vals[] = {
16543   {   0, "duplicateInvokeID" },
16544   {   1, "unrecognizedOperation" },
16545   {   2, "mistypedParameter" },
16546   {   3, "resourceLimitation" },
16547   {   4, "initiatingRelease" },
16548   {   5, "unrecognizedLinkedID" },
16549   {   6, "linkedResponseUnexpected" },
16550   {   7, "unexpectedLinkedOperation" },
16551   { 0, NULL }
16552 };
16553
16554
16555 static int
16556 dissect_gsm_old_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16557   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16558                                                 NULL);
16559
16560   return offset;
16561 }
16562
16563
16564 static const value_string gsm_old_ReturnResultProblem_vals[] = {
16565   {   0, "unrecognizedInvokeID" },
16566   {   1, "returnResultUnexpected" },
16567   {   2, "mistypedParameter" },
16568   { 0, NULL }
16569 };
16570
16571
16572 static int
16573 dissect_gsm_old_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16574   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16575                                                 NULL);
16576
16577   return offset;
16578 }
16579
16580
16581 static const value_string gsm_old_ReturnErrorProblem_vals[] = {
16582   {   0, "unrecognizedInvokeID" },
16583   {   1, "returnErrorUnexpected" },
16584   {   2, "unrecognizedError" },
16585   {   3, "unexpectedError" },
16586   {   4, "mistypedParameter" },
16587   { 0, NULL }
16588 };
16589
16590
16591 static int
16592 dissect_gsm_old_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16593   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
16594                                                 NULL);
16595
16596   return offset;
16597 }
16598
16599
16600 static const value_string gsm_old_T_problem_vals[] = {
16601   {   0, "generalProblem" },
16602   {   1, "invokeProblem" },
16603   {   2, "returnResultProblem" },
16604   {   3, "returnErrorProblem" },
16605   { 0, NULL }
16606 };
16607
16608 static const ber_choice_t gsm_old_T_problem_choice[] = {
16609   {   0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem },
16610   {   1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem },
16611   {   2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem },
16612   {   3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem },
16613   { 0, NULL, 0, 0, 0, NULL }
16614 };
16615
16616 static int
16617 dissect_gsm_old_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16618   offset = dissect_ber_choice(actx, tree, tvb, offset,
16619                                  gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem,
16620                                  NULL);
16621
16622   return offset;
16623 }
16624
16625
16626 static const ber_sequence_t gsm_old_Reject_sequence[] = {
16627   { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej },
16628   { &hf_gsm_old_problem     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem },
16629   { NULL, 0, 0, 0, NULL }
16630 };
16631
16632 static int
16633 dissect_gsm_old_Reject(gboolean 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_sequence(implicit_tag, actx, tree, tvb, offset,
16635                                    gsm_old_Reject_sequence, hf_index, ett_gsm_old_Reject);
16636
16637   return offset;
16638 }
16639
16640
16641 static const value_string gsm_old_Component_vals[] = {
16642   {   1, "invoke" },
16643   {   2, "returnResultLast" },
16644   {   3, "returnError" },
16645   {   4, "reject" },
16646   {   7, "returnResultNotLast" },
16647   { 0, NULL }
16648 };
16649
16650 static const ber_choice_t gsm_old_Component_choice[] = {
16651   {   1, &hf_gsm_old_invoke      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke },
16652   {   2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
16653   {   3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError },
16654   {   4, &hf_gsm_old_reject      , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject },
16655   {   7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult },
16656   { 0, NULL, 0, 0, 0, NULL }
16657 };
16658
16659 static int
16660 dissect_gsm_old_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16661   offset = dissect_ber_choice(actx, tree, tvb, offset,
16662                                  gsm_old_Component_choice, hf_index, ett_gsm_old_Component,
16663                                  NULL);
16664
16665   return offset;
16666 }
16667
16668
16669 static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = {
16670   { &hf_gsm_old_protocolId  , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId },
16671   { &hf_gsm_old_signalInfo  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
16672   { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
16673   { NULL, 0, 0, 0, NULL }
16674 };
16675
16676 static int
16677 dissect_gsm_old_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16678 #line 677 "../../asn1/gsm_map/gsm_map.cnf"
16679  guint8         octet;
16680  guint8         length;
16681  tvbuff_t       *next_tvb;
16682  proto_tree *subtree;
16683 /*
16684 ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
16685 5.6.9.1 BSS-apdu
16686 This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09
16687 and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06.
16688 For the coding of the messages see GSM 08.06 and GSM 08.08.
16689 */
16690  ProtocolId = 0xffffffff;
16691   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16692                                    gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU);
16693
16694 if (!actx->value_ptr)
16695         return offset;
16696  subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo);
16697  switch (ProtocolId){
16698         case 1:
16699         /* gsm-0408 */
16700                 /* As per comment abowe Individual IE:(s) will be found here in TLV format
16701                  * Unfortunatly a branch for each IE must be made to call the apropriate
16702                  * function
16703                  */
16704                  /* Get tag */
16705                  octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
16706                  proto_tree_add_item(subtree, hf_gsm_map_ie_tag, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
16707                  /* get length */
16708                  length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
16709                  proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
16710                  /* Branch on tag */
16711                  switch(octet){
16712                  case 4:
16713                         /* Dissect the data part */
16714                         de_bearer_cap((tvbuff_t*)actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
16715                         /* TODO: There may be more than one IE */
16716                         break;
16717                  default:
16718                         proto_tree_add_text(subtree, (tvbuff_t*)actx->value_ptr, 0, length, "If you want this decoded send the packet to Wireshark-dev");
16719                         break;
16720                 }/* switch(octet) */
16721                 break;
16722         case 2:
16723                 /* gsm-0806 */
16724                 octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
16725                 /* Discrimination parameter */
16726                 proto_tree_add_item(subtree, hf_gsm_map_disc_par, (tvbuff_t*)actx->value_ptr, 0,1,ENC_BIG_ENDIAN);
16727                 if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */
16728                         /* Strip off discrimination and length */
16729                         proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
16730                         next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
16731                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
16732                 }else if(octet==1){
16733                         proto_tree_add_item(subtree, hf_gsm_map_dlci, (tvbuff_t*)actx->value_ptr, 1,1,ENC_BIG_ENDIAN);
16734                         proto_tree_add_item(subtree, hf_gsm_map_len, (tvbuff_t*)actx->value_ptr, 2,1,ENC_BIG_ENDIAN);
16735                         next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 3);
16736                         call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree);
16737                 }
16738                 break;
16739         case 3:
16740         /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/
16741                 octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
16742                 if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
16743                         next_tvb = tvb_new_subset_remaining((tvbuff_t*)actx->value_ptr, 2);
16744                         dissect_bssmap(next_tvb, actx->pinfo, subtree);
16745                 }
16746                 break;
16747         /* ets-300102-1 (~Q.931 ) */
16748         case 4:
16749                 octet = tvb_get_guint8((tvbuff_t*)actx->value_ptr,0);
16750                 length = tvb_get_guint8((tvbuff_t*)actx->value_ptr,1);
16751                 if ( octet == 4 )
16752                         dissect_q931_bearer_capability_ie((tvbuff_t*)actx->value_ptr, 2, length, subtree);
16753                 break;
16754         default:
16755                 break;
16756         }/*switch (ProtocolId)*/
16757
16758
16759
16760   return offset;
16761 }
16762
16763
16764
16765 static int
16766 dissect_gsm_old_CallDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16767   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16768                                        NULL);
16769
16770   return offset;
16771 }
16772
16773
16774 static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = {
16775   { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16776   { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16777   { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection },
16778   { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16779   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16780   { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16781   { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16782   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16783   { NULL, 0, 0, 0, NULL }
16784 };
16785
16786 static int
16787 dissect_gsm_old_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16788   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16789                                    gsm_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg);
16790
16791   return offset;
16792 }
16793
16794
16795 static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = {
16796   { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
16797   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16798   { NULL, 0, 0, 0, NULL }
16799 };
16800
16801 static int
16802 dissect_gsm_old_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16803   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16804                                    gsm_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes);
16805
16806   return offset;
16807 }
16808
16809
16810 static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = {
16811   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
16812   { &hf_gsm_old_vlr_Number  , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16813   { NULL, 0, 0, 0, NULL }
16814 };
16815
16816 static int
16817 dissect_gsm_old_PurgeMSArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16818   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16819                                    gsm_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2);
16820
16821   return offset;
16822 }
16823
16824
16825 static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = {
16826   { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId },
16827   { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
16828   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
16829   { NULL, 0, 0, 0, NULL }
16830 };
16831
16832 static int
16833 dissect_gsm_old_PrepareHO_ArgOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16834   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16835                                    gsm_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld);
16836
16837   return offset;
16838 }
16839
16840
16841 static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = {
16842   { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
16843   { &hf_gsm_old_bss_APDU    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU },
16844   { NULL, 0, 0, 0, NULL }
16845 };
16846
16847 static int
16848 dissect_gsm_old_PrepareHO_ResOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16849   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16850                                    gsm_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld);
16851
16852   return offset;
16853 }
16854
16855
16856
16857 static int
16858 dissect_gsm_old_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16859   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16860                                        NULL);
16861
16862   return offset;
16863 }
16864
16865
16866
16867 static int
16868 dissect_gsm_old_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16869   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16870                                        NULL);
16871
16872   return offset;
16873 }
16874
16875
16876
16877 static int
16878 dissect_gsm_old_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16879   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
16880                                        NULL);
16881
16882   return offset;
16883 }
16884
16885
16886 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = {
16887   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
16888   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
16889   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
16890   { NULL, 0, 0, 0, NULL }
16891 };
16892
16893 static int
16894 dissect_gsm_old_SendAuthenticationInfoResOld_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16895   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16896                                    gsm_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item);
16897
16898   return offset;
16899 }
16900
16901
16902 static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = {
16903   { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item },
16904 };
16905
16906 static int
16907 dissect_gsm_old_SendAuthenticationInfoResOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16908   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
16909                                       gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld);
16910
16911   return offset;
16912 }
16913
16914
16915 static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = {
16916   { &hf_gsm_old_rand        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND },
16917   { &hf_gsm_old_sres        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES },
16918   { &hf_gsm_old_kc          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc },
16919   { NULL, 0, 0, 0, NULL }
16920 };
16921
16922 static int
16923 dissect_gsm_old_AuthenticationTriplet_v2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16924   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16925                                    gsm_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2);
16926
16927   return offset;
16928 }
16929
16930
16931 static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = {
16932   { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 },
16933 };
16934
16935 static int
16936 dissect_gsm_old_TripletListold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16937   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
16938                                       gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold);
16939
16940   return offset;
16941 }
16942
16943
16944 static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = {
16945   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
16946   { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold },
16947   { NULL, 0, 0, 0, NULL }
16948 };
16949
16950 static int
16951 dissect_gsm_old_SendIdentificationResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16952   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16953                                    gsm_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2);
16954
16955   return offset;
16956 }
16957
16958
16959 static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = {
16960   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16961   { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16962   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16963   { NULL, 0, 0, 0, NULL }
16964 };
16965
16966 static int
16967 dissect_gsm_old_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16968   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16969                                    gsm_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg);
16970
16971   return offset;
16972 }
16973
16974
16975 static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = {
16976   { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
16977   { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
16978   { NULL, 0, 0, 0, NULL }
16979 };
16980
16981 static int
16982 dissect_gsm_old_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16983   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
16984                                    gsm_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes);
16985
16986   return offset;
16987 }
16988
16989
16990
16991 int
16992 dissect_gsm_old_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
16993   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
16994                                             actx, tree, tvb, offset, hf_index,
16995                                             NULL);
16996
16997   return offset;
16998 }
16999
17000
17001 const value_string gsm_old_GetPasswordArg_vals[] = {
17002   {   0, "enterPW" },
17003   {   1, "enterNewPW" },
17004   {   2, "enterNewPW-Again" },
17005   { 0, NULL }
17006 };
17007
17008
17009 int
17010 dissect_gsm_old_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17011   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17012                                   NULL);
17013
17014   return offset;
17015 }
17016
17017
17018
17019 int
17020 dissect_gsm_old_CurrentPassword(gboolean 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_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
17022                                             actx, tree, tvb, offset, hf_index,
17023                                             NULL);
17024
17025   return offset;
17026 }
17027
17028
17029
17030 static int
17031 dissect_gsm_old_SecurityParametersIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17032   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17033                                        NULL);
17034
17035   return offset;
17036 }
17037
17038
17039
17040 static int
17041 dissect_gsm_old_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17042   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17043                                                 NULL);
17044
17045   return offset;
17046 }
17047
17048
17049 static const value_string gsm_old_OperationCode_vals[] = {
17050   {   0, "localValue" },
17051   {   1, "globalValue" },
17052   { 0, NULL }
17053 };
17054
17055 static const ber_choice_t gsm_old_OperationCode_choice[] = {
17056   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
17057   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
17058   { 0, NULL, 0, 0, 0, NULL }
17059 };
17060
17061 static int
17062 dissect_gsm_old_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17063   offset = dissect_ber_choice(actx, tree, tvb, offset,
17064                                  gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode,
17065                                  NULL);
17066
17067   return offset;
17068 }
17069
17070
17071 static const value_string gsm_old_ErrorCode_vals[] = {
17072   {   0, "localValue" },
17073   {   1, "globalValue" },
17074   { 0, NULL }
17075 };
17076
17077 static const ber_choice_t gsm_old_ErrorCode_choice[] = {
17078   {   0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER },
17079   {   1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER },
17080   { 0, NULL, 0, 0, 0, NULL }
17081 };
17082
17083 static int
17084 dissect_gsm_old_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17085   offset = dissect_ber_choice(actx, tree, tvb, offset,
17086                                  gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode,
17087                                  NULL);
17088
17089   return offset;
17090 }
17091
17092
17093 static const value_string gsm_old_OriginalComponentIdentifier_vals[] = {
17094   {   0, "operationCode" },
17095   {   1, "errorCode" },
17096   {   2, "userInfo" },
17097   { 0, NULL }
17098 };
17099
17100 static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = {
17101   {   0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode },
17102   {   1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode },
17103   {   2, &hf_gsm_old_userInfo    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
17104   { 0, NULL, 0, 0, 0, NULL }
17105 };
17106
17107 static int
17108 dissect_gsm_old_OriginalComponentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17109   offset = dissect_ber_choice(actx, tree, tvb, offset,
17110                                  gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier,
17111                                  NULL);
17112
17113   return offset;
17114 }
17115
17116
17117
17118 static int
17119 dissect_gsm_old_InitialisationVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17120   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17121                                        NULL);
17122
17123   return offset;
17124 }
17125
17126
17127 static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = {
17128   { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex },
17129   { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier },
17130   { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector },
17131   { NULL, 0, 0, 0, NULL }
17132 };
17133
17134 int
17135 dissect_gsm_old_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17136   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17137                                    gsm_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader);
17138
17139   return offset;
17140 }
17141
17142
17143
17144 int
17145 dissect_gsm_old_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17146   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17147                                        NULL);
17148
17149   return offset;
17150 }
17151
17152
17153 static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = {
17154   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
17155   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
17156   { NULL, 0, 0, 0, NULL }
17157 };
17158
17159 static int
17160 dissect_gsm_old_SecureTransportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17161   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17162                                    gsm_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg);
17163
17164   return offset;
17165 }
17166
17167
17168 static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = {
17169   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
17170   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
17171   { NULL, 0, 0, 0, NULL }
17172 };
17173
17174 static int
17175 dissect_gsm_old_SecureTransportErrorParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17176   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17177                                    gsm_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam);
17178
17179   return offset;
17180 }
17181
17182
17183 static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = {
17184   { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader },
17185   { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload },
17186   { NULL, 0, 0, 0, NULL }
17187 };
17188
17189 static int
17190 dissect_gsm_old_SecureTransportRes(gboolean 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_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes);
17193
17194   return offset;
17195 }
17196
17197
17198
17199 static int
17200 dissect_gsm_old_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17201   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17202                                        NULL);
17203
17204   return offset;
17205 }
17206
17207
17208
17209 static int
17210 dissect_gsm_old_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17211   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17212                                        NULL);
17213
17214   return offset;
17215 }
17216
17217
17218 static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = {
17219   { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 },
17220 };
17221
17222 static int
17223 dissect_gsm_old_T_operatorSS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17224   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
17225                                       gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code);
17226
17227   return offset;
17228 }
17229
17230
17231 static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = {
17232   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17233   { &hf_gsm_old_category    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category },
17234   { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode },
17235   { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code },
17236   { NULL, 0, 0, 0, NULL }
17237 };
17238
17239 static int
17240 dissect_gsm_old_PlmnContainer_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17241   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17242                                    gsm_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U);
17243
17244   return offset;
17245 }
17246
17247
17248
17249 static int
17250 dissect_gsm_old_PlmnContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17251   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
17252                                       hf_index, BER_CLASS_PRI, 2, TRUE, dissect_gsm_old_PlmnContainer_U);
17253
17254   return offset;
17255 }
17256
17257
17258
17259 static int
17260 dissect_gsm_old_T_imsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17261 #line 298 "../../asn1/gsm_map/gsm_map.cnf"
17262         actx->pinfo->p2p_dir = P2P_DIR_SENT;
17263   offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
17264
17265
17266
17267
17268   return offset;
17269 }
17270
17271
17272
17273 static int
17274 dissect_gsm_old_T_lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17275 #line 302 "../../asn1/gsm_map/gsm_map.cnf"
17276         actx->pinfo->p2p_dir = P2P_DIR_SENT;
17277   offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
17278
17279
17280
17281
17282   return offset;
17283 }
17284
17285
17286
17287 static int
17288 dissect_gsm_old_T_serviceCentreAddressDA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17289 #line 322 "../../asn1/gsm_map/gsm_map.cnf"
17290         actx->pinfo->p2p_dir = P2P_DIR_RECV;
17291   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
17292
17293
17294
17295
17296   return offset;
17297 }
17298
17299
17300 static const value_string gsm_old_SM_RP_DAold_vals[] = {
17301   {   0, "imsi" },
17302   {   1, "lmsi" },
17303   {   4, "serviceCentreAddressDA" },
17304   {   5, "noSM-RP-DA" },
17305   { 0, NULL }
17306 };
17307
17308 static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = {
17309   {   0, &hf_gsm_old_imsi_01     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_imsi },
17310   {   1, &hf_gsm_old_lmsi        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_lmsi },
17311   {   4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressDA },
17312   {   5, &hf_gsm_old_noSM_RP_DA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
17313   { 0, NULL, 0, 0, 0, NULL }
17314 };
17315
17316 static int
17317 dissect_gsm_old_SM_RP_DAold(gboolean 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_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold,
17320                                  NULL);
17321
17322   return offset;
17323 }
17324
17325
17326
17327 static int
17328 dissect_gsm_old_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17329 #line 314 "../../asn1/gsm_map/gsm_map.cnf"
17330 actx->pinfo->p2p_dir = P2P_DIR_RECV;
17331    offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
17332
17333
17334
17335
17336   return offset;
17337 }
17338
17339
17340
17341 static int
17342 dissect_gsm_old_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17343 #line 290 "../../asn1/gsm_map/gsm_map.cnf"
17344         actx->pinfo->p2p_dir = P2P_DIR_SENT;
17345   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
17346
17347
17348
17349
17350   return offset;
17351 }
17352
17353
17354 static const value_string gsm_old_SM_RP_OAold_vals[] = {
17355   {   2, "msisdn" },
17356   {   4, "serviceCentreAddressOA" },
17357   {   5, "noSM-RP-OA" },
17358   { 0, NULL }
17359 };
17360
17361 static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = {
17362   {   2, &hf_gsm_old_msisdn_01   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn },
17363   {   4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA },
17364   {   5, &hf_gsm_old_noSM_RP_OA  , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL },
17365   { 0, NULL, 0, 0, 0, NULL }
17366 };
17367
17368 static int
17369 dissect_gsm_old_SM_RP_OAold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17370   offset = dissect_ber_choice(actx, tree, tvb, offset,
17371                                  gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold,
17372                                  NULL);
17373
17374   return offset;
17375 }
17376
17377
17378 static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = {
17379   { &hf_gsm_old_sm_RP_DA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold },
17380   { &hf_gsm_old_sm_RP_OA    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold },
17381   { &hf_gsm_old_sm_RP_UI    , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo },
17382   { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL },
17383   { NULL, 0, 0, 0, NULL }
17384 };
17385
17386 static int
17387 dissect_gsm_old_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17388 #line 349 "../../asn1/gsm_map/gsm_map.cnf"
17389
17390         /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */
17391   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17392                                    gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg);
17393
17394
17395         if (!actx->value_ptr)
17396                 return offset;
17397         dissector_try_uint(sms_dissector_table, 0, (tvbuff_t*)actx->value_ptr, actx->pinfo, top_tree);
17398
17399
17400
17401   return offset;
17402 }
17403
17404
17405 static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = {
17406   { &hf_gsm_old_msisdn      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17407   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo },
17408   { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding },
17409   { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo },
17410   { NULL, 0, 0, 0, NULL }
17411 };
17412
17413 static int
17414 dissect_gsm_old_SendRoutingInfoArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17415   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17416                                    gsm_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2);
17417
17418   return offset;
17419 }
17420
17421
17422 static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = {
17423   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
17424   { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo },
17425   { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo },
17426   { NULL, 0, 0, 0, NULL }
17427 };
17428
17429 static int
17430 dissect_gsm_old_SendRoutingInfoResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17431   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17432                                    gsm_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2);
17433
17434   return offset;
17435 }
17436
17437
17438 static const ber_sequence_t gsm_old_BeginSubscriberActivityArg_sequence[] = {
17439   { &hf_gsm_old_imsi        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI },
17440   { &hf_gsm_old_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString },
17441   { &hf_gsm_old_msisdn_02   , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
17442   { NULL, 0, 0, 0, NULL }
17443 };
17444
17445 static int
17446 dissect_gsm_old_BeginSubscriberActivityArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17447   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17448                                    gsm_old_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_old_BeginSubscriberActivityArg);
17449
17450   return offset;
17451 }
17452
17453
17454 /* --- Module SS-DataTypes --- --- ---                                        */
17455
17456
17457
17458 static int
17459 dissect_gsm_ss_SS_UserData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17460   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
17461                                             actx, tree, tvb, offset, hf_index,
17462                                             NULL);
17463
17464   return offset;
17465 }
17466
17467
17468
17469 static int
17470 dissect_gsm_ss_SS_Notification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17471   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17472                                        NULL);
17473
17474   return offset;
17475 }
17476
17477
17478
17479 static int
17480 dissect_gsm_ss_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17481   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
17482
17483   return offset;
17484 }
17485
17486
17487 static const value_string gsm_ss_CallOnHold_Indicator_vals[] = {
17488   {   0, "callRetrieved" },
17489   {   1, "callOnHold" },
17490   { 0, NULL }
17491 };
17492
17493
17494 static int
17495 dissect_gsm_ss_CallOnHold_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17496   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17497                                   NULL);
17498
17499   return offset;
17500 }
17501
17502
17503 static const value_string gsm_ss_ECT_CallState_vals[] = {
17504   {   0, "alerting" },
17505   {   1, "active" },
17506   { 0, NULL }
17507 };
17508
17509
17510 static int
17511 dissect_gsm_ss_ECT_CallState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17512   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17513                                   NULL);
17514
17515   return offset;
17516 }
17517
17518
17519 static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = {
17520   { &hf_gsm_ss_partyNumber  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
17521   { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
17522   { NULL, 0, 0, 0, NULL }
17523 };
17524
17525 static int
17526 dissect_gsm_ss_RemotePartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17527   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17528                                    gsm_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber);
17529
17530   return offset;
17531 }
17532
17533
17534 static const value_string gsm_ss_RDN_vals[] = {
17535   {   0, "presentationAllowedAddress" },
17536   {   1, "presentationRestricted" },
17537   {   2, "numberNotAvailableDueToInterworking" },
17538   {   3, "presentationRestrictedAddress" },
17539   { 0, NULL }
17540 };
17541
17542 static const ber_choice_t gsm_ss_RDN_choice[] = {
17543   {   0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
17544   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17545   {   2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17546   {   3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber },
17547   { 0, NULL, 0, 0, 0, NULL }
17548 };
17549
17550 static int
17551 dissect_gsm_ss_RDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17552   offset = dissect_ber_choice(actx, tree, tvb, offset,
17553                                  gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN,
17554                                  NULL);
17555
17556   return offset;
17557 }
17558
17559
17560 static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = {
17561   { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState },
17562   { &hf_gsm_ss_rdn          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN },
17563   { NULL, 0, 0, 0, NULL }
17564 };
17565
17566 static int
17567 dissect_gsm_ss_ECT_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17568   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17569                                    gsm_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator);
17570
17571   return offset;
17572 }
17573
17574
17575
17576 static int
17577 dissect_gsm_ss_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17578   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17579                                                 NULL);
17580
17581   return offset;
17582 }
17583
17584
17585 static const ber_sequence_t gsm_ss_NameSet_sequence[] = {
17586   { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme },
17587   { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER },
17588   { &hf_gsm_ss_nameString   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String },
17589   { NULL, 0, 0, 0, NULL }
17590 };
17591
17592 static int
17593 dissect_gsm_ss_NameSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17594   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17595                                    gsm_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet);
17596
17597   return offset;
17598 }
17599
17600
17601 static const value_string gsm_ss_Name_vals[] = {
17602   {   0, "namePresentationAllowed" },
17603   {   1, "presentationRestricted" },
17604   {   2, "nameUnavailable" },
17605   {   3, "namePresentationRestricted" },
17606   { 0, NULL }
17607 };
17608
17609 static const ber_choice_t gsm_ss_Name_choice[] = {
17610   {   0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
17611   {   1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17612   {   2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17613   {   3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet },
17614   { 0, NULL, 0, 0, 0, NULL }
17615 };
17616
17617 static int
17618 dissect_gsm_ss_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17619   offset = dissect_ber_choice(actx, tree, tvb, offset,
17620                                  gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name,
17621                                  NULL);
17622
17623   return offset;
17624 }
17625
17626
17627 static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = {
17628   { &hf_gsm_ss_callingName  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name },
17629   { NULL, 0, 0, 0, NULL }
17630 };
17631
17632 static int
17633 dissect_gsm_ss_NameIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17634   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17635                                    gsm_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator);
17636
17637   return offset;
17638 }
17639
17640
17641 static const value_string gsm_ss_Multicall_Indicator_vals[] = {
17642   {   0, "nbr-SNexceeded" },
17643   {   1, "nbr-Userexceeded" },
17644   { 0, NULL }
17645 };
17646
17647
17648 static int
17649 dissect_gsm_ss_Multicall_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17650   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17651                                   NULL);
17652
17653   return offset;
17654 }
17655
17656
17657 static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = {
17658   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
17659   { &hf_gsm_ss_ss_Status    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status },
17660   { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification },
17661   { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17662   { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator },
17663   { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17664   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
17665   { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17666   { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator },
17667   { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator },
17668   { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature },
17669   { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern },
17670   { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator },
17671   { NULL, 0, 0, 0, NULL }
17672 };
17673
17674 static int
17675 dissect_gsm_ss_NotifySS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17676   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17677                                    gsm_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg);
17678
17679   return offset;
17680 }
17681
17682
17683
17684 static int
17685 dissect_gsm_ss_E1(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17687                                                 NULL);
17688
17689   return offset;
17690 }
17691
17692
17693
17694 static int
17695 dissect_gsm_ss_E2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17696   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17697                                                 NULL);
17698
17699   return offset;
17700 }
17701
17702
17703
17704 static int
17705 dissect_gsm_ss_E3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17706   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17707                                                 NULL);
17708
17709   return offset;
17710 }
17711
17712
17713
17714 static int
17715 dissect_gsm_ss_E4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17716   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17717                                                 NULL);
17718
17719   return offset;
17720 }
17721
17722
17723
17724 static int
17725 dissect_gsm_ss_E5(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17726   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17727                                                 NULL);
17728
17729   return offset;
17730 }
17731
17732
17733
17734 static int
17735 dissect_gsm_ss_E6(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17736   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17737                                                 NULL);
17738
17739   return offset;
17740 }
17741
17742
17743
17744 static int
17745 dissect_gsm_ss_E7(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17746   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17747                                                 NULL);
17748
17749   return offset;
17750 }
17751
17752
17753 static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = {
17754   { &hf_gsm_ss_e1           , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 },
17755   { &hf_gsm_ss_e2           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 },
17756   { &hf_gsm_ss_e3           , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 },
17757   { &hf_gsm_ss_e4           , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 },
17758   { &hf_gsm_ss_e5           , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 },
17759   { &hf_gsm_ss_e6           , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 },
17760   { &hf_gsm_ss_e7           , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 },
17761   { NULL, 0, 0, 0, NULL }
17762 };
17763
17764 static int
17765 dissect_gsm_ss_ChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17766   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17767                                    gsm_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation);
17768
17769   return offset;
17770 }
17771
17772
17773 static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = {
17774   { &hf_gsm_ss_ss_Code      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code },
17775   { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation },
17776   { NULL, 0, 0, 0, NULL }
17777 };
17778
17779 static int
17780 dissect_gsm_ss_ForwardChargeAdviceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17781   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17782                                    gsm_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg);
17783
17784   return offset;
17785 }
17786
17787
17788 static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = {
17789   { &hf_gsm_ss_cug_Index    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
17790   { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17791   { &hf_gsm_ss_suppressOA   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
17792   { NULL, 0, 0, 0, NULL }
17793 };
17794
17795 static int
17796 dissect_gsm_ss_ForwardCUG_InfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17797   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17798                                    gsm_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg);
17799
17800   return offset;
17801 }
17802
17803
17804 static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = {
17805   { NULL, 0, 0, 0, NULL }
17806 };
17807
17808 static int
17809 dissect_gsm_ss_AccessRegisterCCEntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17810   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17811                                    gsm_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg);
17812
17813   return offset;
17814 }
17815
17816
17817 static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = {
17818   { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
17819   { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString },
17820   { NULL, 0, 0, 0, NULL }
17821 };
17822
17823 static int
17824 dissect_gsm_ss_CallDeflectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17825   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17826                                    gsm_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg);
17827
17828   return offset;
17829 }
17830
17831
17832 static const value_string gsm_ss_UUS_Service_vals[] = {
17833   {   1, "uUS1" },
17834   {   2, "uUS2" },
17835   {   3, "uUS3" },
17836   { 0, NULL }
17837 };
17838
17839
17840 static int
17841 dissect_gsm_ss_UUS_Service(gboolean 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_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17843                                   NULL);
17844
17845   return offset;
17846 }
17847
17848
17849
17850 static int
17851 dissect_gsm_ss_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17852   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
17853
17854   return offset;
17855 }
17856
17857
17858 static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = {
17859   { &hf_gsm_ss_uUS_Service  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service },
17860   { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN },
17861   { NULL, 0, 0, 0, NULL }
17862 };
17863
17864 static int
17865 dissect_gsm_ss_UserUserServiceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17866   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17867                                    gsm_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg);
17868
17869   return offset;
17870 }
17871
17872
17873 static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = {
17874   { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser },
17875   { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
17876   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
17877   { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName },
17878   { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID },
17879   { &hf_gsm_ss_lcsCodeword  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword },
17880   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
17881   { NULL, 0, 0, 0, NULL }
17882 };
17883
17884 static int
17885 dissect_gsm_ss_LocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17886   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17887                                    gsm_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg);
17888
17889   return offset;
17890 }
17891
17892
17893 static const value_string gsm_ss_VerificationResponse_vals[] = {
17894   {   0, "permissionDenied" },
17895   {   1, "permissionGranted" },
17896   { 0, NULL }
17897 };
17898
17899
17900 static int
17901 dissect_gsm_ss_VerificationResponse(gboolean 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);
17904
17905   return offset;
17906 }
17907
17908
17909 static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = {
17910   { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse },
17911   { NULL, 0, 0, 0, NULL }
17912 };
17913
17914 static int
17915 dissect_gsm_ss_LocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17916   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
17917                                    gsm_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes);
17918
17919   return offset;
17920 }
17921
17922
17923 static const value_string gsm_ss_MOLR_Type_vals[] = {
17924   {   0, "locationEstimate" },
17925   {   1, "assistanceData" },
17926   {   2, "deCipheringKeys" },
17927   {   3, "deferredMo-lrTTTPInitiation" },
17928   {   4, "deferredMo-lrSelfLocationInitiation" },
17929   {   5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" },
17930   {   6, "deferredMt-lrOrmo-lrCancellation" },
17931   { 0, NULL }
17932 };
17933
17934
17935 static int
17936 dissect_gsm_ss_MOLR_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17937   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17938                                   NULL);
17939
17940   return offset;
17941 }
17942
17943
17944 const value_string gsm_ss_LocationMethod_vals[] = {
17945   {   0, "msBasedEOTD" },
17946   {   1, "msAssistedEOTD" },
17947   {   2, "assistedGPS" },
17948   {   3, "msBasedOTDOA" },
17949   {   4, "assistedGANSS" },
17950   {   5, "assistedGPSandGANSS" },
17951   { 0, NULL }
17952 };
17953
17954
17955 int
17956 dissect_gsm_ss_LocationMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17957   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17958                                   NULL);
17959
17960   return offset;
17961 }
17962
17963
17964
17965 static int
17966 dissect_gsm_ss_GPSAssistanceData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17967   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17968                                        NULL);
17969
17970   return offset;
17971 }
17972
17973
17974 static const value_string gsm_ss_TerminationCause_vals[] = {
17975   {   0, "subscriberTermination" },
17976   {   1, "uETermination" },
17977   { 0, NULL }
17978 };
17979
17980
17981 static int
17982 dissect_gsm_ss_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17983   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
17984                                   NULL);
17985
17986   return offset;
17987 }
17988
17989
17990
17991 static int
17992 dissect_gsm_ss_GANSSAssistanceData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
17993   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
17994                                        NULL);
17995
17996   return offset;
17997 }
17998
17999
18000
18001 static int
18002 dissect_gsm_ss_PositioningProtocolPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18003   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18004                                        NULL);
18005
18006   return offset;
18007 }
18008
18009
18010 static const ber_sequence_t gsm_ss_MultiplePositioningProtocolPDUs_sequence_of[1] = {
18011   { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_PositioningProtocolPDU },
18012 };
18013
18014 static int
18015 dissect_gsm_ss_MultiplePositioningProtocolPDUs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18016   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
18017                                       gsm_ss_MultiplePositioningProtocolPDUs_sequence_of, hf_index, ett_gsm_ss_MultiplePositioningProtocolPDUs);
18018
18019   return offset;
18020 }
18021
18022
18023 static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = {
18024   { &hf_gsm_ss_molr_Type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type },
18025   { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod },
18026   { &hf_gsm_ss_lcs_QoS      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
18027   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
18028   { &hf_gsm_ss_mlc_Number   , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
18029   { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData },
18030   { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes },
18031   { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID },
18032   { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation },
18033   { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType },
18034   { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
18035   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18036   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
18037   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
18038   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18039   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
18040   { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
18041   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
18042   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
18043   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
18044   { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData },
18045   { &hf_gsm_ss_multiplePositioningProtocolPDUs, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MultiplePositioningProtocolPDUs },
18046   { NULL, 0, 0, 0, NULL }
18047 };
18048
18049 static int
18050 dissect_gsm_ss_LCS_MOLRArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18051   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18052                                    gsm_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg);
18053
18054   return offset;
18055 }
18056
18057
18058
18059 static int
18060 dissect_gsm_ss_DecipheringKeys(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18061   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18062                                        NULL);
18063
18064   return offset;
18065 }
18066
18067
18068 static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = {
18069   { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation },
18070   { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys },
18071   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
18072   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
18073   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18074   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18075   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
18076   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
18077   { NULL, 0, 0, 0, NULL }
18078 };
18079
18080 static int
18081 dissect_gsm_ss_LCS_MOLRRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18082   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18083                                    gsm_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes);
18084
18085   return offset;
18086 }
18087
18088
18089 static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = {
18090   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18091   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18092   { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType },
18093   { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo },
18094   { NULL, 0, 0, 0, NULL }
18095 };
18096
18097 static int
18098 dissect_gsm_ss_LCS_AreaEventRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18099   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18100                                    gsm_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg);
18101
18102   return offset;
18103 }
18104
18105
18106 static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = {
18107   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18108   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18109   { NULL, 0, 0, 0, NULL }
18110 };
18111
18112 static int
18113 dissect_gsm_ss_LCS_AreaEventReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18114   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18115                                    gsm_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg);
18116
18117   return offset;
18118 }
18119
18120
18121 static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = {
18122   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18123   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18124   { NULL, 0, 0, 0, NULL }
18125 };
18126
18127 static int
18128 dissect_gsm_ss_LCS_AreaEventCancellationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18129   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18130                                    gsm_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg);
18131
18132   return offset;
18133 }
18134
18135
18136 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = {
18137   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18138   { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo },
18139   { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID },
18140   { &hf_gsm_ss_qoS          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS },
18141   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18142   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
18143   { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList },
18144   { NULL, 0, 0, 0, NULL }
18145 };
18146
18147 static int
18148 dissect_gsm_ss_LCS_PeriodicLocationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18149   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18150                                    gsm_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg);
18151
18152   return offset;
18153 }
18154
18155
18156 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = {
18157   { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL },
18158   { NULL, 0, 0, 0, NULL }
18159 };
18160
18161 static int
18162 dissect_gsm_ss_LCS_PeriodicLocationRequestRes(gboolean 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_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes);
18165
18166   return offset;
18167 }
18168
18169
18170 static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = {
18171   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18172   { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation },
18173   { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate },
18174   { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber },
18175   { NULL, 0, 0, 0, NULL }
18176 };
18177
18178 static int
18179 dissect_gsm_ss_LCS_LocationUpdateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18180   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18181                                    gsm_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg);
18182
18183   return offset;
18184 }
18185
18186
18187 static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = {
18188   { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause },
18189   { NULL, 0, 0, 0, NULL }
18190 };
18191
18192 static int
18193 dissect_gsm_ss_LCS_LocationUpdateRes(gboolean 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_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes);
18196
18197   return offset;
18198 }
18199
18200
18201 static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = {
18202   { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber },
18203   { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
18204   { NULL, 0, 0, 0, NULL }
18205 };
18206
18207 static int
18208 dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18209   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
18210                                    gsm_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg);
18211
18212   return offset;
18213 }
18214
18215
18216 /* --- Module SS-Operations --- --- ---                                       */
18217
18218
18219 /* --- Module EricssonMAP --- --- ---                                         */
18220
18221
18222
18223 static int
18224 dissect_gsm_map_ericsson_T_locationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
18225 #line 925 "../../asn1/gsm_map/gsm_map.cnf"
18226   tvbuff_t *parameter_tvb;
18227   proto_tree *subtree;
18228   guint8 rat;
18229   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
18230                                        &parameter_tvb);
18231
18232   if (parameter_tvb) {
18233     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ericsson_locationInformation);
18234     rat = tvb_get_guint8(parameter_tvb, 0);
18235     proto_tree_add_uint(subtree, hf_gsm_map_ericsson_locationInformation_rat, parameter_tvb, 0, 1, rat);
18236     switch (rat) {
18237       case 0:
18238         /* GSM */
18239         proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
18240         proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_ci, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
18241         break;
18242       case 1:
18243         /* UMTS */
18244         proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN);
18245         proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_sac, parameter_tvb, 3, 2, ENC_BIG_ENDIAN);
18246         break;
18247       default:
18248         break;
18249     }
18250   }
18251
18252
18253
18254   return offset;
18255 }
18256
18257
18258 static const ber_sequence_t gsm_map_ericsson_EnhancedCheckIMEI_Arg_sequence[] = {
18259   { &hf_gsm_map_ericsson_imei, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI },
18260   { &hf_gsm_map_ericsson_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo },
18261   { &hf_gsm_map_ericsson_imsi, BER_CLASS_PRI, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
18262   { &hf_gsm_map_ericsson_locationInformation, BER_CLASS_PRI, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_T_locationInformation },
18263   { &hf_gsm_map_ericsson_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer },
18264   { NULL, 0, 0, 0, NULL }
18265 };
18266
18267 static int
18268 dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg(gboolean 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_map_ericsson_EnhancedCheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg);
18271
18272   return offset;
18273 }
18274
18275
18276 /*--- End of included file: packet-gsm_map-fn.c ---*/
18277 #line 846 "../../asn1/gsm_map/packet-gsm_map-template.c"
18278
18279 /* Specific translation for MAP V3 */
18280 const value_string gsm_map_V1V2_opr_code_strings[] = {
18281   {  44, "forwardSM" },
18282   {  45, "sendRoutingInfoForSM" },
18283   {  46, "forwardSM" },
18284   { 0, NULL }
18285 };
18286 /* Generic translation for MAP operation */
18287 const value_string gsm_map_opr_code_strings[] = {
18288
18289 /*--- Included file: packet-gsm_map-table.c ---*/
18290 #line 1 "../../asn1/gsm_map/packet-gsm_map-table.c"
18291
18292 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
18293
18294 /* Unknown or empty loop list OPERATION */
18295
18296 /* --- Module MobileDomainDefinitions --- --- ---                             */
18297
18298 /* Unknown or empty loop list OPERATION */
18299
18300 /* --- Module MAP-ApplicationContexts --- --- ---                             */
18301
18302 /* Unknown or empty loop list OPERATION */
18303
18304 /* --- Module MAP-SS-Code --- --- ---                                         */
18305
18306 /* Unknown or empty loop list OPERATION */
18307
18308 /* --- Module MAP-BS-Code --- --- ---                                         */
18309
18310 /* Unknown or empty loop list OPERATION */
18311
18312 /* --- Module MAP-TS-Code --- --- ---                                         */
18313
18314 /* Unknown or empty loop list OPERATION */
18315
18316 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
18317
18318 /* Unknown or empty loop list OPERATION */
18319
18320 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
18321
18322 /* Unknown or empty loop list OPERATION */
18323
18324 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
18325
18326 /* Unknown or empty loop list OPERATION */
18327
18328 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
18329
18330 /* Unknown or empty loop list OPERATION */
18331
18332 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
18333
18334 /* Unknown or empty loop list OPERATION */
18335
18336 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
18337
18338 /* Unknown or empty loop list OPERATION */
18339
18340 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
18341
18342 /* Unknown or empty loop list OPERATION */
18343
18344 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
18345
18346 /* Unknown or empty loop list OPERATION */
18347
18348 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
18349
18350 /* Unknown or empty loop list OPERATION */
18351
18352 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
18353
18354 /* Unknown or empty loop list OPERATION */
18355
18356 /* --- Module MAP-DialogueInformation --- --- ---                             */
18357
18358 /* Unknown or empty loop list OPERATION */
18359
18360 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
18361
18362         { 85, "sendRoutingInfoForLCS" },
18363         { 83, "provideSubscriberLocation" },
18364         { 86, "subscriberLocationReport" },
18365
18366 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
18367
18368         { 39, "prepareGroupCall" },
18369         { 40, "sendGroupCallEndSignal" },
18370         { 41, "processGroupCallSignalling" },
18371         { 42, "forwardGroupCallSignalling" },
18372         { 84, "sendGroupCallInfo" },
18373
18374 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
18375
18376         { 45, "sendRoutingInfoForSM" },
18377         { 46, "mo_ForwardSM" },
18378         { 44, "mt_ForwardSM" },
18379         { 47, "reportSM_DeliveryStatus" },
18380         { 64, "alertServiceCentre" },
18381         { 63, "informServiceCentre" },
18382         { 66, "readyForSM" },
18383         { 21, "mt_ForwardSM_VGCS" },
18384
18385 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
18386
18387         { 10, "registerSS" },
18388         { 11, "eraseSS" },
18389         { 12, "activateSS" },
18390         { 13, "deactivateSS" },
18391         { 14, "interrogateSS" },
18392         { 59, "processUnstructuredSS_Request" },
18393         { 60, "unstructuredSS_Request" },
18394         { 61, "unstructuredSS_Notify" },
18395         { 17, "registerPassword" },
18396         { 18, "getPassword" },
18397         { 72, "ss_InvocationNotification" },
18398         { 76, "registerCC_Entry" },
18399         { 77, "eraseCC_Entry" },
18400
18401 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
18402
18403         { 22, "sendRoutingInfo" },
18404         { 4, "provideRoamingNumber" },
18405         { 6, "resumeCallHandling" },
18406         { 73, "setReportingState" },
18407         { 74, "statusReport" },
18408         { 75, "remoteUserFree" },
18409         { 87, "ist_Alert" },
18410         { 88, "ist_Command" },
18411         { 20, "releaseResources" },
18412
18413 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
18414
18415         { 50, "activateTraceMode" },
18416         { 51, "deactivateTraceMode" },
18417         { 58, "sendIMSI" },
18418
18419 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
18420
18421         { 2, "updateLocation" },
18422         { 3, "cancelLocation" },
18423         { 67, "purgeMS" },
18424         { 55, "sendIdentification" },
18425         { 23, "updateGprsLocation" },
18426         { 70, "provideSubscriberInfo" },
18427         { 71, "anyTimeInterrogation" },
18428         { 62, "anyTimeSubscriptionInterrogation" },
18429         { 65, "anyTimeModification" },
18430         { 5, "noteSubscriberDataModified" },
18431         { 68, "prepareHandover" },
18432         { 29, "sendEndSignal" },
18433         { 33, "processAccessSignalling" },
18434         { 34, "forwardAccessSignalling" },
18435         { 69, "prepareSubsequentHandover" },
18436         { 56, "sendAuthenticationInfo" },
18437         { 15, "authenticationFailureReport" },
18438         { 43, "checkIMEI" },
18439         { 7, "insertSubscriberData" },
18440         { 8, "deleteSubscriberData" },
18441         { 37, "reset" },
18442         { 38, "forwardCheckSS_Indication" },
18443         { 57, "restoreData" },
18444         { 24, "sendRoutingInfoForGprs" },
18445         { 25, "failureReport" },
18446         { 26, "noteMsPresentForGprs" },
18447         { 89, "noteMM_Event" },
18448         { 53, "updateVcsgLocation" },
18449         { 36, "cancelVcsgLocation" },
18450
18451 /* --- Module MAP-Errors --- --- ---                                          */
18452
18453 /* Unknown or empty loop list OPERATION */
18454
18455 /* --- Module MAP-Protocol --- --- ---                                        */
18456
18457 /* Unknown or empty loop list OPERATION */
18458
18459 /* --- Module DummyMAP --- --- ---                                            */
18460
18461 /* Unknown or empty loop list OPERATION */
18462
18463 /* --- Module SS-DataTypes --- --- ---                                        */
18464
18465 /* Unknown or empty loop list OPERATION */
18466
18467 /* --- Module SS-Operations --- --- ---                                       */
18468
18469         { 19, "processUnstructuredSS_Data" },
18470         { 16, "notifySS" },
18471         { 125, "forwardChargeAdvice" },
18472         { 120, "forwardCUG_Info" },
18473         { 124, "buildMPTY" },
18474         { 123, "holdMPTY" },
18475         { 122, "retrieveMPTY" },
18476         { 121, "splitMPTY" },
18477         { 126, "explicitCT" },
18478         { 119, "accessRegisterCCEntry" },
18479         { 117, "callDeflection" },
18480         { 118, "userUserService" },
18481         { 116, "lcs_LocationNotification" },
18482         { 115, "lcs_MOLR" },
18483         { 114, "lcs_AreaEventRequest" },
18484         { 113, "lcs_AreaEventReport" },
18485         { 112, "lcs_AreaEventCancellation" },
18486         { 111, "lcs_PeriodicLocationRequest" },
18487         { 110, "lcs_LocationUpdate" },
18488         { 109, "lcs_PeriodicLocationCancellation" },
18489
18490 /* --- Module EricssonMAP --- --- ---                                         */
18491
18492 /* Unknown or empty loop list OPERATION */
18493
18494 /*--- End of included file: packet-gsm_map-table.c ---*/
18495 #line 857 "../../asn1/gsm_map/packet-gsm_map-template.c"
18496   { 0, NULL }
18497 };
18498 static const value_string gsm_map_err_code_string_vals[] = {
18499
18500 /*--- Included file: packet-gsm_map-table.c ---*/
18501 #line 1 "../../asn1/gsm_map/packet-gsm_map-table.c"
18502
18503 /* --- Module Remote-Operations-Information-Objects --- --- ---               */
18504
18505 /* Unknown or empty loop list OPERATION */
18506
18507 /* --- Module MobileDomainDefinitions --- --- ---                             */
18508
18509 /* Unknown or empty loop list OPERATION */
18510
18511 /* --- Module MAP-ApplicationContexts --- --- ---                             */
18512
18513 /* Unknown or empty loop list OPERATION */
18514
18515 /* --- Module MAP-SS-Code --- --- ---                                         */
18516
18517 /* Unknown or empty loop list OPERATION */
18518
18519 /* --- Module MAP-BS-Code --- --- ---                                         */
18520
18521 /* Unknown or empty loop list OPERATION */
18522
18523 /* --- Module MAP-TS-Code --- --- ---                                         */
18524
18525 /* Unknown or empty loop list OPERATION */
18526
18527 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
18528
18529 /* Unknown or empty loop list OPERATION */
18530
18531 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
18532
18533 /* Unknown or empty loop list OPERATION */
18534
18535 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
18536
18537 /* Unknown or empty loop list OPERATION */
18538
18539 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
18540
18541 /* Unknown or empty loop list OPERATION */
18542
18543 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
18544
18545 /* Unknown or empty loop list OPERATION */
18546
18547 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
18548
18549 /* Unknown or empty loop list OPERATION */
18550
18551 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
18552
18553 /* Unknown or empty loop list OPERATION */
18554
18555 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
18556
18557 /* Unknown or empty loop list OPERATION */
18558
18559 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
18560
18561 /* Unknown or empty loop list OPERATION */
18562
18563 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
18564
18565 /* Unknown or empty loop list OPERATION */
18566
18567 /* --- Module MAP-DialogueInformation --- --- ---                             */
18568
18569 /* Unknown or empty loop list OPERATION */
18570
18571 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
18572
18573         { 85, "sendRoutingInfoForLCS" },
18574         { 83, "provideSubscriberLocation" },
18575         { 86, "subscriberLocationReport" },
18576
18577 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
18578
18579         { 39, "prepareGroupCall" },
18580         { 40, "sendGroupCallEndSignal" },
18581         { 41, "processGroupCallSignalling" },
18582         { 42, "forwardGroupCallSignalling" },
18583         { 84, "sendGroupCallInfo" },
18584
18585 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
18586
18587         { 45, "sendRoutingInfoForSM" },
18588         { 46, "mo_ForwardSM" },
18589         { 44, "mt_ForwardSM" },
18590         { 47, "reportSM_DeliveryStatus" },
18591         { 64, "alertServiceCentre" },
18592         { 63, "informServiceCentre" },
18593         { 66, "readyForSM" },
18594         { 21, "mt_ForwardSM_VGCS" },
18595
18596 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
18597
18598         { 10, "registerSS" },
18599         { 11, "eraseSS" },
18600         { 12, "activateSS" },
18601         { 13, "deactivateSS" },
18602         { 14, "interrogateSS" },
18603         { 59, "processUnstructuredSS_Request" },
18604         { 60, "unstructuredSS_Request" },
18605         { 61, "unstructuredSS_Notify" },
18606         { 17, "registerPassword" },
18607         { 18, "getPassword" },
18608         { 72, "ss_InvocationNotification" },
18609         { 76, "registerCC_Entry" },
18610         { 77, "eraseCC_Entry" },
18611
18612 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
18613
18614         { 22, "sendRoutingInfo" },
18615         { 4, "provideRoamingNumber" },
18616         { 6, "resumeCallHandling" },
18617         { 73, "setReportingState" },
18618         { 74, "statusReport" },
18619         { 75, "remoteUserFree" },
18620         { 87, "ist_Alert" },
18621         { 88, "ist_Command" },
18622         { 20, "releaseResources" },
18623
18624 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
18625
18626         { 50, "activateTraceMode" },
18627         { 51, "deactivateTraceMode" },
18628         { 58, "sendIMSI" },
18629
18630 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
18631
18632         { 2, "updateLocation" },
18633         { 3, "cancelLocation" },
18634         { 67, "purgeMS" },
18635         { 55, "sendIdentification" },
18636         { 23, "updateGprsLocation" },
18637         { 70, "provideSubscriberInfo" },
18638         { 71, "anyTimeInterrogation" },
18639         { 62, "anyTimeSubscriptionInterrogation" },
18640         { 65, "anyTimeModification" },
18641         { 5, "noteSubscriberDataModified" },
18642         { 68, "prepareHandover" },
18643         { 29, "sendEndSignal" },
18644         { 33, "processAccessSignalling" },
18645         { 34, "forwardAccessSignalling" },
18646         { 69, "prepareSubsequentHandover" },
18647         { 56, "sendAuthenticationInfo" },
18648         { 15, "authenticationFailureReport" },
18649         { 43, "checkIMEI" },
18650         { 7, "insertSubscriberData" },
18651         { 8, "deleteSubscriberData" },
18652         { 37, "reset" },
18653         { 38, "forwardCheckSS_Indication" },
18654         { 57, "restoreData" },
18655         { 24, "sendRoutingInfoForGprs" },
18656         { 25, "failureReport" },
18657         { 26, "noteMsPresentForGprs" },
18658         { 89, "noteMM_Event" },
18659         { 53, "updateVcsgLocation" },
18660         { 36, "cancelVcsgLocation" },
18661
18662 /* --- Module MAP-Errors --- --- ---                                          */
18663
18664 /* Unknown or empty loop list OPERATION */
18665
18666 /* --- Module MAP-Protocol --- --- ---                                        */
18667
18668 /* Unknown or empty loop list OPERATION */
18669
18670 /* --- Module DummyMAP --- --- ---                                            */
18671
18672 /* Unknown or empty loop list OPERATION */
18673
18674 /* --- Module SS-DataTypes --- --- ---                                        */
18675
18676 /* Unknown or empty loop list OPERATION */
18677
18678 /* --- Module SS-Operations --- --- ---                                       */
18679
18680         { 19, "processUnstructuredSS_Data" },
18681         { 16, "notifySS" },
18682         { 125, "forwardChargeAdvice" },
18683         { 120, "forwardCUG_Info" },
18684         { 124, "buildMPTY" },
18685         { 123, "holdMPTY" },
18686         { 122, "retrieveMPTY" },
18687         { 121, "splitMPTY" },
18688         { 126, "explicitCT" },
18689         { 119, "accessRegisterCCEntry" },
18690         { 117, "callDeflection" },
18691         { 118, "userUserService" },
18692         { 116, "lcs_LocationNotification" },
18693         { 115, "lcs_MOLR" },
18694         { 114, "lcs_AreaEventRequest" },
18695         { 113, "lcs_AreaEventReport" },
18696         { 112, "lcs_AreaEventCancellation" },
18697         { 111, "lcs_PeriodicLocationRequest" },
18698         { 110, "lcs_LocationUpdate" },
18699         { 109, "lcs_PeriodicLocationCancellation" },
18700
18701 /* --- Module EricssonMAP --- --- ---                                         */
18702
18703 /* Unknown or empty loop list OPERATION */
18704
18705 /*--- End of included file: packet-gsm_map-table.c ---*/
18706 #line 861 "../../asn1/gsm_map/packet-gsm_map-template.c"
18707     { 0, NULL }
18708 };
18709 static const true_false_string gsm_map_extension_value = {
18710   "No Extension",
18711   "Extension"
18712 };
18713 static const value_string gsm_map_nature_of_number_values[] = {
18714         {   0x00,       "unknown" },
18715         {   0x01,       "International Number" },
18716         {   0x02,       "National Significant Number" },
18717         {   0x03,       "Network Specific Number" },
18718         {   0x04,       "Subscriber Number" },
18719         {   0x05,       "Reserved" },
18720         {   0x06,       "Abbreviated Number" },
18721         {   0x07,       "Reserved for extension" },
18722         { 0, NULL }
18723 };
18724 static value_string_ext gsm_map_nature_of_number_values_ext = VALUE_STRING_EXT_INIT(gsm_map_nature_of_number_values);
18725
18726 static const value_string gsm_map_number_plan_values[] = {
18727         {   0x00,       "unknown" },
18728         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
18729         {   0x02,       "spare" },
18730         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
18731         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
18732         {   0x05,       "spare" },
18733         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
18734         {   0x07,       "spare" },
18735         {   0x08,       "National Numbering" },
18736         {   0x09,       "Private Numbering" },
18737         {   0x0a,       "spare" },
18738         {   0x0b,       "spare" },
18739         {   0x0c,       "spare" },
18740         {   0x0d,       "spare" },
18741         {   0x0e,       "spare" },
18742         {   0x0f,       "Reserved for extension" },
18743         { 0, NULL }
18744 };
18745 static value_string_ext gsm_map_number_plan_values_ext = VALUE_STRING_EXT_INIT(gsm_map_number_plan_values);
18746
18747 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
18748   "Quiescent",
18749   "Operative"
18750 };
18751 static const true_false_string gsm_map_Ss_Status_p_values = {
18752   "Provisioned",
18753   "Not Provisioned"
18754 };
18755 static const true_false_string gsm_map_Ss_Status_r_values = {
18756   "Registered",
18757   "Not Registered"
18758 };
18759 static const true_false_string gsm_map_Ss_Status_a_values = {
18760   "Active",
18761   "not Active"
18762 };
18763
18764 /*
18765  * Translate the MAP operation code value to a text string
18766  * Take into account the MAP version for ForwardSM
18767  */
18768 const gchar* gsm_map_opr_code(guint32 val) {
18769   switch (val) {
18770   case 44: /*mt-forwardSM*/
18771           /* FALLTHRU */
18772   case 46: /*mo-forwardSM*/
18773           /* FALLTHRU */
18774     if (application_context_version < 3) {
18775       return val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode");
18776     }
18777     /* Else use the default map operation translation */
18778   default:
18779     return val_to_str_ext_const(val, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, "Unknown GSM-MAP opcode");
18780     break;
18781   }
18782 }
18783
18784 /* Prototype for a decoding function */
18785 typedef int (* dissect_function_t)( gboolean,
18786                                     tvbuff_t *,
18787                                     int ,
18788                                         asn1_ctx_t *,
18789                                     proto_tree *,
18790                                     int);
18791
18792 /*
18793  * Dissect Multiple Choice Message
18794  * This function is used to decode a message, when several encoding may be used.
18795  * For exemple, in the last MAP version, the Cancel Location is defined like this:
18796  * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
18797  * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
18798  * As ASN1 encoders (or software) still uses the old encoding, this function allows
18799  * the decoding of both versions.
18800  * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the
18801  * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
18802  * This explain why the function expects 3 parameters:
18803  * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
18804  * - a SEQUENCE for old style
18805  * - and a single parameter, for old version or optimizations
18806  *
18807  * The analyze of the first ASN1 tag, indicate what kind of decoding should be used,
18808  * if the decoding function is provided (so not a NULL function)
18809  */
18810 static int dissect_mc_message(tvbuff_t *tvb,
18811                               int offset,
18812                                   asn1_ctx_t *actx,
18813                               proto_tree *tree,
18814                               gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
18815                               gboolean implicit_seq   _U_, dissect_function_t sequence,  int hf_index_seq   _U_,
18816                               gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
18817 {
18818   guint8 octet;
18819   gint8 bug_class;
18820   gboolean bug_pc, bug_ind_field;
18821   gint32 bug_tag;
18822   guint32 bug_len;
18823   proto_item *cause;
18824
18825   octet = tvb_get_guint8(tvb,0);
18826   if ( (octet & 0xf) == 3) {
18827     /* XXX  asn2wrs can not yet handle tagged assignment yes so this
18828      * XXX is some conformance file magic to work around that bug
18829      */
18830     offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
18831     offset = get_ber_length(tvb, offset, &bug_len, &bug_ind_field);
18832     if (sequence3 != NULL) {
18833       offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
18834     } else {
18835       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented [3] sequence, cannot decode");
18836       expert_add_info(actx->pinfo, cause, &ei_gsm_map_unknown_sequence3);
18837     }
18838   } else if (octet == 0x30) {
18839     if (sequence != NULL) {
18840       offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq);
18841     } else {
18842       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence");
18843       expert_add_info(actx->pinfo, cause, &ei_gsm_map_unknown_sequence);
18844     }
18845   } else {
18846     if (parameter != NULL) {
18847       offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
18848     } else {
18849       cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented parameter");
18850       expert_add_info(actx->pinfo, cause, &ei_gsm_map_unknown_parameter);
18851     }
18852   }
18853   return offset;
18854 }
18855
18856 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
18857
18858   proto_item *cause;
18859
18860   switch(opcode){
18861   case  2: /*updateLocation*/
18862     offset=dissect_gsm_map_ms_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
18863     break;
18864   case  3: /*cancelLocation*/
18865     offset=dissect_mc_message(tvb, offset, actx, tree,
18866                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
18867                               FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity,
18868                               TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/
18869     break;
18870   case  4: /*provideRoamingNumber*/
18871     offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
18872     break;
18873   case  5: /*noteSubscriberDataModified*/
18874     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
18875     break;
18876   case  6: /*resumeCallHandling*/
18877     offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
18878     break;
18879   case  7: /*insertSubscriberData*/
18880     offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
18881     break;
18882   case  8: /*deleteSubscriberData*/
18883     offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
18884     break;
18885     /* TODO find out why this isn't in the ASN1 file */
18886     /* reserved sendParameters (9) */
18887   case  10: /*registerSS*/
18888     offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
18889     break;
18890   case  11: /*eraseSS*/
18891     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
18892     break;
18893   case 12: /*activateSS*/
18894     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
18895     break;
18896   case 13: /*deactivateSS*/
18897     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
18898     break;
18899   case 14: /*interrogateSS*/
18900     offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
18901     break;
18902   case 15: /*authenticationFailureReport*/
18903     offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
18904     break;
18905   case 16: /*SS-protocol notifySS*/
18906     offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1);
18907     break;
18908   case 17: /*registerPassword*/
18909     offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
18910     break;
18911   case 18: /*getPassword*/
18912     offset=dissect_gsm_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
18913     break;
18914   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
18915     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
18916     break;
18917   case 20: /*releaseResources*/
18918     offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
18919     break;
18920   case 21: /*mt-ForwardSM-VGCS*/
18921     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
18922     break;
18923   case 22: /*sendRoutingInfo*/
18924           if (application_context_version == 3){
18925                   offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
18926           }else{
18927                   offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1);
18928           }
18929     break;
18930   case 23: /*updateGprsLocation*/
18931     offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
18932     break;
18933   case 24: /*sendRoutingInfoForGprs*/
18934     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
18935     break;
18936   case 25: /*failureReport*/
18937     offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
18938     break;
18939   case 26: /*noteMsPresentForGprs*/
18940     offset=dissect_gsm_map_ms_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
18941     break;
18942     /* undefined 27 */
18943     /* reserved performHandover (28) */
18944   case 29: /*sendEndSignal*/
18945     offset=dissect_mc_message(tvb, offset, actx, tree,
18946                               FALSE, NULL, -1,
18947                               FALSE, dissect_gsm_old_Bss_APDU, -1,
18948                               TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1);
18949     break;
18950     /* reserved performSubsequentHandover (30) */
18951   case 31: /*provideSIWFSNumber*/
18952     offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
18953     break;
18954   case 32: /*sIWFSSignallingModify*/
18955     offset=dissect_gsm_old_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
18956     break;
18957   case 33: /*processAccessSignalling*/
18958     offset=dissect_mc_message(tvb, offset, actx, tree,
18959                               FALSE, NULL, -1,
18960                               FALSE, dissect_gsm_old_Bss_APDU, -1,
18961                               TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1);
18962     break;
18963   case 34: /*forwardAccessSignalling*/
18964     offset=dissect_mc_message(tvb, offset, actx, tree,
18965                               FALSE, NULL, -1,
18966                               FALSE, dissect_gsm_old_Bss_APDU, -1,
18967                               TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1);
18968     break;
18969     /* reserved noteInternalHandover (35) */
18970     /* undefined 36 */
18971   case 37: /*reset*/
18972     offset=dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1);
18973     break;
18974   case 38: /*forwardCheckSS-Indication*/
18975     return offset;
18976     break;
18977   case 39: /*prepareGroupCall*/
18978     offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
18979     break;
18980   case 40: /*sendGroupCallEndSignal*/
18981     offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
18982     break;
18983   case 41: /*processGroupCallSignalling*/
18984     offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
18985     break;
18986   case 42: /*forwardGroupCallSignalling*/
18987     offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
18988     break;
18989   case 43: /*checkIMEI*/
18990     if (pref_ericsson_proprietary_ext) {
18991       offset=dissect_mc_message(tvb, offset, actx, tree,
18992                     FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
18993                     FALSE, dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg, -1,
18994                     TRUE , NULL, -1); /* no [3] SEQUENCE */
18995     } else {
18996       offset=dissect_mc_message(tvb, offset, actx, tree,
18997                     FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei,
18998                     FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -1,
18999                     TRUE , NULL, -1); /* no [3] SEQUENCE */
19000     }
19001     break;
19002   case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
19003     if (application_context_version == 3)
19004       offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
19005     else {
19006       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
19007     }
19008     break;
19009   case 45: /*sendRoutingInfoForSM*/
19010     offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
19011     break;
19012   case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
19013     if (application_context_version == 3)
19014       offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
19015     else {
19016       offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
19017     }
19018     break;
19019   case 47: /*reportSM-DeliveryStatus*/
19020     offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
19021     break;
19022     /* reserved noteSubscriberPresent (48) */
19023     /* reserved alertServiceCentreWithoutResult (49)
19024          * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)
19025          * -- alertServiceCentreWithoutResult must not be used in
19026          * -- version greater 1
19027          */
19028   case 49:
19029         offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
19030         break;
19031   case 50: /*activateTraceMode*/
19032     offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
19033     break;
19034   case 51: /*deactivateTraceMode*/
19035     offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
19036     break;
19037     /* reserved traceSubscriberActivity (52) */
19038     /* undefined 53 */
19039   case 54: /*beginSubscriberActivity*/
19040     offset=dissect_gsm_old_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1);
19041     break;
19042   case 55: /*sendIdentification*/
19043     offset=dissect_mc_message(tvb, offset, actx, tree,
19044                               FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
19045                               FALSE, dissect_gsm_map_ms_SendIdentificationArg, -1,
19046                               TRUE,  NULL, -1);
19047     break;
19048   case 56: /*sendAuthenticationInfo*/
19049     offset=dissect_mc_message(tvb, offset, actx, tree,
19050                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
19051                               FALSE, dissect_gsm_map_ms_SendAuthenticationInfoArg, -1,
19052                               TRUE,  NULL, -1);
19053     break;
19054   case 57: /*restoreData*/
19055     offset=dissect_gsm_map_ms_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
19056     break;
19057   case 58: /*sendIMSI*/
19058     offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
19059     break;
19060   case 59: /*processUnstructuredSS-Request*/
19061     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
19062     break;
19063   case 60: /*unstructuredSS-Request*/
19064     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
19065     break;
19066   case 61: /*unstructuredSS-Notify*/
19067     offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1);
19068     break;
19069   case 62: /*AnyTimeSubscriptionInterrogation*/
19070     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
19071     break;
19072   case 63: /*informServiceCentre*/
19073     offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
19074     break;
19075   case 64: /*alertServiceCentre*/
19076     offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
19077     break;
19078   case 65: /*AnyTimeModification*/
19079     offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
19080     break;
19081   case 66: /*readyForSM*/
19082     offset=dissect_gsm_map_sm_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
19083     break;
19084   case 67: /*purgeMS*/
19085     offset=dissect_mc_message(tvb, offset, actx, tree,
19086                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
19087                               FALSE, dissect_gsm_old_PurgeMSArgV2, -1, /*undefined*/
19088                               TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1);
19089     break;
19090   case 68: /*prepareHandover*/
19091     offset=dissect_mc_message(tvb, offset, actx, tree,
19092                               FALSE, NULL, -1,
19093                               FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1,
19094                               TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1);
19095     break;
19096   case 69: /*prepareSubsequentHandover*/
19097     offset=dissect_mc_message(tvb, offset, actx, tree,
19098                               FALSE, NULL, -1,
19099                               FALSE, NULL, -1,
19100                               TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1);
19101     break;
19102   case 70: /*provideSubscriberInfo*/
19103     offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
19104     break;
19105   case 71: /*anyTimeInterrogation*/
19106     offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
19107     break;
19108   case 72: /*ss-InvocationNotificatio*/
19109     offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
19110     break;
19111   case 73: /*setReportingState*/
19112     offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
19113     break;
19114   case 74: /*statusReport*/
19115     offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
19116     break;
19117   case 75: /*remoteUserFree*/
19118     offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
19119     break;
19120   case 76: /*registerCC-Entry*/
19121     offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
19122     break;
19123   case 77: /*eraseCC-Entry*/
19124     offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
19125     break;
19126   case 78: /*secureTransportClass1*/
19127   case 79: /*secureTransportClass1*/
19128   case 80: /*secureTransportClass1*/
19129   case 81: /*secureTransportClass1*/
19130     offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
19131     break;
19132     /* undefined 82 */
19133   case 83: /*provideSubscriberLocation*/
19134     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
19135     break;
19136   case 84: /*sendGroupCallInfo*/
19137     offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
19138     break;
19139   case 85: /*sendRoutingInfoForLCS*/
19140     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
19141     break;
19142   case 86: /*subscriberLocationReport*/
19143     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
19144     break;
19145   case 87: /*ist-Alert*/
19146     offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
19147     break;
19148   case 88: /*ist-Command*/
19149     offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
19150     break;
19151   case 89: /*noteMM-Event*/
19152     offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
19153     break;
19154   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
19155     offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1);
19156     break;
19157   case 110: /*SS-protocol lcs-LocationUpdate*/
19158     offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1);
19159     break;
19160   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
19161     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1);
19162     break;
19163   case 112: /*SS-protocol lcs-AreaEventCancellation*/
19164     offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1);
19165     break;
19166   case 113: /*SS-protocol lcs-AreaEventReport*/
19167     offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1);
19168     break;
19169   case 114: /*SS-protocol lcs-AreaEventRequest*/
19170     offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1);
19171     break;
19172   case 115: /*SS-protocol lcs-MOLR*/
19173     offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1);
19174     break;
19175   case 116: /*SS-protocol lcs-LocationNotification*/
19176     offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
19177     break;
19178   case 117: /*SS-protocol callDeflection*/
19179     offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1);
19180     break;
19181   case 118: /*SS-protocol userUserService*/
19182     offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1);
19183     break;
19184   case 119: /*SS-protocol accessRegisterCCEntry*/
19185     offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1);
19186     break;
19187   case 120: /*SS-protocol forwardCUG-Info*/
19188         application_context_version = 3;
19189     offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1);
19190     break;
19191   case 121: /*SS-protocol splitMPTY no Argument*/
19192     break;
19193   case 122: /*SS-protocol retrieveMPTY no Argument*/
19194     break;
19195   case 123: /*SS-protocol holdMPTY no Argument*/
19196     break;
19197   case 124: /*SS-protocol buildMPTY no Argument*/
19198     break;
19199   case 125: /*SS-protocol forwardChargeAdvice*/
19200     offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1);
19201     break;
19202   case 126: /*SS-protocol explicitCT no Argument*/
19203     break;
19204   default:
19205     if(!dissector_try_uint(map_prop_arg_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
19206         cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
19207         expert_add_info_format_text(actx->pinfo, cause, &ei_gsm_map_unknown_invokeData, "Unknown invokeData %d",opcode);
19208         }
19209         offset+= tvb_length_remaining(tvb,offset);
19210         break;
19211   }
19212   return offset;
19213 }
19214
19215
19216 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
19217
19218   proto_item *cause;
19219
19220   switch(opcode){
19221   case  2: /*updateLocation*/
19222     offset=dissect_mc_message(tvb, offset, actx, tree,
19223                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
19224                               FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1,
19225                               TRUE , NULL, -1);
19226     break;
19227   case  3: /*cancelLocation*/
19228     offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
19229     break;
19230   case  4: /*provideRoamingNumber*/
19231     offset=dissect_mc_message(tvb, offset, actx, tree,
19232                               FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn,
19233                               FALSE, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1,
19234                               TRUE , NULL, -1);/*undefined*/
19235     break;
19236   case  5: /*noteSubscriberDataModified*/
19237     offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
19238     break;
19239   case  6: /*resumeCallHandling*/
19240     offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
19241     break;
19242   case  7: /*insertSubscriberData*/
19243     offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
19244     break;
19245   case  8: /*deleteSubscriberData*/
19246     offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
19247     break;
19248         /* TODO find out why this isn't in the ASN1 file
19249   case  9: sendParameters
19250     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
19251     break;
19252         */
19253   case  10: /*registerSS*/
19254     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
19255     break;
19256   case  11: /*eraseSS*/
19257     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
19258     break;
19259   case 12: /*activateSS*/
19260     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
19261     break;
19262   case 13: /*deactivateSS*/
19263     offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
19264     break;
19265   case 14: /*interrogateSS*/
19266     offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
19267     break;
19268   case 15: /*authenticationFailureReport*/
19269     offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
19270     break;
19271   case 17: /*registerPassword*/
19272     /* change hf_gsm_map_ss_Code to something with password */
19273     offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
19274     break;
19275   case 18: /*getPassword*/
19276     offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
19277     break;
19278   case 19: /* SS-Protocol processUnstructuredSS-Data (19) */
19279     offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData);
19280     break;
19281   case 20: /*releaseResources*/
19282     offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
19283     break;
19284   case 21: /*mt-ForwardSM-VGCS*/
19285     offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
19286     break;
19287   case 22: /*sendRoutingInfo*/
19288           if (application_context_version == 3){
19289                   /* If the tag is missing use SendRoutingInfoRes_U */
19290                   offset=dissect_mc_message(tvb, offset, actx, tree,
19291                               FALSE, NULL, -1,
19292                               FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1,
19293                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
19294           }else{
19295                   offset=dissect_mc_message(tvb, offset, actx, tree,
19296                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
19297                               FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1,
19298                               TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1);
19299           }
19300     break;
19301   case 23: /*updateGprsLocation*/
19302     offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
19303     break;
19304   case 24: /*sendRoutingInfoForGprs*/
19305     offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
19306     break;
19307   case 25: /*failureReport*/
19308     offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
19309     break;
19310   case 26: /*noteMsPresentForGprs*/
19311     offset=dissect_gsm_map_ms_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
19312     break;
19313   case 29: /*sendEndSignal*/
19314           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
19315            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
19316            */
19317     offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1);
19318     break;
19319   case 31: /*provideSIWFSNumber*/
19320     offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
19321     break;
19322   case 32: /*provideSIWFSSignallingModify*/
19323     offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
19324     break;
19325   case 39: /*prepareGroupCall*/
19326     offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
19327     break;
19328   case 40: /*sendGroupCallEndSignal*/
19329     offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
19330     break;
19331   case 43: /*checkIMEI*/
19332     offset=dissect_mc_message(tvb, offset, actx, tree,
19333                               FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus,
19334                               FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1,
19335                               TRUE,  NULL, -1);
19336     break;
19337   case 44: /*mt-forwardSM*/
19338     offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
19339     break;
19340   case 45: /*sendRoutingInfoForSM*/
19341     offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
19342     break;
19343   case 46: /*mo-forwardSM*/
19344     offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
19345     break;
19346   case 47: /*reportSM-DeliveryStatus*/
19347     offset=dissect_mc_message(tvb, offset, actx, tree,
19348                               FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN,
19349                               FALSE, NULL, -1,
19350                               FALSE , dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1);/*undefined*/
19351
19352     break;
19353   case 48: /*noteSubscriberPresent*/
19354     break;
19355   case 50: /*activateTraceMode*/
19356     offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
19357     break;
19358   case 51: /*deactivateTraceMode*/
19359     offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
19360     break;
19361   case 55: /*sendIdentification */
19362     offset=dissect_mc_message(tvb, offset, actx, tree,
19363                               FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
19364                               FALSE, dissect_gsm_old_SendIdentificationResV2, -1,/*undefined*/
19365                               TRUE,  dissect_gsm_map_ms_SendIdentificationRes, -1);
19366     break;
19367   case 56: /*sendAuthenticationInfo*/
19368     offset=dissect_mc_message(tvb, offset, actx, tree,
19369                               FALSE, NULL, -1,
19370                               FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1,
19371                               TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1);
19372     break;
19373   case 57: /*restoreData*/
19374     offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
19375     break;
19376   case 58: /*sendIMSI*/
19377     offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi);
19378     break;
19379   case 59: /*unstructuredSS-Request*/
19380     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
19381     break;
19382   case 60: /*unstructuredSS-Request*/
19383     offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1);
19384     break;
19385   case 61: /*unstructuredSS-Notify*/
19386     /* TRUE ? */
19387     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
19388     break;
19389   case 62: /*AnyTimeSubscriptionInterrogation*/
19390     offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
19391     break;
19392   case 64: /*alertServiceCentre*/
19393     /* TRUE */
19394     break;
19395   case 65: /*AnyTimeModification*/
19396     offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
19397     break;
19398   case 66: /*readyForSM*/
19399     offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
19400     break;
19401   case 67: /*purgeMS*/
19402     offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1);
19403     break;
19404   case 68: /*prepareHandover*/
19405     offset=dissect_mc_message(tvb, offset, actx, tree,
19406                               FALSE, NULL, -1,
19407                               FALSE, dissect_gsm_old_PrepareHO_ResOld, -1,
19408                               TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1);
19409     break;
19410   case 69: /*prepareSubsequentHandover*/
19411     offset=dissect_mc_message(tvb, offset, actx, tree,
19412                               FALSE, NULL, -1,
19413                               FALSE, NULL, -1,
19414                               TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1);
19415     break;
19416   case 70: /*provideSubscriberInfo*/
19417     offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
19418     break;
19419   case 71: /*anyTimeInterrogation*/
19420     offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
19421     break;
19422   case 72: /*ss-InvocationNotificatio*/
19423     offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
19424     break;
19425   case 73: /*setReportingState*/
19426     offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
19427     break;
19428   case 74: /*statusReport*/
19429     offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
19430     break;
19431   case 75: /*remoteUserFree*/
19432     offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
19433     break;
19434   case 76: /*registerCC-Entry*/
19435     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
19436     break;
19437   case 77: /*eraseCC-Entry*/
19438     offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
19439     break;
19440   case 78: /*secureTransportClass1*/
19441   case 79: /*secureTransportClass2*/
19442   case 80: /*secureTransportClass3*/
19443   case 81: /*secureTransportClass4*/
19444     offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
19445     break;
19446   case 83: /*provideSubscriberLocation*/
19447     offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
19448     break;
19449   case 84: /*sendGroupCallInfo*/
19450     offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
19451     break;
19452   case 85: /*sendRoutingInfoForLCS*/
19453     offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
19454     break;
19455   case 86: /*subscriberLocationReport*/
19456     offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
19457     break;
19458   case 87: /*ist-Alert*/
19459     offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
19460     break;
19461   case 88: /*ist-Command*/
19462     offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
19463     break;
19464   case 89: /*noteMM-Event*/
19465     offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
19466     break;
19467   case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/
19468           /* No parameter */
19469     break;
19470   case 110: /*SS-protocol lcs-LocationUpdate*/
19471           offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1);
19472     break;
19473   case 111: /*SS-protocol lcs-PeriodicLocationRequest*/
19474     offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1);
19475     break;
19476   case 112: /*SS-protocol lcs-AreaEventCancellation*/
19477     break;
19478   case 113: /*SS-protocol lcs-AreaEventReport*/
19479     break;
19480   case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/
19481     break;
19482   case 115: /*SS-protocol lcs-MOLR*/
19483     offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1);
19484     break;
19485   case 116: /*SS-protocol lcs-LocationNotification*/
19486     offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
19487     break;
19488   case 117: /*SS-protocol callDeflection no RESULT*/
19489     break;
19490   case 118: /*SS-protocol userUserService no RESULT*/
19491     break;
19492   case 119: /*SS-protocol accessRegisterCCEntry*/
19493     offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
19494     break;
19495   case 120: /*SS-protocol forwardCUG-Info*/
19496           /* No RETURN RESULT*/
19497     break;
19498   case 121: /*SS-protocol splitMPTY no RESULT*/
19499     break;
19500   case 122: /*SS-protocol retrieveMPTY no RESULT*/
19501     break;
19502   case 123: /*SS-protocol holdMPTY no RESULT*/
19503     break;
19504   case 124: /*SS-protocol buildMPTY no RESULT*/
19505     break;
19506   case 125: /*SS-protocol forwardChargeAdvice no RESULT*/
19507     break;
19508   case 126: /*SS-protocol explicitCT no RESULT*/
19509     break;
19510
19511  default:
19512    if(!dissector_try_uint(map_prop_res_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
19513        cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
19514        expert_add_info_format_text(actx->pinfo, cause, &ei_gsm_map_unknown_invokeData, "Unknown invokeData %d",opcode);
19515    }
19516    offset+= tvb_length_remaining(tvb,offset);
19517    break;
19518   }
19519   return offset;
19520 }
19521
19522
19523
19524 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
19525   proto_item *cause;
19526
19527   switch(errorCode){
19528   case 1: /* UnknownSubscriberParam */
19529           offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
19530           break;
19531   case 4: /* SecureTransportErrorParam */
19532           offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
19533           break;
19534   case 5: /* UnidentifiedSubParam */
19535           offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
19536           break;
19537   case 6: /* AbsentSubscriberSM-Param */
19538           offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
19539           break;
19540   case 8: /* RoamingNotAllowedParam */
19541           offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
19542           break;
19543   case 9: /* IllegalSubscriberParam */
19544           offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
19545           break;
19546   case 10: /* BearerServNotProvParam */
19547           offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
19548           break;
19549   case 11: /* TeleservNotProvParam */
19550           offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
19551           break;
19552   case 12: /* IllegalEquipmentParam */
19553           offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
19554           break;
19555   case 13: /* CallBarredParam */
19556           offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
19557           break;
19558   case 14: /* ForwardingViolationParam */
19559           offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
19560           break;
19561   case 15: /* CUG-RejectParam */
19562           offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
19563           break;
19564   case 16: /* IllegalSS-OperationParam */
19565           offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
19566           break;
19567   case 17: /* SS-ErrorStatus */
19568           offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status);
19569           break;
19570   case 18: /* SS-NotAvailableParam */
19571           offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
19572           break;
19573   case 19: /* SS-SubscriptionViolationParam */
19574           offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
19575           break;
19576   case 20: /* SS-IncompatibilityCause */
19577           offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
19578           break;
19579   case 21: /* FacilityNotSupParam */
19580           offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
19581           break;
19582   case 22: /* OngoingGroupCallParam */
19583       offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
19584       break;
19585   case 27: /* AbsentSubscriberParam */
19586           offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
19587           break;
19588   case 28: /* IncompatibleTerminalParam */
19589           offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
19590           break;
19591   case 29: /* ShortTermDenialParam */
19592           offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
19593           break;
19594   case 30: /* LongTermDenialParam */
19595           offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
19596           break;
19597   case 31: /* SubBusyForMT-SMS-Param */
19598           offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
19599           break;
19600   case 32: /* SM-DeliveryFailureCause */
19601           offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
19602           break;
19603   case 33: /* MessageWaitListFullParam */
19604           offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
19605           break;
19606   case 34: /* SystemFailureParam */
19607           offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
19608           break;
19609   case 35: /* DataMissingParam */
19610           offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
19611           break;
19612   case 36: /* UnexpectedDataParam */
19613           offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
19614           break;
19615   case 37: /* PW-RegistrationFailureCause */
19616           offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
19617           break;
19618   case 39: /* NoRoamingNbParam */
19619           offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
19620           break;
19621   case 40: /* TracingBufferFullParam */
19622           offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
19623           break;
19624   case 42: /* TargetCellOutsideGCA-Param */
19625           offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
19626           break;
19627   case 44: /* NumberChangedParam */
19628           offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
19629           break;
19630   case 45: /* BusySubscriberParam */
19631           offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
19632           break;
19633   case 46: /* NoSubscriberReplyParam */
19634           offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
19635           break;
19636   case 47: /* ForwardingFailedParam */
19637           offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
19638           break;
19639   case 48: /* OR-NotAllowedParam */
19640           offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
19641           break;
19642   case 49: /* ATI-NotAllowedParam */
19643           offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
19644           break;
19645   case 50: /* NoGroupCallNbParam */
19646           offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
19647           break;
19648   case 51: /* ResourceLimitationParam */
19649           offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
19650           break;
19651   case 52: /* UnauthorizedRequestingNetwork-Param */
19652           offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
19653           break;
19654   case 53: /* UnauthorizedLCSClient-Param */
19655           offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
19656           break;
19657   case 54: /* PositionMethodFailure-Param */
19658           offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
19659           break;
19660   case 58: /* UnknownOrUnreachableLCSClient-Param */
19661           offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
19662           break;
19663   case 59: /* MM-EventNotSupported-Param */
19664           offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
19665           break;
19666   case 60: /* ATSI-NotAllowedParam */
19667           offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
19668           break;
19669   case 61: /* ATM-NotAllowedParam */
19670           offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
19671           break;
19672   case 62: /* InformationNotAvailableParam */
19673           offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
19674           break;
19675   default:
19676     if(!dissector_try_uint(map_prop_err_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree)){
19677         cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
19678         expert_add_info_format_text(actx->pinfo, cause, &ei_gsm_map_unknown_invokeData, "Unknown invokeData %d",errorCode);
19679     }
19680         offset+= tvb_length_remaining(tvb,offset);
19681     break;
19682   }
19683   return offset;
19684 }
19685
19686 /* Private extension container for PLMN Data */
19687 static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
19688   proto_item    *item=NULL;
19689   proto_tree    *tree=NULL;
19690   asn1_ctx_t asn1_ctx;
19691   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
19692   /* create display subtree for the protocol */
19693   if(parent_tree){
19694     item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container");
19695     tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U);
19696   }
19697   dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
19698 }
19699
19700
19701 static guint8 gsmmap_pdu_type = 0;
19702 static guint8 gsm_map_pdu_size = 0;
19703
19704 static int
19705 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
19706
19707   char *version_ptr;
19708   struct tcap_private_t * p_private_tcap;
19709
19710   opcode = 0;
19711   if (pref_application_context_version == APPLICATON_CONTEXT_FROM_TRACE) {
19712           application_context_version = 0;
19713           if (actx->pinfo->private_data != NULL){
19714                 p_private_tcap = (struct tcap_private_t *)actx->pinfo->private_data;
19715                 if (p_private_tcap->acv==TRUE ){
19716                   version_ptr = strrchr((const char*)p_private_tcap->oid,'.');
19717                   if (version_ptr){
19718                           application_context_version = atoi(version_ptr+1);
19719                   }
19720                 }
19721           }
19722   }else{
19723           application_context_version = pref_application_context_version;
19724   }
19725
19726   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
19727   /* Get the length and add 2 */
19728   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
19729
19730   col_add_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP Component"));
19731   col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
19732   offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU);
19733 /*
19734   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
19735                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
19736 */
19737
19738   return offset;
19739 }
19740
19741 static void
19742 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
19743 {
19744     proto_item          *item=NULL;
19745     proto_tree          *tree=NULL;
19746     /* Used for gsm_map TAP */
19747     static              gsm_map_tap_rec_t tap_rec;
19748     gint                op_idx;
19749         asn1_ctx_t asn1_ctx;
19750
19751         asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
19752
19753     col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
19754
19755     top_tree = parent_tree;
19756
19757     /* create display subtree for the protocol */
19758     if(parent_tree){
19759         item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA);
19760         tree = proto_item_add_subtree(item, ett_gsm_map);
19761     }
19762
19763     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
19764     try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx);
19765
19766     if (op_idx != -1) {
19767         tap_rec.invoke = (gsmmap_pdu_type == 1) ? TRUE : FALSE;
19768         tap_rec.opr_code_idx = op_idx;
19769         tap_rec.size = gsm_map_pdu_size;
19770
19771         tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
19772     }
19773 }
19774
19775 const value_string ssCode_vals[] = {
19776   { 0x00, "allSS - all SS" },
19777   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
19778   { 0x11 ,"clip - calling line identification presentation" },
19779   { 0x12 ,"clir - calling line identification restriction" },
19780   { 0x13 ,"colp - connected line identification presentation" },
19781   { 0x14 ,"colr - connected line identification restriction" },
19782   { 0x15 ,"mci - malicious call identification" },
19783   { 0x18 ,"allNameIdentificationSS - all name identification SS" },
19784   { 0x19 ,"cnap - calling name presentation" },
19785   { 0x20 ,"allForwardingSS - all forwarding SS" },
19786   { 0x21 ,"cfu - call forwarding unconditional" },
19787   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
19788   { 0x29 ,"cfb - call forwarding busy" },
19789   { 0x2a ,"cfnry - call forwarding on no reply" },
19790   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
19791   { 0x24 ,"cd - call deflection" },
19792   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
19793   { 0x31 ,"ect - explicit call transfer" },
19794   { 0x32 ,"mah - mobile access hunting" },
19795   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
19796   { 0x41 ,"cw - call waiting" },
19797   { 0x42 ,"hold - call hold" },
19798   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
19799   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
19800   { 0x45 ,"mc - multicall" },
19801   { 0x50 ,"allMultiPartySS - all multiparty SS" },
19802   { 0x51 ,"multiPTY - multiparty" },
19803   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
19804   { 0x61 ,"cug - closed user group" },
19805   { 0x70 ,"allChargingSS - all charging SS" },
19806   { 0x71 ,"aoci - advice of charge information" },
19807   { 0x72 ,"aocc - advice of charge charging" },
19808   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
19809   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
19810   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
19811   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
19812   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
19813   { 0x91 ,"barringOfOutgoingCalls" },
19814   { 0x92 ,"baoc - barring of all outgoing calls" },
19815   { 0x93 ,"boic - barring of outgoing international calls" },
19816   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
19817   { 0x99 ,"barringOfIncomingCalls" },
19818   { 0x9a ,"baic - barring of all incoming calls" },
19819   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
19820   { 0xf0 ,"allPLMN-specificSS" },
19821   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
19822   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
19823   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
19824   { 0xb1 ,"universal - allow location by any LCS client" },
19825   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
19826   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
19827   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
19828   { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
19829   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
19830   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
19831   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
19832   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
19833
19834   { 0xf1 ,"plmn-specificSS-1" },
19835   { 0xf2 ,"plmn-specificSS-2" },
19836   { 0xf3 ,"plmn-specificSS-3" },
19837   { 0xf4 ,"plmn-specificSS-4" },
19838   { 0xf5 ,"plmn-specificSS-5" },
19839   { 0xf6 ,"plmn-specificSS-6" },
19840   { 0xf7 ,"plmn-specificSS-7" },
19841   { 0xf8 ,"plmn-specificSS-8" },
19842   { 0xf9 ,"plmn-specificSS-9" },
19843   { 0xfa ,"plmn-specificSS-a" },
19844   { 0xfb ,"plmn-specificSS-b" },
19845   { 0xfc ,"plmn-specificSS-c" },
19846   { 0xfd ,"plmn-specificSS-d" },
19847   { 0xfe ,"plmn-specificSS-e" },
19848   { 0xff ,"plmn-specificSS-f" },
19849   { 0, NULL }
19850 };
19851
19852 static const value_string Teleservice_vals[] = {
19853 {0x00, "allTeleservices" },
19854 {0x10, "allSpeechTransmissionServices" },
19855 {0x11, "telephony" },
19856 {0x12, "emergencyCalls" },
19857 {0x20, "allShortMessageServices" },
19858 {0x21, "shortMessageMT-PP" },
19859 {0x22, "shortMessageMO-PP" },
19860 {0x60, "allFacsimileTransmissionServices" },
19861 {0x61, "facsimileGroup3AndAlterSpeech" },
19862 {0x62, "automaticFacsimileGroup3" },
19863 {0x63, "facsimileGroup4" },
19864
19865 {0x70, "allDataTeleservices" },
19866 {0x80, "allTeleservices-ExeptSMS" },
19867
19868 {0x90, "allVoiceGroupCallServices" },
19869 {0x91, "voiceGroupCall" },
19870 {0x92, "voiceBroadcastCall" },
19871
19872 {0xd0, "allPLMN-specificTS" },
19873 {0xd1, "plmn-specificTS-1" },
19874 {0xd2, "plmn-specificTS-2" },
19875 {0xd3, "plmn-specificTS-3" },
19876 {0xd4, "plmn-specificTS-4" },
19877 {0xd5, "plmn-specificTS-5" },
19878 {0xd6, "plmn-specificTS-6" },
19879 {0xd7, "plmn-specificTS-7" },
19880 {0xd8, "plmn-specificTS-8" },
19881 {0xd9, "plmn-specificTS-9" },
19882 {0xda, "plmn-specificTS-A" },
19883 {0xdb, "plmn-specificTS-B" },
19884 {0xdc, "plmn-specificTS-C" },
19885 {0xdd, "plmn-specificTS-D" },
19886 {0xde, "plmn-specificTS-E" },
19887 {0xdf, "plmn-specificTS-F" },
19888   { 0, NULL }
19889 };
19890
19891 static const value_string Bearerservice_vals[] = {
19892 {0x00, "allBearerServices" },
19893 {0x10, "allDataCDA-Services" },
19894 {0x11, "dataCDA-300bps" },
19895 {0x12, "dataCDA-1200bps" },
19896 {0x13, "dataCDA-1200-75bps" },
19897 {0x14, "dataCDA-2400bps" },
19898 {0x15, "dataCDA-4800bps" },
19899 {0x16, "dataCDA-9600bps" },
19900 {0x17, "general-dataCDA" },
19901
19902 {0x18, "allDataCDS-Services" },
19903 {0x1A, "dataCDS-1200bps" },
19904 {0x1C, "dataCDS-2400bps" },
19905 {0x1D, "dataCDS-4800bps" },
19906 {0x1E, "dataCDS-9600bps" },
19907 {0x1F, "general-dataCDS" },
19908
19909 {0x20, "allPadAccessCA-Services" },
19910 {0x21, "padAccessCA-300bps" },
19911 {0x22, "padAccessCA-1200bps" },
19912 {0x23, "padAccessCA-1200-75bps" },
19913 {0x24, "padAccessCA-2400bps" },
19914 {0x25, "padAccessCA-4800bps" },
19915 {0x26, "padAccessCA-9600bps" },
19916 {0x27, "general-padAccessCA" },
19917
19918 {0x28, "allDataPDS-Services" },
19919 {0x2C, "dataPDS-2400bps" },
19920 {0x2D, "dataPDS-4800bps" },
19921 {0x2E, "dataPDS-9600bps" },
19922 {0x2F, "general-dataPDS" },
19923
19924 {0x30, "allAlternateSpeech-DataCDA" },
19925 {0x38, "allAlternateSpeech-DataCDS" },
19926 {0x40, "allSpeechFollowedByDataCDA" },
19927 {0x48, "allSpeechFollowedByDataCDS" },
19928
19929 {0x50, "allDataCircuitAsynchronous" },
19930 {0x60, "allAsynchronousServices" },
19931 {0x58, "allDataCircuitSynchronous" },
19932 {0x68, "allSynchronousServices" },
19933
19934 {0xD0, "allPLMN-specificBS" },
19935 {0xD1, "plmn-specificBS-1" },
19936 {0xD2, "plmn-specificBS-2" },
19937 {0xD3, "plmn-specificBS-3" },
19938 {0xD4, "plmn-specificBS-4" },
19939 {0xD5, "plmn-specificBS-5" },
19940 {0xD6, "plmn-specificBS-6" },
19941 {0xD7, "plmn-specificBS-7" },
19942 {0xD8, "plmn-specificBS-8" },
19943 {0xD9, "plmn-specificBS-9" },
19944 {0xDA, "plmn-specificBS-A" },
19945 {0xDB, "plmn-specificBS-B" },
19946 {0xDC, "plmn-specificBS-C" },
19947 {0xDD, "plmn-specificBS-D" },
19948 {0xDE, "plmn-specificBS-E" },
19949 {0xDF, "plmn-specificBS-F" },
19950
19951 { 0, NULL }
19952 };
19953
19954 /* ForwardingOptions
19955
19956 -- bit 8: notification to forwarding party
19957 -- 0 no notification
19958 -- 1 notification
19959 */
19960 static const true_false_string notification_value  = {
19961   "Notification",
19962   "No notification"
19963 };
19964 /*
19965 -- bit 7: redirecting presentation
19966 -- 0 no presentation
19967 -- 1 presentation
19968 */
19969 static const true_false_string redirecting_presentation_value  = {
19970   "Presentation",
19971   "No presentationn"
19972 };
19973 /*
19974 -- bit 6: notification to calling party
19975 -- 0 no notification
19976 -- 1 notification
19977 */
19978 /*
19979 -- bit 5: 0 (unused)
19980 -- bits 43: forwarding reason
19981 -- 00 ms not reachable
19982 -- 01 ms busy
19983 -- 10 no reply
19984 -- 11 unconditional when used in a SRI Result,
19985 -- or call deflection when used in a RCH Argument
19986 */
19987 static const value_string forwarding_reason_values[] = {
19988 {0x0, "ms not reachable" },
19989 {0x1, "ms busy" },
19990 {0x2, "no reply" },
19991 {0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
19992 { 0, NULL }
19993 };
19994 /*
19995 -- bits 21: 00 (unused)
19996 */
19997
19998 static const value_string pdp_type_org_values[] = {
19999 {0x0, "ETSI" },
20000 {0x1, "IETF" },
20001 {0xf, "Empty PDP type" },
20002 { 0, NULL }
20003 };
20004
20005 static const value_string etsi_pdp_type_number_values[] = {
20006 {0x0, "Reserved, used in earlier version of this protocol" },
20007 {0x1, "PPP" },
20008 { 0, NULL }
20009 };
20010
20011 static const value_string ietf_pdp_type_number_values[] = {
20012 {0x21, "IPv4 Address" },
20013 {0x57, "IPv6 Address" },
20014 { 0, NULL }
20015 };
20016
20017 /*
20018 ChargingCharacteristics ::= OCTET STRING (SIZE (2))
20019 -- Octets are coded according to 3GPP TS 32.015.
20020 -- From 3GPP TS 32.015.
20021 --
20022 -- Descriptions for the bits of the flag set:
20023 --
20024 -- Bit 1: H (Hot billing) := '00000001'B
20025 -- Bit 2: F (Flat rate) := '00000010'B
20026 -- Bit 3: P (Prepaid service) := '00000100'B
20027 -- Bit 4: N (Normal billing) := '00001000'B
20028 -- Bit 5: - (Reserved, set to 0) := '00010000'B
20029 -- Bit 6: - (Reserved, set to 0) := '00100000'B
20030 -- Bit 7: - (Reserved, set to 0) := '01000000'B
20031 -- Bit 8: - (Reserved, set to 0) := '10000000'B
20032 */
20033 static const value_string chargingcharacteristics_values[] = {
20034 {0x1, "H (Hot billing)" },
20035 {0x2, "F (Flat rate)" },
20036 {0x4, "P (Prepaid service)" },
20037 {0x8, "N (Normal billing)" },
20038 { 0, NULL }
20039 };
20040
20041 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
20042 static void range_delete_callback(guint32 ssn)
20043 {
20044     if (ssn) {
20045         delete_itu_tcap_subdissector(ssn, map_handle);
20046     }
20047 }
20048
20049 static void range_add_callback(guint32 ssn)
20050 {
20051     if (ssn) {
20052         add_itu_tcap_subdissector(ssn, map_handle);
20053     }
20054 }
20055
20056 void proto_reg_handoff_gsm_map(void) {
20057
20058     static gboolean map_prefs_initialized = FALSE;
20059     static range_t *ssn_range;
20060
20061     if (!map_prefs_initialized) {
20062         map_prefs_initialized = TRUE;
20063         data_handle = find_dissector("data");
20064         ranap_handle = find_dissector("ranap");
20065         dtap_handle = find_dissector("gsm_a_dtap");
20066
20067         map_handle = find_dissector("gsm_map");
20068                 oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" );
20069         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3");
20070         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" );
20071         register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" );
20072         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" );
20073         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" );
20074         register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" );
20075         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" );
20076         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" );
20077         register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" );
20078         register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" );
20079         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" );
20080         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" );
20081         register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" );
20082         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" );
20083         register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" );
20084         register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" );
20085         register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" );
20086         register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" );
20087         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" );
20088         register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" );
20089         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" );
20090         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" );
20091         register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" );
20092         register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" );
20093         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" );
20094         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" );
20095         register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" );
20096         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" );
20097         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" );
20098         register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" );
20099         /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
20100         /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/
20101         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" );
20102         register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" );
20103         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" );
20104         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" );
20105         register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" );
20106         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" );
20107         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" );
20108         register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" );
20109         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" );
20110         register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" );
20111         register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" );
20112         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" );
20113         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" );
20114         register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" );
20115         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" );
20116         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" );
20117         register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" );
20118         register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" );
20119         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" );
20120         register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" );
20121         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" );
20122         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" );
20123         register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" );
20124         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" );
20125         register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" );
20126         register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" );
20127         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" );
20128         register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" );
20129         register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" );
20130         register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" );
20131         register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" );
20132         register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" );
20133         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" );
20134         register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" );
20135         register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" );
20136         register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" );
20137         register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" );
20138         register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" );
20139         register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" );
20140         register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" );
20141         register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" );
20142         register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" );
20143         register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" );
20144         register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" );
20145         register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" );
20146         register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" );
20147         /* Private extension container */
20148         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" );
20149     }
20150     else {
20151         range_foreach(ssn_range, range_delete_callback);
20152         g_free(ssn_range);
20153     }
20154
20155     ssn_range = range_copy(global_ssn_range);
20156     range_foreach(ssn_range, range_add_callback);
20157
20158 }
20159
20160 /*--- proto_register_gsm_map -------------------------------------------*/
20161 void proto_register_gsm_map(void) {
20162         module_t *gsm_map_module;
20163         expert_module_t* expert_gsm_map;
20164
20165   /* List of fields */
20166   static hf_register_info hf[] = {
20167       { &hf_gsm_map_old_Component_PDU,
20168         { "Component", "gsm_map.old.Component",
20169           FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0,
20170           NULL, HFILL }},
20171       { &hf_gsm_map_getPassword,
20172         { "getPassword", "gsm_map.getPassword",
20173           FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0,
20174           NULL, HFILL }},
20175       { &hf_gsm_map_currentPassword,
20176         { "currentPassword", "gsm_map.currentPassword",
20177           FT_STRING, BASE_NONE, NULL, 0,
20178           NULL, HFILL }},
20179       { &hf_gsm_map_extension,
20180         { "Extension", "gsm_map.extension",
20181           FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
20182           NULL, HFILL }},
20183       { &hf_gsm_map_nature_of_number,
20184         { "Nature of number", "gsm_map.nature_of_number",
20185           FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_nature_of_number_values_ext, 0x70,
20186           NULL, HFILL }},
20187       { &hf_gsm_map_number_plan,
20188         { "Number plan", "gsm_map.number_plan",
20189           FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_number_plan_values_ext, 0x0f,
20190           NULL, HFILL }},
20191       { &hf_gsm_map_isdn_address_digits,
20192         { "ISDN Address digits", "gsm_map.isdn.address.digits",
20193           FT_STRING, BASE_NONE, NULL, 0,
20194           NULL, HFILL }},
20195       { &hf_gsm_map_address_digits,
20196         { "Address digits", "gsm_map.address.digits",
20197           FT_STRING, BASE_NONE, NULL, 0,
20198           NULL, HFILL }},
20199       { &hf_gsm_map_servicecentreaddress_digits,
20200         { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
20201           FT_STRING, BASE_NONE, NULL, 0,
20202           NULL, HFILL }},
20203       { &hf_gsm_map_TBCD_digits,
20204         { "TBCD digits", "gsm_map.tbcd_digits",
20205           FT_STRING, BASE_NONE, NULL, 0,
20206           NULL, HFILL }},
20207       { &hf_gsm_map_Ss_Status_unused,
20208         { "Unused", "gsm_map.unused",
20209           FT_UINT8, BASE_HEX, NULL, 0xf0,
20210           NULL, HFILL }},
20211       { &hf_gsm_map_Ss_Status_q_bit,
20212         { "Q bit", "gsm_map.ss_status_q_bit",
20213           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
20214           NULL, HFILL }},
20215       { &hf_gsm_map_Ss_Status_p_bit,
20216         { "P bit", "gsm_map.ss_status_p_bit",
20217           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
20218           NULL, HFILL }},
20219       { &hf_gsm_map_Ss_Status_r_bit,
20220         { "R bit", "gsm_map.ss_status_r_bit",
20221           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
20222           NULL, HFILL }},
20223       { &hf_gsm_map_Ss_Status_a_bit,
20224         { "A bit", "gsm_map.ss_status_a_bit",
20225           FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
20226           NULL, HFILL }},
20227       { &hf_gsm_map_notification_to_forwarding_party,
20228         { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
20229           FT_BOOLEAN, 8, TFS(&notification_value), 0x80,
20230           NULL, HFILL }},
20231       { &hf_gsm_map_redirecting_presentation,
20232         { "Redirecting presentation", "gsm_map.redirecting_presentation",
20233           FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
20234           NULL, HFILL }},
20235       { &hf_gsm_map_notification_to_calling_party,
20236         { "Notification to calling party", "gsm_map.notification_to_clling_party",
20237           FT_BOOLEAN, 8, TFS(&notification_value), 0x20,
20238           NULL, HFILL }},
20239       { &hf_gsm_map_forwarding_reason,
20240         { "Forwarding reason", "gsm_map.forwarding_reason",
20241           FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
20242           NULL, HFILL }},
20243       { &hf_gsm_map_pdp_type_org,
20244         { "PDP Type Organization", "gsm_map.pdp_type_org",
20245           FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
20246           NULL, HFILL }},
20247       { &hf_gsm_map_etsi_pdp_type_number,
20248         { "PDP Type Number", "gsm_map.pdp_type_number",
20249           FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
20250           "ETSI PDP Type Number", HFILL }},
20251       { &hf_gsm_map_ietf_pdp_type_number,
20252         { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
20253           FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
20254           "IETF PDP Type Number", HFILL }},
20255       { &hf_gsm_map_ext_qos_subscribed_pri,
20256         { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
20257           FT_UINT8, BASE_DEC, NULL, 0xff,
20258           NULL, HFILL }},
20259       { &hf_gsm_map_qos_traffic_cls,
20260         { "Traffic class", "gsm_map.qos.traffic_cls",
20261           FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0xe0,
20262           NULL, HFILL }},
20263       { &hf_gsm_map_qos_del_order,
20264         { "Delivery order", "gsm_map.qos.del_order",
20265           FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0x18,
20266           NULL, HFILL }},
20267       { &hf_gsm_map_qos_del_of_err_sdu,
20268         { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
20269           FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_del_of_err_sdu_vals), 0x03,
20270           NULL, HFILL }},
20271       { &hf_gsm_map_qos_ber,
20272         { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
20273           FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_ber_vals), 0xf0,
20274           NULL, HFILL }},
20275       { &hf_gsm_map_qos_sdu_err_rat,
20276         { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
20277           FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_sdu_err_rat_vals), 0x0f,
20278           NULL, HFILL }},
20279       { &hf_gsm_map_qos_traff_hdl_pri,
20280         { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
20281           FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traff_hdl_pri_vals), 0x03,
20282           NULL, HFILL }},
20283
20284       { &hf_gsm_map_qos_max_sdu,
20285         { "Maximum SDU size", "gsm_map.qos.max_sdu",
20286           FT_UINT32, BASE_DEC, NULL, 0x0,
20287           NULL, HFILL }},
20288       { &hf_gsm_map_max_brate_ulink,
20289         { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
20290           FT_UINT32, BASE_DEC, NULL, 0x0,
20291           "Maximum bit rate for uplink", HFILL }},
20292       { &hf_gsm_map_max_brate_dlink,
20293         { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
20294           FT_UINT32, BASE_DEC, NULL, 0x0,
20295           "Maximum bit rate for downlink", HFILL }},
20296       { &hf_gsm_map_qos_transfer_delay,
20297         { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
20298           FT_UINT8, BASE_DEC, NULL, 0xfc,
20299           "Transfer delay", HFILL }},
20300       { &hf_gsm_map_guaranteed_max_brate_ulink,
20301         { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
20302           FT_UINT32, BASE_DEC, NULL, 0x0,
20303           "Guaranteed bit rate for uplink", HFILL }},
20304       { &hf_gsm_map_guaranteed_max_brate_dlink,
20305         { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
20306           FT_UINT32, BASE_DEC, NULL, 0x0,
20307           "Guaranteed bit rate for downlink", HFILL }},
20308       { &hf_gsm_map_GSNAddress_IPv4,
20309         { "GSN-Address IPv4",  "gsm_map.gsnaddress_ipv4",
20310           FT_IPv4, BASE_NONE, NULL, 0,
20311           "IPAddress IPv4", HFILL }},
20312       { &hf_gsm_map_GSNAddress_IPv6,
20313         { "GSN Address IPv6",  "gsm_map.gsnaddress_ipv6",
20314           FT_IPv4, BASE_NONE, NULL, 0,
20315           "IPAddress IPv6", HFILL }},
20316       { &hf_gsm_map_ranap_service_Handover,
20317         { "service-Handover", "gsm_map.ranap.service_Handover",
20318           FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
20319           "gsm_map.ranap.Service_Handover", HFILL }},
20320       { &hf_gsm_map_IntegrityProtectionInformation,
20321         { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
20322           FT_NONE, BASE_NONE, NULL, 0,
20323           "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
20324       { &hf_gsm_map_EncryptionInformation,
20325         { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
20326           FT_NONE, BASE_NONE, NULL, 0,
20327           "gsm_map.ranap.EncryptionInformation", HFILL }},
20328       { &hf_gsm_map_PlmnContainer_PDU,
20329         { "PlmnContainer", "gsm_map.PlmnContainer",
20330           FT_NONE, BASE_NONE, NULL, 0,
20331           "gsm_map.PlmnContainer", HFILL }},
20332       { &hf_gsm_map_ss_SS_UserData,
20333         { "SS-UserData", "gsm_ss.SS_UserData",
20334           FT_STRING, BASE_NONE, NULL, 0,
20335           "gsm_map.ss.SS_UserData", HFILL }},
20336       { &hf_gsm_map_cbs_coding_grp,
20337         { "Coding Group","gsm_map.cbs.coding_grp",
20338           FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext, 0xf0,
20339           NULL, HFILL }
20340       },
20341       { &hf_gsm_map_cbs_coding_grp0_lang,
20342         { "Language","gsm_map.cbs.coding_grp0_lang",
20343           FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp0_lang_vals_ext, 0x0f,
20344           NULL, HFILL }
20345       },
20346       { &hf_gsm_map_cbs_coding_grp1_lang,
20347         { "Language","gsm_map.cbs.coding_grp1_lang",
20348           FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp1_lang_vals_ext, 0x0f,
20349           NULL, HFILL }
20350       },
20351       { &hf_gsm_map_cbs_coding_grp2_lang,
20352         { "Language","gsm_map.cbs.coding_grp2_lang",
20353           FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp2_lang_vals_ext, 0x0f,
20354           NULL, HFILL }
20355       },
20356       { &hf_gsm_map_cbs_coding_grp3_lang,
20357         { "Language","gsm_map.cbs.coding_grp3_lang",
20358           FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp3_lang_vals_ext, 0x0f,
20359           NULL, HFILL }
20360       },
20361       { &hf_gsm_map_cbs_coding_grp4_7_comp,
20362         { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp",
20363           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20,
20364           NULL, HFILL }
20365       },
20366       { &hf_gsm_map_cbs_coding_grp4_7_class_ind,
20367         { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind",
20368           FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10,
20369           NULL, HFILL }
20370       },
20371       { &hf_gsm_map_cbs_coding_grp4_7_char_set,
20372         { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set",
20373           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c,
20374           NULL, HFILL }
20375       },
20376       { &hf_gsm_map_cbs_coding_grp4_7_class,
20377         { "Message Class","gsm_map.cbs.coding_grp4_7_class",
20378           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03,
20379           NULL, HFILL }
20380       },
20381       { &hf_gsm_map_cbs_coding_grp15_mess_code,
20382         { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code",
20383           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04,
20384           NULL, HFILL }
20385       },
20386       { &hf_gsm_map_cbs_coding_grp15_class,
20387         { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class",
20388           FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03,
20389           NULL, HFILL }
20390       },
20391       { &hf_gsm_map_tmsi,
20392         { "tmsi", "gsm_map.tmsi",
20393           FT_BYTES, BASE_NONE, NULL, 0,
20394           "gsm_map.TMSI", HFILL }},
20395
20396       { &hf_gsm_map_ie_tag,
20397         { "Tag", "gsm_map.ie_tag",
20398           FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0,
20399           "GSM 04.08 tag", HFILL }},
20400       { &hf_gsm_map_len,
20401         { "Length", "gsm_map.length",
20402           FT_UINT8, BASE_DEC, NULL, 0,
20403           NULL, HFILL }},
20404       { &hf_gsm_map_disc_par,
20405         { "Discrimination parameter", "gsm_map.disc_par",
20406           FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0,
20407           NULL, HFILL }},
20408       { &hf_gsm_map_dlci,
20409         { "DLCI", "gsm_map.dlci",
20410           FT_UINT8, BASE_DEC, NULL, 0,
20411           "Data Link Connection Indicator", HFILL }},
20412       { &hf_gsm_apn_str,
20413         { "APN", "gsm_map.apn_str",
20414           FT_STRING, BASE_NONE, NULL, 0,
20415           NULL, HFILL }},
20416       { &hf_gsm_map_locationnumber_odd_even,
20417         { "Odd/Even", "gsm_map.locationnumber.odd_even",
20418           FT_BOOLEAN, 8, NULL, 0x80,
20419           NULL, HFILL }},
20420       { &hf_gsm_map_locationnumber_nai,
20421         { "Nature of address indicator", "gsm_map.locationnumber.nai",
20422           FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(gsm_map_na_vals), 0x3f,
20423           NULL, HFILL }},
20424       { &hf_gsm_map_locationnumber_inn,
20425         { "Internal Network Number indicator (INN)", "gsm_map.locationnumber.inn",
20426           FT_BOOLEAN, 8, NULL, 0x80,
20427           NULL, HFILL }},
20428       { &hf_gsm_map_locationnumber_npi,
20429         { "Numbering plan indicator", "gsm_map.locationnumber.npi",
20430           FT_UINT8, BASE_DEC, VALS(gsm_map_np_vals), 0x30,
20431           NULL, HFILL }},
20432       { &hf_gsm_map_locationnumber_apri,
20433         { "Address presentation restricted indicator", "gsm_map.locationnumber.apri",
20434           FT_UINT8, BASE_DEC, VALS(gsm_map_addr_pres_rest_vals), 0x0c,
20435           NULL, HFILL }},
20436       { &hf_gsm_map_locationnumber_screening_ind,
20437         { "Screening indicator", "gsm_map.locationnumber.screening_ind",
20438           FT_UINT8, BASE_DEC, VALS(gsm_map_screening_ind_vals), 0x03,
20439           NULL, HFILL }},
20440       { &hf_gsm_map_locationnumber_digits,
20441         { "Address digits", "gsm_map.locationnumber.digits",
20442           FT_STRING, BASE_NONE, NULL, 0,
20443           NULL, HFILL }},
20444       { &hf_gsm_map_ericsson_locationInformation_rat,
20445         { "RAT", "gsm_map.ericsson.locationInformation.rat",
20446           FT_UINT8, BASE_DEC, VALS(gsm_map_ericsson_locationInformation_rat_vals), 0,
20447           "Radio Access Technology", HFILL }},
20448       { &hf_gsm_map_ericsson_locationInformation_lac,
20449         { "LAC", "gsm_map.ericsson.locationInformation.lac",
20450           FT_UINT16, BASE_DEC_HEX, NULL, 0,
20451           "Location Area Code", HFILL }},
20452       { &hf_gsm_map_ericsson_locationInformation_ci,
20453         { "CI", "gsm_map.ericsson.locationInformation.ci",
20454           FT_UINT16, BASE_DEC_HEX, NULL, 0,
20455           "Cell Identity", HFILL }},
20456       { &hf_gsm_map_ericsson_locationInformation_sac,
20457         { "SAC", "gsm_map.ericsson.locationInformation.sac",
20458           FT_UINT16, BASE_DEC_HEX, NULL, 0,
20459           "Service Area Code", HFILL }},
20460
20461
20462 /*--- Included file: packet-gsm_map-hfarr.c ---*/
20463 #line 1 "../../asn1/gsm_map/packet-gsm_map-hfarr.c"
20464
20465 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
20466
20467     { &hf_gsm_map_privateExtensionList,
20468       { "privateExtensionList", "gsm_map.privateExtensionList",
20469         FT_UINT32, BASE_DEC, NULL, 0,
20470         NULL, HFILL }},
20471     { &hf_gsm_map_pcs_Extensions,
20472       { "pcs-Extensions", "gsm_map.pcs_Extensions_element",
20473         FT_NONE, BASE_NONE, NULL, 0,
20474         NULL, HFILL }},
20475     { &hf_gsm_map_slr_Arg_PCS_Extensions,
20476       { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions_element",
20477         FT_NONE, BASE_NONE, NULL, 0,
20478         NULL, HFILL }},
20479     { &hf_gsm_map_PrivateExtensionList_item,
20480       { "PrivateExtension", "gsm_map.PrivateExtension_element",
20481         FT_NONE, BASE_NONE, NULL, 0,
20482         NULL, HFILL }},
20483     { &hf_gsm_map_extId,
20484       { "extId", "gsm_map.extId",
20485         FT_OID, BASE_NONE, NULL, 0,
20486         NULL, HFILL }},
20487     { &hf_gsm_map_extType,
20488       { "extType", "gsm_map.extType_element",
20489         FT_NONE, BASE_NONE, NULL, 0,
20490         NULL, HFILL }},
20491     { &hf_gsm_map_na_ESRK_Request,
20492       { "na-ESRK-Request", "gsm_map.na_ESRK_Request_element",
20493         FT_NONE, BASE_NONE, NULL, 0,
20494         NULL, HFILL }},
20495
20496 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
20497
20498     { &hf_gsm_map_gsm_map_ISDN_AddressString_PDU,
20499       { "ISDN-AddressString", "gsm_map.ISDN_AddressString",
20500         FT_BYTES, BASE_NONE, NULL, 0,
20501         NULL, HFILL }},
20502     { &hf_gsm_map_protocolId,
20503       { "protocolId", "gsm_map.protocolId",
20504         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
20505         NULL, HFILL }},
20506     { &hf_gsm_map_signalInfo,
20507       { "signalInfo", "gsm_map.signalInfo",
20508         FT_BYTES, BASE_NONE, NULL, 0,
20509         NULL, HFILL }},
20510     { &hf_gsm_map_extensionContainer,
20511       { "extensionContainer", "gsm_map.extensionContainer_element",
20512         FT_NONE, BASE_NONE, NULL, 0,
20513         NULL, HFILL }},
20514     { &hf_gsm_map_ext_ProtocolId,
20515       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
20516         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
20517         NULL, HFILL }},
20518     { &hf_gsm_map_accessNetworkProtocolId,
20519       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
20520         FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
20521         NULL, HFILL }},
20522     { &hf_gsm_map_signalInfo_01,
20523       { "signalInfo", "gsm_map.signalInfo",
20524         FT_BYTES, BASE_NONE, NULL, 0,
20525         "LongSignalInfo", HFILL }},
20526     { &hf_gsm_map_imsi,
20527       { "imsi", "gsm_map.imsi",
20528         FT_BYTES, BASE_NONE, NULL, 0,
20529         NULL, HFILL }},
20530     { &hf_gsm_map_imsi_WithLMSI,
20531       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI_element",
20532         FT_NONE, BASE_NONE, NULL, 0,
20533         NULL, HFILL }},
20534     { &hf_gsm_map_lmsi,
20535       { "lmsi", "gsm_map.lmsi",
20536         FT_BYTES, BASE_NONE, NULL, 0,
20537         NULL, HFILL }},
20538     { &hf_gsm_map_HLR_List_item,
20539       { "HLR-Id", "gsm_map.HLR_Id",
20540         FT_BYTES, BASE_NONE, NULL, 0,
20541         NULL, HFILL }},
20542     { &hf_gsm_map_naea_PreferredCIC,
20543       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
20544         FT_BYTES, BASE_NONE, NULL, 0,
20545         "NAEA_CIC", HFILL }},
20546     { &hf_gsm_map_msisdn,
20547       { "msisdn", "gsm_map.msisdn",
20548         FT_BYTES, BASE_NONE, NULL, 0,
20549         "ISDN_AddressString", HFILL }},
20550     { &hf_gsm_map_externalAddress,
20551       { "externalAddress", "gsm_map.externalAddress",
20552         FT_BYTES, BASE_NONE, NULL, 0,
20553         "ISDN_AddressString", HFILL }},
20554     { &hf_gsm_map_diameter_Name,
20555       { "diameter-Name", "gsm_map.diameter_Name",
20556         FT_BYTES, BASE_NONE, NULL, 0,
20557         "DiameterIdentity", HFILL }},
20558     { &hf_gsm_map_diameter_Realm,
20559       { "diameter-Realm", "gsm_map.diameter_Realm",
20560         FT_BYTES, BASE_NONE, NULL, 0,
20561         "DiameterIdentity", HFILL }},
20562     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
20563       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
20564         FT_BYTES, BASE_NONE, NULL, 0,
20565         NULL, HFILL }},
20566     { &hf_gsm_map_laiFixedLength,
20567       { "laiFixedLength", "gsm_map.laiFixedLength",
20568         FT_BYTES, BASE_NONE, NULL, 0,
20569         NULL, HFILL }},
20570     { &hf_gsm_map_bearerService,
20571       { "bearerService", "gsm_map.bearerService",
20572         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
20573         "BearerServiceCode", HFILL }},
20574     { &hf_gsm_map_teleservice,
20575       { "teleservice", "gsm_map.teleservice",
20576         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
20577         "TeleserviceCode", HFILL }},
20578     { &hf_gsm_map_ext_BearerService,
20579       { "ext-BearerService", "gsm_map.ext_BearerService",
20580         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
20581         "Ext_BearerServiceCode", HFILL }},
20582     { &hf_gsm_map_ext_Teleservice,
20583       { "ext-Teleservice", "gsm_map.ext_Teleservice",
20584         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
20585         "Ext_TeleserviceCode", HFILL }},
20586     { &hf_gsm_map_maximumentitledPriority,
20587       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
20588         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
20589         "EMLPP_Priority", HFILL }},
20590     { &hf_gsm_map_defaultPriority,
20591       { "defaultPriority", "gsm_map.defaultPriority",
20592         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
20593         "EMLPP_Priority", HFILL }},
20594     { &hf_gsm_map_ss_Code,
20595       { "ss-Code", "gsm_map.ss_Code",
20596         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20597         NULL, HFILL }},
20598     { &hf_gsm_map_ss_Status,
20599       { "ss-Status", "gsm_map.ss_Status",
20600         FT_BYTES, BASE_NONE, NULL, 0,
20601         "Ext_SS_Status", HFILL }},
20602     { &hf_gsm_map_nbrSB,
20603       { "nbrSB", "gsm_map.nbrSB",
20604         FT_UINT32, BASE_DEC, NULL, 0,
20605         "MaxMC_Bearers", HFILL }},
20606     { &hf_gsm_map_nbrUser,
20607       { "nbrUser", "gsm_map.nbrUser",
20608         FT_UINT32, BASE_DEC, NULL, 0,
20609         "MC_Bearers", HFILL }},
20610
20611 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
20612
20613     { &hf_gsm_map_ss_ss_Code,
20614       { "ss-Code", "gsm_map.ss.ss_Code",
20615         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20616         NULL, HFILL }},
20617     { &hf_gsm_map_ss_basicService,
20618       { "basicService", "gsm_map.ss.basicService",
20619         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
20620         "BasicServiceCode", HFILL }},
20621     { &hf_gsm_map_ss_forwardedToNumber,
20622       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
20623         FT_BYTES, BASE_NONE, NULL, 0,
20624         "AddressString", HFILL }},
20625     { &hf_gsm_map_ss_forwardedToSubaddress,
20626       { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress",
20627         FT_BYTES, BASE_NONE, NULL, 0,
20628         "ISDN_SubaddressString", HFILL }},
20629     { &hf_gsm_map_ss_noReplyConditionTime,
20630       { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime",
20631         FT_UINT32, BASE_DEC, NULL, 0,
20632         NULL, HFILL }},
20633     { &hf_gsm_map_ss_defaultPriority,
20634       { "defaultPriority", "gsm_map.ss.defaultPriority",
20635         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
20636         "EMLPP_Priority", HFILL }},
20637     { &hf_gsm_map_ss_nbrUser,
20638       { "nbrUser", "gsm_map.ss.nbrUser",
20639         FT_UINT32, BASE_DEC, NULL, 0,
20640         "MC_Bearers", HFILL }},
20641     { &hf_gsm_map_ss_longFTN_Supported,
20642       { "longFTN-Supported", "gsm_map.ss.longFTN_Supported_element",
20643         FT_NONE, BASE_NONE, NULL, 0,
20644         NULL, HFILL }},
20645     { &hf_gsm_map_ss_forwardingInfo,
20646       { "forwardingInfo", "gsm_map.ss.forwardingInfo_element",
20647         FT_NONE, BASE_NONE, NULL, 0,
20648         NULL, HFILL }},
20649     { &hf_gsm_map_ss_callBarringInfo,
20650       { "callBarringInfo", "gsm_map.ss.callBarringInfo_element",
20651         FT_NONE, BASE_NONE, NULL, 0,
20652         NULL, HFILL }},
20653     { &hf_gsm_map_ss_ss_Data,
20654       { "ss-Data", "gsm_map.ss.ss_Data_element",
20655         FT_NONE, BASE_NONE, NULL, 0,
20656         NULL, HFILL }},
20657     { &hf_gsm_map_ss_forwardingFeatureList,
20658       { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList",
20659         FT_UINT32, BASE_DEC, NULL, 0,
20660         NULL, HFILL }},
20661     { &hf_gsm_map_ss_ForwardingFeatureList_item,
20662       { "ForwardingFeature", "gsm_map.ss.ForwardingFeature_element",
20663         FT_NONE, BASE_NONE, NULL, 0,
20664         NULL, HFILL }},
20665     { &hf_gsm_map_ss_ss_Status,
20666       { "ss-Status", "gsm_map.ss.ss_Status",
20667         FT_BYTES, BASE_NONE, NULL, 0,
20668         NULL, HFILL }},
20669     { &hf_gsm_map_ss_forwardedToNumber_01,
20670       { "forwardedToNumber", "gsm_map.ss.forwardedToNumber",
20671         FT_BYTES, BASE_NONE, NULL, 0,
20672         "ISDN_AddressString", HFILL }},
20673     { &hf_gsm_map_ss_forwardingOptions,
20674       { "forwardingOptions", "gsm_map.ss.forwardingOptions",
20675         FT_BYTES, BASE_NONE, NULL, 0,
20676         NULL, HFILL }},
20677     { &hf_gsm_map_ss_longForwardedToNumber,
20678       { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber",
20679         FT_BYTES, BASE_NONE, NULL, 0,
20680         "FTN_AddressString", HFILL }},
20681     { &hf_gsm_map_ss_callBarringFeatureList,
20682       { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList",
20683         FT_UINT32, BASE_DEC, NULL, 0,
20684         NULL, HFILL }},
20685     { &hf_gsm_map_ss_CallBarringFeatureList_item,
20686       { "CallBarringFeature", "gsm_map.ss.CallBarringFeature_element",
20687         FT_NONE, BASE_NONE, NULL, 0,
20688         NULL, HFILL }},
20689     { &hf_gsm_map_ss_ss_SubscriptionOption,
20690       { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption",
20691         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
20692         NULL, HFILL }},
20693     { &hf_gsm_map_ss_basicServiceGroupList,
20694       { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList",
20695         FT_UINT32, BASE_DEC, NULL, 0,
20696         NULL, HFILL }},
20697     { &hf_gsm_map_ss_cliRestrictionOption,
20698       { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption",
20699         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
20700         NULL, HFILL }},
20701     { &hf_gsm_map_ss_overrideCategory,
20702       { "overrideCategory", "gsm_map.ss.overrideCategory",
20703         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
20704         NULL, HFILL }},
20705     { &hf_gsm_map_ss_maximumEntitledPriority,
20706       { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority",
20707         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
20708         "EMLPP_Priority", HFILL }},
20709     { &hf_gsm_map_ss_ccbs_FeatureList,
20710       { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList",
20711         FT_UINT32, BASE_DEC, NULL, 0,
20712         NULL, HFILL }},
20713     { &hf_gsm_map_ss_nbrSB,
20714       { "nbrSB", "gsm_map.ss.nbrSB",
20715         FT_UINT32, BASE_DEC, NULL, 0,
20716         "MaxMC_Bearers", HFILL }},
20717     { &hf_gsm_map_ss_nbrSN,
20718       { "nbrSN", "gsm_map.ss.nbrSN",
20719         FT_UINT32, BASE_DEC, NULL, 0,
20720         "MC_Bearers", HFILL }},
20721     { &hf_gsm_map_ss_CCBS_FeatureList_item,
20722       { "CCBS-Feature", "gsm_map.ss.CCBS_Feature_element",
20723         FT_NONE, BASE_NONE, NULL, 0,
20724         NULL, HFILL }},
20725     { &hf_gsm_map_ss_ccbs_Index,
20726       { "ccbs-Index", "gsm_map.ss.ccbs_Index",
20727         FT_UINT32, BASE_DEC, NULL, 0,
20728         NULL, HFILL }},
20729     { &hf_gsm_map_ss_b_subscriberNumber,
20730       { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber",
20731         FT_BYTES, BASE_NONE, NULL, 0,
20732         "ISDN_AddressString", HFILL }},
20733     { &hf_gsm_map_ss_b_subscriberSubaddress,
20734       { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress",
20735         FT_BYTES, BASE_NONE, NULL, 0,
20736         "ISDN_SubaddressString", HFILL }},
20737     { &hf_gsm_map_ss_basicServiceGroup,
20738       { "basicServiceGroup", "gsm_map.ss.basicServiceGroup",
20739         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
20740         "BasicServiceCode", HFILL }},
20741     { &hf_gsm_map_ss_genericServiceInfo,
20742       { "genericServiceInfo", "gsm_map.ss.genericServiceInfo_element",
20743         FT_NONE, BASE_NONE, NULL, 0,
20744         NULL, HFILL }},
20745     { &hf_gsm_map_ss_ussd_DataCodingScheme,
20746       { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme",
20747         FT_BYTES, BASE_NONE, NULL, 0,
20748         NULL, HFILL }},
20749     { &hf_gsm_map_ss_ussd_String,
20750       { "ussd-String", "gsm_map.ss.ussd_String",
20751         FT_BYTES, BASE_NONE, NULL, 0,
20752         NULL, HFILL }},
20753     { &hf_gsm_map_ss_alertingPattern,
20754       { "alertingPattern", "gsm_map.ss.alertingPattern",
20755         FT_BYTES, BASE_NONE, NULL, 0,
20756         NULL, HFILL }},
20757     { &hf_gsm_map_ss_msisdn,
20758       { "msisdn", "gsm_map.ss.msisdn",
20759         FT_BYTES, BASE_NONE, NULL, 0,
20760         "ISDN_AddressString", HFILL }},
20761     { &hf_gsm_map_ss_SS_List_item,
20762       { "SS-Code", "gsm_map.ss.SS_Code",
20763         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20764         NULL, HFILL }},
20765     { &hf_gsm_map_ss_BasicServiceGroupList_item,
20766       { "BasicServiceCode", "gsm_map.ss.BasicServiceCode",
20767         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
20768         NULL, HFILL }},
20769     { &hf_gsm_map_ss_imsi,
20770       { "imsi", "gsm_map.ss.imsi",
20771         FT_BYTES, BASE_NONE, NULL, 0,
20772         NULL, HFILL }},
20773     { &hf_gsm_map_ss_ss_Event,
20774       { "ss-Event", "gsm_map.ss.ss_Event",
20775         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20776         "SS_Code", HFILL }},
20777     { &hf_gsm_map_ss_ss_EventSpecification,
20778       { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification",
20779         FT_UINT32, BASE_DEC, NULL, 0,
20780         NULL, HFILL }},
20781     { &hf_gsm_map_ss_extensionContainer,
20782       { "extensionContainer", "gsm_map.ss.extensionContainer_element",
20783         FT_NONE, BASE_NONE, NULL, 0,
20784         NULL, HFILL }},
20785     { &hf_gsm_map_ss_ccbs_RequestState,
20786       { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState",
20787         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0,
20788         NULL, HFILL }},
20789     { &hf_gsm_map_ss_SS_EventSpecification_item,
20790       { "AddressString", "gsm_map.ss.AddressString",
20791         FT_BYTES, BASE_NONE, NULL, 0,
20792         NULL, HFILL }},
20793     { &hf_gsm_map_ss_ccbs_Data,
20794       { "ccbs-Data", "gsm_map.ss.ccbs_Data_element",
20795         FT_NONE, BASE_NONE, NULL, 0,
20796         NULL, HFILL }},
20797     { &hf_gsm_map_ss_ccbs_Feature,
20798       { "ccbs-Feature", "gsm_map.ss.ccbs_Feature_element",
20799         FT_NONE, BASE_NONE, NULL, 0,
20800         NULL, HFILL }},
20801     { &hf_gsm_map_ss_translatedB_Number,
20802       { "translatedB-Number", "gsm_map.ss.translatedB_Number",
20803         FT_BYTES, BASE_NONE, NULL, 0,
20804         "ISDN_AddressString", HFILL }},
20805     { &hf_gsm_map_ss_serviceIndicator,
20806       { "serviceIndicator", "gsm_map.ss.serviceIndicator",
20807         FT_BYTES, BASE_NONE, NULL, 0,
20808         NULL, HFILL }},
20809     { &hf_gsm_map_ss_callInfo,
20810       { "callInfo", "gsm_map.ss.callInfo_element",
20811         FT_NONE, BASE_NONE, NULL, 0,
20812         "ExternalSignalInfo", HFILL }},
20813     { &hf_gsm_map_ss_networkSignalInfo,
20814       { "networkSignalInfo", "gsm_map.ss.networkSignalInfo_element",
20815         FT_NONE, BASE_NONE, NULL, 0,
20816         "ExternalSignalInfo", HFILL }},
20817     { &hf_gsm_map_ss_ServiceIndicator_clir_invoked,
20818       { "clir-invoked", "gsm_map.ss.clir-invoked",
20819         FT_BOOLEAN, 8, NULL, 0x80,
20820         NULL, HFILL }},
20821     { &hf_gsm_map_ss_ServiceIndicator_camel_invoked,
20822       { "camel-invoked", "gsm_map.ss.camel-invoked",
20823         FT_BOOLEAN, 8, NULL, 0x40,
20824         NULL, HFILL }},
20825
20826 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
20827
20828     { &hf_gsm_map_er_roamingNotAllowedCause,
20829       { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause",
20830         FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0,
20831         NULL, HFILL }},
20832     { &hf_gsm_map_er_extensionContainer,
20833       { "extensionContainer", "gsm_map.er.extensionContainer_element",
20834         FT_NONE, BASE_NONE, NULL, 0,
20835         NULL, HFILL }},
20836     { &hf_gsm_map_er_additionalRoamingNotAllowedCause,
20837       { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause",
20838         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0,
20839         NULL, HFILL }},
20840     { &hf_gsm_map_er_callBarringCause,
20841       { "callBarringCause", "gsm_map.er.callBarringCause",
20842         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0,
20843         NULL, HFILL }},
20844     { &hf_gsm_map_er_extensibleCallBarredParam,
20845       { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam_element",
20846         FT_NONE, BASE_NONE, NULL, 0,
20847         NULL, HFILL }},
20848     { &hf_gsm_map_er_unauthorisedMessageOriginator,
20849       { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator_element",
20850         FT_NONE, BASE_NONE, NULL, 0,
20851         NULL, HFILL }},
20852     { &hf_gsm_map_er_anonymousCallRejection,
20853       { "anonymousCallRejection", "gsm_map.er.anonymousCallRejection_element",
20854         FT_NONE, BASE_NONE, NULL, 0,
20855         NULL, HFILL }},
20856     { &hf_gsm_map_er_cug_RejectCause,
20857       { "cug-RejectCause", "gsm_map.er.cug_RejectCause",
20858         FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0,
20859         NULL, HFILL }},
20860     { &hf_gsm_map_er_ss_Code,
20861       { "ss-Code", "gsm_map.er.ss_Code",
20862         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
20863         NULL, HFILL }},
20864     { &hf_gsm_map_er_basicService,
20865       { "basicService", "gsm_map.er.basicService",
20866         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
20867         "BasicServiceCode", HFILL }},
20868     { &hf_gsm_map_er_ss_Status,
20869       { "ss-Status", "gsm_map.er.ss_Status",
20870         FT_BYTES, BASE_NONE, NULL, 0,
20871         NULL, HFILL }},
20872     { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause,
20873       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause",
20874         FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0,
20875         NULL, HFILL }},
20876     { &hf_gsm_map_er_diagnosticInfo,
20877       { "diagnosticInfo", "gsm_map.er.diagnosticInfo",
20878         FT_BYTES, BASE_NONE, NULL, 0,
20879         "SignalInfo", HFILL }},
20880     { &hf_gsm_map_er_absentSubscriberDiagnosticSM,
20881       { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM",
20882         FT_UINT32, BASE_DEC, NULL, 0,
20883         NULL, HFILL }},
20884     { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM,
20885       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM",
20886         FT_UINT32, BASE_DEC, NULL, 0,
20887         "AbsentSubscriberDiagnosticSM", HFILL }},
20888     { &hf_gsm_map_er_imsi,
20889       { "imsi", "gsm_map.er.imsi",
20890         FT_BYTES, BASE_NONE, NULL, 0,
20891         NULL, HFILL }},
20892     { &hf_gsm_map_er_networkResource,
20893       { "networkResource", "gsm_map.er.networkResource",
20894         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
20895         NULL, HFILL }},
20896     { &hf_gsm_map_er_extensibleSystemFailureParam,
20897       { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam_element",
20898         FT_NONE, BASE_NONE, NULL, 0,
20899         NULL, HFILL }},
20900     { &hf_gsm_map_er_additionalNetworkResource,
20901       { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource",
20902         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
20903         NULL, HFILL }},
20904     { &hf_gsm_map_er_failureCauseParam,
20905       { "failureCauseParam", "gsm_map.er.failureCauseParam",
20906         FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0,
20907         NULL, HFILL }},
20908     { &hf_gsm_map_er_unexpectedSubscriber,
20909       { "unexpectedSubscriber", "gsm_map.er.unexpectedSubscriber_element",
20910         FT_NONE, BASE_NONE, NULL, 0,
20911         NULL, HFILL }},
20912     { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported,
20913       { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported_element",
20914         FT_NONE, BASE_NONE, NULL, 0,
20915         NULL, HFILL }},
20916     { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode,
20917       { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode_element",
20918         FT_NONE, BASE_NONE, NULL, 0,
20919         NULL, HFILL }},
20920     { &hf_gsm_map_er_unknownSubscriberDiagnostic,
20921       { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic",
20922         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0,
20923         NULL, HFILL }},
20924     { &hf_gsm_map_er_absentSubscriberReason,
20925       { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason",
20926         FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0,
20927         NULL, HFILL }},
20928     { &hf_gsm_map_er_ccbs_Possible,
20929       { "ccbs-Possible", "gsm_map.er.ccbs_Possible_element",
20930         FT_NONE, BASE_NONE, NULL, 0,
20931         NULL, HFILL }},
20932     { &hf_gsm_map_er_ccbs_Busy,
20933       { "ccbs-Busy", "gsm_map.er.ccbs_Busy_element",
20934         FT_NONE, BASE_NONE, NULL, 0,
20935         NULL, HFILL }},
20936     { &hf_gsm_map_er_gprsConnectionSuspended,
20937       { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended_element",
20938         FT_NONE, BASE_NONE, NULL, 0,
20939         NULL, HFILL }},
20940     { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic,
20941       { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic",
20942         FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0,
20943         NULL, HFILL }},
20944     { &hf_gsm_map_er_positionMethodFailure_Diagnostic,
20945       { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic",
20946         FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0,
20947         NULL, HFILL }},
20948
20949 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
20950
20951     { &hf_gsm_map_sm_msisdn,
20952       { "msisdn", "gsm_map.sm.msisdn",
20953         FT_BYTES, BASE_NONE, NULL, 0,
20954         "ISDN_AddressString", HFILL }},
20955     { &hf_gsm_map_sm_sm_RP_PRI,
20956       { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI",
20957         FT_BOOLEAN, BASE_NONE, NULL, 0,
20958         "BOOLEAN", HFILL }},
20959     { &hf_gsm_map_sm_serviceCentreAddress,
20960       { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress",
20961         FT_BYTES, BASE_NONE, NULL, 0,
20962         "AddressString", HFILL }},
20963     { &hf_gsm_map_sm_extensionContainer,
20964       { "extensionContainer", "gsm_map.sm.extensionContainer_element",
20965         FT_NONE, BASE_NONE, NULL, 0,
20966         NULL, HFILL }},
20967     { &hf_gsm_map_sm_gprsSupportIndicator,
20968       { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator_element",
20969         FT_NONE, BASE_NONE, NULL, 0,
20970         NULL, HFILL }},
20971     { &hf_gsm_map_sm_sm_RP_MTI,
20972       { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI",
20973         FT_UINT32, BASE_DEC, NULL, 0,
20974         NULL, HFILL }},
20975     { &hf_gsm_map_sm_sm_RP_SMEA,
20976       { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA",
20977         FT_BYTES, BASE_NONE, NULL, 0,
20978         NULL, HFILL }},
20979     { &hf_gsm_map_sm_sm_deliveryNotIntended,
20980       { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended",
20981         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0,
20982         NULL, HFILL }},
20983     { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator,
20984       { "ip-sm-gwGuidanceIndicator", "gsm_map.sm.ip_sm_gwGuidanceIndicator_element",
20985         FT_NONE, BASE_NONE, NULL, 0,
20986         NULL, HFILL }},
20987     { &hf_gsm_map_sm_imsi,
20988       { "imsi", "gsm_map.sm.imsi",
20989         FT_BYTES, BASE_NONE, NULL, 0,
20990         NULL, HFILL }},
20991     { &hf_gsm_map_sm_locationInfoWithLMSI,
20992       { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI_element",
20993         FT_NONE, BASE_NONE, NULL, 0,
20994         NULL, HFILL }},
20995     { &hf_gsm_map_sm_ip_sm_gwGuidance,
20996       { "ip-sm-gwGuidance", "gsm_map.sm.ip_sm_gwGuidance_element",
20997         FT_NONE, BASE_NONE, NULL, 0,
20998         "IP_SM_GW_Guidance", HFILL }},
20999     { &hf_gsm_map_sm_minimumDeliveryTimeValue,
21000       { "minimumDeliveryTimeValue", "gsm_map.sm.minimumDeliveryTimeValue",
21001         FT_UINT32, BASE_DEC, NULL, 0,
21002         "SM_DeliveryTimerValue", HFILL }},
21003     { &hf_gsm_map_sm_recommendedDeliveryTimeValue,
21004       { "recommendedDeliveryTimeValue", "gsm_map.sm.recommendedDeliveryTimeValue",
21005         FT_UINT32, BASE_DEC, NULL, 0,
21006         "SM_DeliveryTimerValue", HFILL }},
21007     { &hf_gsm_map_sm_networkNode_Number,
21008       { "networkNode-Number", "gsm_map.sm.networkNode_Number",
21009         FT_BYTES, BASE_NONE, NULL, 0,
21010         "ISDN_AddressString", HFILL }},
21011     { &hf_gsm_map_sm_lmsi,
21012       { "lmsi", "gsm_map.sm.lmsi",
21013         FT_BYTES, BASE_NONE, NULL, 0,
21014         NULL, HFILL }},
21015     { &hf_gsm_map_sm_gprsNodeIndicator,
21016       { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator_element",
21017         FT_NONE, BASE_NONE, NULL, 0,
21018         NULL, HFILL }},
21019     { &hf_gsm_map_sm_additional_Number,
21020       { "additional-Number", "gsm_map.sm.additional_Number",
21021         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
21022         NULL, HFILL }},
21023     { &hf_gsm_map_sm_networkNodeDiameterAddress,
21024       { "networkNodeDiameterAddress", "gsm_map.sm.networkNodeDiameterAddress_element",
21025         FT_NONE, BASE_NONE, NULL, 0,
21026         NULL, HFILL }},
21027     { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress,
21028       { "additionalNetworkNodeDiameterAddress", "gsm_map.sm.additionalNetworkNodeDiameterAddress_element",
21029         FT_NONE, BASE_NONE, NULL, 0,
21030         "NetworkNodeDiameterAddress", HFILL }},
21031     { &hf_gsm_map_sm_thirdNumber,
21032       { "thirdNumber", "gsm_map.sm.thirdNumber",
21033         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
21034         "Additional_Number", HFILL }},
21035     { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress,
21036       { "thirdNetworkNodeDiameterAddress", "gsm_map.sm.thirdNetworkNodeDiameterAddress_element",
21037         FT_NONE, BASE_NONE, NULL, 0,
21038         "NetworkNodeDiameterAddress", HFILL }},
21039     { &hf_gsm_map_sm_imsNodeIndicator,
21040       { "imsNodeIndicator", "gsm_map.sm.imsNodeIndicator_element",
21041         FT_NONE, BASE_NONE, NULL, 0,
21042         NULL, HFILL }},
21043     { &hf_gsm_map_sm_msc_Number,
21044       { "msc-Number", "gsm_map.sm.msc_Number",
21045         FT_BYTES, BASE_NONE, NULL, 0,
21046         "ISDN_AddressString", HFILL }},
21047     { &hf_gsm_map_sm_sgsn_Number,
21048       { "sgsn-Number", "gsm_map.sm.sgsn_Number",
21049         FT_BYTES, BASE_NONE, NULL, 0,
21050         "ISDN_AddressString", HFILL }},
21051     { &hf_gsm_map_sm_sm_RP_DA,
21052       { "sm-RP-DA", "gsm_map.sm.sm_RP_DA",
21053         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0,
21054         NULL, HFILL }},
21055     { &hf_gsm_map_sm_sm_RP_OA,
21056       { "sm-RP-OA", "gsm_map.sm.sm_RP_OA",
21057         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0,
21058         NULL, HFILL }},
21059     { &hf_gsm_map_sm_sm_RP_UI,
21060       { "sm-RP-UI", "gsm_map.sm.sm_RP_UI",
21061         FT_BYTES, BASE_NONE, NULL, 0,
21062         "SignalInfo", HFILL }},
21063     { &hf_gsm_map_sm_moreMessagesToSend,
21064       { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend_element",
21065         FT_NONE, BASE_NONE, NULL, 0,
21066         NULL, HFILL }},
21067     { &hf_gsm_map_sm_smDeliveryTimer,
21068       { "smDeliveryTimer", "gsm_map.sm.smDeliveryTimer",
21069         FT_UINT32, BASE_DEC, NULL, 0,
21070         "SM_DeliveryTimerValue", HFILL }},
21071     { &hf_gsm_map_sm_smDeliveryStartTime,
21072       { "smDeliveryStartTime", "gsm_map.sm.smDeliveryStartTime",
21073         FT_BYTES, BASE_NONE, NULL, 0,
21074         "Time", HFILL }},
21075     { &hf_gsm_map_sm_smsOverIP_OnlyIndicator,
21076       { "smsOverIP-OnlyIndicator", "gsm_map.sm.smsOverIP_OnlyIndicator_element",
21077         FT_NONE, BASE_NONE, NULL, 0,
21078         NULL, HFILL }},
21079     { &hf_gsm_map_sm_imsi_01,
21080       { "imsi", "gsm_map.sm.imsi",
21081         FT_BYTES, BASE_NONE, NULL, 0,
21082         NULL, HFILL }},
21083     { &hf_gsm_map_sm_lmsi_01,
21084       { "lmsi", "gsm_map.sm.lmsi",
21085         FT_BYTES, BASE_NONE, NULL, 0,
21086         NULL, HFILL }},
21087     { &hf_gsm_map_sm_serviceCentreAddressDA,
21088       { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA",
21089         FT_BYTES, BASE_NONE, NULL, 0,
21090         NULL, HFILL }},
21091     { &hf_gsm_map_sm_noSM_RP_DA,
21092       { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA_element",
21093         FT_NONE, BASE_NONE, NULL, 0,
21094         NULL, HFILL }},
21095     { &hf_gsm_map_sm_msisdn_01,
21096       { "msisdn", "gsm_map.sm.msisdn",
21097         FT_BYTES, BASE_NONE, NULL, 0,
21098         NULL, HFILL }},
21099     { &hf_gsm_map_sm_serviceCentreAddressOA,
21100       { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA",
21101         FT_BYTES, BASE_NONE, NULL, 0,
21102         NULL, HFILL }},
21103     { &hf_gsm_map_sm_noSM_RP_OA,
21104       { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA_element",
21105         FT_NONE, BASE_NONE, NULL, 0,
21106         NULL, HFILL }},
21107     { &hf_gsm_map_sm_sm_DeliveryOutcome,
21108       { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome",
21109         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
21110         NULL, HFILL }},
21111     { &hf_gsm_map_sm_absentSubscriberDiagnosticSM,
21112       { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM",
21113         FT_UINT32, BASE_DEC, NULL, 0,
21114         NULL, HFILL }},
21115     { &hf_gsm_map_sm_deliveryOutcomeIndicator,
21116       { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator_element",
21117         FT_NONE, BASE_NONE, NULL, 0,
21118         NULL, HFILL }},
21119     { &hf_gsm_map_sm_additionalSM_DeliveryOutcome,
21120       { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome",
21121         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
21122         "SM_DeliveryOutcome", HFILL }},
21123     { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM,
21124       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM",
21125         FT_UINT32, BASE_DEC, NULL, 0,
21126         "AbsentSubscriberDiagnosticSM", HFILL }},
21127     { &hf_gsm_map_sm_ip_sm_gw_Indicator,
21128       { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator_element",
21129         FT_NONE, BASE_NONE, NULL, 0,
21130         NULL, HFILL }},
21131     { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome,
21132       { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome",
21133         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0,
21134         "SM_DeliveryOutcome", HFILL }},
21135     { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM,
21136       { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM",
21137         FT_UINT32, BASE_DEC, NULL, 0,
21138         "AbsentSubscriberDiagnosticSM", HFILL }},
21139     { &hf_gsm_map_sm_storedMSISDN,
21140       { "storedMSISDN", "gsm_map.sm.storedMSISDN",
21141         FT_BYTES, BASE_NONE, NULL, 0,
21142         "ISDN_AddressString", HFILL }},
21143     { &hf_gsm_map_sm_mw_Status,
21144       { "mw-Status", "gsm_map.sm.mw_Status",
21145         FT_BYTES, BASE_NONE, NULL, 0,
21146         NULL, HFILL }},
21147     { &hf_gsm_map_sm_alertReason,
21148       { "alertReason", "gsm_map.sm.alertReason",
21149         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0,
21150         NULL, HFILL }},
21151     { &hf_gsm_map_sm_alertReasonIndicator,
21152       { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator_element",
21153         FT_NONE, BASE_NONE, NULL, 0,
21154         NULL, HFILL }},
21155     { &hf_gsm_map_sm_additionalAlertReasonIndicator,
21156       { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator_element",
21157         FT_NONE, BASE_NONE, NULL, 0,
21158         NULL, HFILL }},
21159     { &hf_gsm_map_sm_asciCallReference,
21160       { "asciCallReference", "gsm_map.sm.asciCallReference",
21161         FT_BYTES, BASE_NONE, NULL, 0,
21162         "ASCI_CallReference", HFILL }},
21163     { &hf_gsm_map_sm_dispatcherList,
21164       { "dispatcherList", "gsm_map.sm.dispatcherList",
21165         FT_UINT32, BASE_DEC, NULL, 0,
21166         NULL, HFILL }},
21167     { &hf_gsm_map_sm_ongoingCall,
21168       { "ongoingCall", "gsm_map.sm.ongoingCall_element",
21169         FT_NONE, BASE_NONE, NULL, 0,
21170         NULL, HFILL }},
21171     { &hf_gsm_map_sm_additionalDispatcherList,
21172       { "additionalDispatcherList", "gsm_map.sm.additionalDispatcherList",
21173         FT_UINT32, BASE_DEC, NULL, 0,
21174         NULL, HFILL }},
21175     { &hf_gsm_map_sm_DispatcherList_item,
21176       { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
21177         FT_BYTES, BASE_NONE, NULL, 0,
21178         NULL, HFILL }},
21179     { &hf_gsm_map_sm_AdditionalDispatcherList_item,
21180       { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString",
21181         FT_BYTES, BASE_NONE, NULL, 0,
21182         NULL, HFILL }},
21183     { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded,
21184       { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded",
21185         FT_BOOLEAN, 8, NULL, 0x80,
21186         NULL, HFILL }},
21187     { &hf_gsm_map_sm_MW_Status_mnrf_Set,
21188       { "mnrf-Set", "gsm_map.sm.mnrf-Set",
21189         FT_BOOLEAN, 8, NULL, 0x40,
21190         NULL, HFILL }},
21191     { &hf_gsm_map_sm_MW_Status_mcef_Set,
21192       { "mcef-Set", "gsm_map.sm.mcef-Set",
21193         FT_BOOLEAN, 8, NULL, 0x20,
21194         NULL, HFILL }},
21195     { &hf_gsm_map_sm_MW_Status_mnrg_Set,
21196       { "mnrg-Set", "gsm_map.sm.mnrg-Set",
21197         FT_BOOLEAN, 8, NULL, 0x10,
21198         NULL, HFILL }},
21199
21200 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
21201
21202     { &hf_gsm_map_om_imsi,
21203       { "imsi", "gsm_map.om.imsi",
21204         FT_BYTES, BASE_NONE, NULL, 0,
21205         NULL, HFILL }},
21206     { &hf_gsm_map_om_traceReference,
21207       { "traceReference", "gsm_map.om.traceReference",
21208         FT_BYTES, BASE_NONE, NULL, 0,
21209         NULL, HFILL }},
21210     { &hf_gsm_map_om_traceType,
21211       { "traceType", "gsm_map.om.traceType",
21212         FT_UINT32, BASE_DEC, NULL, 0,
21213         NULL, HFILL }},
21214     { &hf_gsm_map_om_omc_Id,
21215       { "omc-Id", "gsm_map.om.omc_Id",
21216         FT_BYTES, BASE_NONE, NULL, 0,
21217         "AddressString", HFILL }},
21218     { &hf_gsm_map_om_extensionContainer,
21219       { "extensionContainer", "gsm_map.om.extensionContainer_element",
21220         FT_NONE, BASE_NONE, NULL, 0,
21221         NULL, HFILL }},
21222     { &hf_gsm_map_om_traceReference2,
21223       { "traceReference2", "gsm_map.om.traceReference2",
21224         FT_BYTES, BASE_NONE, NULL, 0,
21225         NULL, HFILL }},
21226     { &hf_gsm_map_om_traceDepthList,
21227       { "traceDepthList", "gsm_map.om.traceDepthList_element",
21228         FT_NONE, BASE_NONE, NULL, 0,
21229         NULL, HFILL }},
21230     { &hf_gsm_map_om_traceNE_TypeList,
21231       { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList",
21232         FT_BYTES, BASE_NONE, NULL, 0,
21233         NULL, HFILL }},
21234     { &hf_gsm_map_om_traceInterfaceList,
21235       { "traceInterfaceList", "gsm_map.om.traceInterfaceList_element",
21236         FT_NONE, BASE_NONE, NULL, 0,
21237         NULL, HFILL }},
21238     { &hf_gsm_map_om_traceEventList,
21239       { "traceEventList", "gsm_map.om.traceEventList_element",
21240         FT_NONE, BASE_NONE, NULL, 0,
21241         NULL, HFILL }},
21242     { &hf_gsm_map_om_traceCollectionEntity,
21243       { "traceCollectionEntity", "gsm_map.om.traceCollectionEntity",
21244         FT_BYTES, BASE_NONE, NULL, 0,
21245         "GSN_Address", HFILL }},
21246     { &hf_gsm_map_om_mdt_Configuration,
21247       { "mdt-Configuration", "gsm_map.om.mdt_Configuration_element",
21248         FT_NONE, BASE_NONE, NULL, 0,
21249         NULL, HFILL }},
21250     { &hf_gsm_map_om_jobType,
21251       { "jobType", "gsm_map.om.jobType",
21252         FT_UINT32, BASE_DEC, VALS(gsm_map_om_JobType_vals), 0,
21253         NULL, HFILL }},
21254     { &hf_gsm_map_om_areaScope,
21255       { "areaScope", "gsm_map.om.areaScope_element",
21256         FT_NONE, BASE_NONE, NULL, 0,
21257         NULL, HFILL }},
21258     { &hf_gsm_map_om_listOfMeasurements,
21259       { "listOfMeasurements", "gsm_map.om.listOfMeasurements",
21260         FT_BYTES, BASE_NONE, NULL, 0,
21261         NULL, HFILL }},
21262     { &hf_gsm_map_om_reportingTrigger,
21263       { "reportingTrigger", "gsm_map.om.reportingTrigger",
21264         FT_BYTES, BASE_NONE, NULL, 0,
21265         NULL, HFILL }},
21266     { &hf_gsm_map_om_reportInterval,
21267       { "reportInterval", "gsm_map.om.reportInterval",
21268         FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportInterval_vals), 0,
21269         NULL, HFILL }},
21270     { &hf_gsm_map_om_reportAmount,
21271       { "reportAmount", "gsm_map.om.reportAmount",
21272         FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportAmount_vals), 0,
21273         NULL, HFILL }},
21274     { &hf_gsm_map_om_eventThresholdRSRP,
21275       { "eventThresholdRSRP", "gsm_map.om.eventThresholdRSRP",
21276         FT_UINT32, BASE_DEC, NULL, 0,
21277         NULL, HFILL }},
21278     { &hf_gsm_map_om_eventThresholdRSRQ,
21279       { "eventThresholdRSRQ", "gsm_map.om.eventThresholdRSRQ",
21280         FT_UINT32, BASE_DEC, NULL, 0,
21281         NULL, HFILL }},
21282     { &hf_gsm_map_om_loggingInterval,
21283       { "loggingInterval", "gsm_map.om.loggingInterval",
21284         FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingInterval_vals), 0,
21285         NULL, HFILL }},
21286     { &hf_gsm_map_om_loggingDuration,
21287       { "loggingDuration", "gsm_map.om.loggingDuration",
21288         FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingDuration_vals), 0,
21289         NULL, HFILL }},
21290     { &hf_gsm_map_om_cgi_List,
21291       { "cgi-List", "gsm_map.om.cgi_List",
21292         FT_UINT32, BASE_DEC, NULL, 0,
21293         NULL, HFILL }},
21294     { &hf_gsm_map_om_e_utran_cgi_List,
21295       { "e-utran-cgi-List", "gsm_map.om.e_utran_cgi_List",
21296         FT_UINT32, BASE_DEC, NULL, 0,
21297         NULL, HFILL }},
21298     { &hf_gsm_map_om_routingAreaId_List,
21299       { "routingAreaId-List", "gsm_map.om.routingAreaId_List",
21300         FT_UINT32, BASE_DEC, NULL, 0,
21301         NULL, HFILL }},
21302     { &hf_gsm_map_om_locationAreaId_List,
21303       { "locationAreaId-List", "gsm_map.om.locationAreaId_List",
21304         FT_UINT32, BASE_DEC, NULL, 0,
21305         NULL, HFILL }},
21306     { &hf_gsm_map_om_trackingAreaId_List,
21307       { "trackingAreaId-List", "gsm_map.om.trackingAreaId_List",
21308         FT_UINT32, BASE_DEC, NULL, 0,
21309         NULL, HFILL }},
21310     { &hf_gsm_map_om_CGI_List_item,
21311       { "GlobalCellId", "gsm_map.om.GlobalCellId",
21312         FT_BYTES, BASE_NONE, NULL, 0,
21313         NULL, HFILL }},
21314     { &hf_gsm_map_om_E_UTRAN_CGI_List_item,
21315       { "E-UTRAN-CGI", "gsm_map.om.E_UTRAN_CGI",
21316         FT_BYTES, BASE_NONE, NULL, 0,
21317         NULL, HFILL }},
21318     { &hf_gsm_map_om_RoutingAreaId_List_item,
21319       { "RAIdentity", "gsm_map.om.RAIdentity",
21320         FT_BYTES, BASE_NONE, NULL, 0,
21321         NULL, HFILL }},
21322     { &hf_gsm_map_om_LocationAreaId_List_item,
21323       { "LAIFixedLength", "gsm_map.om.LAIFixedLength",
21324         FT_BYTES, BASE_NONE, NULL, 0,
21325         NULL, HFILL }},
21326     { &hf_gsm_map_om_TrackingAreaId_List_item,
21327       { "TA-Id", "gsm_map.om.TA_Id",
21328         FT_BYTES, BASE_NONE, NULL, 0,
21329         NULL, HFILL }},
21330     { &hf_gsm_map_om_msc_s_TraceDepth,
21331       { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth",
21332         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21333         "TraceDepth", HFILL }},
21334     { &hf_gsm_map_om_mgw_TraceDepth,
21335       { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth",
21336         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21337         "TraceDepth", HFILL }},
21338     { &hf_gsm_map_om_sgsn_TraceDepth,
21339       { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth",
21340         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21341         "TraceDepth", HFILL }},
21342     { &hf_gsm_map_om_ggsn_TraceDepth,
21343       { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth",
21344         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21345         "TraceDepth", HFILL }},
21346     { &hf_gsm_map_om_rnc_TraceDepth,
21347       { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth",
21348         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21349         "TraceDepth", HFILL }},
21350     { &hf_gsm_map_om_bmsc_TraceDepth,
21351       { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth",
21352         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21353         "TraceDepth", HFILL }},
21354     { &hf_gsm_map_om_mme_TraceDepth,
21355       { "mme-TraceDepth", "gsm_map.om.mme_TraceDepth",
21356         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21357         "TraceDepth", HFILL }},
21358     { &hf_gsm_map_om_sgw_TraceDepth,
21359       { "sgw-TraceDepth", "gsm_map.om.sgw_TraceDepth",
21360         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21361         "TraceDepth", HFILL }},
21362     { &hf_gsm_map_om_pgw_TraceDepth,
21363       { "pgw-TraceDepth", "gsm_map.om.pgw_TraceDepth",
21364         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21365         "TraceDepth", HFILL }},
21366     { &hf_gsm_map_om_eNB_TraceDepth,
21367       { "eNB-TraceDepth", "gsm_map.om.eNB_TraceDepth",
21368         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0,
21369         "TraceDepth", HFILL }},
21370     { &hf_gsm_map_om_msc_s_TraceDepthExtension,
21371       { "msc-s-TraceDepthExtension", "gsm_map.om.msc_s_TraceDepthExtension",
21372         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21373         "TraceDepthExtension", HFILL }},
21374     { &hf_gsm_map_om_mgw_TraceDepthExtension,
21375       { "mgw-TraceDepthExtension", "gsm_map.om.mgw_TraceDepthExtension",
21376         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21377         "TraceDepthExtension", HFILL }},
21378     { &hf_gsm_map_om_sgsn_TraceDepthExtension,
21379       { "sgsn-TraceDepthExtension", "gsm_map.om.sgsn_TraceDepthExtension",
21380         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21381         "TraceDepthExtension", HFILL }},
21382     { &hf_gsm_map_om_ggsn_TraceDepthExtension,
21383       { "ggsn-TraceDepthExtension", "gsm_map.om.ggsn_TraceDepthExtension",
21384         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21385         "TraceDepthExtension", HFILL }},
21386     { &hf_gsm_map_om_rnc_TraceDepthExtension,
21387       { "rnc-TraceDepthExtension", "gsm_map.om.rnc_TraceDepthExtension",
21388         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21389         "TraceDepthExtension", HFILL }},
21390     { &hf_gsm_map_om_bmsc_TraceDepthExtension,
21391       { "bmsc-TraceDepthExtension", "gsm_map.om.bmsc_TraceDepthExtension",
21392         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21393         "TraceDepthExtension", HFILL }},
21394     { &hf_gsm_map_om_mme_TraceDepthExtension,
21395       { "mme-TraceDepthExtension", "gsm_map.om.mme_TraceDepthExtension",
21396         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21397         "TraceDepthExtension", HFILL }},
21398     { &hf_gsm_map_om_sgw_TraceDepthExtension,
21399       { "sgw-TraceDepthExtension", "gsm_map.om.sgw_TraceDepthExtension",
21400         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21401         "TraceDepthExtension", HFILL }},
21402     { &hf_gsm_map_om_pgw_TraceDepthExtension,
21403       { "pgw-TraceDepthExtension", "gsm_map.om.pgw_TraceDepthExtension",
21404         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21405         "TraceDepthExtension", HFILL }},
21406     { &hf_gsm_map_om_eNB_TraceDepthExtension,
21407       { "eNB-TraceDepthExtension", "gsm_map.om.eNB_TraceDepthExtension",
21408         FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0,
21409         "TraceDepthExtension", HFILL }},
21410     { &hf_gsm_map_om_msc_s_List,
21411       { "msc-s-List", "gsm_map.om.msc_s_List",
21412         FT_BYTES, BASE_NONE, NULL, 0,
21413         "MSC_S_InterfaceList", HFILL }},
21414     { &hf_gsm_map_om_mgw_List,
21415       { "mgw-List", "gsm_map.om.mgw_List",
21416         FT_BYTES, BASE_NONE, NULL, 0,
21417         "MGW_InterfaceList", HFILL }},
21418     { &hf_gsm_map_om_sgsn_List,
21419       { "sgsn-List", "gsm_map.om.sgsn_List",
21420         FT_BYTES, BASE_NONE, NULL, 0,
21421         "SGSN_InterfaceList", HFILL }},
21422     { &hf_gsm_map_om_ggsn_List,
21423       { "ggsn-List", "gsm_map.om.ggsn_List",
21424         FT_BYTES, BASE_NONE, NULL, 0,
21425         "GGSN_InterfaceList", HFILL }},
21426     { &hf_gsm_map_om_rnc_List,
21427       { "rnc-List", "gsm_map.om.rnc_List",
21428         FT_BYTES, BASE_NONE, NULL, 0,
21429         "RNC_InterfaceList", HFILL }},
21430     { &hf_gsm_map_om_bmsc_List,
21431       { "bmsc-List", "gsm_map.om.bmsc_List",
21432         FT_BYTES, BASE_NONE, NULL, 0,
21433         "BMSC_InterfaceList", HFILL }},
21434     { &hf_gsm_map_om_mme_List,
21435       { "mme-List", "gsm_map.om.mme_List",
21436         FT_BYTES, BASE_NONE, NULL, 0,
21437         "MME_InterfaceList", HFILL }},
21438     { &hf_gsm_map_om_sgw_List,
21439       { "sgw-List", "gsm_map.om.sgw_List",
21440         FT_BYTES, BASE_NONE, NULL, 0,
21441         "SGW_InterfaceList", HFILL }},
21442     { &hf_gsm_map_om_pgw_List,
21443       { "pgw-List", "gsm_map.om.pgw_List",
21444         FT_BYTES, BASE_NONE, NULL, 0,
21445         "PGW_InterfaceList", HFILL }},
21446     { &hf_gsm_map_om_eNB_List,
21447       { "eNB-List", "gsm_map.om.eNB_List",
21448         FT_BYTES, BASE_NONE, NULL, 0,
21449         "ENB_InterfaceList", HFILL }},
21450     { &hf_gsm_map_om_msc_s_List_01,
21451       { "msc-s-List", "gsm_map.om.msc_s_List",
21452         FT_BYTES, BASE_NONE, NULL, 0,
21453         "MSC_S_EventList", HFILL }},
21454     { &hf_gsm_map_om_mgw_List_01,
21455       { "mgw-List", "gsm_map.om.mgw_List",
21456         FT_BYTES, BASE_NONE, NULL, 0,
21457         "MGW_EventList", HFILL }},
21458     { &hf_gsm_map_om_sgsn_List_01,
21459       { "sgsn-List", "gsm_map.om.sgsn_List",
21460         FT_BYTES, BASE_NONE, NULL, 0,
21461         "SGSN_EventList", HFILL }},
21462     { &hf_gsm_map_om_ggsn_List_01,
21463       { "ggsn-List", "gsm_map.om.ggsn_List",
21464         FT_BYTES, BASE_NONE, NULL, 0,
21465         "GGSN_EventList", HFILL }},
21466     { &hf_gsm_map_om_bmsc_List_01,
21467       { "bmsc-List", "gsm_map.om.bmsc_List",
21468         FT_BYTES, BASE_NONE, NULL, 0,
21469         "BMSC_EventList", HFILL }},
21470     { &hf_gsm_map_om_mme_List_01,
21471       { "mme-List", "gsm_map.om.mme_List",
21472         FT_BYTES, BASE_NONE, NULL, 0,
21473         "MME_EventList", HFILL }},
21474     { &hf_gsm_map_om_sgw_List_01,
21475       { "sgw-List", "gsm_map.om.sgw_List",
21476         FT_BYTES, BASE_NONE, NULL, 0,
21477         "SGW_EventList", HFILL }},
21478     { &hf_gsm_map_om_pgw_List_01,
21479       { "pgw-List", "gsm_map.om.pgw_List",
21480         FT_BYTES, BASE_NONE, NULL, 0,
21481         "PGW_EventList", HFILL }},
21482     { &hf_gsm_map_om_traceRecordingSessionReference,
21483       { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference",
21484         FT_BYTES, BASE_NONE, NULL, 0,
21485         NULL, HFILL }},
21486     { &hf_gsm_map_om_rnc_InterfaceList,
21487       { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList",
21488         FT_BYTES, BASE_NONE, NULL, 0,
21489         NULL, HFILL }},
21490     { &hf_gsm_map_om_msc_s_InterfaceList,
21491       { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList",
21492         FT_BYTES, BASE_NONE, NULL, 0,
21493         NULL, HFILL }},
21494     { &hf_gsm_map_om_msc_s_EventList,
21495       { "msc-s-EventList", "gsm_map.om.msc_s_EventList",
21496         FT_BYTES, BASE_NONE, NULL, 0,
21497         NULL, HFILL }},
21498     { &hf_gsm_map_om_mgw_InterfaceList,
21499       { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList",
21500         FT_BYTES, BASE_NONE, NULL, 0,
21501         NULL, HFILL }},
21502     { &hf_gsm_map_om_mgw_EventList,
21503       { "mgw-EventList", "gsm_map.om.mgw_EventList",
21504         FT_BYTES, BASE_NONE, NULL, 0,
21505         NULL, HFILL }},
21506     { &hf_gsm_map_om_traceSupportIndicator,
21507       { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator_element",
21508         FT_NONE, BASE_NONE, NULL, 0,
21509         NULL, HFILL }},
21510     { &hf_gsm_map_om_TraceNE_TypeList_msc_s,
21511       { "msc-s", "gsm_map.om.msc-s",
21512         FT_BOOLEAN, 8, NULL, 0x80,
21513         NULL, HFILL }},
21514     { &hf_gsm_map_om_TraceNE_TypeList_mgw,
21515       { "mgw", "gsm_map.om.mgw",
21516         FT_BOOLEAN, 8, NULL, 0x40,
21517         NULL, HFILL }},
21518     { &hf_gsm_map_om_TraceNE_TypeList_sgsn,
21519       { "sgsn", "gsm_map.om.sgsn",
21520         FT_BOOLEAN, 8, NULL, 0x20,
21521         NULL, HFILL }},
21522     { &hf_gsm_map_om_TraceNE_TypeList_ggsn,
21523       { "ggsn", "gsm_map.om.ggsn",
21524         FT_BOOLEAN, 8, NULL, 0x10,
21525         NULL, HFILL }},
21526     { &hf_gsm_map_om_TraceNE_TypeList_rnc,
21527       { "rnc", "gsm_map.om.rnc",
21528         FT_BOOLEAN, 8, NULL, 0x08,
21529         NULL, HFILL }},
21530     { &hf_gsm_map_om_TraceNE_TypeList_bm_sc,
21531       { "bm-sc", "gsm_map.om.bm-sc",
21532         FT_BOOLEAN, 8, NULL, 0x04,
21533         NULL, HFILL }},
21534     { &hf_gsm_map_om_TraceNE_TypeList_mme,
21535       { "mme", "gsm_map.om.mme",
21536         FT_BOOLEAN, 8, NULL, 0x02,
21537         NULL, HFILL }},
21538     { &hf_gsm_map_om_TraceNE_TypeList_sgw,
21539       { "sgw", "gsm_map.om.sgw",
21540         FT_BOOLEAN, 8, NULL, 0x01,
21541         NULL, HFILL }},
21542     { &hf_gsm_map_om_TraceNE_TypeList_pgw,
21543       { "pgw", "gsm_map.om.pgw",
21544         FT_BOOLEAN, 8, NULL, 0x80,
21545         NULL, HFILL }},
21546     { &hf_gsm_map_om_TraceNE_TypeList_eNB,
21547       { "eNB", "gsm_map.om.eNB",
21548         FT_BOOLEAN, 8, NULL, 0x40,
21549         NULL, HFILL }},
21550     { &hf_gsm_map_om_MSC_S_InterfaceList_a,
21551       { "a", "gsm_map.om.a",
21552         FT_BOOLEAN, 8, NULL, 0x80,
21553         NULL, HFILL }},
21554     { &hf_gsm_map_om_MSC_S_InterfaceList_iu,
21555       { "iu", "gsm_map.om.iu",
21556         FT_BOOLEAN, 8, NULL, 0x40,
21557         NULL, HFILL }},
21558     { &hf_gsm_map_om_MSC_S_InterfaceList_mc,
21559       { "mc", "gsm_map.om.mc",
21560         FT_BOOLEAN, 8, NULL, 0x20,
21561         NULL, HFILL }},
21562     { &hf_gsm_map_om_MSC_S_InterfaceList_map_g,
21563       { "map-g", "gsm_map.om.map-g",
21564         FT_BOOLEAN, 8, NULL, 0x10,
21565         NULL, HFILL }},
21566     { &hf_gsm_map_om_MSC_S_InterfaceList_map_b,
21567       { "map-b", "gsm_map.om.map-b",
21568         FT_BOOLEAN, 8, NULL, 0x08,
21569         NULL, HFILL }},
21570     { &hf_gsm_map_om_MSC_S_InterfaceList_map_e,
21571       { "map-e", "gsm_map.om.map-e",
21572         FT_BOOLEAN, 8, NULL, 0x04,
21573         NULL, HFILL }},
21574     { &hf_gsm_map_om_MSC_S_InterfaceList_map_f,
21575       { "map-f", "gsm_map.om.map-f",
21576         FT_BOOLEAN, 8, NULL, 0x02,
21577         NULL, HFILL }},
21578     { &hf_gsm_map_om_MSC_S_InterfaceList_cap,
21579       { "cap", "gsm_map.om.cap",
21580         FT_BOOLEAN, 8, NULL, 0x01,
21581         NULL, HFILL }},
21582     { &hf_gsm_map_om_MSC_S_InterfaceList_map_d,
21583       { "map-d", "gsm_map.om.map-d",
21584         FT_BOOLEAN, 8, NULL, 0x80,
21585         NULL, HFILL }},
21586     { &hf_gsm_map_om_MSC_S_InterfaceList_map_c,
21587       { "map-c", "gsm_map.om.map-c",
21588         FT_BOOLEAN, 8, NULL, 0x40,
21589         NULL, HFILL }},
21590     { &hf_gsm_map_om_MGW_InterfaceList_mc,
21591       { "mc", "gsm_map.om.mc",
21592         FT_BOOLEAN, 8, NULL, 0x80,
21593         NULL, HFILL }},
21594     { &hf_gsm_map_om_MGW_InterfaceList_nb_up,
21595       { "nb-up", "gsm_map.om.nb-up",
21596         FT_BOOLEAN, 8, NULL, 0x40,
21597         NULL, HFILL }},
21598     { &hf_gsm_map_om_MGW_InterfaceList_iu_up,
21599       { "iu-up", "gsm_map.om.iu-up",
21600         FT_BOOLEAN, 8, NULL, 0x20,
21601         NULL, HFILL }},
21602     { &hf_gsm_map_om_SGSN_InterfaceList_gb,
21603       { "gb", "gsm_map.om.gb",
21604         FT_BOOLEAN, 8, NULL, 0x80,
21605         NULL, HFILL }},
21606     { &hf_gsm_map_om_SGSN_InterfaceList_iu,
21607       { "iu", "gsm_map.om.iu",
21608         FT_BOOLEAN, 8, NULL, 0x40,
21609         NULL, HFILL }},
21610     { &hf_gsm_map_om_SGSN_InterfaceList_gn,
21611       { "gn", "gsm_map.om.gn",
21612         FT_BOOLEAN, 8, NULL, 0x20,
21613         NULL, HFILL }},
21614     { &hf_gsm_map_om_SGSN_InterfaceList_map_gr,
21615       { "map-gr", "gsm_map.om.map-gr",
21616         FT_BOOLEAN, 8, NULL, 0x10,
21617         NULL, HFILL }},
21618     { &hf_gsm_map_om_SGSN_InterfaceList_map_gd,
21619       { "map-gd", "gsm_map.om.map-gd",
21620         FT_BOOLEAN, 8, NULL, 0x08,
21621         NULL, HFILL }},
21622     { &hf_gsm_map_om_SGSN_InterfaceList_map_gf,
21623       { "map-gf", "gsm_map.om.map-gf",
21624         FT_BOOLEAN, 8, NULL, 0x04,
21625         NULL, HFILL }},
21626     { &hf_gsm_map_om_SGSN_InterfaceList_gs,
21627       { "gs", "gsm_map.om.gs",
21628         FT_BOOLEAN, 8, NULL, 0x02,
21629         NULL, HFILL }},
21630     { &hf_gsm_map_om_SGSN_InterfaceList_ge,
21631       { "ge", "gsm_map.om.ge",
21632         FT_BOOLEAN, 8, NULL, 0x01,
21633         NULL, HFILL }},
21634     { &hf_gsm_map_om_SGSN_InterfaceList_s3,
21635       { "s3", "gsm_map.om.s3",
21636         FT_BOOLEAN, 8, NULL, 0x80,
21637         NULL, HFILL }},
21638     { &hf_gsm_map_om_SGSN_InterfaceList_s4,
21639       { "s4", "gsm_map.om.s4",
21640         FT_BOOLEAN, 8, NULL, 0x40,
21641         NULL, HFILL }},
21642     { &hf_gsm_map_om_SGSN_InterfaceList_s6d,
21643       { "s6d", "gsm_map.om.s6d",
21644         FT_BOOLEAN, 8, NULL, 0x20,
21645         NULL, HFILL }},
21646     { &hf_gsm_map_om_GGSN_InterfaceList_gn,
21647       { "gn", "gsm_map.om.gn",
21648         FT_BOOLEAN, 8, NULL, 0x80,
21649         NULL, HFILL }},
21650     { &hf_gsm_map_om_GGSN_InterfaceList_gi,
21651       { "gi", "gsm_map.om.gi",
21652         FT_BOOLEAN, 8, NULL, 0x40,
21653         NULL, HFILL }},
21654     { &hf_gsm_map_om_GGSN_InterfaceList_gmb,
21655       { "gmb", "gsm_map.om.gmb",
21656         FT_BOOLEAN, 8, NULL, 0x20,
21657         NULL, HFILL }},
21658     { &hf_gsm_map_om_RNC_InterfaceList_iu,
21659       { "iu", "gsm_map.om.iu",
21660         FT_BOOLEAN, 8, NULL, 0x80,
21661         NULL, HFILL }},
21662     { &hf_gsm_map_om_RNC_InterfaceList_iur,
21663       { "iur", "gsm_map.om.iur",
21664         FT_BOOLEAN, 8, NULL, 0x40,
21665         NULL, HFILL }},
21666     { &hf_gsm_map_om_RNC_InterfaceList_iub,
21667       { "iub", "gsm_map.om.iub",
21668         FT_BOOLEAN, 8, NULL, 0x20,
21669         NULL, HFILL }},
21670     { &hf_gsm_map_om_RNC_InterfaceList_uu,
21671       { "uu", "gsm_map.om.uu",
21672         FT_BOOLEAN, 8, NULL, 0x10,
21673         NULL, HFILL }},
21674     { &hf_gsm_map_om_BMSC_InterfaceList_gmb,
21675       { "gmb", "gsm_map.om.gmb",
21676         FT_BOOLEAN, 8, NULL, 0x80,
21677         NULL, HFILL }},
21678     { &hf_gsm_map_om_MME_InterfaceList_s1_mme,
21679       { "s1-mme", "gsm_map.om.s1-mme",
21680         FT_BOOLEAN, 8, NULL, 0x80,
21681         NULL, HFILL }},
21682     { &hf_gsm_map_om_MME_InterfaceList_s3,
21683       { "s3", "gsm_map.om.s3",
21684         FT_BOOLEAN, 8, NULL, 0x40,
21685         NULL, HFILL }},
21686     { &hf_gsm_map_om_MME_InterfaceList_s6a,
21687       { "s6a", "gsm_map.om.s6a",
21688         FT_BOOLEAN, 8, NULL, 0x20,
21689         NULL, HFILL }},
21690     { &hf_gsm_map_om_MME_InterfaceList_s10,
21691       { "s10", "gsm_map.om.s10",
21692         FT_BOOLEAN, 8, NULL, 0x10,
21693         NULL, HFILL }},
21694     { &hf_gsm_map_om_MME_InterfaceList_s11,
21695       { "s11", "gsm_map.om.s11",
21696         FT_BOOLEAN, 8, NULL, 0x08,
21697         NULL, HFILL }},
21698     { &hf_gsm_map_om_SGW_InterfaceList_s4,
21699       { "s4", "gsm_map.om.s4",
21700         FT_BOOLEAN, 8, NULL, 0x80,
21701         NULL, HFILL }},
21702     { &hf_gsm_map_om_SGW_InterfaceList_s5,
21703       { "s5", "gsm_map.om.s5",
21704         FT_BOOLEAN, 8, NULL, 0x40,
21705         NULL, HFILL }},
21706     { &hf_gsm_map_om_SGW_InterfaceList_s8b,
21707       { "s8b", "gsm_map.om.s8b",
21708         FT_BOOLEAN, 8, NULL, 0x20,
21709         NULL, HFILL }},
21710     { &hf_gsm_map_om_SGW_InterfaceList_s11,
21711       { "s11", "gsm_map.om.s11",
21712         FT_BOOLEAN, 8, NULL, 0x10,
21713         NULL, HFILL }},
21714     { &hf_gsm_map_om_SGW_InterfaceList_gxc,
21715       { "gxc", "gsm_map.om.gxc",
21716         FT_BOOLEAN, 8, NULL, 0x08,
21717         NULL, HFILL }},
21718     { &hf_gsm_map_om_PGW_InterfaceList_s2a,
21719       { "s2a", "gsm_map.om.s2a",
21720         FT_BOOLEAN, 8, NULL, 0x80,
21721         NULL, HFILL }},
21722     { &hf_gsm_map_om_PGW_InterfaceList_s2b,
21723       { "s2b", "gsm_map.om.s2b",
21724         FT_BOOLEAN, 8, NULL, 0x40,
21725         NULL, HFILL }},
21726     { &hf_gsm_map_om_PGW_InterfaceList_s2c,
21727       { "s2c", "gsm_map.om.s2c",
21728         FT_BOOLEAN, 8, NULL, 0x20,
21729         NULL, HFILL }},
21730     { &hf_gsm_map_om_PGW_InterfaceList_s5,
21731       { "s5", "gsm_map.om.s5",
21732         FT_BOOLEAN, 8, NULL, 0x10,
21733         NULL, HFILL }},
21734     { &hf_gsm_map_om_PGW_InterfaceList_s6b,
21735       { "s6b", "gsm_map.om.s6b",
21736         FT_BOOLEAN, 8, NULL, 0x08,
21737         NULL, HFILL }},
21738     { &hf_gsm_map_om_PGW_InterfaceList_gx,
21739       { "gx", "gsm_map.om.gx",
21740         FT_BOOLEAN, 8, NULL, 0x04,
21741         NULL, HFILL }},
21742     { &hf_gsm_map_om_PGW_InterfaceList_s8b,
21743       { "s8b", "gsm_map.om.s8b",
21744         FT_BOOLEAN, 8, NULL, 0x02,
21745         NULL, HFILL }},
21746     { &hf_gsm_map_om_PGW_InterfaceList_sgi,
21747       { "sgi", "gsm_map.om.sgi",
21748         FT_BOOLEAN, 8, NULL, 0x01,
21749         NULL, HFILL }},
21750     { &hf_gsm_map_om_ENB_InterfaceList_s1_mme,
21751       { "s1-mme", "gsm_map.om.s1-mme",
21752         FT_BOOLEAN, 8, NULL, 0x80,
21753         NULL, HFILL }},
21754     { &hf_gsm_map_om_ENB_InterfaceList_x2,
21755       { "x2", "gsm_map.om.x2",
21756         FT_BOOLEAN, 8, NULL, 0x40,
21757         NULL, HFILL }},
21758     { &hf_gsm_map_om_ENB_InterfaceList_uu,
21759       { "uu", "gsm_map.om.uu",
21760         FT_BOOLEAN, 8, NULL, 0x20,
21761         NULL, HFILL }},
21762     { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall,
21763       { "mo-mtCall", "gsm_map.om.mo-mtCall",
21764         FT_BOOLEAN, 8, NULL, 0x80,
21765         NULL, HFILL }},
21766     { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms,
21767       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
21768         FT_BOOLEAN, 8, NULL, 0x40,
21769         NULL, HFILL }},
21770     { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach,
21771       { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach",
21772         FT_BOOLEAN, 8, NULL, 0x20,
21773         NULL, HFILL }},
21774     { &hf_gsm_map_om_MSC_S_EventList_handovers,
21775       { "handovers", "gsm_map.om.handovers",
21776         FT_BOOLEAN, 8, NULL, 0x10,
21777         NULL, HFILL }},
21778     { &hf_gsm_map_om_MSC_S_EventList_ss,
21779       { "ss", "gsm_map.om.ss",
21780         FT_BOOLEAN, 8, NULL, 0x08,
21781         NULL, HFILL }},
21782     { &hf_gsm_map_om_MGW_EventList_context,
21783       { "context", "gsm_map.om.context",
21784         FT_BOOLEAN, 8, NULL, 0x80,
21785         NULL, HFILL }},
21786     { &hf_gsm_map_om_SGSN_EventList_pdpContext,
21787       { "pdpContext", "gsm_map.om.pdpContext",
21788         FT_BOOLEAN, 8, NULL, 0x80,
21789         NULL, HFILL }},
21790     { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms,
21791       { "mo-mt-sms", "gsm_map.om.mo-mt-sms",
21792         FT_BOOLEAN, 8, NULL, 0x40,
21793         NULL, HFILL }},
21794     { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach,
21795       { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach",
21796         FT_BOOLEAN, 8, NULL, 0x20,
21797         NULL, HFILL }},
21798     { &hf_gsm_map_om_SGSN_EventList_mbmsContext,
21799       { "mbmsContext", "gsm_map.om.mbmsContext",
21800         FT_BOOLEAN, 8, NULL, 0x10,
21801         NULL, HFILL }},
21802     { &hf_gsm_map_om_GGSN_EventList_pdpContext,
21803       { "pdpContext", "gsm_map.om.pdpContext",
21804         FT_BOOLEAN, 8, NULL, 0x80,
21805         NULL, HFILL }},
21806     { &hf_gsm_map_om_GGSN_EventList_mbmsContext,
21807       { "mbmsContext", "gsm_map.om.mbmsContext",
21808         FT_BOOLEAN, 8, NULL, 0x40,
21809         NULL, HFILL }},
21810     { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation,
21811       { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation",
21812         FT_BOOLEAN, 8, NULL, 0x80,
21813         NULL, HFILL }},
21814     { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest,
21815       { "ue-initiatedPDNconectivityRequest", "gsm_map.om.ue-initiatedPDNconectivityRequest",
21816         FT_BOOLEAN, 8, NULL, 0x80,
21817         NULL, HFILL }},
21818     { &hf_gsm_map_om_MME_EventList_serviceRequestts,
21819       { "serviceRequestts", "gsm_map.om.serviceRequestts",
21820         FT_BOOLEAN, 8, NULL, 0x40,
21821         NULL, HFILL }},
21822     { &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach,
21823       { "initialAttachTrackingAreaUpdateDetach", "gsm_map.om.initialAttachTrackingAreaUpdateDetach",
21824         FT_BOOLEAN, 8, NULL, 0x20,
21825         NULL, HFILL }},
21826     { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection,
21827       { "ue-initiatedPDNdisconnection", "gsm_map.om.ue-initiatedPDNdisconnection",
21828         FT_BOOLEAN, 8, NULL, 0x10,
21829         NULL, HFILL }},
21830     { &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion,
21831       { "bearerActivationModificationDeletion", "gsm_map.om.bearerActivationModificationDeletion",
21832         FT_BOOLEAN, 8, NULL, 0x08,
21833         NULL, HFILL }},
21834     { &hf_gsm_map_om_MME_EventList_handover,
21835       { "handover", "gsm_map.om.handover",
21836         FT_BOOLEAN, 8, NULL, 0x04,
21837         NULL, HFILL }},
21838     { &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation,
21839       { "pdn-connectionCreation", "gsm_map.om.pdn-connectionCreation",
21840         FT_BOOLEAN, 8, NULL, 0x80,
21841         NULL, HFILL }},
21842     { &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination,
21843       { "pdn-connectionTermination", "gsm_map.om.pdn-connectionTermination",
21844         FT_BOOLEAN, 8, NULL, 0x40,
21845         NULL, HFILL }},
21846     { &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion,
21847       { "bearerActivationModificationDeletion", "gsm_map.om.bearerActivationModificationDeletion",
21848         FT_BOOLEAN, 8, NULL, 0x20,
21849         NULL, HFILL }},
21850     { &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation,
21851       { "pdn-connectionCreation", "gsm_map.om.pdn-connectionCreation",
21852         FT_BOOLEAN, 8, NULL, 0x80,
21853         NULL, HFILL }},
21854     { &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination,
21855       { "pdn-connectionTermination", "gsm_map.om.pdn-connectionTermination",
21856         FT_BOOLEAN, 8, NULL, 0x40,
21857         NULL, HFILL }},
21858     { &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion,
21859       { "bearerActivationModificationDeletion", "gsm_map.om.bearerActivationModificationDeletion",
21860         FT_BOOLEAN, 8, NULL, 0x20,
21861         NULL, HFILL }},
21862
21863 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
21864
21865     { &hf_gsm_map_ms_imsi,
21866       { "imsi", "gsm_map.ms.imsi",
21867         FT_BYTES, BASE_NONE, NULL, 0,
21868         NULL, HFILL }},
21869     { &hf_gsm_map_ms_msc_Number,
21870       { "msc-Number", "gsm_map.ms.msc_Number",
21871         FT_BYTES, BASE_NONE, NULL, 0,
21872         "ISDN_AddressString", HFILL }},
21873     { &hf_gsm_map_ms_vlr_Number,
21874       { "vlr-Number", "gsm_map.ms.vlr_Number",
21875         FT_BYTES, BASE_NONE, NULL, 0,
21876         "ISDN_AddressString", HFILL }},
21877     { &hf_gsm_map_ms_lmsi,
21878       { "lmsi", "gsm_map.ms.lmsi",
21879         FT_BYTES, BASE_NONE, NULL, 0,
21880         NULL, HFILL }},
21881     { &hf_gsm_map_ms_extensionContainer,
21882       { "extensionContainer", "gsm_map.ms.extensionContainer_element",
21883         FT_NONE, BASE_NONE, NULL, 0,
21884         NULL, HFILL }},
21885     { &hf_gsm_map_ms_vlr_Capability,
21886       { "vlr-Capability", "gsm_map.ms.vlr_Capability_element",
21887         FT_NONE, BASE_NONE, NULL, 0,
21888         NULL, HFILL }},
21889     { &hf_gsm_map_ms_informPreviousNetworkEntity,
21890       { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity_element",
21891         FT_NONE, BASE_NONE, NULL, 0,
21892         NULL, HFILL }},
21893     { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE,
21894       { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE_element",
21895         FT_NONE, BASE_NONE, NULL, 0,
21896         NULL, HFILL }},
21897     { &hf_gsm_map_ms_v_gmlc_Address,
21898       { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address",
21899         FT_BYTES, BASE_NONE, NULL, 0,
21900         "GSN_Address", HFILL }},
21901     { &hf_gsm_map_ms_add_info,
21902       { "add-info", "gsm_map.ms.add_info_element",
21903         FT_NONE, BASE_NONE, NULL, 0,
21904         NULL, HFILL }},
21905     { &hf_gsm_map_ms_pagingArea,
21906       { "pagingArea", "gsm_map.ms.pagingArea",
21907         FT_UINT32, BASE_DEC, NULL, 0,
21908         NULL, HFILL }},
21909     { &hf_gsm_map_ms_skipSubscriberDataUpdate,
21910       { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate_element",
21911         FT_NONE, BASE_NONE, NULL, 0,
21912         NULL, HFILL }},
21913     { &hf_gsm_map_ms_restorationIndicator,
21914       { "restorationIndicator", "gsm_map.ms.restorationIndicator_element",
21915         FT_NONE, BASE_NONE, NULL, 0,
21916         NULL, HFILL }},
21917     { &hf_gsm_map_ms_eplmn_List,
21918       { "eplmn-List", "gsm_map.ms.eplmn_List",
21919         FT_UINT32, BASE_DEC, NULL, 0,
21920         NULL, HFILL }},
21921     { &hf_gsm_map_ms_mme_DiameterAddress,
21922       { "mme-DiameterAddress", "gsm_map.ms.mme_DiameterAddress_element",
21923         FT_NONE, BASE_NONE, NULL, 0,
21924         "NetworkNodeDiameterAddress", HFILL }},
21925     { &hf_gsm_map_ms_supportedCamelPhases,
21926       { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases",
21927         FT_BYTES, BASE_NONE, NULL, 0,
21928         NULL, HFILL }},
21929     { &hf_gsm_map_ms_solsaSupportIndicator,
21930       { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator_element",
21931         FT_NONE, BASE_NONE, NULL, 0,
21932         NULL, HFILL }},
21933     { &hf_gsm_map_ms_istSupportIndicator,
21934       { "istSupportIndicator", "gsm_map.ms.istSupportIndicator",
21935         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
21936         "IST_SupportIndicator", HFILL }},
21937     { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity,
21938       { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity",
21939         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0,
21940         "SuperChargerInfo", HFILL }},
21941     { &hf_gsm_map_ms_longFTN_Supported,
21942       { "longFTN-Supported", "gsm_map.ms.longFTN_Supported_element",
21943         FT_NONE, BASE_NONE, NULL, 0,
21944         NULL, HFILL }},
21945     { &hf_gsm_map_ms_supportedLCS_CapabilitySets,
21946       { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets",
21947         FT_BYTES, BASE_NONE, NULL, 0,
21948         NULL, HFILL }},
21949     { &hf_gsm_map_ms_offeredCamel4CSIs,
21950       { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs",
21951         FT_BYTES, BASE_NONE, NULL, 0,
21952         NULL, HFILL }},
21953     { &hf_gsm_map_ms_supportedRAT_TypesIndicator,
21954       { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator",
21955         FT_BYTES, BASE_NONE, NULL, 0,
21956         "SupportedRAT_Types", HFILL }},
21957     { &hf_gsm_map_ms_longGroupID_Supported,
21958       { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported_element",
21959         FT_NONE, BASE_NONE, NULL, 0,
21960         NULL, HFILL }},
21961     { &hf_gsm_map_ms_mtRoamingForwardingSupported,
21962       { "mtRoamingForwardingSupported", "gsm_map.ms.mtRoamingForwardingSupported_element",
21963         FT_NONE, BASE_NONE, NULL, 0,
21964         NULL, HFILL }},
21965     { &hf_gsm_map_ms_msisdn_lessOperation_Supported,
21966       { "msisdn-lessOperation-Supported", "gsm_map.ms.msisdn_lessOperation_Supported_element",
21967         FT_NONE, BASE_NONE, NULL, 0,
21968         NULL, HFILL }},
21969     { &hf_gsm_map_ms_sendSubscriberData,
21970       { "sendSubscriberData", "gsm_map.ms.sendSubscriberData_element",
21971         FT_NONE, BASE_NONE, NULL, 0,
21972         NULL, HFILL }},
21973     { &hf_gsm_map_ms_subscriberDataStored,
21974       { "subscriberDataStored", "gsm_map.ms.subscriberDataStored",
21975         FT_BYTES, BASE_NONE, NULL, 0,
21976         "AgeIndicator", HFILL }},
21977     { &hf_gsm_map_ms_hlr_Number,
21978       { "hlr-Number", "gsm_map.ms.hlr_Number",
21979         FT_BYTES, BASE_NONE, NULL, 0,
21980         "ISDN_AddressString", HFILL }},
21981     { &hf_gsm_map_ms_add_Capability,
21982       { "add-Capability", "gsm_map.ms.add_Capability_element",
21983         FT_NONE, BASE_NONE, NULL, 0,
21984         NULL, HFILL }},
21985     { &hf_gsm_map_ms_pagingArea_Capability,
21986       { "pagingArea-Capability", "gsm_map.ms.pagingArea_Capability_element",
21987         FT_NONE, BASE_NONE, NULL, 0,
21988         NULL, HFILL }},
21989     { &hf_gsm_map_ms_imeisv,
21990       { "imeisv", "gsm_map.ms.imeisv",
21991         FT_BYTES, BASE_NONE, NULL, 0,
21992         "IMEI", HFILL }},
21993     { &hf_gsm_map_ms_PagingArea_item,
21994       { "LocationArea", "gsm_map.ms.LocationArea",
21995         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LocationArea_vals), 0,
21996         NULL, HFILL }},
21997     { &hf_gsm_map_ms_laiFixedLength,
21998       { "laiFixedLength", "gsm_map.ms.laiFixedLength",
21999         FT_BYTES, BASE_NONE, NULL, 0,
22000         NULL, HFILL }},
22001     { &hf_gsm_map_ms_lac,
22002       { "lac", "gsm_map.ms.lac",
22003         FT_BYTES, BASE_NONE, NULL, 0,
22004         NULL, HFILL }},
22005     { &hf_gsm_map_ms_identity,
22006       { "identity", "gsm_map.ms.identity",
22007         FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
22008         NULL, HFILL }},
22009     { &hf_gsm_map_ms_cancellationType,
22010       { "cancellationType", "gsm_map.ms.cancellationType",
22011         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0,
22012         NULL, HFILL }},
22013     { &hf_gsm_map_ms_typeOfUpdate,
22014       { "typeOfUpdate", "gsm_map.ms.typeOfUpdate",
22015         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_TypeOfUpdate_vals), 0,
22016         NULL, HFILL }},
22017     { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized,
22018       { "mtrf-SupportedAndAuthorized", "gsm_map.ms.mtrf_SupportedAndAuthorized_element",
22019         FT_NONE, BASE_NONE, NULL, 0,
22020         NULL, HFILL }},
22021     { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized,
22022       { "mtrf-SupportedAndNotAuthorized", "gsm_map.ms.mtrf_SupportedAndNotAuthorized_element",
22023         FT_NONE, BASE_NONE, NULL, 0,
22024         NULL, HFILL }},
22025     { &hf_gsm_map_ms_newMSC_Number,
22026       { "newMSC-Number", "gsm_map.ms.newMSC_Number",
22027         FT_BYTES, BASE_NONE, NULL, 0,
22028         "ISDN_AddressString", HFILL }},
22029     { &hf_gsm_map_ms_newVLR_Number,
22030       { "newVLR-Number", "gsm_map.ms.newVLR_Number",
22031         FT_BYTES, BASE_NONE, NULL, 0,
22032         "ISDN_AddressString", HFILL }},
22033     { &hf_gsm_map_ms_new_lmsi,
22034       { "new-lmsi", "gsm_map.ms.new_lmsi",
22035         FT_BYTES, BASE_NONE, NULL, 0,
22036         "LMSI", HFILL }},
22037     { &hf_gsm_map_ms_sgsn_Number,
22038       { "sgsn-Number", "gsm_map.ms.sgsn_Number",
22039         FT_BYTES, BASE_NONE, NULL, 0,
22040         "ISDN_AddressString", HFILL }},
22041     { &hf_gsm_map_ms_freezeTMSI,
22042       { "freezeTMSI", "gsm_map.ms.freezeTMSI_element",
22043         FT_NONE, BASE_NONE, NULL, 0,
22044         NULL, HFILL }},
22045     { &hf_gsm_map_ms_freezeP_TMSI,
22046       { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI_element",
22047         FT_NONE, BASE_NONE, NULL, 0,
22048         NULL, HFILL }},
22049     { &hf_gsm_map_ms_freezeM_TMSI,
22050       { "freezeM-TMSI", "gsm_map.ms.freezeM_TMSI_element",
22051         FT_NONE, BASE_NONE, NULL, 0,
22052         NULL, HFILL }},
22053     { &hf_gsm_map_ms_tmsi,
22054       { "tmsi", "gsm_map.ms.tmsi",
22055         FT_BYTES, BASE_NONE, NULL, 0,
22056         NULL, HFILL }},
22057     { &hf_gsm_map_ms_numberOfRequestedVectors,
22058       { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors",
22059         FT_UINT32, BASE_DEC, NULL, 0,
22060         NULL, HFILL }},
22061     { &hf_gsm_map_ms_segmentationProhibited,
22062       { "segmentationProhibited", "gsm_map.ms.segmentationProhibited_element",
22063         FT_NONE, BASE_NONE, NULL, 0,
22064         NULL, HFILL }},
22065     { &hf_gsm_map_ms_previous_LAI,
22066       { "previous-LAI", "gsm_map.ms.previous_LAI",
22067         FT_BYTES, BASE_NONE, NULL, 0,
22068         "LAIFixedLength", HFILL }},
22069     { &hf_gsm_map_ms_hopCounter,
22070       { "hopCounter", "gsm_map.ms.hopCounter",
22071         FT_UINT32, BASE_DEC, NULL, 0,
22072         NULL, HFILL }},
22073     { &hf_gsm_map_ms_authenticationSetList,
22074       { "authenticationSetList", "gsm_map.ms.authenticationSetList",
22075         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0,
22076         NULL, HFILL }},
22077     { &hf_gsm_map_ms_currentSecurityContext,
22078       { "currentSecurityContext", "gsm_map.ms.currentSecurityContext",
22079         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0,
22080         NULL, HFILL }},
22081     { &hf_gsm_map_ms_tripletList,
22082       { "tripletList", "gsm_map.ms.tripletList",
22083         FT_UINT32, BASE_DEC, NULL, 0,
22084         NULL, HFILL }},
22085     { &hf_gsm_map_ms_quintupletList,
22086       { "quintupletList", "gsm_map.ms.quintupletList",
22087         FT_UINT32, BASE_DEC, NULL, 0,
22088         NULL, HFILL }},
22089     { &hf_gsm_map_ms_TripletList_item,
22090       { "AuthenticationTriplet", "gsm_map.ms.AuthenticationTriplet_element",
22091         FT_NONE, BASE_NONE, NULL, 0,
22092         NULL, HFILL }},
22093     { &hf_gsm_map_ms_QuintupletList_item,
22094       { "AuthenticationQuintuplet", "gsm_map.ms.AuthenticationQuintuplet_element",
22095         FT_NONE, BASE_NONE, NULL, 0,
22096         NULL, HFILL }},
22097     { &hf_gsm_map_ms_rand,
22098       { "rand", "gsm_map.ms.rand",
22099         FT_BYTES, BASE_NONE, NULL, 0,
22100         NULL, HFILL }},
22101     { &hf_gsm_map_ms_sres,
22102       { "sres", "gsm_map.ms.sres",
22103         FT_BYTES, BASE_NONE, NULL, 0,
22104         NULL, HFILL }},
22105     { &hf_gsm_map_ms_kc,
22106       { "kc", "gsm_map.ms.kc",
22107         FT_BYTES, BASE_NONE, NULL, 0,
22108         NULL, HFILL }},
22109     { &hf_gsm_map_ms_xres,
22110       { "xres", "gsm_map.ms.xres",
22111         FT_BYTES, BASE_NONE, NULL, 0,
22112         NULL, HFILL }},
22113     { &hf_gsm_map_ms_ck,
22114       { "ck", "gsm_map.ms.ck",
22115         FT_BYTES, BASE_NONE, NULL, 0,
22116         NULL, HFILL }},
22117     { &hf_gsm_map_ms_ik,
22118       { "ik", "gsm_map.ms.ik",
22119         FT_BYTES, BASE_NONE, NULL, 0,
22120         NULL, HFILL }},
22121     { &hf_gsm_map_ms_autn,
22122       { "autn", "gsm_map.ms.autn",
22123         FT_BYTES, BASE_NONE, NULL, 0,
22124         NULL, HFILL }},
22125     { &hf_gsm_map_ms_gsm_SecurityContextData,
22126       { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData_element",
22127         FT_NONE, BASE_NONE, NULL, 0,
22128         NULL, HFILL }},
22129     { &hf_gsm_map_ms_umts_SecurityContextData,
22130       { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData_element",
22131         FT_NONE, BASE_NONE, NULL, 0,
22132         NULL, HFILL }},
22133     { &hf_gsm_map_ms_cksn,
22134       { "cksn", "gsm_map.ms.cksn",
22135         FT_BYTES, BASE_NONE, NULL, 0,
22136         NULL, HFILL }},
22137     { &hf_gsm_map_ms_ksi,
22138       { "ksi", "gsm_map.ms.ksi",
22139         FT_BYTES, BASE_NONE, NULL, 0,
22140         NULL, HFILL }},
22141     { &hf_gsm_map_ms_failureCause,
22142       { "failureCause", "gsm_map.ms.failureCause",
22143         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0,
22144         NULL, HFILL }},
22145     { &hf_gsm_map_ms_re_attempt,
22146       { "re-attempt", "gsm_map.ms.re_attempt",
22147         FT_BOOLEAN, BASE_NONE, NULL, 0,
22148         "BOOLEAN", HFILL }},
22149     { &hf_gsm_map_ms_accessType,
22150       { "accessType", "gsm_map.ms.accessType",
22151         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0,
22152         NULL, HFILL }},
22153     { &hf_gsm_map_ms_sgsn_Address,
22154       { "sgsn-Address", "gsm_map.ms.sgsn_Address",
22155         FT_BYTES, BASE_NONE, NULL, 0,
22156         "GSN_Address", HFILL }},
22157     { &hf_gsm_map_ms_sgsn_Capability,
22158       { "sgsn-Capability", "gsm_map.ms.sgsn_Capability_element",
22159         FT_NONE, BASE_NONE, NULL, 0,
22160         NULL, HFILL }},
22161     { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE,
22162       { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE_element",
22163         FT_NONE, BASE_NONE, NULL, 0,
22164         NULL, HFILL }},
22165     { &hf_gsm_map_ms_eps_info,
22166       { "eps-info", "gsm_map.ms.eps_info",
22167         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_Info_vals), 0,
22168         NULL, HFILL }},
22169     { &hf_gsm_map_ms_servingNodeTypeIndicator,
22170       { "servingNodeTypeIndicator", "gsm_map.ms.servingNodeTypeIndicator_element",
22171         FT_NONE, BASE_NONE, NULL, 0,
22172         NULL, HFILL }},
22173     { &hf_gsm_map_ms_usedRAT_Type,
22174       { "usedRAT-Type", "gsm_map.ms.usedRAT_Type",
22175         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
22176         "Used_RAT_Type", HFILL }},
22177     { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded,
22178       { "gprsSubscriptionDataNotNeeded", "gsm_map.ms.gprsSubscriptionDataNotNeeded_element",
22179         FT_NONE, BASE_NONE, NULL, 0,
22180         NULL, HFILL }},
22181     { &hf_gsm_map_ms_nodeTypeIndicator,
22182       { "nodeTypeIndicator", "gsm_map.ms.nodeTypeIndicator_element",
22183         FT_NONE, BASE_NONE, NULL, 0,
22184         NULL, HFILL }},
22185     { &hf_gsm_map_ms_areaRestricted,
22186       { "areaRestricted", "gsm_map.ms.areaRestricted_element",
22187         FT_NONE, BASE_NONE, NULL, 0,
22188         NULL, HFILL }},
22189     { &hf_gsm_map_ms_ue_reachableIndicator,
22190       { "ue-reachableIndicator", "gsm_map.ms.ue_reachableIndicator_element",
22191         FT_NONE, BASE_NONE, NULL, 0,
22192         NULL, HFILL }},
22193     { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded,
22194       { "epsSubscriptionDataNotNeeded", "gsm_map.ms.epsSubscriptionDataNotNeeded_element",
22195         FT_NONE, BASE_NONE, NULL, 0,
22196         NULL, HFILL }},
22197     { &hf_gsm_map_ms_ue_srvcc_Capability,
22198       { "ue-srvcc-Capability", "gsm_map.ms.ue_srvcc_Capability",
22199         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_UE_SRVCC_Capability_vals), 0,
22200         NULL, HFILL }},
22201     { &hf_gsm_map_ms_mmeNumberforMTSMS,
22202       { "mmeNumberforMTSMS", "gsm_map.ms.mmeNumberforMTSMS",
22203         FT_BYTES, BASE_NONE, NULL, 0,
22204         "ISDN_AddressString", HFILL }},
22205     { &hf_gsm_map_ms_smsRegisterRequest,
22206       { "smsRegisterRequest", "gsm_map.ms.smsRegisterRequest",
22207         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMSRegisterRequest_vals), 0,
22208         NULL, HFILL }},
22209     { &hf_gsm_map_ms_sms_Only,
22210       { "sms-Only", "gsm_map.ms.sms_Only_element",
22211         FT_NONE, BASE_NONE, NULL, 0,
22212         NULL, HFILL }},
22213     { &hf_gsm_map_ms_pdn_gw_update,
22214       { "pdn-gw-update", "gsm_map.ms.pdn_gw_update_element",
22215         FT_NONE, BASE_NONE, NULL, 0,
22216         NULL, HFILL }},
22217     { &hf_gsm_map_ms_isr_Information,
22218       { "isr-Information", "gsm_map.ms.isr_Information",
22219         FT_BYTES, BASE_NONE, NULL, 0,
22220         NULL, HFILL }},
22221     { &hf_gsm_map_ms_apn,
22222       { "apn", "gsm_map.ms.apn",
22223         FT_BYTES, BASE_NONE, NULL, 0,
22224         NULL, HFILL }},
22225     { &hf_gsm_map_ms_pdn_gw_Identity,
22226       { "pdn-gw-Identity", "gsm_map.ms.pdn_gw_Identity_element",
22227         FT_NONE, BASE_NONE, NULL, 0,
22228         NULL, HFILL }},
22229     { &hf_gsm_map_ms_contextId,
22230       { "contextId", "gsm_map.ms.contextId",
22231         FT_UINT32, BASE_DEC, NULL, 0,
22232         NULL, HFILL }},
22233     { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator,
22234       { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator_element",
22235         FT_NONE, BASE_NONE, NULL, 0,
22236         NULL, HFILL }},
22237     { &hf_gsm_map_ms_smsCallBarringSupportIndicator,
22238       { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator_element",
22239         FT_NONE, BASE_NONE, NULL, 0,
22240         NULL, HFILL }},
22241     { &hf_gsm_map_ms_supportedFeatures,
22242       { "supportedFeatures", "gsm_map.ms.supportedFeatures",
22243         FT_BYTES, BASE_NONE, NULL, 0,
22244         NULL, HFILL }},
22245     { &hf_gsm_map_ms_t_adsDataRetrieval,
22246       { "t-adsDataRetrieval", "gsm_map.ms.t_adsDataRetrieval_element",
22247         FT_NONE, BASE_NONE, NULL, 0,
22248         NULL, HFILL }},
22249     { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions,
22250       { "homogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.homogeneousSupportOfIMSVoiceOverPSSessions",
22251         FT_BOOLEAN, BASE_NONE, NULL, 0,
22252         "BOOLEAN", HFILL }},
22253     { &hf_gsm_map_ms_cancellationTypeInitialAttach,
22254       { "cancellationTypeInitialAttach", "gsm_map.ms.cancellationTypeInitialAttach_element",
22255         FT_NONE, BASE_NONE, NULL, 0,
22256         NULL, HFILL }},
22257     { &hf_gsm_map_ms_additionalMsisdnSupport,
22258       { "additionalMsisdnSupport", "gsm_map.ms.additionalMsisdnSupport_element",
22259         FT_NONE, BASE_NONE, NULL, 0,
22260         NULL, HFILL }},
22261     { &hf_gsm_map_ms_sgsn_mmeSeparationSupported,
22262       { "sgsn-mmeSeparationSupported", "gsm_map.ms.sgsn_mmeSeparationSupported_element",
22263         FT_NONE, BASE_NONE, NULL, 0,
22264         NULL, HFILL }},
22265     { &hf_gsm_map_ms_mmeRegisteredforSMS,
22266       { "mmeRegisteredforSMS", "gsm_map.ms.mmeRegisteredforSMS_element",
22267         FT_NONE, BASE_NONE, NULL, 0,
22268         NULL, HFILL }},
22269     { &hf_gsm_map_ms_EPLMN_List_item,
22270       { "PLMN-Id", "gsm_map.ms.PLMN_Id",
22271         FT_BYTES, BASE_NONE, NULL, 0,
22272         NULL, HFILL }},
22273     { &hf_gsm_map_ms_an_APDU,
22274       { "an-APDU", "gsm_map.ms.an_APDU_element",
22275         FT_NONE, BASE_NONE, NULL, 0,
22276         "AccessNetworkSignalInfo", HFILL }},
22277     { &hf_gsm_map_ms_integrityProtectionInfo,
22278       { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo",
22279         FT_BYTES, BASE_NONE, NULL, 0,
22280         "IntegrityProtectionInformation", HFILL }},
22281     { &hf_gsm_map_ms_encryptionInfo,
22282       { "encryptionInfo", "gsm_map.ms.encryptionInfo",
22283         FT_BYTES, BASE_NONE, NULL, 0,
22284         "EncryptionInformation", HFILL }},
22285     { &hf_gsm_map_ms_keyStatus,
22286       { "keyStatus", "gsm_map.ms.keyStatus",
22287         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0,
22288         NULL, HFILL }},
22289     { &hf_gsm_map_ms_allowedGSM_Algorithms,
22290       { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms",
22291         FT_BYTES, BASE_NONE, NULL, 0,
22292         NULL, HFILL }},
22293     { &hf_gsm_map_ms_allowedUMTS_Algorithms,
22294       { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms_element",
22295         FT_NONE, BASE_NONE, NULL, 0,
22296         NULL, HFILL }},
22297     { &hf_gsm_map_ms_radioResourceInformation,
22298       { "radioResourceInformation", "gsm_map.ms.radioResourceInformation",
22299         FT_BYTES, BASE_NONE, NULL, 0,
22300         NULL, HFILL }},
22301     { &hf_gsm_map_ms_radioResourceList,
22302       { "radioResourceList", "gsm_map.ms.radioResourceList",
22303         FT_UINT32, BASE_DEC, NULL, 0,
22304         NULL, HFILL }},
22305     { &hf_gsm_map_ms_bssmap_ServiceHandover,
22306       { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover",
22307         FT_BYTES, BASE_NONE, NULL, 0,
22308         NULL, HFILL }},
22309     { &hf_gsm_map_ms_ranap_ServiceHandover,
22310       { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover",
22311         FT_BYTES, BASE_NONE, NULL, 0,
22312         NULL, HFILL }},
22313     { &hf_gsm_map_ms_bssmap_ServiceHandoverList,
22314       { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList",
22315         FT_UINT32, BASE_DEC, NULL, 0,
22316         NULL, HFILL }},
22317     { &hf_gsm_map_ms_currentlyUsedCodec,
22318       { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec",
22319         FT_BYTES, BASE_NONE, NULL, 0,
22320         "Codec", HFILL }},
22321     { &hf_gsm_map_ms_iuSupportedCodecsList,
22322       { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList_element",
22323         FT_NONE, BASE_NONE, NULL, 0,
22324         "SupportedCodecsList", HFILL }},
22325     { &hf_gsm_map_ms_rab_ConfigurationIndicator,
22326       { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator_element",
22327         FT_NONE, BASE_NONE, NULL, 0,
22328         NULL, HFILL }},
22329     { &hf_gsm_map_ms_iuSelectedCodec,
22330       { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec",
22331         FT_BYTES, BASE_NONE, NULL, 0,
22332         "Codec", HFILL }},
22333     { &hf_gsm_map_ms_alternativeChannelType,
22334       { "alternativeChannelType", "gsm_map.ms.alternativeChannelType",
22335         FT_BYTES, BASE_NONE, NULL, 0,
22336         "RadioResourceInformation", HFILL }},
22337     { &hf_gsm_map_ms_tracePropagationList,
22338       { "tracePropagationList", "gsm_map.ms.tracePropagationList_element",
22339         FT_NONE, BASE_NONE, NULL, 0,
22340         NULL, HFILL }},
22341     { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor,
22342       { "aoipSupportedCodecsListAnchor", "gsm_map.ms.aoipSupportedCodecsListAnchor_element",
22343         FT_NONE, BASE_NONE, NULL, 0,
22344         "AoIPCodecsList", HFILL }},
22345     { &hf_gsm_map_ms_aoipSelectedCodecTarget,
22346       { "aoipSelectedCodecTarget", "gsm_map.ms.aoipSelectedCodecTarget",
22347         FT_BYTES, BASE_NONE, NULL, 0,
22348         "AoIPCodec", HFILL }},
22349     { &hf_gsm_map_ms_integrityProtectionAlgorithms,
22350       { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms",
22351         FT_BYTES, BASE_NONE, NULL, 0,
22352         "PermittedIntegrityProtectionAlgorithms", HFILL }},
22353     { &hf_gsm_map_ms_encryptionAlgorithms,
22354       { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms",
22355         FT_BYTES, BASE_NONE, NULL, 0,
22356         "PermittedEncryptionAlgorithms", HFILL }},
22357     { &hf_gsm_map_ms_targetCellId,
22358       { "targetCellId", "gsm_map.ms.targetCellId",
22359         FT_BYTES, BASE_NONE, NULL, 0,
22360         "GlobalCellId", HFILL }},
22361     { &hf_gsm_map_ms_ho_NumberNotRequired,
22362       { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired_element",
22363         FT_NONE, BASE_NONE, NULL, 0,
22364         NULL, HFILL }},
22365     { &hf_gsm_map_ms_targetRNCId,
22366       { "targetRNCId", "gsm_map.ms.targetRNCId",
22367         FT_BYTES, BASE_NONE, NULL, 0,
22368         "RNCId", HFILL }},
22369     { &hf_gsm_map_ms_multipleBearerRequested,
22370       { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested_element",
22371         FT_NONE, BASE_NONE, NULL, 0,
22372         NULL, HFILL }},
22373     { &hf_gsm_map_ms_rab_Id,
22374       { "rab-Id", "gsm_map.ms.rab_Id",
22375         FT_UINT32, BASE_DEC, NULL, 0,
22376         NULL, HFILL }},
22377     { &hf_gsm_map_ms_asciCallReference,
22378       { "asciCallReference", "gsm_map.ms.asciCallReference",
22379         FT_BYTES, BASE_NONE, NULL, 0,
22380         "ASCI_CallReference", HFILL }},
22381     { &hf_gsm_map_ms_geran_classmark,
22382       { "geran-classmark", "gsm_map.ms.geran_classmark",
22383         FT_BYTES, BASE_NONE, NULL, 0,
22384         NULL, HFILL }},
22385     { &hf_gsm_map_ms_iuCurrentlyUsedCodec,
22386       { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec",
22387         FT_BYTES, BASE_NONE, NULL, 0,
22388         "Codec", HFILL }},
22389     { &hf_gsm_map_ms_uesbi_Iu,
22390       { "uesbi-Iu", "gsm_map.ms.uesbi_Iu_element",
22391         FT_NONE, BASE_NONE, NULL, 0,
22392         NULL, HFILL }},
22393     { &hf_gsm_map_ms_regionalSubscriptionData,
22394       { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData",
22395         FT_UINT32, BASE_DEC, NULL, 0,
22396         "ZoneCodeList", HFILL }},
22397     { &hf_gsm_map_ms_lclsGlobalCallReference,
22398       { "lclsGlobalCallReference", "gsm_map.ms.lclsGlobalCallReference",
22399         FT_BYTES, BASE_NONE, NULL, 0,
22400         "LCLS_GlobalCallReference", HFILL }},
22401     { &hf_gsm_map_ms_lcls_Negotiation,
22402       { "lcls-Negotiation", "gsm_map.ms.lcls_Negotiation",
22403         FT_BYTES, BASE_NONE, NULL, 0,
22404         NULL, HFILL }},
22405     { &hf_gsm_map_ms_lcls_Configuration_Preference,
22406       { "lcls-Configuration-Preference", "gsm_map.ms.lcls_Configuration_Preference",
22407         FT_BYTES, BASE_NONE, NULL, 0,
22408         "LCLS_ConfigurationPreference", HFILL }},
22409     { &hf_gsm_map_ms_csg_SubscriptionDataList,
22410       { "csg-SubscriptionDataList", "gsm_map.ms.csg_SubscriptionDataList",
22411         FT_UINT32, BASE_DEC, NULL, 0,
22412         NULL, HFILL }},
22413     { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item,
22414       { "BSSMAP-ServiceHandoverInfo", "gsm_map.ms.BSSMAP_ServiceHandoverInfo_element",
22415         FT_NONE, BASE_NONE, NULL, 0,
22416         NULL, HFILL }},
22417     { &hf_gsm_map_ms_RadioResourceList_item,
22418       { "RadioResource", "gsm_map.ms.RadioResource_element",
22419         FT_NONE, BASE_NONE, NULL, 0,
22420         NULL, HFILL }},
22421     { &hf_gsm_map_ms_handoverNumber,
22422       { "handoverNumber", "gsm_map.ms.handoverNumber",
22423         FT_BYTES, BASE_NONE, NULL, 0,
22424         "ISDN_AddressString", HFILL }},
22425     { &hf_gsm_map_ms_relocationNumberList,
22426       { "relocationNumberList", "gsm_map.ms.relocationNumberList",
22427         FT_UINT32, BASE_DEC, NULL, 0,
22428         NULL, HFILL }},
22429     { &hf_gsm_map_ms_multicallBearerInfo,
22430       { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo",
22431         FT_UINT32, BASE_DEC, NULL, 0,
22432         NULL, HFILL }},
22433     { &hf_gsm_map_ms_multipleBearerNotSupported,
22434       { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported_element",
22435         FT_NONE, BASE_NONE, NULL, 0,
22436         NULL, HFILL }},
22437     { &hf_gsm_map_ms_selectedUMTS_Algorithms,
22438       { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms_element",
22439         FT_NONE, BASE_NONE, NULL, 0,
22440         NULL, HFILL }},
22441     { &hf_gsm_map_ms_chosenRadioResourceInformation,
22442       { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation_element",
22443         FT_NONE, BASE_NONE, NULL, 0,
22444         NULL, HFILL }},
22445     { &hf_gsm_map_ms_iuAvailableCodecsList,
22446       { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList_element",
22447         FT_NONE, BASE_NONE, NULL, 0,
22448         "CodecList", HFILL }},
22449     { &hf_gsm_map_ms_aoipAvailableCodecsListMap,
22450       { "aoipAvailableCodecsListMap", "gsm_map.ms.aoipAvailableCodecsListMap_element",
22451         FT_NONE, BASE_NONE, NULL, 0,
22452         "AoIPCodecsList", HFILL }},
22453     { &hf_gsm_map_ms_integrityProtectionAlgorithm,
22454       { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm",
22455         FT_BYTES, BASE_NONE, NULL, 0,
22456         "ChosenIntegrityProtectionAlgorithm", HFILL }},
22457     { &hf_gsm_map_ms_encryptionAlgorithm,
22458       { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm",
22459         FT_BYTES, BASE_NONE, NULL, 0,
22460         "ChosenEncryptionAlgorithm", HFILL }},
22461     { &hf_gsm_map_ms_chosenChannelInfo,
22462       { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo",
22463         FT_BYTES, BASE_NONE, NULL, 0,
22464         NULL, HFILL }},
22465     { &hf_gsm_map_ms_chosenSpeechVersion,
22466       { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion",
22467         FT_BYTES, BASE_NONE, NULL, 0,
22468         NULL, HFILL }},
22469     { &hf_gsm_map_ms_targetMSC_Number,
22470       { "targetMSC-Number", "gsm_map.ms.targetMSC_Number",
22471         FT_BYTES, BASE_NONE, NULL, 0,
22472         "ISDN_AddressString", HFILL }},
22473     { &hf_gsm_map_ms_selectedRab_Id,
22474       { "selectedRab-Id", "gsm_map.ms.selectedRab_Id",
22475         FT_UINT32, BASE_DEC, NULL, 0,
22476         "RAB_Id", HFILL }},
22477     { &hf_gsm_map_ms_selectedGSM_Algorithm,
22478       { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm",
22479         FT_BYTES, BASE_NONE, NULL, 0,
22480         NULL, HFILL }},
22481     { &hf_gsm_map_ms_iUSelectedCodec,
22482       { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec",
22483         FT_BYTES, BASE_NONE, NULL, 0,
22484         "Codec", HFILL }},
22485     { &hf_gsm_map_ms_codec1,
22486       { "codec1", "gsm_map.ms.codec1",
22487         FT_BYTES, BASE_NONE, NULL, 0,
22488         "AoIPCodec", HFILL }},
22489     { &hf_gsm_map_ms_codec2,
22490       { "codec2", "gsm_map.ms.codec2",
22491         FT_BYTES, BASE_NONE, NULL, 0,
22492         "AoIPCodec", HFILL }},
22493     { &hf_gsm_map_ms_codec3,
22494       { "codec3", "gsm_map.ms.codec3",
22495         FT_BYTES, BASE_NONE, NULL, 0,
22496         "AoIPCodec", HFILL }},
22497     { &hf_gsm_map_ms_codec4,
22498       { "codec4", "gsm_map.ms.codec4",
22499         FT_BYTES, BASE_NONE, NULL, 0,
22500         "AoIPCodec", HFILL }},
22501     { &hf_gsm_map_ms_codec5,
22502       { "codec5", "gsm_map.ms.codec5",
22503         FT_BYTES, BASE_NONE, NULL, 0,
22504         "AoIPCodec", HFILL }},
22505     { &hf_gsm_map_ms_codec6,
22506       { "codec6", "gsm_map.ms.codec6",
22507         FT_BYTES, BASE_NONE, NULL, 0,
22508         "AoIPCodec", HFILL }},
22509     { &hf_gsm_map_ms_codec7,
22510       { "codec7", "gsm_map.ms.codec7",
22511         FT_BYTES, BASE_NONE, NULL, 0,
22512         "AoIPCodec", HFILL }},
22513     { &hf_gsm_map_ms_codec8,
22514       { "codec8", "gsm_map.ms.codec8",
22515         FT_BYTES, BASE_NONE, NULL, 0,
22516         "AoIPCodec", HFILL }},
22517     { &hf_gsm_map_ms_utranCodecList,
22518       { "utranCodecList", "gsm_map.ms.utranCodecList_element",
22519         FT_NONE, BASE_NONE, NULL, 0,
22520         "CodecList", HFILL }},
22521     { &hf_gsm_map_ms_geranCodecList,
22522       { "geranCodecList", "gsm_map.ms.geranCodecList_element",
22523         FT_NONE, BASE_NONE, NULL, 0,
22524         "CodecList", HFILL }},
22525     { &hf_gsm_map_ms_codec1_01,
22526       { "codec1", "gsm_map.ms.codec1",
22527         FT_BYTES, BASE_NONE, NULL, 0,
22528         "Codec", HFILL }},
22529     { &hf_gsm_map_ms_codec2_01,
22530       { "codec2", "gsm_map.ms.codec2",
22531         FT_BYTES, BASE_NONE, NULL, 0,
22532         "Codec", HFILL }},
22533     { &hf_gsm_map_ms_codec3_01,
22534       { "codec3", "gsm_map.ms.codec3",
22535         FT_BYTES, BASE_NONE, NULL, 0,
22536         "Codec", HFILL }},
22537     { &hf_gsm_map_ms_codec4_01,
22538       { "codec4", "gsm_map.ms.codec4",
22539         FT_BYTES, BASE_NONE, NULL, 0,
22540         "Codec", HFILL }},
22541     { &hf_gsm_map_ms_codec5_01,
22542       { "codec5", "gsm_map.ms.codec5",
22543         FT_BYTES, BASE_NONE, NULL, 0,
22544         "Codec", HFILL }},
22545     { &hf_gsm_map_ms_codec6_01,
22546       { "codec6", "gsm_map.ms.codec6",
22547         FT_BYTES, BASE_NONE, NULL, 0,
22548         "Codec", HFILL }},
22549     { &hf_gsm_map_ms_codec7_01,
22550       { "codec7", "gsm_map.ms.codec7",
22551         FT_BYTES, BASE_NONE, NULL, 0,
22552         "Codec", HFILL }},
22553     { &hf_gsm_map_ms_codec8_01,
22554       { "codec8", "gsm_map.ms.codec8",
22555         FT_BYTES, BASE_NONE, NULL, 0,
22556         "Codec", HFILL }},
22557     { &hf_gsm_map_ms_RelocationNumberList_item,
22558       { "RelocationNumber", "gsm_map.ms.RelocationNumber_element",
22559         FT_NONE, BASE_NONE, NULL, 0,
22560         NULL, HFILL }},
22561     { &hf_gsm_map_ms_immediateResponsePreferred,
22562       { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred_element",
22563         FT_NONE, BASE_NONE, NULL, 0,
22564         NULL, HFILL }},
22565     { &hf_gsm_map_ms_re_synchronisationInfo,
22566       { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo_element",
22567         FT_NONE, BASE_NONE, NULL, 0,
22568         NULL, HFILL }},
22569     { &hf_gsm_map_ms_requestingNodeType,
22570       { "requestingNodeType", "gsm_map.ms.requestingNodeType",
22571         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0,
22572         NULL, HFILL }},
22573     { &hf_gsm_map_ms_requestingPLMN_Id,
22574       { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id",
22575         FT_BYTES, BASE_NONE, NULL, 0,
22576         "PLMN_Id", HFILL }},
22577     { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors,
22578       { "numberOfRequestedAdditional-Vectors", "gsm_map.ms.numberOfRequestedAdditional_Vectors",
22579         FT_UINT32, BASE_DEC, NULL, 0,
22580         "NumberOfRequestedVectors", HFILL }},
22581     { &hf_gsm_map_ms_additionalVectorsAreForEPS,
22582       { "additionalVectorsAreForEPS", "gsm_map.ms.additionalVectorsAreForEPS_element",
22583         FT_NONE, BASE_NONE, NULL, 0,
22584         NULL, HFILL }},
22585     { &hf_gsm_map_ms_auts,
22586       { "auts", "gsm_map.ms.auts",
22587         FT_BYTES, BASE_NONE, NULL, 0,
22588         NULL, HFILL }},
22589     { &hf_gsm_map_ms_eps_AuthenticationSetList,
22590       { "eps-AuthenticationSetList", "gsm_map.ms.eps_AuthenticationSetList",
22591         FT_UINT32, BASE_DEC, NULL, 0,
22592         NULL, HFILL }},
22593     { &hf_gsm_map_ms_EPS_AuthenticationSetList_item,
22594       { "EPC-AV", "gsm_map.ms.EPC_AV_element",
22595         FT_NONE, BASE_NONE, NULL, 0,
22596         NULL, HFILL }},
22597     { &hf_gsm_map_ms_kasme,
22598       { "kasme", "gsm_map.ms.kasme",
22599         FT_BYTES, BASE_NONE, NULL, 0,
22600         NULL, HFILL }},
22601     { &hf_gsm_map_ms_imei,
22602       { "imei", "gsm_map.ms.imei",
22603         FT_BYTES, BASE_NONE, NULL, 0,
22604         NULL, HFILL }},
22605     { &hf_gsm_map_ms_requestedEquipmentInfo,
22606       { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo",
22607         FT_BYTES, BASE_NONE, NULL, 0,
22608         NULL, HFILL }},
22609     { &hf_gsm_map_ms_equipmentStatus,
22610       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
22611         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0,
22612         NULL, HFILL }},
22613     { &hf_gsm_map_ms_bmuef,
22614       { "bmuef", "gsm_map.ms.bmuef_element",
22615         FT_NONE, BASE_NONE, NULL, 0,
22616         "UESBI_Iu", HFILL }},
22617     { &hf_gsm_map_ms_uesbi_IuA,
22618       { "uesbi-IuA", "gsm_map.ms.uesbi_IuA",
22619         FT_BYTES, BASE_NONE, NULL, 0,
22620         NULL, HFILL }},
22621     { &hf_gsm_map_ms_uesbi_IuB,
22622       { "uesbi-IuB", "gsm_map.ms.uesbi_IuB",
22623         FT_BYTES, BASE_NONE, NULL, 0,
22624         NULL, HFILL }},
22625     { &hf_gsm_map_ms_CSG_SubscriptionDataList_item,
22626       { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element",
22627         FT_NONE, BASE_NONE, NULL, 0,
22628         NULL, HFILL }},
22629     { &hf_gsm_map_ms_csg_Id,
22630       { "csg-Id", "gsm_map.ms.csg_Id",
22631         FT_BYTES, BASE_NONE, NULL, 0,
22632         NULL, HFILL }},
22633     { &hf_gsm_map_ms_expirationDate,
22634       { "expirationDate", "gsm_map.ms.expirationDate",
22635         FT_BYTES, BASE_NONE, NULL, 0,
22636         "Time", HFILL }},
22637     { &hf_gsm_map_ms_lipa_AllowedAPNList,
22638       { "lipa-AllowedAPNList", "gsm_map.ms.lipa_AllowedAPNList",
22639         FT_UINT32, BASE_DEC, NULL, 0,
22640         NULL, HFILL }},
22641     { &hf_gsm_map_ms_plmn_Id,
22642       { "plmn-Id", "gsm_map.ms.plmn_Id",
22643         FT_BYTES, BASE_NONE, NULL, 0,
22644         NULL, HFILL }},
22645     { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item,
22646       { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element",
22647         FT_NONE, BASE_NONE, NULL, 0,
22648         NULL, HFILL }},
22649     { &hf_gsm_map_ms_LIPA_AllowedAPNList_item,
22650       { "APN", "gsm_map.ms.APN",
22651         FT_BYTES, BASE_NONE, NULL, 0,
22652         NULL, HFILL }},
22653     { &hf_gsm_map_ms_apn_oi_Replacement,
22654       { "apn-oi-Replacement", "gsm_map.ms.apn_oi_Replacement",
22655         FT_BYTES, BASE_NONE, NULL, 0,
22656         NULL, HFILL }},
22657     { &hf_gsm_map_ms_rfsp_id,
22658       { "rfsp-id", "gsm_map.ms.rfsp_id",
22659         FT_UINT32, BASE_DEC, NULL, 0,
22660         NULL, HFILL }},
22661     { &hf_gsm_map_ms_ambr,
22662       { "ambr", "gsm_map.ms.ambr_element",
22663         FT_NONE, BASE_NONE, NULL, 0,
22664         NULL, HFILL }},
22665     { &hf_gsm_map_ms_apn_ConfigurationProfile,
22666       { "apn-ConfigurationProfile", "gsm_map.ms.apn_ConfigurationProfile_element",
22667         FT_NONE, BASE_NONE, NULL, 0,
22668         NULL, HFILL }},
22669     { &hf_gsm_map_ms_stn_sr,
22670       { "stn-sr", "gsm_map.ms.stn_sr",
22671         FT_BYTES, BASE_NONE, NULL, 0,
22672         "ISDN_AddressString", HFILL }},
22673     { &hf_gsm_map_ms_mps_CSPriority,
22674       { "mps-CSPriority", "gsm_map.ms.mps_CSPriority_element",
22675         FT_NONE, BASE_NONE, NULL, 0,
22676         NULL, HFILL }},
22677     { &hf_gsm_map_ms_mps_EPSPriority,
22678       { "mps-EPSPriority", "gsm_map.ms.mps_EPSPriority_element",
22679         FT_NONE, BASE_NONE, NULL, 0,
22680         NULL, HFILL }},
22681     { &hf_gsm_map_ms_subscribed_vsrvcc,
22682       { "subscribed-vsrvcc", "gsm_map.ms.subscribed_vsrvcc_element",
22683         FT_NONE, BASE_NONE, NULL, 0,
22684         NULL, HFILL }},
22685     { &hf_gsm_map_ms_defaultContext,
22686       { "defaultContext", "gsm_map.ms.defaultContext",
22687         FT_UINT32, BASE_DEC, NULL, 0,
22688         "ContextId", HFILL }},
22689     { &hf_gsm_map_ms_completeDataListIncluded,
22690       { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded_element",
22691         FT_NONE, BASE_NONE, NULL, 0,
22692         NULL, HFILL }},
22693     { &hf_gsm_map_ms_epsDataList,
22694       { "epsDataList", "gsm_map.ms.epsDataList",
22695         FT_UINT32, BASE_DEC, NULL, 0,
22696         "EPS_DataList", HFILL }},
22697     { &hf_gsm_map_ms_EPS_DataList_item,
22698       { "APN-Configuration", "gsm_map.ms.APN_Configuration_element",
22699         FT_NONE, BASE_NONE, NULL, 0,
22700         NULL, HFILL }},
22701     { &hf_gsm_map_ms_pdn_Type,
22702       { "pdn-Type", "gsm_map.ms.pdn_Type",
22703         FT_BYTES, BASE_NONE, NULL, 0,
22704         NULL, HFILL }},
22705     { &hf_gsm_map_ms_servedPartyIP_IPv4_Address,
22706       { "servedPartyIP-IPv4-Address", "gsm_map.ms.servedPartyIP_IPv4_Address",
22707         FT_BYTES, BASE_NONE, NULL, 0,
22708         "PDP_Address", HFILL }},
22709     { &hf_gsm_map_ms_eps_qos_Subscribed,
22710       { "eps-qos-Subscribed", "gsm_map.ms.eps_qos_Subscribed_element",
22711         FT_NONE, BASE_NONE, NULL, 0,
22712         NULL, HFILL }},
22713     { &hf_gsm_map_ms_pdn_gw_AllocationType,
22714       { "pdn-gw-AllocationType", "gsm_map.ms.pdn_gw_AllocationType",
22715         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_GW_AllocationType_vals), 0,
22716         NULL, HFILL }},
22717     { &hf_gsm_map_ms_vplmnAddressAllowed,
22718       { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed_element",
22719         FT_NONE, BASE_NONE, NULL, 0,
22720         NULL, HFILL }},
22721     { &hf_gsm_map_ms_chargingCharacteristics,
22722       { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics",
22723         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
22724         NULL, HFILL }},
22725     { &hf_gsm_map_ms_specificAPNInfoList,
22726       { "specificAPNInfoList", "gsm_map.ms.specificAPNInfoList",
22727         FT_UINT32, BASE_DEC, NULL, 0,
22728         NULL, HFILL }},
22729     { &hf_gsm_map_ms_servedPartyIP_IPv6_Address,
22730       { "servedPartyIP-IPv6-Address", "gsm_map.ms.servedPartyIP_IPv6_Address",
22731         FT_BYTES, BASE_NONE, NULL, 0,
22732         "PDP_Address", HFILL }},
22733     { &hf_gsm_map_ms_sipto_Permission,
22734       { "sipto-Permission", "gsm_map.ms.sipto_Permission",
22735         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Permission_vals), 0,
22736         NULL, HFILL }},
22737     { &hf_gsm_map_ms_lipa_Permission,
22738       { "lipa-Permission", "gsm_map.ms.lipa_Permission",
22739         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LIPA_Permission_vals), 0,
22740         NULL, HFILL }},
22741     { &hf_gsm_map_ms_qos_Class_Identifier,
22742       { "qos-Class-Identifier", "gsm_map.ms.qos_Class_Identifier",
22743         FT_UINT32, BASE_DEC, NULL, 0,
22744         NULL, HFILL }},
22745     { &hf_gsm_map_ms_allocation_Retention_Priority,
22746       { "allocation-Retention-Priority", "gsm_map.ms.allocation_Retention_Priority_element",
22747         FT_NONE, BASE_NONE, NULL, 0,
22748         NULL, HFILL }},
22749     { &hf_gsm_map_ms_max_RequestedBandwidth_UL,
22750       { "max-RequestedBandwidth-UL", "gsm_map.ms.max_RequestedBandwidth_UL",
22751         FT_INT32, BASE_DEC, NULL, 0,
22752         "Bandwidth", HFILL }},
22753     { &hf_gsm_map_ms_max_RequestedBandwidth_DL,
22754       { "max-RequestedBandwidth-DL", "gsm_map.ms.max_RequestedBandwidth_DL",
22755         FT_INT32, BASE_DEC, NULL, 0,
22756         "Bandwidth", HFILL }},
22757     { &hf_gsm_map_ms_SpecificAPNInfoList_item,
22758       { "SpecificAPNInfo", "gsm_map.ms.SpecificAPNInfo_element",
22759         FT_NONE, BASE_NONE, NULL, 0,
22760         NULL, HFILL }},
22761     { &hf_gsm_map_ms_priority_level,
22762       { "priority-level", "gsm_map.ms.priority_level",
22763         FT_INT32, BASE_DEC, NULL, 0,
22764         "INTEGER", HFILL }},
22765     { &hf_gsm_map_ms_pre_emption_capability,
22766       { "pre-emption-capability", "gsm_map.ms.pre_emption_capability",
22767         FT_BOOLEAN, BASE_NONE, NULL, 0,
22768         "BOOLEAN", HFILL }},
22769     { &hf_gsm_map_ms_pre_emption_vulnerability,
22770       { "pre-emption-vulnerability", "gsm_map.ms.pre_emption_vulnerability",
22771         FT_BOOLEAN, BASE_NONE, NULL, 0,
22772         "BOOLEAN", HFILL }},
22773     { &hf_gsm_map_ms_pdn_gw_ipv4_Address,
22774       { "pdn-gw-ipv4-Address", "gsm_map.ms.pdn_gw_ipv4_Address",
22775         FT_BYTES, BASE_NONE, NULL, 0,
22776         "PDP_Address", HFILL }},
22777     { &hf_gsm_map_ms_pdn_gw_ipv6_Address,
22778       { "pdn-gw-ipv6-Address", "gsm_map.ms.pdn_gw_ipv6_Address",
22779         FT_BYTES, BASE_NONE, NULL, 0,
22780         "PDP_Address", HFILL }},
22781     { &hf_gsm_map_ms_pdn_gw_name,
22782       { "pdn-gw-name", "gsm_map.ms.pdn_gw_name",
22783         FT_BYTES, BASE_NONE, NULL, 0,
22784         "FQDN", HFILL }},
22785     { &hf_gsm_map_ms_gmlc_List,
22786       { "gmlc-List", "gsm_map.ms.gmlc_List",
22787         FT_UINT32, BASE_DEC, NULL, 0,
22788         NULL, HFILL }},
22789     { &hf_gsm_map_ms_lcs_PrivacyExceptionList,
22790       { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList",
22791         FT_UINT32, BASE_DEC, NULL, 0,
22792         NULL, HFILL }},
22793     { &hf_gsm_map_ms_molr_List,
22794       { "molr-List", "gsm_map.ms.molr_List",
22795         FT_UINT32, BASE_DEC, NULL, 0,
22796         NULL, HFILL }},
22797     { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList,
22798       { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList",
22799         FT_UINT32, BASE_DEC, NULL, 0,
22800         "LCS_PrivacyExceptionList", HFILL }},
22801     { &hf_gsm_map_ms_GMLC_List_item,
22802       { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
22803         FT_BYTES, BASE_NONE, NULL, 0,
22804         NULL, HFILL }},
22805     { &hf_gsm_map_ms_GPRSDataList_item,
22806       { "PDP-Context", "gsm_map.ms.PDP_Context_element",
22807         FT_NONE, BASE_NONE, NULL, 0,
22808         NULL, HFILL }},
22809     { &hf_gsm_map_ms_pdp_ContextId,
22810       { "pdp-ContextId", "gsm_map.ms.pdp_ContextId",
22811         FT_UINT32, BASE_DEC, NULL, 0,
22812         "ContextId", HFILL }},
22813     { &hf_gsm_map_ms_pdp_Type,
22814       { "pdp-Type", "gsm_map.ms.pdp_Type",
22815         FT_BYTES, BASE_NONE, NULL, 0,
22816         NULL, HFILL }},
22817     { &hf_gsm_map_ms_pdp_Address,
22818       { "pdp-Address", "gsm_map.ms.pdp_Address",
22819         FT_BYTES, BASE_NONE, NULL, 0,
22820         NULL, HFILL }},
22821     { &hf_gsm_map_ms_qos_Subscribed,
22822       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
22823         FT_BYTES, BASE_NONE, NULL, 0,
22824         NULL, HFILL }},
22825     { &hf_gsm_map_ms_ext_QoS_Subscribed,
22826       { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed",
22827         FT_BYTES, BASE_NONE, NULL, 0,
22828         NULL, HFILL }},
22829     { &hf_gsm_map_ms_pdp_ChargingCharacteristics,
22830       { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics",
22831         FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
22832         "ChargingCharacteristics", HFILL }},
22833     { &hf_gsm_map_ms_ext2_QoS_Subscribed,
22834       { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed",
22835         FT_BYTES, BASE_NONE, NULL, 0,
22836         NULL, HFILL }},
22837     { &hf_gsm_map_ms_ext3_QoS_Subscribed,
22838       { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed",
22839         FT_BYTES, BASE_NONE, NULL, 0,
22840         NULL, HFILL }},
22841     { &hf_gsm_map_ms_ext4_QoS_Subscribed,
22842       { "ext4-QoS-Subscribed", "gsm_map.ms.ext4_QoS_Subscribed",
22843         FT_BYTES, BASE_NONE, NULL, 0,
22844         NULL, HFILL }},
22845     { &hf_gsm_map_ms_ext_pdp_Type,
22846       { "ext-pdp-Type", "gsm_map.ms.ext_pdp_Type",
22847         FT_BYTES, BASE_NONE, NULL, 0,
22848         NULL, HFILL }},
22849     { &hf_gsm_map_ms_ext_pdp_Address,
22850       { "ext-pdp-Address", "gsm_map.ms.ext_pdp_Address",
22851         FT_BYTES, BASE_NONE, NULL, 0,
22852         "PDP_Address", HFILL }},
22853     { &hf_gsm_map_ms_gprsDataList,
22854       { "gprsDataList", "gsm_map.ms.gprsDataList",
22855         FT_UINT32, BASE_DEC, NULL, 0,
22856         NULL, HFILL }},
22857     { &hf_gsm_map_ms_gprs_CSI,
22858       { "gprs-CSI", "gsm_map.ms.gprs_CSI_element",
22859         FT_NONE, BASE_NONE, NULL, 0,
22860         NULL, HFILL }},
22861     { &hf_gsm_map_ms_mo_sms_CSI,
22862       { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI_element",
22863         FT_NONE, BASE_NONE, NULL, 0,
22864         "SMS_CSI", HFILL }},
22865     { &hf_gsm_map_ms_mt_sms_CSI,
22866       { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI_element",
22867         FT_NONE, BASE_NONE, NULL, 0,
22868         "SMS_CSI", HFILL }},
22869     { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList,
22870       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList",
22871         FT_UINT32, BASE_DEC, NULL, 0,
22872         NULL, HFILL }},
22873     { &hf_gsm_map_ms_mg_csi,
22874       { "mg-csi", "gsm_map.ms.mg_csi_element",
22875         FT_NONE, BASE_NONE, NULL, 0,
22876         NULL, HFILL }},
22877     { &hf_gsm_map_ms_gprs_CamelTDPDataList,
22878       { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList",
22879         FT_UINT32, BASE_DEC, NULL, 0,
22880         NULL, HFILL }},
22881     { &hf_gsm_map_ms_camelCapabilityHandling,
22882       { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling",
22883         FT_UINT32, BASE_DEC, NULL, 0,
22884         NULL, HFILL }},
22885     { &hf_gsm_map_ms_notificationToCSE,
22886       { "notificationToCSE", "gsm_map.ms.notificationToCSE_element",
22887         FT_NONE, BASE_NONE, NULL, 0,
22888         NULL, HFILL }},
22889     { &hf_gsm_map_ms_csi_Active,
22890       { "csi-Active", "gsm_map.ms.csi_Active_element",
22891         FT_NONE, BASE_NONE, NULL, 0,
22892         NULL, HFILL }},
22893     { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item,
22894       { "GPRS-CamelTDPData", "gsm_map.ms.GPRS_CamelTDPData_element",
22895         FT_NONE, BASE_NONE, NULL, 0,
22896         NULL, HFILL }},
22897     { &hf_gsm_map_ms_gprs_TriggerDetectionPoint,
22898       { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint",
22899         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0,
22900         NULL, HFILL }},
22901     { &hf_gsm_map_ms_serviceKey,
22902       { "serviceKey", "gsm_map.ms.serviceKey",
22903         FT_UINT32, BASE_DEC, NULL, 0,
22904         NULL, HFILL }},
22905     { &hf_gsm_map_ms_gsmSCF_Address,
22906       { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address",
22907         FT_BYTES, BASE_NONE, NULL, 0,
22908         "ISDN_AddressString", HFILL }},
22909     { &hf_gsm_map_ms_defaultSessionHandling,
22910       { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling",
22911         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
22912         "DefaultGPRS_Handling", HFILL }},
22913     { &hf_gsm_map_ms_LSADataList_item,
22914       { "LSAData", "gsm_map.ms.LSAData_element",
22915         FT_NONE, BASE_NONE, NULL, 0,
22916         NULL, HFILL }},
22917     { &hf_gsm_map_ms_lsaIdentity,
22918       { "lsaIdentity", "gsm_map.ms.lsaIdentity",
22919         FT_BYTES, BASE_NONE, NULL, 0,
22920         NULL, HFILL }},
22921     { &hf_gsm_map_ms_lsaAttributes,
22922       { "lsaAttributes", "gsm_map.ms.lsaAttributes",
22923         FT_BYTES, BASE_NONE, NULL, 0,
22924         NULL, HFILL }},
22925     { &hf_gsm_map_ms_lsaActiveModeIndicator,
22926       { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator_element",
22927         FT_NONE, BASE_NONE, NULL, 0,
22928         NULL, HFILL }},
22929     { &hf_gsm_map_ms_lsaOnlyAccessIndicator,
22930       { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator",
22931         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0,
22932         NULL, HFILL }},
22933     { &hf_gsm_map_ms_lsaDataList,
22934       { "lsaDataList", "gsm_map.ms.lsaDataList",
22935         FT_UINT32, BASE_DEC, NULL, 0,
22936         NULL, HFILL }},
22937     { &hf_gsm_map_ms_msisdn,
22938       { "msisdn", "gsm_map.ms.msisdn",
22939         FT_BYTES, BASE_NONE, NULL, 0,
22940         "ISDN_AddressString", HFILL }},
22941     { &hf_gsm_map_ms_category,
22942       { "category", "gsm_map.ms.category",
22943         FT_BYTES, BASE_NONE, NULL, 0,
22944         NULL, HFILL }},
22945     { &hf_gsm_map_ms_subscriberStatus,
22946       { "subscriberStatus", "gsm_map.ms.subscriberStatus",
22947         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0,
22948         NULL, HFILL }},
22949     { &hf_gsm_map_ms_bearerServiceList,
22950       { "bearerServiceList", "gsm_map.ms.bearerServiceList",
22951         FT_UINT32, BASE_DEC, NULL, 0,
22952         NULL, HFILL }},
22953     { &hf_gsm_map_ms_teleserviceList,
22954       { "teleserviceList", "gsm_map.ms.teleserviceList",
22955         FT_UINT32, BASE_DEC, NULL, 0,
22956         NULL, HFILL }},
22957     { &hf_gsm_map_ms_provisionedSS,
22958       { "provisionedSS", "gsm_map.ms.provisionedSS",
22959         FT_UINT32, BASE_DEC, NULL, 0,
22960         "Ext_SS_InfoList", HFILL }},
22961     { &hf_gsm_map_ms_odb_Data,
22962       { "odb-Data", "gsm_map.ms.odb_Data_element",
22963         FT_NONE, BASE_NONE, NULL, 0,
22964         NULL, HFILL }},
22965     { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature,
22966       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature_element",
22967         FT_NONE, BASE_NONE, NULL, 0,
22968         NULL, HFILL }},
22969     { &hf_gsm_map_ms_vbsSubscriptionData,
22970       { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData",
22971         FT_UINT32, BASE_DEC, NULL, 0,
22972         "VBSDataList", HFILL }},
22973     { &hf_gsm_map_ms_vgcsSubscriptionData,
22974       { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData",
22975         FT_UINT32, BASE_DEC, NULL, 0,
22976         "VGCSDataList", HFILL }},
22977     { &hf_gsm_map_ms_vlrCamelSubscriptionInfo,
22978       { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo_element",
22979         FT_NONE, BASE_NONE, NULL, 0,
22980         NULL, HFILL }},
22981     { &hf_gsm_map_ms_BearerServiceList_item,
22982       { "Ext-BearerServiceCode", "gsm_map.ms.Ext_BearerServiceCode",
22983         FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
22984         NULL, HFILL }},
22985     { &hf_gsm_map_ms_TeleserviceList_item,
22986       { "Ext-TeleserviceCode", "gsm_map.ms.Ext_TeleserviceCode",
22987         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
22988         NULL, HFILL }},
22989     { &hf_gsm_map_ms_odb_GeneralData,
22990       { "odb-GeneralData", "gsm_map.ms.odb_GeneralData",
22991         FT_BYTES, BASE_NONE, NULL, 0,
22992         NULL, HFILL }},
22993     { &hf_gsm_map_ms_odb_HPLMN_Data,
22994       { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data",
22995         FT_BYTES, BASE_NONE, NULL, 0,
22996         NULL, HFILL }},
22997     { &hf_gsm_map_ms_Ext_SS_InfoList_item,
22998       { "Ext-SS-Info", "gsm_map.ms.Ext_SS_Info",
22999         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0,
23000         NULL, HFILL }},
23001     { &hf_gsm_map_ms_forwardingInfo,
23002       { "forwardingInfo", "gsm_map.ms.forwardingInfo_element",
23003         FT_NONE, BASE_NONE, NULL, 0,
23004         "Ext_ForwInfo", HFILL }},
23005     { &hf_gsm_map_ms_callBarringInfo,
23006       { "callBarringInfo", "gsm_map.ms.callBarringInfo_element",
23007         FT_NONE, BASE_NONE, NULL, 0,
23008         "Ext_CallBarInfo", HFILL }},
23009     { &hf_gsm_map_ms_cug_Info,
23010       { "cug-Info", "gsm_map.ms.cug_Info_element",
23011         FT_NONE, BASE_NONE, NULL, 0,
23012         NULL, HFILL }},
23013     { &hf_gsm_map_ms_ss_Data,
23014       { "ss-Data", "gsm_map.ms.ss_Data_element",
23015         FT_NONE, BASE_NONE, NULL, 0,
23016         "Ext_SS_Data", HFILL }},
23017     { &hf_gsm_map_ms_emlpp_Info,
23018       { "emlpp-Info", "gsm_map.ms.emlpp_Info_element",
23019         FT_NONE, BASE_NONE, NULL, 0,
23020         NULL, HFILL }},
23021     { &hf_gsm_map_ms_ss_Code,
23022       { "ss-Code", "gsm_map.ms.ss_Code",
23023         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
23024         NULL, HFILL }},
23025     { &hf_gsm_map_ms_forwardingFeatureList,
23026       { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList",
23027         FT_UINT32, BASE_DEC, NULL, 0,
23028         "Ext_ForwFeatureList", HFILL }},
23029     { &hf_gsm_map_ms_Ext_ForwFeatureList_item,
23030       { "Ext-ForwFeature", "gsm_map.ms.Ext_ForwFeature_element",
23031         FT_NONE, BASE_NONE, NULL, 0,
23032         NULL, HFILL }},
23033     { &hf_gsm_map_ms_basicService,
23034       { "basicService", "gsm_map.ms.basicService",
23035         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
23036         "Ext_BasicServiceCode", HFILL }},
23037     { &hf_gsm_map_ms_ss_Status,
23038       { "ss-Status", "gsm_map.ms.ss_Status",
23039         FT_BYTES, BASE_NONE, NULL, 0,
23040         "Ext_SS_Status", HFILL }},
23041     { &hf_gsm_map_ms_forwardedToNumber,
23042       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
23043         FT_BYTES, BASE_NONE, NULL, 0,
23044         "ISDN_AddressString", HFILL }},
23045     { &hf_gsm_map_ms_forwardedToSubaddress,
23046       { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress",
23047         FT_BYTES, BASE_NONE, NULL, 0,
23048         "ISDN_SubaddressString", HFILL }},
23049     { &hf_gsm_map_ms_forwardingOptions,
23050       { "forwardingOptions", "gsm_map.ms.forwardingOptions",
23051         FT_BYTES, BASE_NONE, NULL, 0,
23052         NULL, HFILL }},
23053     { &hf_gsm_map_ms_noReplyConditionTime,
23054       { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime",
23055         FT_UINT32, BASE_DEC, NULL, 0,
23056         "Ext_NoRepCondTime", HFILL }},
23057     { &hf_gsm_map_ms_longForwardedToNumber,
23058       { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber",
23059         FT_BYTES, BASE_NONE, NULL, 0,
23060         "FTN_AddressString", HFILL }},
23061     { &hf_gsm_map_ms_callBarringFeatureList,
23062       { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList",
23063         FT_UINT32, BASE_DEC, NULL, 0,
23064         "Ext_CallBarFeatureList", HFILL }},
23065     { &hf_gsm_map_ms_Ext_CallBarFeatureList_item,
23066       { "Ext-CallBarringFeature", "gsm_map.ms.Ext_CallBarringFeature_element",
23067         FT_NONE, BASE_NONE, NULL, 0,
23068         NULL, HFILL }},
23069     { &hf_gsm_map_ms_cug_SubscriptionList,
23070       { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList",
23071         FT_UINT32, BASE_DEC, NULL, 0,
23072         NULL, HFILL }},
23073     { &hf_gsm_map_ms_cug_FeatureList,
23074       { "cug-FeatureList", "gsm_map.ms.cug_FeatureList",
23075         FT_UINT32, BASE_DEC, NULL, 0,
23076         NULL, HFILL }},
23077     { &hf_gsm_map_ms_CUG_SubscriptionList_item,
23078       { "CUG-Subscription", "gsm_map.ms.CUG_Subscription_element",
23079         FT_NONE, BASE_NONE, NULL, 0,
23080         NULL, HFILL }},
23081     { &hf_gsm_map_ms_cug_Index,
23082       { "cug-Index", "gsm_map.ms.cug_Index",
23083         FT_UINT32, BASE_DEC, NULL, 0,
23084         NULL, HFILL }},
23085     { &hf_gsm_map_ms_cug_Interlock,
23086       { "cug-Interlock", "gsm_map.ms.cug_Interlock",
23087         FT_BYTES, BASE_NONE, NULL, 0,
23088         NULL, HFILL }},
23089     { &hf_gsm_map_ms_intraCUG_Options,
23090       { "intraCUG-Options", "gsm_map.ms.intraCUG_Options",
23091         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0,
23092         NULL, HFILL }},
23093     { &hf_gsm_map_ms_basicServiceGroupList,
23094       { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList",
23095         FT_UINT32, BASE_DEC, NULL, 0,
23096         "Ext_BasicServiceGroupList", HFILL }},
23097     { &hf_gsm_map_ms_CUG_FeatureList_item,
23098       { "CUG-Feature", "gsm_map.ms.CUG_Feature_element",
23099         FT_NONE, BASE_NONE, NULL, 0,
23100         NULL, HFILL }},
23101     { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item,
23102       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
23103         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
23104         NULL, HFILL }},
23105     { &hf_gsm_map_ms_preferentialCUG_Indicator,
23106       { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator",
23107         FT_UINT32, BASE_DEC, NULL, 0,
23108         "CUG_Index", HFILL }},
23109     { &hf_gsm_map_ms_interCUG_Restrictions,
23110       { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions",
23111         FT_BYTES, BASE_NONE, NULL, 0,
23112         NULL, HFILL }},
23113     { &hf_gsm_map_ms_ss_SubscriptionOption,
23114       { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption",
23115         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0,
23116         NULL, HFILL }},
23117     { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item,
23118       { "LCS-PrivacyClass", "gsm_map.ms.LCS_PrivacyClass_element",
23119         FT_NONE, BASE_NONE, NULL, 0,
23120         NULL, HFILL }},
23121     { &hf_gsm_map_ms_notificationToMSUser,
23122       { "notificationToMSUser", "gsm_map.ms.notificationToMSUser",
23123         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
23124         NULL, HFILL }},
23125     { &hf_gsm_map_ms_externalClientList,
23126       { "externalClientList", "gsm_map.ms.externalClientList",
23127         FT_UINT32, BASE_DEC, NULL, 0,
23128         NULL, HFILL }},
23129     { &hf_gsm_map_ms_plmnClientList,
23130       { "plmnClientList", "gsm_map.ms.plmnClientList",
23131         FT_UINT32, BASE_DEC, NULL, 0,
23132         NULL, HFILL }},
23133     { &hf_gsm_map_ms_ext_externalClientList,
23134       { "ext-externalClientList", "gsm_map.ms.ext_externalClientList",
23135         FT_UINT32, BASE_DEC, NULL, 0,
23136         NULL, HFILL }},
23137     { &hf_gsm_map_ms_serviceTypeList,
23138       { "serviceTypeList", "gsm_map.ms.serviceTypeList",
23139         FT_UINT32, BASE_DEC, NULL, 0,
23140         NULL, HFILL }},
23141     { &hf_gsm_map_ms_ExternalClientList_item,
23142       { "ExternalClient", "gsm_map.ms.ExternalClient_element",
23143         FT_NONE, BASE_NONE, NULL, 0,
23144         NULL, HFILL }},
23145     { &hf_gsm_map_ms_PLMNClientList_item,
23146       { "LCSClientInternalID", "gsm_map.ms.LCSClientInternalID",
23147         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
23148         NULL, HFILL }},
23149     { &hf_gsm_map_ms_Ext_ExternalClientList_item,
23150       { "ExternalClient", "gsm_map.ms.ExternalClient_element",
23151         FT_NONE, BASE_NONE, NULL, 0,
23152         NULL, HFILL }},
23153     { &hf_gsm_map_ms_clientIdentity,
23154       { "clientIdentity", "gsm_map.ms.clientIdentity_element",
23155         FT_NONE, BASE_NONE, NULL, 0,
23156         "LCSClientExternalID", HFILL }},
23157     { &hf_gsm_map_ms_gmlc_Restriction,
23158       { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction",
23159         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0,
23160         NULL, HFILL }},
23161     { &hf_gsm_map_ms_ServiceTypeList_item,
23162       { "ServiceType", "gsm_map.ms.ServiceType_element",
23163         FT_NONE, BASE_NONE, NULL, 0,
23164         NULL, HFILL }},
23165     { &hf_gsm_map_ms_serviceTypeIdentity,
23166       { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity",
23167         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
23168         "LCSServiceTypeID", HFILL }},
23169     { &hf_gsm_map_ms_MOLR_List_item,
23170       { "MOLR-Class", "gsm_map.ms.MOLR_Class_element",
23171         FT_NONE, BASE_NONE, NULL, 0,
23172         NULL, HFILL }},
23173     { &hf_gsm_map_ms_ZoneCodeList_item,
23174       { "ZoneCode", "gsm_map.ms.ZoneCode",
23175         FT_BYTES, BASE_NONE, NULL, 0,
23176         NULL, HFILL }},
23177     { &hf_gsm_map_ms_ss_List,
23178       { "ss-List", "gsm_map.ms.ss_List",
23179         FT_UINT32, BASE_DEC, NULL, 0,
23180         NULL, HFILL }},
23181     { &hf_gsm_map_ms_regionalSubscriptionResponse,
23182       { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse",
23183         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0,
23184         NULL, HFILL }},
23185     { &hf_gsm_map_ms_basicServiceList,
23186       { "basicServiceList", "gsm_map.ms.basicServiceList",
23187         FT_UINT32, BASE_DEC, NULL, 0,
23188         NULL, HFILL }},
23189     { &hf_gsm_map_ms_regionalSubscriptionIdentifier,
23190       { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier",
23191         FT_BYTES, BASE_NONE, NULL, 0,
23192         "ZoneCode", HFILL }},
23193     { &hf_gsm_map_ms_vbsGroupIndication,
23194       { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication_element",
23195         FT_NONE, BASE_NONE, NULL, 0,
23196         NULL, HFILL }},
23197     { &hf_gsm_map_ms_vgcsGroupIndication,
23198       { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication_element",
23199         FT_NONE, BASE_NONE, NULL, 0,
23200         NULL, HFILL }},
23201     { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw,
23202       { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw_element",
23203         FT_NONE, BASE_NONE, NULL, 0,
23204         NULL, HFILL }},
23205     { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw,
23206       { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw",
23207         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0,
23208         NULL, HFILL }},
23209     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature,
23210       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature_element",
23211         FT_NONE, BASE_NONE, NULL, 0,
23212         NULL, HFILL }},
23213     { &hf_gsm_map_ms_lsaInformationWithdraw,
23214       { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw",
23215         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0,
23216         NULL, HFILL }},
23217     { &hf_gsm_map_ms_gmlc_ListWithdraw,
23218       { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw_element",
23219         FT_NONE, BASE_NONE, NULL, 0,
23220         NULL, HFILL }},
23221     { &hf_gsm_map_ms_istInformationWithdraw,
23222       { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw_element",
23223         FT_NONE, BASE_NONE, NULL, 0,
23224         NULL, HFILL }},
23225     { &hf_gsm_map_ms_specificCSI_Withdraw,
23226       { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw",
23227         FT_BYTES, BASE_NONE, NULL, 0,
23228         NULL, HFILL }},
23229     { &hf_gsm_map_ms_chargingCharacteristicsWithdraw,
23230       { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw_element",
23231         FT_NONE, BASE_NONE, NULL, 0,
23232         NULL, HFILL }},
23233     { &hf_gsm_map_ms_stn_srWithdraw,
23234       { "stn-srWithdraw", "gsm_map.ms.stn_srWithdraw_element",
23235         FT_NONE, BASE_NONE, NULL, 0,
23236         NULL, HFILL }},
23237     { &hf_gsm_map_ms_epsSubscriptionDataWithdraw,
23238       { "epsSubscriptionDataWithdraw", "gsm_map.ms.epsSubscriptionDataWithdraw",
23239         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_SubscriptionDataWithdraw_vals), 0,
23240         "EPS_SubscriptionDataWithdraw", HFILL }},
23241     { &hf_gsm_map_ms_apn_oi_replacementWithdraw,
23242       { "apn-oi-replacementWithdraw", "gsm_map.ms.apn_oi_replacementWithdraw_element",
23243         FT_NONE, BASE_NONE, NULL, 0,
23244         NULL, HFILL }},
23245     { &hf_gsm_map_ms_csg_SubscriptionDeleted,
23246       { "csg-SubscriptionDeleted", "gsm_map.ms.csg_SubscriptionDeleted_element",
23247         FT_NONE, BASE_NONE, NULL, 0,
23248         NULL, HFILL }},
23249     { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw,
23250       { "subscribedPeriodicTAU-RAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicTAU_RAU_TimerWithdraw_element",
23251         FT_NONE, BASE_NONE, NULL, 0,
23252         NULL, HFILL }},
23253     { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw,
23254       { "subscribedPeriodicLAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicLAU_TimerWithdraw_element",
23255         FT_NONE, BASE_NONE, NULL, 0,
23256         NULL, HFILL }},
23257     { &hf_gsm_map_ms_subscribed_vsrvccWithdraw,
23258       { "subscribed-vsrvccWithdraw", "gsm_map.ms.subscribed_vsrvccWithdraw_element",
23259         FT_NONE, BASE_NONE, NULL, 0,
23260         NULL, HFILL }},
23261     { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted,
23262       { "vplmn-Csg-SubscriptionDeleted", "gsm_map.ms.vplmn_Csg_SubscriptionDeleted_element",
23263         FT_NONE, BASE_NONE, NULL, 0,
23264         NULL, HFILL }},
23265     { &hf_gsm_map_ms_additionalMSISDN_Withdraw,
23266       { "additionalMSISDN-Withdraw", "gsm_map.ms.additionalMSISDN_Withdraw_element",
23267         FT_NONE, BASE_NONE, NULL, 0,
23268         NULL, HFILL }},
23269     { &hf_gsm_map_ms_allGPRSData,
23270       { "allGPRSData", "gsm_map.ms.allGPRSData_element",
23271         FT_NONE, BASE_NONE, NULL, 0,
23272         NULL, HFILL }},
23273     { &hf_gsm_map_ms_contextIdList,
23274       { "contextIdList", "gsm_map.ms.contextIdList",
23275         FT_UINT32, BASE_DEC, NULL, 0,
23276         NULL, HFILL }},
23277     { &hf_gsm_map_ms_allEPS_Data,
23278       { "allEPS-Data", "gsm_map.ms.allEPS_Data_element",
23279         FT_NONE, BASE_NONE, NULL, 0,
23280         NULL, HFILL }},
23281     { &hf_gsm_map_ms_ContextIdList_item,
23282       { "ContextId", "gsm_map.ms.ContextId",
23283         FT_UINT32, BASE_DEC, NULL, 0,
23284         NULL, HFILL }},
23285     { &hf_gsm_map_ms_allLSAData,
23286       { "allLSAData", "gsm_map.ms.allLSAData_element",
23287         FT_NONE, BASE_NONE, NULL, 0,
23288         NULL, HFILL }},
23289     { &hf_gsm_map_ms_lsaIdentityList,
23290       { "lsaIdentityList", "gsm_map.ms.lsaIdentityList",
23291         FT_UINT32, BASE_DEC, NULL, 0,
23292         NULL, HFILL }},
23293     { &hf_gsm_map_ms_LSAIdentityList_item,
23294       { "LSAIdentity", "gsm_map.ms.LSAIdentity",
23295         FT_BYTES, BASE_NONE, NULL, 0,
23296         NULL, HFILL }},
23297     { &hf_gsm_map_ms_BasicServiceList_item,
23298       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
23299         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
23300         NULL, HFILL }},
23301     { &hf_gsm_map_ms_o_CSI,
23302       { "o-CSI", "gsm_map.ms.o_CSI_element",
23303         FT_NONE, BASE_NONE, NULL, 0,
23304         NULL, HFILL }},
23305     { &hf_gsm_map_ms_ss_CSI,
23306       { "ss-CSI", "gsm_map.ms.ss_CSI_element",
23307         FT_NONE, BASE_NONE, NULL, 0,
23308         NULL, HFILL }},
23309     { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList,
23310       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList",
23311         FT_UINT32, BASE_DEC, NULL, 0,
23312         "O_BcsmCamelTDPCriteriaList", HFILL }},
23313     { &hf_gsm_map_ms_tif_CSI,
23314       { "tif-CSI", "gsm_map.ms.tif_CSI_element",
23315         FT_NONE, BASE_NONE, NULL, 0,
23316         NULL, HFILL }},
23317     { &hf_gsm_map_ms_m_CSI,
23318       { "m-CSI", "gsm_map.ms.m_CSI_element",
23319         FT_NONE, BASE_NONE, NULL, 0,
23320         NULL, HFILL }},
23321     { &hf_gsm_map_ms_vt_CSI,
23322       { "vt-CSI", "gsm_map.ms.vt_CSI_element",
23323         FT_NONE, BASE_NONE, NULL, 0,
23324         "T_CSI", HFILL }},
23325     { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList,
23326       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList",
23327         FT_UINT32, BASE_DEC, NULL, 0,
23328         NULL, HFILL }},
23329     { &hf_gsm_map_ms_d_CSI,
23330       { "d-CSI", "gsm_map.ms.d_CSI_element",
23331         FT_NONE, BASE_NONE, NULL, 0,
23332         NULL, HFILL }},
23333     { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item,
23334       { "MT-smsCAMELTDP-Criteria", "gsm_map.ms.MT_smsCAMELTDP_Criteria_element",
23335         FT_NONE, BASE_NONE, NULL, 0,
23336         NULL, HFILL }},
23337     { &hf_gsm_map_ms_sms_TriggerDetectionPoint,
23338       { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint",
23339         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0,
23340         NULL, HFILL }},
23341     { &hf_gsm_map_ms_tpdu_TypeCriterion,
23342       { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion",
23343         FT_UINT32, BASE_DEC, NULL, 0,
23344         NULL, HFILL }},
23345     { &hf_gsm_map_ms_TPDU_TypeCriterion_item,
23346       { "MT-SMS-TPDU-Type", "gsm_map.ms.MT_SMS_TPDU_Type",
23347         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0,
23348         NULL, HFILL }},
23349     { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList,
23350       { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList",
23351         FT_UINT32, BASE_DEC, NULL, 0,
23352         NULL, HFILL }},
23353     { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item,
23354       { "DP-AnalysedInfoCriterium", "gsm_map.ms.DP_AnalysedInfoCriterium_element",
23355         FT_NONE, BASE_NONE, NULL, 0,
23356         NULL, HFILL }},
23357     { &hf_gsm_map_ms_dialledNumber,
23358       { "dialledNumber", "gsm_map.ms.dialledNumber",
23359         FT_BYTES, BASE_NONE, NULL, 0,
23360         "ISDN_AddressString", HFILL }},
23361     { &hf_gsm_map_ms_defaultCallHandling,
23362       { "defaultCallHandling", "gsm_map.ms.defaultCallHandling",
23363         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0,
23364         NULL, HFILL }},
23365     { &hf_gsm_map_ms_ss_CamelData,
23366       { "ss-CamelData", "gsm_map.ms.ss_CamelData_element",
23367         FT_NONE, BASE_NONE, NULL, 0,
23368         NULL, HFILL }},
23369     { &hf_gsm_map_ms_ss_EventList,
23370       { "ss-EventList", "gsm_map.ms.ss_EventList",
23371         FT_UINT32, BASE_DEC, NULL, 0,
23372         NULL, HFILL }},
23373     { &hf_gsm_map_ms_SS_EventList_item,
23374       { "SS-Code", "gsm_map.ms.SS_Code",
23375         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
23376         NULL, HFILL }},
23377     { &hf_gsm_map_ms_o_BcsmCamelTDPDataList,
23378       { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList",
23379         FT_UINT32, BASE_DEC, NULL, 0,
23380         NULL, HFILL }},
23381     { &hf_gsm_map_ms_csiActive,
23382       { "csiActive", "gsm_map.ms.csiActive_element",
23383         FT_NONE, BASE_NONE, NULL, 0,
23384         NULL, HFILL }},
23385     { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item,
23386       { "O-BcsmCamelTDPData", "gsm_map.ms.O_BcsmCamelTDPData_element",
23387         FT_NONE, BASE_NONE, NULL, 0,
23388         NULL, HFILL }},
23389     { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint,
23390       { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint",
23391         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0,
23392         NULL, HFILL }},
23393     { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item,
23394       { "O-BcsmCamelTDP-Criteria", "gsm_map.ms.O_BcsmCamelTDP_Criteria_element",
23395         FT_NONE, BASE_NONE, NULL, 0,
23396         NULL, HFILL }},
23397     { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item,
23398       { "T-BCSM-CAMEL-TDP-Criteria", "gsm_map.ms.T_BCSM_CAMEL_TDP_Criteria_element",
23399         FT_NONE, BASE_NONE, NULL, 0,
23400         NULL, HFILL }},
23401     { &hf_gsm_map_ms_destinationNumberCriteria,
23402       { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria_element",
23403         FT_NONE, BASE_NONE, NULL, 0,
23404         NULL, HFILL }},
23405     { &hf_gsm_map_ms_basicServiceCriteria,
23406       { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria",
23407         FT_UINT32, BASE_DEC, NULL, 0,
23408         NULL, HFILL }},
23409     { &hf_gsm_map_ms_callTypeCriteria,
23410       { "callTypeCriteria", "gsm_map.ms.callTypeCriteria",
23411         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0,
23412         NULL, HFILL }},
23413     { &hf_gsm_map_ms_o_CauseValueCriteria,
23414       { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria",
23415         FT_UINT32, BASE_DEC, NULL, 0,
23416         NULL, HFILL }},
23417     { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint,
23418       { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint",
23419         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
23420         "T_BcsmTriggerDetectionPoint", HFILL }},
23421     { &hf_gsm_map_ms_t_CauseValueCriteria,
23422       { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria",
23423         FT_UINT32, BASE_DEC, NULL, 0,
23424         NULL, HFILL }},
23425     { &hf_gsm_map_ms_matchType,
23426       { "matchType", "gsm_map.ms.matchType",
23427         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0,
23428         NULL, HFILL }},
23429     { &hf_gsm_map_ms_destinationNumberList,
23430       { "destinationNumberList", "gsm_map.ms.destinationNumberList",
23431         FT_UINT32, BASE_DEC, NULL, 0,
23432         NULL, HFILL }},
23433     { &hf_gsm_map_ms_destinationNumberLengthList,
23434       { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList",
23435         FT_UINT32, BASE_DEC, NULL, 0,
23436         NULL, HFILL }},
23437     { &hf_gsm_map_ms_DestinationNumberList_item,
23438       { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString",
23439         FT_BYTES, BASE_NONE, NULL, 0,
23440         NULL, HFILL }},
23441     { &hf_gsm_map_ms_DestinationNumberLengthList_item,
23442       { "DestinationNumberLengthList item", "gsm_map.ms.DestinationNumberLengthList_item",
23443         FT_UINT32, BASE_DEC, NULL, 0,
23444         "INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }},
23445     { &hf_gsm_map_ms_BasicServiceCriteria_item,
23446       { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode",
23447         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
23448         NULL, HFILL }},
23449     { &hf_gsm_map_ms_O_CauseValueCriteria_item,
23450       { "CauseValue", "gsm_map.ms.CauseValue",
23451         FT_BYTES, BASE_NONE, NULL, 0,
23452         NULL, HFILL }},
23453     { &hf_gsm_map_ms_T_CauseValueCriteria_item,
23454       { "CauseValue", "gsm_map.ms.CauseValue",
23455         FT_BYTES, BASE_NONE, NULL, 0,
23456         NULL, HFILL }},
23457     { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList,
23458       { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList",
23459         FT_UINT32, BASE_DEC, NULL, 0,
23460         NULL, HFILL }},
23461     { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item,
23462       { "SMS-CAMEL-TDP-Data", "gsm_map.ms.SMS_CAMEL_TDP_Data_element",
23463         FT_NONE, BASE_NONE, NULL, 0,
23464         NULL, HFILL }},
23465     { &hf_gsm_map_ms_defaultSMS_Handling,
23466       { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling",
23467         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
23468         NULL, HFILL }},
23469     { &hf_gsm_map_ms_mobilityTriggers,
23470       { "mobilityTriggers", "gsm_map.ms.mobilityTriggers",
23471         FT_UINT32, BASE_DEC, NULL, 0,
23472         NULL, HFILL }},
23473     { &hf_gsm_map_ms_MobilityTriggers_item,
23474       { "MM-Code", "gsm_map.ms.MM_Code",
23475         FT_BYTES, BASE_NONE, NULL, 0,
23476         NULL, HFILL }},
23477     { &hf_gsm_map_ms_t_BcsmCamelTDPDataList,
23478       { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList",
23479         FT_UINT32, BASE_DEC, NULL, 0,
23480         NULL, HFILL }},
23481     { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item,
23482       { "T-BcsmCamelTDPData", "gsm_map.ms.T_BcsmCamelTDPData_element",
23483         FT_NONE, BASE_NONE, NULL, 0,
23484         NULL, HFILL }},
23485     { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint,
23486       { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint",
23487         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0,
23488         NULL, HFILL }},
23489     { &hf_gsm_map_ms_ggsn_Address,
23490       { "ggsn-Address", "gsm_map.ms.ggsn_Address",
23491         FT_BYTES, BASE_NONE, NULL, 0,
23492         "GSN_Address", HFILL }},
23493     { &hf_gsm_map_ms_ggsn_Number,
23494       { "ggsn-Number", "gsm_map.ms.ggsn_Number",
23495         FT_BYTES, BASE_NONE, NULL, 0,
23496         "ISDN_AddressString", HFILL }},
23497     { &hf_gsm_map_ms_mobileNotReachableReason,
23498       { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason",
23499         FT_UINT32, BASE_DEC, NULL, 0,
23500         "AbsentSubscriberDiagnosticSM", HFILL }},
23501     { &hf_gsm_map_ms_sendingNodenumber,
23502       { "sendingNodenumber", "gsm_map.ms.sendingNodenumber",
23503         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SendingNode_Number_vals), 0,
23504         "SendingNode_Number", HFILL }},
23505     { &hf_gsm_map_ms_hlr_List,
23506       { "hlr-List", "gsm_map.ms.hlr_List",
23507         FT_UINT32, BASE_DEC, NULL, 0,
23508         NULL, HFILL }},
23509     { &hf_gsm_map_ms_css_Number,
23510       { "css-Number", "gsm_map.ms.css_Number",
23511         FT_BYTES, BASE_NONE, NULL, 0,
23512         "ISDN_AddressString", HFILL }},
23513     { &hf_gsm_map_ms_msNotReachable,
23514       { "msNotReachable", "gsm_map.ms.msNotReachable_element",
23515         FT_NONE, BASE_NONE, NULL, 0,
23516         NULL, HFILL }},
23517     { &hf_gsm_map_ms_VBSDataList_item,
23518       { "VoiceBroadcastData", "gsm_map.ms.VoiceBroadcastData_element",
23519         FT_NONE, BASE_NONE, NULL, 0,
23520         NULL, HFILL }},
23521     { &hf_gsm_map_ms_VGCSDataList_item,
23522       { "VoiceGroupCallData", "gsm_map.ms.VoiceGroupCallData_element",
23523         FT_NONE, BASE_NONE, NULL, 0,
23524         NULL, HFILL }},
23525     { &hf_gsm_map_ms_groupId,
23526       { "groupId", "gsm_map.ms.groupId",
23527         FT_BYTES, BASE_NONE, NULL, 0,
23528         NULL, HFILL }},
23529     { &hf_gsm_map_ms_additionalSubscriptions,
23530       { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions",
23531         FT_BYTES, BASE_NONE, NULL, 0,
23532         NULL, HFILL }},
23533     { &hf_gsm_map_ms_additionalInfo,
23534       { "additionalInfo", "gsm_map.ms.additionalInfo",
23535         FT_BYTES, BASE_NONE, NULL, 0,
23536         NULL, HFILL }},
23537     { &hf_gsm_map_ms_longGroupId,
23538       { "longGroupId", "gsm_map.ms.longGroupId",
23539         FT_BYTES, BASE_NONE, NULL, 0,
23540         "Long_GroupId", HFILL }},
23541     { &hf_gsm_map_ms_groupid,
23542       { "groupid", "gsm_map.ms.groupid",
23543         FT_BYTES, BASE_NONE, NULL, 0,
23544         NULL, HFILL }},
23545     { &hf_gsm_map_ms_broadcastInitEntitlement,
23546       { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement_element",
23547         FT_NONE, BASE_NONE, NULL, 0,
23548         NULL, HFILL }},
23549     { &hf_gsm_map_ms_requestedInfo,
23550       { "requestedInfo", "gsm_map.ms.requestedInfo_element",
23551         FT_NONE, BASE_NONE, NULL, 0,
23552         NULL, HFILL }},
23553     { &hf_gsm_map_ms_callPriority,
23554       { "callPriority", "gsm_map.ms.callPriority",
23555         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
23556         "EMLPP_Priority", HFILL }},
23557     { &hf_gsm_map_ms_subscriberInfo,
23558       { "subscriberInfo", "gsm_map.ms.subscriberInfo_element",
23559         FT_NONE, BASE_NONE, NULL, 0,
23560         NULL, HFILL }},
23561     { &hf_gsm_map_ms_locationInformation,
23562       { "locationInformation", "gsm_map.ms.locationInformation_element",
23563         FT_NONE, BASE_NONE, NULL, 0,
23564         NULL, HFILL }},
23565     { &hf_gsm_map_ms_subscriberState,
23566       { "subscriberState", "gsm_map.ms.subscriberState",
23567         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
23568         NULL, HFILL }},
23569     { &hf_gsm_map_ms_locationInformationGPRS,
23570       { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS_element",
23571         FT_NONE, BASE_NONE, NULL, 0,
23572         NULL, HFILL }},
23573     { &hf_gsm_map_ms_ps_SubscriberState,
23574       { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState",
23575         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
23576         NULL, HFILL }},
23577     { &hf_gsm_map_ms_ms_Classmark2,
23578       { "ms-Classmark2", "gsm_map.ms.ms_Classmark2",
23579         FT_BYTES, BASE_NONE, NULL, 0,
23580         NULL, HFILL }},
23581     { &hf_gsm_map_ms_gprs_MS_Class,
23582       { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class_element",
23583         FT_NONE, BASE_NONE, NULL, 0,
23584         "GPRSMSClass", HFILL }},
23585     { &hf_gsm_map_ms_mnpInfoRes,
23586       { "mnpInfoRes", "gsm_map.ms.mnpInfoRes_element",
23587         FT_NONE, BASE_NONE, NULL, 0,
23588         NULL, HFILL }},
23589     { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication,
23590       { "imsVoiceOverPS-SessionsIndication", "gsm_map.ms.imsVoiceOverPS_SessionsIndication",
23591         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals), 0,
23592         "IMS_VoiceOverPS_SessionsInd", HFILL }},
23593     { &hf_gsm_map_ms_lastUE_ActivityTime,
23594       { "lastUE-ActivityTime", "gsm_map.ms.lastUE_ActivityTime",
23595         FT_BYTES, BASE_NONE, NULL, 0,
23596         "Time", HFILL }},
23597     { &hf_gsm_map_ms_lastRAT_Type,
23598       { "lastRAT-Type", "gsm_map.ms.lastRAT_Type",
23599         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0,
23600         "Used_RAT_Type", HFILL }},
23601     { &hf_gsm_map_ms_eps_SubscriberState,
23602       { "eps-SubscriberState", "gsm_map.ms.eps_SubscriberState",
23603         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0,
23604         "PS_SubscriberState", HFILL }},
23605     { &hf_gsm_map_ms_locationInformationEPS,
23606       { "locationInformationEPS", "gsm_map.ms.locationInformationEPS_element",
23607         FT_NONE, BASE_NONE, NULL, 0,
23608         NULL, HFILL }},
23609     { &hf_gsm_map_ms_timeZone,
23610       { "timeZone", "gsm_map.ms.timeZone",
23611         FT_BYTES, BASE_NONE, NULL, 0,
23612         NULL, HFILL }},
23613     { &hf_gsm_map_ms_daylightSavingTime,
23614       { "daylightSavingTime", "gsm_map.ms.daylightSavingTime",
23615         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DaylightSavingTime_vals), 0,
23616         NULL, HFILL }},
23617     { &hf_gsm_map_ms_routeingNumber,
23618       { "routeingNumber", "gsm_map.ms.routeingNumber",
23619         FT_BYTES, BASE_NONE, NULL, 0,
23620         NULL, HFILL }},
23621     { &hf_gsm_map_ms_numberPortabilityStatus,
23622       { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus",
23623         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
23624         NULL, HFILL }},
23625     { &hf_gsm_map_ms_mSNetworkCapability,
23626       { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability",
23627         FT_BYTES, BASE_NONE, NULL, 0,
23628         NULL, HFILL }},
23629     { &hf_gsm_map_ms_mSRadioAccessCapability,
23630       { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability",
23631         FT_BYTES, BASE_NONE, NULL, 0,
23632         NULL, HFILL }},
23633     { &hf_gsm_map_ms_locationInformation_01,
23634       { "locationInformation", "gsm_map.ms.locationInformation_element",
23635         FT_NONE, BASE_NONE, NULL, 0,
23636         NULL, HFILL }},
23637     { &hf_gsm_map_ms_subscriberState_01,
23638       { "subscriberState", "gsm_map.ms.subscriberState_element",
23639         FT_NONE, BASE_NONE, NULL, 0,
23640         NULL, HFILL }},
23641     { &hf_gsm_map_ms_currentLocation,
23642       { "currentLocation", "gsm_map.ms.currentLocation_element",
23643         FT_NONE, BASE_NONE, NULL, 0,
23644         NULL, HFILL }},
23645     { &hf_gsm_map_ms_requestedDomain,
23646       { "requestedDomain", "gsm_map.ms.requestedDomain",
23647         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0,
23648         "DomainType", HFILL }},
23649     { &hf_gsm_map_ms_imei_01,
23650       { "imei", "gsm_map.ms.imei_null_element",
23651         FT_NONE, BASE_NONE, NULL, 0,
23652         NULL, HFILL }},
23653     { &hf_gsm_map_ms_ms_classmark,
23654       { "ms-classmark", "gsm_map.ms.ms_classmark_element",
23655         FT_NONE, BASE_NONE, NULL, 0,
23656         NULL, HFILL }},
23657     { &hf_gsm_map_ms_mnpRequestedInfo,
23658       { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo_element",
23659         FT_NONE, BASE_NONE, NULL, 0,
23660         NULL, HFILL }},
23661     { &hf_gsm_map_ms_locationInformationEPS_Supported,
23662       { "locationInformationEPS-Supported", "gsm_map.ms.locationInformationEPS_Supported_element",
23663         FT_NONE, BASE_NONE, NULL, 0,
23664         NULL, HFILL }},
23665     { &hf_gsm_map_ms_t_adsData,
23666       { "t-adsData", "gsm_map.ms.t_adsData_element",
23667         FT_NONE, BASE_NONE, NULL, 0,
23668         NULL, HFILL }},
23669     { &hf_gsm_map_ms_requestedNodes,
23670       { "requestedNodes", "gsm_map.ms.requestedNodes",
23671         FT_BYTES, BASE_NONE, NULL, 0,
23672         NULL, HFILL }},
23673     { &hf_gsm_map_ms_servingNodeIndication,
23674       { "servingNodeIndication", "gsm_map.ms.servingNodeIndication_element",
23675         FT_NONE, BASE_NONE, NULL, 0,
23676         NULL, HFILL }},
23677     { &hf_gsm_map_ms_localTimeZoneRequest,
23678       { "localTimeZoneRequest", "gsm_map.ms.localTimeZoneRequest_element",
23679         FT_NONE, BASE_NONE, NULL, 0,
23680         NULL, HFILL }},
23681     { &hf_gsm_map_ms_ageOfLocationInformation,
23682       { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation",
23683         FT_UINT32, BASE_DEC, NULL, 0,
23684         NULL, HFILL }},
23685     { &hf_gsm_map_ms_geographicalInformation,
23686       { "geographicalInformation", "gsm_map.ms.geographicalInformation",
23687         FT_BYTES, BASE_NONE, NULL, 0,
23688         NULL, HFILL }},
23689     { &hf_gsm_map_ms_vlr_number,
23690       { "vlr-number", "gsm_map.ms.vlr_number",
23691         FT_BYTES, BASE_NONE, NULL, 0,
23692         "ISDN_AddressString", HFILL }},
23693     { &hf_gsm_map_ms_locationNumber,
23694       { "locationNumber", "gsm_map.ms.locationNumber",
23695         FT_BYTES, BASE_NONE, NULL, 0,
23696         NULL, HFILL }},
23697     { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI,
23698       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI",
23699         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
23700         NULL, HFILL }},
23701     { &hf_gsm_map_ms_selectedLSA_Id,
23702       { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id",
23703         FT_BYTES, BASE_NONE, NULL, 0,
23704         "LSAIdentity", HFILL }},
23705     { &hf_gsm_map_ms_geodeticInformation,
23706       { "geodeticInformation", "gsm_map.ms.geodeticInformation",
23707         FT_BYTES, BASE_NONE, NULL, 0,
23708         NULL, HFILL }},
23709     { &hf_gsm_map_ms_currentLocationRetrieved,
23710       { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved_element",
23711         FT_NONE, BASE_NONE, NULL, 0,
23712         NULL, HFILL }},
23713     { &hf_gsm_map_ms_sai_Present,
23714       { "sai-Present", "gsm_map.ms.sai_Present_element",
23715         FT_NONE, BASE_NONE, NULL, 0,
23716         NULL, HFILL }},
23717     { &hf_gsm_map_ms_userCSGInformation,
23718       { "userCSGInformation", "gsm_map.ms.userCSGInformation_element",
23719         FT_NONE, BASE_NONE, NULL, 0,
23720         NULL, HFILL }},
23721     { &hf_gsm_map_ms_e_utranCellGlobalIdentity,
23722       { "e-utranCellGlobalIdentity", "gsm_map.ms.e_utranCellGlobalIdentity",
23723         FT_BYTES, BASE_NONE, NULL, 0,
23724         "E_UTRAN_CGI", HFILL }},
23725     { &hf_gsm_map_ms_trackingAreaIdentity,
23726       { "trackingAreaIdentity", "gsm_map.ms.trackingAreaIdentity",
23727         FT_BYTES, BASE_NONE, NULL, 0,
23728         "TA_Id", HFILL }},
23729     { &hf_gsm_map_ms_mme_Name,
23730       { "mme-Name", "gsm_map.ms.mme_Name",
23731         FT_BYTES, BASE_NONE, NULL, 0,
23732         "DiameterIdentity", HFILL }},
23733     { &hf_gsm_map_ms_routeingAreaIdentity,
23734       { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity",
23735         FT_BYTES, BASE_NONE, NULL, 0,
23736         "RAIdentity", HFILL }},
23737     { &hf_gsm_map_ms_selectedLSAIdentity,
23738       { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity",
23739         FT_BYTES, BASE_NONE, NULL, 0,
23740         "LSAIdentity", HFILL }},
23741     { &hf_gsm_map_ms_accessMode,
23742       { "accessMode", "gsm_map.ms.accessMode",
23743         FT_BYTES, BASE_NONE, NULL, 0,
23744         "OCTET_STRING_SIZE_1", HFILL }},
23745     { &hf_gsm_map_ms_cmi,
23746       { "cmi", "gsm_map.ms.cmi",
23747         FT_BYTES, BASE_NONE, NULL, 0,
23748         "OCTET_STRING_SIZE_1", HFILL }},
23749     { &hf_gsm_map_ms_assumedIdle,
23750       { "assumedIdle", "gsm_map.ms.assumedIdle_element",
23751         FT_NONE, BASE_NONE, NULL, 0,
23752         NULL, HFILL }},
23753     { &hf_gsm_map_ms_camelBusy,
23754       { "camelBusy", "gsm_map.ms.camelBusy_element",
23755         FT_NONE, BASE_NONE, NULL, 0,
23756         NULL, HFILL }},
23757     { &hf_gsm_map_ms_netDetNotReachable,
23758       { "netDetNotReachable", "gsm_map.ms.netDetNotReachable",
23759         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0,
23760         "NotReachableReason", HFILL }},
23761     { &hf_gsm_map_ms_notProvidedFromVLR,
23762       { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR_element",
23763         FT_NONE, BASE_NONE, NULL, 0,
23764         NULL, HFILL }},
23765     { &hf_gsm_map_ms_notProvidedFromSGSNorMME,
23766       { "notProvidedFromSGSNorMME", "gsm_map.ms.notProvidedFromSGSNorMME_element",
23767         FT_NONE, BASE_NONE, NULL, 0,
23768         NULL, HFILL }},
23769     { &hf_gsm_map_ms_ps_Detached,
23770       { "ps-Detached", "gsm_map.ms.ps_Detached_element",
23771         FT_NONE, BASE_NONE, NULL, 0,
23772         NULL, HFILL }},
23773     { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging,
23774       { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging_element",
23775         FT_NONE, BASE_NONE, NULL, 0,
23776         NULL, HFILL }},
23777     { &hf_gsm_map_ms_ps_AttachedReachableForPaging,
23778       { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging_element",
23779         FT_NONE, BASE_NONE, NULL, 0,
23780         NULL, HFILL }},
23781     { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging,
23782       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging",
23783         FT_UINT32, BASE_DEC, NULL, 0,
23784         "PDP_ContextInfoList", HFILL }},
23785     { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging,
23786       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging",
23787         FT_UINT32, BASE_DEC, NULL, 0,
23788         "PDP_ContextInfoList", HFILL }},
23789     { &hf_gsm_map_ms_PDP_ContextInfoList_item,
23790       { "PDP-ContextInfo", "gsm_map.ms.PDP_ContextInfo_element",
23791         FT_NONE, BASE_NONE, NULL, 0,
23792         NULL, HFILL }},
23793     { &hf_gsm_map_ms_pdp_ContextIdentifier,
23794       { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier",
23795         FT_UINT32, BASE_DEC, NULL, 0,
23796         "ContextId", HFILL }},
23797     { &hf_gsm_map_ms_pdp_ContextActive,
23798       { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive_element",
23799         FT_NONE, BASE_NONE, NULL, 0,
23800         NULL, HFILL }},
23801     { &hf_gsm_map_ms_apn_Subscribed,
23802       { "apn-Subscribed", "gsm_map.ms.apn_Subscribed",
23803         FT_BYTES, BASE_NONE, NULL, 0,
23804         "APN", HFILL }},
23805     { &hf_gsm_map_ms_apn_InUse,
23806       { "apn-InUse", "gsm_map.ms.apn_InUse",
23807         FT_BYTES, BASE_NONE, NULL, 0,
23808         "APN", HFILL }},
23809     { &hf_gsm_map_ms_nsapi,
23810       { "nsapi", "gsm_map.ms.nsapi",
23811         FT_UINT32, BASE_DEC, NULL, 0,
23812         NULL, HFILL }},
23813     { &hf_gsm_map_ms_transactionId,
23814       { "transactionId", "gsm_map.ms.transactionId",
23815         FT_BYTES, BASE_NONE, NULL, 0,
23816         NULL, HFILL }},
23817     { &hf_gsm_map_ms_teid_ForGnAndGp,
23818       { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp",
23819         FT_BYTES, BASE_NONE, NULL, 0,
23820         "TEID", HFILL }},
23821     { &hf_gsm_map_ms_teid_ForIu,
23822       { "teid-ForIu", "gsm_map.ms.teid_ForIu",
23823         FT_BYTES, BASE_NONE, NULL, 0,
23824         "TEID", HFILL }},
23825     { &hf_gsm_map_ms_qos_Subscribed_01,
23826       { "qos-Subscribed", "gsm_map.ms.qos_Subscribed",
23827         FT_BYTES, BASE_NONE, NULL, 0,
23828         "Ext_QoS_Subscribed", HFILL }},
23829     { &hf_gsm_map_ms_qos_Requested,
23830       { "qos-Requested", "gsm_map.ms.qos_Requested",
23831         FT_BYTES, BASE_NONE, NULL, 0,
23832         "Ext_QoS_Subscribed", HFILL }},
23833     { &hf_gsm_map_ms_qos_Negotiated,
23834       { "qos-Negotiated", "gsm_map.ms.qos_Negotiated",
23835         FT_BYTES, BASE_NONE, NULL, 0,
23836         "Ext_QoS_Subscribed", HFILL }},
23837     { &hf_gsm_map_ms_chargingId,
23838       { "chargingId", "gsm_map.ms.chargingId",
23839         FT_BYTES, BASE_NONE, NULL, 0,
23840         "GPRSChargingID", HFILL }},
23841     { &hf_gsm_map_ms_rnc_Address,
23842       { "rnc-Address", "gsm_map.ms.rnc_Address",
23843         FT_BYTES, BASE_NONE, NULL, 0,
23844         "GSN_Address", HFILL }},
23845     { &hf_gsm_map_ms_qos2_Subscribed,
23846       { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed",
23847         FT_BYTES, BASE_NONE, NULL, 0,
23848         "Ext2_QoS_Subscribed", HFILL }},
23849     { &hf_gsm_map_ms_qos2_Requested,
23850       { "qos2-Requested", "gsm_map.ms.qos2_Requested",
23851         FT_BYTES, BASE_NONE, NULL, 0,
23852         "Ext2_QoS_Subscribed", HFILL }},
23853     { &hf_gsm_map_ms_qos2_Negotiated,
23854       { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated",
23855         FT_BYTES, BASE_NONE, NULL, 0,
23856         "Ext2_QoS_Subscribed", HFILL }},
23857     { &hf_gsm_map_ms_qos3_Subscribed,
23858       { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed",
23859         FT_BYTES, BASE_NONE, NULL, 0,
23860         "Ext3_QoS_Subscribed", HFILL }},
23861     { &hf_gsm_map_ms_qos3_Requested,
23862       { "qos3-Requested", "gsm_map.ms.qos3_Requested",
23863         FT_BYTES, BASE_NONE, NULL, 0,
23864         "Ext3_QoS_Subscribed", HFILL }},
23865     { &hf_gsm_map_ms_qos3_Negotiated,
23866       { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated",
23867         FT_BYTES, BASE_NONE, NULL, 0,
23868         "Ext3_QoS_Subscribed", HFILL }},
23869     { &hf_gsm_map_ms_qos4_Subscribed,
23870       { "qos4-Subscribed", "gsm_map.ms.qos4_Subscribed",
23871         FT_BYTES, BASE_NONE, NULL, 0,
23872         "Ext4_QoS_Subscribed", HFILL }},
23873     { &hf_gsm_map_ms_qos4_Requested,
23874       { "qos4-Requested", "gsm_map.ms.qos4_Requested",
23875         FT_BYTES, BASE_NONE, NULL, 0,
23876         "Ext4_QoS_Subscribed", HFILL }},
23877     { &hf_gsm_map_ms_qos4_Negotiated,
23878       { "qos4-Negotiated", "gsm_map.ms.qos4_Negotiated",
23879         FT_BYTES, BASE_NONE, NULL, 0,
23880         "Ext4_QoS_Subscribed", HFILL }},
23881     { &hf_gsm_map_ms_subscriberIdentity,
23882       { "subscriberIdentity", "gsm_map.ms.subscriberIdentity",
23883         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
23884         NULL, HFILL }},
23885     { &hf_gsm_map_ms_requestedSubscriptionInfo,
23886       { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo_element",
23887         FT_NONE, BASE_NONE, NULL, 0,
23888         NULL, HFILL }},
23889     { &hf_gsm_map_ms_callForwardingData,
23890       { "callForwardingData", "gsm_map.ms.callForwardingData_element",
23891         FT_NONE, BASE_NONE, NULL, 0,
23892         NULL, HFILL }},
23893     { &hf_gsm_map_ms_callBarringData,
23894       { "callBarringData", "gsm_map.ms.callBarringData_element",
23895         FT_NONE, BASE_NONE, NULL, 0,
23896         NULL, HFILL }},
23897     { &hf_gsm_map_ms_odb_Info,
23898       { "odb-Info", "gsm_map.ms.odb_Info_element",
23899         FT_NONE, BASE_NONE, NULL, 0,
23900         NULL, HFILL }},
23901     { &hf_gsm_map_ms_camel_SubscriptionInfo,
23902       { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo_element",
23903         FT_NONE, BASE_NONE, NULL, 0,
23904         NULL, HFILL }},
23905     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases,
23906       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases",
23907         FT_BYTES, BASE_NONE, NULL, 0,
23908         "SupportedCamelPhases", HFILL }},
23909     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases,
23910       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases",
23911         FT_BYTES, BASE_NONE, NULL, 0,
23912         "SupportedCamelPhases", HFILL }},
23913     { &hf_gsm_map_ms_offeredCamel4CSIsInVLR,
23914       { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR",
23915         FT_BYTES, BASE_NONE, NULL, 0,
23916         "OfferedCamel4CSIs", HFILL }},
23917     { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN,
23918       { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN",
23919         FT_BYTES, BASE_NONE, NULL, 0,
23920         "OfferedCamel4CSIs", HFILL }},
23921     { &hf_gsm_map_ms_msisdn_BS_List,
23922       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List",
23923         FT_UINT32, BASE_DEC, NULL, 0,
23924         NULL, HFILL }},
23925     { &hf_gsm_map_ms_cw_Data,
23926       { "cw-Data", "gsm_map.ms.cw_Data_element",
23927         FT_NONE, BASE_NONE, NULL, 0,
23928         "CallWaitingData", HFILL }},
23929     { &hf_gsm_map_ms_ch_Data,
23930       { "ch-Data", "gsm_map.ms.ch_Data_element",
23931         FT_NONE, BASE_NONE, NULL, 0,
23932         "CallHoldData", HFILL }},
23933     { &hf_gsm_map_ms_clip_Data,
23934       { "clip-Data", "gsm_map.ms.clip_Data_element",
23935         FT_NONE, BASE_NONE, NULL, 0,
23936         "ClipData", HFILL }},
23937     { &hf_gsm_map_ms_clir_Data,
23938       { "clir-Data", "gsm_map.ms.clir_Data_element",
23939         FT_NONE, BASE_NONE, NULL, 0,
23940         "ClirData", HFILL }},
23941     { &hf_gsm_map_ms_ect_data,
23942       { "ect-data", "gsm_map.ms.ect_data_element",
23943         FT_NONE, BASE_NONE, NULL, 0,
23944         "EctData", HFILL }},
23945     { &hf_gsm_map_ms_cwFeatureList,
23946       { "cwFeatureList", "gsm_map.ms.cwFeatureList",
23947         FT_UINT32, BASE_DEC, NULL, 0,
23948         "Ext_CwFeatureList", HFILL }},
23949     { &hf_gsm_map_ms_Ext_CwFeatureList_item,
23950       { "Ext-CwFeature", "gsm_map.ms.Ext_CwFeature_element",
23951         FT_NONE, BASE_NONE, NULL, 0,
23952         NULL, HFILL }},
23953     { &hf_gsm_map_ms_overrideCategory,
23954       { "overrideCategory", "gsm_map.ms.overrideCategory",
23955         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0,
23956         NULL, HFILL }},
23957     { &hf_gsm_map_ms_cliRestrictionOption,
23958       { "cliRestrictionOption", "gsm_map.ms.cliRestrictionOption",
23959         FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0,
23960         NULL, HFILL }},
23961     { &hf_gsm_map_ms_requestedSS_Info,
23962       { "requestedSS-Info", "gsm_map.ms.requestedSS_Info_element",
23963         FT_NONE, BASE_NONE, NULL, 0,
23964         "SS_ForBS_Code", HFILL }},
23965     { &hf_gsm_map_ms_odb,
23966       { "odb", "gsm_map.ms.odb_element",
23967         FT_NONE, BASE_NONE, NULL, 0,
23968         NULL, HFILL }},
23969     { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo,
23970       { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo",
23971         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
23972         NULL, HFILL }},
23973     { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01,
23974       { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases_element",
23975         FT_NONE, BASE_NONE, NULL, 0,
23976         NULL, HFILL }},
23977     { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01,
23978       { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases_element",
23979         FT_NONE, BASE_NONE, NULL, 0,
23980         NULL, HFILL }},
23981     { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo,
23982       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo",
23983         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
23984         NULL, HFILL }},
23985     { &hf_gsm_map_ms_msisdn_BS_List_01,
23986       { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List_element",
23987         FT_NONE, BASE_NONE, NULL, 0,
23988         NULL, HFILL }},
23989     { &hf_gsm_map_ms_csg_SubscriptionDataRequested,
23990       { "csg-SubscriptionDataRequested", "gsm_map.ms.csg_SubscriptionDataRequested_element",
23991         FT_NONE, BASE_NONE, NULL, 0,
23992         NULL, HFILL }},
23993     { &hf_gsm_map_ms_cw_Info,
23994       { "cw-Info", "gsm_map.ms.cw_Info_element",
23995         FT_NONE, BASE_NONE, NULL, 0,
23996         NULL, HFILL }},
23997     { &hf_gsm_map_ms_clip_Info,
23998       { "clip-Info", "gsm_map.ms.clip_Info_element",
23999         FT_NONE, BASE_NONE, NULL, 0,
24000         NULL, HFILL }},
24001     { &hf_gsm_map_ms_clir_Info,
24002       { "clir-Info", "gsm_map.ms.clir_Info_element",
24003         FT_NONE, BASE_NONE, NULL, 0,
24004         NULL, HFILL }},
24005     { &hf_gsm_map_ms_hold_Info,
24006       { "hold-Info", "gsm_map.ms.hold_Info_element",
24007         FT_NONE, BASE_NONE, NULL, 0,
24008         NULL, HFILL }},
24009     { &hf_gsm_map_ms_ect_Info,
24010       { "ect-Info", "gsm_map.ms.ect_Info_element",
24011         FT_NONE, BASE_NONE, NULL, 0,
24012         NULL, HFILL }},
24013     { &hf_gsm_map_ms_MSISDN_BS_List_item,
24014       { "MSISDN-BS", "gsm_map.ms.MSISDN_BS_element",
24015         FT_NONE, BASE_NONE, NULL, 0,
24016         NULL, HFILL }},
24017     { &hf_gsm_map_ms_password,
24018       { "password", "gsm_map.ms.password",
24019         FT_STRING, BASE_NONE, NULL, 0,
24020         NULL, HFILL }},
24021     { &hf_gsm_map_ms_wrongPasswordAttemptsCounter,
24022       { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter",
24023         FT_UINT32, BASE_DEC, NULL, 0,
24024         NULL, HFILL }},
24025     { &hf_gsm_map_ms_t_CSI,
24026       { "t-CSI", "gsm_map.ms.t_CSI_element",
24027         FT_NONE, BASE_NONE, NULL, 0,
24028         NULL, HFILL }},
24029     { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList,
24030       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList",
24031         FT_UINT32, BASE_DEC, NULL, 0,
24032         "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
24033     { &hf_gsm_map_ms_tif_CSI_NotificationToCSE,
24034       { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE_element",
24035         FT_NONE, BASE_NONE, NULL, 0,
24036         NULL, HFILL }},
24037     { &hf_gsm_map_ms_specificCSIDeletedList,
24038       { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList",
24039         FT_BYTES, BASE_NONE, NULL, 0,
24040         "SpecificCSI_Withdraw", HFILL }},
24041     { &hf_gsm_map_ms_o_IM_CSI,
24042       { "o-IM-CSI", "gsm_map.ms.o_IM_CSI_element",
24043         FT_NONE, BASE_NONE, NULL, 0,
24044         "O_CSI", HFILL }},
24045     { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList,
24046       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList",
24047         FT_UINT32, BASE_DEC, NULL, 0,
24048         "O_BcsmCamelTDPCriteriaList", HFILL }},
24049     { &hf_gsm_map_ms_d_IM_CSI,
24050       { "d-IM-CSI", "gsm_map.ms.d_IM_CSI_element",
24051         FT_NONE, BASE_NONE, NULL, 0,
24052         "D_CSI", HFILL }},
24053     { &hf_gsm_map_ms_vt_IM_CSI,
24054       { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI_element",
24055         FT_NONE, BASE_NONE, NULL, 0,
24056         "T_CSI", HFILL }},
24057     { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
24058       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
24059         FT_UINT32, BASE_DEC, NULL, 0,
24060         "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
24061     { &hf_gsm_map_ms_modificationRequestFor_CF_Info,
24062       { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info_element",
24063         FT_NONE, BASE_NONE, NULL, 0,
24064         NULL, HFILL }},
24065     { &hf_gsm_map_ms_modificationRequestFor_CB_Info,
24066       { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info_element",
24067         FT_NONE, BASE_NONE, NULL, 0,
24068         NULL, HFILL }},
24069     { &hf_gsm_map_ms_modificationRequestFor_CSI,
24070       { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI_element",
24071         FT_NONE, BASE_NONE, NULL, 0,
24072         NULL, HFILL }},
24073     { &hf_gsm_map_ms_modificationRequestFor_ODB_data,
24074       { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data_element",
24075         FT_NONE, BASE_NONE, NULL, 0,
24076         NULL, HFILL }},
24077     { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data,
24078       { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data_element",
24079         FT_NONE, BASE_NONE, NULL, 0,
24080         NULL, HFILL }},
24081     { &hf_gsm_map_ms_activationRequestForUE_reachability,
24082       { "activationRequestForUE-reachability", "gsm_map.ms.activationRequestForUE_reachability",
24083         FT_BYTES, BASE_NONE, NULL, 0,
24084         "RequestedServingNode", HFILL }},
24085     { &hf_gsm_map_ms_modificationRequestFor_CSG,
24086       { "modificationRequestFor-CSG", "gsm_map.ms.modificationRequestFor_CSG_element",
24087         FT_NONE, BASE_NONE, NULL, 0,
24088         NULL, HFILL }},
24089     { &hf_gsm_map_ms_modificationRequestFor_CW_Data,
24090       { "modificationRequestFor-CW-Data", "gsm_map.ms.modificationRequestFor_CW_Data_element",
24091         FT_NONE, BASE_NONE, NULL, 0,
24092         "ModificationRequestFor_CW_Info", HFILL }},
24093     { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data,
24094       { "modificationRequestFor-CLIP-Data", "gsm_map.ms.modificationRequestFor_CLIP_Data_element",
24095         FT_NONE, BASE_NONE, NULL, 0,
24096         "ModificationRequestFor_CLIP_Info", HFILL }},
24097     { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data,
24098       { "modificationRequestFor-CLIR-Data", "gsm_map.ms.modificationRequestFor_CLIR_Data_element",
24099         FT_NONE, BASE_NONE, NULL, 0,
24100         "ModificationRequestFor_CLIR_Info", HFILL }},
24101     { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data,
24102       { "modificationRequestFor-HOLD-Data", "gsm_map.ms.modificationRequestFor_HOLD_Data_element",
24103         FT_NONE, BASE_NONE, NULL, 0,
24104         "ModificationRequestFor_CH_Info", HFILL }},
24105     { &hf_gsm_map_ms_modificationRequestFor_ECT_Data,
24106       { "modificationRequestFor-ECT-Data", "gsm_map.ms.modificationRequestFor_ECT_Data_element",
24107         FT_NONE, BASE_NONE, NULL, 0,
24108         "ModificationRequestFor_ECT_Info", HFILL }},
24109     { &hf_gsm_map_ms_modifyNotificationToCSE,
24110       { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE",
24111         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
24112         "ModificationInstruction", HFILL }},
24113     { &hf_gsm_map_ms_ss_InfoFor_CSE,
24114       { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE",
24115         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0,
24116         "Ext_SS_InfoFor_CSE", HFILL }},
24117     { &hf_gsm_map_ms_serviceCentreAddress,
24118       { "serviceCentreAddress", "gsm_map.ms.serviceCentreAddress",
24119         FT_BYTES, BASE_NONE, NULL, 0,
24120         "AddressString", HFILL }},
24121     { &hf_gsm_map_ms_forwardedToNumber_01,
24122       { "forwardedToNumber", "gsm_map.ms.forwardedToNumber",
24123         FT_BYTES, BASE_NONE, NULL, 0,
24124         "AddressString", HFILL }},
24125     { &hf_gsm_map_ms_odb_data,
24126       { "odb-data", "gsm_map.ms.odb_data_element",
24127         FT_NONE, BASE_NONE, NULL, 0,
24128         NULL, HFILL }},
24129     { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo,
24130       { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo",
24131         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0,
24132         NULL, HFILL }},
24133     { &hf_gsm_map_ms_modifyCSI_State,
24134       { "modifyCSI-State", "gsm_map.ms.modifyCSI_State",
24135         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
24136         "ModificationInstruction", HFILL }},
24137     { &hf_gsm_map_ms_modifyRegistrationStatus,
24138       { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus",
24139         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0,
24140         "ModificationInstruction", HFILL }},
24141     { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress,
24142       { "ip-sm-gw-DiameterAddress", "gsm_map.ms.ip_sm_gw_DiameterAddress_element",
24143         FT_NONE, BASE_NONE, NULL, 0,
24144         "NetworkNodeDiameterAddress", HFILL }},
24145     { &hf_gsm_map_ms_forwardingInfoFor_CSE,
24146       { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE_element",
24147         FT_NONE, BASE_NONE, NULL, 0,
24148         "Ext_ForwardingInfoFor_CSE", HFILL }},
24149     { &hf_gsm_map_ms_callBarringInfoFor_CSE,
24150       { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE_element",
24151         FT_NONE, BASE_NONE, NULL, 0,
24152         "Ext_CallBarringInfoFor_CSE", HFILL }},
24153     { &hf_gsm_map_ms_allInformationSent,
24154       { "allInformationSent", "gsm_map.ms.allInformationSent_element",
24155         FT_NONE, BASE_NONE, NULL, 0,
24156         NULL, HFILL }},
24157     { &hf_gsm_map_ms_ue_reachable,
24158       { "ue-reachable", "gsm_map.ms.ue_reachable",
24159         FT_BYTES, BASE_NONE, NULL, 0,
24160         "ServingNode", HFILL }},
24161     { &hf_gsm_map_ms_eventMet,
24162       { "eventMet", "gsm_map.ms.eventMet",
24163         FT_BYTES, BASE_NONE, NULL, 0,
24164         "MM_Code", HFILL }},
24165     { &hf_gsm_map_ms_supportedCAMELPhases,
24166       { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases",
24167         FT_BYTES, BASE_NONE, NULL, 0,
24168         NULL, HFILL }},
24169     { &hf_gsm_map_ms_offeredCamel4Functionalities,
24170       { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities",
24171         FT_BYTES, BASE_NONE, NULL, 0,
24172         NULL, HFILL }},
24173     { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator,
24174       { "temporaryEmptySubscriptiondataIndicator", "gsm_map.ms.temporaryEmptySubscriptiondataIndicator_element",
24175         FT_NONE, BASE_NONE, NULL, 0,
24176         NULL, HFILL }},
24177     { &hf_gsm_map_ms_naea_PreferredCI,
24178       { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI_element",
24179         FT_NONE, BASE_NONE, NULL, 0,
24180         NULL, HFILL }},
24181     { &hf_gsm_map_ms_gprsSubscriptionData,
24182       { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData_element",
24183         FT_NONE, BASE_NONE, NULL, 0,
24184         NULL, HFILL }},
24185     { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature,
24186       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature_element",
24187         FT_NONE, BASE_NONE, NULL, 0,
24188         NULL, HFILL }},
24189     { &hf_gsm_map_ms_networkAccessMode,
24190       { "networkAccessMode", "gsm_map.ms.networkAccessMode",
24191         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0,
24192         NULL, HFILL }},
24193     { &hf_gsm_map_ms_lsaInformation,
24194       { "lsaInformation", "gsm_map.ms.lsaInformation_element",
24195         FT_NONE, BASE_NONE, NULL, 0,
24196         NULL, HFILL }},
24197     { &hf_gsm_map_ms_lmu_Indicator,
24198       { "lmu-Indicator", "gsm_map.ms.lmu_Indicator_element",
24199         FT_NONE, BASE_NONE, NULL, 0,
24200         NULL, HFILL }},
24201     { &hf_gsm_map_ms_lcsInformation,
24202       { "lcsInformation", "gsm_map.ms.lcsInformation_element",
24203         FT_NONE, BASE_NONE, NULL, 0,
24204         NULL, HFILL }},
24205     { &hf_gsm_map_ms_istAlertTimer,
24206       { "istAlertTimer", "gsm_map.ms.istAlertTimer",
24207         FT_UINT32, BASE_DEC, NULL, 0,
24208         "IST_AlertTimerValue", HFILL }},
24209     { &hf_gsm_map_ms_superChargerSupportedInHLR,
24210       { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR",
24211         FT_BYTES, BASE_NONE, NULL, 0,
24212         "AgeIndicator", HFILL }},
24213     { &hf_gsm_map_ms_mc_SS_Info,
24214       { "mc-SS-Info", "gsm_map.ms.mc_SS_Info_element",
24215         FT_NONE, BASE_NONE, NULL, 0,
24216         NULL, HFILL }},
24217     { &hf_gsm_map_ms_cs_AllocationRetentionPriority,
24218       { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority",
24219         FT_BYTES, BASE_NONE, NULL, 0,
24220         NULL, HFILL }},
24221     { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo,
24222       { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo_element",
24223         FT_NONE, BASE_NONE, NULL, 0,
24224         NULL, HFILL }},
24225     { &hf_gsm_map_ms_accessRestrictionData,
24226       { "accessRestrictionData", "gsm_map.ms.accessRestrictionData",
24227         FT_BYTES, BASE_NONE, NULL, 0,
24228         NULL, HFILL }},
24229     { &hf_gsm_map_ms_ics_Indicator,
24230       { "ics-Indicator", "gsm_map.ms.ics_Indicator",
24231         FT_BOOLEAN, BASE_NONE, NULL, 0,
24232         "BOOLEAN", HFILL }},
24233     { &hf_gsm_map_ms_eps_SubscriptionData,
24234       { "eps-SubscriptionData", "gsm_map.ms.eps_SubscriptionData_element",
24235         FT_NONE, BASE_NONE, NULL, 0,
24236         NULL, HFILL }},
24237     { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator,
24238       { "ue-ReachabilityRequestIndicator", "gsm_map.ms.ue_ReachabilityRequestIndicator_element",
24239         FT_NONE, BASE_NONE, NULL, 0,
24240         NULL, HFILL }},
24241     { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer,
24242       { "subscribedPeriodicRAUTAUtimer", "gsm_map.ms.subscribedPeriodicRAUTAUtimer",
24243         FT_UINT32, BASE_DEC, NULL, 0,
24244         NULL, HFILL }},
24245     { &hf_gsm_map_ms_vplmnLIPAAllowed,
24246       { "vplmnLIPAAllowed", "gsm_map.ms.vplmnLIPAAllowed_element",
24247         FT_NONE, BASE_NONE, NULL, 0,
24248         NULL, HFILL }},
24249     { &hf_gsm_map_ms_mdtUserConsent,
24250       { "mdtUserConsent", "gsm_map.ms.mdtUserConsent",
24251         FT_BOOLEAN, BASE_NONE, NULL, 0,
24252         "BOOLEAN", HFILL }},
24253     { &hf_gsm_map_ms_subscribedPeriodicLAUtimer,
24254       { "subscribedPeriodicLAUtimer", "gsm_map.ms.subscribedPeriodicLAUtimer",
24255         FT_UINT32, BASE_DEC, NULL, 0,
24256         NULL, HFILL }},
24257     { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList,
24258       { "vplmn-Csg-SubscriptionDataList", "gsm_map.ms.vplmn_Csg_SubscriptionDataList",
24259         FT_UINT32, BASE_DEC, NULL, 0,
24260         NULL, HFILL }},
24261     { &hf_gsm_map_ms_additionalMSISDN,
24262       { "additionalMSISDN", "gsm_map.ms.additionalMSISDN",
24263         FT_BYTES, BASE_NONE, NULL, 0,
24264         "ISDN_AddressString", HFILL }},
24265     { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision,
24266       { "psAndSMS-OnlyServiceProvision", "gsm_map.ms.psAndSMS_OnlyServiceProvision_element",
24267         FT_NONE, BASE_NONE, NULL, 0,
24268         NULL, HFILL }},
24269     { &hf_gsm_map_ms_smsInSGSNAllowed,
24270       { "smsInSGSNAllowed", "gsm_map.ms.smsInSGSNAllowed_element",
24271         FT_NONE, BASE_NONE, NULL, 0,
24272         NULL, HFILL }},
24273     { &hf_gsm_map_ms_SupportedRAT_Types_utran,
24274       { "utran", "gsm_map.ms.utran",
24275         FT_BOOLEAN, 8, NULL, 0x80,
24276         NULL, HFILL }},
24277     { &hf_gsm_map_ms_SupportedRAT_Types_geran,
24278       { "geran", "gsm_map.ms.geran",
24279         FT_BOOLEAN, 8, NULL, 0x40,
24280         NULL, HFILL }},
24281     { &hf_gsm_map_ms_SupportedRAT_Types_gan,
24282       { "gan", "gsm_map.ms.gan",
24283         FT_BOOLEAN, 8, NULL, 0x20,
24284         NULL, HFILL }},
24285     { &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution,
24286       { "i-hspa-evolution", "gsm_map.ms.i-hspa-evolution",
24287         FT_BOOLEAN, 8, NULL, 0x10,
24288         NULL, HFILL }},
24289     { &hf_gsm_map_ms_SupportedRAT_Types_e_utran,
24290       { "e-utran", "gsm_map.ms.e-utran",
24291         FT_BOOLEAN, 8, NULL, 0x08,
24292         NULL, HFILL }},
24293     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
24294       { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1",
24295         FT_BOOLEAN, 8, NULL, 0x80,
24296         NULL, HFILL }},
24297     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
24298       { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2",
24299         FT_BOOLEAN, 8, NULL, 0x40,
24300         NULL, HFILL }},
24301     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
24302       { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3",
24303         FT_BOOLEAN, 8, NULL, 0x20,
24304         NULL, HFILL }},
24305     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
24306       { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4",
24307         FT_BOOLEAN, 8, NULL, 0x10,
24308         NULL, HFILL }},
24309     { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5,
24310       { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5",
24311         FT_BOOLEAN, 8, NULL, 0x08,
24312         NULL, HFILL }},
24313     { &hf_gsm_map_ms_ISR_Information_updateLocation,
24314       { "updateLocation", "gsm_map.ms.updateLocation",
24315         FT_BOOLEAN, 8, NULL, 0x80,
24316         NULL, HFILL }},
24317     { &hf_gsm_map_ms_ISR_Information_cancelSGSN,
24318       { "cancelSGSN", "gsm_map.ms.cancelSGSN",
24319         FT_BOOLEAN, 8, NULL, 0x40,
24320         NULL, HFILL }},
24321     { &hf_gsm_map_ms_ISR_Information_initialAttachIndicator,
24322       { "initialAttachIndicator", "gsm_map.ms.initialAttachIndicator",
24323         FT_BOOLEAN, 8, NULL, 0x20,
24324         NULL, HFILL }},
24325     { &hf_gsm_map_ms_SupportedFeatures_odb_all_apn,
24326       { "odb-all-apn", "gsm_map.ms.odb-all-apn",
24327         FT_BOOLEAN, 8, NULL, 0x80,
24328         NULL, HFILL }},
24329     { &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN,
24330       { "odb-HPLMN-APN", "gsm_map.ms.odb-HPLMN-APN",
24331         FT_BOOLEAN, 8, NULL, 0x40,
24332         NULL, HFILL }},
24333     { &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN,
24334       { "odb-VPLMN-APN", "gsm_map.ms.odb-VPLMN-APN",
24335         FT_BOOLEAN, 8, NULL, 0x20,
24336         NULL, HFILL }},
24337     { &hf_gsm_map_ms_SupportedFeatures_odb_all_og,
24338       { "odb-all-og", "gsm_map.ms.odb-all-og",
24339         FT_BOOLEAN, 8, NULL, 0x10,
24340         NULL, HFILL }},
24341     { &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og,
24342       { "odb-all-international-og", "gsm_map.ms.odb-all-international-og",
24343         FT_BOOLEAN, 8, NULL, 0x08,
24344         NULL, HFILL }},
24345     { &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country,
24346       { "odb-all-int-og-not-to-HPLMN-country", "gsm_map.ms.odb-all-int-og-not-to-HPLMN-country",
24347         FT_BOOLEAN, 8, NULL, 0x04,
24348         NULL, HFILL }},
24349     { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og,
24350       { "odb-all-interzonal-og", "gsm_map.ms.odb-all-interzonal-og",
24351         FT_BOOLEAN, 8, NULL, 0x02,
24352         NULL, HFILL }},
24353     { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country,
24354       { "odb-all-interzonal-og-not-to-HPLMN-country", "gsm_map.ms.odb-all-interzonal-og-not-to-HPLMN-country",
24355         FT_BOOLEAN, 8, NULL, 0x01,
24356         NULL, HFILL }},
24357     { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country,
24358       { "odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country", "gsm_map.ms.odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country",
24359         FT_BOOLEAN, 8, NULL, 0x80,
24360         NULL, HFILL }},
24361     { &hf_gsm_map_ms_SupportedFeatures_regSub,
24362       { "regSub", "gsm_map.ms.regSub",
24363         FT_BOOLEAN, 8, NULL, 0x40,
24364         NULL, HFILL }},
24365     { &hf_gsm_map_ms_SupportedFeatures_trace,
24366       { "trace", "gsm_map.ms.trace",
24367         FT_BOOLEAN, 8, NULL, 0x20,
24368         NULL, HFILL }},
24369     { &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep,
24370       { "lcs-all-PrivExcep", "gsm_map.ms.lcs-all-PrivExcep",
24371         FT_BOOLEAN, 8, NULL, 0x10,
24372         NULL, HFILL }},
24373     { &hf_gsm_map_ms_SupportedFeatures_lcs_universal,
24374       { "lcs-universal", "gsm_map.ms.lcs-universal",
24375         FT_BOOLEAN, 8, NULL, 0x08,
24376         NULL, HFILL }},
24377     { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated,
24378       { "lcs-CallSessionRelated", "gsm_map.ms.lcs-CallSessionRelated",
24379         FT_BOOLEAN, 8, NULL, 0x04,
24380         NULL, HFILL }},
24381     { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated,
24382       { "lcs-CallSessionUnrelated", "gsm_map.ms.lcs-CallSessionUnrelated",
24383         FT_BOOLEAN, 8, NULL, 0x02,
24384         NULL, HFILL }},
24385     { &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator,
24386       { "lcs-PLMN-operator", "gsm_map.ms.lcs-PLMN-operator",
24387         FT_BOOLEAN, 8, NULL, 0x01,
24388         NULL, HFILL }},
24389     { &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType,
24390       { "lcs-ServiceType", "gsm_map.ms.lcs-ServiceType",
24391         FT_BOOLEAN, 8, NULL, 0x80,
24392         NULL, HFILL }},
24393     { &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS,
24394       { "lcs-all-MOLR-SS", "gsm_map.ms.lcs-all-MOLR-SS",
24395         FT_BOOLEAN, 8, NULL, 0x40,
24396         NULL, HFILL }},
24397     { &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation,
24398       { "lcs-basicSelfLocation", "gsm_map.ms.lcs-basicSelfLocation",
24399         FT_BOOLEAN, 8, NULL, 0x20,
24400         NULL, HFILL }},
24401     { &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation,
24402       { "lcs-autonomousSelfLocation", "gsm_map.ms.lcs-autonomousSelfLocation",
24403         FT_BOOLEAN, 8, NULL, 0x10,
24404         NULL, HFILL }},
24405     { &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty,
24406       { "lcs-transferToThirdParty", "gsm_map.ms.lcs-transferToThirdParty",
24407         FT_BOOLEAN, 8, NULL, 0x08,
24408         NULL, HFILL }},
24409     { &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp,
24410       { "sm-mo-pp", "gsm_map.ms.sm-mo-pp",
24411         FT_BOOLEAN, 8, NULL, 0x04,
24412         NULL, HFILL }},
24413     { &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls,
24414       { "barring-OutgoingCalls", "gsm_map.ms.barring-OutgoingCalls",
24415         FT_BOOLEAN, 8, NULL, 0x02,
24416         NULL, HFILL }},
24417     { &hf_gsm_map_ms_SupportedFeatures_baoc,
24418       { "baoc", "gsm_map.ms.baoc",
24419         FT_BOOLEAN, 8, NULL, 0x01,
24420         NULL, HFILL }},
24421     { &hf_gsm_map_ms_SupportedFeatures_boic,
24422       { "boic", "gsm_map.ms.boic",
24423         FT_BOOLEAN, 8, NULL, 0x80,
24424         NULL, HFILL }},
24425     { &hf_gsm_map_ms_SupportedFeatures_boicExHC,
24426       { "boicExHC", "gsm_map.ms.boicExHC",
24427         FT_BOOLEAN, 8, NULL, 0x40,
24428         NULL, HFILL }},
24429     { &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval,
24430       { "localTimeZoneRetrieval", "gsm_map.ms.localTimeZoneRetrieval",
24431         FT_BOOLEAN, 8, NULL, 0x20,
24432         NULL, HFILL }},
24433     { &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn,
24434       { "additionalMsisdn", "gsm_map.ms.additionalMsisdn",
24435         FT_BOOLEAN, 8, NULL, 0x10,
24436         NULL, HFILL }},
24437     { &hf_gsm_map_ms_SupportedFeatures_smsInMME,
24438       { "smsInMME", "gsm_map.ms.smsInMME",
24439         FT_BOOLEAN, 8, NULL, 0x08,
24440         NULL, HFILL }},
24441     { &hf_gsm_map_ms_SupportedFeatures_smsInSGSN,
24442       { "smsInSGSN", "gsm_map.ms.smsInSGSN",
24443         FT_BOOLEAN, 8, NULL, 0x04,
24444         NULL, HFILL }},
24445     { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit,
24446       { "permission-indicator-not-allowed-bit", "gsm_map.ms.permission-indicator-not-allowed-bit",
24447         FT_BOOLEAN, 8, NULL, 0x80,
24448         NULL, HFILL }},
24449     { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit,
24450       { "permission-indicator-spare-bit", "gsm_map.ms.permission-indicator-spare-bit",
24451         FT_BOOLEAN, 8, NULL, 0x40,
24452         NULL, HFILL }},
24453     { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator,
24454       { "forward-data-sending-indicator", "gsm_map.ms.forward-data-sending-indicator",
24455         FT_BOOLEAN, 8, NULL, 0x80,
24456         NULL, HFILL }},
24457     { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator,
24458       { "backward-data-sending-indicator", "gsm_map.ms.backward-data-sending-indicator",
24459         FT_BOOLEAN, 8, NULL, 0x40,
24460         NULL, HFILL }},
24461     { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator,
24462       { "forward-data-reception-indicator", "gsm_map.ms.forward-data-reception-indicator",
24463         FT_BOOLEAN, 8, NULL, 0x20,
24464         NULL, HFILL }},
24465     { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator,
24466       { "backward-data-reception-indicator", "gsm_map.ms.backward-data-reception-indicator",
24467         FT_BOOLEAN, 8, NULL, 0x10,
24468         NULL, HFILL }},
24469     { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus,
24470       { "equipmentStatus", "gsm_map.ms.equipmentStatus",
24471         FT_BOOLEAN, 8, NULL, 0x80,
24472         NULL, HFILL }},
24473     { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef,
24474       { "bmuef", "gsm_map.ms.bmuef",
24475         FT_BOOLEAN, 8, NULL, 0x40,
24476         NULL, HFILL }},
24477     { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed,
24478       { "utranNotAllowed", "gsm_map.ms.utranNotAllowed",
24479         FT_BOOLEAN, 8, NULL, 0x80,
24480         NULL, HFILL }},
24481     { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed,
24482       { "geranNotAllowed", "gsm_map.ms.geranNotAllowed",
24483         FT_BOOLEAN, 8, NULL, 0x40,
24484         NULL, HFILL }},
24485     { &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed,
24486       { "ganNotAllowed", "gsm_map.ms.ganNotAllowed",
24487         FT_BOOLEAN, 8, NULL, 0x20,
24488         NULL, HFILL }},
24489     { &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed,
24490       { "i-hspa-evolutionNotAllowed", "gsm_map.ms.i-hspa-evolutionNotAllowed",
24491         FT_BOOLEAN, 8, NULL, 0x10,
24492         NULL, HFILL }},
24493     { &hf_gsm_map_ms_AccessRestrictionData_e_utranNotAllowed,
24494       { "e-utranNotAllowed", "gsm_map.ms.e-utranNotAllowed",
24495         FT_BOOLEAN, 8, NULL, 0x08,
24496         NULL, HFILL }},
24497     { &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed,
24498       { "ho-toNon3GPP-AccessNotAllowed", "gsm_map.ms.ho-toNon3GPP-AccessNotAllowed",
24499         FT_BOOLEAN, 8, NULL, 0x04,
24500         NULL, HFILL }},
24501     { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred,
24502       { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred",
24503         FT_BOOLEAN, 8, NULL, 0x80,
24504         NULL, HFILL }},
24505     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred,
24506       { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred",
24507         FT_BOOLEAN, 8, NULL, 0x40,
24508         NULL, HFILL }},
24509     { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
24510       { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred",
24511         FT_BOOLEAN, 8, NULL, 0x20,
24512         NULL, HFILL }},
24513     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred,
24514       { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred",
24515         FT_BOOLEAN, 8, NULL, 0x02,
24516         NULL, HFILL }},
24517     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
24518       { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred",
24519         FT_BOOLEAN, 8, NULL, 0x01,
24520         NULL, HFILL }},
24521     { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
24522       { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
24523         FT_BOOLEAN, 8, NULL, 0x80,
24524         NULL, HFILL }},
24525     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred,
24526       { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred",
24527         FT_BOOLEAN, 8, NULL, 0x10,
24528         NULL, HFILL }},
24529     { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
24530       { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred",
24531         FT_BOOLEAN, 8, NULL, 0x08,
24532         NULL, HFILL }},
24533     { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred,
24534       { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred",
24535         FT_BOOLEAN, 8, NULL, 0x04,
24536         NULL, HFILL }},
24537     { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred,
24538       { "allECT-Barred", "gsm_map.ms.allECT-Barred",
24539         FT_BOOLEAN, 8, NULL, 0x40,
24540         NULL, HFILL }},
24541     { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred,
24542       { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred",
24543         FT_BOOLEAN, 8, NULL, 0x20,
24544         NULL, HFILL }},
24545     { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred,
24546       { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred",
24547         FT_BOOLEAN, 8, NULL, 0x10,
24548         NULL, HFILL }},
24549     { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred,
24550       { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred",
24551         FT_BOOLEAN, 8, NULL, 0x08,
24552         NULL, HFILL }},
24553     { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred,
24554       { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred",
24555         FT_BOOLEAN, 8, NULL, 0x04,
24556         NULL, HFILL }},
24557     { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred,
24558       { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred",
24559         FT_BOOLEAN, 8, NULL, 0x02,
24560         NULL, HFILL }},
24561     { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred,
24562       { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred",
24563         FT_BOOLEAN, 8, NULL, 0x01,
24564         NULL, HFILL }},
24565     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
24566       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred",
24567         FT_BOOLEAN, 8, NULL, 0x80,
24568         NULL, HFILL }},
24569     { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
24570       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred",
24571         FT_BOOLEAN, 8, NULL, 0x40,
24572         NULL, HFILL }},
24573     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
24574       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred",
24575         FT_BOOLEAN, 8, NULL, 0x20,
24576         NULL, HFILL }},
24577     { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred,
24578       { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred",
24579         FT_BOOLEAN, 8, NULL, 0x10,
24580         NULL, HFILL }},
24581     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
24582       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred",
24583         FT_BOOLEAN, 8, NULL, 0x08,
24584         NULL, HFILL }},
24585     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
24586       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred",
24587         FT_BOOLEAN, 8, NULL, 0x04,
24588         NULL, HFILL }},
24589     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred,
24590       { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred",
24591         FT_BOOLEAN, 8, NULL, 0x02,
24592         NULL, HFILL }},
24593     { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
24594       { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred",
24595         FT_BOOLEAN, 8, NULL, 0x01,
24596         NULL, HFILL }},
24597     { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred,
24598       { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred",
24599         FT_BOOLEAN, 8, NULL, 0x80,
24600         NULL, HFILL }},
24601     { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
24602       { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred",
24603         FT_BOOLEAN, 8, NULL, 0x40,
24604         NULL, HFILL }},
24605     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred,
24606       { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred",
24607         FT_BOOLEAN, 8, NULL, 0x20,
24608         NULL, HFILL }},
24609     { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
24610       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred",
24611         FT_BOOLEAN, 8, NULL, 0x10,
24612         NULL, HFILL }},
24613     { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred,
24614       { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred",
24615         FT_BOOLEAN, 8, NULL, 0x08,
24616         NULL, HFILL }},
24617     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1,
24618       { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1",
24619         FT_BOOLEAN, 8, NULL, 0x80,
24620         NULL, HFILL }},
24621     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2,
24622       { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2",
24623         FT_BOOLEAN, 8, NULL, 0x40,
24624         NULL, HFILL }},
24625     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3,
24626       { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3",
24627         FT_BOOLEAN, 8, NULL, 0x20,
24628         NULL, HFILL }},
24629     { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4,
24630       { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4",
24631         FT_BOOLEAN, 8, NULL, 0x10,
24632         NULL, HFILL }},
24633     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi,
24634       { "o-csi", "gsm_map.ms.o-csi",
24635         FT_BOOLEAN, 8, NULL, 0x80,
24636         NULL, HFILL }},
24637     { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi,
24638       { "ss-csi", "gsm_map.ms.ss-csi",
24639         FT_BOOLEAN, 8, NULL, 0x40,
24640         NULL, HFILL }},
24641     { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi,
24642       { "tif-csi", "gsm_map.ms.tif-csi",
24643         FT_BOOLEAN, 8, NULL, 0x20,
24644         NULL, HFILL }},
24645     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi,
24646       { "d-csi", "gsm_map.ms.d-csi",
24647         FT_BOOLEAN, 8, NULL, 0x10,
24648         NULL, HFILL }},
24649     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi,
24650       { "vt-csi", "gsm_map.ms.vt-csi",
24651         FT_BOOLEAN, 8, NULL, 0x08,
24652         NULL, HFILL }},
24653     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi,
24654       { "mo-sms-csi", "gsm_map.ms.mo-sms-csi",
24655         FT_BOOLEAN, 8, NULL, 0x04,
24656         NULL, HFILL }},
24657     { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi,
24658       { "m-csi", "gsm_map.ms.m-csi",
24659         FT_BOOLEAN, 8, NULL, 0x02,
24660         NULL, HFILL }},
24661     { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi,
24662       { "gprs-csi", "gsm_map.ms.gprs-csi",
24663         FT_BOOLEAN, 8, NULL, 0x01,
24664         NULL, HFILL }},
24665     { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi,
24666       { "t-csi", "gsm_map.ms.t-csi",
24667         FT_BOOLEAN, 8, NULL, 0x80,
24668         NULL, HFILL }},
24669     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi,
24670       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
24671         FT_BOOLEAN, 8, NULL, 0x40,
24672         NULL, HFILL }},
24673     { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi,
24674       { "mg-csi", "gsm_map.ms.mg-csi",
24675         FT_BOOLEAN, 8, NULL, 0x20,
24676         NULL, HFILL }},
24677     { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI,
24678       { "o-IM-CSI", "gsm_map.ms.o-IM-CSI",
24679         FT_BOOLEAN, 8, NULL, 0x10,
24680         NULL, HFILL }},
24681     { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI,
24682       { "d-IM-CSI", "gsm_map.ms.d-IM-CSI",
24683         FT_BOOLEAN, 8, NULL, 0x08,
24684         NULL, HFILL }},
24685     { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI,
24686       { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI",
24687         FT_BOOLEAN, 8, NULL, 0x04,
24688         NULL, HFILL }},
24689     { &hf_gsm_map_ms_SupportedCamelPhases_phase1,
24690       { "phase1", "gsm_map.ms.phase1",
24691         FT_BOOLEAN, 8, NULL, 0x80,
24692         NULL, HFILL }},
24693     { &hf_gsm_map_ms_SupportedCamelPhases_phase2,
24694       { "phase2", "gsm_map.ms.phase2",
24695         FT_BOOLEAN, 8, NULL, 0x40,
24696         NULL, HFILL }},
24697     { &hf_gsm_map_ms_SupportedCamelPhases_phase3,
24698       { "phase3", "gsm_map.ms.phase3",
24699         FT_BOOLEAN, 8, NULL, 0x20,
24700         NULL, HFILL }},
24701     { &hf_gsm_map_ms_SupportedCamelPhases_phase4,
24702       { "phase4", "gsm_map.ms.phase4",
24703         FT_BOOLEAN, 8, NULL, 0x10,
24704         NULL, HFILL }},
24705     { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi,
24706       { "o-csi", "gsm_map.ms.o-csi",
24707         FT_BOOLEAN, 8, NULL, 0x80,
24708         NULL, HFILL }},
24709     { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi,
24710       { "d-csi", "gsm_map.ms.d-csi",
24711         FT_BOOLEAN, 8, NULL, 0x40,
24712         NULL, HFILL }},
24713     { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi,
24714       { "vt-csi", "gsm_map.ms.vt-csi",
24715         FT_BOOLEAN, 8, NULL, 0x20,
24716         NULL, HFILL }},
24717     { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi,
24718       { "t-csi", "gsm_map.ms.t-csi",
24719         FT_BOOLEAN, 8, NULL, 0x10,
24720         NULL, HFILL }},
24721     { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi,
24722       { "mt-sms-csi", "gsm_map.ms.mt-sms-csi",
24723         FT_BOOLEAN, 8, NULL, 0x08,
24724         NULL, HFILL }},
24725     { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi,
24726       { "mg-csi", "gsm_map.ms.mg-csi",
24727         FT_BOOLEAN, 8, NULL, 0x04,
24728         NULL, HFILL }},
24729     { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements,
24730       { "psi-enhancements", "gsm_map.ms.psi-enhancements",
24731         FT_BOOLEAN, 8, NULL, 0x02,
24732         NULL, HFILL }},
24733     { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt,
24734       { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt",
24735         FT_BOOLEAN, 8, NULL, 0x80,
24736         NULL, HFILL }},
24737     { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg,
24738       { "splitLeg", "gsm_map.ms.splitLeg",
24739         FT_BOOLEAN, 8, NULL, 0x40,
24740         NULL, HFILL }},
24741     { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg,
24742       { "moveLeg", "gsm_map.ms.moveLeg",
24743         FT_BOOLEAN, 8, NULL, 0x20,
24744         NULL, HFILL }},
24745     { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg,
24746       { "disconnectLeg", "gsm_map.ms.disconnectLeg",
24747         FT_BOOLEAN, 8, NULL, 0x10,
24748         NULL, HFILL }},
24749     { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased,
24750       { "entityReleased", "gsm_map.ms.entityReleased",
24751         FT_BOOLEAN, 8, NULL, 0x08,
24752         NULL, HFILL }},
24753     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument,
24754       { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument",
24755         FT_BOOLEAN, 8, NULL, 0x04,
24756         NULL, HFILL }},
24757     { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone,
24758       { "playTone", "gsm_map.ms.playTone",
24759         FT_BOOLEAN, 8, NULL, 0x02,
24760         NULL, HFILL }},
24761     { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall,
24762       { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall",
24763         FT_BOOLEAN, 8, NULL, 0x01,
24764         NULL, HFILL }},
24765     { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator,
24766       { "chargingIndicator", "gsm_map.ms.chargingIndicator",
24767         FT_BOOLEAN, 8, NULL, 0x80,
24768         NULL, HFILL }},
24769     { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP,
24770       { "alertingDP", "gsm_map.ms.alertingDP",
24771         FT_BOOLEAN, 8, NULL, 0x40,
24772         NULL, HFILL }},
24773     { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting,
24774       { "locationAtAlerting", "gsm_map.ms.locationAtAlerting",
24775         FT_BOOLEAN, 8, NULL, 0x20,
24776         NULL, HFILL }},
24777     { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP,
24778       { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP",
24779         FT_BOOLEAN, 8, NULL, 0x10,
24780         NULL, HFILL }},
24781     { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions,
24782       { "or-Interactions", "gsm_map.ms.or-Interactions",
24783         FT_BOOLEAN, 8, NULL, 0x08,
24784         NULL, HFILL }},
24785     { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements,
24786       { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements",
24787         FT_BOOLEAN, 8, NULL, 0x04,
24788         NULL, HFILL }},
24789     { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements,
24790       { "cf-Enhancements", "gsm_map.ms.cf-Enhancements",
24791         FT_BOOLEAN, 8, NULL, 0x02,
24792         NULL, HFILL }},
24793     { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
24794       { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices",
24795         FT_BOOLEAN, 8, NULL, 0x01,
24796         NULL, HFILL }},
24797     { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
24798       { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices",
24799         FT_BOOLEAN, 8, NULL, 0x80,
24800         NULL, HFILL }},
24801     { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
24802       { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP",
24803         FT_BOOLEAN, 8, NULL, 0x40,
24804         NULL, HFILL }},
24805     { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP,
24806       { "serviceChangeDP", "gsm_map.ms.serviceChangeDP",
24807         FT_BOOLEAN, 8, NULL, 0x20,
24808         NULL, HFILL }},
24809     { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation,
24810       { "collectInformation", "gsm_map.ms.collectInformation",
24811         FT_BOOLEAN, 8, NULL, 0x10,
24812         NULL, HFILL }},
24813     { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest,
24814       { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest",
24815         FT_BOOLEAN, 8, NULL, 0x80,
24816         NULL, HFILL }},
24817     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest,
24818       { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest",
24819         FT_BOOLEAN, 8, NULL, 0x40,
24820         NULL, HFILL }},
24821     { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset,
24822       { "emergencyReset", "gsm_map.ms.emergencyReset",
24823         FT_BOOLEAN, 8, NULL, 0x20,
24824         NULL, HFILL }},
24825     { &hf_gsm_map_ms_RequestedNodes_mme,
24826       { "mme", "gsm_map.ms.mme",
24827         FT_BOOLEAN, 8, NULL, 0x80,
24828         NULL, HFILL }},
24829     { &hf_gsm_map_ms_RequestedNodes_sgsn,
24830       { "sgsn", "gsm_map.ms.sgsn",
24831         FT_BOOLEAN, 8, NULL, 0x40,
24832         NULL, HFILL }},
24833     { &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn,
24834       { "mmeAndSgsn", "gsm_map.ms.mmeAndSgsn",
24835         FT_BOOLEAN, 8, NULL, 0x80,
24836         NULL, HFILL }},
24837     { &hf_gsm_map_ms_ServingNode_mme,
24838       { "mme", "gsm_map.ms.mme",
24839         FT_BOOLEAN, 8, NULL, 0x80,
24840         NULL, HFILL }},
24841     { &hf_gsm_map_ms_ServingNode_sgsn,
24842       { "sgsn", "gsm_map.ms.sgsn",
24843         FT_BOOLEAN, 8, NULL, 0x40,
24844         NULL, HFILL }},
24845
24846 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
24847
24848     { &hf_gsm_map_ch_cug_Interlock,
24849       { "cug-Interlock", "gsm_map.ch.cug_Interlock",
24850         FT_BYTES, BASE_NONE, NULL, 0,
24851         NULL, HFILL }},
24852     { &hf_gsm_map_ch_cug_OutgoingAccess,
24853       { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess_element",
24854         FT_NONE, BASE_NONE, NULL, 0,
24855         NULL, HFILL }},
24856     { &hf_gsm_map_ch_extensionContainer,
24857       { "extensionContainer", "gsm_map.ch.extensionContainer_element",
24858         FT_NONE, BASE_NONE, NULL, 0,
24859         NULL, HFILL }},
24860     { &hf_gsm_map_ch_msisdn,
24861       { "msisdn", "gsm_map.ch.msisdn",
24862         FT_BYTES, BASE_NONE, NULL, 0,
24863         "ISDN_AddressString", HFILL }},
24864     { &hf_gsm_map_ch_cug_CheckInfo,
24865       { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo_element",
24866         FT_NONE, BASE_NONE, NULL, 0,
24867         NULL, HFILL }},
24868     { &hf_gsm_map_ch_numberOfForwarding,
24869       { "numberOfForwarding", "gsm_map.ch.numberOfForwarding",
24870         FT_UINT32, BASE_DEC, NULL, 0,
24871         NULL, HFILL }},
24872     { &hf_gsm_map_ch_interrogationType,
24873       { "interrogationType", "gsm_map.ch.interrogationType",
24874         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0,
24875         NULL, HFILL }},
24876     { &hf_gsm_map_ch_or_Interrogation,
24877       { "or-Interrogation", "gsm_map.ch.or_Interrogation_element",
24878         FT_NONE, BASE_NONE, NULL, 0,
24879         NULL, HFILL }},
24880     { &hf_gsm_map_ch_or_Capability,
24881       { "or-Capability", "gsm_map.ch.or_Capability",
24882         FT_UINT32, BASE_DEC, NULL, 0,
24883         "OR_Phase", HFILL }},
24884     { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address,
24885       { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address",
24886         FT_BYTES, BASE_NONE, NULL, 0,
24887         "ISDN_AddressString", HFILL }},
24888     { &hf_gsm_map_ch_callReferenceNumber,
24889       { "callReferenceNumber", "gsm_map.ch.callReferenceNumber",
24890         FT_BYTES, BASE_NONE, NULL, 0,
24891         NULL, HFILL }},
24892     { &hf_gsm_map_ch_forwardingReason,
24893       { "forwardingReason", "gsm_map.ch.forwardingReason",
24894         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0,
24895         NULL, HFILL }},
24896     { &hf_gsm_map_ch_basicServiceGroup,
24897       { "basicServiceGroup", "gsm_map.ch.basicServiceGroup",
24898         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
24899         "Ext_BasicServiceCode", HFILL }},
24900     { &hf_gsm_map_ch_networkSignalInfo,
24901       { "networkSignalInfo", "gsm_map.ch.networkSignalInfo_element",
24902         FT_NONE, BASE_NONE, NULL, 0,
24903         "ExternalSignalInfo", HFILL }},
24904     { &hf_gsm_map_ch_camelInfo,
24905       { "camelInfo", "gsm_map.ch.camelInfo_element",
24906         FT_NONE, BASE_NONE, NULL, 0,
24907         NULL, HFILL }},
24908     { &hf_gsm_map_ch_suppressionOfAnnouncement,
24909       { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement_element",
24910         FT_NONE, BASE_NONE, NULL, 0,
24911         NULL, HFILL }},
24912     { &hf_gsm_map_ch_alertingPattern,
24913       { "alertingPattern", "gsm_map.ch.alertingPattern",
24914         FT_BYTES, BASE_NONE, NULL, 0,
24915         NULL, HFILL }},
24916     { &hf_gsm_map_ch_ccbs_Call,
24917       { "ccbs-Call", "gsm_map.ch.ccbs_Call_element",
24918         FT_NONE, BASE_NONE, NULL, 0,
24919         NULL, HFILL }},
24920     { &hf_gsm_map_ch_supportedCCBS_Phase,
24921       { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase",
24922         FT_UINT32, BASE_DEC, NULL, 0,
24923         NULL, HFILL }},
24924     { &hf_gsm_map_ch_additionalSignalInfo,
24925       { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo_element",
24926         FT_NONE, BASE_NONE, NULL, 0,
24927         "Ext_ExternalSignalInfo", HFILL }},
24928     { &hf_gsm_map_ch_istSupportIndicator,
24929       { "istSupportIndicator", "gsm_map.ch.istSupportIndicator",
24930         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0,
24931         "IST_SupportIndicator", HFILL }},
24932     { &hf_gsm_map_ch_pre_pagingSupported,
24933       { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported_element",
24934         FT_NONE, BASE_NONE, NULL, 0,
24935         NULL, HFILL }},
24936     { &hf_gsm_map_ch_callDiversionTreatmentIndicator,
24937       { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator",
24938         FT_BYTES, BASE_NONE, NULL, 0,
24939         NULL, HFILL }},
24940     { &hf_gsm_map_ch_longFTN_Supported,
24941       { "longFTN-Supported", "gsm_map.ch.longFTN_Supported_element",
24942         FT_NONE, BASE_NONE, NULL, 0,
24943         NULL, HFILL }},
24944     { &hf_gsm_map_ch_suppress_VT_CSI,
24945       { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI_element",
24946         FT_NONE, BASE_NONE, NULL, 0,
24947         NULL, HFILL }},
24948     { &hf_gsm_map_ch_suppressIncomingCallBarring,
24949       { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring_element",
24950         FT_NONE, BASE_NONE, NULL, 0,
24951         NULL, HFILL }},
24952     { &hf_gsm_map_ch_gsmSCF_InitiatedCall,
24953       { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall_element",
24954         FT_NONE, BASE_NONE, NULL, 0,
24955         NULL, HFILL }},
24956     { &hf_gsm_map_ch_basicServiceGroup2,
24957       { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2",
24958         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
24959         "Ext_BasicServiceCode", HFILL }},
24960     { &hf_gsm_map_ch_networkSignalInfo2,
24961       { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2_element",
24962         FT_NONE, BASE_NONE, NULL, 0,
24963         "ExternalSignalInfo", HFILL }},
24964     { &hf_gsm_map_ch_suppressMTSS,
24965       { "suppressMTSS", "gsm_map.ch.suppressMTSS",
24966         FT_BYTES, BASE_NONE, NULL, 0,
24967         NULL, HFILL }},
24968     { &hf_gsm_map_ch_mtRoamingRetrySupported,
24969       { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported_element",
24970         FT_NONE, BASE_NONE, NULL, 0,
24971         NULL, HFILL }},
24972     { &hf_gsm_map_ch_callPriority,
24973       { "callPriority", "gsm_map.ch.callPriority",
24974         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
24975         "EMLPP_Priority", HFILL }},
24976     { &hf_gsm_map_ch_imsi,
24977       { "imsi", "gsm_map.ch.imsi",
24978         FT_BYTES, BASE_NONE, NULL, 0,
24979         NULL, HFILL }},
24980     { &hf_gsm_map_ch_extendedRoutingInfo,
24981       { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo",
24982         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0,
24983         NULL, HFILL }},
24984     { &hf_gsm_map_ch_cugSubscriptionFlag,
24985       { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag_element",
24986         FT_NONE, BASE_NONE, NULL, 0,
24987         NULL, HFILL }},
24988     { &hf_gsm_map_ch_subscriberInfo,
24989       { "subscriberInfo", "gsm_map.ch.subscriberInfo_element",
24990         FT_NONE, BASE_NONE, NULL, 0,
24991         NULL, HFILL }},
24992     { &hf_gsm_map_ch_ss_List,
24993       { "ss-List", "gsm_map.ch.ss_List",
24994         FT_UINT32, BASE_DEC, NULL, 0,
24995         NULL, HFILL }},
24996     { &hf_gsm_map_ch_basicService,
24997       { "basicService", "gsm_map.ch.basicService",
24998         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
24999         "Ext_BasicServiceCode", HFILL }},
25000     { &hf_gsm_map_ch_forwardingInterrogationRequired,
25001       { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired_element",
25002         FT_NONE, BASE_NONE, NULL, 0,
25003         NULL, HFILL }},
25004     { &hf_gsm_map_ch_vmsc_Address,
25005       { "vmsc-Address", "gsm_map.ch.vmsc_Address",
25006         FT_BYTES, BASE_NONE, NULL, 0,
25007         "ISDN_AddressString", HFILL }},
25008     { &hf_gsm_map_ch_naea_PreferredCI,
25009       { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI_element",
25010         FT_NONE, BASE_NONE, NULL, 0,
25011         NULL, HFILL }},
25012     { &hf_gsm_map_ch_ccbs_Indicators,
25013       { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators_element",
25014         FT_NONE, BASE_NONE, NULL, 0,
25015         NULL, HFILL }},
25016     { &hf_gsm_map_ch_numberPortabilityStatus,
25017       { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus",
25018         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0,
25019         NULL, HFILL }},
25020     { &hf_gsm_map_ch_istAlertTimer,
25021       { "istAlertTimer", "gsm_map.ch.istAlertTimer",
25022         FT_UINT32, BASE_DEC, NULL, 0,
25023         "IST_AlertTimerValue", HFILL }},
25024     { &hf_gsm_map_ch_supportedCamelPhasesInVMSC,
25025       { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC",
25026         FT_BYTES, BASE_NONE, NULL, 0,
25027         "SupportedCamelPhases", HFILL }},
25028     { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC,
25029       { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC",
25030         FT_BYTES, BASE_NONE, NULL, 0,
25031         "OfferedCamel4CSIs", HFILL }},
25032     { &hf_gsm_map_ch_routingInfo2,
25033       { "routingInfo2", "gsm_map.ch.routingInfo2",
25034         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
25035         "RoutingInfo", HFILL }},
25036     { &hf_gsm_map_ch_ss_List2,
25037       { "ss-List2", "gsm_map.ch.ss_List2",
25038         FT_UINT32, BASE_DEC, NULL, 0,
25039         "SS_List", HFILL }},
25040     { &hf_gsm_map_ch_basicService2,
25041       { "basicService2", "gsm_map.ch.basicService2",
25042         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
25043         "Ext_BasicServiceCode", HFILL }},
25044     { &hf_gsm_map_ch_allowedServices,
25045       { "allowedServices", "gsm_map.ch.allowedServices",
25046         FT_BYTES, BASE_NONE, NULL, 0,
25047         NULL, HFILL }},
25048     { &hf_gsm_map_ch_unavailabilityCause,
25049       { "unavailabilityCause", "gsm_map.ch.unavailabilityCause",
25050         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0,
25051         NULL, HFILL }},
25052     { &hf_gsm_map_ch_releaseResourcesSupported,
25053       { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported_element",
25054         FT_NONE, BASE_NONE, NULL, 0,
25055         NULL, HFILL }},
25056     { &hf_gsm_map_ch_gsm_BearerCapability,
25057       { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability_element",
25058         FT_NONE, BASE_NONE, NULL, 0,
25059         "ExternalSignalInfo", HFILL }},
25060     { &hf_gsm_map_ch_ccbs_Possible,
25061       { "ccbs-Possible", "gsm_map.ch.ccbs_Possible_element",
25062         FT_NONE, BASE_NONE, NULL, 0,
25063         NULL, HFILL }},
25064     { &hf_gsm_map_ch_keepCCBS_CallIndicator,
25065       { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator_element",
25066         FT_NONE, BASE_NONE, NULL, 0,
25067         NULL, HFILL }},
25068     { &hf_gsm_map_ch_roamingNumber,
25069       { "roamingNumber", "gsm_map.ch.roamingNumber",
25070         FT_BYTES, BASE_NONE, NULL, 0,
25071         "ISDN_AddressString", HFILL }},
25072     { &hf_gsm_map_ch_forwardingData,
25073       { "forwardingData", "gsm_map.ch.forwardingData_element",
25074         FT_NONE, BASE_NONE, NULL, 0,
25075         NULL, HFILL }},
25076     { &hf_gsm_map_ch_forwardedToNumber,
25077       { "forwardedToNumber", "gsm_map.ch.forwardedToNumber",
25078         FT_BYTES, BASE_NONE, NULL, 0,
25079         "ISDN_AddressString", HFILL }},
25080     { &hf_gsm_map_ch_forwardedToSubaddress,
25081       { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress",
25082         FT_BYTES, BASE_NONE, NULL, 0,
25083         "ISDN_SubaddressString", HFILL }},
25084     { &hf_gsm_map_ch_forwardingOptions,
25085       { "forwardingOptions", "gsm_map.ch.forwardingOptions",
25086         FT_BYTES, BASE_NONE, NULL, 0,
25087         NULL, HFILL }},
25088     { &hf_gsm_map_ch_longForwardedToNumber,
25089       { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber",
25090         FT_BYTES, BASE_NONE, NULL, 0,
25091         "FTN_AddressString", HFILL }},
25092     { &hf_gsm_map_ch_msc_Number,
25093       { "msc-Number", "gsm_map.ch.msc_Number",
25094         FT_BYTES, BASE_NONE, NULL, 0,
25095         "ISDN_AddressString", HFILL }},
25096     { &hf_gsm_map_ch_lmsi,
25097       { "lmsi", "gsm_map.ch.lmsi",
25098         FT_BYTES, BASE_NONE, NULL, 0,
25099         NULL, HFILL }},
25100     { &hf_gsm_map_ch_gmsc_Address,
25101       { "gmsc-Address", "gsm_map.ch.gmsc_Address",
25102         FT_BYTES, BASE_NONE, NULL, 0,
25103         "ISDN_AddressString", HFILL }},
25104     { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode,
25105       { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode",
25106         FT_BYTES, BASE_NONE, NULL, 0,
25107         "SupportedCamelPhases", HFILL }},
25108     { &hf_gsm_map_ch_orNotSupportedInGMSC,
25109       { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC_element",
25110         FT_NONE, BASE_NONE, NULL, 0,
25111         NULL, HFILL }},
25112     { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode,
25113       { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode",
25114         FT_BYTES, BASE_NONE, NULL, 0,
25115         "OfferedCamel4CSIs", HFILL }},
25116     { &hf_gsm_map_ch_pagingArea,
25117       { "pagingArea", "gsm_map.ch.pagingArea",
25118         FT_UINT32, BASE_DEC, NULL, 0,
25119         NULL, HFILL }},
25120     { &hf_gsm_map_ch_mtrf_Indicator,
25121       { "mtrf-Indicator", "gsm_map.ch.mtrf_Indicator_element",
25122         FT_NONE, BASE_NONE, NULL, 0,
25123         NULL, HFILL }},
25124     { &hf_gsm_map_ch_oldMSC_Number,
25125       { "oldMSC-Number", "gsm_map.ch.oldMSC_Number",
25126         FT_BYTES, BASE_NONE, NULL, 0,
25127         "ISDN_AddressString", HFILL }},
25128     { &hf_gsm_map_ch_o_CSI,
25129       { "o-CSI", "gsm_map.ch.o_CSI_element",
25130         FT_NONE, BASE_NONE, NULL, 0,
25131         NULL, HFILL }},
25132     { &hf_gsm_map_ch_uu_Data,
25133       { "uu-Data", "gsm_map.ch.uu_Data_element",
25134         FT_NONE, BASE_NONE, NULL, 0,
25135         NULL, HFILL }},
25136     { &hf_gsm_map_ch_allInformationSent,
25137       { "allInformationSent", "gsm_map.ch.allInformationSent_element",
25138         FT_NONE, BASE_NONE, NULL, 0,
25139         NULL, HFILL }},
25140     { &hf_gsm_map_ch_d_csi,
25141       { "d-csi", "gsm_map.ch.d_csi_element",
25142         FT_NONE, BASE_NONE, NULL, 0,
25143         NULL, HFILL }},
25144     { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList,
25145       { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList",
25146         FT_UINT32, BASE_DEC, NULL, 0,
25147         NULL, HFILL }},
25148     { &hf_gsm_map_ch_mtRoamingRetry,
25149       { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry_element",
25150         FT_NONE, BASE_NONE, NULL, 0,
25151         NULL, HFILL }},
25152     { &hf_gsm_map_ch_uuIndicator,
25153       { "uuIndicator", "gsm_map.ch.uuIndicator",
25154         FT_BYTES, BASE_NONE, NULL, 0,
25155         NULL, HFILL }},
25156     { &hf_gsm_map_ch_uui,
25157       { "uui", "gsm_map.ch.uui",
25158         FT_BYTES, BASE_NONE, NULL, 0,
25159         NULL, HFILL }},
25160     { &hf_gsm_map_ch_uusCFInteraction,
25161       { "uusCFInteraction", "gsm_map.ch.uusCFInteraction_element",
25162         FT_NONE, BASE_NONE, NULL, 0,
25163         NULL, HFILL }},
25164     { &hf_gsm_map_ch_supportedCamelPhases,
25165       { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases",
25166         FT_BYTES, BASE_NONE, NULL, 0,
25167         NULL, HFILL }},
25168     { &hf_gsm_map_ch_suppress_T_CSI,
25169       { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI_element",
25170         FT_NONE, BASE_NONE, NULL, 0,
25171         NULL, HFILL }},
25172     { &hf_gsm_map_ch_offeredCamel4CSIs,
25173       { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs",
25174         FT_BYTES, BASE_NONE, NULL, 0,
25175         NULL, HFILL }},
25176     { &hf_gsm_map_ch_routingInfo,
25177       { "routingInfo", "gsm_map.ch.routingInfo",
25178         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
25179         NULL, HFILL }},
25180     { &hf_gsm_map_ch_camelRoutingInfo,
25181       { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo_element",
25182         FT_NONE, BASE_NONE, NULL, 0,
25183         NULL, HFILL }},
25184     { &hf_gsm_map_ch_gmscCamelSubscriptionInfo,
25185       { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo_element",
25186         FT_NONE, BASE_NONE, NULL, 0,
25187         NULL, HFILL }},
25188     { &hf_gsm_map_ch_t_CSI,
25189       { "t-CSI", "gsm_map.ch.t_CSI_element",
25190         FT_NONE, BASE_NONE, NULL, 0,
25191         NULL, HFILL }},
25192     { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList,
25193       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList",
25194         FT_UINT32, BASE_DEC, NULL, 0,
25195         "O_BcsmCamelTDPCriteriaList", HFILL }},
25196     { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList,
25197       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList",
25198         FT_UINT32, BASE_DEC, NULL, 0,
25199         NULL, HFILL }},
25200     { &hf_gsm_map_ch_ccbs_Monitoring,
25201       { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring",
25202         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0,
25203         "ReportingState", HFILL }},
25204     { &hf_gsm_map_ch_ccbs_SubscriberStatus,
25205       { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus",
25206         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0,
25207         NULL, HFILL }},
25208     { &hf_gsm_map_ch_eventReportData,
25209       { "eventReportData", "gsm_map.ch.eventReportData_element",
25210         FT_NONE, BASE_NONE, NULL, 0,
25211         NULL, HFILL }},
25212     { &hf_gsm_map_ch_callReportdata,
25213       { "callReportdata", "gsm_map.ch.callReportdata_element",
25214         FT_NONE, BASE_NONE, NULL, 0,
25215         NULL, HFILL }},
25216     { &hf_gsm_map_ch_monitoringMode,
25217       { "monitoringMode", "gsm_map.ch.monitoringMode",
25218         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0,
25219         NULL, HFILL }},
25220     { &hf_gsm_map_ch_callOutcome,
25221       { "callOutcome", "gsm_map.ch.callOutcome",
25222         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0,
25223         NULL, HFILL }},
25224     { &hf_gsm_map_ch_callInfo,
25225       { "callInfo", "gsm_map.ch.callInfo_element",
25226         FT_NONE, BASE_NONE, NULL, 0,
25227         "ExternalSignalInfo", HFILL }},
25228     { &hf_gsm_map_ch_ccbs_Feature,
25229       { "ccbs-Feature", "gsm_map.ch.ccbs_Feature_element",
25230         FT_NONE, BASE_NONE, NULL, 0,
25231         NULL, HFILL }},
25232     { &hf_gsm_map_ch_translatedB_Number,
25233       { "translatedB-Number", "gsm_map.ch.translatedB_Number",
25234         FT_BYTES, BASE_NONE, NULL, 0,
25235         "ISDN_AddressString", HFILL }},
25236     { &hf_gsm_map_ch_replaceB_Number,
25237       { "replaceB-Number", "gsm_map.ch.replaceB_Number_element",
25238         FT_NONE, BASE_NONE, NULL, 0,
25239         NULL, HFILL }},
25240     { &hf_gsm_map_ch_ruf_Outcome,
25241       { "ruf-Outcome", "gsm_map.ch.ruf_Outcome",
25242         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0,
25243         NULL, HFILL }},
25244     { &hf_gsm_map_ch_istInformationWithdraw,
25245       { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw_element",
25246         FT_NONE, BASE_NONE, NULL, 0,
25247         NULL, HFILL }},
25248     { &hf_gsm_map_ch_callTerminationIndicator,
25249       { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator",
25250         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0,
25251         NULL, HFILL }},
25252     { &hf_gsm_map_ch_msrn,
25253       { "msrn", "gsm_map.ch.msrn",
25254         FT_BYTES, BASE_NONE, NULL, 0,
25255         "ISDN_AddressString", HFILL }},
25256     { &hf_gsm_map_ch_SuppressMTSS_suppressCUG,
25257       { "suppressCUG", "gsm_map.ch.suppressCUG",
25258         FT_BOOLEAN, 8, NULL, 0x80,
25259         NULL, HFILL }},
25260     { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS,
25261       { "suppressCCBS", "gsm_map.ch.suppressCCBS",
25262         FT_BOOLEAN, 8, NULL, 0x40,
25263         NULL, HFILL }},
25264     { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed,
25265       { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed",
25266         FT_BOOLEAN, 8, NULL, 0x80,
25267         NULL, HFILL }},
25268     { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed,
25269       { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed",
25270         FT_BOOLEAN, 8, NULL, 0x40,
25271         NULL, HFILL }},
25272
25273 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
25274
25275     { &hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU,
25276       { "LCS-ClientID", "gsm_map.lcs.LCS_ClientID_element",
25277         FT_NONE, BASE_NONE, NULL, 0,
25278         NULL, HFILL }},
25279     { &hf_gsm_map_lcs_mlcNumber,
25280       { "mlcNumber", "gsm_map.lcs.mlcNumber",
25281         FT_BYTES, BASE_NONE, NULL, 0,
25282         "ISDN_AddressString", HFILL }},
25283     { &hf_gsm_map_lcs_targetMS,
25284       { "targetMS", "gsm_map.lcs.targetMS",
25285         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
25286         "SubscriberIdentity", HFILL }},
25287     { &hf_gsm_map_lcs_extensionContainer,
25288       { "extensionContainer", "gsm_map.lcs.extensionContainer_element",
25289         FT_NONE, BASE_NONE, NULL, 0,
25290         NULL, HFILL }},
25291     { &hf_gsm_map_lcs_lcsLocationInfo,
25292       { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo_element",
25293         FT_NONE, BASE_NONE, NULL, 0,
25294         NULL, HFILL }},
25295     { &hf_gsm_map_lcs_v_gmlc_Address,
25296       { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address",
25297         FT_BYTES, BASE_NONE, NULL, 0,
25298         "GSN_Address", HFILL }},
25299     { &hf_gsm_map_lcs_h_gmlc_Address,
25300       { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address",
25301         FT_BYTES, BASE_NONE, NULL, 0,
25302         "GSN_Address", HFILL }},
25303     { &hf_gsm_map_lcs_ppr_Address,
25304       { "ppr-Address", "gsm_map.lcs.ppr_Address",
25305         FT_BYTES, BASE_NONE, NULL, 0,
25306         "GSN_Address", HFILL }},
25307     { &hf_gsm_map_lcs_additional_v_gmlc_Address,
25308       { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address",
25309         FT_BYTES, BASE_NONE, NULL, 0,
25310         "GSN_Address", HFILL }},
25311     { &hf_gsm_map_lcs_networkNode_Number,
25312       { "networkNode-Number", "gsm_map.lcs.networkNode_Number",
25313         FT_BYTES, BASE_NONE, NULL, 0,
25314         "ISDN_AddressString", HFILL }},
25315     { &hf_gsm_map_lcs_lmsi,
25316       { "lmsi", "gsm_map.lcs.lmsi",
25317         FT_BYTES, BASE_NONE, NULL, 0,
25318         NULL, HFILL }},
25319     { &hf_gsm_map_lcs_gprsNodeIndicator,
25320       { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator_element",
25321         FT_NONE, BASE_NONE, NULL, 0,
25322         NULL, HFILL }},
25323     { &hf_gsm_map_lcs_additional_Number,
25324       { "additional-Number", "gsm_map.lcs.additional_Number",
25325         FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0,
25326         NULL, HFILL }},
25327     { &hf_gsm_map_lcs_supportedLCS_CapabilitySets,
25328       { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets",
25329         FT_BYTES, BASE_NONE, NULL, 0,
25330         NULL, HFILL }},
25331     { &hf_gsm_map_lcs_additional_LCS_CapabilitySets,
25332       { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets",
25333         FT_BYTES, BASE_NONE, NULL, 0,
25334         "SupportedLCS_CapabilitySets", HFILL }},
25335     { &hf_gsm_map_lcs_mme_Name,
25336       { "mme-Name", "gsm_map.lcs.mme_Name",
25337         FT_BYTES, BASE_NONE, NULL, 0,
25338         "DiameterIdentity", HFILL }},
25339     { &hf_gsm_map_lcs_aaa_Server_Name,
25340       { "aaa-Server-Name", "gsm_map.lcs.aaa_Server_Name",
25341         FT_BYTES, BASE_NONE, NULL, 0,
25342         "DiameterIdentity", HFILL }},
25343     { &hf_gsm_map_lcs_locationType,
25344       { "locationType", "gsm_map.lcs.locationType_element",
25345         FT_NONE, BASE_NONE, NULL, 0,
25346         NULL, HFILL }},
25347     { &hf_gsm_map_lcs_mlc_Number,
25348       { "mlc-Number", "gsm_map.lcs.mlc_Number",
25349         FT_BYTES, BASE_NONE, NULL, 0,
25350         "ISDN_AddressString", HFILL }},
25351     { &hf_gsm_map_lcs_lcs_ClientID,
25352       { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID_element",
25353         FT_NONE, BASE_NONE, NULL, 0,
25354         NULL, HFILL }},
25355     { &hf_gsm_map_lcs_privacyOverride,
25356       { "privacyOverride", "gsm_map.lcs.privacyOverride_element",
25357         FT_NONE, BASE_NONE, NULL, 0,
25358         NULL, HFILL }},
25359     { &hf_gsm_map_lcs_imsi,
25360       { "imsi", "gsm_map.lcs.imsi",
25361         FT_BYTES, BASE_NONE, NULL, 0,
25362         NULL, HFILL }},
25363     { &hf_gsm_map_lcs_msisdn,
25364       { "msisdn", "gsm_map.lcs.msisdn",
25365         FT_BYTES, BASE_NONE, NULL, 0,
25366         "ISDN_AddressString", HFILL }},
25367     { &hf_gsm_map_lcs_imei,
25368       { "imei", "gsm_map.lcs.imei",
25369         FT_BYTES, BASE_NONE, NULL, 0,
25370         NULL, HFILL }},
25371     { &hf_gsm_map_lcs_lcs_Priority,
25372       { "lcs-Priority", "gsm_map.lcs.lcs_Priority",
25373         FT_BYTES, BASE_NONE, NULL, 0,
25374         NULL, HFILL }},
25375     { &hf_gsm_map_lcs_lcs_QoS,
25376       { "lcs-QoS", "gsm_map.lcs.lcs_QoS_element",
25377         FT_NONE, BASE_NONE, NULL, 0,
25378         NULL, HFILL }},
25379     { &hf_gsm_map_lcs_supportedGADShapes,
25380       { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes",
25381         FT_BYTES, BASE_NONE, NULL, 0,
25382         NULL, HFILL }},
25383     { &hf_gsm_map_lcs_lcs_ReferenceNumber,
25384       { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber",
25385         FT_BYTES, BASE_NONE, NULL, 0,
25386         NULL, HFILL }},
25387     { &hf_gsm_map_lcs_lcsServiceTypeID,
25388       { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID",
25389         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
25390         NULL, HFILL }},
25391     { &hf_gsm_map_lcs_lcsCodeword,
25392       { "lcsCodeword", "gsm_map.lcs.lcsCodeword_element",
25393         FT_NONE, BASE_NONE, NULL, 0,
25394         NULL, HFILL }},
25395     { &hf_gsm_map_lcs_lcs_PrivacyCheck,
25396       { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck_element",
25397         FT_NONE, BASE_NONE, NULL, 0,
25398         NULL, HFILL }},
25399     { &hf_gsm_map_lcs_areaEventInfo,
25400       { "areaEventInfo", "gsm_map.lcs.areaEventInfo_element",
25401         FT_NONE, BASE_NONE, NULL, 0,
25402         NULL, HFILL }},
25403     { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator,
25404       { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator_element",
25405         FT_NONE, BASE_NONE, NULL, 0,
25406         NULL, HFILL }},
25407     { &hf_gsm_map_lcs_periodicLDRInfo,
25408       { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo_element",
25409         FT_NONE, BASE_NONE, NULL, 0,
25410         NULL, HFILL }},
25411     { &hf_gsm_map_lcs_reportingPLMNList,
25412       { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList_element",
25413         FT_NONE, BASE_NONE, NULL, 0,
25414         NULL, HFILL }},
25415     { &hf_gsm_map_lcs_locationEstimateType,
25416       { "locationEstimateType", "gsm_map.lcs.locationEstimateType",
25417         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0,
25418         NULL, HFILL }},
25419     { &hf_gsm_map_lcs_deferredLocationEventType,
25420       { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType",
25421         FT_BYTES, BASE_NONE, NULL, 0,
25422         NULL, HFILL }},
25423     { &hf_gsm_map_lcs_lcsClientType,
25424       { "lcsClientType", "gsm_map.lcs.lcsClientType",
25425         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0,
25426         NULL, HFILL }},
25427     { &hf_gsm_map_lcs_lcsClientExternalID,
25428       { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID_element",
25429         FT_NONE, BASE_NONE, NULL, 0,
25430         NULL, HFILL }},
25431     { &hf_gsm_map_lcs_lcsClientDialedByMS,
25432       { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS",
25433         FT_BYTES, BASE_NONE, NULL, 0,
25434         "AddressString", HFILL }},
25435     { &hf_gsm_map_lcs_lcsClientInternalID,
25436       { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID",
25437         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
25438         NULL, HFILL }},
25439     { &hf_gsm_map_lcs_lcsClientName,
25440       { "lcsClientName", "gsm_map.lcs.lcsClientName_element",
25441         FT_NONE, BASE_NONE, NULL, 0,
25442         NULL, HFILL }},
25443     { &hf_gsm_map_lcs_lcsAPN,
25444       { "lcsAPN", "gsm_map.lcs.lcsAPN",
25445         FT_BYTES, BASE_NONE, NULL, 0,
25446         "APN", HFILL }},
25447     { &hf_gsm_map_lcs_lcsRequestorID,
25448       { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID_element",
25449         FT_NONE, BASE_NONE, NULL, 0,
25450         NULL, HFILL }},
25451     { &hf_gsm_map_lcs_dataCodingScheme,
25452       { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme",
25453         FT_BYTES, BASE_NONE, NULL, 0,
25454         "USSD_DataCodingScheme", HFILL }},
25455     { &hf_gsm_map_lcs_nameString,
25456       { "nameString", "gsm_map.lcs.nameString",
25457         FT_BYTES, BASE_NONE, NULL, 0,
25458         NULL, HFILL }},
25459     { &hf_gsm_map_lcs_lcs_FormatIndicator,
25460       { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator",
25461         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0,
25462         NULL, HFILL }},
25463     { &hf_gsm_map_lcs_requestorIDString,
25464       { "requestorIDString", "gsm_map.lcs.requestorIDString",
25465         FT_BYTES, BASE_NONE, NULL, 0,
25466         NULL, HFILL }},
25467     { &hf_gsm_map_lcs_horizontal_accuracy,
25468       { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy",
25469         FT_BYTES, BASE_NONE, NULL, 0,
25470         NULL, HFILL }},
25471     { &hf_gsm_map_lcs_verticalCoordinateRequest,
25472       { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest_element",
25473         FT_NONE, BASE_NONE, NULL, 0,
25474         NULL, HFILL }},
25475     { &hf_gsm_map_lcs_vertical_accuracy,
25476       { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy",
25477         FT_BYTES, BASE_NONE, NULL, 0,
25478         NULL, HFILL }},
25479     { &hf_gsm_map_lcs_responseTime,
25480       { "responseTime", "gsm_map.lcs.responseTime_element",
25481         FT_NONE, BASE_NONE, NULL, 0,
25482         NULL, HFILL }},
25483     { &hf_gsm_map_lcs_velocityRequest,
25484       { "velocityRequest", "gsm_map.lcs.velocityRequest_element",
25485         FT_NONE, BASE_NONE, NULL, 0,
25486         NULL, HFILL }},
25487     { &hf_gsm_map_lcs_responseTimeCategory,
25488       { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory",
25489         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0,
25490         NULL, HFILL }},
25491     { &hf_gsm_map_lcs_lcsCodewordString,
25492       { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString",
25493         FT_BYTES, BASE_NONE, NULL, 0,
25494         NULL, HFILL }},
25495     { &hf_gsm_map_lcs_callSessionUnrelated,
25496       { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated",
25497         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
25498         "PrivacyCheckRelatedAction", HFILL }},
25499     { &hf_gsm_map_lcs_callSessionRelated,
25500       { "callSessionRelated", "gsm_map.lcs.callSessionRelated",
25501         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0,
25502         "PrivacyCheckRelatedAction", HFILL }},
25503     { &hf_gsm_map_lcs_areaDefinition,
25504       { "areaDefinition", "gsm_map.lcs.areaDefinition_element",
25505         FT_NONE, BASE_NONE, NULL, 0,
25506         NULL, HFILL }},
25507     { &hf_gsm_map_lcs_occurrenceInfo,
25508       { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo",
25509         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0,
25510         NULL, HFILL }},
25511     { &hf_gsm_map_lcs_intervalTime,
25512       { "intervalTime", "gsm_map.lcs.intervalTime",
25513         FT_UINT32, BASE_DEC, NULL, 0,
25514         NULL, HFILL }},
25515     { &hf_gsm_map_lcs_areaList,
25516       { "areaList", "gsm_map.lcs.areaList",
25517         FT_UINT32, BASE_DEC, NULL, 0,
25518         NULL, HFILL }},
25519     { &hf_gsm_map_lcs_AreaList_item,
25520       { "Area", "gsm_map.lcs.Area_element",
25521         FT_NONE, BASE_NONE, NULL, 0,
25522         NULL, HFILL }},
25523     { &hf_gsm_map_lcs_areaType,
25524       { "areaType", "gsm_map.lcs.areaType",
25525         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0,
25526         NULL, HFILL }},
25527     { &hf_gsm_map_lcs_areaIdentification,
25528       { "areaIdentification", "gsm_map.lcs.areaIdentification",
25529         FT_BYTES, BASE_NONE, NULL, 0,
25530         NULL, HFILL }},
25531     { &hf_gsm_map_lcs_reportingAmount,
25532       { "reportingAmount", "gsm_map.lcs.reportingAmount",
25533         FT_UINT32, BASE_DEC, NULL, 0,
25534         NULL, HFILL }},
25535     { &hf_gsm_map_lcs_reportingInterval,
25536       { "reportingInterval", "gsm_map.lcs.reportingInterval",
25537         FT_UINT32, BASE_DEC, NULL, 0,
25538         NULL, HFILL }},
25539     { &hf_gsm_map_lcs_plmn_ListPrioritized,
25540       { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized_element",
25541         FT_NONE, BASE_NONE, NULL, 0,
25542         NULL, HFILL }},
25543     { &hf_gsm_map_lcs_plmn_List,
25544       { "plmn-List", "gsm_map.lcs.plmn_List",
25545         FT_UINT32, BASE_DEC, NULL, 0,
25546         "PLMNList", HFILL }},
25547     { &hf_gsm_map_lcs_PLMNList_item,
25548       { "ReportingPLMN", "gsm_map.lcs.ReportingPLMN_element",
25549         FT_NONE, BASE_NONE, NULL, 0,
25550         NULL, HFILL }},
25551     { &hf_gsm_map_lcs_plmn_Id,
25552       { "plmn-Id", "gsm_map.lcs.plmn_Id",
25553         FT_BYTES, BASE_NONE, NULL, 0,
25554         NULL, HFILL }},
25555     { &hf_gsm_map_lcs_ran_Technology,
25556       { "ran-Technology", "gsm_map.lcs.ran_Technology",
25557         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0,
25558         NULL, HFILL }},
25559     { &hf_gsm_map_lcs_ran_PeriodicLocationSupport,
25560       { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport_element",
25561         FT_NONE, BASE_NONE, NULL, 0,
25562         NULL, HFILL }},
25563     { &hf_gsm_map_lcs_locationEstimate,
25564       { "locationEstimate", "gsm_map.lcs.locationEstimate",
25565         FT_BYTES, BASE_NONE, NULL, 0,
25566         "Ext_GeographicalInformation", HFILL }},
25567     { &hf_gsm_map_lcs_ageOfLocationEstimate,
25568       { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate",
25569         FT_UINT32, BASE_DEC, NULL, 0,
25570         "AgeOfLocationInformation", HFILL }},
25571     { &hf_gsm_map_lcs_add_LocationEstimate,
25572       { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate",
25573         FT_BYTES, BASE_NONE, NULL, 0,
25574         "Add_GeographicalInformation", HFILL }},
25575     { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator,
25576       { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator_element",
25577         FT_NONE, BASE_NONE, NULL, 0,
25578         NULL, HFILL }},
25579     { &hf_gsm_map_lcs_geranPositioningData,
25580       { "geranPositioningData", "gsm_map.lcs.geranPositioningData",
25581         FT_BYTES, BASE_NONE, NULL, 0,
25582         "PositioningDataInformation", HFILL }},
25583     { &hf_gsm_map_lcs_utranPositioningData,
25584       { "utranPositioningData", "gsm_map.lcs.utranPositioningData",
25585         FT_BYTES, BASE_NONE, NULL, 0,
25586         "UtranPositioningDataInfo", HFILL }},
25587     { &hf_gsm_map_lcs_cellIdOrSai,
25588       { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai",
25589         FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
25590         "CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
25591     { &hf_gsm_map_lcs_sai_Present,
25592       { "sai-Present", "gsm_map.lcs.sai_Present_element",
25593         FT_NONE, BASE_NONE, NULL, 0,
25594         NULL, HFILL }},
25595     { &hf_gsm_map_lcs_accuracyFulfilmentIndicator,
25596       { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator",
25597         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0,
25598         NULL, HFILL }},
25599     { &hf_gsm_map_lcs_velocityEstimate,
25600       { "velocityEstimate", "gsm_map.lcs.velocityEstimate",
25601         FT_BYTES, BASE_NONE, NULL, 0,
25602         NULL, HFILL }},
25603     { &hf_gsm_map_lcs_geranGANSSpositioningData,
25604       { "geranGANSSpositioningData", "gsm_map.lcs.geranGANSSpositioningData",
25605         FT_BYTES, BASE_NONE, NULL, 0,
25606         NULL, HFILL }},
25607     { &hf_gsm_map_lcs_utranGANSSpositioningData,
25608       { "utranGANSSpositioningData", "gsm_map.lcs.utranGANSSpositioningData",
25609         FT_BYTES, BASE_NONE, NULL, 0,
25610         NULL, HFILL }},
25611     { &hf_gsm_map_lcs_targetServingNodeForHandover,
25612       { "targetServingNodeForHandover", "gsm_map.lcs.targetServingNodeForHandover",
25613         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ServingNodeAddress_vals), 0,
25614         "ServingNodeAddress", HFILL }},
25615     { &hf_gsm_map_lcs_lcs_Event,
25616       { "lcs-Event", "gsm_map.lcs.lcs_Event",
25617         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0,
25618         NULL, HFILL }},
25619     { &hf_gsm_map_lcs_na_ESRD,
25620       { "na-ESRD", "gsm_map.lcs.na_ESRD",
25621         FT_BYTES, BASE_NONE, NULL, 0,
25622         "ISDN_AddressString", HFILL }},
25623     { &hf_gsm_map_lcs_na_ESRK,
25624       { "na-ESRK", "gsm_map.lcs.na_ESRK",
25625         FT_BYTES, BASE_NONE, NULL, 0,
25626         "ISDN_AddressString", HFILL }},
25627     { &hf_gsm_map_lcs_slr_ArgExtensionContainer,
25628       { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer_element",
25629         FT_NONE, BASE_NONE, NULL, 0,
25630         NULL, HFILL }},
25631     { &hf_gsm_map_lcs_deferredmt_lrData,
25632       { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData_element",
25633         FT_NONE, BASE_NONE, NULL, 0,
25634         NULL, HFILL }},
25635     { &hf_gsm_map_lcs_pseudonymIndicator,
25636       { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator_element",
25637         FT_NONE, BASE_NONE, NULL, 0,
25638         NULL, HFILL }},
25639     { &hf_gsm_map_lcs_sequenceNumber,
25640       { "sequenceNumber", "gsm_map.lcs.sequenceNumber",
25641         FT_UINT32, BASE_DEC, NULL, 0,
25642         NULL, HFILL }},
25643     { &hf_gsm_map_lcs_terminationCause,
25644       { "terminationCause", "gsm_map.lcs.terminationCause",
25645         FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0,
25646         NULL, HFILL }},
25647     { &hf_gsm_map_lcs_msc_Number,
25648       { "msc-Number", "gsm_map.lcs.msc_Number",
25649         FT_BYTES, BASE_NONE, NULL, 0,
25650         "ISDN_AddressString", HFILL }},
25651     { &hf_gsm_map_lcs_sgsn_Number,
25652       { "sgsn-Number", "gsm_map.lcs.sgsn_Number",
25653         FT_BYTES, BASE_NONE, NULL, 0,
25654         "ISDN_AddressString", HFILL }},
25655     { &hf_gsm_map_lcs_mme_Number,
25656       { "mme-Number", "gsm_map.lcs.mme_Number",
25657         FT_BYTES, BASE_NONE, NULL, 0,
25658         "DiameterIdentity", HFILL }},
25659     { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable,
25660       { "msAvailable", "gsm_map.lcs.msAvailable",
25661         FT_BOOLEAN, 8, NULL, 0x80,
25662         NULL, HFILL }},
25663     { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea,
25664       { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea",
25665         FT_BOOLEAN, 8, NULL, 0x40,
25666         NULL, HFILL }},
25667     { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea,
25668       { "leavingFromArea", "gsm_map.lcs.leavingFromArea",
25669         FT_BOOLEAN, 8, NULL, 0x20,
25670         NULL, HFILL }},
25671     { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea,
25672       { "beingInsideArea", "gsm_map.lcs.beingInsideArea",
25673         FT_BOOLEAN, 8, NULL, 0x10,
25674         NULL, HFILL }},
25675     { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR,
25676       { "periodicLDR", "gsm_map.lcs.periodicLDR",
25677         FT_BOOLEAN, 8, NULL, 0x08,
25678         NULL, HFILL }},
25679     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint,
25680       { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint",
25681         FT_BOOLEAN, 8, NULL, 0x80,
25682         NULL, HFILL }},
25683     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
25684       { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle",
25685         FT_BOOLEAN, 8, NULL, 0x40,
25686         NULL, HFILL }},
25687     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
25688       { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse",
25689         FT_BOOLEAN, 8, NULL, 0x20,
25690         NULL, HFILL }},
25691     { &hf_gsm_map_lcs_SupportedGADShapes_polygon,
25692       { "polygon", "gsm_map.lcs.polygon",
25693         FT_BOOLEAN, 8, NULL, 0x10,
25694         NULL, HFILL }},
25695     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude,
25696       { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude",
25697         FT_BOOLEAN, 8, NULL, 0x08,
25698         NULL, HFILL }},
25699     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
25700       { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
25701         FT_BOOLEAN, 8, NULL, 0x04,
25702         NULL, HFILL }},
25703     { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc,
25704       { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc",
25705         FT_BOOLEAN, 8, NULL, 0x02,
25706         NULL, HFILL }},
25707
25708 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
25709
25710     { &hf_gsm_map_gr_teleservice,
25711       { "teleservice", "gsm_map.gr.teleservice",
25712         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
25713         "Ext_TeleserviceCode", HFILL }},
25714     { &hf_gsm_map_gr_asciCallReference,
25715       { "asciCallReference", "gsm_map.gr.asciCallReference",
25716         FT_BYTES, BASE_NONE, NULL, 0,
25717         "ASCI_CallReference", HFILL }},
25718     { &hf_gsm_map_gr_codec_Info,
25719       { "codec-Info", "gsm_map.gr.codec_Info",
25720         FT_BYTES, BASE_NONE, NULL, 0,
25721         NULL, HFILL }},
25722     { &hf_gsm_map_gr_cipheringAlgorithm,
25723       { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm",
25724         FT_BYTES, BASE_NONE, NULL, 0,
25725         NULL, HFILL }},
25726     { &hf_gsm_map_gr_groupKeyNumber_Vk_Id,
25727       { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id",
25728         FT_UINT32, BASE_DEC, NULL, 0,
25729         "GroupKeyNumber", HFILL }},
25730     { &hf_gsm_map_gr_groupKey,
25731       { "groupKey", "gsm_map.gr.groupKey",
25732         FT_BYTES, BASE_NONE, NULL, 0,
25733         "Kc", HFILL }},
25734     { &hf_gsm_map_gr_priority,
25735       { "priority", "gsm_map.gr.priority",
25736         FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0,
25737         "EMLPP_Priority", HFILL }},
25738     { &hf_gsm_map_gr_uplinkFree,
25739       { "uplinkFree", "gsm_map.gr.uplinkFree_element",
25740         FT_NONE, BASE_NONE, NULL, 0,
25741         NULL, HFILL }},
25742     { &hf_gsm_map_gr_extensionContainer,
25743       { "extensionContainer", "gsm_map.gr.extensionContainer_element",
25744         FT_NONE, BASE_NONE, NULL, 0,
25745         NULL, HFILL }},
25746     { &hf_gsm_map_gr_vstk,
25747       { "vstk", "gsm_map.gr.vstk",
25748         FT_BYTES, BASE_NONE, NULL, 0,
25749         NULL, HFILL }},
25750     { &hf_gsm_map_gr_vstk_rand,
25751       { "vstk-rand", "gsm_map.gr.vstk_rand",
25752         FT_BYTES, BASE_NONE, NULL, 0,
25753         NULL, HFILL }},
25754     { &hf_gsm_map_gr_talkerChannelParameter,
25755       { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter_element",
25756         FT_NONE, BASE_NONE, NULL, 0,
25757         NULL, HFILL }},
25758     { &hf_gsm_map_gr_uplinkReplyIndicator,
25759       { "uplinkReplyIndicator", "gsm_map.gr.uplinkReplyIndicator_element",
25760         FT_NONE, BASE_NONE, NULL, 0,
25761         NULL, HFILL }},
25762     { &hf_gsm_map_gr_groupCallNumber,
25763       { "groupCallNumber", "gsm_map.gr.groupCallNumber",
25764         FT_BYTES, BASE_NONE, NULL, 0,
25765         "ISDN_AddressString", HFILL }},
25766     { &hf_gsm_map_gr_imsi,
25767       { "imsi", "gsm_map.gr.imsi",
25768         FT_BYTES, BASE_NONE, NULL, 0,
25769         NULL, HFILL }},
25770     { &hf_gsm_map_gr_talkerPriority,
25771       { "talkerPriority", "gsm_map.gr.talkerPriority",
25772         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0,
25773         NULL, HFILL }},
25774     { &hf_gsm_map_gr_additionalInfo,
25775       { "additionalInfo", "gsm_map.gr.additionalInfo",
25776         FT_BYTES, BASE_NONE, NULL, 0,
25777         NULL, HFILL }},
25778     { &hf_gsm_map_gr_uplinkRequestAck,
25779       { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck_element",
25780         FT_NONE, BASE_NONE, NULL, 0,
25781         NULL, HFILL }},
25782     { &hf_gsm_map_gr_uplinkReleaseIndication,
25783       { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication_element",
25784         FT_NONE, BASE_NONE, NULL, 0,
25785         NULL, HFILL }},
25786     { &hf_gsm_map_gr_uplinkRejectCommand,
25787       { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand_element",
25788         FT_NONE, BASE_NONE, NULL, 0,
25789         NULL, HFILL }},
25790     { &hf_gsm_map_gr_uplinkSeizedCommand,
25791       { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand_element",
25792         FT_NONE, BASE_NONE, NULL, 0,
25793         NULL, HFILL }},
25794     { &hf_gsm_map_gr_uplinkReleaseCommand,
25795       { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand_element",
25796         FT_NONE, BASE_NONE, NULL, 0,
25797         NULL, HFILL }},
25798     { &hf_gsm_map_gr_stateAttributes,
25799       { "stateAttributes", "gsm_map.gr.stateAttributes_element",
25800         FT_NONE, BASE_NONE, NULL, 0,
25801         NULL, HFILL }},
25802     { &hf_gsm_map_gr_emergencyModeResetCommandFlag,
25803       { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag_element",
25804         FT_NONE, BASE_NONE, NULL, 0,
25805         NULL, HFILL }},
25806     { &hf_gsm_map_gr_sm_RP_UI,
25807       { "sm-RP-UI", "gsm_map.gr.sm_RP_UI",
25808         FT_BYTES, BASE_NONE, NULL, 0,
25809         "SignalInfo", HFILL }},
25810     { &hf_gsm_map_gr_an_APDU,
25811       { "an-APDU", "gsm_map.gr.an_APDU_element",
25812         FT_NONE, BASE_NONE, NULL, 0,
25813         "AccessNetworkSignalInfo", HFILL }},
25814     { &hf_gsm_map_gr_uplinkRequest,
25815       { "uplinkRequest", "gsm_map.gr.uplinkRequest_element",
25816         FT_NONE, BASE_NONE, NULL, 0,
25817         NULL, HFILL }},
25818     { &hf_gsm_map_gr_releaseGroupCall,
25819       { "releaseGroupCall", "gsm_map.gr.releaseGroupCall_element",
25820         FT_NONE, BASE_NONE, NULL, 0,
25821         NULL, HFILL }},
25822     { &hf_gsm_map_gr_downlinkAttached,
25823       { "downlinkAttached", "gsm_map.gr.downlinkAttached_element",
25824         FT_NONE, BASE_NONE, NULL, 0,
25825         NULL, HFILL }},
25826     { &hf_gsm_map_gr_uplinkAttached,
25827       { "uplinkAttached", "gsm_map.gr.uplinkAttached_element",
25828         FT_NONE, BASE_NONE, NULL, 0,
25829         NULL, HFILL }},
25830     { &hf_gsm_map_gr_dualCommunication,
25831       { "dualCommunication", "gsm_map.gr.dualCommunication_element",
25832         FT_NONE, BASE_NONE, NULL, 0,
25833         NULL, HFILL }},
25834     { &hf_gsm_map_gr_callOriginator,
25835       { "callOriginator", "gsm_map.gr.callOriginator_element",
25836         FT_NONE, BASE_NONE, NULL, 0,
25837         NULL, HFILL }},
25838     { &hf_gsm_map_gr_requestedInfo,
25839       { "requestedInfo", "gsm_map.gr.requestedInfo",
25840         FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0,
25841         NULL, HFILL }},
25842     { &hf_gsm_map_gr_groupId,
25843       { "groupId", "gsm_map.gr.groupId",
25844         FT_BYTES, BASE_NONE, NULL, 0,
25845         "Long_GroupId", HFILL }},
25846     { &hf_gsm_map_gr_cellId,
25847       { "cellId", "gsm_map.gr.cellId",
25848         FT_BYTES, BASE_NONE, NULL, 0,
25849         "GlobalCellId", HFILL }},
25850     { &hf_gsm_map_gr_tmsi,
25851       { "tmsi", "gsm_map.gr.tmsi",
25852         FT_BYTES, BASE_NONE, NULL, 0,
25853         NULL, HFILL }},
25854     { &hf_gsm_map_gr_cksn,
25855       { "cksn", "gsm_map.gr.cksn",
25856         FT_BYTES, BASE_NONE, NULL, 0,
25857         NULL, HFILL }},
25858     { &hf_gsm_map_gr_anchorMSC_Address,
25859       { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address",
25860         FT_BYTES, BASE_NONE, NULL, 0,
25861         "ISDN_AddressString", HFILL }},
25862     { &hf_gsm_map_gr_additionalSubscriptions,
25863       { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions",
25864         FT_BYTES, BASE_NONE, NULL, 0,
25865         NULL, HFILL }},
25866     { &hf_gsm_map_gr_kc,
25867       { "kc", "gsm_map.gr.kc",
25868         FT_BYTES, BASE_NONE, NULL, 0,
25869         NULL, HFILL }},
25870
25871 /* --- Module MAP-DialogueInformation --- --- ---                             */
25872
25873     { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU,
25874       { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU",
25875         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0,
25876         NULL, HFILL }},
25877     { &hf_gsm_map_dialogue_map_open,
25878       { "map-open", "gsm_map.dialogue.map_open_element",
25879         FT_NONE, BASE_NONE, NULL, 0,
25880         "MAP_OpenInfo", HFILL }},
25881     { &hf_gsm_map_dialogue_map_accept,
25882       { "map-accept", "gsm_map.dialogue.map_accept_element",
25883         FT_NONE, BASE_NONE, NULL, 0,
25884         "MAP_AcceptInfo", HFILL }},
25885     { &hf_gsm_map_dialogue_map_close,
25886       { "map-close", "gsm_map.dialogue.map_close_element",
25887         FT_NONE, BASE_NONE, NULL, 0,
25888         "MAP_CloseInfo", HFILL }},
25889     { &hf_gsm_map_dialogue_map_refuse,
25890       { "map-refuse", "gsm_map.dialogue.map_refuse_element",
25891         FT_NONE, BASE_NONE, NULL, 0,
25892         "MAP_RefuseInfo", HFILL }},
25893     { &hf_gsm_map_dialogue_map_userAbort,
25894       { "map-userAbort", "gsm_map.dialogue.map_userAbort_element",
25895         FT_NONE, BASE_NONE, NULL, 0,
25896         "MAP_UserAbortInfo", HFILL }},
25897     { &hf_gsm_map_dialogue_map_providerAbort,
25898       { "map-providerAbort", "gsm_map.dialogue.map_providerAbort_element",
25899         FT_NONE, BASE_NONE, NULL, 0,
25900         "MAP_ProviderAbortInfo", HFILL }},
25901     { &hf_gsm_map_dialogue_destinationReference,
25902       { "destinationReference", "gsm_map.dialogue.destinationReference",
25903         FT_BYTES, BASE_NONE, NULL, 0,
25904         "AddressString", HFILL }},
25905     { &hf_gsm_map_dialogue_originationReference,
25906       { "originationReference", "gsm_map.dialogue.originationReference",
25907         FT_BYTES, BASE_NONE, NULL, 0,
25908         "AddressString", HFILL }},
25909     { &hf_gsm_map_dialogue_extensionContainer,
25910       { "extensionContainer", "gsm_map.dialogue.extensionContainer_element",
25911         FT_NONE, BASE_NONE, NULL, 0,
25912         NULL, HFILL }},
25913     { &hf_gsm_map_dialogue_reason,
25914       { "reason", "gsm_map.dialogue.reason",
25915         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0,
25916         NULL, HFILL }},
25917     { &hf_gsm_map_dialogue_alternativeApplicationContext,
25918       { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext",
25919         FT_OID, BASE_NONE, NULL, 0,
25920         "OBJECT_IDENTIFIER", HFILL }},
25921     { &hf_gsm_map_dialogue_map_UserAbortChoice,
25922       { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice",
25923         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0,
25924         NULL, HFILL }},
25925     { &hf_gsm_map_dialogue_userSpecificReason,
25926       { "userSpecificReason", "gsm_map.dialogue.userSpecificReason_element",
25927         FT_NONE, BASE_NONE, NULL, 0,
25928         NULL, HFILL }},
25929     { &hf_gsm_map_dialogue_userResourceLimitation,
25930       { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation_element",
25931         FT_NONE, BASE_NONE, NULL, 0,
25932         NULL, HFILL }},
25933     { &hf_gsm_map_dialogue_resourceUnavailable,
25934       { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable",
25935         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0,
25936         "ResourceUnavailableReason", HFILL }},
25937     { &hf_gsm_map_dialogue_applicationProcedureCancellation,
25938       { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation",
25939         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0,
25940         "ProcedureCancellationReason", HFILL }},
25941     { &hf_gsm_map_dialogue_map_ProviderAbortReason,
25942       { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason",
25943         FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0,
25944         NULL, HFILL }},
25945
25946 /* --- Module DummyMAP --- --- ---                                            */
25947
25948     { &hf_gsm_old_invoke,
25949       { "invoke", "gsm_old.invoke_element",
25950         FT_NONE, BASE_NONE, NULL, 0,
25951         NULL, HFILL }},
25952     { &hf_gsm_old_returnResultLast,
25953       { "returnResultLast", "gsm_old.returnResultLast_element",
25954         FT_NONE, BASE_NONE, NULL, 0,
25955         "ReturnResult", HFILL }},
25956     { &hf_gsm_old_returnError,
25957       { "returnError", "gsm_old.returnError_element",
25958         FT_NONE, BASE_NONE, NULL, 0,
25959         NULL, HFILL }},
25960     { &hf_gsm_old_reject,
25961       { "reject", "gsm_old.reject_element",
25962         FT_NONE, BASE_NONE, NULL, 0,
25963         NULL, HFILL }},
25964     { &hf_gsm_old_returnResultNotLast,
25965       { "returnResultNotLast", "gsm_old.returnResultNotLast_element",
25966         FT_NONE, BASE_NONE, NULL, 0,
25967         "ReturnResult", HFILL }},
25968     { &hf_gsm_old_invokeID,
25969       { "invokeID", "gsm_old.invokeID",
25970         FT_INT32, BASE_DEC, NULL, 0,
25971         "InvokeIdType", HFILL }},
25972     { &hf_gsm_old_linkedID,
25973       { "linkedID", "gsm_old.linkedID",
25974         FT_INT32, BASE_DEC, NULL, 0,
25975         "InvokeIdType", HFILL }},
25976     { &hf_gsm_old_opCode,
25977       { "opCode", "gsm_old.opCode",
25978         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0,
25979         "MAP_OPERATION", HFILL }},
25980     { &hf_gsm_old_invokeparameter,
25981       { "invokeparameter", "gsm_old.invokeparameter_element",
25982         FT_NONE, BASE_NONE, NULL, 0,
25983         NULL, HFILL }},
25984     { &hf_gsm_old_resultretres,
25985       { "resultretres", "gsm_old.resultretres_element",
25986         FT_NONE, BASE_NONE, NULL, 0,
25987         NULL, HFILL }},
25988     { &hf_gsm_old_returnparameter,
25989       { "returnparameter", "gsm_old.returnparameter_element",
25990         FT_NONE, BASE_NONE, NULL, 0,
25991         "ReturnResultParameter", HFILL }},
25992     { &hf_gsm_old_errorCode,
25993       { "errorCode", "gsm_old.errorCode",
25994         FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0,
25995         "MAP_ERROR", HFILL }},
25996     { &hf_gsm_old_parameter,
25997       { "parameter", "gsm_old.parameter_element",
25998         FT_NONE, BASE_NONE, NULL, 0,
25999         "ReturnErrorParameter", HFILL }},
26000     { &hf_gsm_old_invokeIDRej,
26001       { "invokeIDRej", "gsm_old.invokeIDRej",
26002         FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0,
26003         NULL, HFILL }},
26004     { &hf_gsm_old_derivable,
26005       { "derivable", "gsm_old.derivable",
26006         FT_INT32, BASE_DEC, NULL, 0,
26007         "InvokeIdType", HFILL }},
26008     { &hf_gsm_old_not_derivable,
26009       { "not-derivable", "gsm_old.not_derivable_element",
26010         FT_NONE, BASE_NONE, NULL, 0,
26011         NULL, HFILL }},
26012     { &hf_gsm_old_problem,
26013       { "problem", "gsm_old.problem",
26014         FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0,
26015         NULL, HFILL }},
26016     { &hf_gsm_old_generalProblem,
26017       { "generalProblem", "gsm_old.generalProblem",
26018         FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0,
26019         NULL, HFILL }},
26020     { &hf_gsm_old_invokeProblem,
26021       { "invokeProblem", "gsm_old.invokeProblem",
26022         FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0,
26023         NULL, HFILL }},
26024     { &hf_gsm_old_returnResultProblem,
26025       { "returnResultProblem", "gsm_old.returnResultProblem",
26026         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0,
26027         NULL, HFILL }},
26028     { &hf_gsm_old_returnErrorProblem,
26029       { "returnErrorProblem", "gsm_old.returnErrorProblem",
26030         FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0,
26031         NULL, HFILL }},
26032     { &hf_gsm_old_localValue,
26033       { "localValue", "gsm_old.localValue",
26034         FT_INT32, BASE_DEC|BASE_EXT_STRING, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, 0,
26035         "OperationLocalvalue", HFILL }},
26036     { &hf_gsm_old_globalValue,
26037       { "globalValue", "gsm_old.globalValue",
26038         FT_OID, BASE_NONE, NULL, 0,
26039         "OBJECT_IDENTIFIER", HFILL }},
26040     { &hf_gsm_old_localValue_01,
26041       { "localValue", "gsm_old.localValue",
26042         FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0,
26043         "LocalErrorcode", HFILL }},
26044     { &hf_gsm_old_protocolId,
26045       { "protocolId", "gsm_old.protocolId",
26046         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
26047         NULL, HFILL }},
26048     { &hf_gsm_old_signalInfo,
26049       { "signalInfo", "gsm_old.signalInfo",
26050         FT_BYTES, BASE_NONE, NULL, 0,
26051         NULL, HFILL }},
26052     { &hf_gsm_old_extensionContainer,
26053       { "extensionContainer", "gsm_old.extensionContainer_element",
26054         FT_NONE, BASE_NONE, NULL, 0,
26055         NULL, HFILL }},
26056     { &hf_gsm_old_gsm_BearerCapability,
26057       { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability_element",
26058         FT_NONE, BASE_NONE, NULL, 0,
26059         "ExternalSignalInfo", HFILL }},
26060     { &hf_gsm_old_isdn_BearerCapability,
26061       { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability_element",
26062         FT_NONE, BASE_NONE, NULL, 0,
26063         "ExternalSignalInfo", HFILL }},
26064     { &hf_gsm_old_call_Direction,
26065       { "call-Direction", "gsm_old.call_Direction",
26066         FT_BYTES, BASE_NONE, NULL, 0,
26067         "CallDirection", HFILL }},
26068     { &hf_gsm_old_b_Subscriber_Address,
26069       { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address",
26070         FT_BYTES, BASE_NONE, NULL, 0,
26071         "ISDN_AddressString", HFILL }},
26072     { &hf_gsm_old_chosenChannel,
26073       { "chosenChannel", "gsm_old.chosenChannel_element",
26074         FT_NONE, BASE_NONE, NULL, 0,
26075         "ExternalSignalInfo", HFILL }},
26076     { &hf_gsm_old_lowerLayerCompatibility,
26077       { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility_element",
26078         FT_NONE, BASE_NONE, NULL, 0,
26079         "ExternalSignalInfo", HFILL }},
26080     { &hf_gsm_old_highLayerCompatibility,
26081       { "highLayerCompatibility", "gsm_old.highLayerCompatibility_element",
26082         FT_NONE, BASE_NONE, NULL, 0,
26083         "ExternalSignalInfo", HFILL }},
26084     { &hf_gsm_old_sIWFSNumber,
26085       { "sIWFSNumber", "gsm_old.sIWFSNumber",
26086         FT_BYTES, BASE_NONE, NULL, 0,
26087         "ISDN_AddressString", HFILL }},
26088     { &hf_gsm_old_imsi,
26089       { "imsi", "gsm_old.imsi",
26090         FT_BYTES, BASE_NONE, NULL, 0,
26091         NULL, HFILL }},
26092     { &hf_gsm_old_vlr_Number,
26093       { "vlr-Number", "gsm_old.vlr_Number",
26094         FT_BYTES, BASE_NONE, NULL, 0,
26095         "ISDN_AddressString", HFILL }},
26096     { &hf_gsm_old_targetCellId,
26097       { "targetCellId", "gsm_old.targetCellId",
26098         FT_BYTES, BASE_NONE, NULL, 0,
26099         "GlobalCellId", HFILL }},
26100     { &hf_gsm_old_ho_NumberNotRequired,
26101       { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired_element",
26102         FT_NONE, BASE_NONE, NULL, 0,
26103         NULL, HFILL }},
26104     { &hf_gsm_old_bss_APDU,
26105       { "bss-APDU", "gsm_old.bss_APDU_element",
26106         FT_NONE, BASE_NONE, NULL, 0,
26107         NULL, HFILL }},
26108     { &hf_gsm_old_handoverNumber,
26109       { "handoverNumber", "gsm_old.handoverNumber",
26110         FT_BYTES, BASE_NONE, NULL, 0,
26111         "ISDN_AddressString", HFILL }},
26112     { &hf_gsm_old_SendAuthenticationInfoResOld_item,
26113       { "SendAuthenticationInfoResOld item", "gsm_old.SendAuthenticationInfoResOld_item_element",
26114         FT_NONE, BASE_NONE, NULL, 0,
26115         NULL, HFILL }},
26116     { &hf_gsm_old_rand,
26117       { "rand", "gsm_old.rand",
26118         FT_BYTES, BASE_NONE, NULL, 0,
26119         NULL, HFILL }},
26120     { &hf_gsm_old_sres,
26121       { "sres", "gsm_old.sres",
26122         FT_BYTES, BASE_NONE, NULL, 0,
26123         NULL, HFILL }},
26124     { &hf_gsm_old_kc,
26125       { "kc", "gsm_old.kc",
26126         FT_BYTES, BASE_NONE, NULL, 0,
26127         NULL, HFILL }},
26128     { &hf_gsm_old_tripletList,
26129       { "tripletList", "gsm_old.tripletList",
26130         FT_UINT32, BASE_DEC, NULL, 0,
26131         "TripletListold", HFILL }},
26132     { &hf_gsm_old_TripletListold_item,
26133       { "AuthenticationTriplet-v2", "gsm_old.AuthenticationTriplet_v2_element",
26134         FT_NONE, BASE_NONE, NULL, 0,
26135         NULL, HFILL }},
26136     { &hf_gsm_old_channelType,
26137       { "channelType", "gsm_old.channelType_element",
26138         FT_NONE, BASE_NONE, NULL, 0,
26139         "ExternalSignalInfo", HFILL }},
26140     { &hf_gsm_old_securityHeader,
26141       { "securityHeader", "gsm_old.securityHeader_element",
26142         FT_NONE, BASE_NONE, NULL, 0,
26143         NULL, HFILL }},
26144     { &hf_gsm_old_protectedPayload,
26145       { "protectedPayload", "gsm_old.protectedPayload",
26146         FT_BYTES, BASE_NONE, NULL, 0,
26147         NULL, HFILL }},
26148     { &hf_gsm_old_securityParametersIndex,
26149       { "securityParametersIndex", "gsm_old.securityParametersIndex",
26150         FT_BYTES, BASE_NONE, NULL, 0,
26151         NULL, HFILL }},
26152     { &hf_gsm_old_originalComponentIdentifier,
26153       { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier",
26154         FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0,
26155         NULL, HFILL }},
26156     { &hf_gsm_old_initialisationVector,
26157       { "initialisationVector", "gsm_old.initialisationVector",
26158         FT_BYTES, BASE_NONE, NULL, 0,
26159         NULL, HFILL }},
26160     { &hf_gsm_old_operationCode,
26161       { "operationCode", "gsm_old.operationCode",
26162         FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0,
26163         NULL, HFILL }},
26164     { &hf_gsm_old_errorCode_01,
26165       { "errorCode", "gsm_old.errorCode",
26166         FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0,
26167         NULL, HFILL }},
26168     { &hf_gsm_old_userInfo,
26169       { "userInfo", "gsm_old.userInfo_element",
26170         FT_NONE, BASE_NONE, NULL, 0,
26171         NULL, HFILL }},
26172     { &hf_gsm_old_localValue_02,
26173       { "localValue", "gsm_old.localValue",
26174         FT_INT32, BASE_DEC, NULL, 0,
26175         "INTEGER", HFILL }},
26176     { &hf_gsm_old_msisdn,
26177       { "msisdn", "gsm_old.msisdn",
26178         FT_BYTES, BASE_NONE, NULL, 0,
26179         "ISDN_AddressString", HFILL }},
26180     { &hf_gsm_old_category,
26181       { "category", "gsm_old.category",
26182         FT_BYTES, BASE_NONE, NULL, 0,
26183         NULL, HFILL }},
26184     { &hf_gsm_old_basicService,
26185       { "basicService", "gsm_old.basicService",
26186         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
26187         "BasicServiceCode", HFILL }},
26188     { &hf_gsm_old_operatorSS_Code,
26189       { "operatorSS-Code", "gsm_old.operatorSS_Code",
26190         FT_UINT32, BASE_DEC, NULL, 0,
26191         NULL, HFILL }},
26192     { &hf_gsm_old_operatorSS_Code_item,
26193       { "operatorSS-Code item", "gsm_old.operatorSS_Code_item",
26194         FT_BYTES, BASE_NONE, NULL, 0,
26195         "OCTET_STRING_SIZE_1", HFILL }},
26196     { &hf_gsm_old_sm_RP_DA,
26197       { "sm-RP-DA", "gsm_old.sm_RP_DA",
26198         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0,
26199         "SM_RP_DAold", HFILL }},
26200     { &hf_gsm_old_sm_RP_OA,
26201       { "sm-RP-OA", "gsm_old.sm_RP_OA",
26202         FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0,
26203         "SM_RP_OAold", HFILL }},
26204     { &hf_gsm_old_sm_RP_UI,
26205       { "sm-RP-UI", "gsm_old.sm_RP_UI",
26206         FT_BYTES, BASE_NONE, NULL, 0,
26207         "SignalInfo", HFILL }},
26208     { &hf_gsm_old_moreMessagesToSend,
26209       { "moreMessagesToSend", "gsm_old.moreMessagesToSend_element",
26210         FT_NONE, BASE_NONE, NULL, 0,
26211         NULL, HFILL }},
26212     { &hf_gsm_old_imsi_01,
26213       { "imsi", "gsm_old.imsi",
26214         FT_BYTES, BASE_NONE, NULL, 0,
26215         NULL, HFILL }},
26216     { &hf_gsm_old_lmsi,
26217       { "lmsi", "gsm_old.lmsi",
26218         FT_BYTES, BASE_NONE, NULL, 0,
26219         NULL, HFILL }},
26220     { &hf_gsm_old_serviceCentreAddressDA,
26221       { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA",
26222         FT_BYTES, BASE_NONE, NULL, 0,
26223         NULL, HFILL }},
26224     { &hf_gsm_old_noSM_RP_DA,
26225       { "noSM-RP-DA", "gsm_old.noSM_RP_DA_element",
26226         FT_NONE, BASE_NONE, NULL, 0,
26227         NULL, HFILL }},
26228     { &hf_gsm_old_msisdn_01,
26229       { "msisdn", "gsm_old.msisdn",
26230         FT_BYTES, BASE_NONE, NULL, 0,
26231         NULL, HFILL }},
26232     { &hf_gsm_old_serviceCentreAddressOA,
26233       { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA",
26234         FT_BYTES, BASE_NONE, NULL, 0,
26235         NULL, HFILL }},
26236     { &hf_gsm_old_noSM_RP_OA,
26237       { "noSM-RP-OA", "gsm_old.noSM_RP_OA_element",
26238         FT_NONE, BASE_NONE, NULL, 0,
26239         NULL, HFILL }},
26240     { &hf_gsm_old_cug_CheckInfo,
26241       { "cug-CheckInfo", "gsm_old.cug_CheckInfo_element",
26242         FT_NONE, BASE_NONE, NULL, 0,
26243         NULL, HFILL }},
26244     { &hf_gsm_old_numberOfForwarding,
26245       { "numberOfForwarding", "gsm_old.numberOfForwarding",
26246         FT_UINT32, BASE_DEC, NULL, 0,
26247         NULL, HFILL }},
26248     { &hf_gsm_old_networkSignalInfo,
26249       { "networkSignalInfo", "gsm_old.networkSignalInfo_element",
26250         FT_NONE, BASE_NONE, NULL, 0,
26251         "ExternalSignalInfo", HFILL }},
26252     { &hf_gsm_old_routingInfo,
26253       { "routingInfo", "gsm_old.routingInfo",
26254         FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0,
26255         NULL, HFILL }},
26256     { &hf_gsm_old_originatingEntityNumber,
26257       { "originatingEntityNumber", "gsm_old.originatingEntityNumber",
26258         FT_BYTES, BASE_NONE, NULL, 0,
26259         "ISDN_AddressString", HFILL }},
26260     { &hf_gsm_old_msisdn_02,
26261       { "msisdn", "gsm_old.msisdn",
26262         FT_BYTES, BASE_NONE, NULL, 0,
26263         "AddressString", HFILL }},
26264
26265 /* --- Module SS-DataTypes --- --- ---                                        */
26266
26267     { &hf_gsm_ss_ss_Code,
26268       { "ss-Code", "gsm_ss.ss_Code",
26269         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
26270         NULL, HFILL }},
26271     { &hf_gsm_ss_ss_Status,
26272       { "ss-Status", "gsm_ss.ss_Status",
26273         FT_BYTES, BASE_NONE, NULL, 0,
26274         NULL, HFILL }},
26275     { &hf_gsm_ss_ss_Notification,
26276       { "ss-Notification", "gsm_ss.ss_Notification",
26277         FT_BYTES, BASE_NONE, NULL, 0,
26278         NULL, HFILL }},
26279     { &hf_gsm_ss_callIsWaiting_Indicator,
26280       { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator_element",
26281         FT_NONE, BASE_NONE, NULL, 0,
26282         NULL, HFILL }},
26283     { &hf_gsm_ss_callOnHold_Indicator,
26284       { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator",
26285         FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0,
26286         NULL, HFILL }},
26287     { &hf_gsm_ss_mpty_Indicator,
26288       { "mpty-Indicator", "gsm_ss.mpty_Indicator_element",
26289         FT_NONE, BASE_NONE, NULL, 0,
26290         NULL, HFILL }},
26291     { &hf_gsm_ss_cug_Index,
26292       { "cug-Index", "gsm_ss.cug_Index",
26293         FT_UINT32, BASE_DEC, NULL, 0,
26294         NULL, HFILL }},
26295     { &hf_gsm_ss_clirSuppressionRejected,
26296       { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected_element",
26297         FT_NONE, BASE_NONE, NULL, 0,
26298         NULL, HFILL }},
26299     { &hf_gsm_ss_ect_Indicator,
26300       { "ect-Indicator", "gsm_ss.ect_Indicator_element",
26301         FT_NONE, BASE_NONE, NULL, 0,
26302         NULL, HFILL }},
26303     { &hf_gsm_ss_nameIndicator,
26304       { "nameIndicator", "gsm_ss.nameIndicator_element",
26305         FT_NONE, BASE_NONE, NULL, 0,
26306         NULL, HFILL }},
26307     { &hf_gsm_ss_ccbs_Feature,
26308       { "ccbs-Feature", "gsm_ss.ccbs_Feature_element",
26309         FT_NONE, BASE_NONE, NULL, 0,
26310         NULL, HFILL }},
26311     { &hf_gsm_ss_alertingPattern,
26312       { "alertingPattern", "gsm_ss.alertingPattern",
26313         FT_BYTES, BASE_NONE, NULL, 0,
26314         NULL, HFILL }},
26315     { &hf_gsm_ss_multicall_Indicator,
26316       { "multicall-Indicator", "gsm_ss.multicall_Indicator",
26317         FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0,
26318         NULL, HFILL }},
26319     { &hf_gsm_ss_chargingInformation,
26320       { "chargingInformation", "gsm_ss.chargingInformation_element",
26321         FT_NONE, BASE_NONE, NULL, 0,
26322         NULL, HFILL }},
26323     { &hf_gsm_ss_e1,
26324       { "e1", "gsm_ss.e1",
26325         FT_UINT32, BASE_DEC, NULL, 0,
26326         NULL, HFILL }},
26327     { &hf_gsm_ss_e2,
26328       { "e2", "gsm_ss.e2",
26329         FT_UINT32, BASE_DEC, NULL, 0,
26330         NULL, HFILL }},
26331     { &hf_gsm_ss_e3,
26332       { "e3", "gsm_ss.e3",
26333         FT_UINT32, BASE_DEC, NULL, 0,
26334         NULL, HFILL }},
26335     { &hf_gsm_ss_e4,
26336       { "e4", "gsm_ss.e4",
26337         FT_UINT32, BASE_DEC, NULL, 0,
26338         NULL, HFILL }},
26339     { &hf_gsm_ss_e5,
26340       { "e5", "gsm_ss.e5",
26341         FT_UINT32, BASE_DEC, NULL, 0,
26342         NULL, HFILL }},
26343     { &hf_gsm_ss_e6,
26344       { "e6", "gsm_ss.e6",
26345         FT_UINT32, BASE_DEC, NULL, 0,
26346         NULL, HFILL }},
26347     { &hf_gsm_ss_e7,
26348       { "e7", "gsm_ss.e7",
26349         FT_UINT32, BASE_DEC, NULL, 0,
26350         NULL, HFILL }},
26351     { &hf_gsm_ss_suppressPrefCUG,
26352       { "suppressPrefCUG", "gsm_ss.suppressPrefCUG_element",
26353         FT_NONE, BASE_NONE, NULL, 0,
26354         NULL, HFILL }},
26355     { &hf_gsm_ss_suppressOA,
26356       { "suppressOA", "gsm_ss.suppressOA_element",
26357         FT_NONE, BASE_NONE, NULL, 0,
26358         NULL, HFILL }},
26359     { &hf_gsm_ss_ect_CallState,
26360       { "ect-CallState", "gsm_ss.ect_CallState",
26361         FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0,
26362         NULL, HFILL }},
26363     { &hf_gsm_ss_rdn,
26364       { "rdn", "gsm_ss.rdn",
26365         FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0,
26366         NULL, HFILL }},
26367     { &hf_gsm_ss_callingName,
26368       { "callingName", "gsm_ss.callingName",
26369         FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0,
26370         "Name", HFILL }},
26371     { &hf_gsm_ss_namePresentationAllowed,
26372       { "namePresentationAllowed", "gsm_ss.namePresentationAllowed_element",
26373         FT_NONE, BASE_NONE, NULL, 0,
26374         "NameSet", HFILL }},
26375     { &hf_gsm_ss_presentationRestricted,
26376       { "presentationRestricted", "gsm_ss.presentationRestricted_element",
26377         FT_NONE, BASE_NONE, NULL, 0,
26378         NULL, HFILL }},
26379     { &hf_gsm_ss_nameUnavailable,
26380       { "nameUnavailable", "gsm_ss.nameUnavailable_element",
26381         FT_NONE, BASE_NONE, NULL, 0,
26382         NULL, HFILL }},
26383     { &hf_gsm_ss_namePresentationRestricted,
26384       { "namePresentationRestricted", "gsm_ss.namePresentationRestricted_element",
26385         FT_NONE, BASE_NONE, NULL, 0,
26386         "NameSet", HFILL }},
26387     { &hf_gsm_ss_dataCodingScheme,
26388       { "dataCodingScheme", "gsm_ss.dataCodingScheme",
26389         FT_BYTES, BASE_NONE, NULL, 0,
26390         "USSD_DataCodingScheme", HFILL }},
26391     { &hf_gsm_ss_lengthInCharacters,
26392       { "lengthInCharacters", "gsm_ss.lengthInCharacters",
26393         FT_INT32, BASE_DEC, NULL, 0,
26394         "INTEGER", HFILL }},
26395     { &hf_gsm_ss_nameString,
26396       { "nameString", "gsm_ss.nameString",
26397         FT_BYTES, BASE_NONE, NULL, 0,
26398         "USSD_String", HFILL }},
26399     { &hf_gsm_ss_presentationAllowedAddress,
26400       { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress_element",
26401         FT_NONE, BASE_NONE, NULL, 0,
26402         "RemotePartyNumber", HFILL }},
26403     { &hf_gsm_ss_numberNotAvailableDueToInterworking,
26404       { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking_element",
26405         FT_NONE, BASE_NONE, NULL, 0,
26406         NULL, HFILL }},
26407     { &hf_gsm_ss_presentationRestrictedAddress,
26408       { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress_element",
26409         FT_NONE, BASE_NONE, NULL, 0,
26410         "RemotePartyNumber", HFILL }},
26411     { &hf_gsm_ss_partyNumber,
26412       { "partyNumber", "gsm_ss.partyNumber",
26413         FT_BYTES, BASE_NONE, NULL, 0,
26414         "ISDN_AddressString", HFILL }},
26415     { &hf_gsm_ss_partyNumberSubaddress,
26416       { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress",
26417         FT_BYTES, BASE_NONE, NULL, 0,
26418         "ISDN_SubaddressString", HFILL }},
26419     { &hf_gsm_ss_deflectedToNumber,
26420       { "deflectedToNumber", "gsm_ss.deflectedToNumber",
26421         FT_BYTES, BASE_NONE, NULL, 0,
26422         "AddressString", HFILL }},
26423     { &hf_gsm_ss_deflectedToSubaddress,
26424       { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress",
26425         FT_BYTES, BASE_NONE, NULL, 0,
26426         "ISDN_SubaddressString", HFILL }},
26427     { &hf_gsm_ss_uUS_Service,
26428       { "uUS-Service", "gsm_ss.uUS_Service",
26429         FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0,
26430         NULL, HFILL }},
26431     { &hf_gsm_ss_uUS_Required,
26432       { "uUS-Required", "gsm_ss.uUS_Required",
26433         FT_BOOLEAN, BASE_NONE, NULL, 0,
26434         "BOOLEAN", HFILL }},
26435     { &hf_gsm_ss_notificationType,
26436       { "notificationType", "gsm_ss.notificationType",
26437         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0,
26438         "NotificationToMSUser", HFILL }},
26439     { &hf_gsm_ss_locationType,
26440       { "locationType", "gsm_ss.locationType_element",
26441         FT_NONE, BASE_NONE, NULL, 0,
26442         NULL, HFILL }},
26443     { &hf_gsm_ss_lcsClientExternalID,
26444       { "lcsClientExternalID", "gsm_ss.lcsClientExternalID_element",
26445         FT_NONE, BASE_NONE, NULL, 0,
26446         NULL, HFILL }},
26447     { &hf_gsm_ss_lcsClientName,
26448       { "lcsClientName", "gsm_ss.lcsClientName_element",
26449         FT_NONE, BASE_NONE, NULL, 0,
26450         NULL, HFILL }},
26451     { &hf_gsm_ss_lcsRequestorID,
26452       { "lcsRequestorID", "gsm_ss.lcsRequestorID_element",
26453         FT_NONE, BASE_NONE, NULL, 0,
26454         NULL, HFILL }},
26455     { &hf_gsm_ss_lcsCodeword,
26456       { "lcsCodeword", "gsm_ss.lcsCodeword_element",
26457         FT_NONE, BASE_NONE, NULL, 0,
26458         NULL, HFILL }},
26459     { &hf_gsm_ss_lcsServiceTypeID,
26460       { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID",
26461         FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0,
26462         NULL, HFILL }},
26463     { &hf_gsm_ss_verificationResponse,
26464       { "verificationResponse", "gsm_ss.verificationResponse",
26465         FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0,
26466         NULL, HFILL }},
26467     { &hf_gsm_ss_molr_Type,
26468       { "molr-Type", "gsm_ss.molr_Type",
26469         FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0,
26470         NULL, HFILL }},
26471     { &hf_gsm_ss_locationMethod,
26472       { "locationMethod", "gsm_ss.locationMethod",
26473         FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0,
26474         NULL, HFILL }},
26475     { &hf_gsm_ss_lcs_QoS,
26476       { "lcs-QoS", "gsm_ss.lcs_QoS_element",
26477         FT_NONE, BASE_NONE, NULL, 0,
26478         NULL, HFILL }},
26479     { &hf_gsm_ss_mlc_Number,
26480       { "mlc-Number", "gsm_ss.mlc_Number",
26481         FT_BYTES, BASE_NONE, NULL, 0,
26482         "ISDN_AddressString", HFILL }},
26483     { &hf_gsm_ss_gpsAssistanceData,
26484       { "gpsAssistanceData", "gsm_ss.gpsAssistanceData",
26485         FT_BYTES, BASE_NONE, NULL, 0,
26486         NULL, HFILL }},
26487     { &hf_gsm_ss_supportedGADShapes,
26488       { "supportedGADShapes", "gsm_ss.supportedGADShapes",
26489         FT_BYTES, BASE_NONE, NULL, 0,
26490         NULL, HFILL }},
26491     { &hf_gsm_ss_ageOfLocationInfo,
26492       { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo",
26493         FT_UINT32, BASE_DEC, NULL, 0,
26494         "AgeOfLocationInformation", HFILL }},
26495     { &hf_gsm_ss_pseudonymIndicator,
26496       { "pseudonymIndicator", "gsm_ss.pseudonymIndicator_element",
26497         FT_NONE, BASE_NONE, NULL, 0,
26498         NULL, HFILL }},
26499     { &hf_gsm_ss_h_gmlc_address,
26500       { "h-gmlc-address", "gsm_ss.h_gmlc_address",
26501         FT_BYTES, BASE_NONE, NULL, 0,
26502         "GSN_Address", HFILL }},
26503     { &hf_gsm_ss_locationEstimate,
26504       { "locationEstimate", "gsm_ss.locationEstimate",
26505         FT_BYTES, BASE_NONE, NULL, 0,
26506         "Ext_GeographicalInformation", HFILL }},
26507     { &hf_gsm_ss_velocityEstimate,
26508       { "velocityEstimate", "gsm_ss.velocityEstimate",
26509         FT_BYTES, BASE_NONE, NULL, 0,
26510         NULL, HFILL }},
26511     { &hf_gsm_ss_referenceNumber,
26512       { "referenceNumber", "gsm_ss.referenceNumber",
26513         FT_BYTES, BASE_NONE, NULL, 0,
26514         "LCS_ReferenceNumber", HFILL }},
26515     { &hf_gsm_ss_periodicLDRInfo,
26516       { "periodicLDRInfo", "gsm_ss.periodicLDRInfo_element",
26517         FT_NONE, BASE_NONE, NULL, 0,
26518         NULL, HFILL }},
26519     { &hf_gsm_ss_locationUpdateRequest,
26520       { "locationUpdateRequest", "gsm_ss.locationUpdateRequest_element",
26521         FT_NONE, BASE_NONE, NULL, 0,
26522         NULL, HFILL }},
26523     { &hf_gsm_ss_sequenceNumber,
26524       { "sequenceNumber", "gsm_ss.sequenceNumber",
26525         FT_UINT32, BASE_DEC, NULL, 0,
26526         NULL, HFILL }},
26527     { &hf_gsm_ss_terminationCause,
26528       { "terminationCause", "gsm_ss.terminationCause",
26529         FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0,
26530         NULL, HFILL }},
26531     { &hf_gsm_ss_mo_lrShortCircuit,
26532       { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit_element",
26533         FT_NONE, BASE_NONE, NULL, 0,
26534         NULL, HFILL }},
26535     { &hf_gsm_ss_ganssAssistanceData,
26536       { "ganssAssistanceData", "gsm_ss.ganssAssistanceData",
26537         FT_BYTES, BASE_NONE, NULL, 0,
26538         NULL, HFILL }},
26539     { &hf_gsm_ss_multiplePositioningProtocolPDUs,
26540       { "multiplePositioningProtocolPDUs", "gsm_ss.multiplePositioningProtocolPDUs",
26541         FT_UINT32, BASE_DEC, NULL, 0,
26542         NULL, HFILL }},
26543     { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item,
26544       { "PositioningProtocolPDU", "gsm_ss.PositioningProtocolPDU",
26545         FT_BYTES, BASE_NONE, NULL, 0,
26546         NULL, HFILL }},
26547     { &hf_gsm_ss_decipheringKeys,
26548       { "decipheringKeys", "gsm_ss.decipheringKeys",
26549         FT_BYTES, BASE_NONE, NULL, 0,
26550         NULL, HFILL }},
26551     { &hf_gsm_ss_add_LocationEstimate,
26552       { "add-LocationEstimate", "gsm_ss.add_LocationEstimate",
26553         FT_BYTES, BASE_NONE, NULL, 0,
26554         "Add_GeographicalInformation", HFILL }},
26555     { &hf_gsm_ss_reportingPLMNList,
26556       { "reportingPLMNList", "gsm_ss.reportingPLMNList_element",
26557         FT_NONE, BASE_NONE, NULL, 0,
26558         NULL, HFILL }},
26559     { &hf_gsm_ss_deferredLocationEventType,
26560       { "deferredLocationEventType", "gsm_ss.deferredLocationEventType",
26561         FT_BYTES, BASE_NONE, NULL, 0,
26562         NULL, HFILL }},
26563     { &hf_gsm_ss_areaEventInfo,
26564       { "areaEventInfo", "gsm_ss.areaEventInfo_element",
26565         FT_NONE, BASE_NONE, NULL, 0,
26566         NULL, HFILL }},
26567     { &hf_gsm_ss_qoS,
26568       { "qoS", "gsm_ss.qoS_element",
26569         FT_NONE, BASE_NONE, NULL, 0,
26570         "LCS_QoS", HFILL }},
26571
26572 /* --- Module EricssonMAP --- --- ---                                         */
26573
26574     { &hf_gsm_map_ericsson_imei,
26575       { "imei", "gsm_map.ericsson.imei",
26576         FT_BYTES, BASE_NONE, NULL, 0,
26577         NULL, HFILL }},
26578     { &hf_gsm_map_ericsson_requestedEquipmentInfo,
26579       { "requestedEquipmentInfo", "gsm_map.ericsson.requestedEquipmentInfo",
26580         FT_BYTES, BASE_NONE, NULL, 0,
26581         NULL, HFILL }},
26582     { &hf_gsm_map_ericsson_imsi,
26583       { "imsi", "gsm_map.ericsson.imsi",
26584         FT_BYTES, BASE_NONE, NULL, 0,
26585         NULL, HFILL }},
26586     { &hf_gsm_map_ericsson_locationInformation,
26587       { "locationInformation", "gsm_map.ericsson.locationInformation",
26588         FT_BYTES, BASE_NONE, NULL, 0,
26589         NULL, HFILL }},
26590     { &hf_gsm_map_ericsson_extensionContainer,
26591       { "extensionContainer", "gsm_map.ericsson.extensionContainer_element",
26592         FT_NONE, BASE_NONE, NULL, 0,
26593         NULL, HFILL }},
26594
26595 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
26596 #line 2616 "../../asn1/gsm_map/packet-gsm_map-template.c"
26597   };
26598
26599   /* List of subtrees */
26600   static gint *ett[] = {
26601     &ett_gsm_map,
26602     &ett_gsm_map_InvokeId,
26603     &ett_gsm_map_InvokePDU,
26604     &ett_gsm_map_ReturnResultPDU,
26605     &ett_gsm_map_ReturnErrorPDU,
26606     &ett_gsm_map_ReturnResult_result,
26607     &ett_gsm_map_ReturnError_result,
26608     &ett_gsm_map_GSMMAPPDU,
26609     &ett_gsm_map_ext_qos_subscribed,
26610     &ett_gsm_map_pdptypenumber,
26611     &ett_gsm_map_RAIdentity,
26612     &ett_gsm_map_LAIFixedLength,
26613     &ett_gsm_map_isdn_address_string,
26614     &ett_gsm_map_geo_desc,
26615     &ett_gsm_map_LongSignalInfo,
26616     &ett_gsm_map_RadioResourceInformation,
26617     &ett_gsm_map_MSNetworkCapability,
26618     &ett_gsm_map_MSRadioAccessCapability,
26619     &ett_gsm_map_externalsignalinfo,
26620     &ett_gsm_map_cbs_data_coding,
26621     &ett_gsm_map_GlobalCellId,
26622     &ett_gsm_map_GeographicalInformation,
26623     &ett_gsm_map_apn_str,
26624     &ett_gsm_map_LocationNumber,
26625     &ett_gsm_map_ericsson_locationInformation,
26626
26627
26628 /*--- Included file: packet-gsm_map-ettarr.c ---*/
26629 #line 1 "../../asn1/gsm_map/packet-gsm_map-ettarr.c"
26630
26631 /* --- Module MAP-ExtensionDataTypes --- --- ---                              */
26632
26633     &ett_gsm_map_ExtensionContainer,
26634     &ett_gsm_map_SLR_ArgExtensionContainer,
26635     &ett_gsm_map_PrivateExtensionList,
26636     &ett_gsm_map_PrivateExtension,
26637     &ett_gsm_map_PCS_Extensions,
26638     &ett_gsm_map_SLR_Arg_PCS_Extensions,
26639
26640 /* --- Module MAP-CommonDataTypes --- --- ---                                 */
26641
26642     &ett_gsm_map_ExternalSignalInfo,
26643     &ett_gsm_map_Ext_ExternalSignalInfo,
26644     &ett_gsm_map_AccessNetworkSignalInfo,
26645     &ett_gsm_map_Identity,
26646     &ett_gsm_map_IMSI_WithLMSI,
26647     &ett_gsm_map_HLR_List,
26648     &ett_gsm_map_NAEA_PreferredCI,
26649     &ett_gsm_map_SubscriberIdentity,
26650     &ett_gsm_map_LCSClientExternalID,
26651     &ett_gsm_map_NetworkNodeDiameterAddress,
26652     &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
26653     &ett_gsm_map_BasicServiceCode,
26654     &ett_gsm_map_Ext_BasicServiceCode,
26655     &ett_gsm_map_EMLPP_Info,
26656     &ett_gsm_map_MC_SS_Info,
26657
26658 /* --- Module MAP-SS-DataTypes --- --- ---                                    */
26659
26660     &ett_gsm_map_ss_RegisterSS_Arg,
26661     &ett_gsm_map_ss_SS_Info,
26662     &ett_gsm_map_ss_ForwardingInfo,
26663     &ett_gsm_map_ss_ForwardingFeatureList,
26664     &ett_gsm_map_ss_ForwardingFeature,
26665     &ett_gsm_map_ss_CallBarringInfo,
26666     &ett_gsm_map_ss_CallBarringFeatureList,
26667     &ett_gsm_map_ss_CallBarringFeature,
26668     &ett_gsm_map_ss_SS_Data,
26669     &ett_gsm_map_ss_SS_SubscriptionOption,
26670     &ett_gsm_map_ss_SS_ForBS_Code,
26671     &ett_gsm_map_ss_GenericServiceInfo,
26672     &ett_gsm_map_ss_CCBS_FeatureList,
26673     &ett_gsm_map_ss_CCBS_Feature,
26674     &ett_gsm_map_ss_InterrogateSS_Res,
26675     &ett_gsm_map_ss_USSD_Arg,
26676     &ett_gsm_map_ss_USSD_Res,
26677     &ett_gsm_map_ss_SS_List,
26678     &ett_gsm_map_ss_BasicServiceGroupList,
26679     &ett_gsm_map_ss_SS_InvocationNotificationArg,
26680     &ett_gsm_map_ss_SS_InvocationNotificationRes,
26681     &ett_gsm_map_ss_SS_EventSpecification,
26682     &ett_gsm_map_ss_RegisterCC_EntryArg,
26683     &ett_gsm_map_ss_CCBS_Data,
26684     &ett_gsm_map_ss_ServiceIndicator,
26685     &ett_gsm_map_ss_RegisterCC_EntryRes,
26686     &ett_gsm_map_ss_EraseCC_EntryArg,
26687     &ett_gsm_map_ss_EraseCC_EntryRes,
26688
26689 /* --- Module MAP-ER-DataTypes --- --- ---                                    */
26690
26691     &ett_gsm_map_er_RoamingNotAllowedParam,
26692     &ett_gsm_map_er_CallBarredParam,
26693     &ett_gsm_map_er_ExtensibleCallBarredParam,
26694     &ett_gsm_map_er_CUG_RejectParam,
26695     &ett_gsm_map_er_SS_IncompatibilityCause,
26696     &ett_gsm_map_er_SM_DeliveryFailureCause,
26697     &ett_gsm_map_er_AbsentSubscriberSM_Param,
26698     &ett_gsm_map_er_SystemFailureParam,
26699     &ett_gsm_map_er_ExtensibleSystemFailureParam,
26700     &ett_gsm_map_er_DataMissingParam,
26701     &ett_gsm_map_er_UnexpectedDataParam,
26702     &ett_gsm_map_er_FacilityNotSupParam,
26703     &ett_gsm_map_er_OR_NotAllowedParam,
26704     &ett_gsm_map_er_UnknownSubscriberParam,
26705     &ett_gsm_map_er_NumberChangedParam,
26706     &ett_gsm_map_er_UnidentifiedSubParam,
26707     &ett_gsm_map_er_IllegalSubscriberParam,
26708     &ett_gsm_map_er_IllegalEquipmentParam,
26709     &ett_gsm_map_er_BearerServNotProvParam,
26710     &ett_gsm_map_er_TeleservNotProvParam,
26711     &ett_gsm_map_er_TracingBufferFullParam,
26712     &ett_gsm_map_er_NoRoamingNbParam,
26713     &ett_gsm_map_er_AbsentSubscriberParam,
26714     &ett_gsm_map_er_BusySubscriberParam,
26715     &ett_gsm_map_er_NoSubscriberReplyParam,
26716     &ett_gsm_map_er_ForwardingViolationParam,
26717     &ett_gsm_map_er_ForwardingFailedParam,
26718     &ett_gsm_map_er_ATI_NotAllowedParam,
26719     &ett_gsm_map_er_ATSI_NotAllowedParam,
26720     &ett_gsm_map_er_ATM_NotAllowedParam,
26721     &ett_gsm_map_er_IllegalSS_OperationParam,
26722     &ett_gsm_map_er_SS_NotAvailableParam,
26723     &ett_gsm_map_er_SS_SubscriptionViolationParam,
26724     &ett_gsm_map_er_InformationNotAvailableParam,
26725     &ett_gsm_map_er_SubBusyForMT_SMS_Param,
26726     &ett_gsm_map_er_MessageWaitListFullParam,
26727     &ett_gsm_map_er_ResourceLimitationParam,
26728     &ett_gsm_map_er_NoGroupCallNbParam,
26729     &ett_gsm_map_er_IncompatibleTerminalParam,
26730     &ett_gsm_map_er_ShortTermDenialParam,
26731     &ett_gsm_map_er_LongTermDenialParam,
26732     &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param,
26733     &ett_gsm_map_er_UnauthorizedLCSClient_Param,
26734     &ett_gsm_map_er_PositionMethodFailure_Param,
26735     &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param,
26736     &ett_gsm_map_er_MM_EventNotSupported_Param,
26737     &ett_gsm_map_er_TargetCellOutsideGCA_Param,
26738     &ett_gsm_map_er_OngoingGroupCallParam,
26739
26740 /* --- Module MAP-SM-DataTypes --- --- ---                                    */
26741
26742     &ett_gsm_map_sm_RoutingInfoForSM_Arg,
26743     &ett_gsm_map_sm_RoutingInfoForSM_Res,
26744     &ett_gsm_map_sm_IP_SM_GW_Guidance,
26745     &ett_gsm_map_sm_LocationInfoWithLMSI,
26746     &ett_gsm_map_sm_Additional_Number,
26747     &ett_gsm_map_sm_MO_ForwardSM_Arg,
26748     &ett_gsm_map_sm_MO_ForwardSM_Res,
26749     &ett_gsm_map_sm_MT_ForwardSM_Arg,
26750     &ett_gsm_map_sm_MT_ForwardSM_Res,
26751     &ett_gsm_map_sm_SM_RP_DA,
26752     &ett_gsm_map_sm_SM_RP_OA,
26753     &ett_gsm_map_sm_ReportSM_DeliveryStatusArg,
26754     &ett_gsm_map_sm_ReportSM_DeliveryStatusRes,
26755     &ett_gsm_map_sm_AlertServiceCentreArg,
26756     &ett_gsm_map_sm_InformServiceCentreArg,
26757     &ett_gsm_map_sm_MW_Status,
26758     &ett_gsm_map_sm_ReadyForSM_Arg,
26759     &ett_gsm_map_sm_ReadyForSM_Res,
26760     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg,
26761     &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res,
26762     &ett_gsm_map_sm_DispatcherList,
26763     &ett_gsm_map_sm_AdditionalDispatcherList,
26764
26765 /* --- Module MAP-OM-DataTypes --- --- ---                                    */
26766
26767     &ett_gsm_map_om_ActivateTraceModeArg,
26768     &ett_gsm_map_om_MDT_Configuration,
26769     &ett_gsm_map_om_AreaScope,
26770     &ett_gsm_map_om_CGI_List,
26771     &ett_gsm_map_om_E_UTRAN_CGI_List,
26772     &ett_gsm_map_om_RoutingAreaId_List,
26773     &ett_gsm_map_om_LocationAreaId_List,
26774     &ett_gsm_map_om_TrackingAreaId_List,
26775     &ett_gsm_map_om_TraceDepthList,
26776     &ett_gsm_map_om_TraceNE_TypeList,
26777     &ett_gsm_map_om_TraceInterfaceList,
26778     &ett_gsm_map_om_MSC_S_InterfaceList,
26779     &ett_gsm_map_om_MGW_InterfaceList,
26780     &ett_gsm_map_om_SGSN_InterfaceList,
26781     &ett_gsm_map_om_GGSN_InterfaceList,
26782     &ett_gsm_map_om_RNC_InterfaceList,
26783     &ett_gsm_map_om_BMSC_InterfaceList,
26784     &ett_gsm_map_om_MME_InterfaceList,
26785     &ett_gsm_map_om_SGW_InterfaceList,
26786     &ett_gsm_map_om_PGW_InterfaceList,
26787     &ett_gsm_map_om_ENB_InterfaceList,
26788     &ett_gsm_map_om_TraceEventList,
26789     &ett_gsm_map_om_MSC_S_EventList,
26790     &ett_gsm_map_om_MGW_EventList,
26791     &ett_gsm_map_om_SGSN_EventList,
26792     &ett_gsm_map_om_GGSN_EventList,
26793     &ett_gsm_map_om_BMSC_EventList,
26794     &ett_gsm_map_om_MME_EventList,
26795     &ett_gsm_map_om_SGW_EventList,
26796     &ett_gsm_map_om_PGW_EventList,
26797     &ett_gsm_map_om_TracePropagationList,
26798     &ett_gsm_map_om_ActivateTraceModeRes,
26799     &ett_gsm_map_om_DeactivateTraceModeArg,
26800     &ett_gsm_map_om_DeactivateTraceModeRes,
26801
26802 /* --- Module MAP-MS-DataTypes --- --- ---                                    */
26803
26804     &ett_gsm_map_ms_UpdateLocationArg,
26805     &ett_gsm_map_ms_VLR_Capability,
26806     &ett_gsm_map_ms_SupportedRAT_Types,
26807     &ett_gsm_map_ms_SuperChargerInfo,
26808     &ett_gsm_map_ms_SupportedLCS_CapabilitySets,
26809     &ett_gsm_map_ms_UpdateLocationRes,
26810     &ett_gsm_map_ms_ADD_Info,
26811     &ett_gsm_map_ms_PagingArea,
26812     &ett_gsm_map_ms_LocationArea,
26813     &ett_gsm_map_ms_CancelLocationArg_U,
26814     &ett_gsm_map_ms_CancelLocationRes,
26815     &ett_gsm_map_ms_PurgeMS_Arg_U,
26816     &ett_gsm_map_ms_PurgeMS_Res,
26817     &ett_gsm_map_ms_SendIdentificationArg,
26818     &ett_gsm_map_ms_SendIdentificationRes_U,
26819     &ett_gsm_map_ms_AuthenticationSetList,
26820     &ett_gsm_map_ms_TripletList,
26821     &ett_gsm_map_ms_QuintupletList,
26822     &ett_gsm_map_ms_AuthenticationTriplet,
26823     &ett_gsm_map_ms_AuthenticationQuintuplet,
26824     &ett_gsm_map_ms_CurrentSecurityContext,
26825     &ett_gsm_map_ms_GSM_SecurityContextData,
26826     &ett_gsm_map_ms_UMTS_SecurityContextData,
26827     &ett_gsm_map_ms_AuthenticationFailureReportArg,
26828     &ett_gsm_map_ms_AuthenticationFailureReportRes,
26829     &ett_gsm_map_ms_UpdateGprsLocationArg,
26830     &ett_gsm_map_ms_EPS_Info,
26831     &ett_gsm_map_ms_PDN_GW_Update,
26832     &ett_gsm_map_ms_ISR_Information,
26833     &ett_gsm_map_ms_SGSN_Capability,
26834     &ett_gsm_map_ms_SupportedFeatures,
26835     &ett_gsm_map_ms_UpdateGprsLocationRes,
26836     &ett_gsm_map_ms_EPLMN_List,
26837     &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U,
26838     &ett_gsm_map_ms_AllowedUMTS_Algorithms,
26839     &ett_gsm_map_ms_PrepareHO_Arg_U,
26840     &ett_gsm_map_ms_LCLS_Negotiation,
26841     &ett_gsm_map_ms_LCLS_ConfigurationPreference,
26842     &ett_gsm_map_ms_BSSMAP_ServiceHandoverList,
26843     &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo,
26844     &ett_gsm_map_ms_RadioResourceList,
26845     &ett_gsm_map_ms_RadioResource,
26846     &ett_gsm_map_ms_PrepareHO_Res_U,
26847     &ett_gsm_map_ms_SelectedUMTS_Algorithms,
26848     &ett_gsm_map_ms_ChosenRadioResourceInformation,
26849     &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U,
26850     &ett_gsm_map_ms_PrepareSubsequentHO_Res_U,
26851     &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U,
26852     &ett_gsm_map_ms_AoIPCodecsList,
26853     &ett_gsm_map_ms_SupportedCodecsList,
26854     &ett_gsm_map_ms_CodecList,
26855     &ett_gsm_map_ms_SendEndSignal_Arg_U,
26856     &ett_gsm_map_ms_SendEndSignal_Res,
26857     &ett_gsm_map_ms_RelocationNumberList,
26858     &ett_gsm_map_ms_RelocationNumber,
26859     &ett_gsm_map_ms_SendAuthenticationInfoArg,
26860     &ett_gsm_map_ms_Re_synchronisationInfo,
26861     &ett_gsm_map_ms_SendAuthenticationInfoRes_U,
26862     &ett_gsm_map_ms_EPS_AuthenticationSetList,
26863     &ett_gsm_map_ms_EPC_AV,
26864     &ett_gsm_map_ms_CheckIMEI_Arg,
26865     &ett_gsm_map_ms_CheckIMEI_Res,
26866     &ett_gsm_map_ms_RequestedEquipmentInfo,
26867     &ett_gsm_map_ms_UESBI_Iu,
26868     &ett_gsm_map_ms_InsertSubscriberDataArg,
26869     &ett_gsm_map_ms_CSG_SubscriptionDataList,
26870     &ett_gsm_map_ms_CSG_SubscriptionData,
26871     &ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList,
26872     &ett_gsm_map_ms_LIPA_AllowedAPNList,
26873     &ett_gsm_map_ms_EPS_SubscriptionData,
26874     &ett_gsm_map_ms_APN_ConfigurationProfile,
26875     &ett_gsm_map_ms_EPS_DataList,
26876     &ett_gsm_map_ms_APN_Configuration,
26877     &ett_gsm_map_ms_EPS_QoS_Subscribed,
26878     &ett_gsm_map_ms_AMBR,
26879     &ett_gsm_map_ms_SpecificAPNInfoList,
26880     &ett_gsm_map_ms_SpecificAPNInfo,
26881     &ett_gsm_map_ms_Allocation_Retention_Priority,
26882     &ett_gsm_map_ms_PDN_GW_Identity,
26883     &ett_gsm_map_ms_AccessRestrictionData,
26884     &ett_gsm_map_ms_LCSInformation,
26885     &ett_gsm_map_ms_GMLC_List,
26886     &ett_gsm_map_ms_GPRSDataList,
26887     &ett_gsm_map_ms_PDP_Context,
26888     &ett_gsm_map_ms_GPRSSubscriptionData,
26889     &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo,
26890     &ett_gsm_map_ms_GPRS_CSI,
26891     &ett_gsm_map_ms_GPRS_CamelTDPDataList,
26892     &ett_gsm_map_ms_GPRS_CamelTDPData,
26893     &ett_gsm_map_ms_LSADataList,
26894     &ett_gsm_map_ms_LSAData,
26895     &ett_gsm_map_ms_LSAInformation,
26896     &ett_gsm_map_ms_SubscriberData,
26897     &ett_gsm_map_ms_BearerServiceList,
26898     &ett_gsm_map_ms_TeleserviceList,
26899     &ett_gsm_map_ms_ODB_Data,
26900     &ett_gsm_map_ms_ODB_GeneralData,
26901     &ett_gsm_map_ms_ODB_HPLMN_Data,
26902     &ett_gsm_map_ms_Ext_SS_InfoList,
26903     &ett_gsm_map_ms_Ext_SS_Info,
26904     &ett_gsm_map_ms_Ext_ForwInfo,
26905     &ett_gsm_map_ms_Ext_ForwFeatureList,
26906     &ett_gsm_map_ms_Ext_ForwFeature,
26907     &ett_gsm_map_ms_Ext_CallBarInfo,
26908     &ett_gsm_map_ms_Ext_CallBarFeatureList,
26909     &ett_gsm_map_ms_Ext_CallBarringFeature,
26910     &ett_gsm_map_ms_CUG_Info,
26911     &ett_gsm_map_ms_CUG_SubscriptionList,
26912     &ett_gsm_map_ms_CUG_Subscription,
26913     &ett_gsm_map_ms_CUG_FeatureList,
26914     &ett_gsm_map_ms_Ext_BasicServiceGroupList,
26915     &ett_gsm_map_ms_CUG_Feature,
26916     &ett_gsm_map_ms_Ext_SS_Data,
26917     &ett_gsm_map_ms_LCS_PrivacyExceptionList,
26918     &ett_gsm_map_ms_LCS_PrivacyClass,
26919     &ett_gsm_map_ms_ExternalClientList,
26920     &ett_gsm_map_ms_PLMNClientList,
26921     &ett_gsm_map_ms_Ext_ExternalClientList,
26922     &ett_gsm_map_ms_ExternalClient,
26923     &ett_gsm_map_ms_ServiceTypeList,
26924     &ett_gsm_map_ms_ServiceType,
26925     &ett_gsm_map_ms_MOLR_List,
26926     &ett_gsm_map_ms_MOLR_Class,
26927     &ett_gsm_map_ms_ZoneCodeList,
26928     &ett_gsm_map_ms_InsertSubscriberDataRes,
26929     &ett_gsm_map_ms_DeleteSubscriberDataArg,
26930     &ett_gsm_map_ms_SpecificCSI_Withdraw,
26931     &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw,
26932     &ett_gsm_map_ms_EPS_SubscriptionDataWithdraw,
26933     &ett_gsm_map_ms_ContextIdList,
26934     &ett_gsm_map_ms_LSAInformationWithdraw,
26935     &ett_gsm_map_ms_LSAIdentityList,
26936     &ett_gsm_map_ms_BasicServiceList,
26937     &ett_gsm_map_ms_DeleteSubscriberDataRes,
26938     &ett_gsm_map_ms_VlrCamelSubscriptionInfo,
26939     &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList,
26940     &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria,
26941     &ett_gsm_map_ms_TPDU_TypeCriterion,
26942     &ett_gsm_map_ms_D_CSI,
26943     &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList,
26944     &ett_gsm_map_ms_DP_AnalysedInfoCriterium,
26945     &ett_gsm_map_ms_SS_CSI,
26946     &ett_gsm_map_ms_SS_CamelData,
26947     &ett_gsm_map_ms_SS_EventList,
26948     &ett_gsm_map_ms_O_CSI,
26949     &ett_gsm_map_ms_O_BcsmCamelTDPDataList,
26950     &ett_gsm_map_ms_O_BcsmCamelTDPData,
26951     &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList,
26952     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList,
26953     &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria,
26954     &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria,
26955     &ett_gsm_map_ms_DestinationNumberCriteria,
26956     &ett_gsm_map_ms_DestinationNumberList,
26957     &ett_gsm_map_ms_DestinationNumberLengthList,
26958     &ett_gsm_map_ms_BasicServiceCriteria,
26959     &ett_gsm_map_ms_O_CauseValueCriteria,
26960     &ett_gsm_map_ms_T_CauseValueCriteria,
26961     &ett_gsm_map_ms_SupportedCamelPhases,
26962     &ett_gsm_map_ms_OfferedCamel4CSIs,
26963     &ett_gsm_map_ms_OfferedCamel4Functionalities,
26964     &ett_gsm_map_ms_SMS_CSI,
26965     &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList,
26966     &ett_gsm_map_ms_SMS_CAMEL_TDP_Data,
26967     &ett_gsm_map_ms_M_CSI,
26968     &ett_gsm_map_ms_MG_CSI,
26969     &ett_gsm_map_ms_MobilityTriggers,
26970     &ett_gsm_map_ms_T_CSI,
26971     &ett_gsm_map_ms_T_BcsmCamelTDPDataList,
26972     &ett_gsm_map_ms_T_BcsmCamelTDPData,
26973     &ett_gsm_map_ms_SendRoutingInfoForGprsArg,
26974     &ett_gsm_map_ms_SendRoutingInfoForGprsRes,
26975     &ett_gsm_map_ms_FailureReportArg,
26976     &ett_gsm_map_ms_FailureReportRes,
26977     &ett_gsm_map_ms_NoteMsPresentForGprsArg,
26978     &ett_gsm_map_ms_NoteMsPresentForGprsRes,
26979     &ett_gsm_map_ms_ResetArg,
26980     &ett_gsm_map_ms_SendingNode_Number,
26981     &ett_gsm_map_ms_RestoreDataArg,
26982     &ett_gsm_map_ms_RestoreDataRes,
26983     &ett_gsm_map_ms_VBSDataList,
26984     &ett_gsm_map_ms_VGCSDataList,
26985     &ett_gsm_map_ms_VoiceGroupCallData,
26986     &ett_gsm_map_ms_AdditionalSubscriptions,
26987     &ett_gsm_map_ms_VoiceBroadcastData,
26988     &ett_gsm_map_ms_ProvideSubscriberInfoArg,
26989     &ett_gsm_map_ms_ProvideSubscriberInfoRes,
26990     &ett_gsm_map_ms_SubscriberInfo,
26991     &ett_gsm_map_ms_MNPInfoRes,
26992     &ett_gsm_map_ms_GPRSMSClass,
26993     &ett_gsm_map_ms_RequestedInfo,
26994     &ett_gsm_map_ms_RequestedNodes,
26995     &ett_gsm_map_ms_LocationInformation,
26996     &ett_gsm_map_ms_LocationInformationEPS,
26997     &ett_gsm_map_ms_LocationInformationGPRS,
26998     &ett_gsm_map_ms_UserCSGInformation,
26999     &ett_gsm_map_ms_SubscriberState,
27000     &ett_gsm_map_ms_PS_SubscriberState,
27001     &ett_gsm_map_ms_PDP_ContextInfoList,
27002     &ett_gsm_map_ms_PDP_ContextInfo,
27003     &ett_gsm_map_ms_AnyTimeInterrogationArg,
27004     &ett_gsm_map_ms_AnyTimeInterrogationRes,
27005     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg,
27006     &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes,
27007     &ett_gsm_map_ms_CallWaitingData,
27008     &ett_gsm_map_ms_Ext_CwFeatureList,
27009     &ett_gsm_map_ms_Ext_CwFeature,
27010     &ett_gsm_map_ms_ClipData,
27011     &ett_gsm_map_ms_ClirData,
27012     &ett_gsm_map_ms_CallHoldData,
27013     &ett_gsm_map_ms_EctData,
27014     &ett_gsm_map_ms_RequestedSubscriptionInfo,
27015     &ett_gsm_map_ms_MSISDN_BS_List,
27016     &ett_gsm_map_ms_MSISDN_BS,
27017     &ett_gsm_map_ms_CallForwardingData,
27018     &ett_gsm_map_ms_CallBarringData,
27019     &ett_gsm_map_ms_ODB_Info,
27020     &ett_gsm_map_ms_CAMEL_SubscriptionInfo,
27021     &ett_gsm_map_ms_AnyTimeModificationArg,
27022     &ett_gsm_map_ms_ModificationRequestFor_CW_Info,
27023     &ett_gsm_map_ms_ModificationRequestFor_CH_Info,
27024     &ett_gsm_map_ms_ModificationRequestFor_ECT_Info,
27025     &ett_gsm_map_ms_ModificationRequestFor_CLIR_Info,
27026     &ett_gsm_map_ms_ModificationRequestFor_CLIP_Info,
27027     &ett_gsm_map_ms_ModificationRequestFor_CSG,
27028     &ett_gsm_map_ms_RequestedServingNode,
27029     &ett_gsm_map_ms_ServingNode,
27030     &ett_gsm_map_ms_AnyTimeModificationRes,
27031     &ett_gsm_map_ms_ModificationRequestFor_CF_Info,
27032     &ett_gsm_map_ms_ModificationRequestFor_CB_Info,
27033     &ett_gsm_map_ms_ModificationRequestFor_ODB_data,
27034     &ett_gsm_map_ms_ModificationRequestFor_CSI,
27035     &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data,
27036     &ett_gsm_map_ms_NoteSubscriberDataModifiedArg,
27037     &ett_gsm_map_ms_NoteSubscriberDataModifiedRes,
27038     &ett_gsm_map_ms_NoteMM_EventArg,
27039     &ett_gsm_map_ms_NoteMM_EventRes,
27040     &ett_gsm_map_ms_Ext_SS_InfoFor_CSE,
27041     &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE,
27042     &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE,
27043     &ett_gsm_map_ms_UpdateVcsgLocationArg,
27044     &ett_gsm_map_ms_UpdateVcsgLocationRes,
27045     &ett_gsm_map_ms_CancelVcsgLocationArg,
27046     &ett_gsm_map_ms_CancelVcsgLocationRes,
27047
27048 /* --- Module MAP-CH-DataTypes --- --- ---                                    */
27049
27050     &ett_gsm_map_ch_CUG_CheckInfo,
27051     &ett_gsm_map_ch_SendRoutingInfoArg,
27052     &ett_gsm_map_ch_SuppressMTSS,
27053     &ett_gsm_map_ch_SendRoutingInfoRes_U,
27054     &ett_gsm_map_ch_AllowedServices,
27055     &ett_gsm_map_ch_CCBS_Indicators,
27056     &ett_gsm_map_ch_RoutingInfo,
27057     &ett_gsm_map_ch_ForwardingData,
27058     &ett_gsm_map_ch_ProvideRoamingNumberArg,
27059     &ett_gsm_map_ch_ProvideRoamingNumberRes,
27060     &ett_gsm_map_ch_ResumeCallHandlingArg,
27061     &ett_gsm_map_ch_UU_Data,
27062     &ett_gsm_map_ch_ResumeCallHandlingRes,
27063     &ett_gsm_map_ch_CamelInfo,
27064     &ett_gsm_map_ch_ExtendedRoutingInfo,
27065     &ett_gsm_map_ch_CamelRoutingInfo,
27066     &ett_gsm_map_ch_GmscCamelSubscriptionInfo,
27067     &ett_gsm_map_ch_SetReportingStateArg,
27068     &ett_gsm_map_ch_SetReportingStateRes,
27069     &ett_gsm_map_ch_StatusReportArg,
27070     &ett_gsm_map_ch_EventReportData,
27071     &ett_gsm_map_ch_CallReportData,
27072     &ett_gsm_map_ch_StatusReportRes,
27073     &ett_gsm_map_ch_RemoteUserFreeArg,
27074     &ett_gsm_map_ch_RemoteUserFreeRes,
27075     &ett_gsm_map_ch_IST_AlertArg,
27076     &ett_gsm_map_ch_IST_AlertRes,
27077     &ett_gsm_map_ch_IST_CommandArg,
27078     &ett_gsm_map_ch_IST_CommandRes,
27079     &ett_gsm_map_ch_ReleaseResourcesArg,
27080     &ett_gsm_map_ch_ReleaseResourcesRes,
27081
27082 /* --- Module MAP-LCS-DataTypes --- --- ---                                   */
27083
27084     &ett_gsm_map_lcs_RoutingInfoForLCS_Arg,
27085     &ett_gsm_map_lcs_RoutingInfoForLCS_Res,
27086     &ett_gsm_map_lcs_LCSLocationInfo,
27087     &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg,
27088     &ett_gsm_map_lcs_LocationType,
27089     &ett_gsm_map_lcs_DeferredLocationEventType,
27090     &ett_gsm_map_lcs_LCS_ClientID,
27091     &ett_gsm_map_lcs_LCSClientName,
27092     &ett_gsm_map_lcs_LCSRequestorID,
27093     &ett_gsm_map_lcs_LCS_QoS,
27094     &ett_gsm_map_lcs_ResponseTime,
27095     &ett_gsm_map_lcs_SupportedGADShapes,
27096     &ett_gsm_map_lcs_LCSCodeword,
27097     &ett_gsm_map_lcs_LCS_PrivacyCheck,
27098     &ett_gsm_map_lcs_AreaEventInfo,
27099     &ett_gsm_map_lcs_AreaDefinition,
27100     &ett_gsm_map_lcs_AreaList,
27101     &ett_gsm_map_lcs_Area,
27102     &ett_gsm_map_lcs_PeriodicLDRInfo,
27103     &ett_gsm_map_lcs_ReportingPLMNList,
27104     &ett_gsm_map_lcs_PLMNList,
27105     &ett_gsm_map_lcs_ReportingPLMN,
27106     &ett_gsm_map_lcs_ProvideSubscriberLocation_Res,
27107     &ett_gsm_map_lcs_SubscriberLocationReport_Arg,
27108     &ett_gsm_map_lcs_Deferredmt_lrData,
27109     &ett_gsm_map_lcs_ServingNodeAddress,
27110     &ett_gsm_map_lcs_SubscriberLocationReport_Res,
27111
27112 /* --- Module MAP-GR-DataTypes --- --- ---                                    */
27113
27114     &ett_gsm_map_gr_PrepareGroupCallArg,
27115     &ett_gsm_map_gr_PrepareGroupCallRes,
27116     &ett_gsm_map_gr_SendGroupCallEndSignalArg,
27117     &ett_gsm_map_gr_SendGroupCallEndSignalRes,
27118     &ett_gsm_map_gr_ForwardGroupCallSignallingArg,
27119     &ett_gsm_map_gr_ProcessGroupCallSignallingArg,
27120     &ett_gsm_map_gr_StateAttributes,
27121     &ett_gsm_map_gr_SendGroupCallInfoArg,
27122     &ett_gsm_map_gr_SendGroupCallInfoRes,
27123
27124 /* --- Module MAP-DialogueInformation --- --- ---                             */
27125
27126     &ett_gsm_map_dialogue_MAP_DialoguePDU,
27127     &ett_gsm_map_dialogue_MAP_OpenInfo,
27128     &ett_gsm_map_dialogue_MAP_AcceptInfo,
27129     &ett_gsm_map_dialogue_MAP_CloseInfo,
27130     &ett_gsm_map_dialogue_MAP_RefuseInfo,
27131     &ett_gsm_map_dialogue_MAP_UserAbortInfo,
27132     &ett_gsm_map_dialogue_MAP_UserAbortChoice,
27133     &ett_gsm_map_dialogue_MAP_ProviderAbortInfo,
27134
27135 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
27136
27137
27138 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
27139
27140
27141 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
27142
27143
27144 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
27145
27146
27147 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
27148
27149
27150 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
27151
27152
27153 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
27154
27155
27156 /* --- Module MAP-Errors --- --- ---                                          */
27157
27158
27159 /* --- Module MAP-Protocol --- --- ---                                        */
27160
27161
27162 /* --- Module DummyMAP --- --- ---                                            */
27163
27164     &ett_gsm_old_Component,
27165     &ett_gsm_old_Invoke,
27166     &ett_gsm_old_ReturnResult,
27167     &ett_gsm_old_T_resultretres,
27168     &ett_gsm_old_ReturnError,
27169     &ett_gsm_old_Reject,
27170     &ett_gsm_old_T_invokeIDRej,
27171     &ett_gsm_old_T_problem,
27172     &ett_gsm_old_MAP_OPERATION,
27173     &ett_gsm_old_MAP_ERROR,
27174     &ett_gsm_old_Bss_APDU,
27175     &ett_gsm_old_ProvideSIWFSNumberArg,
27176     &ett_gsm_old_ProvideSIWFSNumberRes,
27177     &ett_gsm_old_PurgeMSArgV2,
27178     &ett_gsm_old_PrepareHO_ArgOld,
27179     &ett_gsm_old_PrepareHO_ResOld,
27180     &ett_gsm_old_SendAuthenticationInfoResOld,
27181     &ett_gsm_old_SendAuthenticationInfoResOld_item,
27182     &ett_gsm_old_SendIdentificationResV2,
27183     &ett_gsm_old_TripletListold,
27184     &ett_gsm_old_AuthenticationTriplet_v2,
27185     &ett_gsm_old_SIWFSSignallingModifyArg,
27186     &ett_gsm_old_SIWFSSignallingModifyRes,
27187     &ett_gsm_old_SecureTransportArg,
27188     &ett_gsm_old_SecureTransportErrorParam,
27189     &ett_gsm_old_SecureTransportRes,
27190     &ett_gsm_old_SecurityHeader,
27191     &ett_gsm_old_OriginalComponentIdentifier,
27192     &ett_gsm_old_OperationCode,
27193     &ett_gsm_old_ErrorCode,
27194     &ett_gsm_old_PlmnContainer_U,
27195     &ett_gsm_old_T_operatorSS_Code,
27196     &ett_gsm_old_ForwardSM_Arg,
27197     &ett_gsm_old_SM_RP_DAold,
27198     &ett_gsm_old_SM_RP_OAold,
27199     &ett_gsm_old_SendRoutingInfoArgV2,
27200     &ett_gsm_old_SendRoutingInfoResV2,
27201     &ett_gsm_old_BeginSubscriberActivityArg,
27202
27203 /* --- Module SS-DataTypes --- --- ---                                        */
27204
27205     &ett_gsm_ss_NotifySS_Arg,
27206     &ett_gsm_ss_ForwardChargeAdviceArg,
27207     &ett_gsm_ss_ChargingInformation,
27208     &ett_gsm_ss_ForwardCUG_InfoArg,
27209     &ett_gsm_ss_ECT_Indicator,
27210     &ett_gsm_ss_NameIndicator,
27211     &ett_gsm_ss_Name,
27212     &ett_gsm_ss_NameSet,
27213     &ett_gsm_ss_RDN,
27214     &ett_gsm_ss_RemotePartyNumber,
27215     &ett_gsm_ss_AccessRegisterCCEntryArg,
27216     &ett_gsm_ss_CallDeflectionArg,
27217     &ett_gsm_ss_UserUserServiceArg,
27218     &ett_gsm_ss_LocationNotificationArg,
27219     &ett_gsm_ss_LocationNotificationRes,
27220     &ett_gsm_ss_LCS_MOLRArg,
27221     &ett_gsm_ss_MultiplePositioningProtocolPDUs,
27222     &ett_gsm_ss_LCS_MOLRRes,
27223     &ett_gsm_ss_LCS_AreaEventRequestArg,
27224     &ett_gsm_ss_LCS_AreaEventReportArg,
27225     &ett_gsm_ss_LCS_AreaEventCancellationArg,
27226     &ett_gsm_ss_LCS_PeriodicLocationRequestArg,
27227     &ett_gsm_ss_LCS_PeriodicLocationRequestRes,
27228     &ett_gsm_ss_LCS_LocationUpdateArg,
27229     &ett_gsm_ss_LCS_LocationUpdateRes,
27230     &ett_gsm_ss_LCS_PeriodicLocationCancellationArg,
27231
27232 /* --- Module SS-Operations --- --- ---                                       */
27233
27234
27235 /* --- Module EricssonMAP --- --- ---                                         */
27236
27237     &ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg,
27238
27239 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
27240 #line 2647 "../../asn1/gsm_map/packet-gsm_map-template.c"
27241   };
27242
27243   static ei_register_info ei[] = {
27244      { &ei_gsm_map_unknown_sequence3, { "gsm_map.unknown.sequence3", PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence", EXPFILL }},
27245      { &ei_gsm_map_unknown_sequence, { "gsm_map.unknown.sequence", PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence", EXPFILL }},
27246      { &ei_gsm_map_unknown_parameter, { "gsm_map.unknown.parameter", PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter", EXPFILL }},
27247      { &ei_gsm_map_unknown_invokeData, { "gsm_map.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }},
27248   };
27249
27250   static const enum_val_t application_context_modes[] = {
27251     {"Use Application Context from the trace", "Use application context from the trace", APPLICATON_CONTEXT_FROM_TRACE},
27252     {"Treat as AC 1", "Treat as AC 1", 1},
27253     {"Treat as AC 2", "Treat as AC 2", 2},
27254     {"Treat as AC 3", "Treat as AC 3", 3},
27255     {NULL, NULL, -1}
27256   };
27257
27258
27259   /* Register protocol */
27260   proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
27261
27262   register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
27263
27264   /* Register fields and subtrees */
27265   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
27266   proto_register_subtree_array(ett, array_length(ett));
27267   expert_gsm_map = expert_register_protocol(proto_gsm_map);
27268   expert_register_field_array(expert_gsm_map, ei, array_length(ei));
27269
27270   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu",
27271                                                  "GSM SMS TPDU", FT_UINT8,
27272                                                  BASE_DEC);
27273
27274   map_prop_arg_opcode_table = register_dissector_table("gsm_map.prop.arg.opcode", "Proprietary Opcodes", FT_UINT8, BASE_DEC);
27275   map_prop_res_opcode_table = register_dissector_table("gsm_map.prop.res.opcode", "Proprietary Opcodes", FT_UINT8, BASE_DEC);
27276   map_prop_err_opcode_table = register_dissector_table("gsm_map.prop.err.opcode", "Proprietary Opcodes", FT_UINT8, BASE_DEC);
27277
27278   gsm_map_tap = register_tap("gsm_map");
27279
27280
27281 /*--- Included file: packet-gsm_map-dis-tab.c ---*/
27282 #line 1 "../../asn1/gsm_map/packet-gsm_map-dis-tab.c"
27283
27284 /* --- Module MAP-DialogueInformation --- --- ---                             */
27285
27286   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");
27287
27288
27289 /* --- Module MAP-LocationServiceOperations --- --- ---                       */
27290
27291
27292
27293 /* --- Module MAP-Group-Call-Operations --- --- ---                           */
27294
27295
27296
27297 /* --- Module MAP-ShortMessageServiceOperations --- --- ---                   */
27298
27299
27300
27301 /* --- Module MAP-SupplementaryServiceOperations --- --- ---                  */
27302
27303
27304
27305 /* --- Module MAP-CallHandlingOperations --- --- ---                          */
27306
27307
27308
27309 /* --- Module MAP-OperationAndMaintenanceOperations --- --- ---               */
27310
27311
27312
27313 /* --- Module MAP-MobileServiceOperations --- --- ---                         */
27314
27315
27316
27317 /* --- Module MAP-Errors --- --- ---                                          */
27318
27319
27320
27321 /* --- Module MAP-Protocol --- --- ---                                        */
27322
27323
27324
27325 /* --- Module DummyMAP --- --- ---                                            */
27326
27327
27328
27329 /* --- Module SS-DataTypes --- --- ---                                        */
27330
27331
27332
27333 /* --- Module SS-Operations --- --- ---                                       */
27334
27335
27336
27337 /* --- Module EricssonMAP --- --- ---                                         */
27338
27339
27340
27341 /*--- End of included file: packet-gsm_map-dis-tab.c ---*/
27342 #line 2687 "../../asn1/gsm_map/packet-gsm_map-template.c"
27343   oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" );
27344   oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2");
27345   /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" );
27346    *
27347    * Register our configuration options, particularly our ssn:s
27348    * Set default SSNs
27349    */
27350   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
27351
27352   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
27353
27354   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
27355                                   "TCAP Subsystem numbers used for GSM MAP",
27356                                   &global_ssn_range, MAX_SSN);
27357
27358   prefs_register_enum_preference(gsm_map_module, "application.context.version",
27359                                   "Application context version",
27360                                   "How to treat Application context",
27361                                   &pref_application_context_version, application_context_modes, APPLICATON_CONTEXT_FROM_TRACE);
27362
27363   prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions",
27364                                   "Dissect Ericsson proprietary extensions",
27365                                   "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)",
27366                                   &pref_ericsson_proprietary_ext);
27367 }