tiny bugfix for gsmmap
[metze/wireshark/wip.git] / epan / dissectors / packet-gsm_map.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
3 /* ./packet-gsm_map.c                                                         */
4 /* ../../tools/asn2eth.py -X -b -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */
5
6 /* Input file: packet-gsm_map-template.c */
7
8 /* packet-gsm_map-template.c
9  * Routines for GSM MobileApplication packet dissection
10  * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
11  * Based on the dissector by:
12  * Felix Fei <felix.fei [AT] utstar.com>
13  * and Michael Lum <mlum [AT] telostech.com>
14  *
15  * $Id$
16  *
17  * Ethereal - Network traffic analyzer
18  * By Gerald Combs <gerald@ethereal.com>
19  * Copyright 1998 Gerald Combs
20  *
21  * This program is free software; you can redistribute it and/or
22  * modify it under the terms of the GNU General Public License
23  * as published by the Free Software Foundation; either version 2
24  * of the License, or (at your option) any later version.
25  *
26  * This program is distributed in the hope that it will be useful,
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29  * GNU General Public License for more details.
30  *
31  * You should have received a copy of the GNU General Public License
32  * along with this program; if not, write to the Free Software
33  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
34  * References: ETSI TS 129 002
35  */
36
37 #ifdef HAVE_CONFIG_H
38 # include "config.h"
39 #endif
40
41 #include <glib.h>
42 #include <epan/packet.h>
43 #include <epan/prefs.h>
44 #include <epan/conversation.h>
45 #include <epan/tap.h>
46
47 #include <stdio.h>
48 #include <string.h>
49
50 #include "packet-ber.h"
51 #include "packet-q931.h"
52 #include "packet-gsm_map.h"
53
54 #define PNAME  "GSM_MobileAPplication"
55 #define PSNAME "GSM_MAP"
56 #define PFNAME "gsm_map"
57
58 /* Initialize the protocol and registered fields */
59 int proto_gsm_map = -1;
60 static int hf_gsm_map_invokeCmd = -1;             /* Opcode */
61 static int hf_gsm_map_invokeid = -1;              /* INTEGER */
62 static int hf_gsm_map_absent = -1;                /* NULL */
63 static int hf_gsm_map_invokeId = -1;              /* InvokeId */
64 static int hf_gsm_map_invoke = -1;                /* InvokePDU */
65 static int hf_gsm_map_returnResult = -1;          /* InvokePDU */
66 static int hf_gsm_map_returnResult_result = -1;
67 static int hf_gsm_map_returnError_result = -1;
68 static int hf_gsm_map_returnError = -1;
69 static int hf_gsm_map_local_errorCode = -1;
70 static int hf_gsm_map_global_errorCode_oid = -1;
71 static int hf_gsm_map_global_errorCode = -1;
72 static int hf_gsm_map_SendAuthenticationInfoArg = -1;
73 static int hf_gsm_mapSendEndSignal = -1;
74 static int hf_gsm_map_getPassword = -1;  
75 static int hf_gsm_map_currentPassword = -1;
76 static int hf_gsm_map_extension = -1;
77 static int hf_gsm_map_nature_of_number = -1;
78 static int hf_gsm_map_number_plan = -1;
79 static int hf_gsm_map_misdn_digits = -1;
80 static int hf_gsm_map_servicecentreaddress_digits = -1;
81 static int hf_gsm_map_imsi_digits = -1;
82 static int hf_gsm_map_map_gmsc_address_digits = -1;
83 static int hf_gsm_map_map_RoamingNumber_digits = -1;
84 static int hf_gsm_map_map_hlr_number_digits = -1;
85 static int hf_gsm_map_map_ForwardedToNumber_digits = -1;
86 static int hf_gsm_map_Ss_Status_unused = -1;
87 static int hf_gsm_map_Ss_Status_q_bit = -1;
88 static int hf_gsm_map_Ss_Status_p_bit = -1;
89 static int hf_gsm_map_Ss_Status_r_bit = -1;
90 static int hf_gsm_map_Ss_Status_a_bit = -1;
91
92
93 /*--- Included file: packet-gsm_map-hf.c ---*/
94
95 static int hf_gsm_map_protocolId = -1;            /* ProtocolId */
96 static int hf_gsm_map_signalInfo = -1;            /* SignalInfo */
97 static int hf_gsm_map_extensionContainer = -1;    /* ExtensionContainer */
98 static int hf_gsm_map_accessNetworkProtocolId = -1;  /* T_accessNetworkProtocolId */
99 static int hf_gsm_map_signalInfo2 = -1;           /* SignalInfo2 */
100 static int hf_gsm_map_supportedCamelPhases = -1;  /* SupportedCamelPhases */
101 static int hf_gsm_map_solsaSupportIndicator = -1;  /* NULL */
102 static int hf_gsm_map_istSupportIndicator = -1;   /* T_istSupportIndicator */
103 static int hf_gsm_map_superChargerSupportedInServingNetworkEntity = -1;  /* T_superChargerSupportedInServingNetworkEntity */
104 static int hf_gsm_map_sendSubscriberData = -1;    /* NULL */
105 static int hf_gsm_map_subscriberDataStored = -1;  /* OCTET_STRING_SIZE_1_6 */
106 static int hf_gsm_map_longFTN_Supported = -1;     /* NULL */
107 static int hf_gsm_map_supportedLCS_CapabilitySets = -1;  /* T_supportedLCS_CapabilitySets */
108 static int hf_gsm_map_offeredCamel4CSIs = -1;     /* T_offeredCamel4CSIs */
109 static int hf_gsm_map_imsi = -1;                  /* Imsi */
110 static int hf_gsm_map_msc_Number = -1;            /* Msc_Number */
111 static int hf_gsm_map_vlr_Number = -1;            /* Vlr_Number */
112 static int hf_gsm_map_lmsi = -1;                  /* Lmsi */
113 static int hf_gsm_map_vlr_Capability = -1;        /* Vlr_Capability */
114 static int hf_gsm_map_informPreviousNetworkEntity = -1;  /* NULL */
115 static int hf_gsm_map_cs_LCS_NotSupportedByUE = -1;  /* NULL */
116 static int hf_gsm_map_v_gmlc_Address = -1;        /* OCTET_STRING_SIZE_5_17 */
117 static int hf_gsm_map_add_info = -1;              /* T_add_info */
118 static int hf_gsm_map_imeisv = -1;                /* OCTET_STRING_SIZE_8 */
119 static int hf_gsm_map_skipSubscriberDataUpdate = -1;  /* NULL */
120 static int hf_gsm_map_hlr_Number = -1;            /* Hlr_Number */
121 static int hf_gsm_map_PrivateExtensionList_item = -1;  /* PrivateExtension */
122 static int hf_gsm_map_extId = -1;                 /* OBJECT_IDENTIFIER */
123 static int hf_gsm_map_extType = -1;               /* T_extType */
124 static int hf_gsm_map_identity = -1;              /* T_identity */
125 static int hf_gsm_map_imsi_WithLMSI = -1;         /* T_imsi_WithLMSI */
126 static int hf_gsm_map_cancellationType = -1;      /* CancellationType */
127 static int hf_gsm_map_sgsn_Number = -1;           /* Sgsn_Number */
128 static int hf_gsm_map_freezeTMSI = -1;            /* NULL */
129 static int hf_gsm_map_freezeP_TMSI = -1;          /* NULL */
130 static int hf_gsm_map_sendId_authenticationSetList = -1;  /* SendId_authenticationSetList */
131 static int hf_gsm_map_authenticationSetList_item = -1;  /* T_authenticationSetList_item */
132 static int hf_gsm_map_rand = -1;                  /* OCTET_STRING_SIZE_16 */
133 static int hf_gsm_map_sres = -1;                  /* OCTET_STRING_SIZE_4 */
134 static int hf_gsm_map_kc = -1;                    /* OCTET_STRING_SIZE_8 */
135 static int hf_gsm_map_targetCellId = -1;          /* OCTET_STRING_SIZE_5_7 */
136 static int hf_gsm_map_ho_NumberNotRequired = -1;  /* NULL */
137 static int hf_gsm_map_bss_APDU = -1;              /* Bss_APDU */
138 static int hf_gsm_map_targetRNCId = -1;           /* OCTET_STRING_SIZE_7 */
139 static int hf_gsm_map_an_APDU = -1;               /* An_APDU */
140 static int hf_gsm_map_multipleBearerRequested = -1;  /* NULL */
141 static int hf_gsm_map_integrityProtectionInfo = -1;  /* OCTET_STRING_SIZE_18_100 */
142 static int hf_gsm_map_encryptionInfo = -1;        /* OCTET_STRING_SIZE_18_100 */
143 static int hf_gsm_map_radioResourceInformation = -1;  /* OCTET_STRING_SIZE_3_13 */
144 static int hf_gsm_map_allowedGSM_Algorithms = -1;  /* OCTET_STRING_SIZE_1 */
145 static int hf_gsm_map_allowedUMTS_Algorithms = -1;  /* T_allowedUMTS_Algorithms */
146 static int hf_gsm_map_integrityProtectionAlgorithms = -1;  /* OCTET_STRING_SIZE_1_9 */
147 static int hf_gsm_map_encryptionAlgorithms = -1;  /* OCTET_STRING_SIZE_1_9 */
148 static int hf_gsm_map_radioResourceList = -1;     /* T_radioResourceList */
149 static int hf_gsm_map_radioResourceList_item = -1;  /* T_radioResourceList_item */
150 static int hf_gsm_map_rab_Id = -1;                /* INTEGER_1_255 */
151 static int hf_gsm_map_bssmap_ServiceHandover = -1;  /* OCTET_STRING_SIZE_1 */
152 static int hf_gsm_map_ranap_ServiceHandover = -1;  /* OCTET_STRING_SIZE_1 */
153 static int hf_gsm_map_bssmap_ServiceHandoverList = -1;  /* T_bssmap_ServiceHandoverList */
154 static int hf_gsm_map_bssmap_ServiceHandoverList_item = -1;  /* T_bssmap_ServiceHandoverList_item */
155 static int hf_gsm_map_asciCallReference = -1;     /* OCTET_STRING_SIZE_1_8 */
156 static int hf_gsm_map_geran_classmark = -1;       /* OCTET_STRING_SIZE_2_87 */
157 static int hf_gsm_map_iuCurrentlyUsedCodec = -1;  /* OCTET_STRING_SIZE_1_4 */
158 static int hf_gsm_map_iuSupportedCodecsList = -1;  /* T_iuSupportedCodecsList */
159 static int hf_gsm_map_utranCodecList = -1;        /* T_utranCodecList */
160 static int hf_gsm_map_codec1 = -1;                /* OCTET_STRING_SIZE_1_4 */
161 static int hf_gsm_map_codec2 = -1;                /* OCTET_STRING_SIZE_1_4 */
162 static int hf_gsm_map_codec3 = -1;                /* OCTET_STRING_SIZE_1_4 */
163 static int hf_gsm_map_codec4 = -1;                /* OCTET_STRING_SIZE_1_4 */
164 static int hf_gsm_map_codec5 = -1;                /* OCTET_STRING_SIZE_1_4 */
165 static int hf_gsm_map_codec6 = -1;                /* OCTET_STRING_SIZE_1_4 */
166 static int hf_gsm_map_codec7 = -1;                /* OCTET_STRING_SIZE_1_4 */
167 static int hf_gsm_map_codec8 = -1;                /* OCTET_STRING_SIZE_1_4 */
168 static int hf_gsm_map_geranCodecList = -1;        /* T_geranCodecList */
169 static int hf_gsm_map_rab_ConfigurationIndicator = -1;  /* NULL */
170 static int hf_gsm_map_uesbi_Iu = -1;              /* T_uesbi_Iu */
171 static int hf_gsm_map_uesbi_IuA = -1;             /* BIT_STRING_SIZE_1_128 */
172 static int hf_gsm_map_uesbi_IuB = -1;             /* BIT_STRING_SIZE_1_128 */
173 static int hf_gsm_map_handoverNumber = -1;        /* HandoverNumber */
174 static int hf_gsm_map_relocationNumberList = -1;  /* T_relocationNumberList */
175 static int hf_gsm_map_relocationNumberList_item = -1;  /* T_relocationNumberList_item */
176 static int hf_gsm_map_multicallBearerInfo = -1;   /* INTEGER_1_7 */
177 static int hf_gsm_map_multipleBearerNotSupported = -1;  /* NULL */
178 static int hf_gsm_map_selectedUMTS_Algorithms = -1;  /* T_selectedUMTS_Algorithms */
179 static int hf_gsm_map_integrityProtectionAlgorithm = -1;  /* OCTET_STRING_SIZE_1 */
180 static int hf_gsm_map_encryptionAlgorithm = -1;   /* OCTET_STRING_SIZE_1 */
181 static int hf_gsm_map_chosenRadioResourceInformation = -1;  /* T_chosenRadioResourceInformation */
182 static int hf_gsm_map_chosenChannelInfo = -1;     /* OCTET_STRING_SIZE_1 */
183 static int hf_gsm_map_chosenSpeechVersion = -1;   /* OCTET_STRING_SIZE_1 */
184 static int hf_gsm_map_iuSelectedCodec = -1;       /* OCTET_STRING_SIZE_1_4 */
185 static int hf_gsm_map_iuAvailableCodecsList = -1;  /* T_iuAvailableCodecsList */
186 static int hf_gsm_map_targetMSC_Number = -1;      /* T_targetMSC_Number */
187 static int hf_gsm_map_numberOfRequestedVectors = -1;  /* INTEGER_1_5 */
188 static int hf_gsm_map_segmentationProhibited = -1;  /* NULL */
189 static int hf_gsm_map_immediateResponsePreferred = -1;  /* NULL */
190 static int hf_gsm_map_re_synchronisationInfo = -1;  /* T_re_synchronisationInfo */
191 static int hf_gsm_map_auts = -1;                  /* OCTET_STRING_SIZE_14 */
192 static int hf_gsm_map_requestingNodeType = -1;    /* T_requestingNodeType */
193 static int hf_gsm_map_requestingPLMN_Id = -1;     /* OCTET_STRING_SIZE_3 */
194 static int hf_gsm_map_SendAuthenticationInfoRes_item = -1;  /* SendAuthenticationInfoRes_item */
195 static int hf_gsm_map_authenticationSetList = -1;  /* T_authenticationSetList */
196 static int hf_gsm_map_tripletList = -1;           /* T_tripletList */
197 static int hf_gsm_map_tripletList_item = -1;      /* T_tripletList_item */
198 static int hf_gsm_map_quintupletList = -1;        /* T_quintupletList */
199 static int hf_gsm_map_quintupletList_item = -1;   /* T_quintupletList_item */
200 static int hf_gsm_map_xres = -1;                  /* OCTET_STRING_SIZE_4_16 */
201 static int hf_gsm_map_ck = -1;                    /* OCTET_STRING_SIZE_16 */
202 static int hf_gsm_map_ik = -1;                    /* OCTET_STRING_SIZE_16 */
203 static int hf_gsm_map_autn = -1;                  /* OCTET_STRING_SIZE_16 */
204 static int hf_gsm_map_imei = -1;                  /* Imei */
205 static int hf_gsm_map_requestedEquipmentInfo = -1;  /* T_requestedEquipmentInfo */
206 static int hf_gsm_map_equipmentStatus = -1;       /* EquipmentStatus */
207 static int hf_gsm_map_bmuef = -1;                 /* T_bmuef */
208 static int hf_gsm_map_bearerService = -1;         /* OCTET_STRING */
209 static int hf_gsm_map_teleservice = -1;           /* Teleservice */
210 static int hf_gsm_map_BasicServiceGroupList_item = -1;  /* BasicService */
211 static int hf_gsm_map_bcsmTriggerDetectionPoint = -1;  /* BcsmTriggerDetectionPoint */
212 static int hf_gsm_map_serviceKey = -1;            /* ServiceKey */
213 static int hf_gsm_map_gsmSCFAddress = -1;         /* GsmSCF_Address */
214 static int hf_gsm_map_defaultCallHandling = -1;   /* DefaultCallHandling */
215 static int hf_gsm_map_BcsmCamelTDPDataList_item = -1;  /* BcsmCamelTDPData */
216 static int hf_gsm_map_o_BcsmCamelTDPDataList = -1;  /* BcsmCamelTDPDataList */
217 static int hf_gsm_map_camelCapabilityHandling = -1;  /* INTEGER_1_16 */
218 static int hf_gsm_map_msisdn = -1;                /* Msisdn */
219 static int hf_gsm_map_category = -1;              /* OCTET_STRING_SIZE_1 */
220 static int hf_gsm_map_subscriberStatus = -1;      /* SubscriberStatus */
221 static int hf_gsm_map_bearerServiceList = -1;     /* bearerServiceList */
222 static int hf_gsm_map_bearerServiceList_item = -1;  /* OCTET_STRING_SIZE_1_5 */
223 static int hf_gsm_map_teleserviceList = -1;       /* SEQUENCE_SIZE_1_20_OF_Teleservice */
224 static int hf_gsm_map_teleserviceList_item = -1;  /* Teleservice */
225 static int hf_gsm_map_provisionedSS = -1;         /* T_provisionedSS */
226 static int hf_gsm_map_provisionedSS_item = -1;    /* T_provisionedSS_item */
227 static int hf_gsm_map_forwardingInfo = -1;        /* ForwardingInfo */
228 static int hf_gsm_map_callBarringInfo = -1;       /* CallBarringInfo */
229 static int hf_gsm_map_cug_Info = -1;              /* T_cug_Info */
230 static int hf_gsm_map_cug_SubscriptionList = -1;  /* T_cug_SubscriptionList */
231 static int hf_gsm_map_cug_SubscriptionList_item = -1;  /* T_cug_SubscriptionList_item */
232 static int hf_gsm_map_cug_Index = -1;             /* INTEGER_0_32767 */
233 static int hf_gsm_map_cug_Interlock = -1;         /* OCTET_STRING_SIZE_4 */
234 static int hf_gsm_map_intraCUG_Options = -1;      /* IntraCUG_Options */
235 static int hf_gsm_map_basicServiceGroupList = -1;  /* BasicServiceGroupList */
236 static int hf_gsm_map_cug_FeatureList = -1;       /* T_cug_FeatureList */
237 static int hf_gsm_map_cug_FeatureList_item = -1;  /* T_cug_FeatureList_item */
238 static int hf_gsm_map_basicService = -1;          /* BasicService */
239 static int hf_gsm_map_preferentialCUG_Indicator = -1;  /* INTEGER_0_32767 */
240 static int hf_gsm_map_interCUG_Restrictions = -1;  /* OCTET_STRING_SIZE_1 */
241 static int hf_gsm_map_ss_Data = -1;               /* Ss_Data */
242 static int hf_gsm_map_emlpp_Info = -1;            /* T_emlpp_Info */
243 static int hf_gsm_map_maximumentitledPriority = -1;  /* INTEGER_0_15 */
244 static int hf_gsm_map_defaultPriority = -1;       /* INTEGER_0_15 */
245 static int hf_gsm_map_odb_Data = -1;              /* Odb_data */
246 static int hf_gsm_map_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
247 static int hf_gsm_map_regionalSubscriptionData = -1;  /* T_regionalSubscriptionData */
248 static int hf_gsm_map_regionalSubscriptionData_item = -1;  /* OCTET_STRING_SIZE_2 */
249 static int hf_gsm_map_vbsSubscriptionData = -1;   /* T_vbsSubscriptionData */
250 static int hf_gsm_map_vbsSubscriptionData_item = -1;  /* T_vbsSubscriptionData_item */
251 static int hf_gsm_map_groupid = -1;               /* OCTET_STRING_SIZE_3 */
252 static int hf_gsm_map_broadcastInitEntitlement = -1;  /* NULL */
253 static int hf_gsm_map_vgcsSubscriptionData = -1;  /* T_vgcsSubscriptionData */
254 static int hf_gsm_map_vgcsSubscriptionData_item = -1;  /* T_vgcsSubscriptionData_item */
255 static int hf_gsm_map_groupId = -1;               /* OCTET_STRING_SIZE_3 */
256 static int hf_gsm_map_vlrCamelSubscriptionInfo = -1;  /* T_vlrCamelSubscriptionInfo */
257 static int hf_gsm_map_o_CSI = -1;                 /* O_CSI */
258 static int hf_gsm_map_ss_CSI = -1;                /* ss_CSI */
259 static int hf_gsm_map_ss_CamelData = -1;          /* Ss_CamelData */
260 static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDP_CriteriaList */
261 static int hf_gsm_map_tif_CSI = -1;               /* NULL */
262 static int hf_gsm_map_naea_PreferredCI = -1;      /* Naea_PreferredCI */
263 static int hf_gsm_map_gprsSubscriptionData = -1;  /* T_gprsSubscriptionData */
264 static int hf_gsm_map_completeDataListIncluded = -1;  /* NULL */
265 static int hf_gsm_map_gprsDataList = -1;          /* T_gprsDataList */
266 static int hf_gsm_map_gprsDataList_item = -1;     /* T_gprsDataList_item */
267 static int hf_gsm_map_pdp_ContextId = -1;         /* INTEGER_1_50 */
268 static int hf_gsm_map_pdp_Type = -1;              /* OCTET_STRING_SIZE_2 */
269 static int hf_gsm_map_pdp_Address = -1;           /* OCTET_STRING_SIZE_1_16 */
270 static int hf_gsm_map_qos_Subscribed = -1;        /* Qos_Subscribed */
271 static int hf_gsm_map_vplmnAddressAllowed = -1;   /* NULL */
272 static int hf_gsm_map_apn = -1;                   /* OCTET_STRING_SIZE_2_63 */
273 static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
274 static int hf_gsm_map_networkAccessMode = -1;     /* T_networkAccessMode */
275 static int hf_gsm_map_lsaInformation = -1;        /* T_lsaInformation */
276 static int hf_gsm_map_lsaOnlyAccessIndicator = -1;  /* T_lsaOnlyAccessIndicator */
277 static int hf_gsm_map_lsaDataList = -1;           /* T_lsaDataList */
278 static int hf_gsm_map_lsaDataList_item = -1;      /* T_lsaDataList_item */
279 static int hf_gsm_map_lsaIdentity = -1;           /* OCTET_STRING_SIZE_3 */
280 static int hf_gsm_map_lsaAttributes = -1;         /* OCTET_STRING_SIZE_1 */
281 static int hf_gsm_map_lsaActiveModeIndicator = -1;  /* NULL */
282 static int hf_gsm_map_lmu_Indicator = -1;         /* NULL */
283 static int hf_gsm_map_lcsInformation = -1;        /* T_lcsInformation */
284 static int hf_gsm_map_gmlc_List = -1;             /* T_gmlc_List */
285 static int hf_gsm_map_gmlc_List_item = -1;        /* T_gmlc_List_item */
286 static int hf_gsm_map_lcs_PrivacyExceptionList = -1;  /* T_lcs_PrivacyExceptionList */
287 static int hf_gsm_map_lcs_PrivacyExceptionList_item = -1;  /* T_lcs_PrivacyExceptionList_item */
288 static int hf_gsm_map_ss_Code = -1;               /* Ss_Code */
289 static int hf_gsm_map_ss_Status = -1;             /* Ss_Status */
290 static int hf_gsm_map_notificationToMSUser = -1;  /* NotificationToMSUser */
291 static int hf_gsm_map_externalClientList = -1;    /* T_externalClientList */
292 static int hf_gsm_map_externalClientList_item = -1;  /* T_externalClientList_item */
293 static int hf_gsm_map_clientIdentity = -1;        /* T_clientIdentity */
294 static int hf_gsm_map_externalAddress = -1;       /* OCTET_STRING_SIZE_1_20 */
295 static int hf_gsm_map_gmlc_Restriction = -1;      /* T_gmlc_Restriction */
296 static int hf_gsm_map_plmnClientList = -1;        /* T_plmnClientList */
297 static int hf_gsm_map_plmnClientList_item = -1;   /* T_plmnClientList_item */
298 static int hf_gsm_map_molr_List = -1;             /* T_molr_List */
299 static int hf_gsm_map_molr_List_item = -1;        /* T_molr_List_item */
300 static int hf_gsm_map_ss_List = -1;               /* ss_List */
301 static int hf_gsm_map_ss_List_item = -1;          /* OCTET_STRING_SIZE_1 */
302 static int hf_gsm_map_odb_GeneralData = -1;       /* Odb_GeneralData */
303 static int hf_gsm_map_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
304 static int hf_gsm_map_ss_EventList = -1;          /* T_ss_EventList */
305 static int hf_gsm_map_ss_EventList_item = -1;     /* OCTET_STRING_SIZE_1 */
306 static int hf_gsm_map_gsmSCF_Address = -1;        /* GsmSCF_Address */
307 static int hf_gsm_map_callBarringFeatureList = -1;  /* CallBarringFeatureList */
308 static int hf_gsm_map_CallBarringFeatureList_item = -1;  /* CallBarringFeatureList_item */
309 static int hf_gsm_map_forwardedToNumber = -1;     /* ForwardedToNumber */
310 static int hf_gsm_map_forwardedToSubaddress = -1;  /* ForwardedToSubaddress */
311 static int hf_gsm_map_forwardingOptions = -1;     /* ForwardingOptions */
312 static int hf_gsm_map_noReplyConditionTime = -1;  /* INTEGER */
313 static int hf_gsm_map_longForwardedToNumber = -1;  /* LongForwardedToNumber */
314 static int hf_gsm_map_matchType = -1;             /* MatchType */
315 static int hf_gsm_map_destinationNumberList = -1;  /* T_destinationNumberList */
316 static int hf_gsm_map_destinationNumberList_item = -1;  /* T_destinationNumberList_item */
317 static int hf_gsm_map_destinationNumberLengthList = -1;  /* T_destinationNumberLengthList */
318 static int hf_gsm_map_destinationNumberLengthList_item = -1;  /* INTEGER_1_15 */
319 static int hf_gsm_map_forwardingFeatureList_1_32 = -1;  /* SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList */
320 static int hf_gsm_map_forwardingFeatureList_item = -1;  /* ForwardingFeatureList */
321 static int hf_gsm_map_naea_PreferredCIC = -1;     /* OCTET_STRING_SIZE_3 */
322 static int hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1;  /* O_BcsmCamelTDP_CriteriaList_item */
323 static int hf_gsm_map_o_BcsmTriggerDetectionPoint = -1;  /* BcsmTriggerDetectionPoint */
324 static int hf_gsm_map_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
325 static int hf_gsm_map_basicServiceCriteria_lst = -1;  /* BasicServiceGroupList */
326 static int hf_gsm_map_callTypeCriteria = -1;      /* CallTypeCriteria */
327 static int hf_gsm_map_cliRestrictionOption = -1;  /* CliRestrictionOption */
328 static int hf_gsm_map_overrideCategory = -1;      /* OverrideCategory */
329 static int hf_gsm_map_basicServiceList = -1;      /* BasicServiceGroupList */
330 static int hf_gsm_map_regionalSubscriptionIdentifier = -1;  /* OCTET_STRING_SIZE_2 */
331 static int hf_gsm_map_vbsGroupIndication = -1;    /* NULL */
332 static int hf_gsm_map_vgcsGroupIndication = -1;   /* NULL */
333 static int hf_gsm_map_camelSubscriptionInfoWithdraw = -1;  /* NULL */
334 static int hf_gsm_map_gprsSubscriptionDataWithdraw = -1;  /* T_gprsSubscriptionDataWithdraw */
335 static int hf_gsm_map_allGPRSData = -1;           /* NULL */
336 static int hf_gsm_map_contextIdList = -1;         /* T_contextIdList */
337 static int hf_gsm_map_contextIdList_item = -1;    /* INTEGER_1_50 */
338 static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
339 static int hf_gsm_map_lsaInformationWithdraw = -1;  /* T_lsaInformationWithdraw */
340 static int hf_gsm_map_allLSAData = -1;            /* NULL */
341 static int hf_gsm_map_lsaIdentityList = -1;       /* T_lsaIdentityList */
342 static int hf_gsm_map_lsaIdentityList_item = -1;  /* OCTET_STRING_SIZE_3 */
343 static int hf_gsm_map_gmlc_ListWithdraw = -1;     /* NULL */
344 static int hf_gsm_map_hlr_List = -1;              /* T_hlr_List */
345 static int hf_gsm_map_hlr_List_item = -1;         /* OCTET_STRING_SIZE_3_8 */
346 static int hf_gsm_map_msNotReachable = -1;        /* NULL */
347 static int hf_gsm_map_traceReference = -1;        /* OCTET_STRING_SIZE_1_2 */
348 static int hf_gsm_map_traceType = -1;             /* INTEGER_0_255 */
349 static int hf_gsm_map_omc_Id = -1;                /* OCTET_STRING_SIZE_1_20 */
350 static int hf_gsm_map_cug_CheckInfo = -1;         /* Cug_CheckInfo */
351 static int hf_gsm_map_numberOfForwarding = -1;    /* INTEGER_1_5 */
352 static int hf_gsm_map_interrogationType = -1;     /* T_interrogationType */
353 static int hf_gsm_map_or_Interrogation = -1;      /* NULL */
354 static int hf_gsm_map_or_Capability = -1;         /* INTEGER_1_127 */
355 static int hf_gsm_map_gmsc_Address = -1;          /* Gmsc_Address */
356 static int hf_gsm_map_callReferenceNumber = -1;   /* OCTET_STRING_SIZE_1_8 */
357 static int hf_gsm_map_forwardingReason = -1;      /* T_forwardingReason */
358 static int hf_gsm_map_basicServiceGroup = -1;     /* BasicService */
359 static int hf_gsm_map_networkSignalInfo = -1;     /* Bss_APDU */
360 static int hf_gsm_map_camelInfo = -1;             /* T_camelInfo */
361 static int hf_gsm_map_suppress_T_CSI = -1;        /* NULL */
362 static int hf_gsm_map_suppressionOfAnnouncement = -1;  /* NULL */
363 static int hf_gsm_map_alertingPattern = -1;       /* OCTET_STRING_SIZE_1 */
364 static int hf_gsm_map_ccbs_Call = -1;             /* NULL */
365 static int hf_gsm_map_supportedCCBS_Phase = -1;   /* INTEGER_1_127 */
366 static int hf_gsm_map_additionalSignalInfo = -1;  /* AdditionalSignalInfo */
367 static int hf_gsm_map_extendedRoutingInfo = -1;   /* T_extendedRoutingInfo */
368 static int hf_gsm_map_routingInfo = -1;           /* T_routingInfo */
369 static int hf_gsm_map_roamingNumber = -1;         /* RoamingNumber */
370 static int hf_gsm_map_forwardingData = -1;        /* ForwardingData */
371 static int hf_gsm_map_camelRoutingInfo = -1;      /* T_camelRoutingInfo */
372 static int hf_gsm_map_gmscCamelSubscriptionInfo = -1;  /* T_gmscCamelSubscriptionInfo */
373 static int hf_gsm_map_t_CSI = -1;                 /* t_CSI */
374 static int hf_gsm_map_t_BcsmCamelTDPDataList = -1;  /* BcsmCamelTDPDataList */
375 static int hf_gsm_map_cugSubscriptionFlag = -1;   /* NULL */
376 static int hf_gsm_map_subscriberInfo = -1;        /* SubscriberInfo */
377 static int hf_gsm_map_forwardingInterrogationRequired = -1;  /* NULL */
378 static int hf_gsm_map_vmsc_Address = -1;          /* T_vmsc_Address */
379 static int hf_gsm_map_ccbs_Indicators = -1;       /* T_ccbs_Indicators */
380 static int hf_gsm_map_ccbs_Possible = -1;         /* NULL */
381 static int hf_gsm_map_keepCCBS_CallIndicator = -1;  /* NULL */
382 static int hf_gsm_map_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
383 static int hf_gsm_map_assumedIdle = -1;           /* NULL */
384 static int hf_gsm_map_camelBusy = -1;             /* NULL */
385 static int hf_gsm_map_notProvidedFromVLR = -1;    /* NULL */
386 static int hf_gsm_map_ageOfLocationInformation = -1;  /* INTEGER_0_32767 */
387 static int hf_gsm_map_geographicalInformation = -1;  /* OCTET_STRING_SIZE_8 */
388 static int hf_gsm_map_vlr_number = -1;            /* Vlr_Number */
389 static int hf_gsm_map_locationNumber = -1;        /* OCTET_STRING_SIZE_2_10 */
390 static int hf_gsm_map_cellIdOrLAI = -1;           /* T_cellIdOrLAI */
391 static int hf_gsm_map_cellIdFixedLength = -1;     /* OCTET_STRING_SIZE_7 */
392 static int hf_gsm_map_laiFixedLength = -1;        /* OCTET_STRING_SIZE_5 */
393 static int hf_gsm_map_selectedLSA_Id = -1;        /* OCTET_STRING_SIZE_3 */
394 static int hf_gsm_map_geodeticInformation = -1;   /* OCTET_STRING_SIZE_10 */
395 static int hf_gsm_map_currentLocationRetrieved = -1;  /* NULL */
396 static int hf_gsm_map_sai_Present = -1;           /* NULL */
397 static int hf_gsm_map_locationInformation = -1;   /* LocationInformation */
398 static int hf_gsm_map_subscriberState = -1;       /* SubscriberState */
399 static int hf_gsm_map_locationInformationGPRS = -1;  /* T_locationInformationGPRS */
400 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* T_cellGlobalIdOrServiceAreaIdOrLAI */
401 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* OCTET_STRING_SIZE_7 */
402 static int hf_gsm_map_routeingAreaIdentity = -1;  /* OCTET_STRING_SIZE_6 */
403 static int hf_gsm_map_selectedLSAIdentity = -1;   /* OCTET_STRING_SIZE_3 */
404 static int hf_gsm_map_ps_SubscriberState = -1;    /* T_ps_SubscriberState */
405 static int hf_gsm_map_notProvidedFromSGSN = -1;   /* NULL */
406 static int hf_gsm_map_ps_Detached = -1;           /* NULL */
407 static int hf_gsm_map_ps_AttachedNotReachableForPaging = -1;  /* NULL */
408 static int hf_gsm_map_ps_AttachedReachableForPaging = -1;  /* NULL */
409 static int hf_gsm_map_ps_PDP_ActiveNotReachableForPaging = -1;  /* T_ps_PDP_ActiveNotReachableForPaging */
410 static int hf_gsm_map_ps_PDP_ActiveNotReachableForPaging_item = -1;  /* T_ps_PDP_ActiveNotReachableForPaging_item */
411 static int hf_gsm_map_pdp_ContextIdentifier = -1;  /* INTEGER_1_50 */
412 static int hf_gsm_map_pdp_ContextActive = -1;     /* NULL */
413 static int hf_gsm_map_apn_Subscribed = -1;        /* OCTET_STRING_SIZE_2_63 */
414 static int hf_gsm_map_apn_InUse = -1;             /* OCTET_STRING_SIZE_2_63 */
415 static int hf_gsm_map_nsapi = -1;                 /* INTEGER_0_15 */
416 static int hf_gsm_map_transactionId = -1;         /* OCTET_STRING_SIZE_1_2 */
417 static int hf_gsm_map_teid_ForGnAndGp = -1;       /* OCTET_STRING_SIZE_4 */
418 static int hf_gsm_map_teid_ForIu = -1;            /* OCTET_STRING_SIZE_4 */
419 static int hf_gsm_map_ggsn_Address = -1;          /* Ggsn_Address */
420 static int hf_gsm_map_qos_Requested = -1;         /* OCTET_STRING_SIZE_1_9 */
421 static int hf_gsm_map_qos_Negotiated = -1;        /* OCTET_STRING_SIZE_1_9 */
422 static int hf_gsm_map_chargingId = -1;            /* OCTET_STRING_SIZE_4 */
423 static int hf_gsm_map_chargingCharacteristics = -1;  /* OCTET_STRING_SIZE_2 */
424 static int hf_gsm_map_rnc_Address = -1;           /* OCTET_STRING_SIZE_5_17 */
425 static int hf_gsm_map_qos2_Subscribed = -1;       /* OCTET_STRING_SIZE_1_3 */
426 static int hf_gsm_map_qos2_Requested = -1;        /* OCTET_STRING_SIZE_1_3 */
427 static int hf_gsm_map_qos2_Negotiated = -1;       /* OCTET_STRING_SIZE_1_3 */
428 static int hf_gsm_map_ps_PDP_ActiveReachableForPaging = -1;  /* T_ps_PDP_ActiveReachableForPaging */
429 static int hf_gsm_map_ps_PDP_ActiveReachableForPaging_item = -1;  /* T_ps_PDP_ActiveReachableForPaging_item */
430 static int hf_gsm_map_netDetNotReachable = -1;    /* T_netDetNotReachable */
431 static int hf_gsm_map_ms_Classmark2 = -1;         /* OCTET_STRING_SIZE_3 */
432 static int hf_gsm_map_gprs_MS_Class = -1;         /* T_gprs_MS_Class */
433 static int hf_gsm_map_mSNetworkCapability = -1;   /* OCTET_STRING_SIZE_1_8 */
434 static int hf_gsm_map_mSRadioAccessCapability = -1;  /* OCTET_STRING_SIZE_1_50 */
435 static int hf_gsm_map_mnpInfoRes = -1;            /* T_mnpInfoRes */
436 static int hf_gsm_map_routeingNumber = -1;        /* OCTET_STRING_SIZE_1_5 */
437 static int hf_gsm_map_ext_ProtocolId = -1;        /* T_ext_ProtocolId */
438 static int hf_gsm_map_ext_signalInfo = -1;        /* ExtSignalInfo */
439 static int hf_gsm_map_cug_OutgoingAccess = -1;    /* NULL */
440 static int hf_gsm_map_gsm_BearerCapability = -1;  /* Bss_APDU */
441 static int hf_gsm_map_supportedCamelPhasesInGMSC = -1;  /* SupportedCamelPhases */
442 static int hf_gsm_map_orNotSupportedInGMSC = -1;  /* NULL */
443 static int hf_gsm_map_uu_Data = -1;               /* T_uu_Data */
444 static int hf_gsm_map_uuIndicator = -1;           /* OCTET_STRING_SIZE_1 */
445 static int hf_gsm_map_uui = -1;                   /* OCTET_STRING_SIZE_1_131 */
446 static int hf_gsm_map_uusCFInteraction = -1;      /* NULL */
447 static int hf_gsm_map_allInformationSent = -1;    /* NULL */
448 static int hf_gsm_map_isdn_BearerCapability = -1;  /* Bss_APDU */
449 static int hf_gsm_map_call_Direction = -1;        /* OCTET_STRING_SIZE_1 */
450 static int hf_gsm_map_b_Subscriber_Address = -1;  /* T_b_Subscriber_Address */
451 static int hf_gsm_map_chosenChannel = -1;         /* Bss_APDU */
452 static int hf_gsm_map_lowerLayerCompatibility = -1;  /* Bss_APDU */
453 static int hf_gsm_map_highLayerCompatibility = -1;  /* Bss_APDU */
454 static int hf_gsm_map_sIWFSNumber = -1;           /* T_sIWFSNumber */
455 static int hf_gsm_map_channelType = -1;           /* Bss_APDU */
456 static int hf_gsm_map_ccbs_Monitoring = -1;       /* Ccbs_Monitoring */
457 static int hf_gsm_map_ccbs_SubscriberStatus = -1;  /* Ccbs_SubscriberStatus */
458 static int hf_gsm_map_eventReportData = -1;       /* T_eventReportData */
459 static int hf_gsm_map_callReportdata = -1;        /* T_callReportdata */
460 static int hf_gsm_map_monitoringMode = -1;        /* MonitoringMode */
461 static int hf_gsm_map_callOutcome = -1;           /* CallOutcome */
462 static int hf_gsm_map_callInfo = -1;              /* Bss_APDU */
463 static int hf_gsm_map_ccbs_Feature = -1;          /* Ccbs_Feature */
464 static int hf_gsm_map_translatedB_Number = -1;    /* TranslatedB_Number */
465 static int hf_gsm_map_replaceB_Number = -1;       /* NULL */
466 static int hf_gsm_map_ruf_Outcome = -1;           /* Ruf_Outcome */
467 static int hf_gsm_map_ss_SubscriptionOption = -1;  /* Ss_SubscriptionOption */
468 static int hf_gsm_map_ccbs_Index = -1;            /* INTEGER_1_5 */
469 static int hf_gsm_map_b_subscriberNumber = -1;    /* B_subscriberNumber */
470 static int hf_gsm_map_b_subscriberSubaddress = -1;  /* OCTET_STRING_SIZE_1_21 */
471 static int hf_gsm_map_forwardingFeatureList_1_13 = -1;  /* SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList */
472 static int hf_gsm_map_genericServiceInfo = -1;    /* T_genericServiceInfo */
473 static int hf_gsm_map_maximumEntitledPriority = -1;  /* INTEGER_0_15 */
474 static int hf_gsm_map_ccbs_FeatureList = -1;      /* T_ccbs_FeatureList */
475 static int hf_gsm_map_ccbs_FeatureList_item = -1;  /* T_ccbs_FeatureList_item */
476 static int hf_gsm_map_ussd_DataCodingScheme = -1;  /* OCTET_STRING_SIZE_1 */
477 static int hf_gsm_map_ussd_String = -1;           /* OCTET_STRING_SIZE_1_160 */
478 static int hf_gsm_map_ccbs_Data = -1;             /* T_ccbs_Data */
479 static int hf_gsm_map_serviceIndicator = -1;      /* ServiceIndicator */
480 static int hf_gsm_map_sm_RP_PRI = -1;             /* BOOLEAN */
481 static int hf_gsm_map_serviceCentreAddress = -1;  /* ServiceCentreAddress */
482 static int hf_gsm_map_gprsSupportIndicator = -1;  /* NULL */
483 static int hf_gsm_map_sm_RP_MTI = -1;             /* INTEGER_0_10 */
484 static int hf_gsm_map_sm_RP_SMEA = -1;            /* OCTET_STRING_SIZE_1_12 */
485 static int hf_gsm_map_locationInfoWithLMSI = -1;  /* T_locationInfoWithLMSI */
486 static int hf_gsm_map_networkNode_Number = -1;    /* T_networkNode_Number */
487 static int hf_gsm_map_gprsNodeIndicator = -1;     /* NULL */
488 static int hf_gsm_map_additional_Number = -1;     /* T_additional_Number */
489 static int hf_gsm_map_sm_RP_DA = -1;              /* Sm_RP_DA */
490 static int hf_gsm_map_sm_RP_OA = -1;              /* Sm_RP_OA */
491 static int hf_gsm_map_sm_RP_UI = -1;              /* Sm_RP_UI */
492 static int hf_gsm_map_serviceCentreAddressOA = -1;  /* ServiceCentreAddress */
493 static int hf_gsm_map_noSM_RP_OA = -1;            /* NULL */
494 static int hf_gsm_map_serviceCentreAddressDA = -1;  /* ServiceCentreAddress */
495 static int hf_gsm_map_noSM_RP_DA = -1;            /* NULL */
496 static int hf_gsm_map_moreMessagesToSend = -1;    /* NULL */
497 static int hf_gsm_map_sm_DeliveryOutcome = -1;    /* Sm_DeliveryOutcome */
498 static int hf_gsm_map_absentSubscriberDiagnosticSM = -1;  /* INTEGER_0_255 */
499 static int hf_gsm_map_deliveryOutcomeIndicator = -1;  /* NULL */
500 static int hf_gsm_map_additionalSM_DeliveryOutcome = -1;  /* Sm_DeliveryOutcome */
501 static int hf_gsm_map_additionalAbsentSubscriberDiagnosticSM = -1;  /* INTEGER_0_255 */
502 static int hf_gsm_map_storedMSISDN = -1;          /* StoredMSISDN */
503 static int hf_gsm_map_mw_Status = -1;             /* T_mw_Status */
504 static int hf_gsm_map_alertReason = -1;           /* T_alertReason */
505 static int hf_gsm_map_alertReasonIndicator = -1;  /* NULL */
506 static int hf_gsm_map_requestedInfo = -1;         /* RequestedInfo */
507 static int hf_gsm_map_locationInformationFlag = -1;  /* NULL */
508 static int hf_gsm_map_subscriberStateFlag = -1;   /* NULL */
509 static int hf_gsm_map_currentLocation = -1;       /* NULL */
510 static int hf_gsm_map_requestedDomain = -1;       /* T_requestedDomain */
511 static int hf_gsm_map_imei_flg = -1;              /* NULL */
512 static int hf_gsm_map_ms_classmark = -1;          /* NULL */
513 static int hf_gsm_map_mnpRequestedInfo = -1;      /* NULL */
514 static int hf_gsm_map_subscriberIdentity = -1;    /* SubscriberIdentity */
515 static int hf_gsm_map_requestedSubscriptionInfo = -1;  /* T_requestedSubscriptionInfo */
516 static int hf_gsm_map_requestedSS_Info = -1;      /* T_requestedSS_Info */
517 static int hf_gsm_map_odb = -1;                   /* NULL */
518 static int hf_gsm_map_requestedCAMEL_SubscriptionInfo = -1;  /* T_requestedCAMEL_SubscriptionInfo */
519 static int hf_gsm_map_supportedVLR_CAMEL_Phases_flg = -1;  /* NULL */
520 static int hf_gsm_map_supportedSGSN_CAMEL_Phases_flg = -1;  /* NULL */
521 static int hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
522 static int hf_gsm_map_callForwardingData = -1;    /* T_callForwardingData */
523 static int hf_gsm_map_forwardingFeatureList = -1;  /* ForwardingFeatureList */
524 static int hf_gsm_map_notificationToCSE = -1;     /* NULL */
525 static int hf_gsm_map_callBarringData = -1;       /* T_callBarringData */
526 static int hf_gsm_map_password = -1;              /* NumericString */
527 static int hf_gsm_map_wrongPasswordAttemptsCounter = -1;  /* INTEGER_0_4 */
528 static int hf_gsm_map_odb_Info = -1;              /* T_odb_Info */
529 static int hf_gsm_map_camel_SubscriptionInfo = -1;  /* T_camel_SubscriptionInfo */
530 static int hf_gsm_map_d_CSI = -1;                 /* T_d_CSI */
531 static int hf_gsm_map_dp_AnalysedInfoCriteriaList = -1;  /* Dp_AnalysedInfoCriteriaList */
532 static int hf_gsm_map_csi_Active = -1;            /* NULL */
533 static int hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_t_BCSM_CAMEL_TDP_CriteriaList */
534 static int hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_t_BCSM_CAMEL_TDP_CriteriaList_item */
535 static int hf_gsm_map_t_BCSM_TriggerDetectionPoint = -1;  /* t_BCSM_TriggerDetectionPoint */
536 static int hf_gsm_map_basicServiceCriteria = -1;  /* BasicServiceCriteria */
537 static int hf_gsm_map_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
538 static int hf_gsm_map_vt_CSI = -1;                /* T_vt_CSI */
539 static int hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_vt_BCSM_CAMEL_TDP_CriteriaList */
540 static int hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_vt_BCSM_CAMEL_TDP_CriteriaList_item */
541 static int hf_gsm_map_tif_CSI_NotificationToCSE = -1;  /* NULL */
542 static int hf_gsm_map_gprs_CSI = -1;              /* T_gprs_CSI */
543 static int hf_gsm_map_gprs_CamelTDPDataList = -1;  /* T_gprs_CamelTDPDataList */
544 static int hf_gsm_map_gprs_CamelTDPDataList_item = -1;  /* T_gprs_CamelTDPDataList_item */
545 static int hf_gsm_map_gprs_TriggerDetectionPoint = -1;  /* T_gprs_TriggerDetectionPoint */
546 static int hf_gsm_map_defaultSessionHandling = -1;  /* T_defaultSessionHandling */
547 static int hf_gsm_map_mo_sms_CSI = -1;            /* T_mo_sms_CSI */
548 static int hf_gsm_map_sms_CAMEL_TDP_DataList = -1;  /* Sms_CAMEL_TDP_DataList */
549 static int hf_gsm_map_m_CSI = -1;                 /* T_m_CSI */
550 static int hf_gsm_map_mobilityTriggers = -1;      /* MobilityTriggers */
551 static int hf_gsm_map_specificCSIDeletedList = -1;  /* T_specificCSIDeletedList */
552 static int hf_gsm_map_mt_sms_CSI = -1;            /* T_mt_sms_CSI */
553 static int hf_gsm_map_mt_smsCAMELTDP_CriteriaList = -1;  /* T_mt_smsCAMELTDP_CriteriaList */
554 static int hf_gsm_map_mt_smsCAMELTDP_CriteriaList_item = -1;  /* T_mt_smsCAMELTDP_CriteriaList_item */
555 static int hf_gsm_map_sms_TriggerDetectionPoint = -1;  /* sms_TriggerDetectionPoint */
556 static int hf_gsm_map_tpdu_TypeCriterion = -1;    /* T_tpdu_TypeCriterion */
557 static int hf_gsm_map_tpdu_TypeCriterion_item = -1;  /* T_tpdu_TypeCriterion_item */
558 static int hf_gsm_map_mg_csi = -1;                /* T_mg_csi */
559 static int hf_gsm_map_o_IM_CSI = -1;              /* T_o_IM_CSI */
560 static int hf_gsm_map_csiActive = -1;             /* NULL */
561 static int hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* T_o_IM_BcsmCamelTDP_CriteriaList */
562 static int hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList_item = -1;  /* T_o_IM_BcsmCamelTDP_CriteriaList_item */
563 static int hf_gsm_map_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
564 static int hf_gsm_map_d_IM_CSI = -1;              /* T_d_IM_CSI */
565 static int hf_gsm_map_vt_IM_CSI = -1;             /* T_vt_IM_CSI */
566 static int hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_vt_IM_BCSM_CAMEL_TDP_CriteriaList */
567 static int hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item */
568 static int hf_gsm_map_supportedVLR_CAMEL_Phases = -1;  /* T_supportedVLR_CAMEL_Phases */
569 static int hf_gsm_map_supportedSGSN_CAMEL_Phases = -1;  /* T_supportedSGSN_CAMEL_Phases */
570 static int hf_gsm_map_offeredCamel4CSIsInVLR = -1;  /* T_offeredCamel4CSIsInVLR */
571 static int hf_gsm_map_offeredCamel4CSIsInSGSN = -1;  /* T_offeredCamel4CSIsInSGSN */
572 static int hf_gsm_map_Sms_CAMEL_TDP_DataList_item = -1;  /* Sms_CAMEL_TDP_DataList_item */
573 static int hf_gsm_map_defaultSMS_Handling = -1;   /* T_defaultSMS_Handling */
574 static int hf_gsm_map_T_CauseValueCriteria_item = -1;  /* OCTET_STRING_SIZE_1 */
575 static int hf_gsm_map_O_CauseValueCriteria_item = -1;  /* OCTET_STRING_SIZE_1 */
576 static int hf_gsm_map_MobilityTriggers_item = -1;  /* OCTET_STRING_SIZE_1 */
577 static int hf_gsm_map_BasicServiceCriteria_item = -1;  /* BasicServiceCriteria_item */
578 static int hf_gsm_map_ext_BearerService = -1;     /* OCTET_STRING_SIZE_1_5 */
579 static int hf_gsm_map_ext_Teleservice = -1;       /* OCTET_STRING_SIZE_1_5 */
580 static int hf_gsm_map_Dp_AnalysedInfoCriteriaList_item = -1;  /* Dp_AnalysedInfoCriteriaList_item */
581 static int hf_gsm_map_dialledNumber = -1;         /* T_dialledNumber */
582 static int hf_gsm_map_modificationRequestFor_CF_Info = -1;  /* T_modificationRequestFor_CF_Info */
583 static int hf_gsm_map_basicService_ext = -1;      /* BasicService_ext */
584 static int hf_gsm_map_noReplyConditionTime_1_100 = -1;  /* INTEGER_1_100 */
585 static int hf_gsm_map_modifyNotificationToCSE = -1;  /* ModifyNotificationToCSE */
586 static int hf_gsm_map_modificationRequestFor_CB_Info = -1;  /* T_modificationRequestFor_CB_Info */
587 static int hf_gsm_map_modificationRequestFor_CSI = -1;  /* T_modificationRequestFor_CSI */
588 static int hf_gsm_map_requestedCamel_SubscriptionInfo = -1;  /* T_requestedCamel_SubscriptionInfo */
589 static int hf_gsm_map_modifyCSI_State = -1;       /* T_modifyCSI_State */
590 static int hf_gsm_map_modificationRequestFor_ODB_data = -1;  /* T_modificationRequestFor_ODB_data */
591 static int hf_gsm_map_odb_data = -1;              /* Odb_data */
592 static int hf_gsm_map_odb_HPLMN_Data = -1;        /* Odb_HPLMN_Data */
593 static int hf_gsm_map_ss_Event = -1;              /* OCTET_STRING_SIZE_1 */
594 static int hf_gsm_map_ss_EventSpecification = -1;  /* T_ss_EventSpecification */
595 static int hf_gsm_map_ss_EventSpecification_item = -1;  /* OCTET_STRING_SIZE_1_20 */
596 static int hf_gsm_map_codec_Info = -1;            /* OCTET_STRING_SIZE_5_10 */
597 static int hf_gsm_map_cipheringAlgorithm = -1;    /* OCTET_STRING_SIZE_1 */
598 static int hf_gsm_map_groupKeyNumber = -1;        /* INTEGER_0_15 */
599 static int hf_gsm_map_groupKey = -1;              /* OCTET_STRING_SIZE_8 */
600 static int hf_gsm_map_priority = -1;              /* INTEGER_0_15 */
601 static int hf_gsm_map_uplinkFree = -1;            /* NULL */
602 static int hf_gsm_map_groupCallNumber = -1;       /* T_groupCallNumber */
603 static int hf_gsm_map_uplinkRequest = -1;         /* NULL */
604 static int hf_gsm_map_uplinkReleaseIndication = -1;  /* NULL */
605 static int hf_gsm_map_releaseGroupCall = -1;      /* NULL */
606 static int hf_gsm_map_uplinkRequestAck = -1;      /* NULL */
607 static int hf_gsm_map_uplinkRejectCommand = -1;   /* NULL */
608 static int hf_gsm_map_uplinkSeizedCommand = -1;   /* NULL */
609 static int hf_gsm_map_uplinkReleaseCommand = -1;  /* NULL */
610 static int hf_gsm_map_sgsn_Address = -1;          /* OCTET_STRING_SIZE_5_17 */
611 static int hf_gsm_map_sgsn_Capability = -1;       /* T_sgsn_Capability */
612 static int hf_gsm_map_ggsn_Number = -1;           /* Ggsn_Number */
613 static int hf_gsm_map_mobileNotReachableReason = -1;  /* INTEGER_0_255 */
614 static int hf_gsm_map_dataCodingScheme = -1;      /* OCTET_STRING */
615 static int hf_gsm_map_nameString = -1;            /* OCTET_STRING */
616 static int hf_gsm_map_lcsClientType = -1;         /* LcsClientType */
617 static int hf_gsm_map_lcsClientExternalID = -1;   /* LcsClientExternalID */
618 static int hf_gsm_map_lcsClientDialedByMS = -1;   /* OCTET_STRING */
619 static int hf_gsm_map_lcsClientInternalID = -1;   /* LcsClientInternalID */
620 static int hf_gsm_map_lcsClientName = -1;         /* LcsClientName */
621 static int hf_gsm_map_locationType = -1;          /* T_locationType */
622 static int hf_gsm_map_locationEstimateType = -1;  /* T_locationEstimateType */
623 static int hf_gsm_map_mlc_Number = -1;            /* T_mlc_Number */
624 static int hf_gsm_map_lcs_ClientID = -1;          /* Lcs_ClientID */
625 static int hf_gsm_map_privacyOverride = -1;       /* NULL */
626 static int hf_gsm_map_lcs_Priority = -1;          /* OCTET_STRING_SIZE_1 */
627 static int hf_gsm_map_lcs_QoS = -1;               /* T_lcs_QoS */
628 static int hf_gsm_map_horizontal_accuracy = -1;   /* OCTET_STRING_SIZE_1 */
629 static int hf_gsm_map_verticalCoordinateRequest = -1;  /* NULL */
630 static int hf_gsm_map_vertical_accuracy = -1;     /* OCTET_STRING_SIZE_1 */
631 static int hf_gsm_map_responseTime = -1;          /* T_responseTime */
632 static int hf_gsm_map_responseTimeCategory = -1;  /* T_responseTimeCategory */
633 static int hf_gsm_map_locationEstimate = -1;      /* OCTET_STRING_SIZE_1_20 */
634 static int hf_gsm_map_ageOfLocationEstimate = -1;  /* INTEGER_0_32767 */
635 static int hf_gsm_map_mlcNumber = -1;             /* T_mlcNumber */
636 static int hf_gsm_map_targetMS = -1;              /* TargetMS */
637 static int hf_gsm_map_lcsLocationInfo = -1;       /* LcsLocationInfo */
638 static int hf_gsm_map_lcs_Event = -1;             /* Lcs_Event */
639 static int hf_gsm_map_na_ESRD = -1;               /* T_na_ESRD */
640 static int hf_gsm_map_na_ESRK = -1;               /* T_na_ESRK */
641 static int hf_gsm_map_networkResource = -1;       /* NetworkResource */
642 static int hf_gsm_map_extensibleSystemFailureParam = -1;  /* T_extensibleSystemFailureParam */
643 static int hf_gsm_map_unknownSubscriberDiagnostic = -1;  /* T_unknownSubscriberDiagnostic */
644 static int hf_gsm_map_roamingNotAllowedCause = -1;  /* T_roamingNotAllowedCause */
645 static int hf_gsm_map_absentSubscriberReason = -1;  /* T_absentSubscriberReason */
646 static int hf_gsm_map_ccbs_Busy = -1;             /* NULL */
647 static int hf_gsm_map_callBarringCause = -1;      /* CallBarringCause */
648 static int hf_gsm_map_extensibleCallBarredParam = -1;  /* T_extensibleCallBarredParam */
649 static int hf_gsm_map_unauthorisedMessageOriginator = -1;  /* NULL */
650 static int hf_gsm_map_cug_RejectCause = -1;       /* T_cug_RejectCause */
651 static int hf_gsm_map_gprsConnectionSuspended = -1;  /* NULL */
652 static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1;  /* T_sm_EnumeratedDeliveryFailureCause */
653 static int hf_gsm_map_diagnosticInfo = -1;        /* OCTET_STRING_SIZE_1_200 */
654 static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1;  /* T_unauthorizedLCSClient_Diagnostic */
655 static int hf_gsm_map_positionMethodFailure_Diagnostic = -1;  /* T_positionMethodFailure_Diagnostic */
656 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
657 static int hf_gsm_map_pcsExtensions = -1;         /* PcsExtensions */
658 /* named bits */
659 static int hf_gsm_map_SupportedCamelPhases_phase1 = -1;
660 static int hf_gsm_map_SupportedCamelPhases_phase2 = -1;
661 static int hf_gsm_map_SupportedCamelPhases_phase3 = -1;
662 static int hf_gsm_map_SupportedCamelPhases_phase4 = -1;
663 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
664 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
665 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
666 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
667 static int hf_gsm_map_T_offeredCamel4CSIs_o_csi = -1;
668 static int hf_gsm_map_T_offeredCamel4CSIs_d_csi = -1;
669 static int hf_gsm_map_T_offeredCamel4CSIs_vt_csi = -1;
670 static int hf_gsm_map_T_offeredCamel4CSIs_t_csi = -1;
671 static int hf_gsm_map_T_offeredCamel4CSIs_mt_sms_csi = -1;
672 static int hf_gsm_map_T_offeredCamel4CSIs_mg_csi = -1;
673 static int hf_gsm_map_T_offeredCamel4CSIs_psi_enhancements = -1;
674 static int hf_gsm_map_T_requestedEquipmentInfo_equipmentStatus = -1;
675 static int hf_gsm_map_T_requestedEquipmentInfo_bmuef = -1;
676 static int hf_gsm_map_Odb_GeneralData_allOGCallsBarred = -1;
677 static int hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred = -1;
678 static int hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred = -1;
679 static int hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred = -1;
680 static int hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
681 static int hf_gsm_map_Odb_GeneralData_ssAccessBarred = -1;
682 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred = -1;
683 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred = -1;
684 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred = -1;
685 static int hf_gsm_map_Odb_GeneralData_allECTBarred = -1;
686 static int hf_gsm_map_Odb_GeneralData_chargeableECTBarred = -1;
687 static int hf_gsm_map_Odb_GeneralData_internationalECTBarred = -1;
688 static int hf_gsm_map_Odb_GeneralData_interzonalECTBarred = -1;
689 static int hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred = -1;
690 static int hf_gsm_map_Odb_GeneralData_multipleECTBarred = -1;
691 static int hf_gsm_map_Odb_GeneralData_allPacketOrientedServicesBarred = -1;
692 static int hf_gsm_map_Odb_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
693 static int hf_gsm_map_Odb_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
694 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
695 static int hf_gsm_map_Odb_GeneralData_allIC_CallsBarred = -1;
696 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
697 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
698 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_Barred = -1;
699 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
700 static int hf_gsm_map_Odb_GeneralData_registrationAllCF_Barred = -1;
701 static int hf_gsm_map_Odb_GeneralData_registrationCFNotToHPLMN_Barred = -1;
702 static int hf_gsm_map_Odb_GeneralData_registrationInterzonalCF_Barred = -1;
703 static int hf_gsm_map_Odb_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
704 static int hf_gsm_map_Odb_GeneralData_registrationInternationalCF_Barred = -1;
705 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1 = -1;
706 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2 = -1;
707 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3 = -1;
708 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4 = -1;
709 static int hf_gsm_map_ServiceIndicator_clirInvoked = -1;
710 static int hf_gsm_map_ServiceIndicator_camelInvoked = -1;
711 static int hf_gsm_map_T_mw_Status_scAddressNotIncluded = -1;
712 static int hf_gsm_map_T_mw_Status_mnrfSet = -1;
713 static int hf_gsm_map_T_mw_Status_mcefSet = -1;
714 static int hf_gsm_map_T_mw_Status_mnrgSet = -1;
715 static int hf_gsm_map_T_specificCSIDeletedList_o_csi = -1;
716 static int hf_gsm_map_T_specificCSIDeletedList_ss_csi = -1;
717 static int hf_gsm_map_T_specificCSIDeletedList_tif_csi = -1;
718 static int hf_gsm_map_T_specificCSIDeletedList_d_csi = -1;
719 static int hf_gsm_map_T_specificCSIDeletedList_vt_csi = -1;
720 static int hf_gsm_map_T_specificCSIDeletedList_mo_sms_csi = -1;
721 static int hf_gsm_map_T_specificCSIDeletedList_m_csi = -1;
722 static int hf_gsm_map_T_specificCSIDeletedList_gprs_csi = -1;
723 static int hf_gsm_map_T_specificCSIDeletedList_t_csi = -1;
724 static int hf_gsm_map_T_specificCSIDeletedList_mt_sms_csi = -1;
725 static int hf_gsm_map_T_specificCSIDeletedList_mg_csi = -1;
726 static int hf_gsm_map_T_specificCSIDeletedList_o_IM_CSI = -1;
727 static int hf_gsm_map_T_specificCSIDeletedList_d_IM_CSI = -1;
728 static int hf_gsm_map_T_specificCSIDeletedList_vt_IM_CSI = -1;
729 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase1 = -1;
730 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase2 = -1;
731 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase3 = -1;
732 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase4 = -1;
733 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase1 = -1;
734 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase2 = -1;
735 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase3 = -1;
736 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase4 = -1;
737 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_o_csi = -1;
738 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_d_csi = -1;
739 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_vt_csi = -1;
740 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_t_csi = -1;
741 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_mt_sms_csi = -1;
742 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_mg_csi = -1;
743 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_psi_enhancements = -1;
744 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_o_csi = -1;
745 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_d_csi = -1;
746 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_vt_csi = -1;
747 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_t_csi = -1;
748 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_mt_sms_csi = -1;
749 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_mg_csi = -1;
750 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_psi_enhancements = -1;
751
752 /*--- End of included file: packet-gsm_map-hf.c ---*/
753
754
755 /* Initialize the subtree pointers */
756 static gint ett_gsm_map = -1;
757 static gint ett_gsm_map_InvokeId = -1;
758 static gint ett_gsm_map_InvokePDU = -1;
759 static gint ett_gsm_map_ReturnResultPDU = -1;
760 static gint ett_gsm_map_ReturnErrorPDU = -1;
761 static gint ett_gsm_map_ReturnResult_result = -1;
762 static gint ett_gsm_map_ReturnError_result = -1;
763 static gint ett_gsm_map_GSMMAPPDU = -1;
764
765
766 /*--- Included file: packet-gsm_map-ett.c ---*/
767
768 static gint ett_gsm_map_Bss_APDU = -1;
769 static gint ett_gsm_map_An_APDU = -1;
770 static gint ett_gsm_map_SupportedCamelPhases = -1;
771 static gint ett_gsm_map_Vlr_Capability = -1;
772 static gint ett_gsm_map_T_superChargerSupportedInServingNetworkEntity = -1;
773 static gint ett_gsm_map_T_supportedLCS_CapabilitySets = -1;
774 static gint ett_gsm_map_T_offeredCamel4CSIs = -1;
775 static gint ett_gsm_map_UpdateLocationArg = -1;
776 static gint ett_gsm_map_T_add_info = -1;
777 static gint ett_gsm_map_UpdateLocationRes = -1;
778 static gint ett_gsm_map_PrivateExtensionList = -1;
779 static gint ett_gsm_map_PrivateExtension = -1;
780 static gint ett_gsm_map_PcsExtensions = -1;
781 static gint ett_gsm_map_CancelLocationArg = -1;
782 static gint ett_gsm_map_T_identity = -1;
783 static gint ett_gsm_map_T_imsi_WithLMSI = -1;
784 static gint ett_gsm_map_CancelLocationRes = -1;
785 static gint ett_gsm_map_PurgeMS_Arg = -1;
786 static gint ett_gsm_map_PurgeMS_Res = -1;
787 static gint ett_gsm_map_SendIdentificationRes = -1;
788 static gint ett_gsm_map_SendId_authenticationSetList = -1;
789 static gint ett_gsm_map_T_authenticationSetList_item = -1;
790 static gint ett_gsm_map_PrepareHO_Arg = -1;
791 static gint ett_gsm_map_PrepareHandoverV3Arg = -1;
792 static gint ett_gsm_map_T_allowedUMTS_Algorithms = -1;
793 static gint ett_gsm_map_T_radioResourceList = -1;
794 static gint ett_gsm_map_T_radioResourceList_item = -1;
795 static gint ett_gsm_map_T_bssmap_ServiceHandoverList = -1;
796 static gint ett_gsm_map_T_bssmap_ServiceHandoverList_item = -1;
797 static gint ett_gsm_map_T_iuSupportedCodecsList = -1;
798 static gint ett_gsm_map_T_utranCodecList = -1;
799 static gint ett_gsm_map_T_geranCodecList = -1;
800 static gint ett_gsm_map_T_uesbi_Iu = -1;
801 static gint ett_gsm_map_PrepareHO_Res = -1;
802 static gint ett_gsm_map_PrepareHandoverV3Res = -1;
803 static gint ett_gsm_map_T_relocationNumberList = -1;
804 static gint ett_gsm_map_T_relocationNumberList_item = -1;
805 static gint ett_gsm_map_T_selectedUMTS_Algorithms = -1;
806 static gint ett_gsm_map_T_chosenRadioResourceInformation = -1;
807 static gint ett_gsm_map_T_iuAvailableCodecsList = -1;
808 static gint ett_gsm_map_SendEndSignalV9Arg = -1;
809 static gint ett_gsm_map_PrepareSubsequentHO_Arg = -1;
810 static gint ett_gsm_map_SendAuthenticationInfoArgV3 = -1;
811 static gint ett_gsm_map_T_re_synchronisationInfo = -1;
812 static gint ett_gsm_map_SendAuthenticationInfoRes = -1;
813 static gint ett_gsm_map_SendAuthenticationInfoRes_item = -1;
814 static gint ett_gsm_map_SendAuthenticationInfoV3Res = -1;
815 static gint ett_gsm_map_T_authenticationSetList = -1;
816 static gint ett_gsm_map_T_tripletList = -1;
817 static gint ett_gsm_map_T_tripletList_item = -1;
818 static gint ett_gsm_map_T_quintupletList = -1;
819 static gint ett_gsm_map_T_quintupletList_item = -1;
820 static gint ett_gsm_map_CheckIMEIv2Arg = -1;
821 static gint ett_gsm_map_T_requestedEquipmentInfo = -1;
822 static gint ett_gsm_map_ChekIMEIv3Res = -1;
823 static gint ett_gsm_map_T_bmuef = -1;
824 static gint ett_gsm_map_BasicService = -1;
825 static gint ett_gsm_map_BasicServiceGroupList = -1;
826 static gint ett_gsm_map_Odb_GeneralData = -1;
827 static gint ett_gsm_map_Odb_HPLMN_Data = -1;
828 static gint ett_gsm_map_BcsmCamelTDPData = -1;
829 static gint ett_gsm_map_BcsmCamelTDPDataList = -1;
830 static gint ett_gsm_map_O_CSI = -1;
831 static gint ett_gsm_map_InsertSubscriberDataArg = -1;
832 static gint ett_gsm_map_bearerServiceList = -1;
833 static gint ett_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice = -1;
834 static gint ett_gsm_map_T_provisionedSS = -1;
835 static gint ett_gsm_map_T_provisionedSS_item = -1;
836 static gint ett_gsm_map_T_cug_Info = -1;
837 static gint ett_gsm_map_T_cug_SubscriptionList = -1;
838 static gint ett_gsm_map_T_cug_SubscriptionList_item = -1;
839 static gint ett_gsm_map_T_cug_FeatureList = -1;
840 static gint ett_gsm_map_T_cug_FeatureList_item = -1;
841 static gint ett_gsm_map_T_emlpp_Info = -1;
842 static gint ett_gsm_map_T_regionalSubscriptionData = -1;
843 static gint ett_gsm_map_T_vbsSubscriptionData = -1;
844 static gint ett_gsm_map_T_vbsSubscriptionData_item = -1;
845 static gint ett_gsm_map_T_vgcsSubscriptionData = -1;
846 static gint ett_gsm_map_T_vgcsSubscriptionData_item = -1;
847 static gint ett_gsm_map_T_vlrCamelSubscriptionInfo = -1;
848 static gint ett_gsm_map_ss_CSI = -1;
849 static gint ett_gsm_map_T_gprsSubscriptionData = -1;
850 static gint ett_gsm_map_T_gprsDataList = -1;
851 static gint ett_gsm_map_T_gprsDataList_item = -1;
852 static gint ett_gsm_map_T_lsaInformation = -1;
853 static gint ett_gsm_map_T_lsaDataList = -1;
854 static gint ett_gsm_map_T_lsaDataList_item = -1;
855 static gint ett_gsm_map_T_lcsInformation = -1;
856 static gint ett_gsm_map_T_gmlc_List = -1;
857 static gint ett_gsm_map_T_lcs_PrivacyExceptionList = -1;
858 static gint ett_gsm_map_T_lcs_PrivacyExceptionList_item = -1;
859 static gint ett_gsm_map_T_externalClientList = -1;
860 static gint ett_gsm_map_T_externalClientList_item = -1;
861 static gint ett_gsm_map_T_clientIdentity = -1;
862 static gint ett_gsm_map_T_plmnClientList = -1;
863 static gint ett_gsm_map_T_molr_List = -1;
864 static gint ett_gsm_map_T_molr_List_item = -1;
865 static gint ett_gsm_map_InsertSubscriberDataRes = -1;
866 static gint ett_gsm_map_ss_List = -1;
867 static gint ett_gsm_map_Ss_CamelData = -1;
868 static gint ett_gsm_map_T_ss_EventList = -1;
869 static gint ett_gsm_map_CallBarringInfo = -1;
870 static gint ett_gsm_map_CallBarringFeatureList = -1;
871 static gint ett_gsm_map_CallBarringFeatureList_item = -1;
872 static gint ett_gsm_map_ForwardingFeatureList = -1;
873 static gint ett_gsm_map_DestinationNumberCriteria = -1;
874 static gint ett_gsm_map_T_destinationNumberList = -1;
875 static gint ett_gsm_map_T_destinationNumberLengthList = -1;
876 static gint ett_gsm_map_ForwardingInfo = -1;
877 static gint ett_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList = -1;
878 static gint ett_gsm_map_Naea_PreferredCI = -1;
879 static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList = -1;
880 static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1;
881 static gint ett_gsm_map_Ss_SubscriptionOption = -1;
882 static gint ett_gsm_map_DeleteSubscriberDataArg = -1;
883 static gint ett_gsm_map_T_gprsSubscriptionDataWithdraw = -1;
884 static gint ett_gsm_map_T_contextIdList = -1;
885 static gint ett_gsm_map_T_lsaInformationWithdraw = -1;
886 static gint ett_gsm_map_T_lsaIdentityList = -1;
887 static gint ett_gsm_map_DeleteSubscriberDataRes = -1;
888 static gint ett_gsm_map_ResetArg = -1;
889 static gint ett_gsm_map_T_hlr_List = -1;
890 static gint ett_gsm_map_RestoreDataArg = -1;
891 static gint ett_gsm_map_RestoreDataRes = -1;
892 static gint ett_gsm_map_ActivateTraceModeArg = -1;
893 static gint ett_gsm_map_ActivateTraceModeRes = -1;
894 static gint ett_gsm_map_DeactivateTraceModeArg = -1;
895 static gint ett_gsm_map_DeactivateTraceModeRes = -1;
896 static gint ett_gsm_map_SendRoutingInfoArg = -1;
897 static gint ett_gsm_map_T_camelInfo = -1;
898 static gint ett_gsm_map_SendRoutingInfoRes = -1;
899 static gint ett_gsm_map_T_extendedRoutingInfo = -1;
900 static gint ett_gsm_map_T_routingInfo = -1;
901 static gint ett_gsm_map_T_camelRoutingInfo = -1;
902 static gint ett_gsm_map_T_gmscCamelSubscriptionInfo = -1;
903 static gint ett_gsm_map_t_CSI = -1;
904 static gint ett_gsm_map_T_ccbs_Indicators = -1;
905 static gint ett_gsm_map_SubscriberState = -1;
906 static gint ett_gsm_map_LocationInformation = -1;
907 static gint ett_gsm_map_T_cellIdOrLAI = -1;
908 static gint ett_gsm_map_SubscriberInfo = -1;
909 static gint ett_gsm_map_T_locationInformationGPRS = -1;
910 static gint ett_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI = -1;
911 static gint ett_gsm_map_T_ps_SubscriberState = -1;
912 static gint ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging = -1;
913 static gint ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item = -1;
914 static gint ett_gsm_map_T_ps_PDP_ActiveReachableForPaging = -1;
915 static gint ett_gsm_map_T_ps_PDP_ActiveReachableForPaging_item = -1;
916 static gint ett_gsm_map_T_gprs_MS_Class = -1;
917 static gint ett_gsm_map_T_mnpInfoRes = -1;
918 static gint ett_gsm_map_AdditionalSignalInfo = -1;
919 static gint ett_gsm_map_Cug_CheckInfo = -1;
920 static gint ett_gsm_map_ForwardingData = -1;
921 static gint ett_gsm_map_ProvideRoamingNumberArg = -1;
922 static gint ett_gsm_map_ProvideRoamingNumberRes = -1;
923 static gint ett_gsm_map_ResumeCallHandlingArg = -1;
924 static gint ett_gsm_map_T_uu_Data = -1;
925 static gint ett_gsm_map_ResumeCallHandlingRes = -1;
926 static gint ett_gsm_map_ProvideSIWFSNumberArg = -1;
927 static gint ett_gsm_map_ProvideSIWFSNumberRes = -1;
928 static gint ett_gsm_map_SIWFSSignallingModifyArg = -1;
929 static gint ett_gsm_map_SIWFSSignallingModifyRes = -1;
930 static gint ett_gsm_map_SetReportingStateArg = -1;
931 static gint ett_gsm_map_SetReportingStateRes = -1;
932 static gint ett_gsm_map_StatusReportArg = -1;
933 static gint ett_gsm_map_T_eventReportData = -1;
934 static gint ett_gsm_map_T_callReportdata = -1;
935 static gint ett_gsm_map_StatusReportRes = -1;
936 static gint ett_gsm_map_RemoteUserFreeArg = -1;
937 static gint ett_gsm_map_RemoteUserFreeRes = -1;
938 static gint ett_gsm_map_Ss_Data = -1;
939 static gint ett_gsm_map_RegisterSS_Arg = -1;
940 static gint ett_gsm_map_Ss_Info = -1;
941 static gint ett_gsm_map_Ccbs_Feature = -1;
942 static gint ett_gsm_map_Ss_ForBS = -1;
943 static gint ett_gsm_map_InterrogateSS_Res = -1;
944 static gint ett_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList = -1;
945 static gint ett_gsm_map_T_genericServiceInfo = -1;
946 static gint ett_gsm_map_T_ccbs_FeatureList = -1;
947 static gint ett_gsm_map_T_ccbs_FeatureList_item = -1;
948 static gint ett_gsm_map_Ussd_Arg = -1;
949 static gint ett_gsm_map_Ussd_Res = -1;
950 static gint ett_gsm_map_ServiceIndicator = -1;
951 static gint ett_gsm_map_RegisterCC_EntryArg = -1;
952 static gint ett_gsm_map_T_ccbs_Data = -1;
953 static gint ett_gsm_map_RegisterCC_EntryRes = -1;
954 static gint ett_gsm_map_EraseCC_EntryArg = -1;
955 static gint ett_gsm_map_EraseCC_EntryRes = -1;
956 static gint ett_gsm_map_RoutingInfoForSMArg = -1;
957 static gint ett_gsm_map_RoutingInfoForSMRes = -1;
958 static gint ett_gsm_map_T_locationInfoWithLMSI = -1;
959 static gint ett_gsm_map_T_additional_Number = -1;
960 static gint ett_gsm_map_Mo_forwardSM_Arg = -1;
961 static gint ett_gsm_map_Mo_forwardSM_Res = -1;
962 static gint ett_gsm_map_Sm_RP_OA = -1;
963 static gint ett_gsm_map_Sm_RP_DA = -1;
964 static gint ett_gsm_map_Mt_forwardSM_Arg = -1;
965 static gint ett_gsm_map_Mt_forwardSM_Res = -1;
966 static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1;
967 static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1;
968 static gint ett_gsm_map_InformServiceCentreArg = -1;
969 static gint ett_gsm_map_T_mw_Status = -1;
970 static gint ett_gsm_map_AlertServiceCentreArg = -1;
971 static gint ett_gsm_map_ReadyForSM_Arg = -1;
972 static gint ett_gsm_map_ReadyForSM_Res = -1;
973 static gint ett_gsm_map_ProvideSubscriberInfoArg = -1;
974 static gint ett_gsm_map_ProvideSubscriberInfoRes = -1;
975 static gint ett_gsm_map_RequestedInfo = -1;
976 static gint ett_gsm_map_AnyTimeInterrogationArg = -1;
977 static gint ett_gsm_map_AnyTimeInterrogationRes = -1;
978 static gint ett_gsm_map_AnyTimeSubscriptionInterrogationArg = -1;
979 static gint ett_gsm_map_T_requestedSubscriptionInfo = -1;
980 static gint ett_gsm_map_T_requestedSS_Info = -1;
981 static gint ett_gsm_map_AnyTimeSubscriptionInterrogationRes = -1;
982 static gint ett_gsm_map_T_callForwardingData = -1;
983 static gint ett_gsm_map_T_callBarringData = -1;
984 static gint ett_gsm_map_T_odb_Info = -1;
985 static gint ett_gsm_map_T_camel_SubscriptionInfo = -1;
986 static gint ett_gsm_map_T_d_CSI = -1;
987 static gint ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList = -1;
988 static gint ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item = -1;
989 static gint ett_gsm_map_T_vt_CSI = -1;
990 static gint ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList = -1;
991 static gint ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item = -1;
992 static gint ett_gsm_map_T_gprs_CSI = -1;
993 static gint ett_gsm_map_T_gprs_CamelTDPDataList = -1;
994 static gint ett_gsm_map_T_gprs_CamelTDPDataList_item = -1;
995 static gint ett_gsm_map_T_mo_sms_CSI = -1;
996 static gint ett_gsm_map_T_m_CSI = -1;
997 static gint ett_gsm_map_T_specificCSIDeletedList = -1;
998 static gint ett_gsm_map_T_mt_sms_CSI = -1;
999 static gint ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList = -1;
1000 static gint ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item = -1;
1001 static gint ett_gsm_map_T_tpdu_TypeCriterion = -1;
1002 static gint ett_gsm_map_T_mg_csi = -1;
1003 static gint ett_gsm_map_T_o_IM_CSI = -1;
1004 static gint ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList = -1;
1005 static gint ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item = -1;
1006 static gint ett_gsm_map_T_d_IM_CSI = -1;
1007 static gint ett_gsm_map_T_vt_IM_CSI = -1;
1008 static gint ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;
1009 static gint ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item = -1;
1010 static gint ett_gsm_map_T_supportedVLR_CAMEL_Phases = -1;
1011 static gint ett_gsm_map_T_supportedSGSN_CAMEL_Phases = -1;
1012 static gint ett_gsm_map_T_offeredCamel4CSIsInVLR = -1;
1013 static gint ett_gsm_map_T_offeredCamel4CSIsInSGSN = -1;
1014 static gint ett_gsm_map_Sms_CAMEL_TDP_DataList = -1;
1015 static gint ett_gsm_map_Sms_CAMEL_TDP_DataList_item = -1;
1016 static gint ett_gsm_map_T_CauseValueCriteria = -1;
1017 static gint ett_gsm_map_O_CauseValueCriteria = -1;
1018 static gint ett_gsm_map_MobilityTriggers = -1;
1019 static gint ett_gsm_map_BasicServiceCriteria = -1;
1020 static gint ett_gsm_map_BasicServiceCriteria_item = -1;
1021 static gint ett_gsm_map_Dp_AnalysedInfoCriteriaList = -1;
1022 static gint ett_gsm_map_Dp_AnalysedInfoCriteriaList_item = -1;
1023 static gint ett_gsm_map_SubscriberIdentity = -1;
1024 static gint ett_gsm_map_AnyTimeModificationArg = -1;
1025 static gint ett_gsm_map_T_modificationRequestFor_CF_Info = -1;
1026 static gint ett_gsm_map_BasicService_ext = -1;
1027 static gint ett_gsm_map_T_modificationRequestFor_CB_Info = -1;
1028 static gint ett_gsm_map_T_modificationRequestFor_CSI = -1;
1029 static gint ett_gsm_map_T_modificationRequestFor_ODB_data = -1;
1030 static gint ett_gsm_map_AnyTimeModificationRes = -1;
1031 static gint ett_gsm_map_Odb_data = -1;
1032 static gint ett_gsm_map_Ss_InvocationNotificationArg = -1;
1033 static gint ett_gsm_map_T_ss_EventSpecification = -1;
1034 static gint ett_gsm_map_Ss_InvocationNotificationRes = -1;
1035 static gint ett_gsm_map_PrepareGroupCallArg = -1;
1036 static gint ett_gsm_map_PrepareGroupCallRes = -1;
1037 static gint ett_gsm_map_SendGroupCallEndSignalArg = -1;
1038 static gint ett_gsm_map_SendGroupCallEndSignalRes = -1;
1039 static gint ett_gsm_map_ProcessGroupCallSignallingArg = -1;
1040 static gint ett_gsm_map_ForwardGroupCallSignallingArg = -1;
1041 static gint ett_gsm_map_UpdateGprsLocationArg = -1;
1042 static gint ett_gsm_map_T_sgsn_Capability = -1;
1043 static gint ett_gsm_map_UpdateGprsLocationRes = -1;
1044 static gint ett_gsm_map_SendRoutingInfoForGprsArg = -1;
1045 static gint ett_gsm_map_SendRoutingInfoForGprsRes = -1;
1046 static gint ett_gsm_map_FailureReportArg = -1;
1047 static gint ett_gsm_map_FailureReportRes = -1;
1048 static gint ett_gsm_map_NoteMsPresentForGprsArg = -1;
1049 static gint ett_gsm_map_NoteMsPresentForGprsRes = -1;
1050 static gint ett_gsm_map_LcsClientExternalID = -1;
1051 static gint ett_gsm_map_LcsClientName = -1;
1052 static gint ett_gsm_map_Lcs_ClientID = -1;
1053 static gint ett_gsm_map_LcsLocationInfo = -1;
1054 static gint ett_gsm_map_ProvideSubscriberLocation_Arg = -1;
1055 static gint ett_gsm_map_T_locationType = -1;
1056 static gint ett_gsm_map_T_lcs_QoS = -1;
1057 static gint ett_gsm_map_T_responseTime = -1;
1058 static gint ett_gsm_map_ProvideSubscriberLocation_Res = -1;
1059 static gint ett_gsm_map_TargetMS = -1;
1060 static gint ett_gsm_map_RoutingInfoForLCS_Arg = -1;
1061 static gint ett_gsm_map_RoutingInfoForLCS_Res = -1;
1062 static gint ett_gsm_map_SubscriberLocationReport_Arg = -1;
1063 static gint ett_gsm_map_SubscriberLocationReport_Res = -1;
1064 static gint ett_gsm_map_SystemFailureParam = -1;
1065 static gint ett_gsm_map_T_extensibleSystemFailureParam = -1;
1066 static gint ett_gsm_map_DataMissingParam = -1;
1067 static gint ett_gsm_map_UnexpectedDataParam = -1;
1068 static gint ett_gsm_map_FacilityNotSupParam = -1;
1069 static gint ett_gsm_map_IncompatibleTerminalParam = -1;
1070 static gint ett_gsm_map_ResourceLimitationParam = -1;
1071 static gint ett_gsm_map_UnknownSubscriberParam = -1;
1072 static gint ett_gsm_map_NumberChangedParam = -1;
1073 static gint ett_gsm_map_UnidentifiedSubParam = -1;
1074 static gint ett_gsm_map_RoamingNotAllowedParam = -1;
1075 static gint ett_gsm_map_IllegalSubscriberParam = -1;
1076 static gint ett_gsm_map_IllegalEquipmentParam = -1;
1077 static gint ett_gsm_map_BearerServNotProvParam = -1;
1078 static gint ett_gsm_map_TeleservNotProvParam = -1;
1079 static gint ett_gsm_map_TracingBufferFullParam = -1;
1080 static gint ett_gsm_map_NoRoamingNbParam = -1;
1081 static gint ett_gsm_map_AbsentSubscriberParam = -1;
1082 static gint ett_gsm_map_BusySubscriberParam = -1;
1083 static gint ett_gsm_map_NoSubscriberReplyParam = -1;
1084 static gint ett_gsm_map_CallBarredParam = -1;
1085 static gint ett_gsm_map_T_extensibleCallBarredParam = -1;
1086 static gint ett_gsm_map_ForwardingFailedParam = -1;
1087 static gint ett_gsm_map_Or_NotAllowedParam = -1;
1088 static gint ett_gsm_map_ForwardingViolationParam = -1;
1089 static gint ett_gsm_map_Cug_RejectParam = -1;
1090 static gint ett_gsm_map_Ati_NotAllowedParam = -1;
1091 static gint ett_gsm_map_NoGroupCallNbParam = -1;
1092 static gint ett_gsm_map_Ss_IncompatibilityCause = -1;
1093 static gint ett_gsm_map_ShortTermDenialParam = -1;
1094 static gint ett_gsm_map_LongTermDenialParam = -1;
1095 static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
1096 static gint ett_gsm_map_Sm_DeliveryFailureCause = -1;
1097 static gint ett_gsm_map_MessageWaitListFullParam = -1;
1098 static gint ett_gsm_map_AbsentSubscriberSM_Param = -1;
1099 static gint ett_gsm_map_UnauthorizedRequestingNetwork_Param = -1;
1100 static gint ett_gsm_map_UnauthorizedLCSClient_Param = -1;
1101 static gint ett_gsm_map_PositionMethodFailure_Param = -1;
1102 static gint ett_gsm_map_UnknownOrUnreachableLCSClient_Param = -1;
1103 static gint ett_gsm_map_ExtensionContainer = -1;
1104
1105 /*--- End of included file: packet-gsm_map-ett.c ---*/
1106
1107
1108 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
1109 static dissector_handle_t data_handle;
1110
1111 /* Preferenc settings default */
1112 #define MAX_SSN 254
1113 static range_t *global_ssn_range;
1114 static range_t *ssn_range;
1115 dissector_handle_t      map_handle;
1116
1117 /* Global variables */
1118
1119 static proto_tree *top_tree;
1120 static int application_context_version;
1121 gint protocolId;
1122 static int gsm_map_tap = -1;
1123
1124
1125 char*
1126 unpack_digits(tvbuff_t *tvb, int offset){
1127
1128         int length;
1129         guint8 octet;
1130         int i=0;
1131         char *digit_str;
1132
1133         length = tvb_length(tvb);
1134         if (length < offset)
1135                 return NULL;
1136         length = length - offset;
1137         digit_str = g_malloc(length*2+1);
1138
1139         while ( offset <= length ){
1140
1141                 octet = tvb_get_guint8(tvb,offset);
1142                 digit_str[i] = ((octet & 0x0f) + 0x30);
1143                 i++;
1144
1145                 /*
1146                  * unpack second value in byte
1147                  */
1148                 octet = octet >> 4;
1149
1150                 if (octet == 0x0f)      /* odd number bytes - hit filler */
1151                         break;
1152
1153                 digit_str[i] = ((octet & 0x0f) + 0x30);
1154                 i++;
1155                 offset++;
1156
1157         }
1158         digit_str[i]= '\0';
1159         return digit_str;
1160 }
1161
1162
1163
1164 /*--- Included file: packet-gsm_map-fn.c ---*/
1165
1166 /*--- Fields for imported types ---*/
1167
1168
1169
1170 static const value_string gsm_map_ProtocolId_vals[] = {
1171   {   1, "gsm-0408" },
1172   {   2, "gsm-0806" },
1173   {   3, "gsm-BSSMAP" },
1174   {   4, "ets-300102-1" },
1175   { 0, NULL }
1176 };
1177
1178
1179 static int
1180 dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1181
1182   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &protocolId);
1183
1184
1185   return offset;
1186 }
1187 static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1188   return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protocolId);
1189 }
1190
1191
1192 static int
1193 dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1194
1195  tvbuff_t       *parameter_tvb;
1196  guint8         octet;
1197  guint8         length;
1198
1199  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1200                                     &parameter_tvb);
1201  if (!parameter_tvb)
1202         return offset;
1203  switch (protocolId){
1204         /* gsm-0408 */
1205         case 1:
1206                 break;
1207         /* gsm-0806 */
1208         case 2:
1209                 break;
1210         /* gsm-BSSMAP */
1211         case 3:
1212                 break;
1213         /* ets-300102-1 (~Q.931 ) */
1214         case 4:
1215                 octet = tvb_get_guint8(parameter_tvb,0);
1216                 length = tvb_get_guint8(parameter_tvb,1);
1217                 if ( octet == 4 )
1218                         dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree);
1219                 break;
1220         default:
1221                 break;
1222 }
1223
1224   return offset;
1225 }
1226 static int dissect_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1227   return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo);
1228 }
1229
1230
1231 static int
1232 dissect_gsm_map_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1233   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
1234                                          hf_index, NULL);
1235
1236   return offset;
1237 }
1238 static int dissect_extId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1239   return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extId);
1240 }
1241
1242
1243
1244 static int
1245 dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1246
1247   proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
1248   call_dissector(data_handle, tvb, pinfo, tree);        
1249   offset = tvb_length_remaining(tvb,offset);            
1250
1251
1252   return offset;
1253 }
1254 static int dissect_extType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1255   return dissect_gsm_map_T_extType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extType);
1256 }
1257
1258 static const ber_sequence_t PrivateExtension_sequence[] = {
1259   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId },
1260   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extType },
1261   { 0, 0, 0, NULL }
1262 };
1263
1264 static int
1265 dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1266   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1267                                 PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
1268
1269   return offset;
1270 }
1271 static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1272   return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_PrivateExtensionList_item);
1273 }
1274
1275 static const ber_sequence_t PrivateExtensionList_sequence_of[1] = {
1276   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
1277 };
1278
1279 static int
1280 dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1281   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1282                                    PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
1283
1284   return offset;
1285 }
1286 static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1287   return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privateExtensionList);
1288 }
1289
1290 static const ber_sequence_t PcsExtensions_sequence[] = {
1291   { 0, 0, 0, NULL }
1292 };
1293
1294 static int
1295 dissect_gsm_map_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1296   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1297                                 PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
1298
1299   return offset;
1300 }
1301 static int dissect_pcsExtensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1302   return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pcsExtensions);
1303 }
1304
1305 static const ber_sequence_t ExtensionContainer_sequence[] = {
1306   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
1307   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
1308   { 0, 0, 0, NULL }
1309 };
1310
1311 static int
1312 dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1313   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1314                                 ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
1315
1316   return offset;
1317 }
1318 static int dissect_extensionContainer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1319   return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
1320 }
1321 static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1322   return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
1323 }
1324
1325 static const ber_sequence_t Bss_APDU_sequence[] = {
1326   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
1327   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
1328   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1329   { 0, 0, 0, NULL }
1330 };
1331
1332 static int
1333 dissect_gsm_map_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1334   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1335                                 Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
1336
1337   return offset;
1338 }
1339 static int dissect_bss_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1340   return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bss_APDU);
1341 }
1342 static int dissect_networkSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1343   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkSignalInfo);
1344 }
1345 static int dissect_gsm_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1346   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsm_BearerCapability);
1347 }
1348 static int dissect_isdn_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1349   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_isdn_BearerCapability);
1350 }
1351 static int dissect_chosenChannel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1352   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenChannel);
1353 }
1354 static int dissect_lowerLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1355   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lowerLayerCompatibility);
1356 }
1357 static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1358   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_highLayerCompatibility);
1359 }
1360 static int dissect_channelType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1361   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_channelType);
1362 }
1363 static int dissect_callInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1364   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callInfo);
1365 }
1366
1367
1368 static const value_string gsm_map_T_accessNetworkProtocolId_vals[] = {
1369   {   1, "ts3G-48006" },
1370   {   2, "ts3G-25413" },
1371   { 0, NULL }
1372 };
1373
1374
1375 static int
1376 dissect_gsm_map_T_accessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1377   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1378
1379   return offset;
1380 }
1381 static int dissect_accessNetworkProtocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1382   return dissect_gsm_map_T_accessNetworkProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_accessNetworkProtocolId);
1383 }
1384
1385
1386 static int
1387 dissect_gsm_map_SignalInfo2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1388   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1389                                     NULL);
1390
1391   return offset;
1392 }
1393 static int dissect_signalInfo2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1394   return dissect_gsm_map_SignalInfo2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo2);
1395 }
1396
1397 static const ber_sequence_t An_APDU_sequence[] = {
1398   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_accessNetworkProtocolId },
1399   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo2 },
1400   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1401   { 0, 0, 0, NULL }
1402 };
1403
1404 static int
1405 dissect_gsm_map_An_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1406   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1407                                 An_APDU_sequence, hf_index, ett_gsm_map_An_APDU);
1408
1409   return offset;
1410 }
1411 static int dissect_an_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1412   return dissect_gsm_map_An_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_an_APDU);
1413 }
1414 static int dissect_an_APDU_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1415   return dissect_gsm_map_An_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_an_APDU);
1416 }
1417
1418 static const asn_namedbit SupportedCamelPhases_bits[] = {
1419   {  0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, NULL, NULL },
1420   {  1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, NULL, NULL },
1421   {  2, &hf_gsm_map_SupportedCamelPhases_phase3, -1, -1, NULL, NULL },
1422   {  3, &hf_gsm_map_SupportedCamelPhases_phase4, -1, -1, NULL, NULL },
1423   { 0, NULL, 0, 0, NULL, NULL }
1424 };
1425
1426 static int
1427 dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1428   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1429                                  SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
1430                                  NULL);
1431
1432   return offset;
1433 }
1434 static int dissect_supportedCamelPhases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1435   return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
1436 }
1437 static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1438   return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
1439 }
1440 static int dissect_supportedCamelPhasesInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1441   return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInGMSC);
1442 }
1443
1444
1445 static int
1446 dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1447   { proto_item *ti_tmp;
1448   ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
1449   proto_item_append_text(ti_tmp, ": NULL");
1450   }
1451
1452   return offset;
1453 }
1454 static int dissect_solsaSupportIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1455   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
1456 }
1457 static int dissect_solsaSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1458   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
1459 }
1460 static int dissect_sendSubscriberData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1461   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sendSubscriberData);
1462 }
1463 static int dissect_longFTN_Supported_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1464   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_longFTN_Supported);
1465 }
1466 static int dissect_informPreviousNetworkEntity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1467   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_informPreviousNetworkEntity);
1468 }
1469 static int dissect_cs_LCS_NotSupportedByUE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1470   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cs_LCS_NotSupportedByUE);
1471 }
1472 static int dissect_skipSubscriberDataUpdate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1473   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_skipSubscriberDataUpdate);
1474 }
1475 static int dissect_freezeTMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1476   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeTMSI);
1477 }
1478 static int dissect_freezeP_TMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1479   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeP_TMSI);
1480 }
1481 static int dissect_ho_NumberNotRequired(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1482   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ho_NumberNotRequired);
1483 }
1484 static int dissect_multipleBearerRequested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1485   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_multipleBearerRequested);
1486 }
1487 static int dissect_rab_ConfigurationIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1488   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_rab_ConfigurationIndicator);
1489 }
1490 static int dissect_multipleBearerNotSupported(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1491   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_multipleBearerNotSupported);
1492 }
1493 static int dissect_segmentationProhibited(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1494   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_segmentationProhibited);
1495 }
1496 static int dissect_immediateResponsePreferred_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1497   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_immediateResponsePreferred);
1498 }
1499 static int dissect_roamingRestrictionDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1500   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictionDueToUnsupportedFeature);
1501 }
1502 static int dissect_broadcastInitEntitlement(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1503   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_broadcastInitEntitlement);
1504 }
1505 static int dissect_tif_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1506   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tif_CSI);
1507 }
1508 static int dissect_completeDataListIncluded(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1509   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_completeDataListIncluded);
1510 }
1511 static int dissect_vplmnAddressAllowed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1512   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vplmnAddressAllowed);
1513 }
1514 static int dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1515   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature);
1516 }
1517 static int dissect_lsaActiveModeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1518   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaActiveModeIndicator);
1519 }
1520 static int dissect_lmu_Indicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1521   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmu_Indicator);
1522 }
1523 static int dissect_vbsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1524   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsGroupIndication);
1525 }
1526 static int dissect_vgcsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1527   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsGroupIndication);
1528 }
1529 static int dissect_camelSubscriptionInfoWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1530   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelSubscriptionInfoWithdraw);
1531 }
1532 static int dissect_allGPRSData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1533   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allGPRSData);
1534 }
1535 static int dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1536   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature);
1537 }
1538 static int dissect_allLSAData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1539   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allLSAData);
1540 }
1541 static int dissect_gmlc_ListWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1542   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_ListWithdraw);
1543 }
1544 static int dissect_msNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1545   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msNotReachable);
1546 }
1547 static int dissect_or_Interrogation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1548   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Interrogation);
1549 }
1550 static int dissect_suppress_T_CSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1551   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_suppress_T_CSI);
1552 }
1553 static int dissect_suppressionOfAnnouncement_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1554   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_suppressionOfAnnouncement);
1555 }
1556 static int dissect_ccbs_Call_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1557   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Call);
1558 }
1559 static int dissect_cugSubscriptionFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1560   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cugSubscriptionFlag);
1561 }
1562 static int dissect_forwardingInterrogationRequired_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1563   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInterrogationRequired);
1564 }
1565 static int dissect_ccbs_Possible_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1566   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Possible);
1567 }
1568 static int dissect_keepCCBS_CallIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1569   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_keepCCBS_CallIndicator);
1570 }
1571 static int dissect_assumedIdle_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1572   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_assumedIdle);
1573 }
1574 static int dissect_camelBusy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1575   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelBusy);
1576 }
1577 static int dissect_notProvidedFromVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1578   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notProvidedFromVLR);
1579 }
1580 static int dissect_currentLocationRetrieved_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1581   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_currentLocationRetrieved);
1582 }
1583 static int dissect_sai_Present_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1584   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sai_Present);
1585 }
1586 static int dissect_notProvidedFromSGSN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1587   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notProvidedFromSGSN);
1588 }
1589 static int dissect_ps_Detached_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1590   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_Detached);
1591 }
1592 static int dissect_ps_AttachedNotReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1593   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_AttachedNotReachableForPaging);
1594 }
1595 static int dissect_ps_AttachedReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1596   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_AttachedReachableForPaging);
1597 }
1598 static int dissect_pdp_ContextActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1599   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextActive);
1600 }
1601 static int dissect_cug_OutgoingAccess(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1602   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_OutgoingAccess);
1603 }
1604 static int dissect_orNotSupportedInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1605   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_orNotSupportedInGMSC);
1606 }
1607 static int dissect_uusCFInteraction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1608   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uusCFInteraction);
1609 }
1610 static int dissect_allInformationSent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1611   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allInformationSent);
1612 }
1613 static int dissect_replaceB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1614   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_replaceB_Number);
1615 }
1616 static int dissect_gprsSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1617   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSupportIndicator);
1618 }
1619 static int dissect_gprsNodeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1620   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsNodeIndicator);
1621 }
1622 static int dissect_noSM_RP_OA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1623   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_OA);
1624 }
1625 static int dissect_noSM_RP_DA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1626   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_DA);
1627 }
1628 static int dissect_moreMessagesToSend(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1629   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_moreMessagesToSend);
1630 }
1631 static int dissect_deliveryOutcomeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1632   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_deliveryOutcomeIndicator);
1633 }
1634 static int dissect_alertReasonIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1635   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReasonIndicator);
1636 }
1637 static int dissect_locationInformationFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1638   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformationFlag);
1639 }
1640 static int dissect_subscriberStateFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1641   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStateFlag);
1642 }
1643 static int dissect_currentLocation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1644   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_currentLocation);
1645 }
1646 static int dissect_imei_flg_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1647   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei_flg);
1648 }
1649 static int dissect_ms_classmark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1650   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ms_classmark);
1651 }
1652 static int dissect_mnpRequestedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1653   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mnpRequestedInfo);
1654 }
1655 static int dissect_odb_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1656   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb);
1657 }
1658 static int dissect_supportedVLR_CAMEL_Phases_flg_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1659   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedVLR_CAMEL_Phases_flg);
1660 }
1661 static int dissect_supportedSGSN_CAMEL_Phases_flg_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1662   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases_flg);
1663 }
1664 static int dissect_notificationToCSE(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1665   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToCSE);
1666 }
1667 static int dissect_notificationToCSE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1668   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToCSE);
1669 }
1670 static int dissect_csi_Active_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1671   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_csi_Active);
1672 }
1673 static int dissect_tif_CSI_NotificationToCSE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1674   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tif_CSI_NotificationToCSE);
1675 }
1676 static int dissect_csiActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1677   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_csiActive);
1678 }
1679 static int dissect_uplinkFree_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1680   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkFree);
1681 }
1682 static int dissect_uplinkRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1683   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequest);
1684 }
1685 static int dissect_uplinkReleaseIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1686   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseIndication);
1687 }
1688 static int dissect_releaseGroupCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1689   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_releaseGroupCall);
1690 }
1691 static int dissect_uplinkRequestAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1692   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequestAck);
1693 }
1694 static int dissect_uplinkRejectCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1695   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRejectCommand);
1696 }
1697 static int dissect_uplinkSeizedCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1698   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkSeizedCommand);
1699 }
1700 static int dissect_uplinkReleaseCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1701   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseCommand);
1702 }
1703 static int dissect_privacyOverride_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1704   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privacyOverride);
1705 }
1706 static int dissect_verticalCoordinateRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1707   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_verticalCoordinateRequest);
1708 }
1709 static int dissect_ccbs_Busy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1710   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Busy);
1711 }
1712 static int dissect_unauthorisedMessageOriginator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1713   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorisedMessageOriginator);
1714 }
1715 static int dissect_gprsConnectionSuspended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1716   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsConnectionSuspended);
1717 }
1718
1719
1720 static const value_string gsm_map_T_istSupportIndicator_vals[] = {
1721   {   0, "basicISTSupported" },
1722   {   1, "istCommandSupported" },
1723   { 0, NULL }
1724 };
1725
1726
1727 static int
1728 dissect_gsm_map_T_istSupportIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1729   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1730
1731   return offset;
1732 }
1733 static int dissect_istSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1734   return dissect_gsm_map_T_istSupportIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_istSupportIndicator);
1735 }
1736
1737
1738 static int
1739 dissect_gsm_map_OCTET_STRING_SIZE_1_6(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1740   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1741                                     NULL);
1742
1743   return offset;
1744 }
1745 static int dissect_subscriberDataStored_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1746   return dissect_gsm_map_OCTET_STRING_SIZE_1_6(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberDataStored);
1747 }
1748
1749
1750 static const value_string gsm_map_T_superChargerSupportedInServingNetworkEntity_vals[] = {
1751   {   0, "sendSubscriberData" },
1752   {   1, "subscriberDataStored" },
1753   { 0, NULL }
1754 };
1755
1756 static const ber_choice_t T_superChargerSupportedInServingNetworkEntity_choice[] = {
1757   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendSubscriberData_impl },
1758   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_subscriberDataStored_impl },
1759   { 0, 0, 0, 0, NULL }
1760 };
1761
1762 static int
1763 dissect_gsm_map_T_superChargerSupportedInServingNetworkEntity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1764   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1765                               T_superChargerSupportedInServingNetworkEntity_choice, hf_index, ett_gsm_map_T_superChargerSupportedInServingNetworkEntity);
1766
1767   return offset;
1768 }
1769 static int dissect_superChargerSupportedInServingNetworkEntity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1770   return dissect_gsm_map_T_superChargerSupportedInServingNetworkEntity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity);
1771 }
1772
1773 static const asn_namedbit T_supportedLCS_CapabilitySets_bits[] = {
1774   {  0, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, NULL, NULL },
1775   {  1, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, NULL, NULL },
1776   {  2, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, NULL, NULL },
1777   {  3, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, NULL, NULL },
1778   { 0, NULL, 0, 0, NULL, NULL }
1779 };
1780
1781 static int
1782 dissect_gsm_map_T_supportedLCS_CapabilitySets(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1783   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1784                                  T_supportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_T_supportedLCS_CapabilitySets,
1785                                  NULL);
1786
1787   return offset;
1788 }
1789 static int dissect_supportedLCS_CapabilitySets_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1790   return dissect_gsm_map_T_supportedLCS_CapabilitySets(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedLCS_CapabilitySets);
1791 }
1792
1793 static const asn_namedbit T_offeredCamel4CSIs_bits[] = {
1794   {  0, &hf_gsm_map_T_offeredCamel4CSIs_o_csi, -1, -1, NULL, NULL },
1795   {  1, &hf_gsm_map_T_offeredCamel4CSIs_d_csi, -1, -1, NULL, NULL },
1796   {  2, &hf_gsm_map_T_offeredCamel4CSIs_vt_csi, -1, -1, NULL, NULL },
1797   {  3, &hf_gsm_map_T_offeredCamel4CSIs_t_csi, -1, -1, NULL, NULL },
1798   {  4, &hf_gsm_map_T_offeredCamel4CSIs_mt_sms_csi, -1, -1, NULL, NULL },
1799   {  5, &hf_gsm_map_T_offeredCamel4CSIs_mg_csi, -1, -1, NULL, NULL },
1800   {  6, &hf_gsm_map_T_offeredCamel4CSIs_psi_enhancements, -1, -1, NULL, NULL },
1801   { 0, NULL, 0, 0, NULL, NULL }
1802 };
1803
1804 static int
1805 dissect_gsm_map_T_offeredCamel4CSIs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1806   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1807                                  T_offeredCamel4CSIs_bits, hf_index, ett_gsm_map_T_offeredCamel4CSIs,
1808                                  NULL);
1809
1810   return offset;
1811 }
1812 static int dissect_offeredCamel4CSIs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1813   return dissect_gsm_map_T_offeredCamel4CSIs(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIs);
1814 }
1815
1816 static const ber_sequence_t Vlr_Capability_sequence[] = {
1817   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
1818   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1819   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_solsaSupportIndicator_impl },
1820   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istSupportIndicator_impl },
1821   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_superChargerSupportedInServingNetworkEntity },
1822   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
1823   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl },
1824   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl },
1825   { 0, 0, 0, NULL }
1826 };
1827
1828 static int
1829 dissect_gsm_map_Vlr_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1830   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1831                                 Vlr_Capability_sequence, hf_index, ett_gsm_map_Vlr_Capability);
1832
1833   return offset;
1834 }
1835 static int dissect_vlr_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1836   return dissect_gsm_map_Vlr_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Capability);
1837 }
1838
1839
1840 static int
1841 dissect_gsm_map_Imsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1842
1843  tvbuff_t       *parameter_tvb;
1844  char           *digit_str;
1845
1846  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1847                                     &parameter_tvb);
1848  if (!parameter_tvb)
1849         return offset;
1850
1851  digit_str = unpack_digits(parameter_tvb, 0);
1852
1853  proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str);
1854  if (digit_str)
1855         g_free(digit_str);
1856  
1857
1858
1859
1860   return offset;
1861 }
1862 static int dissect_imsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1863   return dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
1864 }
1865 static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1866   return dissect_gsm_map_Imsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
1867 }
1868
1869
1870 static int
1871 dissect_gsm_map_Lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1872   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1873                                     NULL);
1874
1875   return offset;
1876 }
1877 static int dissect_lmsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1878   return dissect_gsm_map_Lmsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
1879 }
1880 static int dissect_lmsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1881   return dissect_gsm_map_Lmsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
1882 }
1883
1884
1885 static int
1886 dissect_gsm_map_Msc_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1887   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1888                                     NULL);
1889
1890   return offset;
1891 }
1892 static int dissect_msc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1893   return dissect_gsm_map_Msc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
1894 }
1895 static int dissect_msc_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1896   return dissect_gsm_map_Msc_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
1897 }
1898
1899
1900 static int
1901 dissect_gsm_map_Vlr_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1902   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1903                                     NULL);
1904
1905   return offset;
1906 }
1907 static int dissect_vlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1908   return dissect_gsm_map_Vlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
1909 }
1910 static int dissect_vlr_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1911   return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
1912 }
1913 static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1914   return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_number);
1915 }
1916
1917
1918 static int
1919 dissect_gsm_map_OCTET_STRING_SIZE_5_17(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1920   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1921                                     NULL);
1922
1923   return offset;
1924 }
1925 static int dissect_v_gmlc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1926   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_v_gmlc_Address);
1927 }
1928 static int dissect_rnc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1929   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_rnc_Address);
1930 }
1931 static int dissect_sgsn_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1932   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
1933 }
1934 static int dissect_sgsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1935   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
1936 }
1937
1938
1939 static int
1940 dissect_gsm_map_OCTET_STRING_SIZE_8(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1941   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1942                                     NULL);
1943
1944   return offset;
1945 }
1946 static int dissect_imeisv_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1947   return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imeisv);
1948 }
1949 static int dissect_kc(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1950   return dissect_gsm_map_OCTET_STRING_SIZE_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_kc);
1951 }
1952 static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1953   return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geographicalInformation);
1954 }
1955 static int dissect_groupKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1956   return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKey);
1957 }
1958
1959 static const ber_sequence_t T_add_info_sequence[] = {
1960   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imeisv_impl },
1961   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_skipSubscriberDataUpdate_impl },
1962   { 0, 0, 0, NULL }
1963 };
1964
1965 static int
1966 dissect_gsm_map_T_add_info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1967   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1968                                 T_add_info_sequence, hf_index, ett_gsm_map_T_add_info);
1969
1970   return offset;
1971 }
1972 static int dissect_add_info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1973   return dissect_gsm_map_T_add_info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_add_info);
1974 }
1975
1976 static const ber_sequence_t UpdateLocationArg_sequence[] = {
1977   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1978   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
1979   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_vlr_Number },
1980   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
1981   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1982   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
1983   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_informPreviousNetworkEntity_impl },
1984   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cs_LCS_NotSupportedByUE_impl },
1985   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_v_gmlc_Address_impl },
1986   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_info_impl },
1987   { 0, 0, 0, NULL }
1988 };
1989
1990 static int
1991 dissect_gsm_map_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1992   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1993                                 UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
1994
1995   return offset;
1996 }
1997
1998
1999 static int
2000 dissect_gsm_map_Hlr_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2001
2002  tvbuff_t       *parameter_tvb;
2003  char           *digit_str;
2004
2005  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2006                                     &parameter_tvb);
2007
2008  if (!parameter_tvb)
2009         return offset;
2010
2011  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
2012  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
2013  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
2014
2015  digit_str = unpack_digits(parameter_tvb, 1);
2016
2017  proto_tree_add_string(tree, hf_gsm_map_map_hlr_number_digits, parameter_tvb, 1, -1, digit_str);
2018  if (digit_str)
2019         g_free(digit_str);
2020
2021   return offset;
2022 }
2023 static int dissect_hlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2024   return dissect_gsm_map_Hlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_Number);
2025 }
2026
2027 static const ber_sequence_t UpdateLocationRes_sequence[] = {
2028   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
2029   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2030   { 0, 0, 0, NULL }
2031 };
2032
2033 static int
2034 dissect_gsm_map_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2035   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2036                                 UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
2037
2038   return offset;
2039 }
2040
2041
2042 static int
2043 dissect_gsm_map_Teleservice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2044   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2045                                     NULL);
2046
2047   return offset;
2048 }
2049 static int dissect_teleservice(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2050   return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
2051 }
2052 static int dissect_teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2053   return dissect_gsm_map_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
2054 }
2055 static int dissect_teleserviceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2056   return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList_item);
2057 }
2058
2059
2060 static const value_string gsm_map_CancellationType_vals[] = {
2061   {   0, "updateProcedure" },
2062   {   1, "subscriptionWithdraw" },
2063   { 0, NULL }
2064 };
2065
2066
2067 static int
2068 dissect_gsm_map_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2069   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2070
2071   return offset;
2072 }
2073 static int dissect_cancellationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2074   return dissect_gsm_map_CancellationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cancellationType);
2075 }
2076
2077 static const ber_sequence_t T_imsi_WithLMSI_sequence[] = {
2078   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2079   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi },
2080   { 0, 0, 0, NULL }
2081 };
2082
2083 static int
2084 dissect_gsm_map_T_imsi_WithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2085   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2086                                 T_imsi_WithLMSI_sequence, hf_index, ett_gsm_map_T_imsi_WithLMSI);
2087
2088   return offset;
2089 }
2090 static int dissect_imsi_WithLMSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2091   return dissect_gsm_map_T_imsi_WithLMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi_WithLMSI);
2092 }
2093
2094
2095 static const value_string gsm_map_T_identity_vals[] = {
2096   {   0, "imsi" },
2097   {   1, "imsi-WithLMSI" },
2098   { 0, NULL }
2099 };
2100
2101 static const ber_choice_t T_identity_choice[] = {
2102   {   0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2103   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
2104   { 0, 0, 0, 0, NULL }
2105 };
2106
2107 static int
2108 dissect_gsm_map_T_identity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2109   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2110                               T_identity_choice, hf_index, ett_gsm_map_T_identity);
2111
2112   return offset;
2113 }
2114 static int dissect_identity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2115   return dissect_gsm_map_T_identity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_identity);
2116 }
2117
2118 static const ber_sequence_t CancelLocationArg_sequence[] = {
2119   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
2120   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType },
2121   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2122   { 0, 0, 0, NULL }
2123 };
2124
2125 static int
2126 dissect_gsm_map_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2127   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2128                                 CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
2129
2130   return offset;
2131 }
2132
2133 static const ber_sequence_t CancelLocationRes_sequence[] = {
2134   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2135   { 0, 0, 0, NULL }
2136 };
2137
2138 static int
2139 dissect_gsm_map_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2140   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2141                                 CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
2142
2143   return offset;
2144 }
2145
2146
2147 static int
2148 dissect_gsm_map_Sgsn_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2149   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2150                                     NULL);
2151
2152   return offset;
2153 }
2154 static int dissect_sgsn_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2155   return dissect_gsm_map_Sgsn_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
2156 }
2157 static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2158   return dissect_gsm_map_Sgsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
2159 }
2160
2161 static const ber_sequence_t PurgeMS_Arg_sequence[] = {
2162   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2163   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
2164   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
2165   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2166   { 0, 0, 0, NULL }
2167 };
2168
2169 static int
2170 dissect_gsm_map_PurgeMS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2171   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2172                                 PurgeMS_Arg_sequence, hf_index, ett_gsm_map_PurgeMS_Arg);
2173
2174   return offset;
2175 }
2176
2177 static const ber_sequence_t PurgeMS_Res_sequence[] = {
2178   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl },
2179   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl },
2180   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2181   { 0, 0, 0, NULL }
2182 };
2183
2184 static int
2185 dissect_gsm_map_PurgeMS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2186   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2187                                 PurgeMS_Res_sequence, hf_index, ett_gsm_map_PurgeMS_Res);
2188
2189   return offset;
2190 }
2191
2192
2193 static int
2194 dissect_gsm_map_Tmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2195   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2196                                     NULL);
2197
2198   return offset;
2199 }
2200
2201
2202 static int
2203 dissect_gsm_map_OCTET_STRING_SIZE_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2204   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2205                                     NULL);
2206
2207   return offset;
2208 }
2209 static int dissect_rand(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2210   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_rand);
2211 }
2212 static int dissect_ck(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2213   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ck);
2214 }
2215 static int dissect_ik(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2216   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ik);
2217 }
2218 static int dissect_autn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2219   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_autn);
2220 }
2221
2222
2223 static int
2224 dissect_gsm_map_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2225   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2226                                     NULL);
2227
2228   return offset;
2229 }
2230 static int dissect_sres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2231   return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sres);
2232 }
2233 static int dissect_cug_Interlock(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2234   return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Interlock);
2235 }
2236 static int dissect_teid_ForGnAndGp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2237   return dissect_gsm_map_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teid_ForGnAndGp);
2238 }
2239 static int dissect_teid_ForIu_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2240   return dissect_gsm_map_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teid_ForIu);
2241 }
2242 static int dissect_chargingId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2243   return dissect_gsm_map_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chargingId);
2244 }
2245
2246 static const ber_sequence_t T_authenticationSetList_item_sequence[] = {
2247   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
2248   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
2249   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
2250   { 0, 0, 0, NULL }
2251 };
2252
2253 static int
2254 dissect_gsm_map_T_authenticationSetList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2255   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2256                                 T_authenticationSetList_item_sequence, hf_index, ett_gsm_map_T_authenticationSetList_item);
2257
2258   return offset;
2259 }
2260 static int dissect_authenticationSetList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2261   return dissect_gsm_map_T_authenticationSetList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList_item);
2262 }
2263
2264 static const ber_sequence_t SendId_authenticationSetList_sequence_of[1] = {
2265   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_authenticationSetList_item },
2266 };
2267
2268 static int
2269 dissect_gsm_map_SendId_authenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2270   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2271                                    SendId_authenticationSetList_sequence_of, hf_index, ett_gsm_map_SendId_authenticationSetList);
2272
2273   return offset;
2274 }
2275 static int dissect_sendId_authenticationSetList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2276   return dissect_gsm_map_SendId_authenticationSetList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sendId_authenticationSetList);
2277 }
2278
2279 static const ber_sequence_t SendIdentificationRes_sequence[] = {
2280   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2281   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sendId_authenticationSetList },
2282   { 0, 0, 0, NULL }
2283 };
2284
2285 static int
2286 dissect_gsm_map_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2287   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2288                                 SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
2289
2290   return offset;
2291 }
2292
2293
2294 static int
2295 dissect_gsm_map_OCTET_STRING_SIZE_5_7(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2296   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2297                                     NULL);
2298
2299   return offset;
2300 }
2301 static int dissect_targetCellId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2302   return dissect_gsm_map_OCTET_STRING_SIZE_5_7(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
2303 }
2304 static int dissect_targetCellId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2305   return dissect_gsm_map_OCTET_STRING_SIZE_5_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
2306 }
2307
2308 static const ber_sequence_t PrepareHO_Arg_sequence[] = {
2309   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId },
2310   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
2311   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
2312   { 0, 0, 0, NULL }
2313 };
2314
2315 static int
2316 dissect_gsm_map_PrepareHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2317   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2318                                 PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
2319
2320   return offset;
2321 }
2322
2323
2324 static int
2325 dissect_gsm_map_OCTET_STRING_SIZE_7(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2326   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2327                                     NULL);
2328
2329   return offset;
2330 }
2331 static int dissect_targetRNCId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2332   return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetRNCId);
2333 }
2334 static int dissect_cellIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2335   return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdFixedLength);
2336 }
2337 static int dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2338   return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength);
2339 }
2340
2341
2342 static int
2343 dissect_gsm_map_OCTET_STRING_SIZE_18_100(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2344   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2345                                     NULL);
2346
2347   return offset;
2348 }
2349 static int dissect_integrityProtectionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2350   return dissect_gsm_map_OCTET_STRING_SIZE_18_100(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_integrityProtectionInfo);
2351 }
2352 static int dissect_encryptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2353   return dissect_gsm_map_OCTET_STRING_SIZE_18_100(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionInfo);
2354 }
2355
2356
2357 static int
2358 dissect_gsm_map_OCTET_STRING_SIZE_3_13(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2359   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2360                                     NULL);
2361
2362   return offset;
2363 }
2364 static int dissect_radioResourceInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2365   return dissect_gsm_map_OCTET_STRING_SIZE_3_13(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceInformation);
2366 }
2367 static int dissect_radioResourceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2368   return dissect_gsm_map_OCTET_STRING_SIZE_3_13(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceInformation);
2369 }
2370
2371
2372 static int
2373 dissect_gsm_map_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2374   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2375                                     NULL);
2376
2377   return offset;
2378 }
2379 static int dissect_allowedGSM_Algorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2380   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allowedGSM_Algorithms);
2381 }
2382 static int dissect_bssmap_ServiceHandover(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2383   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandover);
2384 }
2385 static int dissect_bssmap_ServiceHandover_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2386   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandover);
2387 }
2388 static int dissect_ranap_ServiceHandover_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2389   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ranap_ServiceHandover);
2390 }
2391 static int dissect_integrityProtectionAlgorithm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2392   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_integrityProtectionAlgorithm);
2393 }
2394 static int dissect_encryptionAlgorithm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2395   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionAlgorithm);
2396 }
2397 static int dissect_chosenChannelInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2398   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenChannelInfo);
2399 }
2400 static int dissect_chosenSpeechVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2401   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenSpeechVersion);
2402 }
2403 static int dissect_category_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2404   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_category);
2405 }
2406 static int dissect_interCUG_Restrictions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2407   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_interCUG_Restrictions);
2408 }
2409 static int dissect_lsaAttributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2410   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaAttributes);
2411 }
2412 static int dissect_ss_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2413   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List_item);
2414 }
2415 static int dissect_ss_EventList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2416   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList_item);
2417 }
2418 static int dissect_alertingPattern(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2419   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
2420 }
2421 static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2422   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
2423 }
2424 static int dissect_uuIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2425   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uuIndicator);
2426 }
2427 static int dissect_call_Direction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2428   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_call_Direction);
2429 }
2430 static int dissect_ussd_DataCodingScheme(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2431   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_DataCodingScheme);
2432 }
2433 static int dissect_T_CauseValueCriteria_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2434   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_T_CauseValueCriteria_item);
2435 }
2436 static int dissect_O_CauseValueCriteria_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2437   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_O_CauseValueCriteria_item);
2438 }
2439 static int dissect_MobilityTriggers_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2440   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_MobilityTriggers_item);
2441 }
2442 static int dissect_ss_Event_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2443   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Event);
2444 }
2445 static int dissect_cipheringAlgorithm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2446   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cipheringAlgorithm);
2447 }
2448 static int dissect_lcs_Priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2449   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Priority);
2450 }
2451 static int dissect_horizontal_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2452   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_horizontal_accuracy);
2453 }
2454 static int dissect_vertical_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2455   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vertical_accuracy);
2456 }
2457
2458
2459 static int
2460 dissect_gsm_map_OCTET_STRING_SIZE_1_9(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2461   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2462                                     NULL);
2463
2464   return offset;
2465 }
2466 static int dissect_integrityProtectionAlgorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2467   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_integrityProtectionAlgorithms);
2468 }
2469 static int dissect_encryptionAlgorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2470   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionAlgorithms);
2471 }
2472 static int dissect_qos_Requested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2473   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Requested);
2474 }
2475 static int dissect_qos_Negotiated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2476   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Negotiated);
2477 }
2478
2479 static const ber_sequence_t T_allowedUMTS_Algorithms_sequence[] = {
2480   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithms_impl },
2481   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithms_impl },
2482   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2483   { 0, 0, 0, NULL }
2484 };
2485
2486 static int
2487 dissect_gsm_map_T_allowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2488   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2489                                 T_allowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_T_allowedUMTS_Algorithms);
2490
2491   return offset;
2492 }
2493 static int dissect_allowedUMTS_Algorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2494   return dissect_gsm_map_T_allowedUMTS_Algorithms(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allowedUMTS_Algorithms);
2495 }
2496
2497
2498
2499 static int
2500 dissect_gsm_map_INTEGER_1_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2501   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2502
2503   return offset;
2504 }
2505 static int dissect_rab_Id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2506   return dissect_gsm_map_INTEGER_1_255(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_rab_Id);
2507 }
2508 static int dissect_rab_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2509   return dissect_gsm_map_INTEGER_1_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_rab_Id);
2510 }
2511
2512 static const ber_sequence_t T_radioResourceList_item_sequence[] = {
2513   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_radioResourceInformation },
2514   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
2515   { 0, 0, 0, NULL }
2516 };
2517
2518 static int
2519 dissect_gsm_map_T_radioResourceList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2520   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2521                                 T_radioResourceList_item_sequence, hf_index, ett_gsm_map_T_radioResourceList_item);
2522
2523   return offset;
2524 }
2525 static int dissect_radioResourceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2526   return dissect_gsm_map_T_radioResourceList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceList_item);
2527 }
2528
2529 static const ber_sequence_t T_radioResourceList_sequence_of[1] = {
2530   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_radioResourceList_item },
2531 };
2532
2533 static int
2534 dissect_gsm_map_T_radioResourceList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2535   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2536                                    T_radioResourceList_sequence_of, hf_index, ett_gsm_map_T_radioResourceList);
2537
2538   return offset;
2539 }
2540 static int dissect_radioResourceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2541   return dissect_gsm_map_T_radioResourceList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceList);
2542 }
2543
2544 static const ber_sequence_t T_bssmap_ServiceHandoverList_item_sequence[] = {
2545   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandover },
2546   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
2547   { 0, 0, 0, NULL }
2548 };
2549
2550 static int
2551 dissect_gsm_map_T_bssmap_ServiceHandoverList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2552   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2553                                 T_bssmap_ServiceHandoverList_item_sequence, hf_index, ett_gsm_map_T_bssmap_ServiceHandoverList_item);
2554
2555   return offset;
2556 }
2557 static int dissect_bssmap_ServiceHandoverList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2558   return dissect_gsm_map_T_bssmap_ServiceHandoverList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandoverList_item);
2559 }
2560
2561 static const ber_sequence_t T_bssmap_ServiceHandoverList_sequence_of[1] = {
2562   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandoverList_item },
2563 };
2564
2565 static int
2566 dissect_gsm_map_T_bssmap_ServiceHandoverList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2567   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2568                                    T_bssmap_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_T_bssmap_ServiceHandoverList);
2569
2570   return offset;
2571 }
2572 static int dissect_bssmap_ServiceHandoverList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2573   return dissect_gsm_map_T_bssmap_ServiceHandoverList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandoverList);
2574 }
2575
2576
2577 static int
2578 dissect_gsm_map_OCTET_STRING_SIZE_1_8(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2579   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2580                                     NULL);
2581
2582   return offset;
2583 }
2584 static int dissect_asciCallReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2585   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_asciCallReference);
2586 }
2587 static int dissect_asciCallReference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2588   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_asciCallReference);
2589 }
2590 static int dissect_callReferenceNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2591   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReferenceNumber);
2592 }
2593 static int dissect_mSNetworkCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2594   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mSNetworkCapability);
2595 }
2596
2597
2598 static int
2599 dissect_gsm_map_OCTET_STRING_SIZE_2_87(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2600   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2601                                     NULL);
2602
2603   return offset;
2604 }
2605 static int dissect_geran_classmark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2606   return dissect_gsm_map_OCTET_STRING_SIZE_2_87(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geran_classmark);
2607 }
2608
2609
2610 static int
2611 dissect_gsm_map_OCTET_STRING_SIZE_1_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2612   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2613                                     NULL);
2614
2615   return offset;
2616 }
2617 static int dissect_iuCurrentlyUsedCodec_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2618   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuCurrentlyUsedCodec);
2619 }
2620 static int dissect_codec1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2621   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec1);
2622 }
2623 static int dissect_codec2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2624   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec2);
2625 }
2626 static int dissect_codec3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2627   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec3);
2628 }
2629 static int dissect_codec4_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2630   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec4);
2631 }
2632 static int dissect_codec5_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2633   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec5);
2634 }
2635 static int dissect_codec6_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2636   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec6);
2637 }
2638 static int dissect_codec7_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2639   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec7);
2640 }
2641 static int dissect_codec8_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2642   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec8);
2643 }
2644 static int dissect_iuSelectedCodec_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2645   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuSelectedCodec);
2646 }
2647
2648 static const ber_sequence_t T_geranCodecList_sequence[] = {
2649   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
2650   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
2651   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
2652   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
2653   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
2654   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
2655   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
2656   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
2657   { BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2658   { 0, 0, 0, NULL }
2659 };
2660
2661 static int
2662 dissect_gsm_map_T_geranCodecList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2663   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2664                                 T_geranCodecList_sequence, hf_index, ett_gsm_map_T_geranCodecList);
2665
2666   return offset;
2667 }
2668 static int dissect_geranCodecList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2669   return dissect_gsm_map_T_geranCodecList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geranCodecList);
2670 }
2671
2672 static const ber_sequence_t T_utranCodecList_sequence[] = {
2673   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
2674   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
2675   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
2676   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
2677   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
2678   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
2679   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
2680   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
2681   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2682   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranCodecList_impl },
2683   { 0, 0, 0, NULL }
2684 };
2685
2686 static int
2687 dissect_gsm_map_T_utranCodecList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2688   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2689                                 T_utranCodecList_sequence, hf_index, ett_gsm_map_T_utranCodecList);
2690
2691   return offset;
2692 }
2693 static int dissect_utranCodecList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2694   return dissect_gsm_map_T_utranCodecList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_utranCodecList);
2695 }
2696
2697 static const ber_sequence_t T_iuSupportedCodecsList_sequence[] = {
2698   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranCodecList_impl },
2699   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2700   { 0, 0, 0, NULL }
2701 };
2702
2703 static int
2704 dissect_gsm_map_T_iuSupportedCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2705   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2706                                 T_iuSupportedCodecsList_sequence, hf_index, ett_gsm_map_T_iuSupportedCodecsList);
2707
2708   return offset;
2709 }
2710 static int dissect_iuSupportedCodecsList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2711   return dissect_gsm_map_T_iuSupportedCodecsList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuSupportedCodecsList);
2712 }
2713
2714
2715 static int
2716 dissect_gsm_map_BIT_STRING_SIZE_1_128(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2717   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2718                                  NULL, hf_index, -1,
2719                                  NULL);
2720
2721   return offset;
2722 }
2723 static int dissect_uesbi_IuA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2724   return dissect_gsm_map_BIT_STRING_SIZE_1_128(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_IuA);
2725 }
2726 static int dissect_uesbi_IuB_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2727   return dissect_gsm_map_BIT_STRING_SIZE_1_128(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_IuB);
2728 }
2729
2730 static const ber_sequence_t T_uesbi_Iu_sequence[] = {
2731   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuA_impl },
2732   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuB_impl },
2733   { 0, 0, 0, NULL }
2734 };
2735
2736 static int
2737 dissect_gsm_map_T_uesbi_Iu(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2738   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2739                                 T_uesbi_Iu_sequence, hf_index, ett_gsm_map_T_uesbi_Iu);
2740
2741   return offset;
2742 }
2743 static int dissect_uesbi_Iu_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2744   return dissect_gsm_map_T_uesbi_Iu(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_Iu);
2745 }
2746
2747 static const ber_sequence_t PrepareHandoverV3Arg_sequence[] = {
2748   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl },
2749   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
2750   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetRNCId_impl },
2751   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
2752   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multipleBearerRequested_impl },
2753   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
2754   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionInfo_impl },
2755   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionInfo_impl },
2756   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceInformation_impl },
2757   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedGSM_Algorithms_impl },
2758   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedUMTS_Algorithms_impl },
2759   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceList_impl },
2760   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2761   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_Id_impl },
2762   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandover_impl },
2763   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ranap_ServiceHandover_impl },
2764   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandoverList_impl },
2765   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asciCallReference_impl },
2766   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geran_classmark_impl },
2767   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuCurrentlyUsedCodec_impl },
2768   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSupportedCodecsList_impl },
2769   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl },
2770   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_Iu_impl },
2771   { 0, 0, 0, NULL }
2772 };
2773
2774 static int
2775 dissect_gsm_map_PrepareHandoverV3Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2776   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2777                                 PrepareHandoverV3Arg_sequence, hf_index, ett_gsm_map_PrepareHandoverV3Arg);
2778
2779   return offset;
2780 }
2781
2782
2783 static int
2784 dissect_gsm_map_HandoverNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2785   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2786                                     NULL);
2787
2788   return offset;
2789 }
2790 static int dissect_handoverNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2791   return dissect_gsm_map_HandoverNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
2792 }
2793 static int dissect_handoverNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2794   return dissect_gsm_map_HandoverNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
2795 }
2796
2797 static const ber_sequence_t PrepareHO_Res_sequence[] = {
2798   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
2799   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
2800   { 0, 0, 0, NULL }
2801 };
2802
2803 static int
2804 dissect_gsm_map_PrepareHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2805   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2806                                 PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
2807
2808   return offset;
2809 }
2810
2811 static const ber_sequence_t T_relocationNumberList_item_sequence[] = {
2812   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
2813   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
2814   { 0, 0, 0, NULL }
2815 };
2816
2817 static int
2818 dissect_gsm_map_T_relocationNumberList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2819   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2820                                 T_relocationNumberList_item_sequence, hf_index, ett_gsm_map_T_relocationNumberList_item);
2821
2822   return offset;
2823 }
2824 static int dissect_relocationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2825   return dissect_gsm_map_T_relocationNumberList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_relocationNumberList_item);
2826 }
2827
2828 static const ber_sequence_t T_relocationNumberList_sequence_of[1] = {
2829   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_relocationNumberList_item },
2830 };
2831
2832 static int
2833 dissect_gsm_map_T_relocationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2834   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2835                                    T_relocationNumberList_sequence_of, hf_index, ett_gsm_map_T_relocationNumberList);
2836
2837   return offset;
2838 }
2839 static int dissect_relocationNumberList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2840   return dissect_gsm_map_T_relocationNumberList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_relocationNumberList);
2841 }
2842
2843
2844
2845 static int
2846 dissect_gsm_map_INTEGER_1_7(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2847   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2848
2849   return offset;
2850 }
2851 static int dissect_multicallBearerInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2852   return dissect_gsm_map_INTEGER_1_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_multicallBearerInfo);
2853 }
2854
2855 static const ber_sequence_t T_selectedUMTS_Algorithms_sequence[] = {
2856   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithm_impl },
2857   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithm_impl },
2858   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2859   { 0, 0, 0, NULL }
2860 };
2861
2862 static int
2863 dissect_gsm_map_T_selectedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2864   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2865                                 T_selectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_T_selectedUMTS_Algorithms);
2866
2867   return offset;
2868 }
2869 static int dissect_selectedUMTS_Algorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2870   return dissect_gsm_map_T_selectedUMTS_Algorithms(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedUMTS_Algorithms);
2871 }
2872
2873 static const ber_sequence_t T_chosenRadioResourceInformation_sequence[] = {
2874   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannelInfo_impl },
2875   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenSpeechVersion_impl },
2876   { 0, 0, 0, NULL }
2877 };
2878
2879 static int
2880 dissect_gsm_map_T_chosenRadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2881   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2882                                 T_chosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_T_chosenRadioResourceInformation);
2883
2884   return offset;
2885 }
2886 static int dissect_chosenRadioResourceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2887   return dissect_gsm_map_T_chosenRadioResourceInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenRadioResourceInformation);
2888 }
2889
2890 static const ber_sequence_t T_iuAvailableCodecsList_sequence[] = {
2891   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
2892   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
2893   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
2894   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
2895   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
2896   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
2897   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
2898   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
2899   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2900   { 0, 0, 0, NULL }
2901 };
2902
2903 static int
2904 dissect_gsm_map_T_iuAvailableCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2905   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2906                                 T_iuAvailableCodecsList_sequence, hf_index, ett_gsm_map_T_iuAvailableCodecsList);
2907
2908   return offset;
2909 }
2910 static int dissect_iuAvailableCodecsList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2911   return dissect_gsm_map_T_iuAvailableCodecsList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuAvailableCodecsList);
2912 }
2913
2914 static const ber_sequence_t PrepareHandoverV3Res_sequence[] = {
2915   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_handoverNumber_impl },
2916   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_relocationNumberList_impl },
2917   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
2918   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multicallBearerInfo_impl },
2919   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_multipleBearerNotSupported },
2920   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl },
2921   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenRadioResourceInformation_impl },
2922   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2923   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSelectedCodec_impl },
2924   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuAvailableCodecsList_impl },
2925   { 0, 0, 0, NULL }
2926 };
2927
2928 static int
2929 dissect_gsm_map_PrepareHandoverV3Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2930   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2931                                 PrepareHandoverV3Res_sequence, hf_index, ett_gsm_map_PrepareHandoverV3Res);
2932
2933   return offset;
2934 }
2935
2936 static const ber_sequence_t SendEndSignalV9Arg_sequence[] = {
2937   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
2938   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2939   { 0, 0, 0, NULL }
2940 };
2941
2942 static int
2943 dissect_gsm_map_SendEndSignalV9Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2944   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2945                                 SendEndSignalV9Arg_sequence, hf_index, ett_gsm_map_SendEndSignalV9Arg);
2946
2947   return offset;
2948 }
2949
2950
2951 static int
2952 dissect_gsm_map_T_targetMSC_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2953   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2954                                     NULL);
2955
2956   return offset;
2957 }
2958 static int dissect_targetMSC_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2959   return dissect_gsm_map_T_targetMSC_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
2960 }
2961
2962 static const ber_sequence_t PrepareSubsequentHO_Arg_sequence[] = {
2963   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId },
2964   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number },
2965   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
2966   { 0, 0, 0, NULL }
2967 };
2968
2969 static int
2970 dissect_gsm_map_PrepareSubsequentHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2971   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2972                                 PrepareSubsequentHO_Arg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHO_Arg);
2973
2974   return offset;
2975 }
2976
2977
2978 static int
2979 dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2980   offset = dissect_gsm_map_Imsi(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2981
2982   return offset;
2983 }
2984
2985
2986
2987 static int
2988 dissect_gsm_map_INTEGER_1_5(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2989   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2990
2991   return offset;
2992 }
2993 static int dissect_numberOfRequestedVectors(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2994   return dissect_gsm_map_INTEGER_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfRequestedVectors);
2995 }
2996 static int dissect_numberOfForwarding_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2997   return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfForwarding);
2998 }
2999 static int dissect_ccbs_Index_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3000   return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Index);
3001 }
3002
3003
3004 static int
3005 dissect_gsm_map_OCTET_STRING_SIZE_14(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3006   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3007                                     NULL);
3008
3009   return offset;
3010 }
3011 static int dissect_auts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3012   return dissect_gsm_map_OCTET_STRING_SIZE_14(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_auts);
3013 }
3014
3015 static const ber_sequence_t T_re_synchronisationInfo_sequence[] = {
3016   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3017   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts },
3018   { 0, 0, 0, NULL }
3019 };
3020
3021 static int
3022 dissect_gsm_map_T_re_synchronisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3023   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3024                                 T_re_synchronisationInfo_sequence, hf_index, ett_gsm_map_T_re_synchronisationInfo);
3025
3026   return offset;
3027 }
3028 static int dissect_re_synchronisationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3029   return dissect_gsm_map_T_re_synchronisationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_re_synchronisationInfo);
3030 }
3031
3032
3033 static const value_string gsm_map_T_requestingNodeType_vals[] = {
3034   {   0, "vlr" },
3035   {   1, "sgsn" },
3036   { 0, NULL }
3037 };
3038
3039
3040 static int
3041 dissect_gsm_map_T_requestingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3042   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3043
3044   return offset;
3045 }
3046 static int dissect_requestingNodeType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3047   return dissect_gsm_map_T_requestingNodeType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingNodeType);
3048 }
3049
3050
3051 static int
3052 dissect_gsm_map_OCTET_STRING_SIZE_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3053   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3054                                     NULL);
3055
3056   return offset;
3057 }
3058 static int dissect_requestingPLMN_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3059   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingPLMN_Id);
3060 }
3061 static int dissect_groupid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3062   return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupid);
3063 }
3064 static int dissect_groupId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3065   return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupId);
3066 }
3067 static int dissect_lsaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3068   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentity);
3069 }
3070 static int dissect_naea_PreferredCIC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3071   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCIC);
3072 }
3073 static int dissect_lsaIdentityList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3074   return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList_item);
3075 }
3076 static int dissect_selectedLSA_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3077   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedLSA_Id);
3078 }
3079 static int dissect_selectedLSAIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3080   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedLSAIdentity);
3081 }
3082 static int dissect_ms_Classmark2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3083   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ms_Classmark2);
3084 }
3085
3086 static const ber_sequence_t SendAuthenticationInfoArgV3_sequence[] = {
3087   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
3088   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
3089   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited },
3090   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immediateResponsePreferred_impl },
3091   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_synchronisationInfo },
3092   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3093   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingNodeType_impl },
3094   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingPLMN_Id_impl },
3095   { 0, 0, 0, NULL }
3096 };
3097
3098 static int
3099 dissect_gsm_map_SendAuthenticationInfoArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3100   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3101                                 SendAuthenticationInfoArgV3_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArgV3);
3102
3103   return offset;
3104 }
3105
3106 static const ber_sequence_t SendAuthenticationInfoRes_item_sequence[] = {
3107   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3108   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
3109   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
3110   { 0, 0, 0, NULL }
3111 };
3112
3113 static int
3114 dissect_gsm_map_SendAuthenticationInfoRes_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3115   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3116                                 SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
3117
3118   return offset;
3119 }
3120 static int dissect_SendAuthenticationInfoRes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3121   return dissect_gsm_map_SendAuthenticationInfoRes_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_SendAuthenticationInfoRes_item);
3122 }
3123
3124 static const ber_sequence_t SendAuthenticationInfoRes_sequence_of[1] = {
3125   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SendAuthenticationInfoRes_item },
3126 };
3127
3128 static int
3129 dissect_gsm_map_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3130   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3131                                    SendAuthenticationInfoRes_sequence_of, hf_index, ett_gsm_map_SendAuthenticationInfoRes);
3132
3133   return offset;
3134 }
3135
3136 static const ber_sequence_t T_tripletList_item_sequence[] = {
3137   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3138   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
3139   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
3140   { 0, 0, 0, NULL }
3141 };
3142
3143 static int
3144 dissect_gsm_map_T_tripletList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3145   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3146                                 T_tripletList_item_sequence, hf_index, ett_gsm_map_T_tripletList_item);
3147
3148   return offset;
3149 }
3150 static int dissect_tripletList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3151   return dissect_gsm_map_T_tripletList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_tripletList_item);
3152 }
3153
3154 static const ber_sequence_t T_tripletList_sequence_of[1] = {
3155   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tripletList_item },
3156 };
3157
3158 static int
3159 dissect_gsm_map_T_tripletList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3160   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3161                                    T_tripletList_sequence_of, hf_index, ett_gsm_map_T_tripletList);
3162
3163   return offset;
3164 }
3165 static int dissect_tripletList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3166   return dissect_gsm_map_T_tripletList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tripletList);
3167 }
3168
3169
3170 static int
3171 dissect_gsm_map_OCTET_STRING_SIZE_4_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3172   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3173                                     NULL);
3174
3175   return offset;
3176 }
3177 static int dissect_xres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3178   return dissect_gsm_map_OCTET_STRING_SIZE_4_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_xres);
3179 }
3180
3181 static const ber_sequence_t T_quintupletList_item_sequence[] = {
3182   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3183   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_xres },
3184   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck },
3185   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik },
3186   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_autn },
3187   { 0, 0, 0, NULL }
3188 };
3189
3190 static int
3191 dissect_gsm_map_T_quintupletList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3192   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3193                                 T_quintupletList_item_sequence, hf_index, ett_gsm_map_T_quintupletList_item);
3194
3195   return offset;
3196 }
3197 static int dissect_quintupletList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3198   return dissect_gsm_map_T_quintupletList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_quintupletList_item);
3199 }
3200
3201 static const ber_sequence_t T_quintupletList_sequence_of[1] = {
3202   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_quintupletList_item },
3203 };
3204
3205 static int
3206 dissect_gsm_map_T_quintupletList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3207   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3208                                    T_quintupletList_sequence_of, hf_index, ett_gsm_map_T_quintupletList);
3209
3210   return offset;
3211 }
3212 static int dissect_quintupletList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3213   return dissect_gsm_map_T_quintupletList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_quintupletList);
3214 }
3215
3216
3217 static const value_string gsm_map_T_authenticationSetList_vals[] = {
3218   {   0, "tripletList" },
3219   {   1, "quintupletList" },
3220   { 0, NULL }
3221 };
3222
3223 static const ber_choice_t T_authenticationSetList_choice[] = {
3224   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tripletList_impl },
3225   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_quintupletList_impl },
3226   { 0, 0, 0, 0, NULL }
3227 };
3228
3229 static int
3230 dissect_gsm_map_T_authenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3231   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3232                               T_authenticationSetList_choice, hf_index, ett_gsm_map_T_authenticationSetList);
3233
3234   return offset;
3235 }
3236 static int dissect_authenticationSetList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3237   return dissect_gsm_map_T_authenticationSetList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList);
3238 }
3239
3240 static const ber_sequence_t SendAuthenticationInfoV3Res_sequence[] = {
3241   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
3242   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3243   { 0, 0, 0, NULL }
3244 };
3245
3246 static int
3247 dissect_gsm_map_SendAuthenticationInfoV3Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3248   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3249                                 SendAuthenticationInfoV3Res_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoV3Res);
3250
3251   return offset;
3252 }
3253
3254
3255 static int
3256 dissect_gsm_map_Imei(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3257   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3258                                     NULL);
3259
3260   return offset;
3261 }
3262 static int dissect_imei(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3263   return dissect_gsm_map_Imei(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imei);
3264 }
3265 static int dissect_imei_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3266   return dissect_gsm_map_Imei(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei);
3267 }
3268
3269
3270 static int
3271 dissect_gsm_map_CheckIMEIArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3272   offset = dissect_gsm_map_Imei(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3273
3274   return offset;
3275 }
3276
3277 static const asn_namedbit T_requestedEquipmentInfo_bits[] = {
3278   {  0, &hf_gsm_map_T_requestedEquipmentInfo_equipmentStatus, -1, -1, NULL, NULL },
3279   {  1, &hf_gsm_map_T_requestedEquipmentInfo_bmuef, -1, -1, NULL, NULL },
3280   { 0, NULL, 0, 0, NULL, NULL }
3281 };
3282
3283 static int
3284 dissect_gsm_map_T_requestedEquipmentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3285   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3286                                  T_requestedEquipmentInfo_bits, hf_index, ett_gsm_map_T_requestedEquipmentInfo,
3287                                  NULL);
3288
3289   return offset;
3290 }
3291 static int dissect_requestedEquipmentInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3292   return dissect_gsm_map_T_requestedEquipmentInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_requestedEquipmentInfo);
3293 }
3294
3295 static const ber_sequence_t CheckIMEIv2Arg_sequence[] = {
3296   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imei },
3297   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_requestedEquipmentInfo },
3298   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3299   { 0, 0, 0, NULL }
3300 };
3301
3302 static int
3303 dissect_gsm_map_CheckIMEIv2Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3304   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3305                                 CheckIMEIv2Arg_sequence, hf_index, ett_gsm_map_CheckIMEIv2Arg);
3306
3307   return offset;
3308 }
3309
3310
3311 static const value_string gsm_map_EquipmentStatus_vals[] = {
3312   {   0, "whiteListed" },
3313   {   1, "blackListed" },
3314   {   2, "greyListed" },
3315   { 0, NULL }
3316 };
3317
3318
3319 static int
3320 dissect_gsm_map_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3321   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3322
3323   return offset;
3324 }
3325 static int dissect_equipmentStatus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3326   return dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_equipmentStatus);
3327 }
3328
3329 static const ber_sequence_t T_bmuef_sequence[] = {
3330   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuA_impl },
3331   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuB_impl },
3332   { 0, 0, 0, NULL }
3333 };
3334
3335 static int
3336 dissect_gsm_map_T_bmuef(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3337   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3338                                 T_bmuef_sequence, hf_index, ett_gsm_map_T_bmuef);
3339
3340   return offset;
3341 }
3342 static int dissect_bmuef(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3343   return dissect_gsm_map_T_bmuef(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bmuef);
3344 }
3345
3346 static const ber_sequence_t ChekIMEIv3Res_sequence[] = {
3347   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_equipmentStatus },
3348   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bmuef },
3349   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3350   { 0, 0, 0, NULL }
3351 };
3352
3353 static int
3354 dissect_gsm_map_ChekIMEIv3Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3355   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3356                                 ChekIMEIv3Res_sequence, hf_index, ett_gsm_map_ChekIMEIv3Res);
3357
3358   return offset;
3359 }
3360
3361
3362 static const value_string gsm_map_OverrideCategory_vals[] = {
3363   {   0, "overrideEnabled" },
3364   {   1, "overrideDisabled" },
3365   { 0, NULL }
3366 };
3367
3368
3369 static int
3370 dissect_gsm_map_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3371   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3372
3373   return offset;
3374 }
3375 static int dissect_overrideCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3376   return dissect_gsm_map_OverrideCategory(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_overrideCategory);
3377 }
3378
3379
3380 static int
3381 dissect_gsm_map_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3382   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3383                                     NULL);
3384
3385   return offset;
3386 }
3387 static int dissect_bearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3388   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerService);
3389 }
3390 static int dissect_dataCodingScheme_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3391   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dataCodingScheme);
3392 }
3393 static int dissect_nameString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3394   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nameString);
3395 }
3396 static int dissect_lcsClientDialedByMS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3397   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientDialedByMS);
3398 }
3399
3400
3401 static const value_string gsm_map_BasicService_vals[] = {
3402   {   2, "bearerService" },
3403   {   3, "teleservice" },
3404   { 0, NULL }
3405 };
3406
3407 static const ber_choice_t BasicService_choice[] = {
3408   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_bearerService_impl },
3409   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_teleservice_impl },
3410   { 0, 0, 0, 0, NULL }
3411 };
3412
3413 static int
3414 dissect_gsm_map_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3415   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3416                               BasicService_choice, hf_index, ett_gsm_map_BasicService);
3417
3418   return offset;
3419 }
3420 static int dissect_BasicServiceGroupList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3421   return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BasicServiceGroupList_item);
3422 }
3423 static int dissect_basicService(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3424   return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService);
3425 }
3426 static int dissect_basicServiceGroup(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3427   return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroup);
3428 }
3429
3430 static const ber_sequence_t BasicServiceGroupList_sequence_of[1] = {
3431   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
3432 };
3433
3434 static int
3435 dissect_gsm_map_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3436   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3437                                    BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_BasicServiceGroupList);
3438
3439   return offset;
3440 }
3441 static int dissect_basicServiceGroupList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3442   return dissect_gsm_map_BasicServiceGroupList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
3443 }
3444 static int dissect_basicServiceGroupList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3445   return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
3446 }
3447 static int dissect_basicServiceCriteria_lst_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3448   return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceCriteria_lst);
3449 }
3450 static int dissect_basicServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3451   return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceList);
3452 }
3453
3454
3455 static const value_string gsm_map_IntraCUG_Options_vals[] = {
3456   {   0, "noCUG-Restrictions" },
3457   {   1, "cugIC-CallBarred" },
3458   {   2, "cugOG-CallBarred" },
3459   { 0, NULL }
3460 };
3461
3462
3463 static int
3464 dissect_gsm_map_IntraCUG_Options(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3465   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3466
3467   return offset;
3468 }
3469 static int dissect_intraCUG_Options(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3470   return dissect_gsm_map_IntraCUG_Options(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_intraCUG_Options);
3471 }
3472
3473 static const asn_namedbit Odb_GeneralData_bits[] = {
3474   {  0, &hf_gsm_map_Odb_GeneralData_allOGCallsBarred, -1, -1, NULL, NULL },
3475   {  1, &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred, -1, -1, NULL, NULL },
3476   {  2, &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
3477   {  3, &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, NULL, NULL },
3478   {  4, &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, NULL, NULL },
3479   {  5, &hf_gsm_map_Odb_GeneralData_ssAccessBarred, -1, -1, NULL, NULL },
3480   {  6, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred, -1, -1, NULL, NULL },
3481   {  7, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
3482   {  8, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
3483   {  9, &hf_gsm_map_Odb_GeneralData_allECTBarred, -1, -1, NULL, NULL },
3484   { 10, &hf_gsm_map_Odb_GeneralData_chargeableECTBarred, -1, -1, NULL, NULL },
3485   { 11, &hf_gsm_map_Odb_GeneralData_internationalECTBarred, -1, -1, NULL, NULL },
3486   { 12, &hf_gsm_map_Odb_GeneralData_interzonalECTBarred, -1, -1, NULL, NULL },
3487   { 13, &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred, -1, -1, NULL, NULL },
3488   { 14, &hf_gsm_map_Odb_GeneralData_multipleECTBarred, -1, -1, NULL, NULL },
3489   { 15, &hf_gsm_map_Odb_GeneralData_allPacketOrientedServicesBarred, -1, -1, NULL, NULL },
3490   { 16, &hf_gsm_map_Odb_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, NULL, NULL },
3491   { 17, &hf_gsm_map_Odb_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, NULL, NULL },
3492   { 18, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, NULL, NULL },
3493   { 19, &hf_gsm_map_Odb_GeneralData_allIC_CallsBarred, -1, -1, NULL, NULL },
3494   { 20, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, NULL, NULL },
3495   { 21, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, NULL, NULL },
3496   { 22, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_Barred, -1, -1, NULL, NULL },
3497   { 23, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, NULL, NULL },
3498   { 24, &hf_gsm_map_Odb_GeneralData_registrationAllCF_Barred, -1, -1, NULL, NULL },
3499   { 25, &hf_gsm_map_Odb_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, NULL, NULL },
3500   { 26, &hf_gsm_map_Odb_GeneralData_registrationInterzonalCF_Barred, -1, -1, NULL, NULL },
3501   { 27, &hf_gsm_map_Odb_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, NULL, NULL },
3502   { 28, &hf_gsm_map_Odb_GeneralData_registrationInternationalCF_Barred, -1, -1, NULL, NULL },
3503   { 0, NULL, 0, 0, NULL, NULL }
3504 };
3505
3506 static int
3507 dissect_gsm_map_Odb_GeneralData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3508   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3509                                  Odb_GeneralData_bits, hf_index, ett_gsm_map_Odb_GeneralData,
3510                                  NULL);
3511
3512   return offset;
3513 }
3514 static int dissect_odb_GeneralData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3515   return dissect_gsm_map_Odb_GeneralData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
3516 }
3517 static int dissect_odb_GeneralData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3518   return dissect_gsm_map_Odb_GeneralData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
3519 }
3520
3521 static const asn_namedbit Odb_HPLMN_Data_bits[] = {
3522   {  0, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1, -1, -1, NULL, NULL },
3523   {  1, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2, -1, -1, NULL, NULL },
3524   {  2, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3, -1, -1, NULL, NULL },
3525   {  3, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4, -1, -1, NULL, NULL },
3526   { 0, NULL, 0, 0, NULL, NULL }
3527 };
3528
3529 static int
3530 dissect_gsm_map_Odb_HPLMN_Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3531   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3532                                  Odb_HPLMN_Data_bits, hf_index, ett_gsm_map_Odb_HPLMN_Data,
3533                                  NULL);
3534
3535   return offset;
3536 }
3537 static int dissect_odb_HPLMN_Data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3538   return dissect_gsm_map_Odb_HPLMN_Data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_HPLMN_Data);
3539 }
3540
3541
3542 static const value_string gsm_map_SubscriberStatus_vals[] = {
3543   {   0, "serviceGranted" },
3544   {   1, "operatorDeterminedBarring" },
3545   { 0, NULL }
3546 };
3547
3548
3549 static int
3550 dissect_gsm_map_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3551   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3552
3553   return offset;
3554 }
3555 static int dissect_subscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3556   return dissect_gsm_map_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStatus);
3557 }
3558
3559
3560 static const value_string gsm_map_BcsmTriggerDetectionPoint_vals[] = {
3561   {   2, "collectedInfo" },
3562   {   4, "routeSelectFailure" },
3563   {  12, "termAttemptAuthorized" },
3564   {  13, "tBusy" },
3565   {  14, "tNoAnswer" },
3566   { 0, NULL }
3567 };
3568
3569
3570 static int
3571 dissect_gsm_map_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3572   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3573
3574   return offset;
3575 }
3576 static int dissect_bcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3577   return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bcsmTriggerDetectionPoint);
3578 }
3579 static int dissect_o_BcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3580   return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint);
3581 }
3582
3583
3584
3585 static int
3586 dissect_gsm_map_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3587   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3588
3589   return offset;
3590 }
3591 static int dissect_serviceKey(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3592   return dissect_gsm_map_ServiceKey(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceKey);
3593 }
3594 static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3595   return dissect_gsm_map_ServiceKey(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceKey);
3596 }
3597
3598
3599 static int
3600 dissect_gsm_map_GsmSCF_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3601   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3602                                     NULL);
3603
3604   return offset;
3605 }
3606 static int dissect_gsmSCFAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3607   return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCFAddress);
3608 }
3609 static int dissect_gsmSCF_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3610   return dissect_gsm_map_GsmSCF_Address(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
3611 }
3612 static int dissect_gsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3613   return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
3614 }
3615
3616
3617 static const value_string gsm_map_DefaultCallHandling_vals[] = {
3618   {   0, "continueCall" },
3619   {   1, "releaseCall" },
3620   { 0, NULL }
3621 };
3622
3623
3624 static int
3625 dissect_gsm_map_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3626   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3627
3628   return offset;
3629 }
3630 static int dissect_defaultCallHandling(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3631   return dissect_gsm_map_DefaultCallHandling(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
3632 }
3633 static int dissect_defaultCallHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3634   return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
3635 }
3636
3637 static const ber_sequence_t BcsmCamelTDPData_sequence[] = {
3638   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_bcsmTriggerDetectionPoint },
3639   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
3640   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCFAddress_impl },
3641   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl },
3642   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3643   { 0, 0, 0, NULL }
3644 };
3645
3646 static int
3647 dissect_gsm_map_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3648   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3649                                 BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_BcsmCamelTDPData);
3650
3651   return offset;
3652 }
3653 static int dissect_BcsmCamelTDPDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3654   return dissect_gsm_map_BcsmCamelTDPData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BcsmCamelTDPDataList_item);
3655 }
3656
3657 static const ber_sequence_t BcsmCamelTDPDataList_sequence_of[1] = {
3658   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BcsmCamelTDPDataList_item },
3659 };
3660
3661 static int
3662 dissect_gsm_map_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3663   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3664                                    BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_BcsmCamelTDPDataList);
3665
3666   return offset;
3667 }
3668 static int dissect_o_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3669   return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDPDataList);
3670 }
3671 static int dissect_t_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3672   return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BcsmCamelTDPDataList);
3673 }
3674
3675
3676
3677 static int
3678 dissect_gsm_map_INTEGER_1_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3679   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3680
3681   return offset;
3682 }
3683 static int dissect_camelCapabilityHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3684   return dissect_gsm_map_INTEGER_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelCapabilityHandling);
3685 }
3686
3687 static const ber_sequence_t O_CSI_sequence[] = {
3688   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
3689   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3690   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
3691   { 0, 0, 0, NULL }
3692 };
3693
3694 static int
3695 dissect_gsm_map_O_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3696   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3697                                 O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
3698
3699   return offset;
3700 }
3701 static int dissect_o_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3702   return dissect_gsm_map_O_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CSI);
3703 }
3704
3705
3706 static int
3707 dissect_gsm_map_Msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3708
3709  tvbuff_t       *parameter_tvb;
3710  char           *digit_str;
3711
3712  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3713                                     &parameter_tvb);
3714
3715  if (!parameter_tvb)
3716         return offset;
3717
3718  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
3719  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
3720  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
3721
3722  digit_str = unpack_digits(parameter_tvb, 1);
3723
3724  proto_tree_add_string(tree, hf_gsm_map_misdn_digits, parameter_tvb, 1, -1, digit_str);
3725  if (digit_str)
3726         g_free(digit_str);
3727
3728
3729   return offset;
3730 }
3731 static int dissect_msisdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3732   return dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
3733 }
3734 static int dissect_msisdn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3735   return dissect_gsm_map_Msisdn(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
3736 }
3737
3738
3739 static int
3740 dissect_gsm_map_OCTET_STRING_SIZE_1_5(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3741   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3742                                     NULL);
3743
3744   return offset;
3745 }
3746 static int dissect_bearerServiceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3747   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList_item);
3748 }
3749 static int dissect_routeingNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3750   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_routeingNumber);
3751 }
3752 static int dissect_ext_BearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3753   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_BearerService);
3754 }
3755 static int dissect_ext_Teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3756   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_Teleservice);
3757 }
3758
3759 static const ber_sequence_t bearerServiceList_sequence_of[1] = {
3760   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bearerServiceList_item },
3761 };
3762
3763 static int
3764 dissect_gsm_map_bearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3765   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3766                                    bearerServiceList_sequence_of, hf_index, ett_gsm_map_bearerServiceList);
3767
3768   return offset;
3769 }
3770 static int dissect_bearerServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3771   return dissect_gsm_map_bearerServiceList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList);
3772 }
3773
3774 static const ber_sequence_t SEQUENCE_SIZE_1_20_OF_Teleservice_sequence_of[1] = {
3775   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleserviceList_item },
3776 };
3777
3778 static int
3779 dissect_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3780   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3781                                    SEQUENCE_SIZE_1_20_OF_Teleservice_sequence_of, hf_index, ett_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice);
3782
3783   return offset;
3784 }
3785 static int dissect_teleserviceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3786   return dissect_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList);
3787 }
3788
3789
3790 static int
3791 dissect_gsm_map_Ss_Code(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3792   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3793                                     NULL);
3794
3795   return offset;
3796 }
3797 static int dissect_ss_Code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3798   return dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
3799 }
3800 static int dissect_ss_Code_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3801   return dissect_gsm_map_Ss_Code(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
3802 }
3803
3804
3805 static int
3806 dissect_gsm_map_Ss_Status(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3807
3808  tvbuff_t       *parameter_tvb;
3809  guint8         octet;
3810
3811  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3812                                     &parameter_tvb);
3813  if (!parameter_tvb)
3814         return offset;
3815
3816  octet = tvb_get_guint8(parameter_tvb,0);
3817
3818  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3819  if ((octet & 0x01)== 1)        
3820         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3821                                                                                 
3822  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3823  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3824  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3825
3826
3827
3828   return offset;
3829 }
3830 static int dissect_ss_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3831   return dissect_gsm_map_Ss_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
3832 }
3833 static int dissect_ss_Status_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3834   return dissect_gsm_map_Ss_Status(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
3835 }
3836
3837
3838 static int
3839 dissect_gsm_map_ForwardedToNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3840
3841  tvbuff_t       *parameter_tvb;
3842  char           *digit_str;
3843
3844  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3845                                     &parameter_tvb);
3846
3847  if (!parameter_tvb)
3848         return offset;
3849
3850  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
3851  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
3852  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
3853
3854  digit_str = unpack_digits(parameter_tvb, 1);
3855
3856  proto_tree_add_string(tree, hf_gsm_map_map_ForwardedToNumber_digits, parameter_tvb, 1, -1, digit_str);
3857  if (digit_str)
3858         g_free(digit_str);
3859
3860
3861   return offset;
3862 }
3863 static int dissect_forwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3864   return dissect_gsm_map_ForwardedToNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToNumber);
3865 }
3866
3867
3868 static int
3869 dissect_gsm_map_ForwardedToSubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3870   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3871                                     NULL);
3872
3873   return offset;
3874 }
3875 static int dissect_forwardedToSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3876   return dissect_gsm_map_ForwardedToSubaddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToSubaddress);
3877 }
3878
3879
3880 static int
3881 dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3882   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3883                                     NULL);
3884
3885   return offset;
3886 }
3887 static int dissect_forwardingOptions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3888   return dissect_gsm_map_ForwardingOptions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingOptions);
3889 }
3890
3891
3892
3893 static int
3894 dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3895   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3896
3897   return offset;
3898 }
3899 static int dissect_noReplyConditionTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3900   return dissect_gsm_map_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime);
3901 }
3902
3903
3904 static int
3905 dissect_gsm_map_LongForwardedToNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3906   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3907                                     NULL);
3908
3909   return offset;
3910 }
3911 static int dissect_longForwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3912   return dissect_gsm_map_LongForwardedToNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_longForwardedToNumber);
3913 }
3914
3915 static const ber_sequence_t ForwardingFeatureList_sequence[] = {
3916   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
3917   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
3918   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
3919   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
3920   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
3921   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
3922   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3923   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl },
3924   { 0, 0, 0, NULL }
3925 };
3926
3927 static int
3928 dissect_gsm_map_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3929   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3930                                 ForwardingFeatureList_sequence, hf_index, ett_gsm_map_ForwardingFeatureList);
3931
3932   return offset;
3933 }
3934 static int dissect_forwardingFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3935   return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_item);
3936 }
3937 static int dissect_forwardingFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3938   return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList);
3939 }
3940
3941 static const ber_sequence_t SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList_sequence_of[1] = {
3942   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_item },
3943 };
3944
3945 static int
3946 dissect_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3947   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3948                                    SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList);
3949
3950   return offset;
3951 }
3952 static int dissect_forwardingFeatureList_1_32(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3953   return dissect_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_1_32);
3954 }
3955
3956 static const ber_sequence_t ForwardingInfo_sequence[] = {
3957   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
3958   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_1_32 },
3959   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3960   { 0, 0, 0, NULL }
3961 };
3962
3963 static int
3964 dissect_gsm_map_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3965   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3966                                 ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
3967
3968   return offset;
3969 }
3970 static int dissect_forwardingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3971   return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInfo);
3972 }
3973
3974 static const ber_sequence_t CallBarringFeatureList_item_sequence[] = {
3975   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
3976   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
3977   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3978   { 0, 0, 0, NULL }
3979 };
3980
3981 static int
3982 dissect_gsm_map_CallBarringFeatureList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3983   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3984                                 CallBarringFeatureList_item_sequence, hf_index, ett_gsm_map_CallBarringFeatureList_item);
3985
3986   return offset;
3987 }
3988 static int dissect_CallBarringFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3989   return dissect_gsm_map_CallBarringFeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_CallBarringFeatureList_item);
3990 }
3991
3992 static const ber_sequence_t CallBarringFeatureList_sequence_of[1] = {
3993   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CallBarringFeatureList_item },
3994 };
3995
3996 static int
3997 dissect_gsm_map_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3998   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3999                                    CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_CallBarringFeatureList);
4000
4001   return offset;
4002 }
4003 static int dissect_callBarringFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4004   return dissect_gsm_map_CallBarringFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringFeatureList);
4005 }
4006
4007 static const ber_sequence_t CallBarringInfo_sequence[] = {
4008   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4009   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
4010   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4011   { 0, 0, 0, NULL }
4012 };
4013
4014 static int
4015 dissect_gsm_map_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4016   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4017                                 CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
4018
4019   return offset;
4020 }
4021 static int dissect_callBarringInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4022   return dissect_gsm_map_CallBarringInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringInfo);
4023 }
4024
4025
4026
4027 static int
4028 dissect_gsm_map_INTEGER_0_32767(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4029   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4030
4031   return offset;
4032 }
4033 static int dissect_cug_Index(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4034   return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Index);
4035 }
4036 static int dissect_preferentialCUG_Indicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4037   return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_preferentialCUG_Indicator);
4038 }
4039 static int dissect_ageOfLocationInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4040   return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationInformation);
4041 }
4042 static int dissect_ageOfLocationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4043   return dissect_gsm_map_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationInformation);
4044 }
4045 static int dissect_ageOfLocationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4046   return dissect_gsm_map_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationEstimate);
4047 }
4048
4049 static const ber_sequence_t T_cug_SubscriptionList_item_sequence[] = {
4050   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index },
4051   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
4052   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intraCUG_Options },
4053   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
4054   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4055   { 0, 0, 0, NULL }
4056 };
4057
4058 static int
4059 dissect_gsm_map_T_cug_SubscriptionList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4060   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4061                                 T_cug_SubscriptionList_item_sequence, hf_index, ett_gsm_map_T_cug_SubscriptionList_item);
4062
4063   return offset;
4064 }
4065 static int dissect_cug_SubscriptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4066   return dissect_gsm_map_T_cug_SubscriptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList_item);
4067 }
4068
4069 static const ber_sequence_t T_cug_SubscriptionList_sequence_of[1] = {
4070   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList_item },
4071 };
4072
4073 static int
4074 dissect_gsm_map_T_cug_SubscriptionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4075   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4076                                    T_cug_SubscriptionList_sequence_of, hf_index, ett_gsm_map_T_cug_SubscriptionList);
4077
4078   return offset;
4079 }
4080 static int dissect_cug_SubscriptionList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4081   return dissect_gsm_map_T_cug_SubscriptionList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList);
4082 }
4083
4084 static const ber_sequence_t T_cug_FeatureList_item_sequence[] = {
4085   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
4086   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator },
4087   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions },
4088   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4089   { 0, 0, 0, NULL }
4090 };
4091
4092 static int
4093 dissect_gsm_map_T_cug_FeatureList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4094   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4095                                 T_cug_FeatureList_item_sequence, hf_index, ett_gsm_map_T_cug_FeatureList_item);
4096
4097   return offset;
4098 }
4099 static int dissect_cug_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4100   return dissect_gsm_map_T_cug_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList_item);
4101 }
4102
4103 static const ber_sequence_t T_cug_FeatureList_sequence_of[1] = {
4104   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList_item },
4105 };
4106
4107 static int
4108 dissect_gsm_map_T_cug_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4109   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4110                                    T_cug_FeatureList_sequence_of, hf_index, ett_gsm_map_T_cug_FeatureList);
4111
4112   return offset;
4113 }
4114 static int dissect_cug_FeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4115   return dissect_gsm_map_T_cug_FeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList);
4116 }
4117
4118 static const ber_sequence_t T_cug_Info_sequence[] = {
4119   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList },
4120   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList },
4121   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4122   { 0, 0, 0, NULL }
4123 };
4124
4125 static int
4126 dissect_gsm_map_T_cug_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4127   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4128                                 T_cug_Info_sequence, hf_index, ett_gsm_map_T_cug_Info);
4129
4130   return offset;
4131 }
4132 static int dissect_cug_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4133   return dissect_gsm_map_T_cug_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Info);
4134 }
4135
4136
4137 static const value_string gsm_map_CliRestrictionOption_vals[] = {
4138   {   0, "permanent" },
4139   {   1, "temporaryDefaultRestricted" },
4140   {   2, "temporaryDefaultAllowed" },
4141   { 0, NULL }
4142 };
4143
4144
4145 static int
4146 dissect_gsm_map_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4147   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4148
4149   return offset;
4150 }
4151 static int dissect_cliRestrictionOption_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4152   return dissect_gsm_map_CliRestrictionOption(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cliRestrictionOption);
4153 }
4154
4155
4156 static const value_string gsm_map_Ss_SubscriptionOption_vals[] = {
4157   {   2, "cliRestrictionOption" },
4158   {   1, "overrideCategory" },
4159   { 0, NULL }
4160 };
4161
4162 static const ber_choice_t Ss_SubscriptionOption_choice[] = {
4163   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
4164   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_overrideCategory_impl },
4165   { 0, 0, 0, 0, NULL }
4166 };
4167
4168 static int
4169 dissect_gsm_map_Ss_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4170   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4171                               Ss_SubscriptionOption_choice, hf_index, ett_gsm_map_Ss_SubscriptionOption);
4172
4173   return offset;
4174 }
4175 static int dissect_ss_SubscriptionOption(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4176   return dissect_gsm_map_Ss_SubscriptionOption(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_SubscriptionOption);
4177 }
4178
4179
4180
4181 static int
4182 dissect_gsm_map_INTEGER_0_15(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4183   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4184
4185   return offset;
4186 }
4187 static int dissect_maximumentitledPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4188   return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_maximumentitledPriority);
4189 }
4190 static int dissect_defaultPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4191   return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
4192 }
4193 static int dissect_defaultPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4194   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
4195 }
4196 static int dissect_nsapi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4197   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nsapi);
4198 }
4199 static int dissect_maximumEntitledPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4200   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_maximumEntitledPriority);
4201 }
4202 static int dissect_groupKeyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4203   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKeyNumber);
4204 }
4205 static int dissect_priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4206   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_priority);
4207 }
4208
4209 static const ber_sequence_t Ss_Data_sequence[] = {
4210   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4211   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
4212   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
4213   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
4214   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
4215   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4216   { 0, 0, 0, NULL }
4217 };
4218
4219 static int
4220 dissect_gsm_map_Ss_Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4221   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4222                                 Ss_Data_sequence, hf_index, ett_gsm_map_Ss_Data);
4223
4224   return offset;
4225 }
4226 static int dissect_ss_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4227   return dissect_gsm_map_Ss_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data);
4228 }
4229
4230 static const ber_sequence_t T_emlpp_Info_sequence[] = {
4231   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority },
4232   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
4233   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4234   { 0, 0, 0, NULL }
4235 };
4236
4237 static int
4238 dissect_gsm_map_T_emlpp_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4239   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4240                                 T_emlpp_Info_sequence, hf_index, ett_gsm_map_T_emlpp_Info);
4241
4242   return offset;
4243 }
4244 static int dissect_emlpp_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4245   return dissect_gsm_map_T_emlpp_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_emlpp_Info);
4246 }
4247
4248
4249 static const value_string gsm_map_T_provisionedSS_item_vals[] = {
4250   {   0, "forwardingInfo" },
4251   {   1, "callBarringInfo" },
4252   {   2, "cug-Info" },
4253   {   3, "ss-Data" },
4254   {   4, "emlpp-Info" },
4255   { 0, NULL }
4256 };
4257
4258 static const ber_choice_t T_provisionedSS_item_choice[] = {
4259   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
4260   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
4261   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cug_Info_impl },
4262   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
4263   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_emlpp_Info_impl },
4264   { 0, 0, 0, 0, NULL }
4265 };
4266
4267 static int
4268 dissect_gsm_map_T_provisionedSS_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4269   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4270                               T_provisionedSS_item_choice, hf_index, ett_gsm_map_T_provisionedSS_item);
4271
4272   return offset;
4273 }
4274 static int dissect_provisionedSS_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4275   return dissect_gsm_map_T_provisionedSS_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS_item);
4276 }
4277
4278 static const ber_sequence_t T_provisionedSS_sequence_of[1] = {
4279   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_provisionedSS_item },
4280 };
4281
4282 static int
4283 dissect_gsm_map_T_provisionedSS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4284   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4285                                    T_provisionedSS_sequence_of, hf_index, ett_gsm_map_T_provisionedSS);
4286
4287   return offset;
4288 }
4289 static int dissect_provisionedSS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4290   return dissect_gsm_map_T_provisionedSS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS);
4291 }
4292
4293 static const ber_sequence_t Odb_data_sequence[] = {
4294   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData },
4295   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data },
4296   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4297   { 0, 0, 0, NULL }
4298 };
4299
4300 static int
4301 dissect_gsm_map_Odb_data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4302   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4303                                 Odb_data_sequence, hf_index, ett_gsm_map_Odb_data);
4304
4305   return offset;
4306 }
4307 static int dissect_odb_Data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4308   return dissect_gsm_map_Odb_data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Data);
4309 }
4310 static int dissect_odb_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4311   return dissect_gsm_map_Odb_data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Data);
4312 }
4313 static int dissect_odb_data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4314   return dissect_gsm_map_Odb_data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_data);
4315 }
4316
4317
4318 static int
4319 dissect_gsm_map_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4320   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4321                                     NULL);
4322
4323   return offset;
4324 }
4325 static int dissect_regionalSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4326   return dissect_gsm_map_OCTET_STRING_SIZE_2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData_item);
4327 }
4328 static int dissect_pdp_Type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4329   return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Type);
4330 }
4331 static int dissect_regionalSubscriptionIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4332   return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionIdentifier);
4333 }
4334 static int dissect_chargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4335   return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chargingCharacteristics);
4336 }
4337
4338 static const ber_sequence_t T_regionalSubscriptionData_sequence_of[1] = {
4339   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_regionalSubscriptionData_item },
4340 };
4341
4342 static int
4343 dissect_gsm_map_T_regionalSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4344   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4345                                    T_regionalSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_regionalSubscriptionData);
4346
4347   return offset;
4348 }
4349 static int dissect_regionalSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4350   return dissect_gsm_map_T_regionalSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData);
4351 }
4352
4353 static const ber_sequence_t T_vbsSubscriptionData_item_sequence[] = {
4354   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid },
4355   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement },
4356   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4357   { 0, 0, 0, NULL }
4358 };
4359
4360 static int
4361 dissect_gsm_map_T_vbsSubscriptionData_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4362   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4363                                 T_vbsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vbsSubscriptionData_item);
4364
4365   return offset;
4366 }
4367 static int dissect_vbsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4368   return dissect_gsm_map_T_vbsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData_item);
4369 }
4370
4371 static const ber_sequence_t T_vbsSubscriptionData_sequence_of[1] = {
4372   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vbsSubscriptionData_item },
4373 };
4374
4375 static int
4376 dissect_gsm_map_T_vbsSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4377   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4378                                    T_vbsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vbsSubscriptionData);
4379
4380   return offset;
4381 }
4382 static int dissect_vbsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4383   return dissect_gsm_map_T_vbsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData);
4384 }
4385
4386 static const ber_sequence_t T_vgcsSubscriptionData_item_sequence[] = {
4387   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
4388   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4389   { 0, 0, 0, NULL }
4390 };
4391
4392 static int
4393 dissect_gsm_map_T_vgcsSubscriptionData_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4394   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4395                                 T_vgcsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vgcsSubscriptionData_item);
4396
4397   return offset;
4398 }
4399 static int dissect_vgcsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4400   return dissect_gsm_map_T_vgcsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData_item);
4401 }
4402
4403 static const ber_sequence_t T_vgcsSubscriptionData_sequence_of[1] = {
4404   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vgcsSubscriptionData_item },
4405 };
4406
4407 static int
4408 dissect_gsm_map_T_vgcsSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4409   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4410                                    T_vgcsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vgcsSubscriptionData);
4411
4412   return offset;
4413 }
4414 static int dissect_vgcsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4415   return dissect_gsm_map_T_vgcsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData);
4416 }
4417
4418 static const ber_sequence_t T_ss_EventList_sequence_of[1] = {
4419   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventList_item },
4420 };
4421
4422 static int
4423 dissect_gsm_map_T_ss_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4424   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4425                                    T_ss_EventList_sequence_of, hf_index, ett_gsm_map_T_ss_EventList);
4426
4427   return offset;
4428 }
4429 static int dissect_ss_EventList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4430   return dissect_gsm_map_T_ss_EventList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList);
4431 }
4432
4433 static const ber_sequence_t Ss_CamelData_sequence[] = {
4434   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList },
4435   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
4436   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4437   { 0, 0, 0, NULL }
4438 };
4439
4440 static int
4441 dissect_gsm_map_Ss_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4442   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4443                                 Ss_CamelData_sequence, hf_index, ett_gsm_map_Ss_CamelData);
4444
4445   return offset;
4446 }
4447 static int dissect_ss_CamelData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4448   return dissect_gsm_map_Ss_CamelData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CamelData);
4449 }
4450
4451 static const ber_sequence_t ss_CSI_sequence[] = {
4452   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
4453   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4454   { 0, 0, 0, NULL }
4455 };
4456
4457 static int
4458 dissect_gsm_map_ss_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4459   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4460                                 ss_CSI_sequence, hf_index, ett_gsm_map_ss_CSI);
4461
4462   return offset;
4463 }
4464 static int dissect_ss_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4465   return dissect_gsm_map_ss_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CSI);
4466 }
4467
4468
4469 static const value_string gsm_map_MatchType_vals[] = {
4470   {   0, "inhibiting" },
4471   {   1, "enabling" },
4472   { 0, NULL }
4473 };
4474
4475
4476 static int
4477 dissect_gsm_map_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4478   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4479
4480   return offset;
4481 }
4482 static int dissect_matchType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4483   return dissect_gsm_map_MatchType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_matchType);
4484 }
4485
4486
4487 static int
4488 dissect_gsm_map_T_destinationNumberList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4489   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4490                                     NULL);
4491
4492   return offset;
4493 }
4494 static int dissect_destinationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4495   return dissect_gsm_map_T_destinationNumberList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList_item);
4496 }
4497
4498 static const ber_sequence_t T_destinationNumberList_sequence_of[1] = {
4499   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_destinationNumberList_item },
4500 };
4501
4502 static int
4503 dissect_gsm_map_T_destinationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4504   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4505                                    T_destinationNumberList_sequence_of, hf_index, ett_gsm_map_T_destinationNumberList);
4506
4507   return offset;
4508 }
4509 static int dissect_destinationNumberList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4510   return dissect_gsm_map_T_destinationNumberList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList);
4511 }
4512
4513
4514
4515 static int
4516 dissect_gsm_map_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4517   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4518
4519   return offset;
4520 }
4521 static int dissect_destinationNumberLengthList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4522   return dissect_gsm_map_INTEGER_1_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList_item);
4523 }
4524
4525 static const ber_sequence_t T_destinationNumberLengthList_sequence_of[1] = {
4526   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_destinationNumberLengthList_item },
4527 };
4528
4529 static int
4530 dissect_gsm_map_T_destinationNumberLengthList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4531   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4532                                    T_destinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_T_destinationNumberLengthList);
4533
4534   return offset;
4535 }
4536 static int dissect_destinationNumberLengthList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4537   return dissect_gsm_map_T_destinationNumberLengthList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList);
4538 }
4539
4540 static const ber_sequence_t DestinationNumberCriteria_sequence[] = {
4541   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl },
4542   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl },
4543   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberLengthList_impl },
4544   { 0, 0, 0, NULL }
4545 };
4546
4547 static int
4548 dissect_gsm_map_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4549   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4550                                 DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
4551
4552   return offset;
4553 }
4554 static int dissect_destinationNumberCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4555   return dissect_gsm_map_DestinationNumberCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberCriteria);
4556 }
4557
4558
4559 static const value_string gsm_map_CallTypeCriteria_vals[] = {
4560   {   0, "forwarded" },
4561   {   1, "notForwarded" },
4562   { 0, NULL }
4563 };
4564
4565
4566 static int
4567 dissect_gsm_map_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4568   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4569
4570   return offset;
4571 }
4572 static int dissect_callTypeCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4573   return dissect_gsm_map_CallTypeCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callTypeCriteria);
4574 }
4575
4576 static const ber_sequence_t O_BcsmCamelTDP_CriteriaList_item_sequence[] = {
4577   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
4578   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
4579   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_lst_impl },
4580   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
4581   { 0, 0, 0, NULL }
4582 };
4583
4584 static int
4585 dissect_gsm_map_O_BcsmCamelTDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4586   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4587                                 O_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
4588
4589   return offset;
4590 }
4591 static int dissect_O_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4592   return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
4593 }
4594
4595 static const ber_sequence_t O_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
4596   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDP_CriteriaList_item },
4597 };
4598
4599 static int
4600 dissect_gsm_map_O_BcsmCamelTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4601   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4602                                    O_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList);
4603
4604   return offset;
4605 }
4606 static int dissect_o_BcsmCamelTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4607   return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList);
4608 }
4609
4610 static const ber_sequence_t T_vlrCamelSubscriptionInfo_sequence[] = {
4611   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
4612   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4613   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
4614   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
4615   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
4616   { 0, 0, 0, NULL }
4617 };
4618
4619 static int
4620 dissect_gsm_map_T_vlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4621   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4622                                 T_vlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_vlrCamelSubscriptionInfo);
4623
4624   return offset;
4625 }
4626 static int dissect_vlrCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4627   return dissect_gsm_map_T_vlrCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlrCamelSubscriptionInfo);
4628 }
4629
4630 static const ber_sequence_t Naea_PreferredCI_sequence[] = {
4631   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl },
4632   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4633   { 0, 0, 0, NULL }
4634 };
4635
4636 static int
4637 dissect_gsm_map_Naea_PreferredCI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4638   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4639                                 Naea_PreferredCI_sequence, hf_index, ett_gsm_map_Naea_PreferredCI);
4640
4641   return offset;
4642 }
4643 static int dissect_naea_PreferredCI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4644   return dissect_gsm_map_Naea_PreferredCI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCI);
4645 }
4646
4647
4648
4649 static int
4650 dissect_gsm_map_INTEGER_1_50(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4651   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4652
4653   return offset;
4654 }
4655 static int dissect_pdp_ContextId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4656   return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextId);
4657 }
4658 static int dissect_contextIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4659   return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList_item);
4660 }
4661 static int dissect_pdp_ContextIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4662   return dissect_gsm_map_INTEGER_1_50(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextIdentifier);
4663 }
4664
4665
4666 static int
4667 dissect_gsm_map_OCTET_STRING_SIZE_1_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4668   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4669                                     NULL);
4670
4671   return offset;
4672 }
4673 static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4674   return dissect_gsm_map_OCTET_STRING_SIZE_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Address);
4675 }
4676
4677
4678 static int
4679 dissect_gsm_map_Qos_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4680   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4681                                     NULL);
4682
4683   return offset;
4684 }
4685 static int dissect_qos_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4686   return dissect_gsm_map_Qos_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Subscribed);
4687 }
4688
4689
4690 static int
4691 dissect_gsm_map_OCTET_STRING_SIZE_2_63(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4692   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4693                                     NULL);
4694
4695   return offset;
4696 }
4697 static int dissect_apn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4698   return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn);
4699 }
4700 static int dissect_apn_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4701   return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn_Subscribed);
4702 }
4703 static int dissect_apn_InUse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4704   return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn_InUse);
4705 }
4706
4707 static const ber_sequence_t T_gprsDataList_item_sequence[] = {
4708   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId },
4709   { BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
4710   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
4711   { BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
4712   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vplmnAddressAllowed_impl },
4713   { BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_apn_impl },
4714   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4715   { 0, 0, 0, NULL }
4716 };
4717
4718 static int
4719 dissect_gsm_map_T_gprsDataList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4720   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4721                                 T_gprsDataList_item_sequence, hf_index, ett_gsm_map_T_gprsDataList_item);
4722
4723   return offset;
4724 }
4725 static int dissect_gprsDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4726   return dissect_gsm_map_T_gprsDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList_item);
4727 }
4728
4729 static const ber_sequence_t T_gprsDataList_sequence_of[1] = {
4730   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprsDataList_item },
4731 };
4732
4733 static int
4734 dissect_gsm_map_T_gprsDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4735   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4736                                    T_gprsDataList_sequence_of, hf_index, ett_gsm_map_T_gprsDataList);
4737
4738   return offset;
4739 }
4740 static int dissect_gprsDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4741   return dissect_gsm_map_T_gprsDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList);
4742 }
4743
4744 static const ber_sequence_t T_gprsSubscriptionData_sequence[] = {
4745   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
4746   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl },
4747   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4748   { 0, 0, 0, NULL }
4749 };
4750
4751 static int
4752 dissect_gsm_map_T_gprsSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4753   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4754                                 T_gprsSubscriptionData_sequence, hf_index, ett_gsm_map_T_gprsSubscriptionData);
4755
4756   return offset;
4757 }
4758 static int dissect_gprsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4759   return dissect_gsm_map_T_gprsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionData);
4760 }
4761
4762
4763 static const value_string gsm_map_T_networkAccessMode_vals[] = {
4764   {   0, "bothMSCAndSGSN" },
4765   {   1, "onlyMSC" },
4766   {   2, "onlySGSN" },
4767   { 0, NULL }
4768 };
4769
4770
4771 static int
4772 dissect_gsm_map_T_networkAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4773   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4774
4775   return offset;
4776 }
4777 static int dissect_networkAccessMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4778   return dissect_gsm_map_T_networkAccessMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkAccessMode);
4779 }
4780
4781
4782 static const value_string gsm_map_T_lsaOnlyAccessIndicator_vals[] = {
4783   {   0, "accessOutsideLSAsAllowed" },
4784   {   1, "accessOutsideLSAsRestricted" },
4785   { 0, NULL }
4786 };
4787
4788
4789 static int
4790 dissect_gsm_map_T_lsaOnlyAccessIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4791   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4792
4793   return offset;
4794 }
4795 static int dissect_lsaOnlyAccessIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4796   return dissect_gsm_map_T_lsaOnlyAccessIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaOnlyAccessIndicator);
4797 }
4798
4799 static const ber_sequence_t T_lsaDataList_item_sequence[] = {
4800   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl },
4801   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl },
4802   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaActiveModeIndicator_impl },
4803   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4804   { 0, 0, 0, NULL }
4805 };
4806
4807 static int
4808 dissect_gsm_map_T_lsaDataList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4809   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4810                                 T_lsaDataList_item_sequence, hf_index, ett_gsm_map_T_lsaDataList_item);
4811
4812   return offset;
4813 }
4814 static int dissect_lsaDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4815   return dissect_gsm_map_T_lsaDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList_item);
4816 }
4817
4818 static const ber_sequence_t T_lsaDataList_sequence_of[1] = {
4819   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaDataList_item },
4820 };
4821
4822 static int
4823 dissect_gsm_map_T_lsaDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4824   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4825                                    T_lsaDataList_sequence_of, hf_index, ett_gsm_map_T_lsaDataList);
4826
4827   return offset;
4828 }
4829 static int dissect_lsaDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4830   return dissect_gsm_map_T_lsaDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList);
4831 }
4832
4833 static const ber_sequence_t T_lsaInformation_sequence[] = {
4834   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
4835   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl },
4836   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaDataList_impl },
4837   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4838   { 0, 0, 0, NULL }
4839 };
4840
4841 static int
4842 dissect_gsm_map_T_lsaInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4843   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4844                                 T_lsaInformation_sequence, hf_index, ett_gsm_map_T_lsaInformation);
4845
4846   return offset;
4847 }
4848 static int dissect_lsaInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4849   return dissect_gsm_map_T_lsaInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformation);
4850 }
4851
4852
4853 static int
4854 dissect_gsm_map_T_gmlc_List_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4855   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4856                                     NULL);
4857
4858   return offset;
4859 }
4860 static int dissect_gmlc_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4861   return dissect_gsm_map_T_gmlc_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List_item);
4862 }
4863
4864 static const ber_sequence_t T_gmlc_List_sequence_of[1] = {
4865   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gmlc_List_item },
4866 };
4867
4868 static int
4869 dissect_gsm_map_T_gmlc_List(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4870   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4871                                    T_gmlc_List_sequence_of, hf_index, ett_gsm_map_T_gmlc_List);
4872
4873   return offset;
4874 }
4875 static int dissect_gmlc_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4876   return dissect_gsm_map_T_gmlc_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List);
4877 }
4878
4879
4880 static const value_string gsm_map_NotificationToMSUser_vals[] = {
4881   {   0, "notifyLocationAllowed" },
4882   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
4883   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
4884   { 0, NULL }
4885 };
4886
4887
4888 static int
4889 dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4890   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4891
4892   return offset;
4893 }
4894 static int dissect_notificationToMSUser_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4895   return dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToMSUser);
4896 }
4897
4898
4899 static int
4900 dissect_gsm_map_OCTET_STRING_SIZE_1_20(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4901   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4902                                     NULL);
4903
4904   return offset;
4905 }
4906 static int dissect_externalAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4907   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalAddress);
4908 }
4909 static int dissect_omc_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4910   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_omc_Id);
4911 }
4912 static int dissect_ss_EventSpecification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4913   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification_item);
4914 }
4915 static int dissect_locationEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4916   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
4917 }
4918 static int dissect_locationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4919   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
4920 }
4921
4922 static const ber_sequence_t T_clientIdentity_sequence[] = {
4923   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
4924   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4925   { 0, 0, 0, NULL }
4926 };
4927
4928 static int
4929 dissect_gsm_map_T_clientIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4930   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4931                                 T_clientIdentity_sequence, hf_index, ett_gsm_map_T_clientIdentity);
4932
4933   return offset;
4934 }
4935 static int dissect_clientIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4936   return dissect_gsm_map_T_clientIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_clientIdentity);
4937 }
4938
4939
4940 static const value_string gsm_map_T_gmlc_Restriction_vals[] = {
4941   {   0, "gmlc-List" },
4942   {   1, "home-Country" },
4943   { 0, NULL }
4944 };
4945
4946
4947 static int
4948 dissect_gsm_map_T_gmlc_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4949   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4950
4951   return offset;
4952 }
4953 static int dissect_gmlc_Restriction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4954   return dissect_gsm_map_T_gmlc_Restriction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_Restriction);
4955 }
4956
4957 static const ber_sequence_t T_externalClientList_item_sequence[] = {
4958   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity },
4959   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
4960   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
4961   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4962   { 0, 0, 0, NULL }
4963 };
4964
4965 static int
4966 dissect_gsm_map_T_externalClientList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4967   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4968                                 T_externalClientList_item_sequence, hf_index, ett_gsm_map_T_externalClientList_item);
4969
4970   return offset;
4971 }
4972 static int dissect_externalClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4973   return dissect_gsm_map_T_externalClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList_item);
4974 }
4975
4976 static const ber_sequence_t T_externalClientList_sequence_of[1] = {
4977   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_externalClientList_item },
4978 };
4979
4980 static int
4981 dissect_gsm_map_T_externalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4982   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4983                                    T_externalClientList_sequence_of, hf_index, ett_gsm_map_T_externalClientList);
4984
4985   return offset;
4986 }
4987 static int dissect_externalClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4988   return dissect_gsm_map_T_externalClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList);
4989 }
4990
4991
4992 static const value_string gsm_map_T_plmnClientList_item_vals[] = {
4993   {   0, "broadcastService" },
4994   {   1, "o-andM-HPLMN" },
4995   {   2, "o-andM-VPLMN" },
4996   {   3, "anonymousLocation" },
4997   {   4, "targetMSsubscribedService" },
4998   { 0, NULL }
4999 };
5000
5001
5002 static int
5003 dissect_gsm_map_T_plmnClientList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5004   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5005
5006   return offset;
5007 }
5008 static int dissect_plmnClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5009   return dissect_gsm_map_T_plmnClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList_item);
5010 }
5011
5012 static const ber_sequence_t T_plmnClientList_sequence_of[1] = {
5013   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_plmnClientList_item },
5014 };
5015
5016 static int
5017 dissect_gsm_map_T_plmnClientList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5018   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5019                                    T_plmnClientList_sequence_of, hf_index, ett_gsm_map_T_plmnClientList);
5020
5021   return offset;
5022 }
5023 static int dissect_plmnClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5024   return dissect_gsm_map_T_plmnClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList);
5025 }
5026
5027 static const ber_sequence_t T_lcs_PrivacyExceptionList_item_sequence[] = {
5028   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
5029   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
5030   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
5031   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalClientList_impl },
5032   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmnClientList_impl },
5033   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5034   { 0, 0, 0, NULL }
5035 };
5036
5037 static int
5038 dissect_gsm_map_T_lcs_PrivacyExceptionList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5039   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5040                                 T_lcs_PrivacyExceptionList_item_sequence, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList_item);
5041
5042   return offset;
5043 }
5044 static int dissect_lcs_PrivacyExceptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5045   return dissect_gsm_map_T_lcs_PrivacyExceptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList_item);
5046 }
5047
5048 static const ber_sequence_t T_lcs_PrivacyExceptionList_sequence_of[1] = {
5049   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_PrivacyExceptionList_item },
5050 };
5051
5052 static int
5053 dissect_gsm_map_T_lcs_PrivacyExceptionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5054   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5055                                    T_lcs_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList);
5056
5057   return offset;
5058 }
5059 static int dissect_lcs_PrivacyExceptionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5060   return dissect_gsm_map_T_lcs_PrivacyExceptionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList);
5061 }
5062
5063 static const ber_sequence_t T_molr_List_item_sequence[] = {
5064   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
5065   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
5066   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5067   { 0, 0, 0, NULL }
5068 };
5069
5070 static int
5071 dissect_gsm_map_T_molr_List_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5072   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5073                                 T_molr_List_item_sequence, hf_index, ett_gsm_map_T_molr_List_item);
5074
5075   return offset;
5076 }
5077 static int dissect_molr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5078   return dissect_gsm_map_T_molr_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List_item);
5079 }
5080
5081 static const ber_sequence_t T_molr_List_sequence_of[1] = {
5082   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_molr_List_item },
5083 };
5084
5085 static int
5086 dissect_gsm_map_T_molr_List(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5087   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5088                                    T_molr_List_sequence_of, hf_index, ett_gsm_map_T_molr_List);
5089
5090   return offset;
5091 }
5092 static int dissect_molr_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5093   return dissect_gsm_map_T_molr_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List);
5094 }
5095
5096 static const ber_sequence_t T_lcsInformation_sequence[] = {
5097   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl },
5098   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl },
5099   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_molr_List_impl },
5100   { 0, 0, 0, NULL }
5101 };
5102
5103 static int
5104 dissect_gsm_map_T_lcsInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5105   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5106                                 T_lcsInformation_sequence, hf_index, ett_gsm_map_T_lcsInformation);
5107
5108   return offset;
5109 }
5110 static int dissect_lcsInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5111   return dissect_gsm_map_T_lcsInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsInformation);
5112 }
5113
5114 static const ber_sequence_t InsertSubscriberDataArg_sequence[] = {
5115   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5116   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5117   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl },
5118   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStatus_impl },
5119   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
5120   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
5121   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provisionedSS_impl },
5122   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Data_impl },
5123   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
5124   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionData_impl },
5125   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsSubscriptionData_impl },
5126   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsSubscriptionData_impl },
5127   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlrCamelSubscriptionInfo_impl },
5128   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5129   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
5130   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSubscriptionData_impl },
5131   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl },
5132   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkAccessMode_impl },
5133   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaInformation_impl },
5134   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmu_Indicator_impl },
5135   { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsInformation_impl },
5136   { 0, 0, 0, NULL }
5137 };
5138
5139 static int
5140 dissect_gsm_map_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5141   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5142                                 InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
5143
5144   return offset;
5145 }
5146
5147 static const ber_sequence_t ss_List_sequence_of[1] = {
5148   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_List_item },
5149 };
5150
5151 static int
5152 dissect_gsm_map_ss_List(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5153   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5154                                    ss_List_sequence_of, hf_index, ett_gsm_map_ss_List);
5155
5156   return offset;
5157 }
5158 static int dissect_ss_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5159   return dissect_gsm_map_ss_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List);
5160 }
5161
5162
5163 static const value_string gsm_map_RegionalSubscriptionResponse_vals[] = {
5164   {   0, "networkNodeAreaRestricted" },
5165   {   1, "tooManyZoneCodes" },
5166   {   2, "zoneCodesConflict" },
5167   {   3, "regionalSubscNotSupported" },
5168   { 0, NULL }
5169 };
5170
5171
5172 static int
5173 dissect_gsm_map_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5174   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5175
5176   return offset;
5177 }
5178 static int dissect_regionalSubscriptionResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5179   return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionResponse);
5180 }
5181
5182 static const ber_sequence_t InsertSubscriberDataRes_sequence[] = {
5183   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
5184   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
5185   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
5186   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_GeneralData_impl },
5187   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
5188   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
5189   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5190   { 0, 0, 0, NULL }
5191 };
5192
5193 static int
5194 dissect_gsm_map_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5195   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5196                                 InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
5197
5198   return offset;
5199 }
5200
5201 static const ber_sequence_t T_contextIdList_sequence_of[1] = {
5202   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_contextIdList_item },
5203 };
5204
5205 static int
5206 dissect_gsm_map_T_contextIdList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5207   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5208                                    T_contextIdList_sequence_of, hf_index, ett_gsm_map_T_contextIdList);
5209
5210   return offset;
5211 }
5212 static int dissect_contextIdList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5213   return dissect_gsm_map_T_contextIdList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList);
5214 }
5215
5216
5217 static const value_string gsm_map_T_gprsSubscriptionDataWithdraw_vals[] = {
5218   {   0, "allGPRSData" },
5219   {   1, "contextIdList" },
5220   { 0, NULL }
5221 };
5222
5223 static const ber_choice_t T_gprsSubscriptionDataWithdraw_choice[] = {
5224   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allGPRSData },
5225   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextIdList },
5226   { 0, 0, 0, 0, NULL }
5227 };
5228
5229 static int
5230 dissect_gsm_map_T_gprsSubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5231   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5232                               T_gprsSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_T_gprsSubscriptionDataWithdraw);
5233
5234   return offset;
5235 }
5236 static int dissect_gprsSubscriptionDataWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5237   return dissect_gsm_map_T_gprsSubscriptionDataWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionDataWithdraw);
5238 }
5239
5240 static const ber_sequence_t T_lsaIdentityList_sequence_of[1] = {
5241   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList_item },
5242 };
5243
5244 static int
5245 dissect_gsm_map_T_lsaIdentityList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5246   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5247                                    T_lsaIdentityList_sequence_of, hf_index, ett_gsm_map_T_lsaIdentityList);
5248
5249   return offset;
5250 }
5251 static int dissect_lsaIdentityList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5252   return dissect_gsm_map_T_lsaIdentityList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList);
5253 }
5254
5255
5256 static const value_string gsm_map_T_lsaInformationWithdraw_vals[] = {
5257   {   0, "allLSAData" },
5258   {   1, "lsaIdentityList" },
5259   { 0, NULL }
5260 };
5261
5262 static const ber_choice_t T_lsaInformationWithdraw_choice[] = {
5263   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allLSAData },
5264   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList },
5265   { 0, 0, 0, 0, NULL }
5266 };
5267
5268 static int
5269 dissect_gsm_map_T_lsaInformationWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5270   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5271                               T_lsaInformationWithdraw_choice, hf_index, ett_gsm_map_T_lsaInformationWithdraw);
5272
5273   return offset;
5274 }
5275 static int dissect_lsaInformationWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5276   return dissect_gsm_map_T_lsaInformationWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformationWithdraw);
5277 }
5278
5279 static const ber_sequence_t DeleteSubscriberDataArg_sequence[] = {
5280   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5281   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
5282   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
5283   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
5284   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionIdentifier_impl },
5285   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsGroupIndication_impl },
5286   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsGroupIndication_impl },
5287   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelSubscriptionInfoWithdraw_impl },
5288   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5289   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_gprsSubscriptionDataWithdraw },
5290   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl },
5291   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_lsaInformationWithdraw },
5292   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_ListWithdraw_impl },
5293   { 0, 0, 0, NULL }
5294 };
5295
5296 static int
5297 dissect_gsm_map_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5298   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5299                                 DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
5300
5301   return offset;
5302 }
5303
5304 static const ber_sequence_t DeleteSubscriberDataRes_sequence[] = {
5305   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
5306   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5307   { 0, 0, 0, NULL }
5308 };
5309
5310 static int
5311 dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5312   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5313                                 DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
5314
5315   return offset;
5316 }
5317
5318
5319 static int
5320 dissect_gsm_map_OCTET_STRING_SIZE_3_8(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5321   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5322                                     NULL);
5323
5324   return offset;
5325 }
5326 static int dissect_hlr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5327   return dissect_gsm_map_OCTET_STRING_SIZE_3_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List_item);
5328 }
5329
5330 static const ber_sequence_t T_hlr_List_sequence_of[1] = {
5331   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_List_item },
5332 };
5333
5334 static int
5335 dissect_gsm_map_T_hlr_List(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5336   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5337                                    T_hlr_List_sequence_of, hf_index, ett_gsm_map_T_hlr_List);
5338
5339   return offset;
5340 }
5341 static int dissect_hlr_List(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5342   return dissect_gsm_map_T_hlr_List(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List);
5343 }
5344
5345 static const ber_sequence_t ResetArg_sequence[] = {
5346   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
5347   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List },
5348   { 0, 0, 0, NULL }
5349 };
5350
5351 static int
5352 dissect_gsm_map_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5353   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5354                                 ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
5355
5356   return offset;
5357 }
5358
5359 static const ber_sequence_t RestoreDataArg_sequence[] = {
5360   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
5361   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
5362   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5363   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
5364   { 0, 0, 0, NULL }
5365 };
5366
5367 static int
5368 dissect_gsm_map_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5369   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5370                                 RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
5371
5372   return offset;
5373 }
5374
5375 static const ber_sequence_t RestoreDataRes_sequence[] = {
5376   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
5377   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable },
5378   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5379   { 0, 0, 0, NULL }
5380 };
5381
5382 static int
5383 dissect_gsm_map_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5384   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5385                                 RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
5386
5387   return offset;
5388 }
5389
5390
5391 static int
5392 dissect_gsm_map_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5393   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5394                                     NULL);
5395
5396   return offset;
5397 }
5398 static int dissect_traceReference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5399   return dissect_gsm_map_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceReference);
5400 }
5401 static int dissect_transactionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5402   return dissect_gsm_map_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_transactionId);
5403 }
5404
5405
5406
5407 static int
5408 dissect_gsm_map_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5409   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5410
5411   return offset;
5412 }
5413 static int dissect_traceType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5414   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceType);
5415 }
5416 static int dissect_absentSubscriberDiagnosticSM(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5417   return dissect_gsm_map_INTEGER_0_255(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
5418 }
5419 static int dissect_absentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5420   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
5421 }
5422 static int dissect_additionalAbsentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5423   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalAbsentSubscriberDiagnosticSM);
5424 }
5425 static int dissect_mobileNotReachableReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5426   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mobileNotReachableReason);
5427 }
5428
5429 static const ber_sequence_t ActivateTraceModeArg_sequence[] = {
5430   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5431   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
5432   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_traceType_impl },
5433   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_omc_Id_impl },
5434   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5435   { 0, 0, 0, NULL }
5436 };
5437
5438 static int
5439 dissect_gsm_map_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5440   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5441                                 ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
5442
5443   return offset;
5444 }
5445
5446 static const ber_sequence_t ActivateTraceModeRes_sequence[] = {
5447   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5448   { 0, 0, 0, NULL }
5449 };
5450
5451 static int
5452 dissect_gsm_map_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5453   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5454                                 ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
5455
5456   return offset;
5457 }
5458
5459 static const ber_sequence_t DeactivateTraceModeArg_sequence[] = {
5460   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5461   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
5462   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5463   { 0, 0, 0, NULL }
5464 };
5465
5466 static int
5467 dissect_gsm_map_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5468   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5469                                 DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
5470
5471   return offset;
5472 }
5473
5474 static const ber_sequence_t DeactivateTraceModeRes_sequence[] = {
5475   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5476   { 0, 0, 0, NULL }
5477 };
5478
5479 static int
5480 dissect_gsm_map_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5481   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5482                                 DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
5483
5484   return offset;
5485 }
5486
5487 static const ber_sequence_t Cug_CheckInfo_sequence[] = {
5488   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
5489   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess },
5490   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5491   { 0, 0, 0, NULL }
5492 };
5493
5494 static int
5495 dissect_gsm_map_Cug_CheckInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5496   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5497                                 Cug_CheckInfo_sequence, hf_index, ett_gsm_map_Cug_CheckInfo);
5498
5499   return offset;
5500 }
5501 static int dissect_cug_CheckInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5502   return dissect_gsm_map_Cug_CheckInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_CheckInfo);
5503 }
5504
5505
5506 static const value_string gsm_map_T_interrogationType_vals[] = {
5507   {   0, "basicCall" },
5508   {   1, "forwarding" },
5509   { 0, NULL }
5510 };
5511
5512
5513 static int
5514 dissect_gsm_map_T_interrogationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5515   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5516
5517   return offset;
5518 }
5519 static int dissect_interrogationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5520   return dissect_gsm_map_T_interrogationType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_interrogationType);
5521 }
5522
5523
5524
5525 static int
5526 dissect_gsm_map_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5527   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5528
5529   return offset;
5530 }
5531 static int dissect_or_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5532   return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Capability);
5533 }
5534 static int dissect_supportedCCBS_Phase_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5535   return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCCBS_Phase);
5536 }
5537
5538
5539 static int
5540 dissect_gsm_map_Gmsc_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5541
5542  tvbuff_t       *parameter_tvb;
5543  char           *digit_str;
5544
5545  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5546                                     &parameter_tvb);
5547
5548  if (!parameter_tvb)
5549         return offset;
5550
5551  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
5552  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
5553  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
5554
5555  digit_str = unpack_digits(parameter_tvb, 1);
5556
5557  proto_tree_add_string(tree, hf_gsm_map_map_gmsc_address_digits, parameter_tvb, 1, -1, digit_str);
5558  if (digit_str)
5559         g_free(digit_str);
5560
5561
5562   return offset;
5563 }
5564 static int dissect_gmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5565   return dissect_gsm_map_Gmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_Address);
5566 }
5567
5568
5569 static const value_string gsm_map_T_forwardingReason_vals[] = {
5570   {   0, "notReachable" },
5571   {   1, "busy" },
5572   {   2, "noReply" },
5573   { 0, NULL }
5574 };
5575
5576
5577 static int
5578 dissect_gsm_map_T_forwardingReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5579   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5580
5581   return offset;
5582 }
5583 static int dissect_forwardingReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5584   return dissect_gsm_map_T_forwardingReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingReason);
5585 }
5586
5587 static const ber_sequence_t T_camelInfo_sequence[] = {
5588   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases },
5589   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI },
5590   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5591   { 0, 0, 0, NULL }
5592 };
5593
5594 static int
5595 dissect_gsm_map_T_camelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5596   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5597                                 T_camelInfo_sequence, hf_index, ett_gsm_map_T_camelInfo);
5598
5599   return offset;
5600 }
5601 static int dissect_camelInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5602   return dissect_gsm_map_T_camelInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelInfo);
5603 }
5604
5605
5606 static const value_string gsm_map_T_ext_ProtocolId_vals[] = {
5607   {   1, "ets-300356" },
5608   { 0, NULL }
5609 };
5610
5611
5612 static int
5613 dissect_gsm_map_T_ext_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5614   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5615
5616   return offset;
5617 }
5618 static int dissect_ext_ProtocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5619   return dissect_gsm_map_T_ext_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_ProtocolId);
5620 }
5621
5622
5623 static int
5624 dissect_gsm_map_ExtSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5625   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5626                                     NULL);
5627
5628   return offset;
5629 }
5630 static int dissect_ext_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5631   return dissect_gsm_map_ExtSignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_signalInfo);
5632 }
5633
5634 static const ber_sequence_t AdditionalSignalInfo_sequence[] = {
5635   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId },
5636   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_signalInfo },
5637   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5638   { 0, 0, 0, NULL }
5639 };
5640
5641 static int
5642 dissect_gsm_map_AdditionalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5643   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5644                                 AdditionalSignalInfo_sequence, hf_index, ett_gsm_map_AdditionalSignalInfo);
5645
5646   return offset;
5647 }
5648 static int dissect_additionalSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5649   return dissect_gsm_map_AdditionalSignalInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSignalInfo);
5650 }
5651
5652 static const ber_sequence_t SendRoutingInfoArg_sequence[] = {
5653   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5654   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
5655   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfForwarding_impl },
5656   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_interrogationType_impl },
5657   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
5658   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Capability_impl },
5659   { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
5660   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
5661   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingReason_impl },
5662   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
5663   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
5664   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelInfo_impl },
5665   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
5666   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5667   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
5668   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
5669   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCCBS_Phase_impl },
5670   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
5671   { 0, 0, 0, NULL }
5672 };
5673
5674 static int
5675 dissect_gsm_map_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5676   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5677                                 SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
5678
5679   return offset;
5680 }
5681
5682
5683 static int
5684 dissect_gsm_map_RoamingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5685
5686  tvbuff_t       *parameter_tvb;
5687  char           *digit_str;
5688
5689  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5690                                     &parameter_tvb);
5691
5692  if (!parameter_tvb)
5693         return offset;
5694
5695  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
5696  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
5697  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
5698
5699  digit_str = unpack_digits(parameter_tvb, 1);
5700
5701  proto_tree_add_string(tree, hf_gsm_map_map_RoamingNumber_digits, parameter_tvb, 1, -1, digit_str);
5702  if (digit_str)
5703         g_free(digit_str);
5704
5705   return offset;
5706 }
5707 static int dissect_roamingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5708   return dissect_gsm_map_RoamingNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNumber);
5709 }
5710
5711 static const ber_sequence_t ForwardingData_sequence[] = {
5712   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
5713   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
5714   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
5715   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5716   { 0, 0, 0, NULL }
5717 };
5718
5719 static int
5720 dissect_gsm_map_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5721   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5722                                 ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
5723
5724   return offset;
5725 }
5726 static int dissect_forwardingData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5727   return dissect_gsm_map_ForwardingData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
5728 }
5729 static int dissect_forwardingData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5730   return dissect_gsm_map_ForwardingData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
5731 }
5732
5733
5734 static const value_string gsm_map_T_routingInfo_vals[] = {
5735   {   0, "roamingNumber" },
5736   {   1, "forwardingData" },
5737   { 0, NULL }
5738 };
5739
5740 static const ber_choice_t T_routingInfo_choice[] = {
5741   {   0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
5742   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingData },
5743   { 0, 0, 0, 0, NULL }
5744 };
5745
5746 static int
5747 dissect_gsm_map_T_routingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5748   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5749                               T_routingInfo_choice, hf_index, ett_gsm_map_T_routingInfo);
5750
5751   return offset;
5752 }
5753 static int dissect_routingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5754   return dissect_gsm_map_T_routingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_routingInfo);
5755 }
5756
5757 static const ber_sequence_t t_CSI_sequence[] = {
5758   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
5759   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5760   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
5761   { 0, 0, 0, NULL }
5762 };
5763
5764 static int
5765 dissect_gsm_map_t_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5766   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5767                                 t_CSI_sequence, hf_index, ett_gsm_map_t_CSI);
5768
5769   return offset;
5770 }
5771 static int dissect_t_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5772   return dissect_gsm_map_t_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CSI);
5773 }
5774
5775 static const ber_sequence_t T_gmscCamelSubscriptionInfo_sequence[] = {
5776   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
5777   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
5778   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5779   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
5780   { 0, 0, 0, NULL }
5781 };
5782
5783 static int
5784 dissect_gsm_map_T_gmscCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5785   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5786                                 T_gmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_gmscCamelSubscriptionInfo);
5787
5788   return offset;
5789 }
5790 static int dissect_gmscCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5791   return dissect_gsm_map_T_gmscCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmscCamelSubscriptionInfo);
5792 }
5793
5794 static const ber_sequence_t T_camelRoutingInfo_sequence[] = {
5795   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData },
5796   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl },
5797   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5798   { 0, 0, 0, NULL }
5799 };
5800
5801 static int
5802 dissect_gsm_map_T_camelRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5803   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5804                                 T_camelRoutingInfo_sequence, hf_index, ett_gsm_map_T_camelRoutingInfo);
5805
5806   return offset;
5807 }
5808 static int dissect_camelRoutingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5809   return dissect_gsm_map_T_camelRoutingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelRoutingInfo);
5810 }
5811
5812
5813 static const value_string gsm_map_T_extendedRoutingInfo_vals[] = {
5814   {   0, "routingInfo" },
5815   {   1, "camelRoutingInfo" },
5816   { 0, NULL }
5817 };
5818
5819 static const ber_choice_t T_extendedRoutingInfo_choice[] = {
5820   {   0, BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
5821   {   1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl },
5822   { 0, 0, 0, 0, NULL }
5823 };
5824
5825 static int
5826 dissect_gsm_map_T_extendedRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5827   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5828                               T_extendedRoutingInfo_choice, hf_index, ett_gsm_map_T_extendedRoutingInfo);
5829
5830   return offset;
5831 }
5832 static int dissect_extendedRoutingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5833   return dissect_gsm_map_T_extendedRoutingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extendedRoutingInfo);
5834 }
5835
5836
5837 static int
5838 dissect_gsm_map_OCTET_STRING_SIZE_2_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5839   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5840                                     NULL);
5841
5842   return offset;
5843 }
5844 static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5845   return dissect_gsm_map_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationNumber);
5846 }
5847
5848
5849 static int
5850 dissect_gsm_map_OCTET_STRING_SIZE_5(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5851   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5852                                     NULL);
5853
5854   return offset;
5855 }
5856 static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5857   return dissect_gsm_map_OCTET_STRING_SIZE_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_laiFixedLength);
5858 }
5859
5860
5861 static const value_string gsm_map_T_cellIdOrLAI_vals[] = {
5862   {   0, "cellIdFixedLength" },
5863   {   1, "laiFixedLength" },
5864   { 0, NULL }
5865 };
5866
5867 static const ber_choice_t T_cellIdOrLAI_choice[] = {
5868   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellIdFixedLength_impl },
5869   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
5870   { 0, 0, 0, 0, NULL }
5871 };
5872
5873 static int
5874 dissect_gsm_map_T_cellIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5875   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5876                               T_cellIdOrLAI_choice, hf_index, ett_gsm_map_T_cellIdOrLAI);
5877
5878   return offset;
5879 }
5880 static int dissect_cellIdOrLAI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5881   return dissect_gsm_map_T_cellIdOrLAI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdOrLAI);
5882 }
5883
5884
5885 static int
5886 dissect_gsm_map_OCTET_STRING_SIZE_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5887   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5888                                     NULL);
5889
5890   return offset;
5891 }
5892 static int dissect_geodeticInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5893   return dissect_gsm_map_OCTET_STRING_SIZE_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geodeticInformation);
5894 }
5895
5896 static const ber_sequence_t LocationInformation_sequence[] = {
5897   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation },
5898   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
5899   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl },
5900   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
5901   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_cellIdOrLAI },
5902   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5903   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSA_Id_impl },
5904   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
5905   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl },
5906   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl },
5907   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
5908   { 0, 0, 0, NULL }
5909 };
5910
5911 static int
5912 dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5913   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5914                                 LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
5915
5916   return offset;
5917 }
5918 static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5919   return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformation);
5920 }
5921
5922
5923 static const value_string gsm_map_SubscriberState_vals[] = {
5924   {   0, "assumedIdle" },
5925   {   1, "camelBusy" },
5926   {   2, "notProvidedFromVLR" },
5927   { 0, NULL }
5928 };
5929
5930 static const ber_choice_t SubscriberState_choice[] = {
5931   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl },
5932   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl },
5933   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl },
5934   { 0, 0, 0, 0, NULL }
5935 };
5936
5937 static int
5938 dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5939   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5940                               SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState);
5941
5942   return offset;
5943 }
5944 static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5945   return dissect_gsm_map_SubscriberState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberState);
5946 }
5947
5948
5949 static const value_string gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
5950   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
5951   {   1, "laiFixedLength" },
5952   { 0, NULL }
5953 };
5954
5955 static const ber_choice_t T_cellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
5956   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl },
5957   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
5958   { 0, 0, 0, 0, NULL }
5959 };
5960
5961 static int
5962 dissect_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5963   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5964                               T_cellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI);
5965
5966   return offset;
5967 }
5968 static int dissect_cellGlobalIdOrServiceAreaIdOrLAI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5969   return dissect_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI);
5970 }
5971
5972
5973 static int
5974 dissect_gsm_map_OCTET_STRING_SIZE_6(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5975   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5976                                     NULL);
5977
5978   return offset;
5979 }
5980 static int dissect_routeingAreaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5981   return dissect_gsm_map_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_routeingAreaIdentity);
5982 }
5983
5984 static const ber_sequence_t T_locationInformationGPRS_sequence[] = {
5985   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_cellGlobalIdOrServiceAreaIdOrLAI },
5986   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingAreaIdentity_impl },
5987   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
5988   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
5989   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSAIdentity_impl },
5990   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5991   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
5992   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl },
5993   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl },
5994   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationInformation_impl },
5995   { 0, 0, 0, NULL }
5996 };
5997
5998 static int
5999 dissect_gsm_map_T_locationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6000   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6001                                 T_locationInformationGPRS_sequence, hf_index, ett_gsm_map_T_locationInformationGPRS);
6002
6003   return offset;
6004 }
6005 static int dissect_locationInformationGPRS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6006   return dissect_gsm_map_T_locationInformationGPRS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformationGPRS);
6007 }
6008
6009
6010 static int
6011 dissect_gsm_map_Ggsn_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6012   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6013                                     NULL);
6014
6015   return offset;
6016 }
6017 static int dissect_ggsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6018   return dissect_gsm_map_Ggsn_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Address);
6019 }
6020
6021
6022 static int
6023 dissect_gsm_map_OCTET_STRING_SIZE_1_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6024   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6025                                     NULL);
6026
6027   return offset;
6028 }
6029 static int dissect_qos2_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6030   return dissect_gsm_map_OCTET_STRING_SIZE_1_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Subscribed);
6031 }
6032 static int dissect_qos2_Requested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6033   return dissect_gsm_map_OCTET_STRING_SIZE_1_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Requested);
6034 }
6035 static int dissect_qos2_Negotiated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6036   return dissect_gsm_map_OCTET_STRING_SIZE_1_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Negotiated);
6037 }
6038
6039 static const ber_sequence_t T_ps_PDP_ActiveNotReachableForPaging_item_sequence[] = {
6040   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl },
6041   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl },
6042   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
6043   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
6044   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_Subscribed_impl },
6045   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_InUse_impl },
6046   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nsapi_impl },
6047   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
6048   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForGnAndGp_impl },
6049   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForIu_impl },
6050   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
6051   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
6052   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Requested_impl },
6053   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Negotiated_impl },
6054   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingId_impl },
6055   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl },
6056   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_Address_impl },
6057   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6058   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Subscribed_impl },
6059   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Requested_impl },
6060   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Negotiated_impl },
6061   { 0, 0, 0, NULL }
6062 };
6063
6064 static int
6065 dissect_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6066   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6067                                 T_ps_PDP_ActiveNotReachableForPaging_item_sequence, hf_index, ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item);
6068
6069   return offset;
6070 }
6071 static int dissect_ps_PDP_ActiveNotReachableForPaging_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6072   return dissect_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveNotReachableForPaging_item);
6073 }
6074
6075 static const ber_sequence_t T_ps_PDP_ActiveNotReachableForPaging_sequence_of[1] = {
6076   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ps_PDP_ActiveNotReachableForPaging_item },
6077 };
6078
6079 static int
6080 dissect_gsm_map_T_ps_PDP_ActiveNotReachableForPaging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6081   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6082                                    T_ps_PDP_ActiveNotReachableForPaging_sequence_of, hf_index, ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging);
6083
6084   return offset;
6085 }
6086 static int dissect_ps_PDP_ActiveNotReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6087   return dissect_gsm_map_T_ps_PDP_ActiveNotReachableForPaging(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveNotReachableForPaging);
6088 }
6089
6090 static const ber_sequence_t T_ps_PDP_ActiveReachableForPaging_item_sequence[] = {
6091   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl },
6092   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl },
6093   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
6094   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
6095   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_Subscribed_impl },
6096   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_InUse_impl },
6097   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nsapi_impl },
6098   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
6099   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForGnAndGp_impl },
6100   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForIu_impl },
6101   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
6102   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
6103   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Requested_impl },
6104   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Negotiated_impl },
6105   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingId_impl },
6106   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl },
6107   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_Address_impl },
6108   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6109   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Subscribed_impl },
6110   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Requested_impl },
6111   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Negotiated_impl },
6112   { 0, 0, 0, NULL }
6113 };
6114
6115 static int
6116 dissect_gsm_map_T_ps_PDP_ActiveReachableForPaging_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6117   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6118                                 T_ps_PDP_ActiveReachableForPaging_item_sequence, hf_index, ett_gsm_map_T_ps_PDP_ActiveReachableForPaging_item);
6119
6120   return offset;
6121 }
6122 static int dissect_ps_PDP_ActiveReachableForPaging_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6123   return dissect_gsm_map_T_ps_PDP_ActiveReachableForPaging_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveReachableForPaging_item);
6124 }
6125
6126 static const ber_sequence_t T_ps_PDP_ActiveReachableForPaging_sequence_of[1] = {
6127   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ps_PDP_ActiveReachableForPaging_item },
6128 };
6129
6130 static int
6131 dissect_gsm_map_T_ps_PDP_ActiveReachableForPaging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6132   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6133                                    T_ps_PDP_ActiveReachableForPaging_sequence_of, hf_index, ett_gsm_map_T_ps_PDP_ActiveReachableForPaging);
6134
6135   return offset;
6136 }
6137 static int dissect_ps_PDP_ActiveReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6138   return dissect_gsm_map_T_ps_PDP_ActiveReachableForPaging(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveReachableForPaging);
6139 }
6140
6141
6142 static const value_string gsm_map_T_netDetNotReachable_vals[] = {
6143   {   0, "msPurged" },
6144   {   1, "imsiDetached" },
6145   {   2, "restrictedArea" },
6146   {   3, "notRegistered" },
6147   { 0, NULL }
6148 };
6149
6150
6151 static int
6152 dissect_gsm_map_T_netDetNotReachable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6153   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6154
6155   return offset;
6156 }
6157 static int dissect_netDetNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6158   return dissect_gsm_map_T_netDetNotReachable(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_netDetNotReachable);
6159 }
6160
6161
6162 static const value_string gsm_map_T_ps_SubscriberState_vals[] = {
6163   {   0, "notProvidedFromSGSN" },
6164   {   1, "ps-Detached" },
6165   {   2, "ps-AttachedNotReachableForPaging" },
6166   {   3, "ps-AttachedReachableForPaging" },
6167   {   4, "ps-PDP-ActiveNotReachableForPaging" },
6168   {   5, "ps-PDP-ActiveReachableForPaging" },
6169   {   6, "netDetNotReachable" },
6170   { 0, NULL }
6171 };
6172
6173 static const ber_choice_t T_ps_SubscriberState_choice[] = {
6174   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_notProvidedFromSGSN_impl },
6175   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ps_Detached_impl },
6176   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ps_AttachedNotReachableForPaging_impl },
6177   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ps_AttachedReachableForPaging_impl },
6178   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveNotReachableForPaging_impl },
6179   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveReachableForPaging_impl },
6180   {   6, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable },
6181   { 0, 0, 0, 0, NULL }
6182 };
6183
6184 static int
6185 dissect_gsm_map_T_ps_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6186   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6187                               T_ps_SubscriberState_choice, hf_index, ett_gsm_map_T_ps_SubscriberState);
6188
6189   return offset;
6190 }
6191 static int dissect_ps_SubscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6192   return dissect_gsm_map_T_ps_SubscriberState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ps_SubscriberState);
6193 }
6194
6195
6196 static int
6197 dissect_gsm_map_OCTET_STRING_SIZE_1_50(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6198   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6199                                     NULL);
6200
6201   return offset;
6202 }
6203 static int dissect_mSRadioAccessCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6204   return dissect_gsm_map_OCTET_STRING_SIZE_1_50(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mSRadioAccessCapability);
6205 }
6206
6207 static const ber_sequence_t T_gprs_MS_Class_sequence[] = {
6208   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mSNetworkCapability_impl },
6209   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mSRadioAccessCapability_impl },
6210   { 0, 0, 0, NULL }
6211 };
6212
6213 static int
6214 dissect_gsm_map_T_gprs_MS_Class(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6215   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6216                                 T_gprs_MS_Class_sequence, hf_index, ett_gsm_map_T_gprs_MS_Class);
6217
6218   return offset;
6219 }
6220 static int dissect_gprs_MS_Class_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6221   return dissect_gsm_map_T_gprs_MS_Class(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_MS_Class);
6222 }
6223
6224
6225 static const value_string gsm_map_NumberPortabilityStatus_vals[] = {
6226   {   0, "notKnownToBePorted" },
6227   {   1, "ownNumberPortedOut" },
6228   {   2, "foreignNumberPortedToForeignNetwork" },
6229   {   4, "ownNumberNotPortedOut" },
6230   {   5, "foreignNumberPortedIn" },
6231   { 0, NULL }
6232 };
6233
6234
6235 static int
6236 dissect_gsm_map_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6237   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6238
6239   return offset;
6240 }
6241 static int dissect_numberPortabilityStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6242   return dissect_gsm_map_NumberPortabilityStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberPortabilityStatus);
6243 }
6244
6245 static const ber_sequence_t T_mnpInfoRes_sequence[] = {
6246   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingNumber_impl },
6247   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6248   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6249   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
6250   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6251   { 0, 0, 0, NULL }
6252 };
6253
6254 static int
6255 dissect_gsm_map_T_mnpInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6256   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6257                                 T_mnpInfoRes_sequence, hf_index, ett_gsm_map_T_mnpInfoRes);
6258
6259   return offset;
6260 }
6261 static int dissect_mnpInfoRes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6262   return dissect_gsm_map_T_mnpInfoRes(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mnpInfoRes);
6263 }
6264
6265 static const ber_sequence_t SubscriberInfo_sequence[] = {
6266   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
6267   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState },
6268   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6269   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
6270   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_ps_SubscriberState },
6271   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
6272   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_Classmark2_impl },
6273   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_MS_Class_impl },
6274   { BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mnpInfoRes_impl },
6275   { 0, 0, 0, NULL }
6276 };
6277
6278 static int
6279 dissect_gsm_map_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6280   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6281                                 SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
6282
6283   return offset;
6284 }
6285 static int dissect_subscriberInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6286   return dissect_gsm_map_SubscriberInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
6287 }
6288 static int dissect_subscriberInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6289   return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
6290 }
6291
6292
6293 static int
6294 dissect_gsm_map_T_vmsc_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6295   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6296                                     NULL);
6297
6298   return offset;
6299 }
6300 static int dissect_vmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6301   return dissect_gsm_map_T_vmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vmsc_Address);
6302 }
6303
6304 static const ber_sequence_t T_ccbs_Indicators_sequence[] = {
6305   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
6306   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl },
6307   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6308   { 0, 0, 0, NULL }
6309 };
6310
6311 static int
6312 dissect_gsm_map_T_ccbs_Indicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6313   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6314                                 T_ccbs_Indicators_sequence, hf_index, ett_gsm_map_T_ccbs_Indicators);
6315
6316   return offset;
6317 }
6318 static int dissect_ccbs_Indicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6319   return dissect_gsm_map_T_ccbs_Indicators(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Indicators);
6320 }
6321
6322 static const ber_sequence_t SendRoutingInfoRes_sequence[] = {
6323   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6324   { -1/*choice*/ , -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
6325   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
6326   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl },
6327   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl },
6328   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
6329   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6330   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInterrogationRequired_impl },
6331   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vmsc_Address_impl },
6332   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6333   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
6334   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Indicators_impl },
6335   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6336   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
6337   { 0, 0, 0, NULL }
6338 };
6339
6340 static int
6341 dissect_gsm_map_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6342   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6343                                 SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
6344
6345   return offset;
6346 }
6347
6348
6349 static const value_string gsm_map_NetDetNotReachable_vals[] = {
6350   {   0, "msPurged" },
6351   {   1, "imsiDetached" },
6352   {   2, "restrictedArea" },
6353   {   3, "notRegistered" },
6354   { 0, NULL }
6355 };
6356
6357
6358 static int
6359 dissect_gsm_map_NetDetNotReachable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6360   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6361
6362   return offset;
6363 }
6364
6365 static const ber_sequence_t ProvideRoamingNumberArg_sequence[] = {
6366   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6367   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
6368   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6369   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
6370   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
6371   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
6372   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
6373   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
6374   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
6375   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
6376   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6377   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
6378   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
6379   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInGMSC_impl },
6380   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
6381   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_orNotSupportedInGMSC_impl },
6382   { 0, 0, 0, NULL }
6383 };
6384
6385 static int
6386 dissect_gsm_map_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6387   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6388                                 ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
6389
6390   return offset;
6391 }
6392
6393 static const ber_sequence_t ProvideRoamingNumberRes_sequence[] = {
6394   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
6395   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6396   { 0, 0, 0, NULL }
6397 };
6398
6399 static int
6400 dissect_gsm_map_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6401   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6402                                 ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
6403
6404   return offset;
6405 }
6406
6407
6408 static int
6409 dissect_gsm_map_OCTET_STRING_SIZE_1_131(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6410   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6411                                     NULL);
6412
6413   return offset;
6414 }
6415 static int dissect_uui_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6416   return dissect_gsm_map_OCTET_STRING_SIZE_1_131(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uui);
6417 }
6418
6419 static const ber_sequence_t T_uu_Data_sequence[] = {
6420   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl },
6421   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl },
6422   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uusCFInteraction_impl },
6423   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6424   { 0, 0, 0, NULL }
6425 };
6426
6427 static int
6428 dissect_gsm_map_T_uu_Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6429   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6430                                 T_uu_Data_sequence, hf_index, ett_gsm_map_T_uu_Data);
6431
6432   return offset;
6433 }
6434 static int dissect_uu_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6435   return dissect_gsm_map_T_uu_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uu_Data);
6436 }
6437
6438 static const ber_sequence_t ResumeCallHandlingArg_sequence[] = {
6439   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
6440   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
6441   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingData_impl },
6442   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6443   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
6444   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
6445   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6446   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
6447   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6448   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl },
6449   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allInformationSent_impl },
6450   { 0, 0, 0, NULL }
6451 };
6452
6453 static int
6454 dissect_gsm_map_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6455   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6456                                 ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
6457
6458   return offset;
6459 }
6460
6461 static const ber_sequence_t ResumeCallHandlingRes_sequence[] = {
6462   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6463   { 0, 0, 0, NULL }
6464 };
6465
6466 static int
6467 dissect_gsm_map_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6468   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6469                                 ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
6470
6471   return offset;
6472 }
6473
6474
6475 static int
6476 dissect_gsm_map_T_b_Subscriber_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6477   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6478                                     NULL);
6479
6480   return offset;
6481 }
6482 static int dissect_b_Subscriber_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6483   return dissect_gsm_map_T_b_Subscriber_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_Subscriber_Address);
6484 }
6485
6486 static const ber_sequence_t ProvideSIWFSNumberArg_sequence[] = {
6487   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
6488   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl },
6489   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_call_Direction_impl },
6490   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_b_Subscriber_Address_impl },
6491   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
6492   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowerLayerCompatibility_impl },
6493   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
6494   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6495   { 0, 0, 0, NULL }
6496 };
6497
6498 static int
6499 dissect_gsm_map_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6500   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6501                                 ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
6502
6503   return offset;
6504 }
6505
6506
6507 static int
6508 dissect_gsm_map_T_sIWFSNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6509   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6510                                     NULL);
6511
6512   return offset;
6513 }
6514 static int dissect_sIWFSNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6515   return dissect_gsm_map_T_sIWFSNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sIWFSNumber);
6516 }
6517
6518 static const ber_sequence_t ProvideSIWFSNumberRes_sequence[] = {
6519   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl },
6520   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6521   { 0, 0, 0, NULL }
6522 };
6523
6524 static int
6525 dissect_gsm_map_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6526   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6527                                 ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
6528
6529   return offset;
6530 }
6531
6532 static const ber_sequence_t SIWFSSignallingModifyArg_sequence[] = {
6533   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
6534   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
6535   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6536   { 0, 0, 0, NULL }
6537 };
6538
6539 static int
6540 dissect_gsm_map_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6541   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6542                                 SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
6543
6544   return offset;
6545 }
6546
6547 static const ber_sequence_t SIWFSSignallingModifyRes_sequence[] = {
6548   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
6549   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6550   { 0, 0, 0, NULL }
6551 };
6552
6553 static int
6554 dissect_gsm_map_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6555   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6556                                 SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
6557
6558   return offset;
6559 }
6560
6561
6562 static const value_string gsm_map_Ccbs_Monitoring_vals[] = {
6563   {   0, "stopMonitoring" },
6564   {   1, "startMonitoring" },
6565   { 0, NULL }
6566 };
6567
6568
6569 static int
6570 dissect_gsm_map_Ccbs_Monitoring(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6571   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6572
6573   return offset;
6574 }
6575 static int dissect_ccbs_Monitoring_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6576   return dissect_gsm_map_Ccbs_Monitoring(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Monitoring);
6577 }
6578
6579 static const ber_sequence_t SetReportingStateArg_sequence[] = {
6580   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6581   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
6582   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Monitoring_impl },
6583   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6584   { 0, 0, 0, NULL }
6585 };
6586
6587 static int
6588 dissect_gsm_map_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6589   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6590                                 SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
6591
6592   return offset;
6593 }
6594
6595
6596 static const value_string gsm_map_Ccbs_SubscriberStatus_vals[] = {
6597   {   0, "ccbsNotIdle" },
6598   {   1, "ccbsIdle" },
6599   {   2, "ccbsNotReachable" },
6600   { 0, NULL }
6601 };
6602
6603
6604 static int
6605 dissect_gsm_map_Ccbs_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6606   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6607
6608   return offset;
6609 }
6610 static int dissect_ccbs_SubscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6611   return dissect_gsm_map_Ccbs_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_SubscriberStatus);
6612 }
6613
6614 static const ber_sequence_t SetReportingStateRes_sequence[] = {
6615   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
6616   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6617   { 0, 0, 0, NULL }
6618 };
6619
6620 static int
6621 dissect_gsm_map_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6622   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6623                                 SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
6624
6625   return offset;
6626 }
6627
6628
6629 static const value_string gsm_map_MonitoringMode_vals[] = {
6630   {   0, "a-side" },
6631   {   1, "b-side" },
6632   { 0, NULL }
6633 };
6634
6635
6636 static int
6637 dissect_gsm_map_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6638   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6639
6640   return offset;
6641 }
6642 static int dissect_monitoringMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6643   return dissect_gsm_map_MonitoringMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_monitoringMode);
6644 }
6645
6646
6647 static const value_string gsm_map_CallOutcome_vals[] = {
6648   {   0, "success" },
6649   {   1, "failure" },
6650   {   2, "busy" },
6651   { 0, NULL }
6652 };
6653
6654
6655 static int
6656 dissect_gsm_map_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6657   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6658
6659   return offset;
6660 }
6661 static int dissect_callOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6662   return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callOutcome);
6663 }
6664
6665 static const ber_sequence_t T_eventReportData_sequence[] = {
6666   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
6667   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6668   { 0, 0, 0, NULL }
6669 };
6670
6671 static int
6672 dissect_gsm_map_T_eventReportData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6673   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6674                                 T_eventReportData_sequence, hf_index, ett_gsm_map_T_eventReportData);
6675
6676   return offset;
6677 }
6678 static int dissect_eventReportData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6679   return dissect_gsm_map_T_eventReportData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_eventReportData);
6680 }
6681
6682 static const ber_sequence_t T_callReportdata_sequence[] = {
6683   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl },
6684   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl },
6685   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6686   { 0, 0, 0, NULL }
6687 };
6688
6689 static int
6690 dissect_gsm_map_T_callReportdata(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6691   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6692                                 T_callReportdata_sequence, hf_index, ett_gsm_map_T_callReportdata);
6693
6694   return offset;
6695 }
6696 static int dissect_callReportdata_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6697   return dissect_gsm_map_T_callReportdata(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReportdata);
6698 }
6699
6700 static const ber_sequence_t StatusReportArg_sequence[] = {
6701   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6702   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl },
6703   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReportdata_impl },
6704   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6705   { 0, 0, 0, NULL }
6706 };
6707
6708 static int
6709 dissect_gsm_map_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6710   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6711                                 StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
6712
6713   return offset;
6714 }
6715
6716 static const ber_sequence_t StatusReportRes_sequence[] = {
6717   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6718   { 0, 0, 0, NULL }
6719 };
6720
6721 static int
6722 dissect_gsm_map_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6723   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6724                                 StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
6725
6726   return offset;
6727 }
6728
6729
6730 static const value_string gsm_map_Ruf_Outcome_vals[] = {
6731   {   0, "accepted" },
6732   {   1, "rejected" },
6733   {   2, "noResponseFromFreeMS" },
6734   {   3, "noResponseFromBusyMS" },
6735   {   4, "udubFromFreeMS" },
6736   {   5, "udubFromBusyMS" },
6737   { 0, NULL }
6738 };
6739
6740
6741 static int
6742 dissect_gsm_map_Ruf_Outcome(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6743   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6744
6745   return offset;
6746 }
6747 static int dissect_ruf_Outcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6748   return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ruf_Outcome);
6749 }
6750
6751
6752 static int
6753 dissect_gsm_map_B_subscriberNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6754   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6755                                     NULL);
6756
6757   return offset;
6758 }
6759 static int dissect_b_subscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6760   return dissect_gsm_map_B_subscriberNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberNumber);
6761 }
6762
6763
6764 static int
6765 dissect_gsm_map_OCTET_STRING_SIZE_1_21(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6766   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6767                                     NULL);
6768
6769   return offset;
6770 }
6771 static int dissect_b_subscriberSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6772   return dissect_gsm_map_OCTET_STRING_SIZE_1_21(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberSubaddress);
6773 }
6774
6775 static const ber_sequence_t Ccbs_Feature_sequence[] = {
6776   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
6777   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
6778   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
6779   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
6780   { 0, 0, 0, NULL }
6781 };
6782
6783 static int
6784 dissect_gsm_map_Ccbs_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6785   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6786                                 Ccbs_Feature_sequence, hf_index, ett_gsm_map_Ccbs_Feature);
6787
6788   return offset;
6789 }
6790 static int dissect_ccbs_Feature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6791   return dissect_gsm_map_Ccbs_Feature(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Feature);
6792 }
6793
6794
6795 static int
6796 dissect_gsm_map_TranslatedB_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6797   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6798                                     NULL);
6799
6800   return offset;
6801 }
6802 static int dissect_translatedB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6803   return dissect_gsm_map_TranslatedB_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
6804 }
6805
6806 static const ber_sequence_t RemoteUserFreeArg_sequence[] = {
6807   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6808   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
6809   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
6810   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
6811   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replaceB_Number_impl },
6812   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
6813   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6814   { 0, 0, 0, NULL }
6815 };
6816
6817 static int
6818 dissect_gsm_map_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6819   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6820                                 RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
6821
6822   return offset;
6823 }
6824
6825 static const ber_sequence_t RemoteUserFreeRes_sequence[] = {
6826   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl },
6827   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6828   { 0, 0, 0, NULL }
6829 };
6830
6831 static int
6832 dissect_gsm_map_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6833   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6834                                 RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
6835
6836   return offset;
6837 }
6838
6839 static const ber_sequence_t RegisterSS_Arg_sequence[] = {
6840   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
6841   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6842   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
6843   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
6844   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
6845   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
6846   { 0, 0, 0, NULL }
6847 };
6848
6849 static int
6850 dissect_gsm_map_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6851   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6852                                 RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
6853
6854   return offset;
6855 }
6856
6857
6858 static const value_string gsm_map_Ss_Info_vals[] = {
6859   {   0, "forwardingInfo" },
6860   {   1, "callBarringInfo" },
6861   {   3, "ss-Data" },
6862   { 0, NULL }
6863 };
6864
6865 static const ber_choice_t Ss_Info_choice[] = {
6866   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
6867   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
6868   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
6869   { 0, 0, 0, 0, NULL }
6870 };
6871
6872 static int
6873 dissect_gsm_map_Ss_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6874   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6875                               Ss_Info_choice, hf_index, ett_gsm_map_Ss_Info);
6876
6877   return offset;
6878 }
6879
6880 static const ber_sequence_t Ss_ForBS_sequence[] = {
6881   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
6882   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6883   { 0, 0, 0, NULL }
6884 };
6885
6886 static int
6887 dissect_gsm_map_Ss_ForBS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6888   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6889                                 Ss_ForBS_sequence, hf_index, ett_gsm_map_Ss_ForBS);
6890
6891   return offset;
6892 }
6893
6894 static const ber_sequence_t SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList_sequence_of[1] = {
6895   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_item },
6896 };
6897
6898 static int
6899 dissect_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6900   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6901                                    SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList);
6902
6903   return offset;
6904 }
6905 static int dissect_forwardingFeatureList_1_13_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6906   return dissect_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_1_13);
6907 }
6908
6909 static const ber_sequence_t T_ccbs_FeatureList_item_sequence[] = {
6910   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
6911   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
6912   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
6913   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
6914   { 0, 0, 0, NULL }
6915 };
6916
6917 static int
6918 dissect_gsm_map_T_ccbs_FeatureList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6919   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6920                                 T_ccbs_FeatureList_item_sequence, hf_index, ett_gsm_map_T_ccbs_FeatureList_item);
6921
6922   return offset;
6923 }
6924 static int dissect_ccbs_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6925   return dissect_gsm_map_T_ccbs_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList_item);
6926 }
6927
6928 static const ber_sequence_t T_ccbs_FeatureList_sequence_of[1] = {
6929   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ccbs_FeatureList_item },
6930 };
6931
6932 static int
6933 dissect_gsm_map_T_ccbs_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6934   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6935                                    T_ccbs_FeatureList_sequence_of, hf_index, ett_gsm_map_T_ccbs_FeatureList);
6936
6937   return offset;
6938 }
6939 static int dissect_ccbs_FeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6940   return dissect_gsm_map_T_ccbs_FeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList);
6941 }
6942
6943 static const ber_sequence_t T_genericServiceInfo_sequence[] = {
6944   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
6945   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
6946   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumEntitledPriority_impl },
6947   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
6948   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_FeatureList_impl },
6949   { 0, 0, 0, NULL }
6950 };
6951
6952 static int
6953 dissect_gsm_map_T_genericServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6954   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6955                                 T_genericServiceInfo_sequence, hf_index, ett_gsm_map_T_genericServiceInfo);
6956
6957   return offset;
6958 }
6959 static int dissect_genericServiceInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6960   return dissect_gsm_map_T_genericServiceInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_genericServiceInfo);
6961 }
6962
6963
6964 static const value_string gsm_map_InterrogateSS_Res_vals[] = {
6965   {   0, "ss-Status" },
6966   {   2, "basicServiceGroupList" },
6967   {   3, "forwardingFeatureList" },
6968   {   4, "genericServiceInfo" },
6969   { 0, NULL }
6970 };
6971
6972 static const ber_choice_t InterrogateSS_Res_choice[] = {
6973   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
6974   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_basicServiceGroupList_impl },
6975   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_forwardingFeatureList_1_13_impl },
6976   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_genericServiceInfo_impl },
6977   { 0, 0, 0, 0, NULL }
6978 };
6979
6980 static int
6981 dissect_gsm_map_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6982   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6983                               InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res);
6984
6985   return offset;
6986 }
6987
6988
6989 static int
6990 dissect_gsm_map_OCTET_STRING_SIZE_1_160(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6991   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6992                                     NULL);
6993
6994   return offset;
6995 }
6996 static int dissect_ussd_String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6997   return dissect_gsm_map_OCTET_STRING_SIZE_1_160(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_String);
6998 }
6999
7000 static const ber_sequence_t Ussd_Arg_sequence[] = {
7001   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
7002   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
7003   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertingPattern },
7004   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7005   { 0, 0, 0, NULL }
7006 };
7007
7008 static int
7009 dissect_gsm_map_Ussd_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7010   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7011                                 Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
7012
7013   return offset;
7014 }
7015
7016 static const ber_sequence_t Ussd_Res_sequence[] = {
7017   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
7018   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
7019   { 0, 0, 0, NULL }
7020 };
7021
7022 static int
7023 dissect_gsm_map_Ussd_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7024   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7025                                 Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
7026
7027   return offset;
7028 }
7029
7030
7031 static int
7032 dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7033   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
7034                                          pinfo, tree, tvb, offset, hf_index,
7035                                          NULL);
7036
7037   return offset;
7038 }
7039
7040
7041 static const value_string gsm_map_GetPasswordArg_vals[] = {
7042   {   0, "enterPW" },
7043   {   1, "enterNewPW" },
7044   {   2, "enterNewPW-Again" },
7045   { 0, NULL }
7046 };
7047
7048
7049 static int
7050 dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7051   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7052
7053   return offset;
7054 }
7055
7056
7057 static int
7058 dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7059   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
7060                                          pinfo, tree, tvb, offset, hf_index,
7061                                          NULL);
7062
7063   return offset;
7064 }
7065
7066 static const asn_namedbit ServiceIndicator_bits[] = {
7067   {  0, &hf_gsm_map_ServiceIndicator_clirInvoked, -1, -1, NULL, NULL },
7068   {  1, &hf_gsm_map_ServiceIndicator_camelInvoked, -1, -1, NULL, NULL },
7069   { 0, NULL, 0, 0, NULL, NULL }
7070 };
7071
7072 static int
7073 dissect_gsm_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7074   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
7075                                  ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
7076                                  NULL);
7077
7078   return offset;
7079 }
7080 static int dissect_serviceIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7081   return dissect_gsm_map_ServiceIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceIndicator);
7082 }
7083
7084 static const ber_sequence_t T_ccbs_Data_sequence[] = {
7085   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
7086   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
7087   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceIndicator_impl },
7088   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
7089   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
7090   { 0, 0, 0, NULL }
7091 };
7092
7093 static int
7094 dissect_gsm_map_T_ccbs_Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7095   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7096                                 T_ccbs_Data_sequence, hf_index, ett_gsm_map_T_ccbs_Data);
7097
7098   return offset;
7099 }
7100 static int dissect_ccbs_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7101   return dissect_gsm_map_T_ccbs_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Data);
7102 }
7103
7104 static const ber_sequence_t RegisterCC_EntryArg_sequence[] = {
7105   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
7106   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl },
7107   { 0, 0, 0, NULL }
7108 };
7109
7110 static int
7111 dissect_gsm_map_RegisterCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7112   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7113                                 RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
7114
7115   return offset;
7116 }
7117
7118 static const ber_sequence_t RegisterCC_EntryRes_sequence[] = {
7119   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
7120   { 0, 0, 0, NULL }
7121 };
7122
7123 static int
7124 dissect_gsm_map_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7125   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7126                                 RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
7127
7128   return offset;
7129 }
7130
7131 static const ber_sequence_t EraseCC_EntryArg_sequence[] = {
7132   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
7133   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
7134   { 0, 0, 0, NULL }
7135 };
7136
7137 static int
7138 dissect_gsm_map_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7139   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7140                                 EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
7141
7142   return offset;
7143 }
7144
7145 static const ber_sequence_t EraseCC_EntryRes_sequence[] = {
7146   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
7147   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
7148   { 0, 0, 0, NULL }
7149 };
7150
7151 static int
7152 dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7153   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7154                                 EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
7155
7156   return offset;
7157 }
7158
7159
7160 static int
7161 dissect_gsm_map_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7162   offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
7163
7164   return offset;
7165 }
7166 static int dissect_sm_RP_PRI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7167   return dissect_gsm_map_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_PRI);
7168 }
7169
7170
7171 static int
7172 dissect_gsm_map_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7173
7174  tvbuff_t       *parameter_tvb;
7175  char           *digit_str;
7176
7177  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7178                                     &parameter_tvb);
7179  if (!parameter_tvb)
7180         return offset;
7181
7182  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
7183  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
7184  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
7185
7186  digit_str = unpack_digits(parameter_tvb, 1);
7187
7188  proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str);
7189  if (digit_str)
7190         g_free(digit_str);
7191
7192
7193   return offset;
7194 }
7195 static int dissect_serviceCentreAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7196   return dissect_gsm_map_ServiceCentreAddress(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
7197 }
7198 static int dissect_serviceCentreAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7199   return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
7200 }
7201 static int dissect_serviceCentreAddressOA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7202   return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressOA);
7203 }
7204 static int dissect_serviceCentreAddressDA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7205   return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressDA);
7206 }
7207
7208
7209
7210 static int
7211 dissect_gsm_map_INTEGER_0_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7212   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7213
7214   return offset;
7215 }
7216 static int dissect_sm_RP_MTI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7217   return dissect_gsm_map_INTEGER_0_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_MTI);
7218 }
7219
7220
7221 static int
7222 dissect_gsm_map_OCTET_STRING_SIZE_1_12(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7223   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7224                                     NULL);
7225
7226   return offset;
7227 }
7228 static int dissect_sm_RP_SMEA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7229   return dissect_gsm_map_OCTET_STRING_SIZE_1_12(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_SMEA);
7230 }
7231
7232 static const ber_sequence_t RoutingInfoForSMArg_sequence[] = {
7233   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7234   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl },
7235   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddress_impl },
7236   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7237   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
7238   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_MTI_impl },
7239   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_SMEA_impl },
7240   { 0, 0, 0, NULL }
7241 };
7242
7243 static int
7244 dissect_gsm_map_RoutingInfoForSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7245   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7246                                 RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
7247
7248   return offset;
7249 }
7250
7251
7252 static int
7253 dissect_gsm_map_T_networkNode_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7254   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7255                                     NULL);
7256
7257   return offset;
7258 }
7259 static int dissect_networkNode_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7260   return dissect_gsm_map_T_networkNode_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
7261 }
7262
7263
7264 static const value_string gsm_map_T_additional_Number_vals[] = {
7265   {   0, "msc-Number" },
7266   {   1, "sgsn-Number" },
7267   { 0, NULL }
7268 };
7269
7270 static const ber_choice_t T_additional_Number_choice[] = {
7271   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
7272   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
7273   { 0, 0, 0, 0, NULL }
7274 };
7275
7276 static int
7277 dissect_gsm_map_T_additional_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7278   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7279                               T_additional_Number_choice, hf_index, ett_gsm_map_T_additional_Number);
7280
7281   return offset;
7282 }
7283 static int dissect_additional_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7284   return dissect_gsm_map_T_additional_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_additional_Number);
7285 }
7286
7287 static const ber_sequence_t T_locationInfoWithLMSI_sequence[] = {
7288   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl },
7289   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
7290   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7291   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl },
7292   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_additional_Number },
7293   { 0, 0, 0, NULL }
7294 };
7295
7296 static int
7297 dissect_gsm_map_T_locationInfoWithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7298   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7299                                 T_locationInfoWithLMSI_sequence, hf_index, ett_gsm_map_T_locationInfoWithLMSI);
7300
7301   return offset;
7302 }
7303 static int dissect_locationInfoWithLMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7304   return dissect_gsm_map_T_locationInfoWithLMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInfoWithLMSI);
7305 }
7306
7307 static const ber_sequence_t RoutingInfoForSMRes_sequence[] = {
7308   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
7309   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl },
7310   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7311   { 0, 0, 0, NULL }
7312 };
7313
7314 static int
7315 dissect_gsm_map_RoutingInfoForSMRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7316   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7317                                 RoutingInfoForSMRes_sequence, hf_index, ett_gsm_map_RoutingInfoForSMRes);
7318
7319   return offset;
7320 }
7321
7322
7323 static const value_string gsm_map_Sm_RP_DA_vals[] = {
7324   {   0, "imsi" },
7325   {   1, "lmsi" },
7326   {   4, "serviceCentreAddressDA" },
7327   {   5, "noSM-RP-DA" },
7328   { 0, NULL }
7329 };
7330
7331 static const ber_choice_t Sm_RP_DA_choice[] = {
7332   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7333   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
7334   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressDA_impl },
7335   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_DA_impl },
7336   { 0, 0, 0, 0, NULL }
7337 };
7338
7339 static int
7340 dissect_gsm_map_Sm_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7341   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7342                               Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA);
7343
7344   return offset;
7345 }
7346 static int dissect_sm_RP_DA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7347   return dissect_gsm_map_Sm_RP_DA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_DA);
7348 }
7349
7350
7351 static const value_string gsm_map_Sm_RP_OA_vals[] = {
7352   {   2, "msisdn" },
7353   {   4, "serviceCentreAddressOA" },
7354   {   5, "noSM-RP-OA" },
7355   { 0, NULL }
7356 };
7357
7358 static const ber_choice_t Sm_RP_OA_choice[] = {
7359   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7360   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressOA_impl },
7361   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_OA_impl },
7362   { 0, 0, 0, 0, NULL }
7363 };
7364
7365 static int
7366 dissect_gsm_map_Sm_RP_OA(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7367   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7368                               Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA);
7369
7370   return offset;
7371 }
7372 static int dissect_sm_RP_OA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7373   return dissect_gsm_map_Sm_RP_OA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_OA);
7374 }
7375
7376
7377 static int
7378 dissect_gsm_map_Sm_RP_UI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7379
7380   tvbuff_t      *tpdu_tvb;
7381         
7382   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7383                                     &tpdu_tvb);
7384     /*
7385      * dissect the embedded TPDU message
7386      */
7387  if (!tpdu_tvb)
7388         return offset;
7389
7390     dissector_try_port(sms_dissector_table, 0, tpdu_tvb, pinfo, top_tree);
7391
7392   return offset;
7393 }
7394 static int dissect_sm_RP_UI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7395   return dissect_gsm_map_Sm_RP_UI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_UI);
7396 }
7397
7398 static const ber_sequence_t Mo_forwardSM_Arg_sequence[] = {
7399   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
7400   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
7401   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7402   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7403   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
7404   { 0, 0, 0, NULL }
7405 };
7406
7407 static int
7408 dissect_gsm_map_Mo_forwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7409   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7410                                 Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
7411
7412   return offset;
7413 }
7414
7415 static const ber_sequence_t Mo_forwardSM_Res_sequence[] = {
7416   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7417   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7418   { 0, 0, 0, NULL }
7419 };
7420
7421 static int
7422 dissect_gsm_map_Mo_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7423   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7424                                 Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
7425
7426   return offset;
7427 }
7428
7429 static const ber_sequence_t Mt_forwardSM_Arg_sequence[] = {
7430   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
7431   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
7432   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7433   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
7434   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7435   { 0, 0, 0, NULL }
7436 };
7437
7438 static int
7439 dissect_gsm_map_Mt_forwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7440   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7441                                 Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
7442
7443   return offset;
7444 }
7445
7446 static const ber_sequence_t Mt_forwardSM_Res_sequence[] = {
7447   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7448   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7449   { 0, 0, 0, NULL }
7450 };
7451
7452 static int
7453 dissect_gsm_map_Mt_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7454   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7455                                 Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
7456
7457   return offset;
7458 }
7459
7460
7461 static int
7462 dissect_gsm_map_StoredMSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7463   offset = dissect_gsm_map_Msisdn(implicit_tag, tvb, offset, pinfo, tree, hf_index);
7464
7465   return offset;
7466 }
7467 static int dissect_storedMSISDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7468   return dissect_gsm_map_StoredMSISDN(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_storedMSISDN);
7469 }
7470
7471
7472 static const value_string gsm_map_Sm_DeliveryOutcome_vals[] = {
7473   {   0, "memoryCapacityExceeded" },
7474   {   1, "absentSubscriber" },
7475   {   2, "successfulTransfer" },
7476   { 0, NULL }
7477 };
7478
7479
7480 static int
7481 dissect_gsm_map_Sm_DeliveryOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7482   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7483
7484   return offset;
7485 }
7486 static int dissect_sm_DeliveryOutcome(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7487   return dissect_gsm_map_Sm_DeliveryOutcome(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_DeliveryOutcome);
7488 }
7489 static int dissect_additionalSM_DeliveryOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7490   return dissect_gsm_map_Sm_DeliveryOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSM_DeliveryOutcome);
7491 }
7492
7493 static const ber_sequence_t ReportSM_DeliveryStatusArg_sequence[] = {
7494   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
7495   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
7496   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_DeliveryOutcome },
7497   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberDiagnosticSM_impl },
7498   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7499   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
7500   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deliveryOutcomeIndicator_impl },
7501   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSM_DeliveryOutcome_impl },
7502   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
7503   { 0, 0, 0, NULL }
7504 };
7505
7506 static int
7507 dissect_gsm_map_ReportSM_DeliveryStatusArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7508   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7509                                 ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
7510
7511   return offset;
7512 }
7513
7514 static const ber_sequence_t ReportSM_DeliveryStatusRes_sequence[] = {
7515   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
7516   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7517   { 0, 0, 0, NULL }
7518 };
7519
7520 static int
7521 dissect_gsm_map_ReportSM_DeliveryStatusRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7522   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7523                                 ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
7524
7525   return offset;
7526 }
7527
7528 static const asn_namedbit T_mw_Status_bits[] = {
7529   {  0, &hf_gsm_map_T_mw_Status_scAddressNotIncluded, -1, -1, NULL, NULL },
7530   {  1, &hf_gsm_map_T_mw_Status_mnrfSet, -1, -1, NULL, NULL },
7531   {  2, &hf_gsm_map_T_mw_Status_mcefSet, -1, -1, NULL, NULL },
7532   {  3, &hf_gsm_map_T_mw_Status_mnrgSet, -1, -1, NULL, NULL },
7533   { 0, NULL, 0, 0, NULL, NULL }
7534 };
7535
7536 static int
7537 dissect_gsm_map_T_mw_Status(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7538   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
7539                                  T_mw_Status_bits, hf_index, ett_gsm_map_T_mw_Status,
7540                                  NULL);
7541
7542   return offset;
7543 }
7544 static int dissect_mw_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7545   return dissect_gsm_map_T_mw_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mw_Status);
7546 }
7547
7548 static const ber_sequence_t InformServiceCentreArg_sequence[] = {
7549   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
7550   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status },
7551   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7552   { 0, 0, 0, NULL }
7553 };
7554
7555 static int
7556 dissect_gsm_map_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7557   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7558                                 InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
7559
7560   return offset;
7561 }
7562
7563 static const ber_sequence_t AlertServiceCentreArg_sequence[] = {
7564   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
7565   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
7566   { 0, 0, 0, NULL }
7567 };
7568
7569 static int
7570 dissect_gsm_map_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7571   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7572                                 AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
7573
7574   return offset;
7575 }
7576
7577
7578 static const value_string gsm_map_T_alertReason_vals[] = {
7579   {   0, "msPresent" },
7580   {   1, "memoryAvailable" },
7581   { 0, NULL }
7582 };
7583
7584
7585 static int
7586 dissect_gsm_map_T_alertReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7587   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7588
7589   return offset;
7590 }
7591 static int dissect_alertReason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7592   return dissect_gsm_map_T_alertReason(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReason);
7593 }
7594
7595 static const ber_sequence_t ReadyForSM_Arg_sequence[] = {
7596   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7597   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason },
7598   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertReasonIndicator },
7599   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7600   { 0, 0, 0, NULL }
7601 };
7602
7603 static int
7604 dissect_gsm_map_ReadyForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7605   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7606                                 ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
7607
7608   return offset;
7609 }
7610
7611 static const ber_sequence_t ReadyForSM_Res_sequence[] = {
7612   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7613   { 0, 0, 0, NULL }
7614 };
7615
7616 static int
7617 dissect_gsm_map_ReadyForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7618   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7619                                 ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
7620
7621   return offset;
7622 }
7623
7624
7625 static const value_string gsm_map_T_requestedDomain_vals[] = {
7626   {   0, "cs-Domain" },
7627   {   1, "ps-Domain" },
7628   { 0, NULL }
7629 };
7630
7631
7632 static int
7633 dissect_gsm_map_T_requestedDomain(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7634   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7635
7636   return offset;
7637 }
7638 static int dissect_requestedDomain_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7639   return dissect_gsm_map_T_requestedDomain(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedDomain);
7640 }
7641
7642 static const ber_sequence_t RequestedInfo_sequence[] = {
7643   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationFlag_impl },
7644   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStateFlag_impl },
7645   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7646   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocation_impl },
7647   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedDomain_impl },
7648   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_flg_impl },
7649   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_classmark_impl },
7650   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mnpRequestedInfo_impl },
7651   { 0, 0, 0, NULL }
7652 };
7653
7654 static int
7655 dissect_gsm_map_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7656   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7657                                 RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
7658
7659   return offset;
7660 }
7661 static int dissect_requestedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7662   return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedInfo);
7663 }
7664
7665 static const ber_sequence_t ProvideSubscriberInfoArg_sequence[] = {
7666   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7667   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
7668   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
7669   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7670   { 0, 0, 0, NULL }
7671 };
7672
7673 static int
7674 dissect_gsm_map_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7675   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7676                                 ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
7677
7678   return offset;
7679 }
7680
7681 static const ber_sequence_t ProvideSubscriberInfoRes_sequence[] = {
7682   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
7683   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7684   { 0, 0, 0, NULL }
7685 };
7686
7687 static int
7688 dissect_gsm_map_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7689   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7690                                 ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
7691
7692   return offset;
7693 }
7694
7695
7696 static const value_string gsm_map_SubscriberIdentity_vals[] = {
7697   {   0, "imsi" },
7698   {   1, "msisdn" },
7699   { 0, NULL }
7700 };
7701
7702 static const ber_choice_t SubscriberIdentity_choice[] = {
7703   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7704   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7705   { 0, 0, 0, 0, NULL }
7706 };
7707
7708 static int
7709 dissect_gsm_map_SubscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7710   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7711                               SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity);
7712
7713   return offset;
7714 }
7715 static int dissect_subscriberIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7716   return dissect_gsm_map_SubscriberIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberIdentity);
7717 }
7718
7719 static const ber_sequence_t AnyTimeInterrogationArg_sequence[] = {
7720   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
7721   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
7722   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
7723   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7724   { 0, 0, 0, NULL }
7725 };
7726
7727 static int
7728 dissect_gsm_map_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7729   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7730                                 AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
7731
7732   return offset;
7733 }
7734
7735 static const ber_sequence_t AnyTimeInterrogationRes_sequence[] = {
7736   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
7737   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7738   { 0, 0, 0, NULL }
7739 };
7740
7741 static int
7742 dissect_gsm_map_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7743   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7744                                 AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
7745
7746   return offset;
7747 }
7748
7749 static const ber_sequence_t T_requestedSS_Info_sequence[] = {
7750   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
7751   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
7752   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
7753   { 0, 0, 0, NULL }
7754 };
7755
7756 static int
7757 dissect_gsm_map_T_requestedSS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7758   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7759                                 T_requestedSS_Info_sequence, hf_index, ett_gsm_map_T_requestedSS_Info);
7760
7761   return offset;
7762 }
7763 static int dissect_requestedSS_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7764   return dissect_gsm_map_T_requestedSS_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedSS_Info);
7765 }
7766
7767
7768 static const value_string gsm_map_T_requestedCAMEL_SubscriptionInfo_vals[] = {
7769   {   0, "o-CSI" },
7770   {   1, "t-CSI" },
7771   {   2, "vt-CSI" },
7772   {   3, "tif-CSI" },
7773   {   4, "gprs-CSI" },
7774   {   5, "mo-sms-CSI" },
7775   {   6, "ss-CSI" },
7776   {   7, "m-CSI" },
7777   {   8, "d-csi" },
7778   { 0, NULL }
7779 };
7780
7781
7782 static int
7783 dissect_gsm_map_T_requestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7784   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7785
7786   return offset;
7787 }
7788 static int dissect_requestedCAMEL_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7789   return dissect_gsm_map_T_requestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedCAMEL_SubscriptionInfo);
7790 }
7791
7792
7793 static const value_string gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
7794   {   0, "mt-sms-CSI" },
7795   {   1, "mg-csi" },
7796   {   2, "o-IM-CSI" },
7797   {   3, "d-IM-CSI" },
7798   {   4, "vt-IM-CSI" },
7799   { 0, NULL }
7800 };
7801
7802
7803 static int
7804 dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7805   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7806
7807   return offset;
7808 }
7809 static int dissect_additionalRequestedCAMEL_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7810   return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo);
7811 }
7812
7813 static const ber_sequence_t T_requestedSubscriptionInfo_sequence[] = {
7814   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedSS_Info_impl },
7815   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_impl },
7816   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedCAMEL_SubscriptionInfo_impl },
7817   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_flg_impl },
7818   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_flg_impl },
7819   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_extensionContainer },
7820   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRequestedCAMEL_SubscriptionInfo_impl },
7821   { 0, 0, 0, NULL }
7822 };
7823
7824 static int
7825 dissect_gsm_map_T_requestedSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7826   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7827                                 T_requestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_requestedSubscriptionInfo);
7828
7829   return offset;
7830 }
7831 static int dissect_requestedSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7832   return dissect_gsm_map_T_requestedSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedSubscriptionInfo);
7833 }
7834
7835 static const ber_sequence_t AnyTimeSubscriptionInterrogationArg_sequence[] = {
7836   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
7837   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedSubscriptionInfo_impl },
7838   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
7839   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7840   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
7841   { 0, 0, 0, NULL }
7842 };
7843
7844 static int
7845 dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7846   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7847                                 AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationArg);
7848
7849   return offset;
7850 }
7851
7852 static const ber_sequence_t T_callForwardingData_sequence[] = {
7853   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList },
7854   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
7855   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7856   { 0, 0, 0, NULL }
7857 };
7858
7859 static int
7860 dissect_gsm_map_T_callForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7861   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7862                                 T_callForwardingData_sequence, hf_index, ett_gsm_map_T_callForwardingData);
7863
7864   return offset;
7865 }
7866 static int dissect_callForwardingData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7867   return dissect_gsm_map_T_callForwardingData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callForwardingData);
7868 }
7869
7870
7871 static int
7872 dissect_gsm_map_NumericString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7873   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
7874                                          pinfo, tree, tvb, offset, hf_index,
7875                                          NULL);
7876
7877   return offset;
7878 }
7879 static int dissect_password(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7880   return dissect_gsm_map_NumericString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_password);
7881 }
7882 static int dissect_password_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7883   return dissect_gsm_map_NumericString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_password);
7884 }
7885
7886
7887
7888 static int
7889 dissect_gsm_map_INTEGER_0_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7890   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7891
7892   return offset;
7893 }
7894 static int dissect_wrongPasswordAttemptsCounter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7895   return dissect_gsm_map_INTEGER_0_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
7896 }
7897 static int dissect_wrongPasswordAttemptsCounter_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7898   return dissect_gsm_map_INTEGER_0_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
7899 }
7900
7901 static const ber_sequence_t T_callBarringData_sequence[] = {
7902   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
7903   { BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_password },
7904   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_wrongPasswordAttemptsCounter },
7905   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
7906   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7907   { 0, 0, 0, NULL }
7908 };
7909
7910 static int
7911 dissect_gsm_map_T_callBarringData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7912   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7913                                 T_callBarringData_sequence, hf_index, ett_gsm_map_T_callBarringData);
7914
7915   return offset;
7916 }
7917 static int dissect_callBarringData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7918   return dissect_gsm_map_T_callBarringData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringData);
7919 }
7920
7921 static const ber_sequence_t T_odb_Info_sequence[] = {
7922   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_odb_Data },
7923   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
7924   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7925   { 0, 0, 0, NULL }
7926 };
7927
7928 static int
7929 dissect_gsm_map_T_odb_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7930   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7931                                 T_odb_Info_sequence, hf_index, ett_gsm_map_T_odb_Info);
7932
7933   return offset;
7934 }
7935 static int dissect_odb_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7936   return dissect_gsm_map_T_odb_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Info);
7937 }
7938
7939
7940 static int
7941 dissect_gsm_map_T_dialledNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7942   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7943                                     NULL);
7944
7945   return offset;
7946 }
7947 static int dissect_dialledNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7948   return dissect_gsm_map_T_dialledNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_dialledNumber);
7949 }
7950
7951 static const ber_sequence_t Dp_AnalysedInfoCriteriaList_item_sequence[] = {
7952   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dialledNumber },
7953   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
7954   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
7955   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_defaultCallHandling },
7956   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7957   { 0, 0, 0, NULL }
7958 };
7959
7960 static int
7961 dissect_gsm_map_Dp_AnalysedInfoCriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7962   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7963                                 Dp_AnalysedInfoCriteriaList_item_sequence, hf_index, ett_gsm_map_Dp_AnalysedInfoCriteriaList_item);
7964
7965   return offset;
7966 }
7967 static int dissect_Dp_AnalysedInfoCriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7968   return dissect_gsm_map_Dp_AnalysedInfoCriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_Dp_AnalysedInfoCriteriaList_item);
7969 }
7970
7971 static const ber_sequence_t Dp_AnalysedInfoCriteriaList_sequence_of[1] = {
7972   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Dp_AnalysedInfoCriteriaList_item },
7973 };
7974
7975 static int
7976 dissect_gsm_map_Dp_AnalysedInfoCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7977   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
7978                                    Dp_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_Dp_AnalysedInfoCriteriaList);
7979
7980   return offset;
7981 }
7982 static int dissect_dp_AnalysedInfoCriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7983   return dissect_gsm_map_Dp_AnalysedInfoCriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dp_AnalysedInfoCriteriaList);
7984 }
7985
7986 static const ber_sequence_t T_d_CSI_sequence[] = {
7987   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl },
7988   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
7989   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7990   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
7991   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
7992   { 0, 0, 0, NULL }
7993 };
7994
7995 static int
7996 dissect_gsm_map_T_d_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7997   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7998                                 T_d_CSI_sequence, hf_index, ett_gsm_map_T_d_CSI);
7999
8000   return offset;
8001 }
8002 static int dissect_d_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8003   return dissect_gsm_map_T_d_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_d_CSI);
8004 }
8005
8006
8007 static const value_string gsm_map_t_BCSM_TriggerDetectionPoint_vals[] = {
8008   {  12, "termAttemptAuthorized" },
8009   {  13, "tBusy" },
8010   {  14, "tNoAnswer" },
8011   { 0, NULL }
8012 };
8013
8014
8015 static int
8016 dissect_gsm_map_t_BCSM_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8017   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8018
8019   return offset;
8020 }
8021 static int dissect_t_BCSM_TriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8022   return dissect_gsm_map_t_BCSM_TriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_TriggerDetectionPoint);
8023 }
8024
8025
8026 static const value_string gsm_map_BasicServiceCriteria_item_vals[] = {
8027   {   2, "ext-BearerService" },
8028   {   3, "ext-Teleservice" },
8029   { 0, NULL }
8030 };
8031
8032 static const ber_choice_t BasicServiceCriteria_item_choice[] = {
8033   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl },
8034   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl },
8035   { 0, 0, 0, 0, NULL }
8036 };
8037
8038 static int
8039 dissect_gsm_map_BasicServiceCriteria_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8040   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
8041                               BasicServiceCriteria_item_choice, hf_index, ett_gsm_map_BasicServiceCriteria_item);
8042
8043   return offset;
8044 }
8045 static int dissect_BasicServiceCriteria_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8046   return dissect_gsm_map_BasicServiceCriteria_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BasicServiceCriteria_item);
8047 }
8048
8049 static const ber_sequence_t BasicServiceCriteria_sequence_of[1] = {
8050   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceCriteria_item },
8051 };
8052
8053 static int
8054 dissect_gsm_map_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8055   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8056                                    BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_BasicServiceCriteria);
8057
8058   return offset;
8059 }
8060 static int dissect_basicServiceCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8061   return dissect_gsm_map_BasicServiceCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceCriteria);
8062 }
8063
8064 static const ber_sequence_t T_CauseValueCriteria_sequence_of[1] = {
8065   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_T_CauseValueCriteria_item },
8066 };
8067
8068 static int
8069 dissect_gsm_map_T_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8070   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8071                                    T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_T_CauseValueCriteria);
8072
8073   return offset;
8074 }
8075 static int dissect_t_CauseValueCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8076   return dissect_gsm_map_T_CauseValueCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CauseValueCriteria);
8077 }
8078
8079 static const ber_sequence_t T_t_BCSM_CAMEL_TDP_CriteriaList_item_sequence[] = {
8080   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint },
8081   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
8082   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
8083   { 0, 0, 0, NULL }
8084 };
8085
8086 static int
8087 dissect_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8088   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8089                                 T_t_BCSM_CAMEL_TDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item);
8090
8091   return offset;
8092 }
8093 static int dissect_t_BCSM_CAMEL_TDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8094   return dissect_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList_item);
8095 }
8096
8097 static const ber_sequence_t T_t_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8098   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_item },
8099 };
8100
8101 static int
8102 dissect_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8103   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8104                                    T_t_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList);
8105
8106   return offset;
8107 }
8108 static int dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8109   return dissect_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList);
8110 }
8111
8112 static const ber_sequence_t T_vt_CSI_sequence[] = {
8113   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
8114   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8115   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8116   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8117   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8118   { 0, 0, 0, NULL }
8119 };
8120
8121 static int
8122 dissect_gsm_map_T_vt_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8123   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8124                                 T_vt_CSI_sequence, hf_index, ett_gsm_map_T_vt_CSI);
8125
8126   return offset;
8127 }
8128 static int dissect_vt_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8129   return dissect_gsm_map_T_vt_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_CSI);
8130 }
8131
8132 static const ber_sequence_t T_vt_BCSM_CAMEL_TDP_CriteriaList_item_sequence[] = {
8133   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint },
8134   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
8135   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
8136   { 0, 0, 0, NULL }
8137 };
8138
8139 static int
8140 dissect_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8141   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8142                                 T_vt_BCSM_CAMEL_TDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item);
8143
8144   return offset;
8145 }
8146 static int dissect_vt_BCSM_CAMEL_TDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8147   return dissect_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList_item);
8148 }
8149
8150 static const ber_sequence_t T_vt_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8151   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vt_BCSM_CAMEL_TDP_CriteriaList_item },
8152 };
8153
8154 static int
8155 dissect_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8156   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8157                                    T_vt_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList);
8158
8159   return offset;
8160 }
8161 static int dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8162   return dissect_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList);
8163 }
8164
8165
8166 static const value_string gsm_map_T_gprs_TriggerDetectionPoint_vals[] = {
8167   {   1, "attach" },
8168   {   2, "attachChangeOfPosition" },
8169   {  11, "pdp-ContextEstablishment" },
8170   {  12, "pdp-ContextEstablishmentAcknowledgement" },
8171   {  14, "pdp-ContextChangeOfPosition" },
8172   { 0, NULL }
8173 };
8174
8175
8176 static int
8177 dissect_gsm_map_T_gprs_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8178   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8179
8180   return offset;
8181 }
8182 static int dissect_gprs_TriggerDetectionPoint_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8183   return dissect_gsm_map_T_gprs_TriggerDetectionPoint(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_TriggerDetectionPoint);
8184 }
8185
8186
8187 static const value_string gsm_map_T_defaultSessionHandling_vals[] = {
8188   {   0, "continueTransaction" },
8189   {   1, "releaseTransaction" },
8190   { 0, NULL }
8191 };
8192
8193
8194 static int
8195 dissect_gsm_map_T_defaultSessionHandling(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8196   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8197
8198   return offset;
8199 }
8200 static int dissect_defaultSessionHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8201   return dissect_gsm_map_T_defaultSessionHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultSessionHandling);
8202 }
8203
8204 static const ber_sequence_t T_gprs_CamelTDPDataList_item_sequence[] = {
8205   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprs_TriggerDetectionPoint_impl },
8206   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
8207   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8208   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSessionHandling_impl },
8209   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8210   { 0, 0, 0, NULL }
8211 };
8212
8213 static int
8214 dissect_gsm_map_T_gprs_CamelTDPDataList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8215   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8216                                 T_gprs_CamelTDPDataList_item_sequence, hf_index, ett_gsm_map_T_gprs_CamelTDPDataList_item);
8217
8218   return offset;
8219 }
8220 static int dissect_gprs_CamelTDPDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8221   return dissect_gsm_map_T_gprs_CamelTDPDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CamelTDPDataList_item);
8222 }
8223
8224 static const ber_sequence_t T_gprs_CamelTDPDataList_sequence_of[1] = {
8225   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprs_CamelTDPDataList_item },
8226 };
8227
8228 static int
8229 dissect_gsm_map_T_gprs_CamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8230   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8231                                    T_gprs_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_T_gprs_CamelTDPDataList);
8232
8233   return offset;
8234 }
8235 static int dissect_gprs_CamelTDPDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8236   return dissect_gsm_map_T_gprs_CamelTDPDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CamelTDPDataList);
8237 }
8238
8239 static const ber_sequence_t T_gprs_CSI_sequence[] = {
8240   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CamelTDPDataList_impl },
8241   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8242   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8243   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8244   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8245   { 0, 0, 0, NULL }
8246 };
8247
8248 static int
8249 dissect_gsm_map_T_gprs_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8250   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8251                                 T_gprs_CSI_sequence, hf_index, ett_gsm_map_T_gprs_CSI);
8252
8253   return offset;
8254 }
8255 static int dissect_gprs_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8256   return dissect_gsm_map_T_gprs_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CSI);
8257 }
8258
8259
8260 static const value_string gsm_map_sms_TriggerDetectionPoint_vals[] = {
8261   {   1, "sms-CollectedInfo" },
8262   {   2, "sms-DeliveryRequest" },
8263   { 0, NULL }
8264 };
8265
8266
8267 static int
8268 dissect_gsm_map_sms_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8269   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8270
8271   return offset;
8272 }
8273 static int dissect_sms_TriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8274   return dissect_gsm_map_sms_TriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sms_TriggerDetectionPoint);
8275 }
8276 static int dissect_sms_TriggerDetectionPoint_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8277   return dissect_gsm_map_sms_TriggerDetectionPoint(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sms_TriggerDetectionPoint);
8278 }
8279
8280
8281 static const value_string gsm_map_T_defaultSMS_Handling_vals[] = {
8282   {   0, "continueTransaction" },
8283   {   1, "releaseTransaction" },
8284   { 0, NULL }
8285 };
8286
8287
8288 static int
8289 dissect_gsm_map_T_defaultSMS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8290   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8291
8292   return offset;
8293 }
8294 static int dissect_defaultSMS_Handling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8295   return dissect_gsm_map_T_defaultSMS_Handling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultSMS_Handling);
8296 }
8297
8298 static const ber_sequence_t Sms_CAMEL_TDP_DataList_item_sequence[] = {
8299   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sms_TriggerDetectionPoint_impl },
8300   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
8301   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8302   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSMS_Handling_impl },
8303   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8304   { 0, 0, 0, NULL }
8305 };
8306
8307 static int
8308 dissect_gsm_map_Sms_CAMEL_TDP_DataList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8309   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8310                                 Sms_CAMEL_TDP_DataList_item_sequence, hf_index, ett_gsm_map_Sms_CAMEL_TDP_DataList_item);
8311
8312   return offset;
8313 }
8314 static int dissect_Sms_CAMEL_TDP_DataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8315   return dissect_gsm_map_Sms_CAMEL_TDP_DataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_Sms_CAMEL_TDP_DataList_item);
8316 }
8317
8318 static const ber_sequence_t Sms_CAMEL_TDP_DataList_sequence_of[1] = {
8319   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Sms_CAMEL_TDP_DataList_item },
8320 };
8321
8322 static int
8323 dissect_gsm_map_Sms_CAMEL_TDP_DataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8324   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8325                                    Sms_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_Sms_CAMEL_TDP_DataList);
8326
8327   return offset;
8328 }
8329 static int dissect_sms_CAMEL_TDP_DataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8330   return dissect_gsm_map_Sms_CAMEL_TDP_DataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sms_CAMEL_TDP_DataList);
8331 }
8332
8333 static const ber_sequence_t T_mo_sms_CSI_sequence[] = {
8334   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl },
8335   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8336   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8337   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8338   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8339   { 0, 0, 0, NULL }
8340 };
8341
8342 static int
8343 dissect_gsm_map_T_mo_sms_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8344   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8345                                 T_mo_sms_CSI_sequence, hf_index, ett_gsm_map_T_mo_sms_CSI);
8346
8347   return offset;
8348 }
8349 static int dissect_mo_sms_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8350   return dissect_gsm_map_T_mo_sms_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mo_sms_CSI);
8351 }
8352
8353 static const ber_sequence_t MobilityTriggers_sequence_of[1] = {
8354   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_MobilityTriggers_item },
8355 };
8356
8357 static int
8358 dissect_gsm_map_MobilityTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8359   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8360                                    MobilityTriggers_sequence_of, hf_index, ett_gsm_map_MobilityTriggers);
8361
8362   return offset;
8363 }
8364 static int dissect_mobilityTriggers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8365   return dissect_gsm_map_MobilityTriggers(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mobilityTriggers);
8366 }
8367
8368 static const ber_sequence_t T_m_CSI_sequence[] = {
8369   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
8370   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
8371   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8372   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8373   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8374   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8375   { 0, 0, 0, NULL }
8376 };
8377
8378 static int
8379 dissect_gsm_map_T_m_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8380   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8381                                 T_m_CSI_sequence, hf_index, ett_gsm_map_T_m_CSI);
8382
8383   return offset;
8384 }
8385 static int dissect_m_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8386   return dissect_gsm_map_T_m_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_m_CSI);
8387 }
8388
8389 static const asn_namedbit T_specificCSIDeletedList_bits[] = {
8390   {  0, &hf_gsm_map_T_specificCSIDeletedList_o_csi, -1, -1, NULL, NULL },
8391   {  1, &hf_gsm_map_T_specificCSIDeletedList_ss_csi, -1, -1, NULL, NULL },
8392   {  2, &hf_gsm_map_T_specificCSIDeletedList_tif_csi, -1, -1, NULL, NULL },
8393   {  3, &hf_gsm_map_T_specificCSIDeletedList_d_csi, -1, -1, NULL, NULL },
8394   {  4, &hf_gsm_map_T_specificCSIDeletedList_vt_csi, -1, -1, NULL, NULL },
8395   {  5, &hf_gsm_map_T_specificCSIDeletedList_mo_sms_csi, -1, -1, NULL, NULL },
8396   {  6, &hf_gsm_map_T_specificCSIDeletedList_m_csi, -1, -1, NULL, NULL },
8397   {  7, &hf_gsm_map_T_specificCSIDeletedList_gprs_csi, -1, -1, NULL, NULL },
8398   {  8, &hf_gsm_map_T_specificCSIDeletedList_t_csi, -1, -1, NULL, NULL },
8399   {  9, &hf_gsm_map_T_specificCSIDeletedList_mt_sms_csi, -1, -1, NULL, NULL },
8400   { 10, &hf_gsm_map_T_specificCSIDeletedList_mg_csi, -1, -1, NULL, NULL },
8401   { 11, &hf_gsm_map_T_specificCSIDeletedList_o_IM_CSI, -1, -1, NULL, NULL },
8402   { 12, &hf_gsm_map_T_specificCSIDeletedList_d_IM_CSI, -1, -1, NULL, NULL },
8403   { 13, &hf_gsm_map_T_specificCSIDeletedList_vt_IM_CSI, -1, -1, NULL, NULL },
8404   { 0, NULL, 0, 0, NULL, NULL }
8405 };
8406
8407 static int
8408 dissect_gsm_map_T_specificCSIDeletedList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8409   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8410                                  T_specificCSIDeletedList_bits, hf_index, ett_gsm_map_T_specificCSIDeletedList,
8411                                  NULL);
8412
8413   return offset;
8414 }
8415 static int dissect_specificCSIDeletedList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8416   return dissect_gsm_map_T_specificCSIDeletedList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_specificCSIDeletedList);
8417 }
8418
8419 static const ber_sequence_t T_mt_sms_CSI_sequence[] = {
8420   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl },
8421   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8422   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8423   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8424   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8425   { 0, 0, 0, NULL }
8426 };
8427
8428 static int
8429 dissect_gsm_map_T_mt_sms_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8430   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8431                                 T_mt_sms_CSI_sequence, hf_index, ett_gsm_map_T_mt_sms_CSI);
8432
8433   return offset;
8434 }
8435 static int dissect_mt_sms_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8436   return dissect_gsm_map_T_mt_sms_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mt_sms_CSI);
8437 }
8438
8439
8440 static const value_string gsm_map_T_tpdu_TypeCriterion_item_vals[] = {
8441   {   0, "sms-DELIVER" },
8442   {   1, "sms-SUBMIT-REPORT" },
8443   {   2, "sms-STATUS-REPORT" },
8444   { 0, NULL }
8445 };
8446
8447
8448 static int
8449 dissect_gsm_map_T_tpdu_TypeCriterion_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8450   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8451
8452   return offset;
8453 }
8454 static int dissect_tpdu_TypeCriterion_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8455   return dissect_gsm_map_T_tpdu_TypeCriterion_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_tpdu_TypeCriterion_item);
8456 }
8457
8458 static const ber_sequence_t T_tpdu_TypeCriterion_sequence_of[1] = {
8459   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_tpdu_TypeCriterion_item },
8460 };
8461
8462 static int
8463 dissect_gsm_map_T_tpdu_TypeCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8464   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8465                                    T_tpdu_TypeCriterion_sequence_of, hf_index, ett_gsm_map_T_tpdu_TypeCriterion);
8466
8467   return offset;
8468 }
8469 static int dissect_tpdu_TypeCriterion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8470   return dissect_gsm_map_T_tpdu_TypeCriterion(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tpdu_TypeCriterion);
8471 }
8472
8473 static const ber_sequence_t T_mt_smsCAMELTDP_CriteriaList_item_sequence[] = {
8474   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sms_TriggerDetectionPoint },
8475   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tpdu_TypeCriterion_impl },
8476   { 0, 0, 0, NULL }
8477 };
8478
8479 static int
8480 dissect_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8481   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8482                                 T_mt_smsCAMELTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item);
8483
8484   return offset;
8485 }
8486 static int dissect_mt_smsCAMELTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8487   return dissect_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList_item);
8488 }
8489
8490 static const ber_sequence_t T_mt_smsCAMELTDP_CriteriaList_sequence_of[1] = {
8491   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mt_smsCAMELTDP_CriteriaList_item },
8492 };
8493
8494 static int
8495 dissect_gsm_map_T_mt_smsCAMELTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8496   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8497                                    T_mt_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList);
8498
8499   return offset;
8500 }
8501 static int dissect_mt_smsCAMELTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8502   return dissect_gsm_map_T_mt_smsCAMELTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList);
8503 }
8504
8505 static const ber_sequence_t T_mg_csi_sequence[] = {
8506   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
8507   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
8508   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8509   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8510   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8511   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8512   { 0, 0, 0, NULL }
8513 };
8514
8515 static int
8516 dissect_gsm_map_T_mg_csi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8517   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8518                                 T_mg_csi_sequence, hf_index, ett_gsm_map_T_mg_csi);
8519
8520   return offset;
8521 }
8522 static int dissect_mg_csi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8523   return dissect_gsm_map_T_mg_csi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mg_csi);
8524 }
8525
8526 static const ber_sequence_t T_o_IM_CSI_sequence[] = {
8527   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
8528   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8529   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8530   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8531   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csiActive_impl },
8532   { 0, 0, 0, NULL }
8533 };
8534
8535 static int
8536 dissect_gsm_map_T_o_IM_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8537   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8538                                 T_o_IM_CSI_sequence, hf_index, ett_gsm_map_T_o_IM_CSI);
8539
8540   return offset;
8541 }
8542 static int dissect_o_IM_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8543   return dissect_gsm_map_T_o_IM_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_IM_CSI);
8544 }
8545
8546 static const ber_sequence_t O_CauseValueCriteria_sequence_of[1] = {
8547   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_O_CauseValueCriteria_item },
8548 };
8549
8550 static int
8551 dissect_gsm_map_O_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8552   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8553                                    O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_O_CauseValueCriteria);
8554
8555   return offset;
8556 }
8557 static int dissect_o_CauseValueCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8558   return dissect_gsm_map_O_CauseValueCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CauseValueCriteria);
8559 }
8560
8561 static const ber_sequence_t T_o_IM_BcsmCamelTDP_CriteriaList_item_sequence[] = {
8562   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
8563   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
8564   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
8565   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
8566   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CauseValueCriteria_impl },
8567   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8568   { 0, 0, 0, NULL }
8569 };
8570
8571 static int
8572 dissect_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8573   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8574                                 T_o_IM_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item);
8575
8576   return offset;
8577 }
8578 static int dissect_o_IM_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8579   return dissect_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList_item);
8580 }
8581
8582 static const ber_sequence_t T_o_IM_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
8583   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_IM_BcsmCamelTDP_CriteriaList_item },
8584 };
8585
8586 static int
8587 dissect_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8588   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8589                                    T_o_IM_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList);
8590
8591   return offset;
8592 }
8593 static int dissect_o_IM_BcsmCamelTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8594   return dissect_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList);
8595 }
8596
8597 static const ber_sequence_t T_d_IM_CSI_sequence[] = {
8598   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl },
8599   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8600   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8601   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8602   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8603   { 0, 0, 0, NULL }
8604 };
8605
8606 static int
8607 dissect_gsm_map_T_d_IM_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8608   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8609                                 T_d_IM_CSI_sequence, hf_index, ett_gsm_map_T_d_IM_CSI);
8610
8611   return offset;
8612 }
8613 static int dissect_d_IM_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8614   return dissect_gsm_map_T_d_IM_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_d_IM_CSI);
8615 }
8616
8617 static const ber_sequence_t T_vt_IM_CSI_sequence[] = {
8618   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
8619   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8620   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8621   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8622   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8623   { 0, 0, 0, NULL }
8624 };
8625
8626 static int
8627 dissect_gsm_map_T_vt_IM_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8628   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8629                                 T_vt_IM_CSI_sequence, hf_index, ett_gsm_map_T_vt_IM_CSI);
8630
8631   return offset;
8632 }
8633 static int dissect_vt_IM_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8634   return dissect_gsm_map_T_vt_IM_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_IM_CSI);
8635 }
8636
8637 static const ber_sequence_t T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item_sequence[] = {
8638   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint },
8639   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
8640   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
8641   { 0, 0, 0, NULL }
8642 };
8643
8644 static int
8645 dissect_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8646   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8647                                 T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item);
8648
8649   return offset;
8650 }
8651 static int dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8652   return dissect_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item);
8653 }
8654
8655 static const ber_sequence_t T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8656   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item },
8657 };
8658
8659 static int
8660 dissect_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8661   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8662                                    T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList);
8663
8664   return offset;
8665 }
8666 static int dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8667   return dissect_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList);
8668 }
8669
8670 static const ber_sequence_t T_camel_SubscriptionInfo_sequence[] = {
8671   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
8672   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
8673   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_CSI_impl },
8674   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
8675   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl },
8676   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_CSI_impl },
8677   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl },
8678   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
8679   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_NotificationToCSE_impl },
8680   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl },
8681   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl },
8682   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
8683   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_m_CSI_impl },
8684   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8685   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_specificCSIDeletedList_impl },
8686   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl },
8687   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl },
8688   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mg_csi_impl },
8689   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_CSI_impl },
8690   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_BcsmCamelTDP_CriteriaList_impl },
8691   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_IM_CSI_impl },
8692   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_CSI_impl },
8693   { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl },
8694   { 0, 0, 0, NULL }
8695 };
8696
8697 static int
8698 dissect_gsm_map_T_camel_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8699   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8700                                 T_camel_SubscriptionInfo_sequence, hf_index, ett_gsm_map_T_camel_SubscriptionInfo);
8701
8702   return offset;
8703 }
8704 static int dissect_camel_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8705   return dissect_gsm_map_T_camel_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camel_SubscriptionInfo);
8706 }
8707
8708 static const asn_namedbit T_supportedVLR_CAMEL_Phases_bits[] = {
8709   {  0, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase1, -1, -1, NULL, NULL },
8710   {  1, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase2, -1, -1, NULL, NULL },
8711   {  2, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase3, -1, -1, NULL, NULL },
8712   {  3, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase4, -1, -1, NULL, NULL },
8713   { 0, NULL, 0, 0, NULL, NULL }
8714 };
8715
8716 static int
8717 dissect_gsm_map_T_supportedVLR_CAMEL_Phases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8718   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8719                                  T_supportedVLR_CAMEL_Phases_bits, hf_index, ett_gsm_map_T_supportedVLR_CAMEL_Phases,
8720                                  NULL);
8721
8722   return offset;
8723 }
8724 static int dissect_supportedVLR_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8725   return dissect_gsm_map_T_supportedVLR_CAMEL_Phases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedVLR_CAMEL_Phases);
8726 }
8727
8728 static const asn_namedbit T_supportedSGSN_CAMEL_Phases_bits[] = {
8729   {  0, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase1, -1, -1, NULL, NULL },
8730   {  1, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase2, -1, -1, NULL, NULL },
8731   {  2, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase3, -1, -1, NULL, NULL },
8732   {  3, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase4, -1, -1, NULL, NULL },
8733   { 0, NULL, 0, 0, NULL, NULL }
8734 };
8735
8736 static int
8737 dissect_gsm_map_T_supportedSGSN_CAMEL_Phases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8738   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8739                                  T_supportedSGSN_CAMEL_Phases_bits, hf_index, ett_gsm_map_T_supportedSGSN_CAMEL_Phases,
8740                                  NULL);
8741
8742   return offset;
8743 }
8744 static int dissect_supportedSGSN_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8745   return dissect_gsm_map_T_supportedSGSN_CAMEL_Phases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases);
8746 }
8747
8748 static const asn_namedbit T_offeredCamel4CSIsInVLR_bits[] = {
8749   {  0, &hf_gsm_map_T_offeredCamel4CSIsInVLR_o_csi, -1, -1, NULL, NULL },
8750   {  1, &hf_gsm_map_T_offeredCamel4CSIsInVLR_d_csi, -1, -1, NULL, NULL },
8751   {  2, &hf_gsm_map_T_offeredCamel4CSIsInVLR_vt_csi, -1, -1, NULL, NULL },
8752   {  3, &hf_gsm_map_T_offeredCamel4CSIsInVLR_t_csi, -1, -1, NULL, NULL },
8753   {  4, &hf_gsm_map_T_offeredCamel4CSIsInVLR_mt_sms_csi, -1, -1, NULL, NULL },
8754   {  5, &hf_gsm_map_T_offeredCamel4CSIsInVLR_mg_csi, -1, -1, NULL, NULL },
8755   {  6, &hf_gsm_map_T_offeredCamel4CSIsInVLR_psi_enhancements, -1, -1, NULL, NULL },
8756   { 0, NULL, 0, 0, NULL, NULL }
8757 };
8758
8759 static int
8760 dissect_gsm_map_T_offeredCamel4CSIsInVLR(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8761   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8762                                  T_offeredCamel4CSIsInVLR_bits, hf_index, ett_gsm_map_T_offeredCamel4CSIsInVLR,
8763                                  NULL);
8764
8765   return offset;
8766 }
8767 static int dissect_offeredCamel4CSIsInVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8768   return dissect_gsm_map_T_offeredCamel4CSIsInVLR(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIsInVLR);
8769 }
8770
8771 static const asn_namedbit T_offeredCamel4CSIsInSGSN_bits[] = {
8772   {  0, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_o_csi, -1, -1, NULL, NULL },
8773   {  1, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_d_csi, -1, -1, NULL, NULL },
8774   {  2, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_vt_csi, -1, -1, NULL, NULL },
8775   {  3, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_t_csi, -1, -1, NULL, NULL },
8776   {  4, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mt_sms_csi, -1, -1, NULL, NULL },
8777   {  5, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mg_csi, -1, -1, NULL, NULL },
8778   {  6, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_psi_enhancements, -1, -1, NULL, NULL },
8779   { 0, NULL, 0, 0, NULL, NULL }
8780 };
8781
8782 static int
8783 dissect_gsm_map_T_offeredCamel4CSIsInSGSN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8784   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8785                                  T_offeredCamel4CSIsInSGSN_bits, hf_index, ett_gsm_map_T_offeredCamel4CSIsInSGSN,
8786                                  NULL);
8787
8788   return offset;
8789 }
8790 static int dissect_offeredCamel4CSIsInSGSN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8791   return dissect_gsm_map_T_offeredCamel4CSIsInSGSN(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIsInSGSN);
8792 }
8793
8794 static const ber_sequence_t AnyTimeSubscriptionInterrogationRes_sequence[] = {
8795   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwardingData_impl },
8796   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringData_impl },
8797   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl },
8798   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl },
8799   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_impl },
8800   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_impl },
8801   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8802   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInVLR_impl },
8803   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInSGSN_impl },
8804   { 0, 0, 0, NULL }
8805 };
8806
8807 static int
8808 dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8809   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8810                                 AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationRes);
8811
8812   return offset;
8813 }
8814
8815
8816 static const value_string gsm_map_BasicService_ext_vals[] = {
8817   {   2, "ext-BearerService" },
8818   {   3, "ext-Teleservice" },
8819   { 0, NULL }
8820 };
8821
8822 static const ber_choice_t BasicService_ext_choice[] = {
8823   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl },
8824   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl },
8825   { 0, 0, 0, 0, NULL }
8826 };
8827
8828 static int
8829 dissect_gsm_map_BasicService_ext(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8830   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
8831                               BasicService_ext_choice, hf_index, ett_gsm_map_BasicService_ext);
8832
8833   return offset;
8834 }
8835 static int dissect_basicService_ext(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8836   return dissect_gsm_map_BasicService_ext(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService_ext);
8837 }
8838
8839
8840
8841 static int
8842 dissect_gsm_map_INTEGER_1_100(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8843   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8844
8845   return offset;
8846 }
8847 static int dissect_noReplyConditionTime_1_100_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8848   return dissect_gsm_map_INTEGER_1_100(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime_1_100);
8849 }
8850
8851
8852 static const value_string gsm_map_ModifyNotificationToCSE_vals[] = {
8853   {   0, "deactivate" },
8854   {   1, "activate" },
8855   { 0, NULL }
8856 };
8857
8858
8859 static int
8860 dissect_gsm_map_ModifyNotificationToCSE(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8861   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8862
8863   return offset;
8864 }
8865 static int dissect_modifyNotificationToCSE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8866   return dissect_gsm_map_ModifyNotificationToCSE(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modifyNotificationToCSE);
8867 }
8868
8869 static const ber_sequence_t T_modificationRequestFor_CF_Info_sequence[] = {
8870   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
8871   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_basicService_ext },
8872   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
8873   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
8874   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
8875   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_1_100_impl },
8876   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
8877   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8878   { 0, 0, 0, NULL }
8879 };
8880
8881 static int
8882 dissect_gsm_map_T_modificationRequestFor_CF_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8883   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8884                                 T_modificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_CF_Info);
8885
8886   return offset;
8887 }
8888 static int dissect_modificationRequestFor_CF_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8889   return dissect_gsm_map_T_modificationRequestFor_CF_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CF_Info);
8890 }
8891
8892 static const ber_sequence_t T_modificationRequestFor_CB_Info_sequence[] = {
8893   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
8894   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_basicService_ext },
8895   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
8896   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_password_impl },
8897   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wrongPasswordAttemptsCounter_impl },
8898   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
8899   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8900   { 0, 0, 0, NULL }
8901 };
8902
8903 static int
8904 dissect_gsm_map_T_modificationRequestFor_CB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8905   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8906                                 T_modificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_CB_Info);
8907
8908   return offset;
8909 }
8910 static int dissect_modificationRequestFor_CB_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8911   return dissect_gsm_map_T_modificationRequestFor_CB_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CB_Info);
8912 }
8913
8914
8915 static const value_string gsm_map_T_requestedCamel_SubscriptionInfo_vals[] = {
8916   {   0, "o-CSI" },
8917   {   1, "t-CSI" },
8918   {   2, "vt-CSI" },
8919   {   3, "tif-CSI" },
8920   {   4, "gprs-CSI" },
8921   {   5, "mo-sms-CSI" },
8922   {   6, "ss-CSI" },
8923   {   7, "m-CSI" },
8924   {   8, "d-csi" },
8925   { 0, NULL }
8926 };
8927
8928
8929 static int
8930 dissect_gsm_map_T_requestedCamel_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8931   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8932
8933   return offset;
8934 }
8935 static int dissect_requestedCamel_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8936   return dissect_gsm_map_T_requestedCamel_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedCamel_SubscriptionInfo);
8937 }
8938
8939
8940 static const value_string gsm_map_T_modifyCSI_State_vals[] = {
8941   {   0, "deactivate" },
8942   {   1, "activate" },
8943   { 0, NULL }
8944 };
8945
8946
8947 static int
8948 dissect_gsm_map_T_modifyCSI_State(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8949   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8950
8951   return offset;
8952 }
8953 static int dissect_modifyCSI_State_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8954   return dissect_gsm_map_T_modifyCSI_State(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modifyCSI_State);
8955 }
8956
8957 static const ber_sequence_t T_modificationRequestFor_CSI_sequence[] = {
8958   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedCamel_SubscriptionInfo_impl },
8959   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
8960   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyCSI_State_impl },
8961   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8962   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRequestedCAMEL_SubscriptionInfo_impl },
8963   { 0, 0, 0, NULL }
8964 };
8965
8966 static int
8967 dissect_gsm_map_T_modificationRequestFor_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8968   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8969                                 T_modificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_CSI);
8970
8971   return offset;
8972 }
8973 static int dissect_modificationRequestFor_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8974   return dissect_gsm_map_T_modificationRequestFor_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CSI);
8975 }
8976
8977 static const ber_sequence_t T_modificationRequestFor_ODB_data_sequence[] = {
8978   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_data_impl },
8979   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
8980   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8981   { 0, 0, 0, NULL }
8982 };
8983
8984 static int
8985 dissect_gsm_map_T_modificationRequestFor_ODB_data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8986   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8987                                 T_modificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_ODB_data);
8988
8989   return offset;
8990 }
8991 static int dissect_modificationRequestFor_ODB_data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8992   return dissect_gsm_map_T_modificationRequestFor_ODB_data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_ODB_data);
8993 }
8994
8995 static const ber_sequence_t AnyTimeModificationArg_sequence[] = {
8996   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
8997   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8998   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CF_Info_impl },
8999   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CB_Info_impl },
9000   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CSI_impl },
9001   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9002   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
9003   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_ODB_data_impl },
9004   { 0, 0, 0, NULL }
9005 };
9006
9007 static int
9008 dissect_gsm_map_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9009   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9010                                 AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_AnyTimeModificationArg);
9011
9012   return offset;
9013 }
9014
9015 static const ber_sequence_t AnyTimeModificationRes_sequence[] = {
9016   { 0, 0, 0, NULL }
9017 };
9018
9019 static int
9020 dissect_gsm_map_AnyTimeModificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9021   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9022                                 AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_AnyTimeModificationRes);
9023
9024   return offset;
9025 }
9026
9027 static const ber_sequence_t T_ss_EventSpecification_sequence_of[1] = {
9028   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventSpecification_item },
9029 };
9030
9031 static int
9032 dissect_gsm_map_T_ss_EventSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9033   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
9034                                    T_ss_EventSpecification_sequence_of, hf_index, ett_gsm_map_T_ss_EventSpecification);
9035
9036   return offset;
9037 }
9038 static int dissect_ss_EventSpecification_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9039   return dissect_gsm_map_T_ss_EventSpecification(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification);
9040 }
9041
9042 static const ber_sequence_t Ss_InvocationNotificationArg_sequence[] = {
9043   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9044   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9045   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ss_Event_impl },
9046   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_EventSpecification_impl },
9047   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9048   { 0, 0, 0, NULL }
9049 };
9050
9051 static int
9052 dissect_gsm_map_Ss_InvocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9053   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9054                                 Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
9055
9056   return offset;
9057 }
9058
9059 static const ber_sequence_t Ss_InvocationNotificationRes_sequence[] = {
9060   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9061   { 0, 0, 0, NULL }
9062 };
9063
9064 static int
9065 dissect_gsm_map_Ss_InvocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9066   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9067                                 Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
9068
9069   return offset;
9070 }
9071
9072
9073 static int
9074 dissect_gsm_map_OCTET_STRING_SIZE_5_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9075   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9076                                     NULL);
9077
9078   return offset;
9079 }
9080 static int dissect_codec_Info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9081   return dissect_gsm_map_OCTET_STRING_SIZE_5_10(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_codec_Info);
9082 }
9083
9084 static const ber_sequence_t PrepareGroupCallArg_sequence[] = {
9085   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleservice },
9086   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
9087   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_codec_Info },
9088   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cipheringAlgorithm },
9089   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKeyNumber_impl },
9090   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKey_impl },
9091   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl },
9092   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkFree_impl },
9093   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9094   { 0, 0, 0, NULL }
9095 };
9096
9097 static int
9098 dissect_gsm_map_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9099   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9100                                 PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
9101
9102   return offset;
9103 }
9104
9105
9106 static int
9107 dissect_gsm_map_T_groupCallNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9108   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9109                                     NULL);
9110
9111   return offset;
9112 }
9113 static int dissect_groupCallNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9114   return dissect_gsm_map_T_groupCallNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupCallNumber);
9115 }
9116
9117 static const ber_sequence_t PrepareGroupCallRes_sequence[] = {
9118   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber },
9119   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9120   { 0, 0, 0, NULL }
9121 };
9122
9123 static int
9124 dissect_gsm_map_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9125   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9126                                 PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
9127
9128   return offset;
9129 }
9130
9131 static const ber_sequence_t SendGroupCallEndSignalArg_sequence[] = {
9132   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
9133   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9134   { 0, 0, 0, NULL }
9135 };
9136
9137 static int
9138 dissect_gsm_map_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9139   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9140                                 SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
9141
9142   return offset;
9143 }
9144
9145 static const ber_sequence_t SendGroupCallEndSignalRes_sequence[] = {
9146   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9147   { 0, 0, 0, NULL }
9148 };
9149
9150 static int
9151 dissect_gsm_map_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9152   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9153                                 SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
9154
9155   return offset;
9156 }
9157
9158 static const ber_sequence_t ProcessGroupCallSignallingArg_sequence[] = {
9159   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl },
9160   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
9161   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseGroupCall_impl },
9162   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9163   { 0, 0, 0, NULL }
9164 };
9165
9166 static int
9167 dissect_gsm_map_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9168   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9169                                 ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
9170
9171   return offset;
9172 }
9173
9174 static const ber_sequence_t ForwardGroupCallSignallingArg_sequence[] = {
9175   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
9176   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl },
9177   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
9178   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRejectCommand_impl },
9179   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkSeizedCommand_impl },
9180   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseCommand_impl },
9181   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9182   { 0, 0, 0, NULL }
9183 };
9184
9185 static int
9186 dissect_gsm_map_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9187   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9188                                 ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
9189
9190   return offset;
9191 }
9192
9193 static const ber_sequence_t T_sgsn_Capability_sequence[] = {
9194   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator },
9195   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9196   { 0, 0, 0, NULL }
9197 };
9198
9199 static int
9200 dissect_gsm_map_T_sgsn_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9201   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9202                                 T_sgsn_Capability_sequence, hf_index, ett_gsm_map_T_sgsn_Capability);
9203
9204   return offset;
9205 }
9206 static int dissect_sgsn_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9207   return dissect_gsm_map_T_sgsn_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Capability);
9208 }
9209
9210 static const ber_sequence_t UpdateGprsLocationArg_sequence[] = {
9211   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
9212   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number },
9213   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Address },
9214   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9215   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Capability_impl },
9216   { 0, 0, 0, NULL }
9217 };
9218
9219 static int
9220 dissect_gsm_map_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9221   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9222                                 UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
9223
9224   return offset;
9225 }
9226
9227 static const ber_sequence_t UpdateGprsLocationRes_sequence[] = {
9228   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
9229   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9230   { 0, 0, 0, NULL }
9231 };
9232
9233 static int
9234 dissect_gsm_map_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9235   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9236                                 UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
9237
9238   return offset;
9239 }
9240
9241
9242 static int
9243 dissect_gsm_map_Ggsn_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9244   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9245                                     NULL);
9246
9247   return offset;
9248 }
9249 static int dissect_ggsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9250   return dissect_gsm_map_Ggsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Number);
9251 }
9252
9253 static const ber_sequence_t SendRoutingInfoForGprsArg_sequence[] = {
9254   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9255   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9256   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
9257   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9258   { 0, 0, 0, NULL }
9259 };
9260
9261 static int
9262 dissect_gsm_map_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9263   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9264                                 SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
9265
9266   return offset;
9267 }
9268
9269 static const ber_sequence_t SendRoutingInfoForGprsRes_sequence[] = {
9270   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
9271   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9272   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mobileNotReachableReason_impl },
9273   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9274   { 0, 0, 0, NULL }
9275 };
9276
9277 static int
9278 dissect_gsm_map_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9279   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9280                                 SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
9281
9282   return offset;
9283 }
9284
9285 static const ber_sequence_t FailureReportArg_sequence[] = {
9286   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9287   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
9288   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9289   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9290   { 0, 0, 0, NULL }
9291 };
9292
9293 static int
9294 dissect_gsm_map_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9295   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9296                                 FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
9297
9298   return offset;
9299 }
9300
9301 static const ber_sequence_t FailureReportRes_sequence[] = {
9302   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9303   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9304   { 0, 0, 0, NULL }
9305 };
9306
9307 static int
9308 dissect_gsm_map_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9309   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9310                                 FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
9311
9312   return offset;
9313 }
9314
9315 static const ber_sequence_t NoteMsPresentForGprsArg_sequence[] = {
9316   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9317   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
9318   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9319   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9320   { 0, 0, 0, NULL }
9321 };
9322
9323 static int
9324 dissect_gsm_map_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9325   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9326                                 NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
9327
9328   return offset;
9329 }
9330
9331 static const ber_sequence_t NoteMsPresentForGprsRes_sequence[] = {
9332   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9333   { 0, 0, 0, NULL }
9334 };
9335
9336 static int
9337 dissect_gsm_map_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9338   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9339                                 NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
9340
9341   return offset;
9342 }
9343
9344
9345 static const value_string gsm_map_LcsClientType_vals[] = {
9346   {   0, "emergencyServices" },
9347   {   1, "valueAddedServices" },
9348   {   2, "plmnOperatorServices" },
9349   {   3, "lawfulInterceptServices" },
9350   { 0, NULL }
9351 };
9352
9353
9354 static int
9355 dissect_gsm_map_LcsClientType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9356   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9357
9358   return offset;
9359 }
9360 static int dissect_lcsClientType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9361   return dissect_gsm_map_LcsClientType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientType);
9362 }
9363
9364 static const ber_sequence_t LcsClientExternalID_sequence[] = {
9365   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
9366   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9367   { 0, 0, 0, NULL }
9368 };
9369
9370 static int
9371 dissect_gsm_map_LcsClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9372   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9373                                 LcsClientExternalID_sequence, hf_index, ett_gsm_map_LcsClientExternalID);
9374
9375   return offset;
9376 }
9377 static int dissect_lcsClientExternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9378   return dissect_gsm_map_LcsClientExternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientExternalID);
9379 }
9380
9381
9382 static const value_string gsm_map_LcsClientInternalID_vals[] = {
9383   {   0, "broadcastService" },
9384   {   1, "o-andM-HPLMN" },
9385   {   2, "o-andM-VPLMN" },
9386   {   3, "anonymousLocation" },
9387   {   4, "targetMSsubscribedService" },
9388   { 0, NULL }
9389 };
9390
9391
9392 static int
9393 dissect_gsm_map_LcsClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9394   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9395
9396   return offset;
9397 }
9398 static int dissect_lcsClientInternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9399   return dissect_gsm_map_LcsClientInternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientInternalID);
9400 }
9401
9402 static const ber_sequence_t LcsClientName_sequence[] = {
9403   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
9404   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl },
9405   { 0, 0, 0, NULL }
9406 };
9407
9408 static int
9409 dissect_gsm_map_LcsClientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9410   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9411                                 LcsClientName_sequence, hf_index, ett_gsm_map_LcsClientName);
9412
9413   return offset;
9414 }
9415 static int dissect_lcsClientName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9416   return dissect_gsm_map_LcsClientName(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientName);
9417 }
9418
9419 static const ber_sequence_t Lcs_ClientID_sequence[] = {
9420   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl },
9421   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl },
9422   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientDialedByMS_impl },
9423   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientInternalID_impl },
9424   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientName_impl },
9425   { 0, 0, 0, NULL }
9426 };
9427
9428 static int
9429 dissect_gsm_map_Lcs_ClientID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9430   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9431                                 Lcs_ClientID_sequence, hf_index, ett_gsm_map_Lcs_ClientID);
9432
9433   return offset;
9434 }
9435 static int dissect_lcs_ClientID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9436   return dissect_gsm_map_Lcs_ClientID(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
9437 }
9438 static int dissect_lcs_ClientID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9439   return dissect_gsm_map_Lcs_ClientID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
9440 }
9441
9442
9443 static const value_string gsm_map_Lcs_Event_vals[] = {
9444   {   0, "emergencyCallOrigination" },
9445   {   1, "emergencyCallRelease" },
9446   {   2, "mo-lr" },
9447   { 0, NULL }
9448 };
9449
9450
9451 static int
9452 dissect_gsm_map_Lcs_Event(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9453   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9454
9455   return offset;
9456 }
9457 static int dissect_lcs_Event(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9458   return dissect_gsm_map_Lcs_Event(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Event);
9459 }
9460
9461 static const ber_sequence_t LcsLocationInfo_sequence[] = {
9462   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msc_Number },
9463   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
9464   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9465   { 0, 0, 0, NULL }
9466 };
9467
9468 static int
9469 dissect_gsm_map_LcsLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9470   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9471                                 LcsLocationInfo_sequence, hf_index, ett_gsm_map_LcsLocationInfo);
9472
9473   return offset;
9474 }
9475 static int dissect_lcsLocationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9476   return dissect_gsm_map_LcsLocationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
9477 }
9478 static int dissect_lcsLocationInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9479   return dissect_gsm_map_LcsLocationInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
9480 }
9481
9482
9483 static const value_string gsm_map_T_locationEstimateType_vals[] = {
9484   {   0, "currentLocation" },
9485   {   1, "currentOrLastKnownLocation" },
9486   {   2, "initialLocation" },
9487   { 0, NULL }
9488 };
9489
9490
9491 static int
9492 dissect_gsm_map_T_locationEstimateType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9493   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9494
9495   return offset;
9496 }
9497 static int dissect_locationEstimateType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9498   return dissect_gsm_map_T_locationEstimateType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimateType);
9499 }
9500
9501 static const ber_sequence_t T_locationType_sequence[] = {
9502   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl },
9503   { 0, 0, 0, NULL }
9504 };
9505
9506 static int
9507 dissect_gsm_map_T_locationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9508   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9509                                 T_locationType_sequence, hf_index, ett_gsm_map_T_locationType);
9510
9511   return offset;
9512 }
9513 static int dissect_locationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9514   return dissect_gsm_map_T_locationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationType);
9515 }
9516
9517
9518 static int
9519 dissect_gsm_map_T_mlc_Number(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9520   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9521                                     NULL);
9522
9523   return offset;
9524 }
9525 static int dissect_mlc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9526   return dissect_gsm_map_T_mlc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mlc_Number);
9527 }
9528
9529
9530 static const value_string gsm_map_T_responseTimeCategory_vals[] = {
9531   {   0, "lowdelay" },
9532   {   1, "delaytolerant" },
9533   { 0, NULL }
9534 };
9535
9536
9537 static int
9538 dissect_gsm_map_T_responseTimeCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9539   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9540
9541   return offset;
9542 }
9543 static int dissect_responseTimeCategory(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9544   return dissect_gsm_map_T_responseTimeCategory(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_responseTimeCategory);
9545 }
9546
9547 static const ber_sequence_t T_responseTime_sequence[] = {
9548   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory },
9549   { 0, 0, 0, NULL }
9550 };
9551
9552 static int
9553 dissect_gsm_map_T_responseTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9554   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9555                                 T_responseTime_sequence, hf_index, ett_gsm_map_T_responseTime);
9556
9557   return offset;
9558 }
9559 static int dissect_responseTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9560   return dissect_gsm_map_T_responseTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_responseTime);
9561 }
9562
9563 static const ber_sequence_t T_lcs_QoS_sequence[] = {
9564   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl },
9565   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl },
9566   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vertical_accuracy_impl },
9567   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseTime_impl },
9568   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9569   { 0, 0, 0, NULL }
9570 };
9571
9572 static int
9573 dissect_gsm_map_T_lcs_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9574   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9575                                 T_lcs_QoS_sequence, hf_index, ett_gsm_map_T_lcs_QoS);
9576
9577   return offset;
9578 }
9579 static int dissect_lcs_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9580   return dissect_gsm_map_T_lcs_QoS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_QoS);
9581 }
9582
9583 static const ber_sequence_t ProvideSubscriberLocation_Arg_sequence[] = {
9584   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType },
9585   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number },
9586   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ClientID_impl },
9587   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privacyOverride_impl },
9588   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9589   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9590   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
9591   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
9592   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_Priority_impl },
9593   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_QoS_impl },
9594   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9595   { 0, 0, 0, NULL }
9596 };
9597
9598 static int
9599 dissect_gsm_map_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9600   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9601                                 ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
9602
9603   return offset;
9604 }
9605
9606 static const ber_sequence_t ProvideSubscriberLocation_Res_sequence[] = {
9607   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate },
9608   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
9609   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9610   { 0, 0, 0, NULL }
9611 };
9612
9613 static int
9614 dissect_gsm_map_ProvideSubscriberLocation_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9615   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9616                                 ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
9617
9618   return offset;
9619 }
9620
9621
9622 static const value_string gsm_map_TargetMS_vals[] = {
9623   {   0, "imsi" },
9624   {   1, "msisdn" },
9625   { 0, NULL }
9626 };
9627
9628 static const ber_choice_t TargetMS_choice[] = {
9629   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9630   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9631   { 0, 0, 0, 0, NULL }
9632 };
9633
9634 static int
9635 dissect_gsm_map_TargetMS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9636   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
9637                               TargetMS_choice, hf_index, ett_gsm_map_TargetMS);
9638
9639   return offset;
9640 }
9641 static int dissect_targetMS(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9642   return dissect_gsm_map_TargetMS(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMS);
9643 }
9644
9645
9646 static int
9647 dissect_gsm_map_T_mlcNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9648   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9649                                     NULL);
9650
9651   return offset;
9652 }
9653 static int dissect_mlcNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9654   return dissect_gsm_map_T_mlcNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mlcNumber);
9655 }
9656
9657 static const ber_sequence_t RoutingInfoForLCS_Arg_sequence[] = {
9658   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl },
9659   { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
9660   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9661   { 0, 0, 0, NULL }
9662 };
9663
9664 static int
9665 dissect_gsm_map_RoutingInfoForLCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9666   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9667                                 RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
9668
9669   return offset;
9670 }
9671
9672 static const ber_sequence_t RoutingInfoForLCS_Res_sequence[] = {
9673   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
9674   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsLocationInfo_impl },
9675   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9676   { 0, 0, 0, NULL }
9677 };
9678
9679 static int
9680 dissect_gsm_map_RoutingInfoForLCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9681   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9682                                 RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
9683
9684   return offset;
9685 }
9686
9687
9688 static int
9689 dissect_gsm_map_T_na_ESRD(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9690   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9691                                     NULL);
9692
9693   return offset;
9694 }
9695 static int dissect_na_ESRD_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9696   return dissect_gsm_map_T_na_ESRD(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRD);
9697 }
9698
9699
9700 static int
9701 dissect_gsm_map_T_na_ESRK(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9702   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9703                                     NULL);
9704
9705   return offset;
9706 }
9707 static int dissect_na_ESRK_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9708   return dissect_gsm_map_T_na_ESRK(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRK);
9709 }
9710
9711 static const ber_sequence_t SubscriberLocationReport_Arg_sequence[] = {
9712   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event },
9713   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID },
9714   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcsLocationInfo },
9715   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9716   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9717   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
9718   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl },
9719   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl },
9720   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationEstimate_impl },
9721   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
9722   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9723   { 0, 0, 0, NULL }
9724 };
9725
9726 static int
9727 dissect_gsm_map_SubscriberLocationReport_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9728   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9729                                 SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
9730
9731   return offset;
9732 }
9733
9734 static const ber_sequence_t SubscriberLocationReport_Res_sequence[] = {
9735   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9736   { 0, 0, 0, NULL }
9737 };
9738
9739 static int
9740 dissect_gsm_map_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9741   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9742                                 SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
9743
9744   return offset;
9745 }
9746
9747
9748 static const value_string gsm_map_NetworkResource_vals[] = {
9749   {   0, "plmn" },
9750   {   1, "hlr" },
9751   {   2, "vlr" },
9752   {   3, "pvlr" },
9753   {   4, "controllingMSC" },
9754   {   5, "vmsc" },
9755   {   6, "eir" },
9756   {   7, "rss" },
9757   { 0, NULL }
9758 };
9759
9760
9761 static int
9762 dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9763   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9764
9765   return offset;
9766 }
9767 static int dissect_networkResource(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9768   return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkResource);
9769 }
9770
9771 static const ber_sequence_t T_extensibleSystemFailureParam_sequence[] = {
9772   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource },
9773   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9774   { 0, 0, 0, NULL }
9775 };
9776
9777 static int
9778 dissect_gsm_map_T_extensibleSystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9779   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9780                                 T_extensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_T_extensibleSystemFailureParam);
9781
9782   return offset;
9783 }
9784 static int dissect_extensibleSystemFailureParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9785   return dissect_gsm_map_T_extensibleSystemFailureParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleSystemFailureParam);
9786 }
9787
9788
9789 static const value_string gsm_map_SystemFailureParam_vals[] = {
9790   {   0, "networkResource" },
9791   {   1, "extensibleSystemFailureParam" },
9792   { 0, NULL }
9793 };
9794
9795 static const ber_choice_t SystemFailureParam_choice[] = {
9796   {   0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_networkResource },
9797   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleSystemFailureParam },
9798   { 0, 0, 0, 0, NULL }
9799 };
9800
9801 static int
9802 dissect_gsm_map_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9803   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
9804                               SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam);
9805
9806   return offset;
9807 }
9808
9809 static const ber_sequence_t DataMissingParam_sequence[] = {
9810   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9811   { 0, 0, 0, NULL }
9812 };
9813
9814 static int
9815 dissect_gsm_map_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9816   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9817                                 DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
9818
9819   return offset;
9820 }
9821
9822 static const ber_sequence_t UnexpectedDataParam_sequence[] = {
9823   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9824   { 0, 0, 0, NULL }
9825 };
9826
9827 static int
9828 dissect_gsm_map_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9829   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9830                                 UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
9831
9832   return offset;
9833 }
9834
9835 static const ber_sequence_t FacilityNotSupParam_sequence[] = {
9836   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9837   { 0, 0, 0, NULL }
9838 };
9839
9840 static int
9841 dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9842   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9843                                 FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
9844
9845   return offset;
9846 }
9847
9848 static const ber_sequence_t IncompatibleTerminalParam_sequence[] = {
9849   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9850   { 0, 0, 0, NULL }
9851 };
9852
9853 static int
9854 dissect_gsm_map_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9855   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9856                                 IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
9857
9858   return offset;
9859 }
9860
9861 static const ber_sequence_t ResourceLimitationParam_sequence[] = {
9862   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9863   { 0, 0, 0, NULL }
9864 };
9865
9866 static int
9867 dissect_gsm_map_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9868   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9869                                 ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
9870
9871   return offset;
9872 }
9873
9874
9875 static const value_string gsm_map_T_unknownSubscriberDiagnostic_vals[] = {
9876   {   0, "imsiUnknown" },
9877   {   1, "gprsSubscriptionUnknown" },
9878   { 0, NULL }
9879 };
9880
9881
9882 static int
9883 dissect_gsm_map_T_unknownSubscriberDiagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9884   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9885
9886   return offset;
9887 }
9888 static int dissect_unknownSubscriberDiagnostic(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9889   return dissect_gsm_map_T_unknownSubscriberDiagnostic(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_unknownSubscriberDiagnostic);
9890 }
9891
9892 static const ber_sequence_t UnknownSubscriberParam_sequence[] = {
9893   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9894   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic },
9895   { 0, 0, 0, NULL }
9896 };
9897
9898 static int
9899 dissect_gsm_map_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9900   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9901                                 UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
9902
9903   return offset;
9904 }
9905
9906 static const ber_sequence_t NumberChangedParam_sequence[] = {
9907   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9908   { 0, 0, 0, NULL }
9909 };
9910
9911 static int
9912 dissect_gsm_map_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9913   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9914                                 NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
9915
9916   return offset;
9917 }
9918
9919 static const ber_sequence_t UnidentifiedSubParam_sequence[] = {
9920   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9921   { 0, 0, 0, NULL }
9922 };
9923
9924 static int
9925 dissect_gsm_map_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9926   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9927                                 UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
9928
9929   return offset;
9930 }
9931
9932
9933 static const value_string gsm_map_T_roamingNotAllowedCause_vals[] = {
9934   {   0, "plmnRoamingNotAllowed" },
9935   {   3, "operatorDeterminedBarring" },
9936   { 0, NULL }
9937 };
9938
9939
9940 static int
9941 dissect_gsm_map_T_roamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9942   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9943
9944   return offset;
9945 }
9946 static int dissect_roamingNotAllowedCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9947   return dissect_gsm_map_T_roamingNotAllowedCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNotAllowedCause);
9948 }
9949
9950 static const ber_sequence_t RoamingNotAllowedParam_sequence[] = {
9951   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause },
9952   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9953   { 0, 0, 0, NULL }
9954 };
9955
9956 static int
9957 dissect_gsm_map_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9958   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9959                                 RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
9960
9961   return offset;
9962 }
9963
9964 static const ber_sequence_t IllegalSubscriberParam_sequence[] = {
9965   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9966   { 0, 0, 0, NULL }
9967 };
9968
9969 static int
9970 dissect_gsm_map_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9971   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9972                                 IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
9973
9974   return offset;
9975 }
9976
9977 static const ber_sequence_t IllegalEquipmentParam_sequence[] = {
9978   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9979   { 0, 0, 0, NULL }
9980 };
9981
9982 static int
9983 dissect_gsm_map_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9984   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9985                                 IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
9986
9987   return offset;
9988 }
9989
9990 static const ber_sequence_t BearerServNotProvParam_sequence[] = {
9991   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9992   { 0, 0, 0, NULL }
9993 };
9994
9995 static int
9996 dissect_gsm_map_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9997   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9998                                 BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
9999
10000   return offset;
10001 }
10002
10003 static const ber_sequence_t TeleservNotProvParam_sequence[] = {
10004   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10005   { 0, 0, 0, NULL }
10006 };
10007
10008 static int
10009 dissect_gsm_map_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10010   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10011                                 TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
10012
10013   return offset;
10014 }
10015
10016 static const ber_sequence_t TracingBufferFullParam_sequence[] = {
10017   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10018   { 0, 0, 0, NULL }
10019 };
10020
10021 static int
10022 dissect_gsm_map_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10023   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10024                                 TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
10025
10026   return offset;
10027 }
10028
10029 static const ber_sequence_t NoRoamingNbParam_sequence[] = {
10030   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10031   { 0, 0, 0, NULL }
10032 };
10033
10034 static int
10035 dissect_gsm_map_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10036   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10037                                 NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
10038
10039   return offset;
10040 }
10041
10042
10043 static const value_string gsm_map_T_absentSubscriberReason_vals[] = {
10044   {   0, "imsiDetach" },
10045   {   1, "restrictedArea" },
10046   {   2, "noPageResponse" },
10047   { 0, NULL }
10048 };
10049
10050
10051 static int
10052 dissect_gsm_map_T_absentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10053   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10054
10055   return offset;
10056 }
10057 static int dissect_absentSubscriberReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10058   return dissect_gsm_map_T_absentSubscriberReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberReason);
10059 }
10060
10061 static const ber_sequence_t AbsentSubscriberParam_sequence[] = {
10062   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10063   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl },
10064   { 0, 0, 0, NULL }
10065 };
10066
10067 static int
10068 dissect_gsm_map_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10069   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10070                                 AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
10071
10072   return offset;
10073 }
10074
10075 static const ber_sequence_t BusySubscriberParam_sequence[] = {
10076   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10077   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
10078   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Busy_impl },
10079   { 0, 0, 0, NULL }
10080 };
10081
10082 static int
10083 dissect_gsm_map_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10084   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10085                                 BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
10086
10087   return offset;
10088 }
10089
10090 static const ber_sequence_t NoSubscriberReplyParam_sequence[] = {
10091   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10092   { 0, 0, 0, NULL }
10093 };
10094
10095 static int
10096 dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10097   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10098                                 NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
10099
10100   return offset;
10101 }
10102
10103
10104 static const value_string gsm_map_CallBarringCause_vals[] = {
10105   {   0, "barringServiceActive" },
10106   {   1, "operatorBarring" },
10107   { 0, NULL }
10108 };
10109
10110
10111 static int
10112 dissect_gsm_map_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10113   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10114
10115   return offset;
10116 }
10117 static int dissect_callBarringCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10118   return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringCause);
10119 }
10120
10121 static const ber_sequence_t T_extensibleCallBarredParam_sequence[] = {
10122   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
10123   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10124   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl },
10125   { 0, 0, 0, NULL }
10126 };
10127
10128 static int
10129 dissect_gsm_map_T_extensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10130   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10131                                 T_extensibleCallBarredParam_sequence, hf_index, ett_gsm_map_T_extensibleCallBarredParam);
10132
10133   return offset;
10134 }
10135 static int dissect_extensibleCallBarredParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10136   return dissect_gsm_map_T_extensibleCallBarredParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleCallBarredParam);
10137 }
10138
10139
10140 static const value_string gsm_map_CallBarredParam_vals[] = {
10141   {   0, "callBarringCause" },
10142   {   1, "extensibleCallBarredParam" },
10143   { 0, NULL }
10144 };
10145
10146 static const ber_choice_t CallBarredParam_choice[] = {
10147   {   0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
10148   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleCallBarredParam },
10149   { 0, 0, 0, 0, NULL }
10150 };
10151
10152 static int
10153 dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10154   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
10155                               CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam);
10156
10157   return offset;
10158 }
10159
10160 static const ber_sequence_t ForwardingFailedParam_sequence[] = {
10161   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10162   { 0, 0, 0, NULL }
10163 };
10164
10165 static int
10166 dissect_gsm_map_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10167   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10168                                 ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
10169
10170   return offset;
10171 }
10172
10173 static const ber_sequence_t Or_NotAllowedParam_sequence[] = {
10174   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10175   { 0, 0, 0, NULL }
10176 };
10177
10178 static int
10179 dissect_gsm_map_Or_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10180   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10181                                 Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
10182
10183   return offset;
10184 }
10185
10186 static const ber_sequence_t ForwardingViolationParam_sequence[] = {
10187   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10188   { 0, 0, 0, NULL }
10189 };
10190
10191 static int
10192 dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10193   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10194                                 ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
10195
10196   return offset;
10197 }
10198
10199
10200 static const value_string gsm_map_T_cug_RejectCause_vals[] = {
10201   {   0, "incomingCallsBarredWithinCUG" },
10202   {   1, "subscriberNotMemberOfCUG" },
10203   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
10204   {   7, "calledPartySS-InteractionViolation" },
10205   { 0, NULL }
10206 };
10207
10208
10209 static int
10210 dissect_gsm_map_T_cug_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10211   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10212
10213   return offset;
10214 }
10215 static int dissect_cug_RejectCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10216   return dissect_gsm_map_T_cug_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause);
10217 }
10218
10219 static const ber_sequence_t Cug_RejectParam_sequence[] = {
10220   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
10221   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10222   { 0, 0, 0, NULL }
10223 };
10224
10225 static int
10226 dissect_gsm_map_Cug_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10227   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10228                                 Cug_RejectParam_sequence, hf_index, ett_gsm_map_Cug_RejectParam);
10229
10230   return offset;
10231 }
10232
10233 static const ber_sequence_t Ati_NotAllowedParam_sequence[] = {
10234   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10235   { 0, 0, 0, NULL }
10236 };
10237
10238 static int
10239 dissect_gsm_map_Ati_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10240   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10241                                 Ati_NotAllowedParam_sequence, hf_index, ett_gsm_map_Ati_NotAllowedParam);
10242
10243   return offset;
10244 }
10245
10246 static const ber_sequence_t NoGroupCallNbParam_sequence[] = {
10247   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10248   { 0, 0, 0, NULL }
10249 };
10250
10251 static int
10252 dissect_gsm_map_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10253   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10254                                 NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
10255
10256   return offset;
10257 }
10258
10259 static const ber_sequence_t Ss_IncompatibilityCause_sequence[] = {
10260   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
10261   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
10262   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
10263   { 0, 0, 0, NULL }
10264 };
10265
10266 static int
10267 dissect_gsm_map_Ss_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10268   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10269                                 Ss_IncompatibilityCause_sequence, hf_index, ett_gsm_map_Ss_IncompatibilityCause);
10270
10271   return offset;
10272 }
10273
10274
10275 static const value_string gsm_map_Pw_RegistrationFailureCause_vals[] = {
10276   {   0, "undetermined" },
10277   {   1, "invalidFormat" },
10278   {   2, "newPasswordsMismatch" },
10279   { 0, NULL }
10280 };
10281
10282
10283 static int
10284 dissect_gsm_map_Pw_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10285   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10286
10287   return offset;
10288 }
10289
10290 static const ber_sequence_t ShortTermDenialParam_sequence[] = {
10291   { 0, 0, 0, NULL }
10292 };
10293
10294 static int
10295 dissect_gsm_map_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10296   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10297                                 ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
10298
10299   return offset;
10300 }
10301
10302 static const ber_sequence_t LongTermDenialParam_sequence[] = {
10303   { 0, 0, 0, NULL }
10304 };
10305
10306 static int
10307 dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10308   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10309                                 LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
10310
10311   return offset;
10312 }
10313
10314 static const ber_sequence_t SubBusyForMT_SMS_Param_sequence[] = {
10315   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10316   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
10317   { 0, 0, 0, NULL }
10318 };
10319
10320 static int
10321 dissect_gsm_map_SubBusyForMT_SMS_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10322   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10323                                 SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
10324
10325   return offset;
10326 }
10327
10328
10329 static const value_string gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals[] = {
10330   {   0, "memoryCapacityExceeded" },
10331   {   1, "equipmentProtocolError" },
10332   {   2, "equipmentNotSM-Equipped" },
10333   {   3, "unknownServiceCentre" },
10334   {   4, "sc-Congestion" },
10335   {   5, "invalidSME-Address" },
10336   {   6, "subscriberNotSC-Subscriber" },
10337   { 0, NULL }
10338 };
10339
10340
10341 static int
10342 dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10343   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10344
10345   return offset;
10346 }
10347 static int dissect_sm_EnumeratedDeliveryFailureCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10348   return dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
10349 }
10350
10351
10352 static int
10353 dissect_gsm_map_OCTET_STRING_SIZE_1_200(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10354   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
10355                                     NULL);
10356
10357   return offset;
10358 }
10359 static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10360   return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_diagnosticInfo);
10361 }
10362
10363 static const ber_sequence_t Sm_DeliveryFailureCause_sequence[] = {
10364   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause },
10365   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo },
10366   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10367   { 0, 0, 0, NULL }
10368 };
10369
10370 static int
10371 dissect_gsm_map_Sm_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10372   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10373                                 Sm_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_Sm_DeliveryFailureCause);
10374
10375   return offset;
10376 }
10377
10378 static const ber_sequence_t MessageWaitListFullParam_sequence[] = {
10379   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10380   { 0, 0, 0, NULL }
10381 };
10382
10383 static int
10384 dissect_gsm_map_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10385   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10386                                 MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
10387
10388   return offset;
10389 }
10390
10391 static const ber_sequence_t AbsentSubscriberSM_Param_sequence[] = {
10392   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
10393   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10394   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
10395   { 0, 0, 0, NULL }
10396 };
10397
10398 static int
10399 dissect_gsm_map_AbsentSubscriberSM_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10400   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10401                                 AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
10402
10403   return offset;
10404 }
10405
10406 static const ber_sequence_t UnauthorizedRequestingNetwork_Param_sequence[] = {
10407   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10408   { 0, 0, 0, NULL }
10409 };
10410
10411 static int
10412 dissect_gsm_map_UnauthorizedRequestingNetwork_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10413   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10414                                 UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
10415
10416   return offset;
10417 }
10418
10419
10420 static const value_string gsm_map_T_unauthorizedLCSClient_Diagnostic_vals[] = {
10421   {   0, "noAdditionalInformation" },
10422   {   1, "clientNotInMSPrivacyExceptionList" },
10423   {   2, "callToClientNotSetup" },
10424   {   3, "privacyOverrideNotApplicable" },
10425   {   4, "disallowedByLocalRegulatoryRequirements" },
10426   { 0, NULL }
10427 };
10428
10429
10430 static int
10431 dissect_gsm_map_T_unauthorizedLCSClient_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10432   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10433
10434   return offset;
10435 }
10436 static int dissect_unauthorizedLCSClient_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10437   return dissect_gsm_map_T_unauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic);
10438 }
10439
10440 static const ber_sequence_t UnauthorizedLCSClient_Param_sequence[] = {
10441   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl },
10442   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
10443   { 0, 0, 0, NULL }
10444 };
10445
10446 static int
10447 dissect_gsm_map_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10448   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10449                                 UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
10450
10451   return offset;
10452 }
10453
10454
10455 static const value_string gsm_map_T_positionMethodFailure_Diagnostic_vals[] = {
10456   {   0, "congestion" },
10457   {   1, "insufficientResources" },
10458   {   2, "insufficientMeasurementData" },
10459   {   3, "inconsistentMeasurementData" },
10460   {   4, "locationProcedureNotCompleted" },
10461   {   5, "locationProcedureNotSupportedByTargetMS" },
10462   {   6, "qoSNotAttainable" },
10463   {   7, "positionMethodNotAvailableInNetwork" },
10464   {   8, "positionMethodNotAvailableInLocationArea" },
10465   { 0, NULL }
10466 };
10467
10468
10469 static int
10470 dissect_gsm_map_T_positionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10471   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10472
10473   return offset;
10474 }
10475 static int dissect_positionMethodFailure_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10476   return dissect_gsm_map_T_positionMethodFailure_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
10477 }
10478
10479 static const ber_sequence_t PositionMethodFailure_Param_sequence[] = {
10480   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
10481   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
10482   { 0, 0, 0, NULL }
10483 };
10484
10485 static int
10486 dissect_gsm_map_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10487   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10488                                 PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
10489
10490   return offset;
10491 }
10492
10493 static const ber_sequence_t UnknownOrUnreachableLCSClient_Param_sequence[] = {
10494   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10495   { 0, 0, 0, NULL }
10496 };
10497
10498 static int
10499 dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10500   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10501                                 UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
10502
10503   return offset;
10504 }
10505
10506
10507 /*--- End of included file: packet-gsm_map-fn.c ---*/
10508
10509
10510 /* Stuff included from the "old" packet-gsm_map.c for tapping purposes */
10511 static gchar *
10512 my_match_strval(guint32 val, const value_string *vs, gint *idx)
10513 {
10514     gint        i = 0;
10515
10516     while (vs[i].strptr) {
10517         if (vs[i].value == val)
10518         {
10519             *idx = i;
10520             return(vs[i].strptr);
10521         }
10522
10523         i++;
10524     }
10525
10526     *idx = -1;
10527     return(NULL);
10528 }
10529 /* End includes from old" packet-gsm_map.c */
10530
10531 const value_string gsm_map_opr_code_strings[] = {
10532   {   2, "updateLocation" },
10533   {   3, "cancelLocation" },
10534   {   4, "provideRoamingNumber" },
10535   {   6, "resumeCallHandling" },
10536   {   7, "insertSubscriberData" },
10537   {   8, "deleteSubscriberData" },
10538   {   9, "sendParameters" },                                    /* map-ac infoRetrieval (14) version1 (1)*/
10539   {  10, "registerSS" },
10540   {  11, "eraseSS" },
10541   {  12, "activateSS" },
10542   {  13, "deactivateSS" },
10543   {  14, "interrogateSS" },
10544   {  17, "registerPassword" },
10545   {  18, "getPassword" },
10546   {  19, "processUnstructuredSS-Data" },                /* map-ac networkFunctionalSs (18) version1 (1) */
10547   {  22, "sendRoutingInfo" },
10548   {  23, "updateGprsLocation" },
10549   {  24, "sendRoutingInfoForGprs" },
10550   {  25, "failureReport" },
10551   {  26, "noteMsPresentForGprs" },
10552   {  28, "performHandover" },                                   /* map-ac handoverControl (11) version1 (1)*/
10553   {  29, "sendEndSignal" },
10554   {  30, "performSubsequentHandover" },                 /* map-ac handoverControl (11) version1 (1) */
10555   {  31, "provideSIWFSNumber" },
10556   {  32, "sIWFSSignallingModify" },
10557   {  33, "processAccessSignalling" },
10558   {  34, "forwardAccessSignalling" },
10559   {  35, "noteInternalHandover" },                              /* map-ac handoverControl (11) version1 (1) */
10560   {  37, "reset" },
10561   {  38, "forwardCheckSS-Indication" },
10562   {  39, "prepareGroupCall" },
10563   {  40, "sendGroupCallEndSignal" },
10564   {  41, "processGroupCallSignalling" },
10565   {  42, "forwardGroupCallSignalling" },
10566   {  43, "checkIMEI" },
10567   {  44, "mt-forwardSM" },
10568   {  45, "sendRoutingInfoForSM" },
10569   {  46, "mo-forwardSM" },
10570   {  47, "reportSM-DeliveryStatus" },
10571   {  48, "noteSubscriberPresent" },                             /* map-ac mwdMngt (24) version1 (1) */
10572   {  49, "alertServiceCentreWithoutResult" },   /* map-ac shortMsgAlert (23) version1 (1) */
10573   {  50, "activateTraceMode" },
10574   {  51, "deactivateTraceMode" },
10575   {  52, "traceSubscriberActivity" },                   /* map-ac handoverControl (11) version1 (1) */
10576   {  54, "beginSubscriberActivity" },                   /* map-ac networkFunctionalSs (18) version1 (1) */
10577   {  55, "sendIdentification" },
10578   {  56, "sendAuthenticationInfo" },
10579   {  57, "restoreData" },
10580   {  58, "sendIMSI" },
10581   {  59, "processUnstructuredSS-Request" },
10582   {  60, "unstructuredSS-Request" },
10583   {  61, "unstructuredSS-Notify" },
10584   {  62, "anyTimeSubscriptionInterrogation" },
10585   {  63, "informServiceCentre" },
10586   {  64, "alertServiceCentre" },
10587   {  65, "anyTimeModification" },
10588   {  66, "readyForSM" },
10589   {  67, "purgeMS" },
10590   {  68, "prepareHandover" },
10591   {  69, "prepareSubsequentHandover" },
10592   {  70, "provideSubscriberInfo" },
10593   {  71, "anyTimeInterrogation" },
10594   {  72, "ss-InvocationNotification" },
10595   {  73, "setReportingState" },
10596   {  74, "statusReport" },
10597   {  75, "remoteUserFree" },
10598   {  76, "registerCC-Entry" },
10599   {  77, "eraseCC-Entry" },
10600   {  83, "provideSubscriberLocation" },
10601   {  85, "sendRoutingInfoForLCS" },
10602   {  86, "subscriberLocationReport" },
10603   { 0, NULL }
10604 };
10605 static const value_string gsm_map_err_code_string_vals[] = {
10606     { 1,        "Unknown Subscriber" },
10607     { 3,        "Unknown MSC" },
10608     { 5,        "Unidentified Subscriber" },
10609     { 6,        "Absent Subscriber SM" },
10610     { 7,        "Unknown Equipment" },
10611     { 8,        "Roaming Not Allowed" },
10612     { 9,        "Illegal Subscriber" },
10613     { 10,       "Bearer Service Not Provisioned" },
10614     { 11,       "Teleservice Not Provisioned" },
10615     { 12,       "Illegal Equipment" },
10616     { 13,       "Call Barred" },
10617     { 14,       "Forwarding Violation" },
10618     { 15,       "CUG Reject" },
10619     { 16,       "Illegal SS Operation" },
10620     { 17,       "SS Error Status" },
10621     { 18,       "SS Not Available" },
10622     { 19,       "SS Subscription Violation" },
10623     { 20,       "SS Incompatibility" },
10624     { 21,       "Facility Not Supported" },
10625     { 25,       "No Handover Number Available" },
10626     { 26,       "Subsequent Handover Failure" },
10627     { 27,       "Absent Subscriber" },
10628     { 28,       "Incompatible Terminal" },
10629     { 29,       "Short Term Denial" },
10630     { 30,       "Long Term Denial" },
10631     { 31,       "Subscriber Busy For MT SMS" },
10632     { 32,       "SM Delivery Failure" },
10633     { 33,       "Message Waiting List Full" },
10634     { 34,       "System Failure" },
10635     { 35,       "Data Missing" },
10636     { 36,       "Unexpected Data Value" },
10637     { 37,       "PW Registration Failure" },
10638     { 38,       "Negative PW Check" },
10639     { 39,       "No Roaming Number Available" },
10640     { 40,       "Tracing Buffer Full" },
10641     { 42,       "Target Cell Outside Group Call Area" },
10642     { 43,       "Number Of PW Attempts Violation" },
10643     { 44,       "Number Changed" },
10644     { 45,       "Busy Subscriber" },
10645     { 46,       "No Subscriber Reply" },
10646     { 47,       "Forwarding Failed" },
10647     { 48,       "OR Not Allowed" },
10648     { 49,       "ATI Not Allowed" },
10649     { 50,       "No Group Call Number Available" },
10650     { 51,       "Resource Limitation" },
10651     { 52,       "Unauthorized Requesting Network" },
10652     { 53,       "Unauthorized LCS Client" },
10653     { 54,       "Position Method Failure" },
10654     { 58,       "Unknown Or Unreachable LCS Client" },
10655     { 59,       "MM Event Not Supported" },
10656     { 60,       "ATSI Not Allowed" },
10657     { 61,       "ATM Not Allowed" },
10658     { 62,       "Information Not Available" },
10659     { 71,       "Unknown Alphabet" },
10660     { 72,       "USSD Busy" },
10661     { 120,      "Nbr Sb Exceeded" },
10662     { 121,      "Rejected By User" },
10663     { 122,      "Rejected By Network" },
10664     { 123,      "Deflection To Served Subscriber" },
10665     { 124,      "Special Service Code" },
10666     { 125,      "Invalid Deflected To Number" },
10667     { 126,      "Max Number Of MPTY Participants Exceeded" },
10668     { 127,      "Resources Not Available" },
10669     { 0, NULL }
10670 };
10671 static const true_false_string gsm_map_extension_value = {
10672   "No Extension",
10673   "Extension"
10674 };
10675 static const value_string gsm_map_nature_of_number_values[] = {
10676         {   0x00,       "unknown" },
10677         {   0x01,       "International Number" },
10678         {   0x02,       "National Significant Number" },
10679         {   0x03,       "Network Specific Number" },
10680         {   0x04,       "Subscriber Number" },
10681         {   0x05,       "Reserved" },
10682         {   0x06,       "Abbreviated Number" },
10683         {   0x07,       "Reserved for extension" },
10684         { 0, NULL }
10685 };
10686 static const value_string gsm_map_number_plan_values[] = {
10687         {   0x00,       "unknown" },
10688         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
10689         {   0x02,       "spare" },
10690         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
10691         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
10692         {   0x05,       "spare" },
10693         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
10694         {   0x07,       "spare" },
10695         {   0x08,       "National Numbering" },
10696         {   0x09,       "Private Numbering" },
10697         {   0x0f,       "Reserved for extension" },
10698         { 0, NULL }
10699 };
10700
10701 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
10702   "Quiescent",
10703   "Operative"
10704 };
10705 static const true_false_string gsm_map_Ss_Status_p_values = {
10706   "Provisioned",
10707   "Not Provisioned"
10708 };
10709 static const true_false_string gsm_map_Ss_Status_r_values = {
10710   "Registered",
10711   "Not Registered"
10712 };
10713 static const true_false_string gsm_map_Ss_Status_a_values = {
10714   "Active",
10715   "not Active"
10716 };
10717
10718 static guint32 opcode=0;
10719
10720 static int
10721 dissect_gsm_map_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
10722   offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
10723
10724   if (check_col(pinfo->cinfo, COL_INFO)){
10725     col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
10726   }
10727
10728   return offset;
10729 }
10730
10731 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10732
10733   guint8 octet;
10734
10735   switch(opcode){
10736   case  2: /*updateLocation*/
10737     offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
10738     break;
10739   case  3: /*cancelLocation*/
10740         octet = tvb_get_guint8(tvb,0) & 0xf;
10741         if ( octet == 3){ /*   */
10742                 offset = offset +2;
10743                 offset=dissect_gsm_map_CancelLocationArg(TRUE, tvb, offset, pinfo, tree, -1);
10744         }else{
10745     offset=dissect_gsm_map_CancelLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
10746         }
10747     break;
10748   case  4: /*provideRoamingNumber*/
10749     offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
10750     break;
10751   case  6: /*resumeCallHandling*/
10752     offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, pinfo, tree, -1);
10753     break;
10754   case  7: /*insertSubscriberData*/
10755     offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10756     break;
10757   case  8: /*deleteSubscriberData*/
10758     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10759     break;
10760         /* TODO find out why this isn't in the ASN1 file
10761   case  9: sendParameters
10762     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10763     break;
10764         */
10765   case  10: /*registerSS*/
10766     offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10767     break;
10768   case  11: /*eraseSS*/
10769     offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
10770     break;
10771   case 12: /*activateSS*/
10772     offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
10773     break;
10774   case 13: /*deactivateSS*/
10775     offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
10776     break;
10777   case 14: /*interrogateSS*/
10778     offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, pinfo, tree, -1);
10779     break;
10780   case 17: /*registerPassword*/
10781     offset=dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
10782     break;
10783   case 18: /*getPassword*/
10784     offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_getPassword);
10785     break;
10786   case 22: /*sendRoutingInfo*/
10787     offset=dissect_gsm_map_SendRoutingInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
10788     break;
10789   case 23: /*updateGprsLocation*/
10790     offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
10791     break;
10792   case 24: /*sendRoutingInfoForGprs*/
10793     offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
10794     break;
10795   case 25: /*failureReport*/
10796     offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, pinfo, tree, -1);
10797     break;
10798   case 26: /*noteMsPresentForGprs*/
10799     offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
10800     break;
10801   case 29: /*sendEndSignal*/
10802         octet = tvb_get_guint8(tvb,0) & 0xf;
10803         if ( octet == 3){ /* This is a V9 message ??? */
10804                 offset = offset +2;
10805                 offset=dissect_gsm_map_SendEndSignalV9Arg(TRUE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
10806         }else{
10807                 offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
10808         }
10809     break;
10810   case 31: /*provideSIWFSNumbe*/
10811     offset=dissect_gsm_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
10812     break;
10813   case 32: /*sIWFSSignallingModify*/
10814     offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, pinfo, tree, -1);
10815     break;
10816   case 33: /*processAccessSignalling*/
10817     offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
10818     break;
10819   case 34: /*forwardAccessSignalling*/
10820     offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
10821     break;
10822   case 37: /*reset*/
10823     offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, pinfo, tree, -1);
10824     break;
10825   case 38: /*forwardCheckSS-Indication*/
10826     return offset;
10827     break;
10828   case 39: /*prepareGroupCall*/
10829     offset=dissect_gsm_map_PrepareGroupCallArg(FALSE, tvb, offset, pinfo, tree, -1);
10830     break;
10831   case 40: /*sendGroupCallEndSignal*/
10832     dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, pinfo, tree, -1);
10833     break;
10834   case 42: /*processGroupCallSignalling*/
10835     offset=dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, pinfo, tree, -1);
10836     break;
10837   case 43: /*checkIMEI*/
10838           if (application_context_version < 2 ){
10839                   offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
10840           }else{
10841                   offset=dissect_gsm_map_CheckIMEIv2Arg(FALSE, tvb, offset, pinfo, tree, -1);
10842           }
10843     break;
10844   case 44: /*mt-forwardSM*/
10845     offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
10846     break;
10847   case 45: /*sendRoutingInfoForSM*/
10848     offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
10849     break;
10850   case 46: /*mo-forwardSM*/
10851     offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10852     break;
10853   case 47: /*reportSM-DeliveryStatus*/
10854     offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
10855     break;
10856   case 50: /*activateTraceMode*/
10857     offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
10858     break;
10859   case 51: /*deactivateTraceMode*/
10860     offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
10861     break;
10862   case 55: /*sendIdentification*/
10863     offset=dissect_gsm_map_Tmsi(FALSE, tvb, offset, pinfo, tree, -1);
10864     break;
10865   case 56: /*sendAuthenticationInfo*/
10866           if (application_context_version < 3 ){
10867                   offset=dissect_gsm_map_SendAuthenticationInfoArg(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
10868           }else{
10869                   offset=dissect_gsm_map_SendAuthenticationInfoArgV3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_SendAuthenticationInfoArg);
10870           }
10871         break;
10872   case 57: /*restoreData*/
10873         offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10874         break;
10875   case 58: /*sendIMSI*/
10876         offset=dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, -1);
10877         break;
10878   case 59: /*processUnstructuredSS-Request*/
10879     offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10880     break;
10881   case 60: /*unstructuredSS-Request*/
10882     offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10883     break;
10884   case 61: /*unstructuredSS-Notify*/
10885     offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10886     break;
10887   case 62: /*AnyTimeSubscriptionInterrogation*/
10888           offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, pinfo, tree, -1);
10889           break;
10890   case 63: /*informServiceCentre*/
10891     offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
10892     break;
10893   case 64: /*alertServiceCentre*/
10894     offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
10895     break;
10896   case 65: /*AnyTimeModification*/
10897           offset=dissect_gsm_map_AnyTimeModificationArg(FALSE, tvb, offset, pinfo, tree, -1);
10898           break;
10899   case 66: /*readyForSM*/
10900     offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10901     break;
10902   case 67: /*purgeMS*/
10903     offset=dissect_gsm_map_PurgeMS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10904     break;
10905   case 68: /*prepareHandover*/
10906         octet = tvb_get_guint8(tvb,0) & 0xf;
10907         if ( octet == 3){ /* This is a V9 message ??? */
10908                 offset = offset +2;
10909                 offset=dissect_gsm_map_PrepareHandoverV3Arg(TRUE, tvb, offset, pinfo, tree, -1);
10910         }else{
10911                 offset=dissect_gsm_map_PrepareHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10912         }
10913     break;
10914   case 69: /*prepareSubsequentHandover*/
10915     offset=dissect_gsm_map_PrepareSubsequentHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10916     break;
10917   case 70: /*provideSubscriberInfo*/
10918     offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
10919     break;
10920   case 71: /*anyTimeInterrogation*/
10921     offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, pinfo, tree, -1);
10922     break;
10923   case 72: /*ss-InvocationNotificatio*/
10924     offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, pinfo, tree, -1);
10925     break;
10926   case 73: /*setReportingState*/
10927     offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, pinfo, tree, -1);
10928     break;
10929   case 74: /*statusReport*/
10930     offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, pinfo, tree, -1);
10931     break;
10932   case 75: /*remoteUserFree*/
10933     offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, pinfo, tree, -1);
10934     break;
10935   case 76: /*registerCC-Entry*/
10936     offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
10937     break;
10938   case 77: /*eraseCC-Entry*/
10939     offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
10940     break;
10941   case 83: /*provideSubscriberLocation*/
10942     offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10943     break;
10944   case 85: /*sendRoutingInfoForLCS*/
10945     offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10946     break;
10947   case 86: /*subscriberLocationReport*/
10948     offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10949     break;
10950   default:
10951     proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
10952   }
10953   return offset;
10954 }
10955
10956
10957 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10958         
10959   guint8 octet;
10960   switch(opcode){
10961   case  2: /*updateLocation*/
10962           octet = tvb_get_guint8(tvb,offset);
10963           /* As it seems like SEQUENCE OF sometimes is omitted, find out if it's there */
10964           if ( octet == 0x30 ){ /* Class 0 Univerasl, P/C 1 Constructed,Tag 16 Sequence OF */
10965     offset=dissect_gsm_map_UpdateLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
10966           }else{ /* Try decoding with IMPLICIT flag set */ 
10967                   offset=dissect_gsm_map_UpdateLocationRes(TRUE, tvb, offset, pinfo, tree, -1);
10968           }
10969     break;
10970   case  3: /*cancelLocation*/
10971     offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
10972     break;
10973   case  4: /*provideRoamingNumber*/
10974     offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
10975     break;
10976   case  6: /*resumeCallHandling*/
10977     offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, pinfo, tree, -1);
10978     break;
10979   case  7: /*insertSubscriberData*/
10980     offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
10981     break;
10982   case  8: /*deleteSubscriberData*/
10983     offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
10984     break;
10985         /* TODO find out why this isn't in the ASN1 file
10986   case  9: sendParameters
10987     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10988     break;
10989         */
10990   case  10: /*registerSS*/
10991     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
10992     break;
10993   case  11: /*eraseSS*/
10994     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
10995     break;
10996   case 12: /*activateSS*/
10997     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
10998     break;
10999   case 13: /*deactivateSS*/
11000     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
11001     break;
11002   case 14: /*interrogateSS*/
11003     offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, pinfo, tree, -1);
11004     break;
11005   case 17: /*registerPassword*/
11006     offset=dissect_gsm_map_NewPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
11007     break;
11008   case 18: /*getPassword*/
11009     offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_currentPassword);
11010     break;
11011   case 22: /*sendRoutingInfo*/
11012           /* This is done to get around a problem with IMPLICIT tag:s */
11013     offset = offset +2;
11014     offset=dissect_gsm_map_SendRoutingInfoRes(TRUE, tvb, offset, pinfo, tree, -1);
11015     break;
11016   case 23: /*updateGprsLocation*/
11017     offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
11018     break;
11019   case 24: /*sendRoutingInfoForGprs*/
11020     offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
11021     break;
11022   case 25: /*failureReport*/
11023     offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, pinfo, tree, -1);
11024     break;
11025   case 26: /*noteMsPresentForGprs*/
11026     offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
11027     break;
11028   case 29: /*sendEndSignal*/
11029           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain 
11030            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
11031            */
11032     offset=dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, -1);
11033     break;
11034   case 31: /*provideSIWFSNumbe*/
11035     offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
11036     break;
11037   case 32: /*provideSIWFSNumbe*/
11038     offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, pinfo, tree, -1);
11039     break;
11040   case 39: /*prepareGroupCall*/
11041     offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, pinfo, tree, -1);
11042     break;
11043   case 40: /*sendGroupCallEndSignal*/
11044     dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, pinfo, tree, -1);
11045     break;
11046   case 43: /*checkIMEI*/
11047     offset=dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_equipmentStatus);
11048     break;
11049   case 45: /*sendRoutingInfoForSM*/
11050     offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
11051     break;
11052   case 46: /*mo-forwardSM*/
11053     offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
11054     break;
11055   case 48: /*reportSM-DeliveryStatus*/
11056     offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
11057     break;
11058   case 50: /*activateTraceMode*/
11059     offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
11060     break;
11061   case 51: /*deactivateTraceMode*/
11062     offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
11063     break;
11064   case 55: /*sendIdentification*/
11065     offset=dissect_gsm_map_SendIdentificationRes(FALSE, tvb, offset, pinfo, tree, -1);
11066     break;
11067   case 56:
11068           offset = dissect_gsm_map_SendAuthenticationInfoRes(FALSE, tvb, offset, pinfo, tree, -1);
11069           break;
11070   case 57: /*restoreData*/
11071         offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, pinfo, tree, -1);
11072         break;
11073   case 58: /*sendIMSI*/
11074         offset=dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree,hf_gsm_map_imsi);
11075         break;
11076   case 59: /*unstructuredSS-Request*/
11077     offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
11078     break;
11079   case 60: /*unstructuredSS-Request*/
11080     offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
11081     break;
11082   case 61: /*unstructuredSS-Notify*/
11083     /* TRUE ? */
11084     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
11085     break;
11086   case 62: /*AnyTimeSubscriptionInterrogation*/
11087           offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, pinfo, tree, -1);
11088           break;
11089   case 65: /*AnyTimeModification*/
11090           offset=dissect_gsm_map_AnyTimeModificationRes(FALSE, tvb, offset, pinfo, tree, -1);
11091           break;
11092   case 66: /*readyForSM*/
11093     offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
11094     break;
11095   case 67: /*purgeMS*/
11096     offset=dissect_gsm_map_PurgeMS_Res(FALSE, tvb, offset, pinfo, tree, -1);
11097     break;
11098   case 68: /*prepareHandover*/
11099         octet = tvb_get_guint8(tvb,0) & 0xf;
11100         if ( octet == 3){ /* This is a V9 message ??? */
11101                 offset = offset +2;
11102                 offset=dissect_gsm_map_PrepareHandoverV3Res(TRUE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
11103         }else{
11104                 offset=dissect_gsm_map_PrepareHO_Res(FALSE, tvb, offset, pinfo, tree, -1);
11105         }
11106     break;
11107   case 69: /*prepareSubsequentHandover*/
11108      offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
11109     break;
11110   case 70: /*provideSubscriberInfo*/
11111     offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, pinfo, tree, -1);
11112     break;
11113   case 71: /*anyTimeInterrogation*/
11114     offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, pinfo, tree, -1);
11115     break;
11116   case 72: /*ss-InvocationNotificatio*/
11117     offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, pinfo, tree, -1);
11118     break;
11119   case 73: /*setReportingState*/
11120     offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, pinfo, tree, -1);
11121     break;
11122   case 74: /*statusReport*/
11123     offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, pinfo, tree, -1);
11124     break;
11125   case 75: /*remoteUserFree*/
11126     offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, pinfo, tree, -1);
11127     break;
11128   case 76: /*registerCC-Entry*/
11129     offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
11130     break;
11131   case 77: /*eraseCC-Entry*/
11132     offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
11133     break;
11134   case 83: /*provideSubscriberLocation*/
11135     offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, pinfo, tree, -1);
11136     break;
11137   case 85: /*sendRoutingInfoForLCS*/
11138     offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
11139     break;
11140   case 86: /*subscriberLocationReport*/
11141     offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, pinfo, tree, -1);
11142     break;
11143  default:
11144     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
11145   }
11146   return offset;
11147 }
11148
11149 static int 
11150 dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11151   return dissect_gsm_map_Opcode(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeCmd);
11152 }
11153
11154 static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11155   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_invokeid, NULL);
11156 }
11157
11158
11159 static const value_string InvokeId_vals[] = {
11160   {   0, "invokeid" },
11161   {   1, "absent" },
11162   { 0, NULL }
11163 };
11164
11165 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11166   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absent);
11167 }
11168
11169
11170 static const ber_choice_t InvokeId_choice[] = {
11171   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
11172   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
11173   { 0, 0, 0, 0, NULL }
11174 };
11175
11176 static int
11177 dissect_gsm_map_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11178   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
11179                               InvokeId_choice, hf_index, ett_gsm_map_InvokeId);
11180
11181   return offset;
11182 }
11183 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11184   return dissect_gsm_map_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeId);
11185 }
11186
11187 static const ber_sequence_t InvokePDU_sequence[] = {
11188   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
11189   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
11190   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
11191   { 0, 0, 0, NULL }
11192 };
11193
11194 static int
11195 dissect_gsm_map_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11196   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
11197                                 InvokePDU_sequence, hf_index, ett_gsm_map_InvokePDU);
11198
11199   return offset;
11200 }
11201 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11202   return dissect_gsm_map_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invoke);
11203 }
11204
11205 static const ber_sequence_t ReturnResult_result_sequence[] = {
11206   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
11207   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
11208   { 0, 0, 0, NULL }
11209 };
11210 static int
11211 dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11212   offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
11213                                 ReturnResult_result_sequence, hf_gsm_map_returnResult_result, ett_gsm_map_ReturnResult_result);
11214
11215   return offset;
11216 }
11217
11218 static const ber_sequence_t ReturnResultPDU_sequence[] = {
11219   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
11220   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
11221   { 0, 0, 0, NULL }
11222 };
11223
11224 static int
11225 dissect_gsm_map_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11226   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
11227                                 ReturnResultPDU_sequence, hf_index, ett_gsm_map_ReturnResultPDU);
11228
11229   return offset;
11230 }
11231 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11232   return dissect_gsm_map_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResult);
11233 }
11234
11235 static int
11236 dissect_local_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11237   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_local_errorCode, NULL);
11238 }
11239
11240 static int
11241 dissect_global_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11242   offset =  dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
11243                                          hf_gsm_map_global_errorCode_oid, NULL);
11244   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_global_errorCode, NULL);
11245 }
11246 static const ber_choice_t ReturnError_result_choice[] = {
11247   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_local_errorCode },
11248   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_global_errorCode },
11249   {   0, 0, 0, 0, NULL }
11250 };
11251
11252
11253 static int
11254 dissect_ReturnError_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11255
11256   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
11257                               ReturnError_result_choice, hf_gsm_map_returnError_result, ett_gsm_map_ReturnError_result);
11258
11259   return offset;
11260 }
11261
11262 static const ber_sequence_t ReturnErrorPDU_sequence[] = {
11263   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
11264   { BER_CLASS_UNI, -1/*choice*/,BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ReturnError_result },
11265   { 0, 0, 0, NULL }
11266 };
11267
11268 static int
11269 dissect_gsm_map_ReturnErrorPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11270   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
11271                                 ReturnErrorPDU_sequence, hf_index, ett_gsm_map_ReturnErrorPDU);
11272
11273   return offset;
11274 }
11275 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11276   return dissect_gsm_map_ReturnErrorPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnError);
11277 }
11278
11279
11280 static const value_string GSMMAPPDU_vals[] = {
11281   {   1, "Invoke " },
11282   {   2, "ReturnResult " },
11283   {   3, "ReturnError " },
11284   {   4, "Reject " },
11285   { 0, NULL }
11286 };
11287
11288 static const ber_choice_t GSMMAPPDU_choice[] = {
11289   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
11290   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
11291   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
11292 #ifdef REMOVED
11293   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
11294 #endif
11295   { 0, 0, 0, 0, NULL }
11296 };
11297
11298 static guint8 gsmmap_pdu_type = 0;
11299 static guint8 gsm_map_pdu_size = 0;
11300
11301 static int
11302 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo , proto_tree *tree, int hf_index) {
11303
11304   char *version_ptr, *version_str;
11305
11306   opcode = 0;
11307   application_context_version = 0;
11308   if (pinfo->private_data != NULL){
11309     version_ptr = strrchr(pinfo->private_data,'.');
11310     version_str = g_strdup(version_ptr+1);
11311     application_context_version = atoi(version_str);
11312   }
11313
11314   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
11315   /* Get the length and add 2 */
11316   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
11317
11318   if (check_col(pinfo->cinfo, COL_INFO)){
11319     col_set_str(pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, GSMMAPPDU_vals, "Unknown GSM-MAP PDU (%u)"));
11320   }
11321
11322   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
11323                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU);
11324
11325
11326   return offset;
11327 }
11328
11329
11330
11331
11332 static void
11333 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
11334 {
11335     proto_item          *item=NULL;
11336     proto_tree          *tree=NULL;
11337         /* Used for gsm_map TAP */
11338         static                  gsm_map_tap_rec_t tap_rec;
11339         gint                    op_idx;
11340     gchar                       *str = NULL;
11341
11342
11343     if (check_col(pinfo->cinfo, COL_PROTOCOL))
11344     {
11345         col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
11346     }
11347
11348         top_tree = parent_tree;
11349
11350     /* create display subtree for the protocol */
11351     if(parent_tree){
11352        item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
11353        tree = proto_item_add_subtree(item, ett_gsm_map);
11354     }
11355
11356     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
11357         str = my_match_strval(opcode, gsm_map_opr_code_strings, &op_idx);
11358
11359         tap_rec.invoke = FALSE;
11360         if ( gsmmap_pdu_type  == 1 )
11361                 tap_rec.invoke = TRUE;
11362         tap_rec.opr_code_idx = op_idx;
11363         tap_rec.size = gsm_map_pdu_size;
11364
11365         tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
11366
11367
11368 }
11369
11370 static const value_string ssCode_vals[] = {
11371   { 0x00, "allSS - all SS" },
11372   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
11373   { 0x11 ,"clip - calling line identification presentation" },
11374   { 0x12 ,"clir - calling line identification restriction" },
11375   { 0x13 ,"colp - connected line identification presentation" },
11376   { 0x14 ,"colr - connected line identification restriction" },
11377   { 0x15 ,"mci - malicious call identification" },
11378   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
11379   { 0x19 ,"cnap - calling name presentation" },
11380   { 0x20 ,"allForwardingSS - all forwarding SS" },
11381   { 0x21 ,"cfu - call forwarding unconditional" },
11382   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
11383   { 0x29 ,"cfb - call forwarding busy" },
11384   { 0x2a ,"cfnry - call forwarding on no reply" },
11385   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
11386   { 0x24 ,"cd - call deflection" },
11387   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
11388   { 0x31 ,"ect - explicit call transfer" },
11389   { 0x32 ,"mah - mobile access hunting" },
11390   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
11391   { 0x41 ,"cw - call waiting" },
11392   { 0x42 ,"hold - call hold" },
11393   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
11394   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
11395   { 0x45 ,"mc - multicall" },
11396   { 0x50 ,"allMultiPartySS - all multiparty SS" },
11397   { 0x51 ,"multiPTY - multiparty" },
11398   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
11399   { 0x61 ,"cug - closed user group" },
11400   { 0x70 ,"allChargingSS - all charging SS" },
11401   { 0x71 ,"aoci - advice of charge information" },
11402   { 0x72 ,"aocc - advice of charge charging" },
11403   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
11404   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
11405   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
11406   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
11407   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
11408   { 0x91 ,"barringOfOutgoingCalls" },
11409   { 0x92 ,"baoc - barring of all outgoing calls" },
11410   { 0x93 ,"boic - barring of outgoing international calls" },
11411   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
11412   { 0x99 ,"barringOfIncomingCalls" },
11413   { 0x9a ,"baic - barring of all incoming calls" },
11414   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
11415   { 0xf0 ,"allPLMN-specificSS" },
11416   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
11417   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
11418   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
11419   { 0xb1 ,"universal - allow location by any LCS client" },
11420   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
11421   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
11422   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
11423   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
11424   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
11425   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
11426   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
11427
11428   { 0xf1 ,"plmn-specificSS-1" },
11429   { 0xf2 ,"plmn-specificSS-2" },
11430   { 0xf3 ,"plmn-specificSS-3" },
11431   { 0xf4 ,"plmn-specificSS-4" },
11432   { 0xf5 ,"plmn-specificSS-5" },
11433   { 0xf6 ,"plmn-specificSS-6" },
11434   { 0xf7 ,"plmn-specificSS-7" },
11435   { 0xf8 ,"plmn-specificSS-8" },
11436   { 0xf9 ,"plmn-specificSS-9" },
11437   { 0xfa ,"plmn-specificSS-a" },
11438   { 0xfb ,"plmn-specificSS-b" },
11439   { 0xfc ,"plmn-specificSS-c" },
11440   { 0xfd ,"plmn-specificSS-d" },
11441   { 0xfe ,"plmn-specificSS-e" },
11442   { 0xff ,"plmn-specificSS-f" },
11443   { 0, NULL }
11444 };
11445
11446 static const value_string Teleservice_vals[] = {
11447 {0x00, "allTeleservices" },
11448 {0x10, "allSpeechTransmissionServices" },
11449 {0x11, "telephony" },
11450 {0x12, "emergencyCalls" },
11451 {0x20, "allShortMessageServices" },
11452 {0x21, "shortMessageMT-PP" },
11453 {0x22, "shortMessageMO-PP" },
11454 {0x60, "allFacsimileTransmissionServices" },
11455 {0x61, "facsimileGroup3AndAlterSpeech" },
11456 {0x62, "automaticFacsimileGroup3" },
11457 {0x63, "facsimileGroup4" },
11458
11459 {0x70, "allDataTeleservices" },
11460 {0x80, "allTeleservices-ExeptSMS" },
11461
11462 {0x90, "allVoiceGroupCallServices" },
11463 {0x91, "voiceGroupCall" },
11464 {0x92, "voiceBroadcastCall" },
11465
11466 {0xd0, "allPLMN-specificTS" },
11467 {0xd1, "plmn-specificTS-1" },
11468 {0xd2, "plmn-specificTS-2" },
11469 {0xd3, "plmn-specificTS-3" },
11470 {0xd4, "plmn-specificTS-4" },
11471 {0xd5, "plmn-specificTS-5" },
11472 {0xd6, "plmn-specificTS-6" },
11473 {0xd7, "plmn-specificTS-7" },
11474 {0xd8, "plmn-specificTS-8" },
11475 {0xd9, "plmn-specificTS-9" },
11476 {0xda, "plmn-specificTS-A" },
11477 {0xdb, "plmn-specificTS-B" },
11478 {0xdc, "plmn-specificTS-C" },
11479 {0xdd, "plmn-specificTS-D" },
11480 {0xde, "plmn-specificTS-E" },
11481 {0xdf, "plmn-specificTS-F" },
11482   { 0, NULL }
11483 };
11484
11485 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
11486 static void range_delete_callback(guint32 ssn)
11487 {
11488     if (ssn) {
11489         dissector_delete("tcap.itu_ssn", ssn, map_handle);
11490     }
11491 }
11492
11493 static void range_add_callback(guint32 ssn)
11494 {
11495     if (ssn) {
11496         dissector_add("tcap.itu_ssn", ssn, map_handle);
11497     }
11498 }
11499
11500 void proto_reg_handoff_gsm_map(void) {
11501
11502     static int map_prefs_initialized = FALSE;
11503     data_handle = find_dissector("data");
11504
11505     if (!map_prefs_initialized) {
11506         map_prefs_initialized = TRUE;
11507         map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
11508     }
11509     else {
11510         range_foreach(ssn_range, range_delete_callback);
11511     }
11512
11513     g_free(ssn_range);
11514     ssn_range = range_copy(global_ssn_range);
11515
11516     range_foreach(ssn_range, range_add_callback);
11517
11518 }
11519
11520 /*--- proto_register_gsm_map -------------------------------------------*/
11521 void proto_register_gsm_map(void) {
11522         module_t *gsm_map_module;
11523
11524   /* List of fields */
11525   static hf_register_info hf[] = {
11526     { &hf_gsm_map_invokeCmd,
11527       { "invokeCmd", "gsm_map.invokeCmd",
11528         FT_UINT32, BASE_DEC, VALS(gsm_map_opr_code_strings), 0,
11529         "InvokePDU/invokeCmd", HFILL }},
11530     { &hf_gsm_map_invokeid,
11531       { "invokeid", "gsm_map.invokeid",
11532         FT_INT32, BASE_DEC, NULL, 0,
11533         "InvokeId/invokeid", HFILL }},
11534     { &hf_gsm_map_absent,
11535       { "absent", "gsm_map.absent",
11536         FT_NONE, BASE_NONE, NULL, 0,
11537         "InvokeId/absent", HFILL }},
11538     { &hf_gsm_map_invokeId,
11539       { "invokeId", "gsm_map.invokeId",
11540         FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
11541         "InvokePDU/invokeId", HFILL }},
11542         { &hf_gsm_map_SendAuthenticationInfoArg,
11543       { "SendAuthenticationInfoArg", "gsm_map.SendAuthenticationInfoArg",
11544         FT_BYTES, BASE_NONE, NULL, 0,
11545         "SendAuthenticationInfoArg", HFILL }},
11546     { &hf_gsm_map_currentPassword,
11547       { "currentPassword", "gsm_map.currentPassword",
11548         FT_STRING, BASE_NONE, NULL, 0,
11549         "", HFILL }},
11550         { &hf_gsm_mapSendEndSignal,
11551       { "mapSendEndSignalArg", "gsm_map.mapsendendsignalarg",
11552         FT_BYTES, BASE_NONE, NULL, 0,
11553         "mapSendEndSignalArg", HFILL }},
11554     { &hf_gsm_map_invoke,
11555       { "invoke", "gsm_map.invoke",
11556         FT_NONE, BASE_NONE, NULL, 0,
11557         "GSMMAPPDU/invoke", HFILL }},
11558     { &hf_gsm_map_returnResult,
11559       { "returnResult", "gsm_map.returnResult",
11560         FT_NONE, BASE_NONE, NULL, 0,
11561         "GSMMAPPDU/returnResult", HFILL }},
11562         {&hf_gsm_map_returnResult_result,
11563       { "returnResult_result", "gsm_map.returnresultresult",
11564         FT_BYTES, BASE_NONE, NULL, 0,
11565         "returnResult_result", HFILL }},
11566         {&hf_gsm_map_returnError_result,
11567       { "returnError_result", "gsm_map.returnerrorresult",
11568         FT_UINT32, BASE_DEC, NULL, 0,
11569         "returnError_result", HFILL }},
11570         {&hf_gsm_map_returnError,
11571       { "returnError", "gsm_map.returnError",
11572         FT_NONE, BASE_NONE, NULL, 0,
11573         "GSMMAPPDU/returnError", HFILL }},
11574         {&hf_gsm_map_local_errorCode,
11575       { "Local Error Code", "gsm_map.localerrorCode",
11576         FT_UINT32, BASE_DEC, VALS(gsm_map_err_code_string_vals), 0,
11577         "localerrorCode", HFILL }},
11578         {&hf_gsm_map_global_errorCode_oid,
11579       { "Global Error Code OID", "gsm_map.hlobalerrorCodeoid",
11580         FT_BYTES, BASE_NONE, NULL, 0,
11581         "globalerrorCodeoid", HFILL }},
11582         {&hf_gsm_map_global_errorCode,
11583       { "Global Error Code", "gsm_map.globalerrorCode",
11584         FT_UINT32, BASE_DEC, NULL, 0,
11585         "globalerrorCode", HFILL }},
11586     { &hf_gsm_map_getPassword,
11587       { "Password", "gsm_map.password",
11588         FT_UINT8, BASE_DEC, VALS(gsm_map_GetPasswordArg_vals), 0,
11589         "Password", HFILL }},
11590     { &hf_gsm_map_extension,
11591       { "Extension", "gsm_map.extension",
11592         FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
11593         "Extension", HFILL }},
11594     { &hf_gsm_map_nature_of_number,
11595       { "Nature of number", "gsm_map.nature_of_number",
11596         FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
11597         "ature of number", HFILL }},
11598     { &hf_gsm_map_number_plan,
11599       { "Number plan", "gsm_map.number_plan",
11600         FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
11601         "Number plan", HFILL }},
11602         { &hf_gsm_map_misdn_digits,
11603       { "Misdn digits", "gsm_map.misdn_digits",
11604         FT_STRING, BASE_NONE, NULL, 0,
11605         "Misdn digits", HFILL }},
11606         { &hf_gsm_map_servicecentreaddress_digits,
11607       { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
11608         FT_STRING, BASE_NONE, NULL, 0,
11609         "ServiceCentreAddress digits", HFILL }},
11610         { &hf_gsm_map_map_gmsc_address_digits,
11611       { "Gmsc Address digits digits", "gsm_map.gmsc_address_digits",
11612         FT_STRING, BASE_NONE, NULL, 0,
11613         "Gmsc Address digits", HFILL }},
11614         { &hf_gsm_map_imsi_digits,
11615       { "Imsi digits", "gsm_map.imsi_digits",
11616         FT_STRING, BASE_NONE, NULL, 0,
11617         "Imsi digits", HFILL }},
11618         {&hf_gsm_map_map_RoamingNumber_digits,
11619       { "RoamingNumber digits", "gsm_map.RoamingNumber_digits",
11620         FT_STRING, BASE_NONE, NULL, 0,
11621         "RoamingNumber digits", HFILL }},
11622         {&hf_gsm_map_map_hlr_number_digits,
11623       { "Hlr-Number digits", "gsm_map.hlr_number_digits",
11624         FT_STRING, BASE_NONE, NULL, 0,
11625         "Hlr-Number digits", HFILL }},
11626         {&hf_gsm_map_map_ForwardedToNumber_digits,
11627       { "Forwarded To Number digits", "gsm_map.forwardedtonumber_digits",
11628         FT_STRING, BASE_NONE, NULL, 0,
11629         "Forwarded To Number digits", HFILL }},
11630         { &hf_gsm_map_Ss_Status_unused,
11631       { "Unused", "gsm_map.unused",
11632         FT_UINT8, BASE_HEX, NULL, 0xf0,
11633         "Unused", HFILL }},
11634         { &hf_gsm_map_Ss_Status_q_bit,
11635       { "Q bit", "gsm_map.ss_status_q_bit",
11636         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
11637         "Q bit", HFILL }},
11638         { &hf_gsm_map_Ss_Status_p_bit,
11639       { "P bit", "gsm_map.ss_status_p_bit",
11640         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
11641         "P bit", HFILL }},
11642         { &hf_gsm_map_Ss_Status_r_bit,
11643       { "R bit", "gsm_map.ss_status_r_bit",
11644         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
11645         "R bit", HFILL }},
11646         { &hf_gsm_map_Ss_Status_a_bit,
11647       { "A bit", "gsm_map.ss_status_a_bit",
11648         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
11649         "A bit", HFILL }},
11650
11651
11652 /*--- Included file: packet-gsm_map-hfarr.c ---*/
11653
11654     { &hf_gsm_map_protocolId,
11655       { "protocolId", "gsm_map.protocolId",
11656         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
11657         "Bss-APDU/protocolId", HFILL }},
11658     { &hf_gsm_map_signalInfo,
11659       { "signalInfo", "gsm_map.signalInfo",
11660         FT_BYTES, BASE_HEX, NULL, 0,
11661         "Bss-APDU/signalInfo", HFILL }},
11662     { &hf_gsm_map_extensionContainer,
11663       { "extensionContainer", "gsm_map.extensionContainer",
11664         FT_NONE, BASE_NONE, NULL, 0,
11665         "", HFILL }},
11666     { &hf_gsm_map_accessNetworkProtocolId,
11667       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
11668         FT_UINT32, BASE_DEC, VALS(gsm_map_T_accessNetworkProtocolId_vals), 0,
11669         "An-APDU/accessNetworkProtocolId", HFILL }},
11670     { &hf_gsm_map_signalInfo2,
11671       { "signalInfo2", "gsm_map.signalInfo2",
11672         FT_BYTES, BASE_HEX, NULL, 0,
11673         "An-APDU/signalInfo2", HFILL }},
11674     { &hf_gsm_map_supportedCamelPhases,
11675       { "supportedCamelPhases", "gsm_map.supportedCamelPhases",
11676         FT_BYTES, BASE_HEX, NULL, 0,
11677         "", HFILL }},
11678     { &hf_gsm_map_solsaSupportIndicator,
11679       { "solsaSupportIndicator", "gsm_map.solsaSupportIndicator",
11680         FT_NONE, BASE_NONE, NULL, 0,
11681         "", HFILL }},
11682     { &hf_gsm_map_istSupportIndicator,
11683       { "istSupportIndicator", "gsm_map.istSupportIndicator",
11684         FT_UINT32, BASE_DEC, VALS(gsm_map_T_istSupportIndicator_vals), 0,
11685         "Vlr-Capability/istSupportIndicator", HFILL }},
11686     { &hf_gsm_map_superChargerSupportedInServingNetworkEntity,
11687       { "superChargerSupportedInServingNetworkEntity", "gsm_map.superChargerSupportedInServingNetworkEntity",
11688         FT_UINT32, BASE_DEC, VALS(gsm_map_T_superChargerSupportedInServingNetworkEntity_vals), 0,
11689         "Vlr-Capability/superChargerSupportedInServingNetworkEntity", HFILL }},
11690     { &hf_gsm_map_sendSubscriberData,
11691       { "sendSubscriberData", "gsm_map.sendSubscriberData",
11692         FT_NONE, BASE_NONE, NULL, 0,
11693         "Vlr-Capability/superChargerSupportedInServingNetworkEntity/sendSubscriberData", HFILL }},
11694     { &hf_gsm_map_subscriberDataStored,
11695       { "subscriberDataStored", "gsm_map.subscriberDataStored",
11696         FT_BYTES, BASE_HEX, NULL, 0,
11697         "Vlr-Capability/superChargerSupportedInServingNetworkEntity/subscriberDataStored", HFILL }},
11698     { &hf_gsm_map_longFTN_Supported,
11699       { "longFTN-Supported", "gsm_map.longFTN_Supported",
11700         FT_NONE, BASE_NONE, NULL, 0,
11701         "", HFILL }},
11702     { &hf_gsm_map_supportedLCS_CapabilitySets,
11703       { "supportedLCS-CapabilitySets", "gsm_map.supportedLCS_CapabilitySets",
11704         FT_BYTES, BASE_HEX, NULL, 0,
11705         "Vlr-Capability/supportedLCS-CapabilitySets", HFILL }},
11706     { &hf_gsm_map_offeredCamel4CSIs,
11707       { "offeredCamel4CSIs", "gsm_map.offeredCamel4CSIs",
11708         FT_BYTES, BASE_HEX, NULL, 0,
11709         "Vlr-Capability/offeredCamel4CSIs", HFILL }},
11710     { &hf_gsm_map_imsi,
11711       { "imsi", "gsm_map.imsi",
11712         FT_BYTES, BASE_HEX, NULL, 0,
11713         "", HFILL }},
11714     { &hf_gsm_map_msc_Number,
11715       { "msc-Number", "gsm_map.msc_Number",
11716         FT_BYTES, BASE_HEX, NULL, 0,
11717         "", HFILL }},
11718     { &hf_gsm_map_vlr_Number,
11719       { "vlr-Number", "gsm_map.vlr_Number",
11720         FT_BYTES, BASE_HEX, NULL, 0,
11721         "", HFILL }},
11722     { &hf_gsm_map_lmsi,
11723       { "lmsi", "gsm_map.lmsi",
11724         FT_BYTES, BASE_HEX, NULL, 0,
11725         "", HFILL }},
11726     { &hf_gsm_map_vlr_Capability,
11727       { "vlr-Capability", "gsm_map.vlr_Capability",
11728         FT_NONE, BASE_NONE, NULL, 0,
11729         "", HFILL }},
11730     { &hf_gsm_map_informPreviousNetworkEntity,
11731       { "informPreviousNetworkEntity", "gsm_map.informPreviousNetworkEntity",
11732         FT_NONE, BASE_NONE, NULL, 0,
11733         "UpdateLocationArg/informPreviousNetworkEntity", HFILL }},
11734     { &hf_gsm_map_cs_LCS_NotSupportedByUE,
11735       { "cs-LCS-NotSupportedByUE", "gsm_map.cs_LCS_NotSupportedByUE",
11736         FT_NONE, BASE_NONE, NULL, 0,
11737         "UpdateLocationArg/cs-LCS-NotSupportedByUE", HFILL }},
11738     { &hf_gsm_map_v_gmlc_Address,
11739       { "v-gmlc-Address", "gsm_map.v_gmlc_Address",
11740         FT_BYTES, BASE_HEX, NULL, 0,
11741         "UpdateLocationArg/v-gmlc-Address", HFILL }},
11742     { &hf_gsm_map_add_info,
11743       { "add-info", "gsm_map.add_info",
11744         FT_NONE, BASE_NONE, NULL, 0,
11745         "UpdateLocationArg/add-info", HFILL }},
11746     { &hf_gsm_map_imeisv,
11747       { "imeisv", "gsm_map.imeisv",
11748         FT_BYTES, BASE_HEX, NULL, 0,
11749         "UpdateLocationArg/add-info/imeisv", HFILL }},
11750     { &hf_gsm_map_skipSubscriberDataUpdate,
11751       { "skipSubscriberDataUpdate", "gsm_map.skipSubscriberDataUpdate",
11752         FT_NONE, BASE_NONE, NULL, 0,
11753         "UpdateLocationArg/add-info/skipSubscriberDataUpdate", HFILL }},
11754     { &hf_gsm_map_hlr_Number,
11755       { "hlr-Number", "gsm_map.hlr_Number",
11756         FT_BYTES, BASE_HEX, NULL, 0,
11757         "", HFILL }},
11758     { &hf_gsm_map_PrivateExtensionList_item,
11759       { "Item", "gsm_map.PrivateExtensionList_item",
11760         FT_NONE, BASE_NONE, NULL, 0,
11761         "PrivateExtensionList/_item", HFILL }},
11762     { &hf_gsm_map_extId,
11763       { "extId", "gsm_map.extId",
11764         FT_STRING, BASE_NONE, NULL, 0,
11765         "PrivateExtension/extId", HFILL }},
11766     { &hf_gsm_map_extType,
11767       { "extType", "gsm_map.extType",
11768         FT_NONE, BASE_NONE, NULL, 0,
11769         "PrivateExtension/extType", HFILL }},
11770     { &hf_gsm_map_identity,
11771       { "identity", "gsm_map.identity",
11772         FT_UINT32, BASE_DEC, VALS(gsm_map_T_identity_vals), 0,
11773         "CancelLocationArg/identity", HFILL }},
11774     { &hf_gsm_map_imsi_WithLMSI,
11775       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
11776         FT_NONE, BASE_NONE, NULL, 0,
11777         "CancelLocationArg/identity/imsi-WithLMSI", HFILL }},
11778     { &hf_gsm_map_cancellationType,
11779       { "cancellationType", "gsm_map.cancellationType",
11780         FT_UINT32, BASE_DEC, VALS(gsm_map_CancellationType_vals), 0,
11781         "CancelLocationArg/cancellationType", HFILL }},
11782     { &hf_gsm_map_sgsn_Number,
11783       { "sgsn-Number", "gsm_map.sgsn_Number",
11784         FT_BYTES, BASE_HEX, NULL, 0,
11785         "", HFILL }},
11786     { &hf_gsm_map_freezeTMSI,
11787       { "freezeTMSI", "gsm_map.freezeTMSI",
11788         FT_NONE, BASE_NONE, NULL, 0,
11789         "PurgeMS-Res/freezeTMSI", HFILL }},
11790     { &hf_gsm_map_freezeP_TMSI,
11791       { "freezeP-TMSI", "gsm_map.freezeP_TMSI",
11792         FT_NONE, BASE_NONE, NULL, 0,
11793         "PurgeMS-Res/freezeP-TMSI", HFILL }},
11794     { &hf_gsm_map_sendId_authenticationSetList,
11795       { "authenticationSetList", "gsm_map.authenticationSetList",
11796         FT_NONE, BASE_NONE, NULL, 0,
11797         "SendIdentificationRes/authenticationSetList", HFILL }},
11798     { &hf_gsm_map_authenticationSetList_item,
11799       { "Item", "gsm_map.authenticationSetList_item",
11800         FT_NONE, BASE_NONE, NULL, 0,
11801         "SendIdentificationRes/authenticationSetList/_item", HFILL }},
11802     { &hf_gsm_map_rand,
11803       { "rand", "gsm_map.rand",
11804         FT_BYTES, BASE_HEX, NULL, 0,
11805         "", HFILL }},
11806     { &hf_gsm_map_sres,
11807       { "sres", "gsm_map.sres",
11808         FT_BYTES, BASE_HEX, NULL, 0,
11809         "", HFILL }},
11810     { &hf_gsm_map_kc,
11811       { "kc", "gsm_map.kc",
11812         FT_BYTES, BASE_HEX, NULL, 0,
11813         "", HFILL }},
11814     { &hf_gsm_map_targetCellId,
11815       { "targetCellId", "gsm_map.targetCellId",
11816         FT_BYTES, BASE_HEX, NULL, 0,
11817         "", HFILL }},
11818     { &hf_gsm_map_ho_NumberNotRequired,
11819       { "ho-NumberNotRequired", "gsm_map.ho_NumberNotRequired",
11820         FT_NONE, BASE_NONE, NULL, 0,
11821         "", HFILL }},
11822     { &hf_gsm_map_bss_APDU,
11823       { "bss-APDU", "gsm_map.bss_APDU",
11824         FT_NONE, BASE_NONE, NULL, 0,
11825         "", HFILL }},
11826     { &hf_gsm_map_targetRNCId,
11827       { "targetRNCId", "gsm_map.targetRNCId",
11828         FT_BYTES, BASE_HEX, NULL, 0,
11829         "PrepareHandoverV3Arg/targetRNCId", HFILL }},
11830     { &hf_gsm_map_an_APDU,
11831       { "an-APDU", "gsm_map.an_APDU",
11832         FT_NONE, BASE_NONE, NULL, 0,
11833         "", HFILL }},
11834     { &hf_gsm_map_multipleBearerRequested,
11835       { "multipleBearerRequested", "gsm_map.multipleBearerRequested",
11836         FT_NONE, BASE_NONE, NULL, 0,
11837         "PrepareHandoverV3Arg/multipleBearerRequested", HFILL }},
11838     { &hf_gsm_map_integrityProtectionInfo,
11839       { "integrityProtectionInfo", "gsm_map.integrityProtectionInfo",
11840         FT_BYTES, BASE_HEX, NULL, 0,
11841         "PrepareHandoverV3Arg/integrityProtectionInfo", HFILL }},
11842     { &hf_gsm_map_encryptionInfo,
11843       { "encryptionInfo", "gsm_map.encryptionInfo",
11844         FT_BYTES, BASE_HEX, NULL, 0,
11845         "PrepareHandoverV3Arg/encryptionInfo", HFILL }},
11846     { &hf_gsm_map_radioResourceInformation,
11847       { "radioResourceInformation", "gsm_map.radioResourceInformation",
11848         FT_BYTES, BASE_HEX, NULL, 0,
11849         "", HFILL }},
11850     { &hf_gsm_map_allowedGSM_Algorithms,
11851       { "allowedGSM-Algorithms", "gsm_map.allowedGSM_Algorithms",
11852         FT_BYTES, BASE_HEX, NULL, 0,
11853         "PrepareHandoverV3Arg/allowedGSM-Algorithms", HFILL }},
11854     { &hf_gsm_map_allowedUMTS_Algorithms,
11855       { "allowedUMTS-Algorithms", "gsm_map.allowedUMTS_Algorithms",
11856         FT_NONE, BASE_NONE, NULL, 0,
11857         "PrepareHandoverV3Arg/allowedUMTS-Algorithms", HFILL }},
11858     { &hf_gsm_map_integrityProtectionAlgorithms,
11859       { "integrityProtectionAlgorithms", "gsm_map.integrityProtectionAlgorithms",
11860         FT_BYTES, BASE_HEX, NULL, 0,
11861         "PrepareHandoverV3Arg/allowedUMTS-Algorithms/integrityProtectionAlgorithms", HFILL }},
11862     { &hf_gsm_map_encryptionAlgorithms,
11863       { "encryptionAlgorithms", "gsm_map.encryptionAlgorithms",
11864         FT_BYTES, BASE_HEX, NULL, 0,
11865         "PrepareHandoverV3Arg/allowedUMTS-Algorithms/encryptionAlgorithms", HFILL }},
11866     { &hf_gsm_map_radioResourceList,
11867       { "radioResourceList", "gsm_map.radioResourceList",
11868         FT_NONE, BASE_NONE, NULL, 0,
11869         "PrepareHandoverV3Arg/radioResourceList", HFILL }},
11870     { &hf_gsm_map_radioResourceList_item,
11871       { "Item", "gsm_map.radioResourceList_item",
11872         FT_NONE, BASE_NONE, NULL, 0,
11873         "PrepareHandoverV3Arg/radioResourceList/_item", HFILL }},
11874     { &hf_gsm_map_rab_Id,
11875       { "rab-Id", "gsm_map.rab_Id",
11876         FT_UINT32, BASE_DEC, NULL, 0,
11877         "", HFILL }},
11878     { &hf_gsm_map_bssmap_ServiceHandover,
11879       { "bssmap-ServiceHandover", "gsm_map.bssmap_ServiceHandover",
11880         FT_BYTES, BASE_HEX, NULL, 0,
11881         "", HFILL }},
11882     { &hf_gsm_map_ranap_ServiceHandover,
11883       { "ranap-ServiceHandover", "gsm_map.ranap_ServiceHandover",
11884         FT_BYTES, BASE_HEX, NULL, 0,
11885         "PrepareHandoverV3Arg/ranap-ServiceHandover", HFILL }},
11886     { &hf_gsm_map_bssmap_ServiceHandoverList,
11887       { "bssmap-ServiceHandoverList", "gsm_map.bssmap_ServiceHandoverList",
11888         FT_NONE, BASE_NONE, NULL, 0,
11889         "PrepareHandoverV3Arg/bssmap-ServiceHandoverList", HFILL }},
11890     { &hf_gsm_map_bssmap_ServiceHandoverList_item,
11891       { "Item", "gsm_map.bssmap_ServiceHandoverList_item",
11892         FT_NONE, BASE_NONE, NULL, 0,
11893         "PrepareHandoverV3Arg/bssmap-ServiceHandoverList/_item", HFILL }},
11894     { &hf_gsm_map_asciCallReference,
11895       { "asciCallReference", "gsm_map.asciCallReference",
11896         FT_BYTES, BASE_HEX, NULL, 0,
11897         "", HFILL }},
11898     { &hf_gsm_map_geran_classmark,
11899       { "geran-classmark", "gsm_map.geran_classmark",
11900         FT_BYTES, BASE_HEX, NULL, 0,
11901         "PrepareHandoverV3Arg/geran-classmark", HFILL }},
11902     { &hf_gsm_map_iuCurrentlyUsedCodec,
11903       { "iuCurrentlyUsedCodec", "gsm_map.iuCurrentlyUsedCodec",
11904         FT_BYTES, BASE_HEX, NULL, 0,
11905         "PrepareHandoverV3Arg/iuCurrentlyUsedCodec", HFILL }},
11906     { &hf_gsm_map_iuSupportedCodecsList,
11907       { "iuSupportedCodecsList", "gsm_map.iuSupportedCodecsList",
11908         FT_NONE, BASE_NONE, NULL, 0,
11909         "PrepareHandoverV3Arg/iuSupportedCodecsList", HFILL }},
11910     { &hf_gsm_map_utranCodecList,
11911       { "utranCodecList", "gsm_map.utranCodecList",
11912         FT_NONE, BASE_NONE, NULL, 0,
11913         "PrepareHandoverV3Arg/iuSupportedCodecsList/utranCodecList", HFILL }},
11914     { &hf_gsm_map_codec1,
11915       { "codec1", "gsm_map.codec1",
11916         FT_BYTES, BASE_HEX, NULL, 0,
11917         "", HFILL }},
11918     { &hf_gsm_map_codec2,
11919       { "codec2", "gsm_map.codec2",
11920         FT_BYTES, BASE_HEX, NULL, 0,
11921         "", HFILL }},
11922     { &hf_gsm_map_codec3,
11923       { "codec3", "gsm_map.codec3",
11924         FT_BYTES, BASE_HEX, NULL, 0,
11925         "", HFILL }},
11926     { &hf_gsm_map_codec4,
11927       { "codec4", "gsm_map.codec4",
11928         FT_BYTES, BASE_HEX, NULL, 0,
11929         "", HFILL }},
11930     { &hf_gsm_map_codec5,
11931       { "codec5", "gsm_map.codec5",
11932         FT_BYTES, BASE_HEX, NULL, 0,
11933         "", HFILL }},
11934     { &hf_gsm_map_codec6,
11935       { "codec6", "gsm_map.codec6",
11936         FT_BYTES, BASE_HEX, NULL, 0,
11937         "", HFILL }},
11938     { &hf_gsm_map_codec7,
11939       { "codec7", "gsm_map.codec7",
11940         FT_BYTES, BASE_HEX, NULL, 0,
11941         "", HFILL }},
11942     { &hf_gsm_map_codec8,
11943       { "codec8", "gsm_map.codec8",
11944         FT_BYTES, BASE_HEX, NULL, 0,
11945         "", HFILL }},
11946     { &hf_gsm_map_geranCodecList,
11947       { "geranCodecList", "gsm_map.geranCodecList",
11948         FT_NONE, BASE_NONE, NULL, 0,
11949         "PrepareHandoverV3Arg/iuSupportedCodecsList/utranCodecList/geranCodecList", HFILL }},
11950     { &hf_gsm_map_rab_ConfigurationIndicator,
11951       { "rab-ConfigurationIndicator", "gsm_map.rab_ConfigurationIndicator",
11952         FT_NONE, BASE_NONE, NULL, 0,
11953         "PrepareHandoverV3Arg/rab-ConfigurationIndicator", HFILL }},
11954     { &hf_gsm_map_uesbi_Iu,
11955       { "uesbi-Iu", "gsm_map.uesbi_Iu",
11956         FT_NONE, BASE_NONE, NULL, 0,
11957         "PrepareHandoverV3Arg/uesbi-Iu", HFILL }},
11958     { &hf_gsm_map_uesbi_IuA,
11959       { "uesbi-IuA", "gsm_map.uesbi_IuA",
11960         FT_BYTES, BASE_HEX, NULL, 0,
11961         "", HFILL }},
11962     { &hf_gsm_map_uesbi_IuB,
11963       { "uesbi-IuB", "gsm_map.uesbi_IuB",
11964         FT_BYTES, BASE_HEX, NULL, 0,
11965         "", HFILL }},
11966     { &hf_gsm_map_handoverNumber,
11967       { "handoverNumber", "gsm_map.handoverNumber",
11968         FT_BYTES, BASE_HEX, NULL, 0,
11969         "", HFILL }},
11970     { &hf_gsm_map_relocationNumberList,
11971       { "relocationNumberList", "gsm_map.relocationNumberList",
11972         FT_NONE, BASE_NONE, NULL, 0,
11973         "PrepareHandoverV3Res/relocationNumberList", HFILL }},
11974     { &hf_gsm_map_relocationNumberList_item,
11975       { "Item", "gsm_map.relocationNumberList_item",
11976         FT_NONE, BASE_NONE, NULL, 0,
11977         "PrepareHandoverV3Res/relocationNumberList/_item", HFILL }},
11978     { &hf_gsm_map_multicallBearerInfo,
11979       { "multicallBearerInfo", "gsm_map.multicallBearerInfo",
11980         FT_UINT32, BASE_DEC, NULL, 0,
11981         "PrepareHandoverV3Res/multicallBearerInfo", HFILL }},
11982     { &hf_gsm_map_multipleBearerNotSupported,
11983       { "multipleBearerNotSupported", "gsm_map.multipleBearerNotSupported",
11984         FT_NONE, BASE_NONE, NULL, 0,
11985         "PrepareHandoverV3Res/multipleBearerNotSupported", HFILL }},
11986     { &hf_gsm_map_selectedUMTS_Algorithms,
11987       { "selectedUMTS-Algorithms", "gsm_map.selectedUMTS_Algorithms",
11988         FT_NONE, BASE_NONE, NULL, 0,
11989         "PrepareHandoverV3Res/selectedUMTS-Algorithms", HFILL }},
11990     { &hf_gsm_map_integrityProtectionAlgorithm,
11991       { "integrityProtectionAlgorithm", "gsm_map.integrityProtectionAlgorithm",
11992         FT_BYTES, BASE_HEX, NULL, 0,
11993         "PrepareHandoverV3Res/selectedUMTS-Algorithms/integrityProtectionAlgorithm", HFILL }},
11994     { &hf_gsm_map_encryptionAlgorithm,
11995       { "encryptionAlgorithm", "gsm_map.encryptionAlgorithm",
11996         FT_BYTES, BASE_HEX, NULL, 0,
11997         "PrepareHandoverV3Res/selectedUMTS-Algorithms/encryptionAlgorithm", HFILL }},
11998     { &hf_gsm_map_chosenRadioResourceInformation,
11999       { "chosenRadioResourceInformation", "gsm_map.chosenRadioResourceInformation",
12000         FT_NONE, BASE_NONE, NULL, 0,
12001         "PrepareHandoverV3Res/chosenRadioResourceInformation", HFILL }},
12002     { &hf_gsm_map_chosenChannelInfo,
12003       { "chosenChannelInfo", "gsm_map.chosenChannelInfo",
12004         FT_BYTES, BASE_HEX, NULL, 0,
12005         "PrepareHandoverV3Res/chosenRadioResourceInformation/chosenChannelInfo", HFILL }},
12006     { &hf_gsm_map_chosenSpeechVersion,
12007       { "chosenSpeechVersion", "gsm_map.chosenSpeechVersion",
12008         FT_BYTES, BASE_HEX, NULL, 0,
12009         "PrepareHandoverV3Res/chosenRadioResourceInformation/chosenSpeechVersion", HFILL }},
12010     { &hf_gsm_map_iuSelectedCodec,
12011       { "iuSelectedCodec", "gsm_map.iuSelectedCodec",
12012         FT_BYTES, BASE_HEX, NULL, 0,
12013         "PrepareHandoverV3Res/iuSelectedCodec", HFILL }},
12014     { &hf_gsm_map_iuAvailableCodecsList,
12015       { "iuAvailableCodecsList", "gsm_map.iuAvailableCodecsList",
12016         FT_NONE, BASE_NONE, NULL, 0,
12017         "PrepareHandoverV3Res/iuAvailableCodecsList", HFILL }},
12018     { &hf_gsm_map_targetMSC_Number,
12019       { "targetMSC-Number", "gsm_map.targetMSC_Number",
12020         FT_BYTES, BASE_HEX, NULL, 0,
12021         "PrepareSubsequentHO-Arg/targetMSC-Number", HFILL }},
12022     { &hf_gsm_map_numberOfRequestedVectors,
12023       { "numberOfRequestedVectors", "gsm_map.numberOfRequestedVectors",
12024         FT_UINT32, BASE_DEC, NULL, 0,
12025         "SendAuthenticationInfoArgV3/numberOfRequestedVectors", HFILL }},
12026     { &hf_gsm_map_segmentationProhibited,
12027       { "segmentationProhibited", "gsm_map.segmentationProhibited",
12028         FT_NONE, BASE_NONE, NULL, 0,
12029         "SendAuthenticationInfoArgV3/segmentationProhibited", HFILL }},
12030     { &hf_gsm_map_immediateResponsePreferred,
12031       { "immediateResponsePreferred", "gsm_map.immediateResponsePreferred",
12032         FT_NONE, BASE_NONE, NULL, 0,
12033         "SendAuthenticationInfoArgV3/immediateResponsePreferred", HFILL }},
12034     { &hf_gsm_map_re_synchronisationInfo,
12035       { "re-synchronisationInfo", "gsm_map.re_synchronisationInfo",
12036         FT_NONE, BASE_NONE, NULL, 0,
12037         "SendAuthenticationInfoArgV3/re-synchronisationInfo", HFILL }},
12038     { &hf_gsm_map_auts,
12039       { "auts", "gsm_map.auts",
12040         FT_BYTES, BASE_HEX, NULL, 0,
12041         "SendAuthenticationInfoArgV3/re-synchronisationInfo/auts", HFILL }},
12042     { &hf_gsm_map_requestingNodeType,
12043       { "requestingNodeType", "gsm_map.requestingNodeType",
12044         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestingNodeType_vals), 0,
12045         "SendAuthenticationInfoArgV3/requestingNodeType", HFILL }},
12046     { &hf_gsm_map_requestingPLMN_Id,
12047       { "requestingPLMN-Id", "gsm_map.requestingPLMN_Id",
12048         FT_BYTES, BASE_HEX, NULL, 0,
12049         "SendAuthenticationInfoArgV3/requestingPLMN-Id", HFILL }},
12050     { &hf_gsm_map_SendAuthenticationInfoRes_item,
12051       { "Item", "gsm_map.SendAuthenticationInfoRes_item",
12052         FT_NONE, BASE_NONE, NULL, 0,
12053         "SendAuthenticationInfoRes/_item", HFILL }},
12054     { &hf_gsm_map_authenticationSetList,
12055       { "authenticationSetList", "gsm_map.authenticationSetList",
12056         FT_UINT32, BASE_DEC, VALS(gsm_map_T_authenticationSetList_vals), 0,
12057         "SendAuthenticationInfoV3Res/authenticationSetList", HFILL }},
12058     { &hf_gsm_map_tripletList,
12059       { "tripletList", "gsm_map.tripletList",
12060         FT_NONE, BASE_NONE, NULL, 0,
12061         "SendAuthenticationInfoV3Res/authenticationSetList/tripletList", HFILL }},
12062     { &hf_gsm_map_tripletList_item,
12063       { "Item", "gsm_map.tripletList_item",
12064         FT_NONE, BASE_NONE, NULL, 0,
12065         "SendAuthenticationInfoV3Res/authenticationSetList/tripletList/_item", HFILL }},
12066     { &hf_gsm_map_quintupletList,
12067       { "quintupletList", "gsm_map.quintupletList",
12068         FT_NONE, BASE_NONE, NULL, 0,
12069         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList", HFILL }},
12070     { &hf_gsm_map_quintupletList_item,
12071       { "Item", "gsm_map.quintupletList_item",
12072         FT_NONE, BASE_NONE, NULL, 0,
12073         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item", HFILL }},
12074     { &hf_gsm_map_xres,
12075       { "xres", "gsm_map.xres",
12076         FT_BYTES, BASE_HEX, NULL, 0,
12077         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/xres", HFILL }},
12078     { &hf_gsm_map_ck,
12079       { "ck", "gsm_map.ck",
12080         FT_BYTES, BASE_HEX, NULL, 0,
12081         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/ck", HFILL }},
12082     { &hf_gsm_map_ik,
12083       { "ik", "gsm_map.ik",
12084         FT_BYTES, BASE_HEX, NULL, 0,
12085         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/ik", HFILL }},
12086     { &hf_gsm_map_autn,
12087       { "autn", "gsm_map.autn",
12088         FT_BYTES, BASE_HEX, NULL, 0,
12089         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/autn", HFILL }},
12090     { &hf_gsm_map_imei,
12091       { "imei", "gsm_map.imei",
12092         FT_BYTES, BASE_HEX, NULL, 0,
12093         "", HFILL }},
12094     { &hf_gsm_map_requestedEquipmentInfo,
12095       { "requestedEquipmentInfo", "gsm_map.requestedEquipmentInfo",
12096         FT_BYTES, BASE_HEX, NULL, 0,
12097         "CheckIMEIv2Arg/requestedEquipmentInfo", HFILL }},
12098     { &hf_gsm_map_equipmentStatus,
12099       { "equipmentStatus", "gsm_map.equipmentStatus",
12100         FT_UINT32, BASE_DEC, VALS(gsm_map_EquipmentStatus_vals), 0,
12101         "ChekIMEIv3Res/equipmentStatus", HFILL }},
12102     { &hf_gsm_map_bmuef,
12103       { "bmuef", "gsm_map.bmuef",
12104         FT_NONE, BASE_NONE, NULL, 0,
12105         "ChekIMEIv3Res/bmuef", HFILL }},
12106     { &hf_gsm_map_bearerService,
12107       { "bearerService", "gsm_map.bearerService",
12108         FT_BYTES, BASE_HEX, NULL, 0,
12109         "BasicService/bearerService", HFILL }},
12110     { &hf_gsm_map_teleservice,
12111       { "teleservice", "gsm_map.teleservice",
12112         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
12113         "", HFILL }},
12114     { &hf_gsm_map_BasicServiceGroupList_item,
12115       { "Item", "gsm_map.BasicServiceGroupList_item",
12116         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_vals), 0,
12117         "BasicServiceGroupList/_item", HFILL }},
12118     { &hf_gsm_map_bcsmTriggerDetectionPoint,
12119       { "bcsmTriggerDetectionPoint", "gsm_map.bcsmTriggerDetectionPoint",
12120         FT_UINT32, BASE_DEC, VALS(gsm_map_BcsmTriggerDetectionPoint_vals), 0,
12121         "BcsmCamelTDPData/bcsmTriggerDetectionPoint", HFILL }},
12122     { &hf_gsm_map_serviceKey,
12123       { "serviceKey", "gsm_map.serviceKey",
12124         FT_UINT32, BASE_DEC, NULL, 0,
12125         "", HFILL }},
12126     { &hf_gsm_map_gsmSCFAddress,
12127       { "gsmSCFAddress", "gsm_map.gsmSCFAddress",
12128         FT_BYTES, BASE_HEX, NULL, 0,
12129         "BcsmCamelTDPData/gsmSCFAddress", HFILL }},
12130     { &hf_gsm_map_defaultCallHandling,
12131       { "defaultCallHandling", "gsm_map.defaultCallHandling",
12132         FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultCallHandling_vals), 0,
12133         "", HFILL }},
12134     { &hf_gsm_map_BcsmCamelTDPDataList_item,
12135       { "Item", "gsm_map.BcsmCamelTDPDataList_item",
12136         FT_NONE, BASE_NONE, NULL, 0,
12137         "BcsmCamelTDPDataList/_item", HFILL }},
12138     { &hf_gsm_map_o_BcsmCamelTDPDataList,
12139       { "o-BcsmCamelTDPDataList", "gsm_map.o_BcsmCamelTDPDataList",
12140         FT_NONE, BASE_NONE, NULL, 0,
12141         "", HFILL }},
12142     { &hf_gsm_map_camelCapabilityHandling,
12143       { "camelCapabilityHandling", "gsm_map.camelCapabilityHandling",
12144         FT_UINT32, BASE_DEC, NULL, 0,
12145         "", HFILL }},
12146     { &hf_gsm_map_msisdn,
12147       { "msisdn", "gsm_map.msisdn",
12148         FT_BYTES, BASE_HEX, NULL, 0,
12149         "", HFILL }},
12150     { &hf_gsm_map_category,
12151       { "category", "gsm_map.category",
12152         FT_BYTES, BASE_HEX, NULL, 0,
12153         "InsertSubscriberDataArg/category", HFILL }},
12154     { &hf_gsm_map_subscriberStatus,
12155       { "subscriberStatus", "gsm_map.subscriberStatus",
12156         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberStatus_vals), 0,
12157         "InsertSubscriberDataArg/subscriberStatus", HFILL }},
12158     { &hf_gsm_map_bearerServiceList,
12159       { "bearerServiceList", "gsm_map.bearerServiceList",
12160         FT_NONE, BASE_NONE, NULL, 0,
12161         "", HFILL }},
12162     { &hf_gsm_map_bearerServiceList_item,
12163       { "Item", "gsm_map.bearerServiceList_item",
12164         FT_BYTES, BASE_HEX, NULL, 0,
12165         "", HFILL }},
12166     { &hf_gsm_map_teleserviceList,
12167       { "teleserviceList", "gsm_map.teleserviceList",
12168         FT_NONE, BASE_NONE, NULL, 0,
12169         "", HFILL }},
12170     { &hf_gsm_map_teleserviceList_item,
12171       { "Item", "gsm_map.teleserviceList_item",
12172         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
12173         "", HFILL }},
12174     { &hf_gsm_map_provisionedSS,
12175       { "provisionedSS", "gsm_map.provisionedSS",
12176         FT_NONE, BASE_NONE, NULL, 0,
12177         "InsertSubscriberDataArg/provisionedSS", HFILL }},
12178     { &hf_gsm_map_provisionedSS_item,
12179       { "Item", "gsm_map.provisionedSS_item",
12180         FT_UINT32, BASE_DEC, VALS(gsm_map_T_provisionedSS_item_vals), 0,
12181         "InsertSubscriberDataArg/provisionedSS/_item", HFILL }},
12182     { &hf_gsm_map_forwardingInfo,
12183       { "forwardingInfo", "gsm_map.forwardingInfo",
12184         FT_NONE, BASE_NONE, NULL, 0,
12185         "", HFILL }},
12186     { &hf_gsm_map_callBarringInfo,
12187       { "callBarringInfo", "gsm_map.callBarringInfo",
12188         FT_NONE, BASE_NONE, NULL, 0,
12189         "", HFILL }},
12190     { &hf_gsm_map_cug_Info,
12191       { "cug-Info", "gsm_map.cug_Info",
12192         FT_NONE, BASE_NONE, NULL, 0,
12193         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info", HFILL }},
12194     { &hf_gsm_map_cug_SubscriptionList,
12195       { "cug-SubscriptionList", "gsm_map.cug_SubscriptionList",
12196         FT_NONE, BASE_NONE, NULL, 0,
12197         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList", HFILL }},
12198     { &hf_gsm_map_cug_SubscriptionList_item,
12199       { "Item", "gsm_map.cug_SubscriptionList_item",
12200         FT_NONE, BASE_NONE, NULL, 0,
12201         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item", HFILL }},
12202     { &hf_gsm_map_cug_Index,
12203       { "cug-Index", "gsm_map.cug_Index",
12204         FT_UINT32, BASE_DEC, NULL, 0,
12205         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/cug-Index", HFILL }},
12206     { &hf_gsm_map_cug_Interlock,
12207       { "cug-Interlock", "gsm_map.cug_Interlock",
12208         FT_BYTES, BASE_HEX, NULL, 0,
12209         "", HFILL }},
12210     { &hf_gsm_map_intraCUG_Options,
12211       { "intraCUG-Options", "gsm_map.intraCUG_Options",
12212         FT_UINT32, BASE_DEC, VALS(gsm_map_IntraCUG_Options_vals), 0,
12213         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/intraCUG-Options", HFILL }},
12214     { &hf_gsm_map_basicServiceGroupList,
12215       { "basicServiceGroupList", "gsm_map.basicServiceGroupList",
12216         FT_NONE, BASE_NONE, NULL, 0,
12217         "", HFILL }},
12218     { &hf_gsm_map_cug_FeatureList,
12219       { "cug-FeatureList", "gsm_map.cug_FeatureList",
12220         FT_NONE, BASE_NONE, NULL, 0,
12221         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList", HFILL }},
12222     { &hf_gsm_map_cug_FeatureList_item,
12223       { "Item", "gsm_map.cug_FeatureList_item",
12224         FT_NONE, BASE_NONE, NULL, 0,
12225         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item", HFILL }},
12226     { &hf_gsm_map_basicService,
12227       { "basicService", "gsm_map.basicService",
12228         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_vals), 0,
12229         "", HFILL }},
12230     { &hf_gsm_map_preferentialCUG_Indicator,
12231       { "preferentialCUG-Indicator", "gsm_map.preferentialCUG_Indicator",
12232         FT_UINT32, BASE_DEC, NULL, 0,
12233         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/preferentialCUG-Indicator", HFILL }},
12234     { &hf_gsm_map_interCUG_Restrictions,
12235       { "interCUG-Restrictions", "gsm_map.interCUG_Restrictions",
12236         FT_BYTES, BASE_HEX, NULL, 0,
12237         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/interCUG-Restrictions", HFILL }},
12238     { &hf_gsm_map_ss_Data,
12239       { "ss-Data", "gsm_map.ss_Data",
12240         FT_NONE, BASE_NONE, NULL, 0,
12241         "", HFILL }},
12242     { &hf_gsm_map_emlpp_Info,
12243       { "emlpp-Info", "gsm_map.emlpp_Info",
12244         FT_NONE, BASE_NONE, NULL, 0,
12245         "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info", HFILL }},
12246     { &hf_gsm_map_maximumentitledPriority,
12247       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
12248         FT_UINT32, BASE_DEC, NULL, 0,
12249         "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info/maximumentitledPriority", HFILL }},
12250     { &hf_gsm_map_defaultPriority,
12251       { "defaultPriority", "gsm_map.defaultPriority",
12252         FT_UINT32, BASE_DEC, NULL, 0,
12253         "", HFILL }},
12254     { &hf_gsm_map_odb_Data,
12255       { "odb-Data", "gsm_map.odb_Data",
12256         FT_NONE, BASE_NONE, NULL, 0,
12257         "", HFILL }},
12258     { &hf_gsm_map_roamingRestrictionDueToUnsupportedFeature,
12259       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.roamingRestrictionDueToUnsupportedFeature",
12260         FT_NONE, BASE_NONE, NULL, 0,
12261         "", HFILL }},
12262     { &hf_gsm_map_regionalSubscriptionData,
12263       { "regionalSubscriptionData", "gsm_map.regionalSubscriptionData",
12264         FT_NONE, BASE_NONE, NULL, 0,
12265         "InsertSubscriberDataArg/regionalSubscriptionData", HFILL }},
12266     { &hf_gsm_map_regionalSubscriptionData_item,
12267       { "Item", "gsm_map.regionalSubscriptionData_item",
12268         FT_BYTES, BASE_HEX, NULL, 0,
12269         "InsertSubscriberDataArg/regionalSubscriptionData/_item", HFILL }},
12270     { &hf_gsm_map_vbsSubscriptionData,
12271       { "vbsSubscriptionData", "gsm_map.vbsSubscriptionData",
12272         FT_NONE, BASE_NONE, NULL, 0,
12273         "InsertSubscriberDataArg/vbsSubscriptionData", HFILL }},
12274     { &hf_gsm_map_vbsSubscriptionData_item,
12275       { "Item", "gsm_map.vbsSubscriptionData_item",
12276         FT_NONE, BASE_NONE, NULL, 0,
12277         "InsertSubscriberDataArg/vbsSubscriptionData/_item", HFILL }},
12278     { &hf_gsm_map_groupid,
12279       { "groupid", "gsm_map.groupid",
12280         FT_BYTES, BASE_HEX, NULL, 0,
12281         "InsertSubscriberDataArg/vbsSubscriptionData/_item/groupid", HFILL }},
12282     { &hf_gsm_map_broadcastInitEntitlement,
12283       { "broadcastInitEntitlement", "gsm_map.broadcastInitEntitlement",
12284         FT_NONE, BASE_NONE, NULL, 0,
12285         "InsertSubscriberDataArg/vbsSubscriptionData/_item/broadcastInitEntitlement", HFILL }},
12286     { &hf_gsm_map_vgcsSubscriptionData,
12287       { "vgcsSubscriptionData", "gsm_map.vgcsSubscriptionData",
12288         FT_NONE, BASE_NONE, NULL, 0,
12289         "InsertSubscriberDataArg/vgcsSubscriptionData", HFILL }},
12290     { &hf_gsm_map_vgcsSubscriptionData_item,
12291       { "Item", "gsm_map.vgcsSubscriptionData_item",
12292         FT_NONE, BASE_NONE, NULL, 0,
12293         "InsertSubscriberDataArg/vgcsSubscriptionData/_item", HFILL }},
12294     { &hf_gsm_map_groupId,
12295       { "groupId", "gsm_map.groupId",
12296         FT_BYTES, BASE_HEX, NULL, 0,
12297         "InsertSubscriberDataArg/vgcsSubscriptionData/_item/groupId", HFILL }},
12298     { &hf_gsm_map_vlrCamelSubscriptionInfo,
12299       { "vlrCamelSubscriptionInfo", "gsm_map.vlrCamelSubscriptionInfo",
12300         FT_NONE, BASE_NONE, NULL, 0,
12301         "InsertSubscriberDataArg/vlrCamelSubscriptionInfo", HFILL }},
12302     { &hf_gsm_map_o_CSI,
12303       { "o-CSI", "gsm_map.o_CSI",
12304         FT_NONE, BASE_NONE, NULL, 0,
12305         "", HFILL }},
12306     { &hf_gsm_map_ss_CSI,
12307       { "ss-CSI", "gsm_map.ss_CSI",
12308         FT_NONE, BASE_NONE, NULL, 0,
12309         "", HFILL }},
12310     { &hf_gsm_map_ss_CamelData,
12311       { "ss-CamelData", "gsm_map.ss_CamelData",
12312         FT_NONE, BASE_NONE, NULL, 0,
12313         "", HFILL }},
12314     { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList,
12315       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList",
12316         FT_NONE, BASE_NONE, NULL, 0,
12317         "", HFILL }},
12318     { &hf_gsm_map_tif_CSI,
12319       { "tif-CSI", "gsm_map.tif_CSI",
12320         FT_NONE, BASE_NONE, NULL, 0,
12321         "", HFILL }},
12322     { &hf_gsm_map_naea_PreferredCI,
12323       { "naea-PreferredCI", "gsm_map.naea_PreferredCI",
12324         FT_NONE, BASE_NONE, NULL, 0,
12325         "", HFILL }},
12326     { &hf_gsm_map_gprsSubscriptionData,
12327       { "gprsSubscriptionData", "gsm_map.gprsSubscriptionData",
12328         FT_NONE, BASE_NONE, NULL, 0,
12329         "InsertSubscriberDataArg/gprsSubscriptionData", HFILL }},
12330     { &hf_gsm_map_completeDataListIncluded,
12331       { "completeDataListIncluded", "gsm_map.completeDataListIncluded",
12332         FT_NONE, BASE_NONE, NULL, 0,
12333         "", HFILL }},
12334     { &hf_gsm_map_gprsDataList,
12335       { "gprsDataList", "gsm_map.gprsDataList",
12336         FT_NONE, BASE_NONE, NULL, 0,
12337         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList", HFILL }},
12338     { &hf_gsm_map_gprsDataList_item,
12339       { "Item", "gsm_map.gprsDataList_item",
12340         FT_NONE, BASE_NONE, NULL, 0,
12341         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item", HFILL }},
12342     { &hf_gsm_map_pdp_ContextId,
12343       { "pdp-ContextId", "gsm_map.pdp_ContextId",
12344         FT_UINT32, BASE_DEC, NULL, 0,
12345         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-ContextId", HFILL }},
12346     { &hf_gsm_map_pdp_Type,
12347       { "pdp-Type", "gsm_map.pdp_Type",
12348         FT_BYTES, BASE_HEX, NULL, 0,
12349         "", HFILL }},
12350     { &hf_gsm_map_pdp_Address,
12351       { "pdp-Address", "gsm_map.pdp_Address",
12352         FT_BYTES, BASE_HEX, NULL, 0,
12353         "", HFILL }},
12354     { &hf_gsm_map_qos_Subscribed,
12355       { "qos-Subscribed", "gsm_map.qos_Subscribed",
12356         FT_BYTES, BASE_HEX, NULL, 0,
12357         "", HFILL }},
12358     { &hf_gsm_map_vplmnAddressAllowed,
12359       { "vplmnAddressAllowed", "gsm_map.vplmnAddressAllowed",
12360         FT_NONE, BASE_NONE, NULL, 0,
12361         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/vplmnAddressAllowed", HFILL }},
12362     { &hf_gsm_map_apn,
12363       { "apn", "gsm_map.apn",
12364         FT_BYTES, BASE_HEX, NULL, 0,
12365         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/apn", HFILL }},
12366     { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature,
12367       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsupportedFeature",
12368         FT_NONE, BASE_NONE, NULL, 0,
12369         "InsertSubscriberDataArg/roamingRestrictedInSgsnDueToUnsupportedFeature", HFILL }},
12370     { &hf_gsm_map_networkAccessMode,
12371       { "networkAccessMode", "gsm_map.networkAccessMode",
12372         FT_UINT32, BASE_DEC, VALS(gsm_map_T_networkAccessMode_vals), 0,
12373         "InsertSubscriberDataArg/networkAccessMode", HFILL }},
12374     { &hf_gsm_map_lsaInformation,
12375       { "lsaInformation", "gsm_map.lsaInformation",
12376         FT_NONE, BASE_NONE, NULL, 0,
12377         "InsertSubscriberDataArg/lsaInformation", HFILL }},
12378     { &hf_gsm_map_lsaOnlyAccessIndicator,
12379       { "lsaOnlyAccessIndicator", "gsm_map.lsaOnlyAccessIndicator",
12380         FT_UINT32, BASE_DEC, VALS(gsm_map_T_lsaOnlyAccessIndicator_vals), 0,
12381         "InsertSubscriberDataArg/lsaInformation/lsaOnlyAccessIndicator", HFILL }},
12382     { &hf_gsm_map_lsaDataList,
12383       { "lsaDataList", "gsm_map.lsaDataList",
12384         FT_NONE, BASE_NONE, NULL, 0,
12385         "InsertSubscriberDataArg/lsaInformation/lsaDataList", HFILL }},
12386     { &hf_gsm_map_lsaDataList_item,
12387       { "Item", "gsm_map.lsaDataList_item",
12388         FT_NONE, BASE_NONE, NULL, 0,
12389         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item", HFILL }},
12390     { &hf_gsm_map_lsaIdentity,
12391       { "lsaIdentity", "gsm_map.lsaIdentity",
12392         FT_BYTES, BASE_HEX, NULL, 0,
12393         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaIdentity", HFILL }},
12394     { &hf_gsm_map_lsaAttributes,
12395       { "lsaAttributes", "gsm_map.lsaAttributes",
12396         FT_BYTES, BASE_HEX, NULL, 0,
12397         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaAttributes", HFILL }},
12398     { &hf_gsm_map_lsaActiveModeIndicator,
12399       { "lsaActiveModeIndicator", "gsm_map.lsaActiveModeIndicator",
12400         FT_NONE, BASE_NONE, NULL, 0,
12401         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaActiveModeIndicator", HFILL }},
12402     { &hf_gsm_map_lmu_Indicator,
12403       { "lmu-Indicator", "gsm_map.lmu_Indicator",
12404         FT_NONE, BASE_NONE, NULL, 0,
12405         "InsertSubscriberDataArg/lmu-Indicator", HFILL }},
12406     { &hf_gsm_map_lcsInformation,
12407       { "lcsInformation", "gsm_map.lcsInformation",
12408         FT_NONE, BASE_NONE, NULL, 0,
12409         "InsertSubscriberDataArg/lcsInformation", HFILL }},
12410     { &hf_gsm_map_gmlc_List,
12411       { "gmlc-List", "gsm_map.gmlc_List",
12412         FT_NONE, BASE_NONE, NULL, 0,
12413         "InsertSubscriberDataArg/lcsInformation/gmlc-List", HFILL }},
12414     { &hf_gsm_map_gmlc_List_item,
12415       { "Item", "gsm_map.gmlc_List_item",
12416         FT_BYTES, BASE_HEX, NULL, 0,
12417         "InsertSubscriberDataArg/lcsInformation/gmlc-List/_item", HFILL }},
12418     { &hf_gsm_map_lcs_PrivacyExceptionList,
12419       { "lcs-PrivacyExceptionList", "gsm_map.lcs_PrivacyExceptionList",
12420         FT_NONE, BASE_NONE, NULL, 0,
12421         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList", HFILL }},
12422     { &hf_gsm_map_lcs_PrivacyExceptionList_item,
12423       { "Item", "gsm_map.lcs_PrivacyExceptionList_item",
12424         FT_NONE, BASE_NONE, NULL, 0,
12425         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item", HFILL }},
12426     { &hf_gsm_map_ss_Code,
12427       { "ss-Code", "gsm_map.ss_Code",
12428         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
12429         "", HFILL }},
12430     { &hf_gsm_map_ss_Status,
12431       { "ss-Status", "gsm_map.ss_Status",
12432         FT_BYTES, BASE_HEX, NULL, 0,
12433         "", HFILL }},
12434     { &hf_gsm_map_notificationToMSUser,
12435       { "notificationToMSUser", "gsm_map.notificationToMSUser",
12436         FT_UINT32, BASE_DEC, VALS(gsm_map_NotificationToMSUser_vals), 0,
12437         "", HFILL }},
12438     { &hf_gsm_map_externalClientList,
12439       { "externalClientList", "gsm_map.externalClientList",
12440         FT_NONE, BASE_NONE, NULL, 0,
12441         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList", HFILL }},
12442     { &hf_gsm_map_externalClientList_item,
12443       { "Item", "gsm_map.externalClientList_item",
12444         FT_NONE, BASE_NONE, NULL, 0,
12445         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item", HFILL }},
12446     { &hf_gsm_map_clientIdentity,
12447       { "clientIdentity", "gsm_map.clientIdentity",
12448         FT_NONE, BASE_NONE, NULL, 0,
12449         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/clientIdentity", HFILL }},
12450     { &hf_gsm_map_externalAddress,
12451       { "externalAddress", "gsm_map.externalAddress",
12452         FT_BYTES, BASE_HEX, NULL, 0,
12453         "", HFILL }},
12454     { &hf_gsm_map_gmlc_Restriction,
12455       { "gmlc-Restriction", "gsm_map.gmlc_Restriction",
12456         FT_UINT32, BASE_DEC, VALS(gsm_map_T_gmlc_Restriction_vals), 0,
12457         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/gmlc-Restriction", HFILL }},
12458     { &hf_gsm_map_plmnClientList,
12459       { "plmnClientList", "gsm_map.plmnClientList",
12460         FT_NONE, BASE_NONE, NULL, 0,
12461         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList", HFILL }},
12462     { &hf_gsm_map_plmnClientList_item,
12463       { "Item", "gsm_map.plmnClientList_item",
12464         FT_UINT32, BASE_DEC, VALS(gsm_map_T_plmnClientList_item_vals), 0,
12465         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList/_item", HFILL }},
12466     { &hf_gsm_map_molr_List,
12467       { "molr-List", "gsm_map.molr_List",
12468         FT_NONE, BASE_NONE, NULL, 0,
12469         "InsertSubscriberDataArg/lcsInformation/molr-List", HFILL }},
12470     { &hf_gsm_map_molr_List_item,
12471       { "Item", "gsm_map.molr_List_item",
12472         FT_NONE, BASE_NONE, NULL, 0,
12473         "InsertSubscriberDataArg/lcsInformation/molr-List/_item", HFILL }},
12474     { &hf_gsm_map_ss_List,
12475       { "ss-List", "gsm_map.ss_List",
12476         FT_NONE, BASE_NONE, NULL, 0,
12477         "", HFILL }},
12478     { &hf_gsm_map_ss_List_item,
12479       { "Item", "gsm_map.ss_List_item",
12480         FT_BYTES, BASE_HEX, NULL, 0,
12481         "", HFILL }},
12482     { &hf_gsm_map_odb_GeneralData,
12483       { "odb-GeneralData", "gsm_map.odb_GeneralData",
12484         FT_BYTES, BASE_HEX, NULL, 0,
12485         "", HFILL }},
12486     { &hf_gsm_map_regionalSubscriptionResponse,
12487       { "regionalSubscriptionResponse", "gsm_map.regionalSubscriptionResponse",
12488         FT_UINT32, BASE_DEC, VALS(gsm_map_RegionalSubscriptionResponse_vals), 0,
12489         "", HFILL }},
12490     { &hf_gsm_map_ss_EventList,
12491       { "ss-EventList", "gsm_map.ss_EventList",
12492         FT_NONE, BASE_NONE, NULL, 0,
12493         "Ss-CamelData/ss-EventList", HFILL }},
12494     { &hf_gsm_map_ss_EventList_item,
12495       { "Item", "gsm_map.ss_EventList_item",
12496         FT_BYTES, BASE_HEX, NULL, 0,
12497         "Ss-CamelData/ss-EventList/_item", HFILL }},
12498     { &hf_gsm_map_gsmSCF_Address,
12499       { "gsmSCF-Address", "gsm_map.gsmSCF_Address",
12500         FT_BYTES, BASE_HEX, NULL, 0,
12501         "", HFILL }},
12502     { &hf_gsm_map_callBarringFeatureList,
12503       { "callBarringFeatureList", "gsm_map.callBarringFeatureList",
12504         FT_NONE, BASE_NONE, NULL, 0,
12505         "", HFILL }},
12506     { &hf_gsm_map_CallBarringFeatureList_item,
12507       { "Item", "gsm_map.CallBarringFeatureList_item",
12508         FT_NONE, BASE_NONE, NULL, 0,
12509         "CallBarringFeatureList/_item", HFILL }},
12510     { &hf_gsm_map_forwardedToNumber,
12511       { "forwardedToNumber", "gsm_map.forwardedToNumber",
12512         FT_BYTES, BASE_HEX, NULL, 0,
12513         "", HFILL }},
12514     { &hf_gsm_map_forwardedToSubaddress,
12515       { "forwardedToSubaddress", "gsm_map.forwardedToSubaddress",
12516         FT_BYTES, BASE_HEX, NULL, 0,
12517         "", HFILL }},
12518     { &hf_gsm_map_forwardingOptions,
12519       { "forwardingOptions", "gsm_map.forwardingOptions",
12520         FT_BYTES, BASE_HEX, NULL, 0,
12521         "", HFILL }},
12522     { &hf_gsm_map_noReplyConditionTime,
12523       { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
12524         FT_INT32, BASE_DEC, NULL, 0,
12525         "", HFILL }},
12526     { &hf_gsm_map_longForwardedToNumber,
12527       { "longForwardedToNumber", "gsm_map.longForwardedToNumber",
12528         FT_BYTES, BASE_HEX, NULL, 0,
12529         "ForwardingFeatureList/longForwardedToNumber", HFILL }},
12530     { &hf_gsm_map_matchType,
12531       { "matchType", "gsm_map.matchType",
12532         FT_UINT32, BASE_DEC, VALS(gsm_map_MatchType_vals), 0,
12533         "DestinationNumberCriteria/matchType", HFILL }},
12534     { &hf_gsm_map_destinationNumberList,
12535       { "destinationNumberList", "gsm_map.destinationNumberList",
12536         FT_NONE, BASE_NONE, NULL, 0,
12537         "DestinationNumberCriteria/destinationNumberList", HFILL }},
12538     { &hf_gsm_map_destinationNumberList_item,
12539       { "Item", "gsm_map.destinationNumberList_item",
12540         FT_BYTES, BASE_HEX, NULL, 0,
12541         "DestinationNumberCriteria/destinationNumberList/_item", HFILL }},
12542     { &hf_gsm_map_destinationNumberLengthList,
12543       { "destinationNumberLengthList", "gsm_map.destinationNumberLengthList",
12544         FT_NONE, BASE_NONE, NULL, 0,
12545         "DestinationNumberCriteria/destinationNumberLengthList", HFILL }},
12546     { &hf_gsm_map_destinationNumberLengthList_item,
12547       { "Item", "gsm_map.destinationNumberLengthList_item",
12548         FT_UINT32, BASE_DEC, NULL, 0,
12549         "DestinationNumberCriteria/destinationNumberLengthList/_item", HFILL }},
12550     { &hf_gsm_map_forwardingFeatureList_1_32,
12551       { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
12552         FT_NONE, BASE_NONE, NULL, 0,
12553         "ForwardingInfo/forwardingFeatureList", HFILL }},
12554     { &hf_gsm_map_forwardingFeatureList_item,
12555       { "Item", "gsm_map.forwardingFeatureList_item",
12556         FT_NONE, BASE_NONE, NULL, 0,
12557         "", HFILL }},
12558     { &hf_gsm_map_naea_PreferredCIC,
12559       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
12560         FT_BYTES, BASE_HEX, NULL, 0,
12561         "Naea-PreferredCI/naea-PreferredCIC", HFILL }},
12562     { &hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
12563       { "Item", "gsm_map.O_BcsmCamelTDP_CriteriaList_item",
12564         FT_NONE, BASE_NONE, NULL, 0,
12565         "O-BcsmCamelTDP-CriteriaList/_item", HFILL }},
12566     { &hf_gsm_map_o_BcsmTriggerDetectionPoint,
12567       { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
12568         FT_UINT32, BASE_DEC, VALS(gsm_map_BcsmTriggerDetectionPoint_vals), 0,
12569         "", HFILL }},
12570     { &hf_gsm_map_destinationNumberCriteria,
12571       { "destinationNumberCriteria", "gsm_map.destinationNumberCriteria",
12572         FT_NONE, BASE_NONE, NULL, 0,
12573         "", HFILL }},
12574     { &hf_gsm_map_basicServiceCriteria_lst,
12575       { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
12576         FT_NONE, BASE_NONE, NULL, 0,
12577         "O-BcsmCamelTDP-CriteriaList/_item/basicServiceCriteria", HFILL }},
12578     { &hf_gsm_map_callTypeCriteria,
12579       { "callTypeCriteria", "gsm_map.callTypeCriteria",
12580         FT_UINT32, BASE_DEC, VALS(gsm_map_CallTypeCriteria_vals), 0,
12581         "", HFILL }},
12582     { &hf_gsm_map_cliRestrictionOption,
12583       { "cliRestrictionOption", "gsm_map.cliRestrictionOption",
12584         FT_UINT32, BASE_DEC, VALS(gsm_map_CliRestrictionOption_vals), 0,
12585         "", HFILL }},
12586     { &hf_gsm_map_overrideCategory,
12587       { "overrideCategory", "gsm_map.overrideCategory",
12588         FT_UINT32, BASE_DEC, VALS(gsm_map_OverrideCategory_vals), 0,
12589         "Ss-SubscriptionOption/overrideCategory", HFILL }},
12590     { &hf_gsm_map_basicServiceList,
12591       { "basicServiceList", "gsm_map.basicServiceList",
12592         FT_NONE, BASE_NONE, NULL, 0,
12593         "DeleteSubscriberDataArg/basicServiceList", HFILL }},
12594     { &hf_gsm_map_regionalSubscriptionIdentifier,
12595       { "regionalSubscriptionIdentifier", "gsm_map.regionalSubscriptionIdentifier",
12596         FT_BYTES, BASE_HEX, NULL, 0,
12597         "DeleteSubscriberDataArg/regionalSubscriptionIdentifier", HFILL }},
12598     { &hf_gsm_map_vbsGroupIndication,
12599       { "vbsGroupIndication", "gsm_map.vbsGroupIndication",
12600         FT_NONE, BASE_NONE, NULL, 0,
12601         "DeleteSubscriberDataArg/vbsGroupIndication", HFILL }},
12602     { &hf_gsm_map_vgcsGroupIndication,
12603       { "vgcsGroupIndication", "gsm_map.vgcsGroupIndication",
12604         FT_NONE, BASE_NONE, NULL, 0,
12605         "DeleteSubscriberDataArg/vgcsGroupIndication", HFILL }},
12606     { &hf_gsm_map_camelSubscriptionInfoWithdraw,
12607       { "camelSubscriptionInfoWithdraw", "gsm_map.camelSubscriptionInfoWithdraw",
12608         FT_NONE, BASE_NONE, NULL, 0,
12609         "DeleteSubscriberDataArg/camelSubscriptionInfoWithdraw", HFILL }},
12610     { &hf_gsm_map_gprsSubscriptionDataWithdraw,
12611       { "gprsSubscriptionDataWithdraw", "gsm_map.gprsSubscriptionDataWithdraw",
12612         FT_UINT32, BASE_DEC, VALS(gsm_map_T_gprsSubscriptionDataWithdraw_vals), 0,
12613         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw", HFILL }},
12614     { &hf_gsm_map_allGPRSData,
12615       { "allGPRSData", "gsm_map.allGPRSData",
12616         FT_NONE, BASE_NONE, NULL, 0,
12617         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/allGPRSData", HFILL }},
12618     { &hf_gsm_map_contextIdList,
12619       { "contextIdList", "gsm_map.contextIdList",
12620         FT_NONE, BASE_NONE, NULL, 0,
12621         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList", HFILL }},
12622     { &hf_gsm_map_contextIdList_item,
12623       { "Item", "gsm_map.contextIdList_item",
12624         FT_UINT32, BASE_DEC, NULL, 0,
12625         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList/_item", HFILL }},
12626     { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature,
12627       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsuppportedFeature",
12628         FT_NONE, BASE_NONE, NULL, 0,
12629         "DeleteSubscriberDataArg/roamingRestrictedInSgsnDueToUnsuppportedFeature", HFILL }},
12630     { &hf_gsm_map_lsaInformationWithdraw,
12631       { "lsaInformationWithdraw", "gsm_map.lsaInformationWithdraw",
12632         FT_UINT32, BASE_DEC, VALS(gsm_map_T_lsaInformationWithdraw_vals), 0,
12633         "DeleteSubscriberDataArg/lsaInformationWithdraw", HFILL }},
12634     { &hf_gsm_map_allLSAData,
12635       { "allLSAData", "gsm_map.allLSAData",
12636         FT_NONE, BASE_NONE, NULL, 0,
12637         "DeleteSubscriberDataArg/lsaInformationWithdraw/allLSAData", HFILL }},
12638     { &hf_gsm_map_lsaIdentityList,
12639       { "lsaIdentityList", "gsm_map.lsaIdentityList",
12640         FT_NONE, BASE_NONE, NULL, 0,
12641         "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList", HFILL }},
12642     { &hf_gsm_map_lsaIdentityList_item,
12643       { "Item", "gsm_map.lsaIdentityList_item",
12644         FT_BYTES, BASE_HEX, NULL, 0,
12645         "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList/_item", HFILL }},
12646     { &hf_gsm_map_gmlc_ListWithdraw,
12647       { "gmlc-ListWithdraw", "gsm_map.gmlc_ListWithdraw",
12648         FT_NONE, BASE_NONE, NULL, 0,
12649         "DeleteSubscriberDataArg/gmlc-ListWithdraw", HFILL }},
12650     { &hf_gsm_map_hlr_List,
12651       { "hlr-List", "gsm_map.hlr_List",
12652         FT_NONE, BASE_NONE, NULL, 0,
12653         "ResetArg/hlr-List", HFILL }},
12654     { &hf_gsm_map_hlr_List_item,
12655       { "Item", "gsm_map.hlr_List_item",
12656         FT_BYTES, BASE_HEX, NULL, 0,
12657         "ResetArg/hlr-List/_item", HFILL }},
12658     { &hf_gsm_map_msNotReachable,
12659       { "msNotReachable", "gsm_map.msNotReachable",
12660         FT_NONE, BASE_NONE, NULL, 0,
12661         "RestoreDataRes/msNotReachable", HFILL }},
12662     { &hf_gsm_map_traceReference,
12663       { "traceReference", "gsm_map.traceReference",
12664         FT_BYTES, BASE_HEX, NULL, 0,
12665         "", HFILL }},
12666     { &hf_gsm_map_traceType,
12667       { "traceType", "gsm_map.traceType",
12668         FT_UINT32, BASE_DEC, NULL, 0,
12669         "ActivateTraceModeArg/traceType", HFILL }},
12670     { &hf_gsm_map_omc_Id,
12671       { "omc-Id", "gsm_map.omc_Id",
12672         FT_BYTES, BASE_HEX, NULL, 0,
12673         "ActivateTraceModeArg/omc-Id", HFILL }},
12674     { &hf_gsm_map_cug_CheckInfo,
12675       { "cug-CheckInfo", "gsm_map.cug_CheckInfo",
12676         FT_NONE, BASE_NONE, NULL, 0,
12677         "", HFILL }},
12678     { &hf_gsm_map_numberOfForwarding,
12679       { "numberOfForwarding", "gsm_map.numberOfForwarding",
12680         FT_UINT32, BASE_DEC, NULL, 0,
12681         "SendRoutingInfoArg/numberOfForwarding", HFILL }},
12682     { &hf_gsm_map_interrogationType,
12683       { "interrogationType", "gsm_map.interrogationType",
12684         FT_UINT32, BASE_DEC, VALS(gsm_map_T_interrogationType_vals), 0,
12685         "SendRoutingInfoArg/interrogationType", HFILL }},
12686     { &hf_gsm_map_or_Interrogation,
12687       { "or-Interrogation", "gsm_map.or_Interrogation",
12688         FT_NONE, BASE_NONE, NULL, 0,
12689         "", HFILL }},
12690     { &hf_gsm_map_or_Capability,
12691       { "or-Capability", "gsm_map.or_Capability",
12692         FT_UINT32, BASE_DEC, NULL, 0,
12693         "SendRoutingInfoArg/or-Capability", HFILL }},
12694     { &hf_gsm_map_gmsc_Address,
12695       { "gmsc-Address", "gsm_map.gmsc_Address",
12696         FT_BYTES, BASE_HEX, NULL, 0,
12697         "", HFILL }},
12698     { &hf_gsm_map_callReferenceNumber,
12699       { "callReferenceNumber", "gsm_map.callReferenceNumber",
12700         FT_BYTES, BASE_HEX, NULL, 0,
12701         "", HFILL }},
12702     { &hf_gsm_map_forwardingReason,
12703       { "forwardingReason", "gsm_map.forwardingReason",
12704         FT_UINT32, BASE_DEC, VALS(gsm_map_T_forwardingReason_vals), 0,
12705         "SendRoutingInfoArg/forwardingReason", HFILL }},
12706     { &hf_gsm_map_basicServiceGroup,
12707       { "basicServiceGroup", "gsm_map.basicServiceGroup",
12708         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_vals), 0,
12709         "", HFILL }},
12710     { &hf_gsm_map_networkSignalInfo,
12711       { "networkSignalInfo", "gsm_map.networkSignalInfo",
12712         FT_NONE, BASE_NONE, NULL, 0,
12713         "", HFILL }},
12714     { &hf_gsm_map_camelInfo,
12715       { "camelInfo", "gsm_map.camelInfo",
12716         FT_NONE, BASE_NONE, NULL, 0,
12717         "SendRoutingInfoArg/camelInfo", HFILL }},
12718     { &hf_gsm_map_suppress_T_CSI,
12719       { "suppress-T-CSI", "gsm_map.suppress_T_CSI",
12720         FT_NONE, BASE_NONE, NULL, 0,
12721         "SendRoutingInfoArg/camelInfo/suppress-T-CSI", HFILL }},
12722     { &hf_gsm_map_suppressionOfAnnouncement,
12723       { "suppressionOfAnnouncement", "gsm_map.suppressionOfAnnouncement",
12724         FT_NONE, BASE_NONE, NULL, 0,
12725         "", HFILL }},
12726     { &hf_gsm_map_alertingPattern,
12727       { "alertingPattern", "gsm_map.alertingPattern",
12728         FT_BYTES, BASE_HEX, NULL, 0,
12729         "", HFILL }},
12730     { &hf_gsm_map_ccbs_Call,
12731       { "ccbs-Call", "gsm_map.ccbs_Call",
12732         FT_NONE, BASE_NONE, NULL, 0,
12733         "", HFILL }},
12734     { &hf_gsm_map_supportedCCBS_Phase,
12735       { "supportedCCBS-Phase", "gsm_map.supportedCCBS_Phase",
12736         FT_UINT32, BASE_DEC, NULL, 0,
12737         "SendRoutingInfoArg/supportedCCBS-Phase", HFILL }},
12738     { &hf_gsm_map_additionalSignalInfo,
12739       { "additionalSignalInfo", "gsm_map.additionalSignalInfo",
12740         FT_NONE, BASE_NONE, NULL, 0,
12741         "", HFILL }},
12742     { &hf_gsm_map_extendedRoutingInfo,
12743       { "extendedRoutingInfo", "gsm_map.extendedRoutingInfo",
12744         FT_UINT32, BASE_DEC, VALS(gsm_map_T_extendedRoutingInfo_vals), 0,
12745         "SendRoutingInfoRes/extendedRoutingInfo", HFILL }},
12746     { &hf_gsm_map_routingInfo,
12747       { "routingInfo", "gsm_map.routingInfo",
12748         FT_UINT32, BASE_DEC, VALS(gsm_map_T_routingInfo_vals), 0,
12749         "SendRoutingInfoRes/extendedRoutingInfo/routingInfo", HFILL }},
12750     { &hf_gsm_map_roamingNumber,
12751       { "roamingNumber", "gsm_map.roamingNumber",
12752         FT_BYTES, BASE_HEX, NULL, 0,
12753         "", HFILL }},
12754     { &hf_gsm_map_forwardingData,
12755       { "forwardingData", "gsm_map.forwardingData",
12756         FT_NONE, BASE_NONE, NULL, 0,
12757         "", HFILL }},
12758     { &hf_gsm_map_camelRoutingInfo,
12759       { "camelRoutingInfo", "gsm_map.camelRoutingInfo",
12760         FT_NONE, BASE_NONE, NULL, 0,
12761         "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo", HFILL }},
12762     { &hf_gsm_map_gmscCamelSubscriptionInfo,
12763       { "gmscCamelSubscriptionInfo", "gsm_map.gmscCamelSubscriptionInfo",
12764         FT_NONE, BASE_NONE, NULL, 0,
12765         "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo", HFILL }},
12766     { &hf_gsm_map_t_CSI,
12767       { "t-CSI", "gsm_map.t_CSI",
12768         FT_NONE, BASE_NONE, NULL, 0,
12769         "", HFILL }},
12770     { &hf_gsm_map_t_BcsmCamelTDPDataList,
12771       { "t-BcsmCamelTDPDataList", "gsm_map.t_BcsmCamelTDPDataList",
12772         FT_NONE, BASE_NONE, NULL, 0,
12773         "", HFILL }},
12774     { &hf_gsm_map_cugSubscriptionFlag,
12775       { "cugSubscriptionFlag", "gsm_map.cugSubscriptionFlag",
12776         FT_NONE, BASE_NONE, NULL, 0,
12777         "SendRoutingInfoRes/cugSubscriptionFlag", HFILL }},
12778     { &hf_gsm_map_subscriberInfo,
12779       { "subscriberInfo", "gsm_map.subscriberInfo",
12780         FT_NONE, BASE_NONE, NULL, 0,
12781         "", HFILL }},
12782     { &hf_gsm_map_forwardingInterrogationRequired,
12783       { "forwardingInterrogationRequired", "gsm_map.forwardingInterrogationRequired",
12784         FT_NONE, BASE_NONE, NULL, 0,
12785         "SendRoutingInfoRes/forwardingInterrogationRequired", HFILL }},
12786     { &hf_gsm_map_vmsc_Address,
12787       { "vmsc-Address", "gsm_map.vmsc_Address",
12788         FT_BYTES, BASE_HEX, NULL, 0,
12789         "SendRoutingInfoRes/vmsc-Address", HFILL }},
12790     { &hf_gsm_map_ccbs_Indicators,
12791       { "ccbs-Indicators", "gsm_map.ccbs_Indicators",
12792         FT_NONE, BASE_NONE, NULL, 0,
12793         "SendRoutingInfoRes/ccbs-Indicators", HFILL }},
12794     { &hf_gsm_map_ccbs_Possible,
12795       { "ccbs-Possible", "gsm_map.ccbs_Possible",
12796         FT_NONE, BASE_NONE, NULL, 0,
12797         "", HFILL }},
12798     { &hf_gsm_map_keepCCBS_CallIndicator,
12799       { "keepCCBS-CallIndicator", "gsm_map.keepCCBS_CallIndicator",
12800         FT_NONE, BASE_NONE, NULL, 0,
12801         "SendRoutingInfoRes/ccbs-Indicators/keepCCBS-CallIndicator", HFILL }},
12802     { &hf_gsm_map_numberPortabilityStatus,
12803       { "numberPortabilityStatus", "gsm_map.numberPortabilityStatus",
12804         FT_UINT32, BASE_DEC, VALS(gsm_map_NumberPortabilityStatus_vals), 0,
12805         "", HFILL }},
12806     { &hf_gsm_map_assumedIdle,
12807       { "assumedIdle", "gsm_map.assumedIdle",
12808         FT_NONE, BASE_NONE, NULL, 0,
12809         "SubscriberState/assumedIdle", HFILL }},
12810     { &hf_gsm_map_camelBusy,
12811       { "camelBusy", "gsm_map.camelBusy",
12812         FT_NONE, BASE_NONE, NULL, 0,
12813         "SubscriberState/camelBusy", HFILL }},
12814     { &hf_gsm_map_notProvidedFromVLR,
12815       { "notProvidedFromVLR", "gsm_map.notProvidedFromVLR",
12816         FT_NONE, BASE_NONE, NULL, 0,
12817         "SubscriberState/notProvidedFromVLR", HFILL }},
12818     { &hf_gsm_map_ageOfLocationInformation,
12819       { "ageOfLocationInformation", "gsm_map.ageOfLocationInformation",
12820         FT_UINT32, BASE_DEC, NULL, 0,
12821         "", HFILL }},
12822     { &hf_gsm_map_geographicalInformation,
12823       { "geographicalInformation", "gsm_map.geographicalInformation",
12824         FT_BYTES, BASE_HEX, NULL, 0,
12825         "", HFILL }},
12826     { &hf_gsm_map_vlr_number,
12827       { "vlr-number", "gsm_map.vlr_number",
12828         FT_BYTES, BASE_HEX, NULL, 0,
12829         "LocationInformation/vlr-number", HFILL }},
12830     { &hf_gsm_map_locationNumber,
12831       { "locationNumber", "gsm_map.locationNumber",
12832         FT_BYTES, BASE_HEX, NULL, 0,
12833         "LocationInformation/locationNumber", HFILL }},
12834     { &hf_gsm_map_cellIdOrLAI,
12835       { "cellIdOrLAI", "gsm_map.cellIdOrLAI",
12836         FT_UINT32, BASE_DEC, VALS(gsm_map_T_cellIdOrLAI_vals), 0,
12837         "LocationInformation/cellIdOrLAI", HFILL }},
12838     { &hf_gsm_map_cellIdFixedLength,
12839       { "cellIdFixedLength", "gsm_map.cellIdFixedLength",
12840         FT_BYTES, BASE_HEX, NULL, 0,
12841         "LocationInformation/cellIdOrLAI/cellIdFixedLength", HFILL }},
12842     { &hf_gsm_map_laiFixedLength,
12843       { "laiFixedLength", "gsm_map.laiFixedLength",
12844         FT_BYTES, BASE_HEX, NULL, 0,
12845         "", HFILL }},
12846     { &hf_gsm_map_selectedLSA_Id,
12847       { "selectedLSA-Id", "gsm_map.selectedLSA_Id",
12848         FT_BYTES, BASE_HEX, NULL, 0,
12849         "LocationInformation/selectedLSA-Id", HFILL }},
12850     { &hf_gsm_map_geodeticInformation,
12851       { "geodeticInformation", "gsm_map.geodeticInformation",
12852         FT_BYTES, BASE_HEX, NULL, 0,
12853         "", HFILL }},
12854     { &hf_gsm_map_currentLocationRetrieved,
12855       { "currentLocationRetrieved", "gsm_map.currentLocationRetrieved",
12856         FT_NONE, BASE_NONE, NULL, 0,
12857         "", HFILL }},
12858     { &hf_gsm_map_sai_Present,
12859       { "sai-Present", "gsm_map.sai_Present",
12860         FT_NONE, BASE_NONE, NULL, 0,
12861         "", HFILL }},
12862     { &hf_gsm_map_locationInformation,
12863       { "locationInformation", "gsm_map.locationInformation",
12864         FT_NONE, BASE_NONE, NULL, 0,
12865         "SubscriberInfo/locationInformation", HFILL }},
12866     { &hf_gsm_map_subscriberState,
12867       { "subscriberState", "gsm_map.subscriberState",
12868         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberState_vals), 0,
12869         "SubscriberInfo/subscriberState", HFILL }},
12870     { &hf_gsm_map_locationInformationGPRS,
12871       { "locationInformationGPRS", "gsm_map.locationInformationGPRS",
12872         FT_NONE, BASE_NONE, NULL, 0,
12873         "SubscriberInfo/locationInformationGPRS", HFILL }},
12874     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI,
12875       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.cellGlobalIdOrServiceAreaIdOrLAI",
12876         FT_UINT32, BASE_DEC, VALS(gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
12877         "SubscriberInfo/locationInformationGPRS/cellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
12878     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
12879       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
12880         FT_BYTES, BASE_HEX, NULL, 0,
12881         "SubscriberInfo/locationInformationGPRS/cellGlobalIdOrServiceAreaIdOrLAI/cellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
12882     { &hf_gsm_map_routeingAreaIdentity,
12883       { "routeingAreaIdentity", "gsm_map.routeingAreaIdentity",
12884         FT_BYTES, BASE_HEX, NULL, 0,
12885         "SubscriberInfo/locationInformationGPRS/routeingAreaIdentity", HFILL }},
12886     { &hf_gsm_map_selectedLSAIdentity,
12887       { "selectedLSAIdentity", "gsm_map.selectedLSAIdentity",
12888         FT_BYTES, BASE_HEX, NULL, 0,
12889         "SubscriberInfo/locationInformationGPRS/selectedLSAIdentity", HFILL }},
12890     { &hf_gsm_map_ps_SubscriberState,
12891       { "ps-SubscriberState", "gsm_map.ps_SubscriberState",
12892         FT_UINT32, BASE_DEC, VALS(gsm_map_T_ps_SubscriberState_vals), 0,
12893         "SubscriberInfo/ps-SubscriberState", HFILL }},
12894     { &hf_gsm_map_notProvidedFromSGSN,
12895       { "notProvidedFromSGSN", "gsm_map.notProvidedFromSGSN",
12896         FT_NONE, BASE_NONE, NULL, 0,
12897         "SubscriberInfo/ps-SubscriberState/notProvidedFromSGSN", HFILL }},
12898     { &hf_gsm_map_ps_Detached,
12899       { "ps-Detached", "gsm_map.ps_Detached",
12900         FT_NONE, BASE_NONE, NULL, 0,
12901         "SubscriberInfo/ps-SubscriberState/ps-Detached", HFILL }},
12902     { &hf_gsm_map_ps_AttachedNotReachableForPaging,
12903       { "ps-AttachedNotReachableForPaging", "gsm_map.ps_AttachedNotReachableForPaging",
12904         FT_NONE, BASE_NONE, NULL, 0,
12905         "SubscriberInfo/ps-SubscriberState/ps-AttachedNotReachableForPaging", HFILL }},
12906     { &hf_gsm_map_ps_AttachedReachableForPaging,
12907       { "ps-AttachedReachableForPaging", "gsm_map.ps_AttachedReachableForPaging",
12908         FT_NONE, BASE_NONE, NULL, 0,
12909         "SubscriberInfo/ps-SubscriberState/ps-AttachedReachableForPaging", HFILL }},
12910     { &hf_gsm_map_ps_PDP_ActiveNotReachableForPaging,
12911       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ps_PDP_ActiveNotReachableForPaging",
12912         FT_NONE, BASE_NONE, NULL, 0,
12913         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveNotReachableForPaging", HFILL }},
12914     { &hf_gsm_map_ps_PDP_ActiveNotReachableForPaging_item,
12915       { "Item", "gsm_map.ps_PDP_ActiveNotReachableForPaging_item",
12916         FT_NONE, BASE_NONE, NULL, 0,
12917         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveNotReachableForPaging/_item", HFILL }},
12918     { &hf_gsm_map_pdp_ContextIdentifier,
12919       { "pdp-ContextIdentifier", "gsm_map.pdp_ContextIdentifier",
12920         FT_UINT32, BASE_DEC, NULL, 0,
12921         "", HFILL }},
12922     { &hf_gsm_map_pdp_ContextActive,
12923       { "pdp-ContextActive", "gsm_map.pdp_ContextActive",
12924         FT_NONE, BASE_NONE, NULL, 0,
12925         "", HFILL }},
12926     { &hf_gsm_map_apn_Subscribed,
12927       { "apn-Subscribed", "gsm_map.apn_Subscribed",
12928         FT_BYTES, BASE_HEX, NULL, 0,
12929         "", HFILL }},
12930     { &hf_gsm_map_apn_InUse,
12931       { "apn-InUse", "gsm_map.apn_InUse",
12932         FT_BYTES, BASE_HEX, NULL, 0,
12933         "", HFILL }},
12934     { &hf_gsm_map_nsapi,
12935       { "nsapi", "gsm_map.nsapi",
12936         FT_UINT32, BASE_DEC, NULL, 0,
12937         "", HFILL }},
12938     { &hf_gsm_map_transactionId,
12939       { "transactionId", "gsm_map.transactionId",
12940         FT_BYTES, BASE_HEX, NULL, 0,
12941         "", HFILL }},
12942     { &hf_gsm_map_teid_ForGnAndGp,
12943       { "teid-ForGnAndGp", "gsm_map.teid_ForGnAndGp",
12944         FT_BYTES, BASE_HEX, NULL, 0,
12945         "", HFILL }},
12946     { &hf_gsm_map_teid_ForIu,
12947       { "teid-ForIu", "gsm_map.teid_ForIu",
12948         FT_BYTES, BASE_HEX, NULL, 0,
12949         "", HFILL }},
12950     { &hf_gsm_map_ggsn_Address,
12951       { "ggsn-Address", "gsm_map.ggsn_Address",
12952         FT_BYTES, BASE_HEX, NULL, 0,
12953         "", HFILL }},
12954     { &hf_gsm_map_qos_Requested,
12955       { "qos-Requested", "gsm_map.qos_Requested",
12956         FT_BYTES, BASE_HEX, NULL, 0,
12957         "", HFILL }},
12958     { &hf_gsm_map_qos_Negotiated,
12959       { "qos-Negotiated", "gsm_map.qos_Negotiated",
12960         FT_BYTES, BASE_HEX, NULL, 0,
12961         "", HFILL }},
12962     { &hf_gsm_map_chargingId,
12963       { "chargingId", "gsm_map.chargingId",
12964         FT_BYTES, BASE_HEX, NULL, 0,
12965         "", HFILL }},
12966     { &hf_gsm_map_chargingCharacteristics,
12967       { "chargingCharacteristics", "gsm_map.chargingCharacteristics",
12968         FT_BYTES, BASE_HEX, NULL, 0,
12969         "", HFILL }},
12970     { &hf_gsm_map_rnc_Address,
12971       { "rnc-Address", "gsm_map.rnc_Address",
12972         FT_BYTES, BASE_HEX, NULL, 0,
12973         "", HFILL }},
12974     { &hf_gsm_map_qos2_Subscribed,
12975       { "qos2-Subscribed", "gsm_map.qos2_Subscribed",
12976         FT_BYTES, BASE_HEX, NULL, 0,
12977         "", HFILL }},
12978     { &hf_gsm_map_qos2_Requested,
12979       { "qos2-Requested", "gsm_map.qos2_Requested",
12980         FT_BYTES, BASE_HEX, NULL, 0,
12981         "", HFILL }},
12982     { &hf_gsm_map_qos2_Negotiated,
12983       { "qos2-Negotiated", "gsm_map.qos2_Negotiated",
12984         FT_BYTES, BASE_HEX, NULL, 0,
12985         "", HFILL }},
12986     { &hf_gsm_map_ps_PDP_ActiveReachableForPaging,
12987       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ps_PDP_ActiveReachableForPaging",
12988         FT_NONE, BASE_NONE, NULL, 0,
12989         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveReachableForPaging", HFILL }},
12990     { &hf_gsm_map_ps_PDP_ActiveReachableForPaging_item,
12991       { "Item", "gsm_map.ps_PDP_ActiveReachableForPaging_item",
12992         FT_NONE, BASE_NONE, NULL, 0,
12993         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveReachableForPaging/_item", HFILL }},
12994     { &hf_gsm_map_netDetNotReachable,
12995       { "netDetNotReachable", "gsm_map.netDetNotReachable",
12996         FT_UINT32, BASE_DEC, VALS(gsm_map_T_netDetNotReachable_vals), 0,
12997         "SubscriberInfo/ps-SubscriberState/netDetNotReachable", HFILL }},
12998     { &hf_gsm_map_ms_Classmark2,
12999       { "ms-Classmark2", "gsm_map.ms_Classmark2",
13000         FT_BYTES, BASE_HEX, NULL, 0,
13001         "SubscriberInfo/ms-Classmark2", HFILL }},
13002     { &hf_gsm_map_gprs_MS_Class,
13003       { "gprs-MS-Class", "gsm_map.gprs_MS_Class",
13004         FT_NONE, BASE_NONE, NULL, 0,
13005         "SubscriberInfo/gprs-MS-Class", HFILL }},
13006     { &hf_gsm_map_mSNetworkCapability,
13007       { "mSNetworkCapability", "gsm_map.mSNetworkCapability",
13008         FT_BYTES, BASE_HEX, NULL, 0,
13009         "SubscriberInfo/gprs-MS-Class/mSNetworkCapability", HFILL }},
13010     { &hf_gsm_map_mSRadioAccessCapability,
13011       { "mSRadioAccessCapability", "gsm_map.mSRadioAccessCapability",
13012         FT_BYTES, BASE_HEX, NULL, 0,
13013         "SubscriberInfo/gprs-MS-Class/mSRadioAccessCapability", HFILL }},
13014     { &hf_gsm_map_mnpInfoRes,
13015       { "mnpInfoRes", "gsm_map.mnpInfoRes",
13016         FT_NONE, BASE_NONE, NULL, 0,
13017         "SubscriberInfo/mnpInfoRes", HFILL }},
13018     { &hf_gsm_map_routeingNumber,
13019       { "routeingNumber", "gsm_map.routeingNumber",
13020         FT_BYTES, BASE_HEX, NULL, 0,
13021         "SubscriberInfo/mnpInfoRes/routeingNumber", HFILL }},
13022     { &hf_gsm_map_ext_ProtocolId,
13023       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
13024         FT_UINT32, BASE_DEC, VALS(gsm_map_T_ext_ProtocolId_vals), 0,
13025         "AdditionalSignalInfo/ext-ProtocolId", HFILL }},
13026     { &hf_gsm_map_ext_signalInfo,
13027       { "signalInfo", "gsm_map.signalInfo",
13028         FT_BYTES, BASE_HEX, NULL, 0,
13029         "AdditionalSignalInfo/signalInfo", HFILL }},
13030     { &hf_gsm_map_cug_OutgoingAccess,
13031       { "cug-OutgoingAccess", "gsm_map.cug_OutgoingAccess",
13032         FT_NONE, BASE_NONE, NULL, 0,
13033         "Cug-CheckInfo/cug-OutgoingAccess", HFILL }},
13034     { &hf_gsm_map_gsm_BearerCapability,
13035       { "gsm-BearerCapability", "gsm_map.gsm_BearerCapability",
13036         FT_NONE, BASE_NONE, NULL, 0,
13037         "", HFILL }},
13038     { &hf_gsm_map_supportedCamelPhasesInGMSC,
13039       { "supportedCamelPhasesInGMSC", "gsm_map.supportedCamelPhasesInGMSC",
13040         FT_BYTES, BASE_HEX, NULL, 0,
13041         "ProvideRoamingNumberArg/supportedCamelPhasesInGMSC", HFILL }},
13042     { &hf_gsm_map_orNotSupportedInGMSC,
13043       { "orNotSupportedInGMSC", "gsm_map.orNotSupportedInGMSC",
13044         FT_NONE, BASE_NONE, NULL, 0,
13045         "ProvideRoamingNumberArg/orNotSupportedInGMSC", HFILL }},
13046     { &hf_gsm_map_uu_Data,
13047       { "uu-Data", "gsm_map.uu_Data",
13048         FT_NONE, BASE_NONE, NULL, 0,
13049         "ResumeCallHandlingArg/uu-Data", HFILL }},
13050     { &hf_gsm_map_uuIndicator,
13051       { "uuIndicator", "gsm_map.uuIndicator",
13052         FT_BYTES, BASE_HEX, NULL, 0,
13053         "ResumeCallHandlingArg/uu-Data/uuIndicator", HFILL }},
13054     { &hf_gsm_map_uui,
13055       { "uui", "gsm_map.uui",
13056         FT_BYTES, BASE_HEX, NULL, 0,
13057         "ResumeCallHandlingArg/uu-Data/uui", HFILL }},
13058     { &hf_gsm_map_uusCFInteraction,
13059       { "uusCFInteraction", "gsm_map.uusCFInteraction",
13060         FT_NONE, BASE_NONE, NULL, 0,
13061         "ResumeCallHandlingArg/uu-Data/uusCFInteraction", HFILL }},
13062     { &hf_gsm_map_allInformationSent,
13063       { "allInformationSent", "gsm_map.allInformationSent",
13064         FT_NONE, BASE_NONE, NULL, 0,
13065         "ResumeCallHandlingArg/allInformationSent", HFILL }},
13066     { &hf_gsm_map_isdn_BearerCapability,
13067       { "isdn-BearerCapability", "gsm_map.isdn_BearerCapability",
13068         FT_NONE, BASE_NONE, NULL, 0,
13069         "ProvideSIWFSNumberArg/isdn-BearerCapability", HFILL }},
13070     { &hf_gsm_map_call_Direction,
13071       { "call-Direction", "gsm_map.call_Direction",
13072         FT_BYTES, BASE_HEX, NULL, 0,
13073         "ProvideSIWFSNumberArg/call-Direction", HFILL }},
13074     { &hf_gsm_map_b_Subscriber_Address,
13075       { "b-Subscriber-Address", "gsm_map.b_Subscriber_Address",
13076         FT_BYTES, BASE_HEX, NULL, 0,
13077         "ProvideSIWFSNumberArg/b-Subscriber-Address", HFILL }},
13078     { &hf_gsm_map_chosenChannel,
13079       { "chosenChannel", "gsm_map.chosenChannel",
13080         FT_NONE, BASE_NONE, NULL, 0,
13081         "", HFILL }},
13082     { &hf_gsm_map_lowerLayerCompatibility,
13083       { "lowerLayerCompatibility", "gsm_map.lowerLayerCompatibility",
13084         FT_NONE, BASE_NONE, NULL, 0,
13085         "ProvideSIWFSNumberArg/lowerLayerCompatibility", HFILL }},
13086     { &hf_gsm_map_highLayerCompatibility,
13087       { "highLayerCompatibility", "gsm_map.highLayerCompatibility",
13088         FT_NONE, BASE_NONE, NULL, 0,
13089         "ProvideSIWFSNumberArg/highLayerCompatibility", HFILL }},
13090     { &hf_gsm_map_sIWFSNumber,
13091       { "sIWFSNumber", "gsm_map.sIWFSNumber",
13092         FT_BYTES, BASE_HEX, NULL, 0,
13093         "ProvideSIWFSNumberRes/sIWFSNumber", HFILL }},
13094     { &hf_gsm_map_channelType,
13095       { "channelType", "gsm_map.channelType",
13096         FT_NONE, BASE_NONE, NULL, 0,
13097         "SIWFSSignallingModifyArg/channelType", HFILL }},
13098     { &hf_gsm_map_ccbs_Monitoring,
13099       { "ccbs-Monitoring", "gsm_map.ccbs_Monitoring",
13100         FT_UINT32, BASE_DEC, VALS(gsm_map_Ccbs_Monitoring_vals), 0,
13101         "SetReportingStateArg/ccbs-Monitoring", HFILL }},
13102     { &hf_gsm_map_ccbs_SubscriberStatus,
13103       { "ccbs-SubscriberStatus", "gsm_map.ccbs_SubscriberStatus",
13104         FT_UINT32, BASE_DEC, VALS(gsm_map_Ccbs_SubscriberStatus_vals), 0,
13105         "", HFILL }},
13106     { &hf_gsm_map_eventReportData,
13107       { "eventReportData", "gsm_map.eventReportData",
13108         FT_NONE, BASE_NONE, NULL, 0,
13109         "StatusReportArg/eventReportData", HFILL }},
13110     { &hf_gsm_map_callReportdata,
13111       { "callReportdata", "gsm_map.callReportdata",
13112         FT_NONE, BASE_NONE, NULL, 0,
13113         "StatusReportArg/callReportdata", HFILL }},
13114     { &hf_gsm_map_monitoringMode,
13115       { "monitoringMode", "gsm_map.monitoringMode",
13116         FT_UINT32, BASE_DEC, VALS(gsm_map_MonitoringMode_vals), 0,
13117         "StatusReportArg/callReportdata/monitoringMode", HFILL }},
13118     { &hf_gsm_map_callOutcome,
13119       { "callOutcome", "gsm_map.callOutcome",
13120         FT_UINT32, BASE_DEC, VALS(gsm_map_CallOutcome_vals), 0,
13121         "StatusReportArg/callReportdata/callOutcome", HFILL }},
13122     { &hf_gsm_map_callInfo,
13123       { "callInfo", "gsm_map.callInfo",
13124         FT_NONE, BASE_NONE, NULL, 0,
13125         "", HFILL }},
13126     { &hf_gsm_map_ccbs_Feature,
13127       { "ccbs-Feature", "gsm_map.ccbs_Feature",
13128         FT_NONE, BASE_NONE, NULL, 0,
13129         "", HFILL }},
13130     { &hf_gsm_map_translatedB_Number,
13131       { "translatedB-Number", "gsm_map.translatedB_Number",
13132         FT_BYTES, BASE_HEX, NULL, 0,
13133         "", HFILL }},
13134     { &hf_gsm_map_replaceB_Number,
13135       { "replaceB-Number", "gsm_map.replaceB_Number",
13136         FT_NONE, BASE_NONE, NULL, 0,
13137         "RemoteUserFreeArg/replaceB-Number", HFILL }},
13138     { &hf_gsm_map_ruf_Outcome,
13139       { "ruf-Outcome", "gsm_map.ruf_Outcome",
13140         FT_UINT32, BASE_DEC, VALS(gsm_map_Ruf_Outcome_vals), 0,
13141         "RemoteUserFreeRes/ruf-Outcome", HFILL }},
13142     { &hf_gsm_map_ss_SubscriptionOption,
13143       { "ss-SubscriptionOption", "gsm_map.ss_SubscriptionOption",
13144         FT_UINT32, BASE_DEC, VALS(gsm_map_Ss_SubscriptionOption_vals), 0,
13145         "Ss-Data/ss-SubscriptionOption", HFILL }},
13146     { &hf_gsm_map_ccbs_Index,
13147       { "ccbs-Index", "gsm_map.ccbs_Index",
13148         FT_UINT32, BASE_DEC, NULL, 0,
13149         "", HFILL }},
13150     { &hf_gsm_map_b_subscriberNumber,
13151       { "b-subscriberNumber", "gsm_map.b_subscriberNumber",
13152         FT_BYTES, BASE_HEX, NULL, 0,
13153         "", HFILL }},
13154     { &hf_gsm_map_b_subscriberSubaddress,
13155       { "b-subscriberSubaddress", "gsm_map.b_subscriberSubaddress",
13156         FT_BYTES, BASE_HEX, NULL, 0,
13157         "", HFILL }},
13158     { &hf_gsm_map_forwardingFeatureList_1_13,
13159       { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
13160         FT_NONE, BASE_NONE, NULL, 0,
13161         "InterrogateSS-Res/forwardingFeatureList", HFILL }},
13162     { &hf_gsm_map_genericServiceInfo,
13163       { "genericServiceInfo", "gsm_map.genericServiceInfo",
13164         FT_NONE, BASE_NONE, NULL, 0,
13165         "InterrogateSS-Res/genericServiceInfo", HFILL }},
13166     { &hf_gsm_map_maximumEntitledPriority,
13167       { "maximumEntitledPriority", "gsm_map.maximumEntitledPriority",
13168         FT_UINT32, BASE_DEC, NULL, 0,
13169         "InterrogateSS-Res/genericServiceInfo/maximumEntitledPriority", HFILL }},
13170     { &hf_gsm_map_ccbs_FeatureList,
13171       { "ccbs-FeatureList", "gsm_map.ccbs_FeatureList",
13172         FT_NONE, BASE_NONE, NULL, 0,
13173         "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList", HFILL }},
13174     { &hf_gsm_map_ccbs_FeatureList_item,
13175       { "Item", "gsm_map.ccbs_FeatureList_item",
13176         FT_NONE, BASE_NONE, NULL, 0,
13177         "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList/_item", HFILL }},
13178     { &hf_gsm_map_ussd_DataCodingScheme,
13179       { "ussd-DataCodingScheme", "gsm_map.ussd_DataCodingScheme",
13180         FT_BYTES, BASE_HEX, NULL, 0,
13181         "", HFILL }},
13182     { &hf_gsm_map_ussd_String,
13183       { "ussd-String", "gsm_map.ussd_String",
13184         FT_BYTES, BASE_HEX, NULL, 0,
13185         "", HFILL }},
13186     { &hf_gsm_map_ccbs_Data,
13187       { "ccbs-Data", "gsm_map.ccbs_Data",
13188         FT_NONE, BASE_NONE, NULL, 0,
13189         "RegisterCC-EntryArg/ccbs-Data", HFILL }},
13190     { &hf_gsm_map_serviceIndicator,
13191       { "serviceIndicator", "gsm_map.serviceIndicator",
13192         FT_BYTES, BASE_HEX, NULL, 0,
13193         "RegisterCC-EntryArg/ccbs-Data/serviceIndicator", HFILL }},
13194     { &hf_gsm_map_sm_RP_PRI,
13195       { "sm-RP-PRI", "gsm_map.sm_RP_PRI",
13196         FT_BOOLEAN, 8, NULL, 0,
13197         "RoutingInfoForSMArg/sm-RP-PRI", HFILL }},
13198     { &hf_gsm_map_serviceCentreAddress,
13199       { "serviceCentreAddress", "gsm_map.serviceCentreAddress",
13200         FT_BYTES, BASE_HEX, NULL, 0,
13201         "", HFILL }},
13202     { &hf_gsm_map_gprsSupportIndicator,
13203       { "gprsSupportIndicator", "gsm_map.gprsSupportIndicator",
13204         FT_NONE, BASE_NONE, NULL, 0,
13205         "", HFILL }},
13206     { &hf_gsm_map_sm_RP_MTI,
13207       { "sm-RP-MTI", "gsm_map.sm_RP_MTI",
13208         FT_UINT32, BASE_DEC, NULL, 0,
13209         "RoutingInfoForSMArg/sm-RP-MTI", HFILL }},
13210     { &hf_gsm_map_sm_RP_SMEA,
13211       { "sm-RP-SMEA", "gsm_map.sm_RP_SMEA",
13212         FT_BYTES, BASE_HEX, NULL, 0,
13213         "RoutingInfoForSMArg/sm-RP-SMEA", HFILL }},
13214     { &hf_gsm_map_locationInfoWithLMSI,
13215       { "locationInfoWithLMSI", "gsm_map.locationInfoWithLMSI",
13216         FT_NONE, BASE_NONE, NULL, 0,
13217         "RoutingInfoForSMRes/locationInfoWithLMSI", HFILL }},
13218     { &hf_gsm_map_networkNode_Number,
13219       { "networkNode-Number", "gsm_map.networkNode_Number",
13220         FT_BYTES, BASE_HEX, NULL, 0,
13221         "RoutingInfoForSMRes/locationInfoWithLMSI/networkNode-Number", HFILL }},
13222     { &hf_gsm_map_gprsNodeIndicator,
13223       { "gprsNodeIndicator", "gsm_map.gprsNodeIndicator",
13224         FT_NONE, BASE_NONE, NULL, 0,
13225         "RoutingInfoForSMRes/locationInfoWithLMSI/gprsNodeIndicator", HFILL }},
13226     { &hf_gsm_map_additional_Number,
13227       { "additional-Number", "gsm_map.additional_Number",
13228         FT_UINT32, BASE_DEC, VALS(gsm_map_T_additional_Number_vals), 0,
13229         "RoutingInfoForSMRes/locationInfoWithLMSI/additional-Number", HFILL }},
13230     { &hf_gsm_map_sm_RP_DA,
13231       { "sm-RP-DA", "gsm_map.sm_RP_DA",
13232         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_DA_vals), 0,
13233         "", HFILL }},
13234     { &hf_gsm_map_sm_RP_OA,
13235       { "sm-RP-OA", "gsm_map.sm_RP_OA",
13236         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_OA_vals), 0,
13237         "", HFILL }},
13238     { &hf_gsm_map_sm_RP_UI,
13239       { "sm-RP-UI", "gsm_map.sm_RP_UI",
13240         FT_BYTES, BASE_HEX, NULL, 0,
13241         "", HFILL }},
13242     { &hf_gsm_map_serviceCentreAddressOA,
13243       { "serviceCentreAddressOA", "gsm_map.serviceCentreAddressOA",
13244         FT_BYTES, BASE_HEX, NULL, 0,
13245         "Sm-RP-OA/serviceCentreAddressOA", HFILL }},
13246     { &hf_gsm_map_noSM_RP_OA,
13247       { "noSM-RP-OA", "gsm_map.noSM_RP_OA",
13248         FT_NONE, BASE_NONE, NULL, 0,
13249         "Sm-RP-OA/noSM-RP-OA", HFILL }},
13250     { &hf_gsm_map_serviceCentreAddressDA,
13251       { "serviceCentreAddressDA", "gsm_map.serviceCentreAddressDA",
13252         FT_BYTES, BASE_HEX, NULL, 0,
13253         "Sm-RP-DA/serviceCentreAddressDA", HFILL }},
13254     { &hf_gsm_map_noSM_RP_DA,
13255       { "noSM-RP-DA", "gsm_map.noSM_RP_DA",
13256         FT_NONE, BASE_NONE, NULL, 0,
13257         "Sm-RP-DA/noSM-RP-DA", HFILL }},
13258     { &hf_gsm_map_moreMessagesToSend,
13259       { "moreMessagesToSend", "gsm_map.moreMessagesToSend",
13260         FT_NONE, BASE_NONE, NULL, 0,
13261         "Mt-forwardSM-Arg/moreMessagesToSend", HFILL }},
13262     { &hf_gsm_map_sm_DeliveryOutcome,
13263       { "sm-DeliveryOutcome", "gsm_map.sm_DeliveryOutcome",
13264         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0,
13265         "ReportSM-DeliveryStatusArg/sm-DeliveryOutcome", HFILL }},
13266     { &hf_gsm_map_absentSubscriberDiagnosticSM,
13267       { "absentSubscriberDiagnosticSM", "gsm_map.absentSubscriberDiagnosticSM",
13268         FT_UINT32, BASE_DEC, NULL, 0,
13269         "", HFILL }},
13270     { &hf_gsm_map_deliveryOutcomeIndicator,
13271       { "deliveryOutcomeIndicator", "gsm_map.deliveryOutcomeIndicator",
13272         FT_NONE, BASE_NONE, NULL, 0,
13273         "ReportSM-DeliveryStatusArg/deliveryOutcomeIndicator", HFILL }},
13274     { &hf_gsm_map_additionalSM_DeliveryOutcome,
13275       { "additionalSM-DeliveryOutcome", "gsm_map.additionalSM_DeliveryOutcome",
13276         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0,
13277         "ReportSM-DeliveryStatusArg/additionalSM-DeliveryOutcome", HFILL }},
13278     { &hf_gsm_map_additionalAbsentSubscriberDiagnosticSM,
13279       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.additionalAbsentSubscriberDiagnosticSM",
13280         FT_UINT32, BASE_DEC, NULL, 0,
13281         "", HFILL }},
13282     { &hf_gsm_map_storedMSISDN,
13283       { "storedMSISDN", "gsm_map.storedMSISDN",
13284         FT_BYTES, BASE_HEX, NULL, 0,
13285         "", HFILL }},
13286     { &hf_gsm_map_mw_Status,
13287       { "mw-Status", "gsm_map.mw_Status",
13288         FT_BYTES, BASE_HEX, NULL, 0,
13289         "InformServiceCentreArg/mw-Status", HFILL }},
13290     { &hf_gsm_map_alertReason,
13291       { "alertReason", "gsm_map.alertReason",
13292         FT_UINT32, BASE_DEC, VALS(gsm_map_T_alertReason_vals), 0,
13293         "ReadyForSM-Arg/alertReason", HFILL }},
13294     { &hf_gsm_map_alertReasonIndicator,
13295       { "alertReasonIndicator", "gsm_map.alertReasonIndicator",
13296         FT_NONE, BASE_NONE, NULL, 0,
13297         "ReadyForSM-Arg/alertReasonIndicator", HFILL }},
13298     { &hf_gsm_map_requestedInfo,
13299       { "requestedInfo", "gsm_map.requestedInfo",
13300         FT_NONE, BASE_NONE, NULL, 0,
13301         "", HFILL }},
13302     { &hf_gsm_map_locationInformationFlag,
13303       { "locationInformation", "gsm_map.locationInformation",
13304         FT_NONE, BASE_NONE, NULL, 0,
13305         "RequestedInfo/locationInformation", HFILL }},
13306     { &hf_gsm_map_subscriberStateFlag,
13307       { "subscriberState", "gsm_map.subscriberState",
13308         FT_NONE, BASE_NONE, NULL, 0,
13309         "RequestedInfo/subscriberState", HFILL }},
13310     { &hf_gsm_map_currentLocation,
13311       { "currentLocation", "gsm_map.currentLocation",
13312         FT_NONE, BASE_NONE, NULL, 0,
13313         "RequestedInfo/currentLocation", HFILL }},
13314     { &hf_gsm_map_requestedDomain,
13315       { "requestedDomain", "gsm_map.requestedDomain",
13316         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestedDomain_vals), 0,
13317         "RequestedInfo/requestedDomain", HFILL }},
13318     { &hf_gsm_map_imei_flg,
13319       { "imei", "gsm_map.imei",
13320         FT_NONE, BASE_NONE, NULL, 0,
13321         "RequestedInfo/imei", HFILL }},
13322     { &hf_gsm_map_ms_classmark,
13323       { "ms-classmark", "gsm_map.ms_classmark",
13324         FT_NONE, BASE_NONE, NULL, 0,
13325         "RequestedInfo/ms-classmark", HFILL }},
13326     { &hf_gsm_map_mnpRequestedInfo,
13327       { "mnpRequestedInfo", "gsm_map.mnpRequestedInfo",
13328         FT_NONE, BASE_NONE, NULL, 0,
13329         "RequestedInfo/mnpRequestedInfo", HFILL }},
13330     { &hf_gsm_map_subscriberIdentity,
13331       { "subscriberIdentity", "gsm_map.subscriberIdentity",
13332         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
13333         "", HFILL }},
13334     { &hf_gsm_map_requestedSubscriptionInfo,
13335       { "requestedSubscriptionInfo", "gsm_map.requestedSubscriptionInfo",
13336         FT_NONE, BASE_NONE, NULL, 0,
13337         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo", HFILL }},
13338     { &hf_gsm_map_requestedSS_Info,
13339       { "requestedSS-Info", "gsm_map.requestedSS_Info",
13340         FT_NONE, BASE_NONE, NULL, 0,
13341         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/requestedSS-Info", HFILL }},
13342     { &hf_gsm_map_odb,
13343       { "odb", "gsm_map.odb",
13344         FT_NONE, BASE_NONE, NULL, 0,
13345         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/odb", HFILL }},
13346     { &hf_gsm_map_requestedCAMEL_SubscriptionInfo,
13347       { "requestedCAMEL-SubscriptionInfo", "gsm_map.requestedCAMEL_SubscriptionInfo",
13348         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestedCAMEL_SubscriptionInfo_vals), 0,
13349         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/requestedCAMEL-SubscriptionInfo", HFILL }},
13350     { &hf_gsm_map_supportedVLR_CAMEL_Phases_flg,
13351       { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases",
13352         FT_NONE, BASE_NONE, NULL, 0,
13353         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/supportedVLR-CAMEL-Phases", HFILL }},
13354     { &hf_gsm_map_supportedSGSN_CAMEL_Phases_flg,
13355       { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases",
13356         FT_NONE, BASE_NONE, NULL, 0,
13357         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/supportedSGSN-CAMEL-Phases", HFILL }},
13358     { &hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo,
13359       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.additionalRequestedCAMEL_SubscriptionInfo",
13360         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
13361         "", HFILL }},
13362     { &hf_gsm_map_callForwardingData,
13363       { "callForwardingData", "gsm_map.callForwardingData",
13364         FT_NONE, BASE_NONE, NULL, 0,
13365         "AnyTimeSubscriptionInterrogationRes/callForwardingData", HFILL }},
13366     { &hf_gsm_map_forwardingFeatureList,
13367       { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
13368         FT_NONE, BASE_NONE, NULL, 0,
13369         "AnyTimeSubscriptionInterrogationRes/callForwardingData/forwardingFeatureList", HFILL }},
13370     { &hf_gsm_map_notificationToCSE,
13371       { "notificationToCSE", "gsm_map.notificationToCSE",
13372         FT_NONE, BASE_NONE, NULL, 0,
13373         "", HFILL }},
13374     { &hf_gsm_map_callBarringData,
13375       { "callBarringData", "gsm_map.callBarringData",
13376         FT_NONE, BASE_NONE, NULL, 0,
13377         "AnyTimeSubscriptionInterrogationRes/callBarringData", HFILL }},
13378     { &hf_gsm_map_password,
13379       { "password", "gsm_map.password",
13380         FT_STRING, BASE_NONE, NULL, 0,
13381         "", HFILL }},
13382     { &hf_gsm_map_wrongPasswordAttemptsCounter,
13383       { "wrongPasswordAttemptsCounter", "gsm_map.wrongPasswordAttemptsCounter",
13384         FT_UINT32, BASE_DEC, NULL, 0,
13385         "", HFILL }},
13386     { &hf_gsm_map_odb_Info,
13387       { "odb-Info", "gsm_map.odb_Info",
13388         FT_NONE, BASE_NONE, NULL, 0,
13389         "AnyTimeSubscriptionInterrogationRes/odb-Info", HFILL }},
13390     { &hf_gsm_map_camel_SubscriptionInfo,
13391       { "camel-SubscriptionInfo", "gsm_map.camel_SubscriptionInfo",
13392         FT_NONE, BASE_NONE, NULL, 0,
13393         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo", HFILL }},
13394     { &hf_gsm_map_d_CSI,
13395       { "d-CSI", "gsm_map.d_CSI",
13396         FT_NONE, BASE_NONE, NULL, 0,
13397         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/d-CSI", HFILL }},
13398     { &hf_gsm_map_dp_AnalysedInfoCriteriaList,
13399       { "dp-AnalysedInfoCriteriaList", "gsm_map.dp_AnalysedInfoCriteriaList",
13400         FT_NONE, BASE_NONE, NULL, 0,
13401         "", HFILL }},
13402     { &hf_gsm_map_csi_Active,
13403       { "csi-Active", "gsm_map.csi_Active",
13404         FT_NONE, BASE_NONE, NULL, 0,
13405         "", HFILL }},
13406     { &hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList,
13407       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.t_BCSM_CAMEL_TDP_CriteriaList",
13408         FT_NONE, BASE_NONE, NULL, 0,
13409         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/t-BCSM-CAMEL-TDP-CriteriaList", HFILL }},
13410     { &hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList_item,
13411       { "Item", "gsm_map.t_BCSM_CAMEL_TDP_CriteriaList_item",
13412         FT_NONE, BASE_NONE, NULL, 0,
13413         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/t-BCSM-CAMEL-TDP-CriteriaList/_item", HFILL }},
13414     { &hf_gsm_map_t_BCSM_TriggerDetectionPoint,
13415       { "t-BCSM-TriggerDetectionPoint", "gsm_map.t_BCSM_TriggerDetectionPoint",
13416         FT_UINT32, BASE_DEC, VALS(gsm_map_t_BCSM_TriggerDetectionPoint_vals), 0,
13417         "", HFILL }},
13418     { &hf_gsm_map_basicServiceCriteria,
13419       { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
13420         FT_NONE, BASE_NONE, NULL, 0,
13421         "", HFILL }},
13422     { &hf_gsm_map_t_CauseValueCriteria,
13423       { "t-CauseValueCriteria", "gsm_map.t_CauseValueCriteria",
13424         FT_NONE, BASE_NONE, NULL, 0,
13425         "", HFILL }},
13426     { &hf_gsm_map_vt_CSI,
13427       { "vt-CSI", "gsm_map.vt_CSI",
13428         FT_NONE, BASE_NONE, NULL, 0,
13429         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-CSI", HFILL }},
13430     { &hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList,
13431       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_BCSM_CAMEL_TDP_CriteriaList",
13432         FT_NONE, BASE_NONE, NULL, 0,
13433         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-BCSM-CAMEL-TDP-CriteriaList", HFILL }},
13434     { &hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList_item,
13435       { "Item", "gsm_map.vt_BCSM_CAMEL_TDP_CriteriaList_item",
13436         FT_NONE, BASE_NONE, NULL, 0,
13437         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-BCSM-CAMEL-TDP-CriteriaList/_item", HFILL }},
13438     { &hf_gsm_map_tif_CSI_NotificationToCSE,
13439       { "tif-CSI-NotificationToCSE", "gsm_map.tif_CSI_NotificationToCSE",
13440         FT_NONE, BASE_NONE, NULL, 0,
13441         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/tif-CSI-NotificationToCSE", HFILL }},
13442     { &hf_gsm_map_gprs_CSI,
13443       { "gprs-CSI", "gsm_map.gprs_CSI",
13444         FT_NONE, BASE_NONE, NULL, 0,
13445         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI", HFILL }},
13446     { &hf_gsm_map_gprs_CamelTDPDataList,
13447       { "gprs-CamelTDPDataList", "gsm_map.gprs_CamelTDPDataList",
13448         FT_NONE, BASE_NONE, NULL, 0,
13449         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList", HFILL }},
13450     { &hf_gsm_map_gprs_CamelTDPDataList_item,
13451       { "Item", "gsm_map.gprs_CamelTDPDataList_item",
13452         FT_NONE, BASE_NONE, NULL, 0,
13453         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList/_item", HFILL }},
13454     { &hf_gsm_map_gprs_TriggerDetectionPoint,
13455       { "gprs-TriggerDetectionPoint", "gsm_map.gprs_TriggerDetectionPoint",
13456         FT_UINT32, BASE_DEC, VALS(gsm_map_T_gprs_TriggerDetectionPoint_vals), 0,
13457         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList/_item/gprs-TriggerDetectionPoint", HFILL }},
13458     { &hf_gsm_map_defaultSessionHandling,
13459       { "defaultSessionHandling", "gsm_map.defaultSessionHandling",
13460         FT_UINT32, BASE_DEC, VALS(gsm_map_T_defaultSessionHandling_vals), 0,
13461         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList/_item/defaultSessionHandling", HFILL }},
13462     { &hf_gsm_map_mo_sms_CSI,
13463       { "mo-sms-CSI", "gsm_map.mo_sms_CSI",
13464         FT_NONE, BASE_NONE, NULL, 0,
13465         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mo-sms-CSI", HFILL }},
13466     { &hf_gsm_map_sms_CAMEL_TDP_DataList,
13467       { "sms-CAMEL-TDP-DataList", "gsm_map.sms_CAMEL_TDP_DataList",
13468         FT_NONE, BASE_NONE, NULL, 0,
13469         "", HFILL }},
13470     { &hf_gsm_map_m_CSI,
13471       { "m-CSI", "gsm_map.m_CSI",
13472         FT_NONE, BASE_NONE, NULL, 0,
13473         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/m-CSI", HFILL }},
13474     { &hf_gsm_map_mobilityTriggers,
13475       { "mobilityTriggers", "gsm_map.mobilityTriggers",
13476         FT_NONE, BASE_NONE, NULL, 0,
13477         "", HFILL }},
13478     { &hf_gsm_map_specificCSIDeletedList,
13479       { "specificCSIDeletedList", "gsm_map.specificCSIDeletedList",
13480         FT_BYTES, BASE_HEX, NULL, 0,
13481         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/specificCSIDeletedList", HFILL }},
13482     { &hf_gsm_map_mt_sms_CSI,
13483       { "mt-sms-CSI", "gsm_map.mt_sms_CSI",
13484         FT_NONE, BASE_NONE, NULL, 0,
13485         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-sms-CSI", HFILL }},
13486     { &hf_gsm_map_mt_smsCAMELTDP_CriteriaList,
13487       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.mt_smsCAMELTDP_CriteriaList",
13488         FT_NONE, BASE_NONE, NULL, 0,
13489         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList", HFILL }},
13490     { &hf_gsm_map_mt_smsCAMELTDP_CriteriaList_item,
13491       { "Item", "gsm_map.mt_smsCAMELTDP_CriteriaList_item",
13492         FT_NONE, BASE_NONE, NULL, 0,
13493         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item", HFILL }},
13494     { &hf_gsm_map_sms_TriggerDetectionPoint,
13495       { "sms-TriggerDetectionPoint", "gsm_map.sms_TriggerDetectionPoint",
13496         FT_UINT32, BASE_DEC, VALS(gsm_map_sms_TriggerDetectionPoint_vals), 0,
13497         "", HFILL }},
13498     { &hf_gsm_map_tpdu_TypeCriterion,
13499       { "tpdu-TypeCriterion", "gsm_map.tpdu_TypeCriterion",
13500         FT_NONE, BASE_NONE, NULL, 0,
13501         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item/tpdu-TypeCriterion", HFILL }},
13502     { &hf_gsm_map_tpdu_TypeCriterion_item,
13503       { "Item", "gsm_map.tpdu_TypeCriterion_item",
13504         FT_UINT32, BASE_DEC, VALS(gsm_map_T_tpdu_TypeCriterion_item_vals), 0,
13505         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item/tpdu-TypeCriterion/_item", HFILL }},
13506     { &hf_gsm_map_mg_csi,
13507       { "mg-csi", "gsm_map.mg_csi",
13508         FT_NONE, BASE_NONE, NULL, 0,
13509         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mg-csi", HFILL }},
13510     { &hf_gsm_map_o_IM_CSI,
13511       { "o-IM-CSI", "gsm_map.o_IM_CSI",
13512         FT_NONE, BASE_NONE, NULL, 0,
13513         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-CSI", HFILL }},
13514     { &hf_gsm_map_csiActive,
13515       { "csiActive", "gsm_map.csiActive",
13516         FT_NONE, BASE_NONE, NULL, 0,
13517         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-CSI/csiActive", HFILL }},
13518     { &hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList,
13519       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.o_IM_BcsmCamelTDP_CriteriaList",
13520         FT_NONE, BASE_NONE, NULL, 0,
13521         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-BcsmCamelTDP-CriteriaList", HFILL }},
13522     { &hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList_item,
13523       { "Item", "gsm_map.o_IM_BcsmCamelTDP_CriteriaList_item",
13524         FT_NONE, BASE_NONE, NULL, 0,
13525         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-BcsmCamelTDP-CriteriaList/_item", HFILL }},
13526     { &hf_gsm_map_o_CauseValueCriteria,
13527       { "o-CauseValueCriteria", "gsm_map.o_CauseValueCriteria",
13528         FT_NONE, BASE_NONE, NULL, 0,
13529         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-BcsmCamelTDP-CriteriaList/_item/o-CauseValueCriteria", HFILL }},
13530     { &hf_gsm_map_d_IM_CSI,
13531       { "d-IM-CSI", "gsm_map.d_IM_CSI",
13532         FT_NONE, BASE_NONE, NULL, 0,
13533         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/d-IM-CSI", HFILL }},
13534     { &hf_gsm_map_vt_IM_CSI,
13535       { "vt-IM-CSI", "gsm_map.vt_IM_CSI",
13536         FT_NONE, BASE_NONE, NULL, 0,
13537         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-CSI", HFILL }},
13538     { &hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
13539       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
13540         FT_NONE, BASE_NONE, NULL, 0,
13541         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-BCSM-CAMEL-TDP-CriteriaList", HFILL }},
13542     { &hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item,
13543       { "Item", "gsm_map.vt_IM_BCSM_CAMEL_TDP_CriteriaList_item",
13544         FT_NONE, BASE_NONE, NULL, 0,
13545         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-BCSM-CAMEL-TDP-CriteriaList/_item", HFILL }},
13546     { &hf_gsm_map_supportedVLR_CAMEL_Phases,
13547       { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases",
13548         FT_BYTES, BASE_HEX, NULL, 0,
13549         "AnyTimeSubscriptionInterrogationRes/supportedVLR-CAMEL-Phases", HFILL }},
13550     { &hf_gsm_map_supportedSGSN_CAMEL_Phases,
13551       { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases",
13552         FT_BYTES, BASE_HEX, NULL, 0,
13553         "AnyTimeSubscriptionInterrogationRes/supportedSGSN-CAMEL-Phases", HFILL }},
13554     { &hf_gsm_map_offeredCamel4CSIsInVLR,
13555       { "offeredCamel4CSIsInVLR", "gsm_map.offeredCamel4CSIsInVLR",
13556         FT_BYTES, BASE_HEX, NULL, 0,
13557         "AnyTimeSubscriptionInterrogationRes/offeredCamel4CSIsInVLR", HFILL }},
13558     { &hf_gsm_map_offeredCamel4CSIsInSGSN,
13559       { "offeredCamel4CSIsInSGSN", "gsm_map.offeredCamel4CSIsInSGSN",
13560         FT_BYTES, BASE_HEX, NULL, 0,
13561         "AnyTimeSubscriptionInterrogationRes/offeredCamel4CSIsInSGSN", HFILL }},
13562     { &hf_gsm_map_Sms_CAMEL_TDP_DataList_item,
13563       { "Item", "gsm_map.Sms_CAMEL_TDP_DataList_item",
13564         FT_NONE, BASE_NONE, NULL, 0,
13565         "Sms-CAMEL-TDP-DataList/_item", HFILL }},
13566     { &hf_gsm_map_defaultSMS_Handling,
13567       { "defaultSMS-Handling", "gsm_map.defaultSMS_Handling",
13568         FT_UINT32, BASE_DEC, VALS(gsm_map_T_defaultSMS_Handling_vals), 0,
13569         "Sms-CAMEL-TDP-DataList/_item/defaultSMS-Handling", HFILL }},
13570     { &hf_gsm_map_T_CauseValueCriteria_item,
13571       { "Item", "gsm_map.T_CauseValueCriteria_item",
13572         FT_BYTES, BASE_HEX, NULL, 0,
13573         "T-CauseValueCriteria/_item", HFILL }},
13574     { &hf_gsm_map_O_CauseValueCriteria_item,
13575       { "Item", "gsm_map.O_CauseValueCriteria_item",
13576         FT_BYTES, BASE_HEX, NULL, 0,
13577         "O-CauseValueCriteria/_item", HFILL }},
13578     { &hf_gsm_map_MobilityTriggers_item,
13579       { "Item", "gsm_map.MobilityTriggers_item",
13580         FT_BYTES, BASE_HEX, NULL, 0,
13581         "MobilityTriggers/_item", HFILL }},
13582     { &hf_gsm_map_BasicServiceCriteria_item,
13583       { "Item", "gsm_map.BasicServiceCriteria_item",
13584         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCriteria_item_vals), 0,
13585         "BasicServiceCriteria/_item", HFILL }},
13586     { &hf_gsm_map_ext_BearerService,
13587       { "ext-BearerService", "gsm_map.ext_BearerService",
13588         FT_BYTES, BASE_HEX, NULL, 0,
13589         "", HFILL }},
13590     { &hf_gsm_map_ext_Teleservice,
13591       { "ext-Teleservice", "gsm_map.ext_Teleservice",
13592         FT_BYTES, BASE_HEX, NULL, 0,
13593         "", HFILL }},
13594     { &hf_gsm_map_Dp_AnalysedInfoCriteriaList_item,
13595       { "Item", "gsm_map.Dp_AnalysedInfoCriteriaList_item",
13596         FT_NONE, BASE_NONE, NULL, 0,
13597         "Dp-AnalysedInfoCriteriaList/_item", HFILL }},
13598     { &hf_gsm_map_dialledNumber,
13599       { "dialledNumber", "gsm_map.dialledNumber",
13600         FT_BYTES, BASE_HEX, NULL, 0,
13601         "Dp-AnalysedInfoCriteriaList/_item/dialledNumber", HFILL }},
13602     { &hf_gsm_map_modificationRequestFor_CF_Info,
13603       { "modificationRequestFor-CF-Info", "gsm_map.modificationRequestFor_CF_Info",
13604         FT_NONE, BASE_NONE, NULL, 0,
13605         "AnyTimeModificationArg/modificationRequestFor-CF-Info", HFILL }},
13606     { &hf_gsm_map_basicService_ext,
13607       { "basicService", "gsm_map.basicService",
13608         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_ext_vals), 0,
13609         "", HFILL }},
13610     { &hf_gsm_map_noReplyConditionTime_1_100,
13611       { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
13612         FT_UINT32, BASE_DEC, NULL, 0,
13613         "AnyTimeModificationArg/modificationRequestFor-CF-Info/noReplyConditionTime", HFILL }},
13614     { &hf_gsm_map_modifyNotificationToCSE,
13615       { "modifyNotificationToCSE", "gsm_map.modifyNotificationToCSE",
13616         FT_UINT32, BASE_DEC, VALS(gsm_map_ModifyNotificationToCSE_vals), 0,
13617         "", HFILL }},
13618     { &hf_gsm_map_modificationRequestFor_CB_Info,
13619       { "modificationRequestFor-CB-Info", "gsm_map.modificationRequestFor_CB_Info",
13620         FT_NONE, BASE_NONE, NULL, 0,
13621         "AnyTimeModificationArg/modificationRequestFor-CB-Info", HFILL }},
13622     { &hf_gsm_map_modificationRequestFor_CSI,
13623       { "modificationRequestFor-CSI", "gsm_map.modificationRequestFor_CSI",
13624         FT_NONE, BASE_NONE, NULL, 0,
13625         "AnyTimeModificationArg/modificationRequestFor-CSI", HFILL }},
13626     { &hf_gsm_map_requestedCamel_SubscriptionInfo,
13627       { "requestedCamel-SubscriptionInfo", "gsm_map.requestedCamel_SubscriptionInfo",
13628         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestedCamel_SubscriptionInfo_vals), 0,
13629         "AnyTimeModificationArg/modificationRequestFor-CSI/requestedCamel-SubscriptionInfo", HFILL }},
13630     { &hf_gsm_map_modifyCSI_State,
13631       { "modifyCSI-State", "gsm_map.modifyCSI_State",
13632         FT_UINT32, BASE_DEC, VALS(gsm_map_T_modifyCSI_State_vals), 0,
13633         "AnyTimeModificationArg/modificationRequestFor-CSI/modifyCSI-State", HFILL }},
13634     { &hf_gsm_map_modificationRequestFor_ODB_data,
13635       { "modificationRequestFor-ODB-data", "gsm_map.modificationRequestFor_ODB_data",
13636         FT_NONE, BASE_NONE, NULL, 0,
13637         "AnyTimeModificationArg/modificationRequestFor-ODB-data", HFILL }},
13638     { &hf_gsm_map_odb_data,
13639       { "odb-data", "gsm_map.odb_data",
13640         FT_NONE, BASE_NONE, NULL, 0,
13641         "AnyTimeModificationArg/modificationRequestFor-ODB-data/odb-data", HFILL }},
13642     { &hf_gsm_map_odb_HPLMN_Data,
13643       { "odb-HPLMN-Data", "gsm_map.odb_HPLMN_Data",
13644         FT_BYTES, BASE_HEX, NULL, 0,
13645         "Odb-data/odb-HPLMN-Data", HFILL }},
13646     { &hf_gsm_map_ss_Event,
13647       { "ss-Event", "gsm_map.ss_Event",
13648         FT_BYTES, BASE_HEX, NULL, 0,
13649         "Ss-InvocationNotificationArg/ss-Event", HFILL }},
13650     { &hf_gsm_map_ss_EventSpecification,
13651       { "ss-EventSpecification", "gsm_map.ss_EventSpecification",
13652         FT_NONE, BASE_NONE, NULL, 0,
13653         "Ss-InvocationNotificationArg/ss-EventSpecification", HFILL }},
13654     { &hf_gsm_map_ss_EventSpecification_item,
13655       { "Item", "gsm_map.ss_EventSpecification_item",
13656         FT_BYTES, BASE_HEX, NULL, 0,
13657         "Ss-InvocationNotificationArg/ss-EventSpecification/_item", HFILL }},
13658     { &hf_gsm_map_codec_Info,
13659       { "codec-Info", "gsm_map.codec_Info",
13660         FT_BYTES, BASE_HEX, NULL, 0,
13661         "PrepareGroupCallArg/codec-Info", HFILL }},
13662     { &hf_gsm_map_cipheringAlgorithm,
13663       { "cipheringAlgorithm", "gsm_map.cipheringAlgorithm",
13664         FT_BYTES, BASE_HEX, NULL, 0,
13665         "PrepareGroupCallArg/cipheringAlgorithm", HFILL }},
13666     { &hf_gsm_map_groupKeyNumber,
13667       { "groupKeyNumber", "gsm_map.groupKeyNumber",
13668         FT_UINT32, BASE_DEC, NULL, 0,
13669         "PrepareGroupCallArg/groupKeyNumber", HFILL }},
13670     { &hf_gsm_map_groupKey,
13671       { "groupKey", "gsm_map.groupKey",
13672         FT_BYTES, BASE_HEX, NULL, 0,
13673         "PrepareGroupCallArg/groupKey", HFILL }},
13674     { &hf_gsm_map_priority,
13675       { "priority", "gsm_map.priority",
13676         FT_UINT32, BASE_DEC, NULL, 0,
13677         "PrepareGroupCallArg/priority", HFILL }},
13678     { &hf_gsm_map_uplinkFree,
13679       { "uplinkFree", "gsm_map.uplinkFree",
13680         FT_NONE, BASE_NONE, NULL, 0,
13681         "PrepareGroupCallArg/uplinkFree", HFILL }},
13682     { &hf_gsm_map_groupCallNumber,
13683       { "groupCallNumber", "gsm_map.groupCallNumber",
13684         FT_BYTES, BASE_HEX, NULL, 0,
13685         "PrepareGroupCallRes/groupCallNumber", HFILL }},
13686     { &hf_gsm_map_uplinkRequest,
13687       { "uplinkRequest", "gsm_map.uplinkRequest",
13688         FT_NONE, BASE_NONE, NULL, 0,
13689         "ProcessGroupCallSignallingArg/uplinkRequest", HFILL }},
13690     { &hf_gsm_map_uplinkReleaseIndication,
13691       { "uplinkReleaseIndication", "gsm_map.uplinkReleaseIndication",
13692         FT_NONE, BASE_NONE, NULL, 0,
13693         "", HFILL }},
13694     { &hf_gsm_map_releaseGroupCall,
13695       { "releaseGroupCall", "gsm_map.releaseGroupCall",
13696         FT_NONE, BASE_NONE, NULL, 0,
13697         "ProcessGroupCallSignallingArg/releaseGroupCall", HFILL }},
13698     { &hf_gsm_map_uplinkRequestAck,
13699       { "uplinkRequestAck", "gsm_map.uplinkRequestAck",
13700         FT_NONE, BASE_NONE, NULL, 0,
13701         "ForwardGroupCallSignallingArg/uplinkRequestAck", HFILL }},
13702     { &hf_gsm_map_uplinkRejectCommand,
13703       { "uplinkRejectCommand", "gsm_map.uplinkRejectCommand",
13704         FT_NONE, BASE_NONE, NULL, 0,
13705         "ForwardGroupCallSignallingArg/uplinkRejectCommand", HFILL }},
13706     { &hf_gsm_map_uplinkSeizedCommand,
13707       { "uplinkSeizedCommand", "gsm_map.uplinkSeizedCommand",
13708         FT_NONE, BASE_NONE, NULL, 0,
13709         "ForwardGroupCallSignallingArg/uplinkSeizedCommand", HFILL }},
13710     { &hf_gsm_map_uplinkReleaseCommand,
13711       { "uplinkReleaseCommand", "gsm_map.uplinkReleaseCommand",
13712         FT_NONE, BASE_NONE, NULL, 0,
13713         "ForwardGroupCallSignallingArg/uplinkReleaseCommand", HFILL }},
13714     { &hf_gsm_map_sgsn_Address,
13715       { "sgsn-Address", "gsm_map.sgsn_Address",
13716         FT_BYTES, BASE_HEX, NULL, 0,
13717         "", HFILL }},
13718     { &hf_gsm_map_sgsn_Capability,
13719       { "sgsn-Capability", "gsm_map.sgsn_Capability",
13720         FT_NONE, BASE_NONE, NULL, 0,
13721         "UpdateGprsLocationArg/sgsn-Capability", HFILL }},
13722     { &hf_gsm_map_ggsn_Number,
13723       { "ggsn-Number", "gsm_map.ggsn_Number",
13724         FT_BYTES, BASE_HEX, NULL, 0,
13725         "", HFILL }},
13726     { &hf_gsm_map_mobileNotReachableReason,
13727       { "mobileNotReachableReason", "gsm_map.mobileNotReachableReason",
13728         FT_UINT32, BASE_DEC, NULL, 0,
13729         "SendRoutingInfoForGprsRes/mobileNotReachableReason", HFILL }},
13730     { &hf_gsm_map_dataCodingScheme,
13731       { "dataCodingScheme", "gsm_map.dataCodingScheme",
13732         FT_BYTES, BASE_HEX, NULL, 0,
13733         "LcsClientName/dataCodingScheme", HFILL }},
13734     { &hf_gsm_map_nameString,
13735       { "nameString", "gsm_map.nameString",
13736         FT_BYTES, BASE_HEX, NULL, 0,
13737         "LcsClientName/nameString", HFILL }},
13738     { &hf_gsm_map_lcsClientType,
13739       { "lcsClientType", "gsm_map.lcsClientType",
13740         FT_UINT32, BASE_DEC, VALS(gsm_map_LcsClientType_vals), 0,
13741         "Lcs-ClientID/lcsClientType", HFILL }},
13742     { &hf_gsm_map_lcsClientExternalID,
13743       { "lcsClientExternalID", "gsm_map.lcsClientExternalID",
13744         FT_NONE, BASE_NONE, NULL, 0,
13745         "Lcs-ClientID/lcsClientExternalID", HFILL }},
13746     { &hf_gsm_map_lcsClientDialedByMS,
13747       { "lcsClientDialedByMS", "gsm_map.lcsClientDialedByMS",
13748         FT_BYTES, BASE_HEX, NULL, 0,
13749         "Lcs-ClientID/lcsClientDialedByMS", HFILL }},
13750     { &hf_gsm_map_lcsClientInternalID,
13751       { "lcsClientInternalID", "gsm_map.lcsClientInternalID",
13752         FT_UINT32, BASE_DEC, VALS(gsm_map_LcsClientInternalID_vals), 0,
13753         "Lcs-ClientID/lcsClientInternalID", HFILL }},
13754     { &hf_gsm_map_lcsClientName,
13755       { "lcsClientName", "gsm_map.lcsClientName",
13756         FT_NONE, BASE_NONE, NULL, 0,
13757         "Lcs-ClientID/lcsClientName", HFILL }},
13758     { &hf_gsm_map_locationType,
13759       { "locationType", "gsm_map.locationType",
13760         FT_NONE, BASE_NONE, NULL, 0,
13761         "ProvideSubscriberLocation-Arg/locationType", HFILL }},
13762     { &hf_gsm_map_locationEstimateType,
13763       { "locationEstimateType", "gsm_map.locationEstimateType",
13764         FT_UINT32, BASE_DEC, VALS(gsm_map_T_locationEstimateType_vals), 0,
13765         "ProvideSubscriberLocation-Arg/locationType/locationEstimateType", HFILL }},
13766     { &hf_gsm_map_mlc_Number,
13767       { "mlc-Number", "gsm_map.mlc_Number",
13768         FT_BYTES, BASE_HEX, NULL, 0,
13769         "ProvideSubscriberLocation-Arg/mlc-Number", HFILL }},
13770     { &hf_gsm_map_lcs_ClientID,
13771       { "lcs-ClientID", "gsm_map.lcs_ClientID",
13772         FT_NONE, BASE_NONE, NULL, 0,
13773         "", HFILL }},
13774     { &hf_gsm_map_privacyOverride,
13775       { "privacyOverride", "gsm_map.privacyOverride",
13776         FT_NONE, BASE_NONE, NULL, 0,
13777         "ProvideSubscriberLocation-Arg/privacyOverride", HFILL }},
13778     { &hf_gsm_map_lcs_Priority,
13779       { "lcs-Priority", "gsm_map.lcs_Priority",
13780         FT_BYTES, BASE_HEX, NULL, 0,
13781         "ProvideSubscriberLocation-Arg/lcs-Priority", HFILL }},
13782     { &hf_gsm_map_lcs_QoS,
13783       { "lcs-QoS", "gsm_map.lcs_QoS",
13784         FT_NONE, BASE_NONE, NULL, 0,
13785         "ProvideSubscriberLocation-Arg/lcs-QoS", HFILL }},
13786     { &hf_gsm_map_horizontal_accuracy,
13787       { "horizontal-accuracy", "gsm_map.horizontal_accuracy",
13788         FT_BYTES, BASE_HEX, NULL, 0,
13789         "ProvideSubscriberLocation-Arg/lcs-QoS/horizontal-accuracy", HFILL }},
13790     { &hf_gsm_map_verticalCoordinateRequest,
13791       { "verticalCoordinateRequest", "gsm_map.verticalCoordinateRequest",
13792         FT_NONE, BASE_NONE, NULL, 0,
13793         "ProvideSubscriberLocation-Arg/lcs-QoS/verticalCoordinateRequest", HFILL }},
13794     { &hf_gsm_map_vertical_accuracy,
13795       { "vertical-accuracy", "gsm_map.vertical_accuracy",
13796         FT_BYTES, BASE_HEX, NULL, 0,
13797         "ProvideSubscriberLocation-Arg/lcs-QoS/vertical-accuracy", HFILL }},
13798     { &hf_gsm_map_responseTime,
13799       { "responseTime", "gsm_map.responseTime",
13800         FT_NONE, BASE_NONE, NULL, 0,
13801         "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime", HFILL }},
13802     { &hf_gsm_map_responseTimeCategory,
13803       { "responseTimeCategory", "gsm_map.responseTimeCategory",
13804         FT_UINT32, BASE_DEC, VALS(gsm_map_T_responseTimeCategory_vals), 0,
13805         "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime/responseTimeCategory", HFILL }},
13806     { &hf_gsm_map_locationEstimate,
13807       { "locationEstimate", "gsm_map.locationEstimate",
13808         FT_BYTES, BASE_HEX, NULL, 0,
13809         "", HFILL }},
13810     { &hf_gsm_map_ageOfLocationEstimate,
13811       { "ageOfLocationEstimate", "gsm_map.ageOfLocationEstimate",
13812         FT_UINT32, BASE_DEC, NULL, 0,
13813         "", HFILL }},
13814     { &hf_gsm_map_mlcNumber,
13815       { "mlcNumber", "gsm_map.mlcNumber",
13816         FT_BYTES, BASE_HEX, NULL, 0,
13817         "RoutingInfoForLCS-Arg/mlcNumber", HFILL }},
13818     { &hf_gsm_map_targetMS,
13819       { "targetMS", "gsm_map.targetMS",
13820         FT_UINT32, BASE_DEC, VALS(gsm_map_TargetMS_vals), 0,
13821         "", HFILL }},
13822     { &hf_gsm_map_lcsLocationInfo,
13823       { "lcsLocationInfo", "gsm_map.lcsLocationInfo",
13824         FT_NONE, BASE_NONE, NULL, 0,
13825         "", HFILL }},
13826     { &hf_gsm_map_lcs_Event,
13827       { "lcs-Event", "gsm_map.lcs_Event",
13828         FT_UINT32, BASE_DEC, VALS(gsm_map_Lcs_Event_vals), 0,
13829         "SubscriberLocationReport-Arg/lcs-Event", HFILL }},
13830     { &hf_gsm_map_na_ESRD,
13831       { "na-ESRD", "gsm_map.na_ESRD",
13832         FT_BYTES, BASE_HEX, NULL, 0,
13833         "SubscriberLocationReport-Arg/na-ESRD", HFILL }},
13834     { &hf_gsm_map_na_ESRK,
13835       { "na-ESRK", "gsm_map.na_ESRK",
13836         FT_BYTES, BASE_HEX, NULL, 0,
13837         "SubscriberLocationReport-Arg/na-ESRK", HFILL }},
13838     { &hf_gsm_map_networkResource,
13839       { "networkResource", "gsm_map.networkResource",
13840         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
13841         "", HFILL }},
13842     { &hf_gsm_map_extensibleSystemFailureParam,
13843       { "extensibleSystemFailureParam", "gsm_map.extensibleSystemFailureParam",
13844         FT_NONE, BASE_NONE, NULL, 0,
13845         "SystemFailureParam/extensibleSystemFailureParam", HFILL }},
13846     { &hf_gsm_map_unknownSubscriberDiagnostic,
13847       { "unknownSubscriberDiagnostic", "gsm_map.unknownSubscriberDiagnostic",
13848         FT_UINT32, BASE_DEC, VALS(gsm_map_T_unknownSubscriberDiagnostic_vals), 0,
13849         "UnknownSubscriberParam/unknownSubscriberDiagnostic", HFILL }},
13850     { &hf_gsm_map_roamingNotAllowedCause,
13851       { "roamingNotAllowedCause", "gsm_map.roamingNotAllowedCause",
13852         FT_UINT32, BASE_DEC, VALS(gsm_map_T_roamingNotAllowedCause_vals), 0,
13853         "RoamingNotAllowedParam/roamingNotAllowedCause", HFILL }},
13854     { &hf_gsm_map_absentSubscriberReason,
13855       { "absentSubscriberReason", "gsm_map.absentSubscriberReason",
13856         FT_UINT32, BASE_DEC, VALS(gsm_map_T_absentSubscriberReason_vals), 0,
13857         "AbsentSubscriberParam/absentSubscriberReason", HFILL }},
13858     { &hf_gsm_map_ccbs_Busy,
13859       { "ccbs-Busy", "gsm_map.ccbs_Busy",
13860         FT_NONE, BASE_NONE, NULL, 0,
13861         "BusySubscriberParam/ccbs-Busy", HFILL }},
13862     { &hf_gsm_map_callBarringCause,
13863       { "callBarringCause", "gsm_map.callBarringCause",
13864         FT_UINT32, BASE_DEC, VALS(gsm_map_CallBarringCause_vals), 0,
13865         "", HFILL }},
13866     { &hf_gsm_map_extensibleCallBarredParam,
13867       { "extensibleCallBarredParam", "gsm_map.extensibleCallBarredParam",
13868         FT_NONE, BASE_NONE, NULL, 0,
13869         "CallBarredParam/extensibleCallBarredParam", HFILL }},
13870     { &hf_gsm_map_unauthorisedMessageOriginator,
13871       { "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator",
13872         FT_NONE, BASE_NONE, NULL, 0,
13873         "CallBarredParam/extensibleCallBarredParam/unauthorisedMessageOriginator", HFILL }},
13874     { &hf_gsm_map_cug_RejectCause,
13875       { "cug-RejectCause", "gsm_map.cug_RejectCause",
13876         FT_UINT32, BASE_DEC, VALS(gsm_map_T_cug_RejectCause_vals), 0,
13877         "Cug-RejectParam/cug-RejectCause", HFILL }},
13878     { &hf_gsm_map_gprsConnectionSuspended,
13879       { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
13880         FT_NONE, BASE_NONE, NULL, 0,
13881         "SubBusyForMT-SMS-Param/gprsConnectionSuspended", HFILL }},
13882     { &hf_gsm_map_sm_EnumeratedDeliveryFailureCause,
13883       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause",
13884         FT_UINT32, BASE_DEC, VALS(gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals), 0,
13885         "Sm-DeliveryFailureCause/sm-EnumeratedDeliveryFailureCause", HFILL }},
13886     { &hf_gsm_map_diagnosticInfo,
13887       { "diagnosticInfo", "gsm_map.diagnosticInfo",
13888         FT_BYTES, BASE_HEX, NULL, 0,
13889         "Sm-DeliveryFailureCause/diagnosticInfo", HFILL }},
13890     { &hf_gsm_map_unauthorizedLCSClient_Diagnostic,
13891       { "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic",
13892         FT_UINT32, BASE_DEC, VALS(gsm_map_T_unauthorizedLCSClient_Diagnostic_vals), 0,
13893         "UnauthorizedLCSClient-Param/unauthorizedLCSClient-Diagnostic", HFILL }},
13894     { &hf_gsm_map_positionMethodFailure_Diagnostic,
13895       { "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic",
13896         FT_UINT32, BASE_DEC, VALS(gsm_map_T_positionMethodFailure_Diagnostic_vals), 0,
13897         "PositionMethodFailure-Param/positionMethodFailure-Diagnostic", HFILL }},
13898     { &hf_gsm_map_privateExtensionList,
13899       { "privateExtensionList", "gsm_map.privateExtensionList",
13900         FT_NONE, BASE_NONE, NULL, 0,
13901         "ExtensionContainer/privateExtensionList", HFILL }},
13902     { &hf_gsm_map_pcsExtensions,
13903       { "pcsExtensions", "gsm_map.pcsExtensions",
13904         FT_NONE, BASE_NONE, NULL, 0,
13905         "ExtensionContainer/pcsExtensions", HFILL }},
13906     { &hf_gsm_map_SupportedCamelPhases_phase1,
13907       { "phase1", "gsm_map.phase1",
13908         FT_BOOLEAN, 8, NULL, 0x80,
13909         "", HFILL }},
13910     { &hf_gsm_map_SupportedCamelPhases_phase2,
13911       { "phase2", "gsm_map.phase2",
13912         FT_BOOLEAN, 8, NULL, 0x40,
13913         "", HFILL }},
13914     { &hf_gsm_map_SupportedCamelPhases_phase3,
13915       { "phase3", "gsm_map.phase3",
13916         FT_BOOLEAN, 8, NULL, 0x20,
13917         "", HFILL }},
13918     { &hf_gsm_map_SupportedCamelPhases_phase4,
13919       { "phase4", "gsm_map.phase4",
13920         FT_BOOLEAN, 8, NULL, 0x10,
13921         "", HFILL }},
13922     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet1,
13923       { "lcsCapabilitySet1", "gsm_map.lcsCapabilitySet1",
13924         FT_BOOLEAN, 8, NULL, 0x80,
13925         "", HFILL }},
13926     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet2,
13927       { "lcsCapabilitySet2", "gsm_map.lcsCapabilitySet2",
13928         FT_BOOLEAN, 8, NULL, 0x40,
13929         "", HFILL }},
13930     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet3,
13931       { "lcsCapabilitySet3", "gsm_map.lcsCapabilitySet3",
13932         FT_BOOLEAN, 8, NULL, 0x20,
13933         "", HFILL }},
13934     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet4,
13935       { "lcsCapabilitySet4", "gsm_map.lcsCapabilitySet4",
13936         FT_BOOLEAN, 8, NULL, 0x10,
13937         "", HFILL }},
13938     { &hf_gsm_map_T_offeredCamel4CSIs_o_csi,
13939       { "o-csi", "gsm_map.o-csi",
13940         FT_BOOLEAN, 8, NULL, 0x80,
13941         "", HFILL }},
13942     { &hf_gsm_map_T_offeredCamel4CSIs_d_csi,
13943       { "d-csi", "gsm_map.d-csi",
13944         FT_BOOLEAN, 8, NULL, 0x40,
13945         "", HFILL }},
13946     { &hf_gsm_map_T_offeredCamel4CSIs_vt_csi,
13947       { "vt-csi", "gsm_map.vt-csi",
13948         FT_BOOLEAN, 8, NULL, 0x20,
13949         "", HFILL }},
13950     { &hf_gsm_map_T_offeredCamel4CSIs_t_csi,
13951       { "t-csi", "gsm_map.t-csi",
13952         FT_BOOLEAN, 8, NULL, 0x10,
13953         "", HFILL }},
13954     { &hf_gsm_map_T_offeredCamel4CSIs_mt_sms_csi,
13955       { "mt-sms-csi", "gsm_map.mt-sms-csi",
13956         FT_BOOLEAN, 8, NULL, 0x08,
13957         "", HFILL }},
13958     { &hf_gsm_map_T_offeredCamel4CSIs_mg_csi,
13959       { "mg-csi", "gsm_map.mg-csi",
13960         FT_BOOLEAN, 8, NULL, 0x04,
13961         "", HFILL }},
13962     { &hf_gsm_map_T_offeredCamel4CSIs_psi_enhancements,
13963       { "psi-enhancements", "gsm_map.psi-enhancements",
13964         FT_BOOLEAN, 8, NULL, 0x02,
13965         "", HFILL }},
13966     { &hf_gsm_map_T_requestedEquipmentInfo_equipmentStatus,
13967       { "equipmentStatus", "gsm_map.equipmentStatus",
13968         FT_BOOLEAN, 8, NULL, 0x80,
13969         "", HFILL }},
13970     { &hf_gsm_map_T_requestedEquipmentInfo_bmuef,
13971       { "bmuef", "gsm_map.bmuef",
13972         FT_BOOLEAN, 8, NULL, 0x40,
13973         "", HFILL }},
13974     { &hf_gsm_map_Odb_GeneralData_allOGCallsBarred,
13975       { "allOGCallsBarred", "gsm_map.allOGCallsBarred",
13976         FT_BOOLEAN, 8, NULL, 0x80,
13977         "", HFILL }},
13978     { &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred,
13979       { "internationalOGCallsBarred", "gsm_map.internationalOGCallsBarred",
13980         FT_BOOLEAN, 8, NULL, 0x40,
13981         "", HFILL }},
13982     { &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred,
13983       { "internationalOGCallsNotToHPLMNCountryBarred", "gsm_map.internationalOGCallsNotToHPLMNCountryBarred",
13984         FT_BOOLEAN, 8, NULL, 0x20,
13985         "", HFILL }},
13986     { &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred,
13987       { "premiumRateInformationOGCallsBarred", "gsm_map.premiumRateInformationOGCallsBarred",
13988         FT_BOOLEAN, 8, NULL, 0x10,
13989         "", HFILL }},
13990     { &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred,
13991       { "premiumRateEntertainementOGCallsBarred", "gsm_map.premiumRateEntertainementOGCallsBarred",
13992         FT_BOOLEAN, 8, NULL, 0x08,
13993         "", HFILL }},
13994     { &hf_gsm_map_Odb_GeneralData_ssAccessBarred,
13995       { "ssAccessBarred", "gsm_map.ssAccessBarred",
13996         FT_BOOLEAN, 8, NULL, 0x04,
13997         "", HFILL }},
13998     { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred,
13999       { "interzonalOGCallsBarred", "gsm_map.interzonalOGCallsBarred",
14000         FT_BOOLEAN, 8, NULL, 0x02,
14001         "", HFILL }},
14002     { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred,
14003       { "interzonalOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsNotToHPLMNCountryBarred",
14004         FT_BOOLEAN, 8, NULL, 0x01,
14005         "", HFILL }},
14006     { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred,
14007       { "interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred",
14008         FT_BOOLEAN, 8, NULL, 0x80,
14009         "", HFILL }},
14010     { &hf_gsm_map_Odb_GeneralData_allECTBarred,
14011       { "allECTBarred", "gsm_map.allECTBarred",
14012         FT_BOOLEAN, 8, NULL, 0x40,
14013         "", HFILL }},
14014     { &hf_gsm_map_Odb_GeneralData_chargeableECTBarred,
14015       { "chargeableECTBarred", "gsm_map.chargeableECTBarred",
14016         FT_BOOLEAN, 8, NULL, 0x20,
14017         "", HFILL }},
14018     { &hf_gsm_map_Odb_GeneralData_internationalECTBarred,
14019       { "internationalECTBarred", "gsm_map.internationalECTBarred",
14020         FT_BOOLEAN, 8, NULL, 0x10,
14021         "", HFILL }},
14022     { &hf_gsm_map_Odb_GeneralData_interzonalECTBarred,
14023       { "interzonalECTBarred", "gsm_map.interzonalECTBarred",
14024         FT_BOOLEAN, 8, NULL, 0x08,
14025         "", HFILL }},
14026     { &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred,
14027       { "doublyChargeableECTBarred", "gsm_map.doublyChargeableECTBarred",
14028         FT_BOOLEAN, 8, NULL, 0x04,
14029         "", HFILL }},
14030     { &hf_gsm_map_Odb_GeneralData_multipleECTBarred,
14031       { "multipleECTBarred", "gsm_map.multipleECTBarred",
14032         FT_BOOLEAN, 8, NULL, 0x02,
14033         "", HFILL }},
14034     { &hf_gsm_map_Odb_GeneralData_allPacketOrientedServicesBarred,
14035       { "allPacketOrientedServicesBarred", "gsm_map.allPacketOrientedServicesBarred",
14036         FT_BOOLEAN, 8, NULL, 0x01,
14037         "", HFILL }},
14038     { &hf_gsm_map_Odb_GeneralData_roamerAccessToHPLMN_AP_Barred,
14039       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.roamerAccessToHPLMN-AP-Barred",
14040         FT_BOOLEAN, 8, NULL, 0x80,
14041         "", HFILL }},
14042     { &hf_gsm_map_Odb_GeneralData_roamerAccessToVPLMN_AP_Barred,
14043       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.roamerAccessToVPLMN-AP-Barred",
14044         FT_BOOLEAN, 8, NULL, 0x40,
14045         "", HFILL }},
14046     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNOG_CallsBarred,
14047       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.roamingOutsidePLMNOG-CallsBarred",
14048         FT_BOOLEAN, 8, NULL, 0x20,
14049         "", HFILL }},
14050     { &hf_gsm_map_Odb_GeneralData_allIC_CallsBarred,
14051       { "allIC-CallsBarred", "gsm_map.allIC-CallsBarred",
14052         FT_BOOLEAN, 8, NULL, 0x10,
14053         "", HFILL }},
14054     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNIC_CallsBarred,
14055       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.roamingOutsidePLMNIC-CallsBarred",
14056         FT_BOOLEAN, 8, NULL, 0x08,
14057         "", HFILL }},
14058     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
14059       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.roamingOutsidePLMNICountryIC-CallsBarred",
14060         FT_BOOLEAN, 8, NULL, 0x04,
14061         "", HFILL }},
14062     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_Barred,
14063       { "roamingOutsidePLMN-Barred", "gsm_map.roamingOutsidePLMN-Barred",
14064         FT_BOOLEAN, 8, NULL, 0x02,
14065         "", HFILL }},
14066     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_CountryBarred,
14067       { "roamingOutsidePLMN-CountryBarred", "gsm_map.roamingOutsidePLMN-CountryBarred",
14068         FT_BOOLEAN, 8, NULL, 0x01,
14069         "", HFILL }},
14070     { &hf_gsm_map_Odb_GeneralData_registrationAllCF_Barred,
14071       { "registrationAllCF-Barred", "gsm_map.registrationAllCF-Barred",
14072         FT_BOOLEAN, 8, NULL, 0x80,
14073         "", HFILL }},
14074     { &hf_gsm_map_Odb_GeneralData_registrationCFNotToHPLMN_Barred,
14075       { "registrationCFNotToHPLMN-Barred", "gsm_map.registrationCFNotToHPLMN-Barred",
14076         FT_BOOLEAN, 8, NULL, 0x40,
14077         "", HFILL }},
14078     { &hf_gsm_map_Odb_GeneralData_registrationInterzonalCF_Barred,
14079       { "registrationInterzonalCF-Barred", "gsm_map.registrationInterzonalCF-Barred",
14080         FT_BOOLEAN, 8, NULL, 0x20,
14081         "", HFILL }},
14082     { &hf_gsm_map_Odb_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
14083       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.registrationInterzonalCFNotToHPLMN-Barred",
14084         FT_BOOLEAN, 8, NULL, 0x10,
14085         "", HFILL }},
14086     { &hf_gsm_map_Odb_GeneralData_registrationInternationalCF_Barred,
14087       { "registrationInternationalCF-Barred", "gsm_map.registrationInternationalCF-Barred",
14088         FT_BOOLEAN, 8, NULL, 0x08,
14089         "", HFILL }},
14090     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1,
14091       { "plmnSpecificBarringType1", "gsm_map.plmnSpecificBarringType1",
14092         FT_BOOLEAN, 8, NULL, 0x80,
14093         "", HFILL }},
14094     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2,
14095       { "plmnSpecificBarringType2", "gsm_map.plmnSpecificBarringType2",
14096         FT_BOOLEAN, 8, NULL, 0x40,
14097         "", HFILL }},
14098     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3,
14099       { "plmnSpecificBarringType3", "gsm_map.plmnSpecificBarringType3",
14100         FT_BOOLEAN, 8, NULL, 0x20,
14101         "", HFILL }},
14102     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4,
14103       { "plmnSpecificBarringType4", "gsm_map.plmnSpecificBarringType4",
14104         FT_BOOLEAN, 8, NULL, 0x10,
14105         "", HFILL }},
14106     { &hf_gsm_map_ServiceIndicator_clirInvoked,
14107       { "clirInvoked", "gsm_map.clirInvoked",
14108         FT_BOOLEAN, 8, NULL, 0x80,
14109         "", HFILL }},
14110     { &hf_gsm_map_ServiceIndicator_camelInvoked,
14111       { "camelInvoked", "gsm_map.camelInvoked",
14112         FT_BOOLEAN, 8, NULL, 0x40,
14113         "", HFILL }},
14114     { &hf_gsm_map_T_mw_Status_scAddressNotIncluded,
14115       { "scAddressNotIncluded", "gsm_map.scAddressNotIncluded",
14116         FT_BOOLEAN, 8, NULL, 0x80,
14117         "", HFILL }},
14118     { &hf_gsm_map_T_mw_Status_mnrfSet,
14119       { "mnrfSet", "gsm_map.mnrfSet",
14120         FT_BOOLEAN, 8, NULL, 0x40,
14121         "", HFILL }},
14122     { &hf_gsm_map_T_mw_Status_mcefSet,
14123       { "mcefSet", "gsm_map.mcefSet",
14124         FT_BOOLEAN, 8, NULL, 0x20,
14125         "", HFILL }},
14126     { &hf_gsm_map_T_mw_Status_mnrgSet,
14127       { "mnrgSet", "gsm_map.mnrgSet",
14128         FT_BOOLEAN, 8, NULL, 0x10,
14129         "", HFILL }},
14130     { &hf_gsm_map_T_specificCSIDeletedList_o_csi,
14131       { "o-csi", "gsm_map.o-csi",
14132         FT_BOOLEAN, 8, NULL, 0x80,
14133         "", HFILL }},
14134     { &hf_gsm_map_T_specificCSIDeletedList_ss_csi,
14135       { "ss-csi", "gsm_map.ss-csi",
14136         FT_BOOLEAN, 8, NULL, 0x40,
14137         "", HFILL }},
14138     { &hf_gsm_map_T_specificCSIDeletedList_tif_csi,
14139       { "tif-csi", "gsm_map.tif-csi",
14140         FT_BOOLEAN, 8, NULL, 0x20,
14141         "", HFILL }},
14142     { &hf_gsm_map_T_specificCSIDeletedList_d_csi,
14143       { "d-csi", "gsm_map.d-csi",
14144         FT_BOOLEAN, 8, NULL, 0x10,
14145         "", HFILL }},
14146     { &hf_gsm_map_T_specificCSIDeletedList_vt_csi,
14147       { "vt-csi", "gsm_map.vt-csi",
14148         FT_BOOLEAN, 8, NULL, 0x08,
14149         "", HFILL }},
14150     { &hf_gsm_map_T_specificCSIDeletedList_mo_sms_csi,
14151       { "mo-sms-csi", "gsm_map.mo-sms-csi",
14152         FT_BOOLEAN, 8, NULL, 0x04,
14153         "", HFILL }},
14154     { &hf_gsm_map_T_specificCSIDeletedList_m_csi,
14155       { "m-csi", "gsm_map.m-csi",
14156         FT_BOOLEAN, 8, NULL, 0x02,
14157         "", HFILL }},
14158     { &hf_gsm_map_T_specificCSIDeletedList_gprs_csi,
14159       { "gprs-csi", "gsm_map.gprs-csi",
14160         FT_BOOLEAN, 8, NULL, 0x01,
14161         "", HFILL }},
14162     { &hf_gsm_map_T_specificCSIDeletedList_t_csi,
14163       { "t-csi", "gsm_map.t-csi",
14164         FT_BOOLEAN, 8, NULL, 0x80,
14165         "", HFILL }},
14166     { &hf_gsm_map_T_specificCSIDeletedList_mt_sms_csi,
14167       { "mt-sms-csi", "gsm_map.mt-sms-csi",
14168         FT_BOOLEAN, 8, NULL, 0x40,
14169         "", HFILL }},
14170     { &hf_gsm_map_T_specificCSIDeletedList_mg_csi,
14171       { "mg-csi", "gsm_map.mg-csi",
14172         FT_BOOLEAN, 8, NULL, 0x20,
14173         "", HFILL }},
14174     { &hf_gsm_map_T_specificCSIDeletedList_o_IM_CSI,
14175       { "o-IM-CSI", "gsm_map.o-IM-CSI",
14176         FT_BOOLEAN, 8, NULL, 0x10,
14177         "", HFILL }},
14178     { &hf_gsm_map_T_specificCSIDeletedList_d_IM_CSI,
14179       { "d-IM-CSI", "gsm_map.d-IM-CSI",
14180         FT_BOOLEAN, 8, NULL, 0x08,
14181         "", HFILL }},
14182     { &hf_gsm_map_T_specificCSIDeletedList_vt_IM_CSI,
14183       { "vt-IM-CSI", "gsm_map.vt-IM-CSI",
14184         FT_BOOLEAN, 8, NULL, 0x04,
14185         "", HFILL }},
14186     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase1,
14187       { "phase1", "gsm_map.phase1",
14188         FT_BOOLEAN, 8, NULL, 0x80,
14189         "", HFILL }},
14190     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase2,
14191       { "phase2", "gsm_map.phase2",
14192         FT_BOOLEAN, 8, NULL, 0x40,
14193         "", HFILL }},
14194     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase3,
14195       { "phase3", "gsm_map.phase3",
14196         FT_BOOLEAN, 8, NULL, 0x20,
14197         "", HFILL }},
14198     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase4,
14199       { "phase4", "gsm_map.phase4",
14200         FT_BOOLEAN, 8, NULL, 0x10,
14201         "", HFILL }},
14202     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase1,
14203       { "phase1", "gsm_map.phase1",
14204         FT_BOOLEAN, 8, NULL, 0x80,
14205         "", HFILL }},
14206     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase2,
14207       { "phase2", "gsm_map.phase2",
14208         FT_BOOLEAN, 8, NULL, 0x40,
14209         "", HFILL }},
14210     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase3,
14211       { "phase3", "gsm_map.phase3",
14212         FT_BOOLEAN, 8, NULL, 0x20,
14213         "", HFILL }},
14214     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase4,
14215       { "phase4", "gsm_map.phase4",
14216         FT_BOOLEAN, 8, NULL, 0x10,
14217         "", HFILL }},
14218     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_o_csi,
14219       { "o-csi", "gsm_map.o-csi",
14220         FT_BOOLEAN, 8, NULL, 0x80,
14221         "", HFILL }},
14222     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_d_csi,
14223       { "d-csi", "gsm_map.d-csi",
14224         FT_BOOLEAN, 8, NULL, 0x40,
14225         "", HFILL }},
14226     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_vt_csi,
14227       { "vt-csi", "gsm_map.vt-csi",
14228         FT_BOOLEAN, 8, NULL, 0x20,
14229         "", HFILL }},
14230     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_t_csi,
14231       { "t-csi", "gsm_map.t-csi",
14232         FT_BOOLEAN, 8, NULL, 0x10,
14233         "", HFILL }},
14234     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_mt_sms_csi,
14235       { "mt-sms-csi", "gsm_map.mt-sms-csi",
14236         FT_BOOLEAN, 8, NULL, 0x08,
14237         "", HFILL }},
14238     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_mg_csi,
14239       { "mg-csi", "gsm_map.mg-csi",
14240         FT_BOOLEAN, 8, NULL, 0x04,
14241         "", HFILL }},
14242     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_psi_enhancements,
14243       { "psi-enhancements", "gsm_map.psi-enhancements",
14244         FT_BOOLEAN, 8, NULL, 0x02,
14245         "", HFILL }},
14246     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_o_csi,
14247       { "o-csi", "gsm_map.o-csi",
14248         FT_BOOLEAN, 8, NULL, 0x80,
14249         "", HFILL }},
14250     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_d_csi,
14251       { "d-csi", "gsm_map.d-csi",
14252         FT_BOOLEAN, 8, NULL, 0x40,
14253         "", HFILL }},
14254     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_vt_csi,
14255       { "vt-csi", "gsm_map.vt-csi",
14256         FT_BOOLEAN, 8, NULL, 0x20,
14257         "", HFILL }},
14258     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_t_csi,
14259       { "t-csi", "gsm_map.t-csi",
14260         FT_BOOLEAN, 8, NULL, 0x10,
14261         "", HFILL }},
14262     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mt_sms_csi,
14263       { "mt-sms-csi", "gsm_map.mt-sms-csi",
14264         FT_BOOLEAN, 8, NULL, 0x08,
14265         "", HFILL }},
14266     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mg_csi,
14267       { "mg-csi", "gsm_map.mg-csi",
14268         FT_BOOLEAN, 8, NULL, 0x04,
14269         "", HFILL }},
14270     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_psi_enhancements,
14271       { "psi-enhancements", "gsm_map.psi-enhancements",
14272         FT_BOOLEAN, 8, NULL, 0x02,
14273         "", HFILL }},
14274
14275 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
14276
14277   };
14278
14279   /* List of subtrees */
14280   static gint *ett[] = {
14281     &ett_gsm_map,
14282     &ett_gsm_map_InvokeId,
14283     &ett_gsm_map_InvokePDU,
14284     &ett_gsm_map_ReturnResultPDU,
14285         &ett_gsm_map_ReturnErrorPDU,
14286     &ett_gsm_map_ReturnResult_result,
14287         &ett_gsm_map_ReturnError_result,
14288     &ett_gsm_map_GSMMAPPDU,
14289
14290 /*--- Included file: packet-gsm_map-ettarr.c ---*/
14291
14292     &ett_gsm_map_Bss_APDU,
14293     &ett_gsm_map_An_APDU,
14294     &ett_gsm_map_SupportedCamelPhases,
14295     &ett_gsm_map_Vlr_Capability,
14296     &ett_gsm_map_T_superChargerSupportedInServingNetworkEntity,
14297     &ett_gsm_map_T_supportedLCS_CapabilitySets,
14298     &ett_gsm_map_T_offeredCamel4CSIs,
14299     &ett_gsm_map_UpdateLocationArg,
14300     &ett_gsm_map_T_add_info,
14301     &ett_gsm_map_UpdateLocationRes,
14302     &ett_gsm_map_PrivateExtensionList,
14303     &ett_gsm_map_PrivateExtension,
14304     &ett_gsm_map_PcsExtensions,
14305     &ett_gsm_map_CancelLocationArg,
14306     &ett_gsm_map_T_identity,
14307     &ett_gsm_map_T_imsi_WithLMSI,
14308     &ett_gsm_map_CancelLocationRes,
14309     &ett_gsm_map_PurgeMS_Arg,
14310     &ett_gsm_map_PurgeMS_Res,
14311     &ett_gsm_map_SendIdentificationRes,
14312     &ett_gsm_map_SendId_authenticationSetList,
14313     &ett_gsm_map_T_authenticationSetList_item,
14314     &ett_gsm_map_PrepareHO_Arg,
14315     &ett_gsm_map_PrepareHandoverV3Arg,
14316     &ett_gsm_map_T_allowedUMTS_Algorithms,
14317     &ett_gsm_map_T_radioResourceList,
14318     &ett_gsm_map_T_radioResourceList_item,
14319     &ett_gsm_map_T_bssmap_ServiceHandoverList,
14320     &ett_gsm_map_T_bssmap_ServiceHandoverList_item,
14321     &ett_gsm_map_T_iuSupportedCodecsList,
14322     &ett_gsm_map_T_utranCodecList,
14323     &ett_gsm_map_T_geranCodecList,
14324     &ett_gsm_map_T_uesbi_Iu,
14325     &ett_gsm_map_PrepareHO_Res,
14326     &ett_gsm_map_PrepareHandoverV3Res,
14327     &ett_gsm_map_T_relocationNumberList,
14328     &ett_gsm_map_T_relocationNumberList_item,
14329     &ett_gsm_map_T_selectedUMTS_Algorithms,
14330     &ett_gsm_map_T_chosenRadioResourceInformation,
14331     &ett_gsm_map_T_iuAvailableCodecsList,
14332     &ett_gsm_map_SendEndSignalV9Arg,
14333     &ett_gsm_map_PrepareSubsequentHO_Arg,
14334     &ett_gsm_map_SendAuthenticationInfoArgV3,
14335     &ett_gsm_map_T_re_synchronisationInfo,
14336     &ett_gsm_map_SendAuthenticationInfoRes,
14337     &ett_gsm_map_SendAuthenticationInfoRes_item,
14338     &ett_gsm_map_SendAuthenticationInfoV3Res,
14339     &ett_gsm_map_T_authenticationSetList,
14340     &ett_gsm_map_T_tripletList,
14341     &ett_gsm_map_T_tripletList_item,
14342     &ett_gsm_map_T_quintupletList,
14343     &ett_gsm_map_T_quintupletList_item,
14344     &ett_gsm_map_CheckIMEIv2Arg,
14345     &ett_gsm_map_T_requestedEquipmentInfo,
14346     &ett_gsm_map_ChekIMEIv3Res,
14347     &ett_gsm_map_T_bmuef,
14348     &ett_gsm_map_BasicService,
14349     &ett_gsm_map_BasicServiceGroupList,
14350     &ett_gsm_map_Odb_GeneralData,
14351     &ett_gsm_map_Odb_HPLMN_Data,
14352     &ett_gsm_map_BcsmCamelTDPData,
14353     &ett_gsm_map_BcsmCamelTDPDataList,
14354     &ett_gsm_map_O_CSI,
14355     &ett_gsm_map_InsertSubscriberDataArg,
14356     &ett_gsm_map_bearerServiceList,
14357     &ett_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice,
14358     &ett_gsm_map_T_provisionedSS,
14359     &ett_gsm_map_T_provisionedSS_item,
14360     &ett_gsm_map_T_cug_Info,
14361     &ett_gsm_map_T_cug_SubscriptionList,
14362     &ett_gsm_map_T_cug_SubscriptionList_item,
14363     &ett_gsm_map_T_cug_FeatureList,
14364     &ett_gsm_map_T_cug_FeatureList_item,
14365     &ett_gsm_map_T_emlpp_Info,
14366     &ett_gsm_map_T_regionalSubscriptionData,
14367     &ett_gsm_map_T_vbsSubscriptionData,
14368     &ett_gsm_map_T_vbsSubscriptionData_item,
14369     &ett_gsm_map_T_vgcsSubscriptionData,
14370     &ett_gsm_map_T_vgcsSubscriptionData_item,
14371     &ett_gsm_map_T_vlrCamelSubscriptionInfo,
14372     &ett_gsm_map_ss_CSI,
14373     &ett_gsm_map_T_gprsSubscriptionData,
14374     &ett_gsm_map_T_gprsDataList,
14375     &ett_gsm_map_T_gprsDataList_item,
14376     &ett_gsm_map_T_lsaInformation,
14377     &ett_gsm_map_T_lsaDataList,
14378     &ett_gsm_map_T_lsaDataList_item,
14379     &ett_gsm_map_T_lcsInformation,
14380     &ett_gsm_map_T_gmlc_List,
14381     &ett_gsm_map_T_lcs_PrivacyExceptionList,
14382     &ett_gsm_map_T_lcs_PrivacyExceptionList_item,
14383     &ett_gsm_map_T_externalClientList,
14384     &ett_gsm_map_T_externalClientList_item,
14385     &ett_gsm_map_T_clientIdentity,
14386     &ett_gsm_map_T_plmnClientList,
14387     &ett_gsm_map_T_molr_List,
14388     &ett_gsm_map_T_molr_List_item,
14389     &ett_gsm_map_InsertSubscriberDataRes,
14390     &ett_gsm_map_ss_List,
14391     &ett_gsm_map_Ss_CamelData,
14392     &ett_gsm_map_T_ss_EventList,
14393     &ett_gsm_map_CallBarringInfo,
14394     &ett_gsm_map_CallBarringFeatureList,
14395     &ett_gsm_map_CallBarringFeatureList_item,
14396     &ett_gsm_map_ForwardingFeatureList,
14397     &ett_gsm_map_DestinationNumberCriteria,
14398     &ett_gsm_map_T_destinationNumberList,
14399     &ett_gsm_map_T_destinationNumberLengthList,
14400     &ett_gsm_map_ForwardingInfo,
14401     &ett_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList,
14402     &ett_gsm_map_Naea_PreferredCI,
14403     &ett_gsm_map_O_BcsmCamelTDP_CriteriaList,
14404     &ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
14405     &ett_gsm_map_Ss_SubscriptionOption,
14406     &ett_gsm_map_DeleteSubscriberDataArg,
14407     &ett_gsm_map_T_gprsSubscriptionDataWithdraw,
14408     &ett_gsm_map_T_contextIdList,
14409     &ett_gsm_map_T_lsaInformationWithdraw,
14410     &ett_gsm_map_T_lsaIdentityList,
14411     &ett_gsm_map_DeleteSubscriberDataRes,
14412     &ett_gsm_map_ResetArg,
14413     &ett_gsm_map_T_hlr_List,
14414     &ett_gsm_map_RestoreDataArg,
14415     &ett_gsm_map_RestoreDataRes,
14416     &ett_gsm_map_ActivateTraceModeArg,
14417     &ett_gsm_map_ActivateTraceModeRes,
14418     &ett_gsm_map_DeactivateTraceModeArg,
14419     &ett_gsm_map_DeactivateTraceModeRes,
14420     &ett_gsm_map_SendRoutingInfoArg,
14421     &ett_gsm_map_T_camelInfo,
14422     &ett_gsm_map_SendRoutingInfoRes,
14423     &ett_gsm_map_T_extendedRoutingInfo,
14424     &ett_gsm_map_T_routingInfo,
14425     &ett_gsm_map_T_camelRoutingInfo,
14426     &ett_gsm_map_T_gmscCamelSubscriptionInfo,
14427     &ett_gsm_map_t_CSI,
14428     &ett_gsm_map_T_ccbs_Indicators,
14429     &ett_gsm_map_SubscriberState,
14430     &ett_gsm_map_LocationInformation,
14431     &ett_gsm_map_T_cellIdOrLAI,
14432     &ett_gsm_map_SubscriberInfo,
14433     &ett_gsm_map_T_locationInformationGPRS,
14434     &ett_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI,
14435     &ett_gsm_map_T_ps_SubscriberState,
14436     &ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging,
14437     &ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item,
14438     &ett_gsm_map_T_ps_PDP_ActiveReachableForPaging,
14439     &ett_gsm_map_T_ps_PDP_ActiveReachableForPaging_item,
14440     &ett_gsm_map_T_gprs_MS_Class,
14441     &ett_gsm_map_T_mnpInfoRes,
14442     &ett_gsm_map_AdditionalSignalInfo,
14443     &ett_gsm_map_Cug_CheckInfo,
14444     &ett_gsm_map_ForwardingData,
14445     &ett_gsm_map_ProvideRoamingNumberArg,
14446     &ett_gsm_map_ProvideRoamingNumberRes,
14447     &ett_gsm_map_ResumeCallHandlingArg,
14448     &ett_gsm_map_T_uu_Data,
14449     &ett_gsm_map_ResumeCallHandlingRes,
14450     &ett_gsm_map_ProvideSIWFSNumberArg,
14451     &ett_gsm_map_ProvideSIWFSNumberRes,
14452     &ett_gsm_map_SIWFSSignallingModifyArg,
14453     &ett_gsm_map_SIWFSSignallingModifyRes,
14454     &ett_gsm_map_SetReportingStateArg,
14455     &ett_gsm_map_SetReportingStateRes,
14456     &ett_gsm_map_StatusReportArg,
14457     &ett_gsm_map_T_eventReportData,
14458     &ett_gsm_map_T_callReportdata,
14459     &ett_gsm_map_StatusReportRes,
14460     &ett_gsm_map_RemoteUserFreeArg,
14461     &ett_gsm_map_RemoteUserFreeRes,
14462     &ett_gsm_map_Ss_Data,
14463     &ett_gsm_map_RegisterSS_Arg,
14464     &ett_gsm_map_Ss_Info,
14465     &ett_gsm_map_Ccbs_Feature,
14466     &ett_gsm_map_Ss_ForBS,
14467     &ett_gsm_map_InterrogateSS_Res,
14468     &ett_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList,
14469     &ett_gsm_map_T_genericServiceInfo,
14470     &ett_gsm_map_T_ccbs_FeatureList,
14471     &ett_gsm_map_T_ccbs_FeatureList_item,
14472     &ett_gsm_map_Ussd_Arg,
14473     &ett_gsm_map_Ussd_Res,
14474     &ett_gsm_map_ServiceIndicator,
14475     &ett_gsm_map_RegisterCC_EntryArg,
14476     &ett_gsm_map_T_ccbs_Data,
14477     &ett_gsm_map_RegisterCC_EntryRes,
14478     &ett_gsm_map_EraseCC_EntryArg,
14479     &ett_gsm_map_EraseCC_EntryRes,
14480     &ett_gsm_map_RoutingInfoForSMArg,
14481     &ett_gsm_map_RoutingInfoForSMRes,
14482     &ett_gsm_map_T_locationInfoWithLMSI,
14483     &ett_gsm_map_T_additional_Number,
14484     &ett_gsm_map_Mo_forwardSM_Arg,
14485     &ett_gsm_map_Mo_forwardSM_Res,
14486     &ett_gsm_map_Sm_RP_OA,
14487     &ett_gsm_map_Sm_RP_DA,
14488     &ett_gsm_map_Mt_forwardSM_Arg,
14489     &ett_gsm_map_Mt_forwardSM_Res,
14490     &ett_gsm_map_ReportSM_DeliveryStatusArg,
14491     &ett_gsm_map_ReportSM_DeliveryStatusRes,
14492     &ett_gsm_map_InformServiceCentreArg,
14493     &ett_gsm_map_T_mw_Status,
14494     &ett_gsm_map_AlertServiceCentreArg,
14495     &ett_gsm_map_ReadyForSM_Arg,
14496     &ett_gsm_map_ReadyForSM_Res,
14497     &ett_gsm_map_ProvideSubscriberInfoArg,
14498     &ett_gsm_map_ProvideSubscriberInfoRes,
14499     &ett_gsm_map_RequestedInfo,
14500     &ett_gsm_map_AnyTimeInterrogationArg,
14501     &ett_gsm_map_AnyTimeInterrogationRes,
14502     &ett_gsm_map_AnyTimeSubscriptionInterrogationArg,
14503     &ett_gsm_map_T_requestedSubscriptionInfo,
14504     &ett_gsm_map_T_requestedSS_Info,
14505     &ett_gsm_map_AnyTimeSubscriptionInterrogationRes,
14506     &ett_gsm_map_T_callForwardingData,
14507     &ett_gsm_map_T_callBarringData,
14508     &ett_gsm_map_T_odb_Info,
14509     &ett_gsm_map_T_camel_SubscriptionInfo,
14510     &ett_gsm_map_T_d_CSI,
14511     &ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList,
14512     &ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item,
14513     &ett_gsm_map_T_vt_CSI,
14514     &ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList,
14515     &ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item,
14516     &ett_gsm_map_T_gprs_CSI,
14517     &ett_gsm_map_T_gprs_CamelTDPDataList,
14518     &ett_gsm_map_T_gprs_CamelTDPDataList_item,
14519     &ett_gsm_map_T_mo_sms_CSI,
14520     &ett_gsm_map_T_m_CSI,
14521     &ett_gsm_map_T_specificCSIDeletedList,
14522     &ett_gsm_map_T_mt_sms_CSI,
14523     &ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList,
14524     &ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item,
14525     &ett_gsm_map_T_tpdu_TypeCriterion,
14526     &ett_gsm_map_T_mg_csi,
14527     &ett_gsm_map_T_o_IM_CSI,
14528     &ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList,
14529     &ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item,
14530     &ett_gsm_map_T_d_IM_CSI,
14531     &ett_gsm_map_T_vt_IM_CSI,
14532     &ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
14533     &ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item,
14534     &ett_gsm_map_T_supportedVLR_CAMEL_Phases,
14535     &ett_gsm_map_T_supportedSGSN_CAMEL_Phases,
14536     &ett_gsm_map_T_offeredCamel4CSIsInVLR,
14537     &ett_gsm_map_T_offeredCamel4CSIsInSGSN,
14538     &ett_gsm_map_Sms_CAMEL_TDP_DataList,
14539     &ett_gsm_map_Sms_CAMEL_TDP_DataList_item,
14540     &ett_gsm_map_T_CauseValueCriteria,
14541     &ett_gsm_map_O_CauseValueCriteria,
14542     &ett_gsm_map_MobilityTriggers,
14543     &ett_gsm_map_BasicServiceCriteria,
14544     &ett_gsm_map_BasicServiceCriteria_item,
14545     &ett_gsm_map_Dp_AnalysedInfoCriteriaList,
14546     &ett_gsm_map_Dp_AnalysedInfoCriteriaList_item,
14547     &ett_gsm_map_SubscriberIdentity,
14548     &ett_gsm_map_AnyTimeModificationArg,
14549     &ett_gsm_map_T_modificationRequestFor_CF_Info,
14550     &ett_gsm_map_BasicService_ext,
14551     &ett_gsm_map_T_modificationRequestFor_CB_Info,
14552     &ett_gsm_map_T_modificationRequestFor_CSI,
14553     &ett_gsm_map_T_modificationRequestFor_ODB_data,
14554     &ett_gsm_map_AnyTimeModificationRes,
14555     &ett_gsm_map_Odb_data,
14556     &ett_gsm_map_Ss_InvocationNotificationArg,
14557     &ett_gsm_map_T_ss_EventSpecification,
14558     &ett_gsm_map_Ss_InvocationNotificationRes,
14559     &ett_gsm_map_PrepareGroupCallArg,
14560     &ett_gsm_map_PrepareGroupCallRes,
14561     &ett_gsm_map_SendGroupCallEndSignalArg,
14562     &ett_gsm_map_SendGroupCallEndSignalRes,
14563     &ett_gsm_map_ProcessGroupCallSignallingArg,
14564     &ett_gsm_map_ForwardGroupCallSignallingArg,
14565     &ett_gsm_map_UpdateGprsLocationArg,
14566     &ett_gsm_map_T_sgsn_Capability,
14567     &ett_gsm_map_UpdateGprsLocationRes,
14568     &ett_gsm_map_SendRoutingInfoForGprsArg,
14569     &ett_gsm_map_SendRoutingInfoForGprsRes,
14570     &ett_gsm_map_FailureReportArg,
14571     &ett_gsm_map_FailureReportRes,
14572     &ett_gsm_map_NoteMsPresentForGprsArg,
14573     &ett_gsm_map_NoteMsPresentForGprsRes,
14574     &ett_gsm_map_LcsClientExternalID,
14575     &ett_gsm_map_LcsClientName,
14576     &ett_gsm_map_Lcs_ClientID,
14577     &ett_gsm_map_LcsLocationInfo,
14578     &ett_gsm_map_ProvideSubscriberLocation_Arg,
14579     &ett_gsm_map_T_locationType,
14580     &ett_gsm_map_T_lcs_QoS,
14581     &ett_gsm_map_T_responseTime,
14582     &ett_gsm_map_ProvideSubscriberLocation_Res,
14583     &ett_gsm_map_TargetMS,
14584     &ett_gsm_map_RoutingInfoForLCS_Arg,
14585     &ett_gsm_map_RoutingInfoForLCS_Res,
14586     &ett_gsm_map_SubscriberLocationReport_Arg,
14587     &ett_gsm_map_SubscriberLocationReport_Res,
14588     &ett_gsm_map_SystemFailureParam,
14589     &ett_gsm_map_T_extensibleSystemFailureParam,
14590     &ett_gsm_map_DataMissingParam,
14591     &ett_gsm_map_UnexpectedDataParam,
14592     &ett_gsm_map_FacilityNotSupParam,
14593     &ett_gsm_map_IncompatibleTerminalParam,
14594     &ett_gsm_map_ResourceLimitationParam,
14595     &ett_gsm_map_UnknownSubscriberParam,
14596     &ett_gsm_map_NumberChangedParam,
14597     &ett_gsm_map_UnidentifiedSubParam,
14598     &ett_gsm_map_RoamingNotAllowedParam,
14599     &ett_gsm_map_IllegalSubscriberParam,
14600     &ett_gsm_map_IllegalEquipmentParam,
14601     &ett_gsm_map_BearerServNotProvParam,
14602     &ett_gsm_map_TeleservNotProvParam,
14603     &ett_gsm_map_TracingBufferFullParam,
14604     &ett_gsm_map_NoRoamingNbParam,
14605     &ett_gsm_map_AbsentSubscriberParam,
14606     &ett_gsm_map_BusySubscriberParam,
14607     &ett_gsm_map_NoSubscriberReplyParam,
14608     &ett_gsm_map_CallBarredParam,
14609     &ett_gsm_map_T_extensibleCallBarredParam,
14610     &ett_gsm_map_ForwardingFailedParam,
14611     &ett_gsm_map_Or_NotAllowedParam,
14612     &ett_gsm_map_ForwardingViolationParam,
14613     &ett_gsm_map_Cug_RejectParam,
14614     &ett_gsm_map_Ati_NotAllowedParam,
14615     &ett_gsm_map_NoGroupCallNbParam,
14616     &ett_gsm_map_Ss_IncompatibilityCause,
14617     &ett_gsm_map_ShortTermDenialParam,
14618     &ett_gsm_map_LongTermDenialParam,
14619     &ett_gsm_map_SubBusyForMT_SMS_Param,
14620     &ett_gsm_map_Sm_DeliveryFailureCause,
14621     &ett_gsm_map_MessageWaitListFullParam,
14622     &ett_gsm_map_AbsentSubscriberSM_Param,
14623     &ett_gsm_map_UnauthorizedRequestingNetwork_Param,
14624     &ett_gsm_map_UnauthorizedLCSClient_Param,
14625     &ett_gsm_map_PositionMethodFailure_Param,
14626     &ett_gsm_map_UnknownOrUnreachableLCSClient_Param,
14627     &ett_gsm_map_ExtensionContainer,
14628
14629 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
14630
14631   };
14632
14633   /* Register protocol */
14634   proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
14635 /*XXX  register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);*/
14636   /* Register fields and subtrees */
14637   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
14638   proto_register_subtree_array(ett, array_length(ett));
14639
14640   sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
14641                                                  "GSM SMS TPDU", FT_UINT8,
14642                                                  BASE_DEC);
14643
14644   gsm_map_tap = register_tap("gsm_map");
14645   register_ber_oid_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" );
14646   register_ber_oid_name("0.4.0.0.1.0.1.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version2(2)" );
14647   register_ber_oid_name("0.4.0.0.1.0.2.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version3(3)" );
14648   register_ber_oid_name("0.4.0.0.1.0.2.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version2(2)" );
14649   register_ber_oid_name("0.4.0.0.1.0.2.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version1(1)" );
14650   register_ber_oid_name("0.4.0.0.1.0.3.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version3(3)" );
14651   register_ber_oid_name("0.4.0.0.1.0.3.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version2(2)" );
14652   register_ber_oid_name("0.4.0.0.1.0.3.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version1(1)" );
14653   register_ber_oid_name("0.4.0.0.1.0.5.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version3(3)" );
14654   register_ber_oid_name("0.4.0.0.1.0.5.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version2(2)" );
14655   register_ber_oid_name("0.4.0.0.1.0.5.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version1(1)" );
14656   register_ber_oid_name("0.4.0.0.1.0.10.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reset(10) version2(2)" );
14657   register_ber_oid_name("0.4.0.0.1.0.10.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reset(10) version1(1)" );
14658   register_ber_oid_name("0.4.0.0.1.0.11.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version3(3)" );
14659   register_ber_oid_name("0.4.0.0.1.0.11.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version2(2)" );
14660   register_ber_oid_name("0.4.0.0.1.0.11.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version1(1)" );
14661   register_ber_oid_name("0.4.0.0.1.0.26.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) imsiRetrieval(26) version2(2)" );
14662   register_ber_oid_name("0.4.0.0.1.0.13.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) equipmentMngt(13) version2(2)" );
14663   register_ber_oid_name("0.4.0.0.1.0.13.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) equipmentMngt(13) version1(1)" );
14664   register_ber_oid_name("0.4.0.0.1.0.14.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version3(3)" );
14665   register_ber_oid_name("0.4.0.0.1.0.14.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version2(2)" );
14666   register_ber_oid_name("0.4.0.0.1.0.14.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version1(1)" );
14667   register_ber_oid_name("0.4.0.0.1.0.15.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version2(2)" );
14668   register_ber_oid_name("0.4.0.0.1.0.16.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version3(3)" );
14669   register_ber_oid_name("0.4.0.0.1.0.16.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version2(2)" );
14670   register_ber_oid_name("0.4.0.0.1.0.16.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version1(1)" );
14671   register_ber_oid_name("0.4.0.0.1.0.17.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) tracing(17) version2(2)" );
14672   register_ber_oid_name("0.4.0.0.1.0.17.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) tracing(17) version1(1)" );
14673   register_ber_oid_name("0.4.0.0.1.0.18.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkFunctionalSs(18) version2(2)" );
14674   register_ber_oid_name("0.4.0.0.1.0.18.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkFunctionalSs(18) version1(1)" );
14675   register_ber_oid_name("0.4.0.0.1.0.19.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkUnstructuredSs(19) version2(2)" );
14676   register_ber_oid_name("0.4.0.0.1.0.20.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgGateway(20) version2(2)" );
14677   register_ber_oid_name("0.4.0.0.1.0.20.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgGateway(20) version1(1)" );
14678   register_ber_oid_name("0.4.0.0.1.0.21.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMO-Relay(21) version2(2)" );
14679   register_ber_oid_name("0.4.0.0.1.0.21.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) --shortMsgRelay--21 version1(1)" );
14680   register_ber_oid_name("0.4.0.0.1.0.23.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgAlert(23) version2(2)" );
14681   register_ber_oid_name("0.4.0.0.1.0.23.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgAlert(23) version1(1)" );
14682   register_ber_oid_name("0.4.0.0.1.0.24.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) mwdMngt(24) version2(2)" );
14683   register_ber_oid_name("0.4.0.0.1.0.24.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) mwdMngt(24) version1(1)" );
14684   register_ber_oid_name("0.4.0.0.1.0.25.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMT-Relay(25) version2(2)" );
14685   register_ber_oid_name("0.4.0.0.1.0.25.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) msPurging(27) version2(2)" );
14686
14687   /* Register our configuration options, particularly our ssn:s */
14688   /* Set default SSNs */
14689   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
14690   ssn_range = range_empty();
14691
14692
14693   gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
14694
14695   prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
14696                                   "TCAP Subsystem numbers used for GSM MAP",
14697                                   &global_ssn_range, MAX_SSN);
14698 }
14699
14700