Add some of the anytime operations.
[obnox/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;               /* OCTET_STRING */
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_bearerService = -1;         /* OCTET_STRING */
205 static int hf_gsm_map_teleservice = -1;           /* Teleservice */
206 static int hf_gsm_map_BasicServiceGroupList_item = -1;  /* BasicService */
207 static int hf_gsm_map_bcsmTriggerDetectionPoint = -1;  /* BcsmTriggerDetectionPoint */
208 static int hf_gsm_map_serviceKey = -1;            /* ServiceKey */
209 static int hf_gsm_map_gsmSCFAddress = -1;         /* GsmSCF_Address */
210 static int hf_gsm_map_defaultCallHandling = -1;   /* DefaultCallHandling */
211 static int hf_gsm_map_BcsmCamelTDPDataList_item = -1;  /* BcsmCamelTDPData */
212 static int hf_gsm_map_o_BcsmCamelTDPDataList = -1;  /* BcsmCamelTDPDataList */
213 static int hf_gsm_map_camelCapabilityHandling = -1;  /* INTEGER_1_16 */
214 static int hf_gsm_map_msisdn = -1;                /* Msisdn */
215 static int hf_gsm_map_category = -1;              /* OCTET_STRING_SIZE_1 */
216 static int hf_gsm_map_subscriberStatus = -1;      /* SubscriberStatus */
217 static int hf_gsm_map_bearerServiceList = -1;     /* bearerServiceList */
218 static int hf_gsm_map_bearerServiceList_item = -1;  /* OCTET_STRING_SIZE_1_5 */
219 static int hf_gsm_map_teleserviceList = -1;       /* SEQUENCE_SIZE_1_20_OF_Teleservice */
220 static int hf_gsm_map_teleserviceList_item = -1;  /* Teleservice */
221 static int hf_gsm_map_provisionedSS = -1;         /* T_provisionedSS */
222 static int hf_gsm_map_provisionedSS_item = -1;    /* T_provisionedSS_item */
223 static int hf_gsm_map_forwardingInfo = -1;        /* ForwardingInfo */
224 static int hf_gsm_map_callBarringInfo = -1;       /* CallBarringInfo */
225 static int hf_gsm_map_cug_Info = -1;              /* T_cug_Info */
226 static int hf_gsm_map_cug_SubscriptionList = -1;  /* T_cug_SubscriptionList */
227 static int hf_gsm_map_cug_SubscriptionList_item = -1;  /* T_cug_SubscriptionList_item */
228 static int hf_gsm_map_cug_Index = -1;             /* INTEGER_0_32767 */
229 static int hf_gsm_map_cug_Interlock = -1;         /* OCTET_STRING_SIZE_4 */
230 static int hf_gsm_map_intraCUG_Options = -1;      /* IntraCUG_Options */
231 static int hf_gsm_map_basicServiceGroupList = -1;  /* BasicServiceGroupList */
232 static int hf_gsm_map_cug_FeatureList = -1;       /* T_cug_FeatureList */
233 static int hf_gsm_map_cug_FeatureList_item = -1;  /* T_cug_FeatureList_item */
234 static int hf_gsm_map_basicService = -1;          /* BasicService */
235 static int hf_gsm_map_preferentialCUG_Indicator = -1;  /* INTEGER_0_32767 */
236 static int hf_gsm_map_interCUG_Restrictions = -1;  /* OCTET_STRING_SIZE_1 */
237 static int hf_gsm_map_ss_Data = -1;               /* Ss_Data */
238 static int hf_gsm_map_emlpp_Info = -1;            /* T_emlpp_Info */
239 static int hf_gsm_map_maximumentitledPriority = -1;  /* INTEGER_0_15 */
240 static int hf_gsm_map_defaultPriority = -1;       /* INTEGER_0_15 */
241 static int hf_gsm_map_odb_Data = -1;              /* Odb_data */
242 static int hf_gsm_map_roamingRestrictionDueToUnsupportedFeature = -1;  /* NULL */
243 static int hf_gsm_map_regionalSubscriptionData = -1;  /* T_regionalSubscriptionData */
244 static int hf_gsm_map_regionalSubscriptionData_item = -1;  /* OCTET_STRING_SIZE_2 */
245 static int hf_gsm_map_vbsSubscriptionData = -1;   /* T_vbsSubscriptionData */
246 static int hf_gsm_map_vbsSubscriptionData_item = -1;  /* T_vbsSubscriptionData_item */
247 static int hf_gsm_map_groupid = -1;               /* OCTET_STRING_SIZE_3 */
248 static int hf_gsm_map_broadcastInitEntitlement = -1;  /* NULL */
249 static int hf_gsm_map_vgcsSubscriptionData = -1;  /* T_vgcsSubscriptionData */
250 static int hf_gsm_map_vgcsSubscriptionData_item = -1;  /* T_vgcsSubscriptionData_item */
251 static int hf_gsm_map_groupId = -1;               /* OCTET_STRING_SIZE_3 */
252 static int hf_gsm_map_vlrCamelSubscriptionInfo = -1;  /* T_vlrCamelSubscriptionInfo */
253 static int hf_gsm_map_o_CSI = -1;                 /* O_CSI */
254 static int hf_gsm_map_ss_CSI = -1;                /* T_ss_CSI */
255 static int hf_gsm_map_ss_CamelData = -1;          /* Ss_CamelData */
256 static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList = -1;  /* O_BcsmCamelTDP_CriteriaList */
257 static int hf_gsm_map_tif_CSI = -1;               /* NULL */
258 static int hf_gsm_map_naea_PreferredCI = -1;      /* Naea_PreferredCI */
259 static int hf_gsm_map_gprsSubscriptionData = -1;  /* T_gprsSubscriptionData */
260 static int hf_gsm_map_completeDataListIncluded = -1;  /* NULL */
261 static int hf_gsm_map_gprsDataList = -1;          /* T_gprsDataList */
262 static int hf_gsm_map_gprsDataList_item = -1;     /* T_gprsDataList_item */
263 static int hf_gsm_map_pdp_ContextId = -1;         /* INTEGER_1_50 */
264 static int hf_gsm_map_pdp_Type = -1;              /* OCTET_STRING_SIZE_2 */
265 static int hf_gsm_map_pdp_Address = -1;           /* OCTET_STRING_SIZE_1_16 */
266 static int hf_gsm_map_qos_Subscribed = -1;        /* Qos_Subscribed */
267 static int hf_gsm_map_vplmnAddressAllowed = -1;   /* NULL */
268 static int hf_gsm_map_apn = -1;                   /* OCTET_STRING_SIZE_2_63 */
269 static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature = -1;  /* NULL */
270 static int hf_gsm_map_networkAccessMode = -1;     /* T_networkAccessMode */
271 static int hf_gsm_map_lsaInformation = -1;        /* T_lsaInformation */
272 static int hf_gsm_map_lsaOnlyAccessIndicator = -1;  /* T_lsaOnlyAccessIndicator */
273 static int hf_gsm_map_lsaDataList = -1;           /* T_lsaDataList */
274 static int hf_gsm_map_lsaDataList_item = -1;      /* T_lsaDataList_item */
275 static int hf_gsm_map_lsaIdentity = -1;           /* OCTET_STRING_SIZE_3 */
276 static int hf_gsm_map_lsaAttributes = -1;         /* OCTET_STRING_SIZE_1 */
277 static int hf_gsm_map_lsaActiveModeIndicator = -1;  /* NULL */
278 static int hf_gsm_map_lmu_Indicator = -1;         /* NULL */
279 static int hf_gsm_map_lcsInformation = -1;        /* T_lcsInformation */
280 static int hf_gsm_map_gmlc_List = -1;             /* T_gmlc_List */
281 static int hf_gsm_map_gmlc_List_item = -1;        /* T_gmlc_List_item */
282 static int hf_gsm_map_lcs_PrivacyExceptionList = -1;  /* T_lcs_PrivacyExceptionList */
283 static int hf_gsm_map_lcs_PrivacyExceptionList_item = -1;  /* T_lcs_PrivacyExceptionList_item */
284 static int hf_gsm_map_ss_Code = -1;               /* Ss_Code */
285 static int hf_gsm_map_ss_Status = -1;             /* Ss_Status */
286 static int hf_gsm_map_notificationToMSUser = -1;  /* NotificationToMSUser */
287 static int hf_gsm_map_externalClientList = -1;    /* T_externalClientList */
288 static int hf_gsm_map_externalClientList_item = -1;  /* T_externalClientList_item */
289 static int hf_gsm_map_clientIdentity = -1;        /* T_clientIdentity */
290 static int hf_gsm_map_externalAddress = -1;       /* OCTET_STRING_SIZE_1_20 */
291 static int hf_gsm_map_gmlc_Restriction = -1;      /* T_gmlc_Restriction */
292 static int hf_gsm_map_plmnClientList = -1;        /* T_plmnClientList */
293 static int hf_gsm_map_plmnClientList_item = -1;   /* T_plmnClientList_item */
294 static int hf_gsm_map_molr_List = -1;             /* T_molr_List */
295 static int hf_gsm_map_molr_List_item = -1;        /* T_molr_List_item */
296 static int hf_gsm_map_ss_List = -1;               /* ss_List */
297 static int hf_gsm_map_ss_List_item = -1;          /* OCTET_STRING_SIZE_1 */
298 static int hf_gsm_map_odb_GeneralData = -1;       /* Odb_GeneralData */
299 static int hf_gsm_map_regionalSubscriptionResponse = -1;  /* RegionalSubscriptionResponse */
300 static int hf_gsm_map_ss_EventList = -1;          /* T_ss_EventList */
301 static int hf_gsm_map_ss_EventList_item = -1;     /* OCTET_STRING_SIZE_1 */
302 static int hf_gsm_map_gsmSCF_Address = -1;        /* GsmSCF_Address */
303 static int hf_gsm_map_callBarringFeatureList = -1;  /* CallBarringFeatureList */
304 static int hf_gsm_map_CallBarringFeatureList_item = -1;  /* CallBarringFeatureList_item */
305 static int hf_gsm_map_forwardedToNumber = -1;     /* ForwardedToNumber */
306 static int hf_gsm_map_forwardedToSubaddress = -1;  /* ForwardedToSubaddress */
307 static int hf_gsm_map_forwardingOptions = -1;     /* ForwardingOptions */
308 static int hf_gsm_map_noReplyConditionTime = -1;  /* INTEGER */
309 static int hf_gsm_map_longForwardedToNumber = -1;  /* LongForwardedToNumber */
310 static int hf_gsm_map_matchType = -1;             /* MatchType */
311 static int hf_gsm_map_destinationNumberList = -1;  /* T_destinationNumberList */
312 static int hf_gsm_map_destinationNumberList_item = -1;  /* T_destinationNumberList_item */
313 static int hf_gsm_map_destinationNumberLengthList = -1;  /* T_destinationNumberLengthList */
314 static int hf_gsm_map_destinationNumberLengthList_item = -1;  /* INTEGER_1_15 */
315 static int hf_gsm_map_forwardingFeatureList_1_32 = -1;  /* SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList */
316 static int hf_gsm_map_forwardingFeatureList_item = -1;  /* ForwardingFeatureList */
317 static int hf_gsm_map_naea_PreferredCIC = -1;     /* OCTET_STRING_SIZE_3 */
318 static int hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1;  /* O_BcsmCamelTDP_CriteriaList_item */
319 static int hf_gsm_map_o_BcsmTriggerDetectionPoint = -1;  /* BcsmTriggerDetectionPoint */
320 static int hf_gsm_map_destinationNumberCriteria = -1;  /* DestinationNumberCriteria */
321 static int hf_gsm_map_basicServiceCriteria = -1;  /* BasicServiceGroupList */
322 static int hf_gsm_map_callTypeCriteria = -1;      /* CallTypeCriteria */
323 static int hf_gsm_map_cliRestrictionOption = -1;  /* CliRestrictionOption */
324 static int hf_gsm_map_overrideCategory = -1;      /* OverrideCategory */
325 static int hf_gsm_map_basicServiceList = -1;      /* BasicServiceGroupList */
326 static int hf_gsm_map_regionalSubscriptionIdentifier = -1;  /* OCTET_STRING_SIZE_2 */
327 static int hf_gsm_map_vbsGroupIndication = -1;    /* NULL */
328 static int hf_gsm_map_vgcsGroupIndication = -1;   /* NULL */
329 static int hf_gsm_map_camelSubscriptionInfoWithdraw = -1;  /* NULL */
330 static int hf_gsm_map_gprsSubscriptionDataWithdraw = -1;  /* T_gprsSubscriptionDataWithdraw */
331 static int hf_gsm_map_allGPRSData = -1;           /* NULL */
332 static int hf_gsm_map_contextIdList = -1;         /* T_contextIdList */
333 static int hf_gsm_map_contextIdList_item = -1;    /* INTEGER_1_50 */
334 static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1;  /* NULL */
335 static int hf_gsm_map_lsaInformationWithdraw = -1;  /* T_lsaInformationWithdraw */
336 static int hf_gsm_map_allLSAData = -1;            /* NULL */
337 static int hf_gsm_map_lsaIdentityList = -1;       /* T_lsaIdentityList */
338 static int hf_gsm_map_lsaIdentityList_item = -1;  /* OCTET_STRING_SIZE_3 */
339 static int hf_gsm_map_gmlc_ListWithdraw = -1;     /* NULL */
340 static int hf_gsm_map_hlr_List = -1;              /* T_hlr_List */
341 static int hf_gsm_map_hlr_List_item = -1;         /* OCTET_STRING_SIZE_3_8 */
342 static int hf_gsm_map_msNotReachable = -1;        /* NULL */
343 static int hf_gsm_map_traceReference = -1;        /* OCTET_STRING_SIZE_1_2 */
344 static int hf_gsm_map_traceType = -1;             /* INTEGER_0_255 */
345 static int hf_gsm_map_omc_Id = -1;                /* OCTET_STRING_SIZE_1_20 */
346 static int hf_gsm_map_cug_CheckInfo = -1;         /* Cug_CheckInfo */
347 static int hf_gsm_map_numberOfForwarding = -1;    /* INTEGER_1_5 */
348 static int hf_gsm_map_interrogationType = -1;     /* T_interrogationType */
349 static int hf_gsm_map_or_Interrogation = -1;      /* NULL */
350 static int hf_gsm_map_or_Capability = -1;         /* INTEGER_1_127 */
351 static int hf_gsm_map_gmsc_Address = -1;          /* Gmsc_Address */
352 static int hf_gsm_map_callReferenceNumber = -1;   /* OCTET_STRING_SIZE_1_8 */
353 static int hf_gsm_map_forwardingReason = -1;      /* T_forwardingReason */
354 static int hf_gsm_map_basicServiceGroup = -1;     /* BasicService */
355 static int hf_gsm_map_networkSignalInfo = -1;     /* Bss_APDU */
356 static int hf_gsm_map_camelInfo = -1;             /* T_camelInfo */
357 static int hf_gsm_map_suppress_T_CSI = -1;        /* NULL */
358 static int hf_gsm_map_suppressionOfAnnouncement = -1;  /* NULL */
359 static int hf_gsm_map_alertingPattern = -1;       /* OCTET_STRING_SIZE_1 */
360 static int hf_gsm_map_ccbs_Call = -1;             /* NULL */
361 static int hf_gsm_map_supportedCCBS_Phase = -1;   /* INTEGER_1_127 */
362 static int hf_gsm_map_additionalSignalInfo = -1;  /* AdditionalSignalInfo */
363 static int hf_gsm_map_extendedRoutingInfo = -1;   /* T_extendedRoutingInfo */
364 static int hf_gsm_map_routingInfo = -1;           /* T_routingInfo */
365 static int hf_gsm_map_roamingNumber = -1;         /* RoamingNumber */
366 static int hf_gsm_map_forwardingData = -1;        /* ForwardingData */
367 static int hf_gsm_map_camelRoutingInfo = -1;      /* T_camelRoutingInfo */
368 static int hf_gsm_map_gmscCamelSubscriptionInfo = -1;  /* T_gmscCamelSubscriptionInfo */
369 static int hf_gsm_map_t_CSI = -1;                 /* T_t_CSI */
370 static int hf_gsm_map_t_BcsmCamelTDPDataList = -1;  /* BcsmCamelTDPDataList */
371 static int hf_gsm_map_cugSubscriptionFlag = -1;   /* NULL */
372 static int hf_gsm_map_subscriberInfo = -1;        /* SubscriberInfo */
373 static int hf_gsm_map_forwardingInterrogationRequired = -1;  /* NULL */
374 static int hf_gsm_map_vmsc_Address = -1;          /* T_vmsc_Address */
375 static int hf_gsm_map_ccbs_Indicators = -1;       /* T_ccbs_Indicators */
376 static int hf_gsm_map_ccbs_Possible = -1;         /* NULL */
377 static int hf_gsm_map_keepCCBS_CallIndicator = -1;  /* NULL */
378 static int hf_gsm_map_numberPortabilityStatus = -1;  /* NumberPortabilityStatus */
379 static int hf_gsm_map_assumedIdle = -1;           /* NULL */
380 static int hf_gsm_map_camelBusy = -1;             /* NULL */
381 static int hf_gsm_map_notProvidedFromVLR = -1;    /* NULL */
382 static int hf_gsm_map_ageOfLocationInformation = -1;  /* INTEGER_0_32767 */
383 static int hf_gsm_map_geographicalInformation = -1;  /* OCTET_STRING_SIZE_8 */
384 static int hf_gsm_map_vlr_number = -1;            /* Vlr_Number */
385 static int hf_gsm_map_locationNumber = -1;        /* OCTET_STRING_SIZE_2_10 */
386 static int hf_gsm_map_cellIdOrLAI = -1;           /* T_cellIdOrLAI */
387 static int hf_gsm_map_cellIdFixedLength = -1;     /* OCTET_STRING_SIZE_7 */
388 static int hf_gsm_map_laiFixedLength = -1;        /* OCTET_STRING_SIZE_5 */
389 static int hf_gsm_map_selectedLSA_Id = -1;        /* OCTET_STRING_SIZE_3 */
390 static int hf_gsm_map_geodeticInformation = -1;   /* OCTET_STRING_SIZE_10 */
391 static int hf_gsm_map_currentLocationRetrieved = -1;  /* NULL */
392 static int hf_gsm_map_sai_Present = -1;           /* NULL */
393 static int hf_gsm_map_locationInformation = -1;   /* LocationInformation */
394 static int hf_gsm_map_subscriberState = -1;       /* SubscriberState */
395 static int hf_gsm_map_locationInformationGPRS = -1;  /* T_locationInformationGPRS */
396 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* T_cellGlobalIdOrServiceAreaIdOrLAI */
397 static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1;  /* OCTET_STRING_SIZE_7 */
398 static int hf_gsm_map_routeingAreaIdentity = -1;  /* OCTET_STRING_SIZE_6 */
399 static int hf_gsm_map_selectedLSAIdentity = -1;   /* OCTET_STRING_SIZE_3 */
400 static int hf_gsm_map_ps_SubscriberState = -1;    /* T_ps_SubscriberState */
401 static int hf_gsm_map_notProvidedFromSGSN = -1;   /* NULL */
402 static int hf_gsm_map_ps_Detached = -1;           /* NULL */
403 static int hf_gsm_map_ps_AttachedNotReachableForPaging = -1;  /* NULL */
404 static int hf_gsm_map_ps_AttachedReachableForPaging = -1;  /* NULL */
405 static int hf_gsm_map_ps_PDP_ActiveNotReachableForPaging = -1;  /* T_ps_PDP_ActiveNotReachableForPaging */
406 static int hf_gsm_map_ps_PDP_ActiveNotReachableForPaging_item = -1;  /* T_ps_PDP_ActiveNotReachableForPaging_item */
407 static int hf_gsm_map_pdp_ContextIdentifier = -1;  /* INTEGER_1_50 */
408 static int hf_gsm_map_pdp_ContextActive = -1;     /* NULL */
409 static int hf_gsm_map_apn_Subscribed = -1;        /* OCTET_STRING_SIZE_2_63 */
410 static int hf_gsm_map_apn_InUse = -1;             /* OCTET_STRING_SIZE_2_63 */
411 static int hf_gsm_map_nsapi = -1;                 /* INTEGER_0_15 */
412 static int hf_gsm_map_transactionId = -1;         /* OCTET_STRING_SIZE_1_2 */
413 static int hf_gsm_map_teid_ForGnAndGp = -1;       /* OCTET_STRING_SIZE_4 */
414 static int hf_gsm_map_teid_ForIu = -1;            /* OCTET_STRING_SIZE_4 */
415 static int hf_gsm_map_ggsn_Address = -1;          /* Ggsn_Address */
416 static int hf_gsm_map_qos_Requested = -1;         /* OCTET_STRING_SIZE_1_9 */
417 static int hf_gsm_map_qos_Negotiated = -1;        /* OCTET_STRING_SIZE_1_9 */
418 static int hf_gsm_map_chargingId = -1;            /* OCTET_STRING_SIZE_4 */
419 static int hf_gsm_map_chargingCharacteristics = -1;  /* OCTET_STRING_SIZE_2 */
420 static int hf_gsm_map_rnc_Address = -1;           /* OCTET_STRING_SIZE_5_17 */
421 static int hf_gsm_map_qos2_Subscribed = -1;       /* OCTET_STRING_SIZE_1_3 */
422 static int hf_gsm_map_qos2_Requested = -1;        /* OCTET_STRING_SIZE_1_3 */
423 static int hf_gsm_map_qos2_Negotiated = -1;       /* OCTET_STRING_SIZE_1_3 */
424 static int hf_gsm_map_ps_PDP_ActiveReachableForPaging = -1;  /* T_ps_PDP_ActiveReachableForPaging */
425 static int hf_gsm_map_ps_PDP_ActiveReachableForPaging_item = -1;  /* T_ps_PDP_ActiveReachableForPaging_item */
426 static int hf_gsm_map_netDetNotReachable = -1;    /* T_netDetNotReachable */
427 static int hf_gsm_map_imei = -1;                  /* Imei */
428 static int hf_gsm_map_ms_Classmark2 = -1;         /* OCTET_STRING_SIZE_3 */
429 static int hf_gsm_map_gprs_MS_Class = -1;         /* T_gprs_MS_Class */
430 static int hf_gsm_map_mSNetworkCapability = -1;   /* OCTET_STRING_SIZE_1_8 */
431 static int hf_gsm_map_mSRadioAccessCapability = -1;  /* OCTET_STRING_SIZE_1_50 */
432 static int hf_gsm_map_mnpInfoRes = -1;            /* T_mnpInfoRes */
433 static int hf_gsm_map_routeingNumber = -1;        /* OCTET_STRING_SIZE_1_5 */
434 static int hf_gsm_map_ext_ProtocolId = -1;        /* T_ext_ProtocolId */
435 static int hf_gsm_map_ext_signalInfo = -1;        /* ExtSignalInfo */
436 static int hf_gsm_map_cug_OutgoingAccess = -1;    /* NULL */
437 static int hf_gsm_map_gsm_BearerCapability = -1;  /* Bss_APDU */
438 static int hf_gsm_map_supportedCamelPhasesInGMSC = -1;  /* SupportedCamelPhases */
439 static int hf_gsm_map_orNotSupportedInGMSC = -1;  /* NULL */
440 static int hf_gsm_map_uu_Data = -1;               /* T_uu_Data */
441 static int hf_gsm_map_uuIndicator = -1;           /* OCTET_STRING_SIZE_1 */
442 static int hf_gsm_map_uui = -1;                   /* OCTET_STRING_SIZE_1_131 */
443 static int hf_gsm_map_uusCFInteraction = -1;      /* NULL */
444 static int hf_gsm_map_allInformationSent = -1;    /* NULL */
445 static int hf_gsm_map_isdn_BearerCapability = -1;  /* Bss_APDU */
446 static int hf_gsm_map_call_Direction = -1;        /* OCTET_STRING_SIZE_1 */
447 static int hf_gsm_map_b_Subscriber_Address = -1;  /* T_b_Subscriber_Address */
448 static int hf_gsm_map_chosenChannel = -1;         /* Bss_APDU */
449 static int hf_gsm_map_lowerLayerCompatibility = -1;  /* Bss_APDU */
450 static int hf_gsm_map_highLayerCompatibility = -1;  /* Bss_APDU */
451 static int hf_gsm_map_sIWFSNumber = -1;           /* T_sIWFSNumber */
452 static int hf_gsm_map_channelType = -1;           /* Bss_APDU */
453 static int hf_gsm_map_ccbs_Monitoring = -1;       /* Ccbs_Monitoring */
454 static int hf_gsm_map_ccbs_SubscriberStatus = -1;  /* Ccbs_SubscriberStatus */
455 static int hf_gsm_map_eventReportData = -1;       /* T_eventReportData */
456 static int hf_gsm_map_callReportdata = -1;        /* T_callReportdata */
457 static int hf_gsm_map_monitoringMode = -1;        /* MonitoringMode */
458 static int hf_gsm_map_callOutcome = -1;           /* CallOutcome */
459 static int hf_gsm_map_callInfo = -1;              /* Bss_APDU */
460 static int hf_gsm_map_ccbs_Feature = -1;          /* Ccbs_Feature */
461 static int hf_gsm_map_translatedB_Number = -1;    /* TranslatedB_Number */
462 static int hf_gsm_map_replaceB_Number = -1;       /* NULL */
463 static int hf_gsm_map_ruf_Outcome = -1;           /* Ruf_Outcome */
464 static int hf_gsm_map_ss_SubscriptionOption = -1;  /* Ss_SubscriptionOption */
465 static int hf_gsm_map_ccbs_Index = -1;            /* INTEGER_1_5 */
466 static int hf_gsm_map_b_subscriberNumber = -1;    /* B_subscriberNumber */
467 static int hf_gsm_map_b_subscriberSubaddress = -1;  /* OCTET_STRING_SIZE_1_21 */
468 static int hf_gsm_map_forwardingFeatureList = -1;  /* SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList */
469 static int hf_gsm_map_genericServiceInfo = -1;    /* T_genericServiceInfo */
470 static int hf_gsm_map_maximumEntitledPriority = -1;  /* INTEGER_0_15 */
471 static int hf_gsm_map_ccbs_FeatureList = -1;      /* T_ccbs_FeatureList */
472 static int hf_gsm_map_ccbs_FeatureList_item = -1;  /* T_ccbs_FeatureList_item */
473 static int hf_gsm_map_ussd_DataCodingScheme = -1;  /* OCTET_STRING_SIZE_1 */
474 static int hf_gsm_map_ussd_String = -1;           /* OCTET_STRING_SIZE_1_160 */
475 static int hf_gsm_map_ccbs_Data = -1;             /* T_ccbs_Data */
476 static int hf_gsm_map_serviceIndicator = -1;      /* ServiceIndicator */
477 static int hf_gsm_map_sm_RP_PRI = -1;             /* BOOLEAN */
478 static int hf_gsm_map_serviceCentreAddress = -1;  /* ServiceCentreAddress */
479 static int hf_gsm_map_gprsSupportIndicator = -1;  /* NULL */
480 static int hf_gsm_map_sm_RP_MTI = -1;             /* INTEGER_0_10 */
481 static int hf_gsm_map_sm_RP_SMEA = -1;            /* OCTET_STRING_SIZE_1_12 */
482 static int hf_gsm_map_locationInfoWithLMSI = -1;  /* T_locationInfoWithLMSI */
483 static int hf_gsm_map_networkNode_Number = -1;    /* T_networkNode_Number */
484 static int hf_gsm_map_gprsNodeIndicator = -1;     /* NULL */
485 static int hf_gsm_map_additional_Number = -1;     /* T_additional_Number */
486 static int hf_gsm_map_sm_RP_DA = -1;              /* Sm_RP_DA */
487 static int hf_gsm_map_sm_RP_OA = -1;              /* Sm_RP_OA */
488 static int hf_gsm_map_sm_RP_UI = -1;              /* Sm_RP_UI */
489 static int hf_gsm_map_serviceCentreAddressOA = -1;  /* ServiceCentreAddress */
490 static int hf_gsm_map_noSM_RP_OA = -1;            /* NULL */
491 static int hf_gsm_map_serviceCentreAddressDA = -1;  /* ServiceCentreAddress */
492 static int hf_gsm_map_noSM_RP_DA = -1;            /* NULL */
493 static int hf_gsm_map_moreMessagesToSend = -1;    /* NULL */
494 static int hf_gsm_map_sm_DeliveryOutcome = -1;    /* Sm_DeliveryOutcome */
495 static int hf_gsm_map_absentSubscriberDiagnosticSM = -1;  /* INTEGER_0_255 */
496 static int hf_gsm_map_deliveryOutcomeIndicator = -1;  /* NULL */
497 static int hf_gsm_map_additionalSM_DeliveryOutcome = -1;  /* Sm_DeliveryOutcome */
498 static int hf_gsm_map_additionalAbsentSubscriberDiagnosticSM = -1;  /* INTEGER_0_255 */
499 static int hf_gsm_map_storedMSISDN = -1;          /* StoredMSISDN */
500 static int hf_gsm_map_mw_Status = -1;             /* T_mw_Status */
501 static int hf_gsm_map_alertReason = -1;           /* T_alertReason */
502 static int hf_gsm_map_alertReasonIndicator = -1;  /* NULL */
503 static int hf_gsm_map_requestedInfo = -1;         /* RequestedInfo */
504 static int hf_gsm_map_locationInformationFlag = -1;  /* NULL */
505 static int hf_gsm_map_subscriberStateFlag = -1;   /* NULL */
506 static int hf_gsm_map_currentLocation = -1;       /* NULL */
507 static int hf_gsm_map_requestedDomain = -1;       /* T_requestedDomain */
508 static int hf_gsm_map_imei1 = -1;                 /* NULL */
509 static int hf_gsm_map_ms_classmark = -1;          /* NULL */
510 static int hf_gsm_map_mnpRequestedInfo = -1;      /* NULL */
511 static int hf_gsm_map_subscriberIdentity = -1;    /* SubscriberIdentity */
512 static int hf_gsm_map_requestedSubscriptionInfo = -1;  /* T_requestedSubscriptionInfo */
513 static int hf_gsm_map_requestedSS_Info = -1;      /* T_requestedSS_Info */
514 static int hf_gsm_map_odb = -1;                   /* NULL */
515 static int hf_gsm_map_requestedCAMEL_SubscriptionInfo = -1;  /* T_requestedCAMEL_SubscriptionInfo */
516 static int hf_gsm_map_supportedVLR_CAMEL_Phases_flg = -1;  /* NULL */
517 static int hf_gsm_map_supportedSGSN_CAMEL_Phases_flg = -1;  /* NULL */
518 static int hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo = -1;  /* AdditionalRequestedCAMEL_SubscriptionInfo */
519 static int hf_gsm_map_callForwardingData = -1;    /* T_callForwardingData */
520 static int hf_gsm_map_forwardingFeatureList1 = -1;  /* ForwardingFeatureList */
521 static int hf_gsm_map_notificationToCSE = -1;     /* NULL */
522 static int hf_gsm_map_callBarringData = -1;       /* T_callBarringData */
523 static int hf_gsm_map_password = -1;              /* NumericString */
524 static int hf_gsm_map_wrongPasswordAttemptsCounter = -1;  /* INTEGER_0_4 */
525 static int hf_gsm_map_odb_Info = -1;              /* T_odb_Info */
526 static int hf_gsm_map_camel_SubscriptionInfo = -1;  /* T_camel_SubscriptionInfo */
527 static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList1 = -1;  /* T_o_BcsmCamelTDP_CriteriaList */
528 static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList_item = -1;  /* T_o_BcsmCamelTDP_CriteriaList_item */
529 static int hf_gsm_map_o_BcsmTriggerDetectionPoint1 = -1;  /* T_o_BcsmTriggerDetectionPoint */
530 static int hf_gsm_map_basicServiceCriteria1 = -1;  /* BasicServiceCriteria */
531 static int hf_gsm_map_o_CauseValueCriteria = -1;  /* O_CauseValueCriteria */
532 static int hf_gsm_map_d_CSI = -1;                 /* T_d_CSI */
533 static int hf_gsm_map_dp_AnalysedInfoCriteriaList = -1;  /* Dp_AnalysedInfoCriteriaList */
534 static int hf_gsm_map_csi_Active = -1;            /* NULL */
535 static int hf_gsm_map_t_CSI1 = -1;                /* T_t_CSI1 */
536 static int hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_t_BCSM_CAMEL_TDP_CriteriaList */
537 static int hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_t_BCSM_CAMEL_TDP_CriteriaList_item */
538 static int hf_gsm_map_t_BCSM_TriggerDetectionPoint = -1;  /* T_t_BCSM_TriggerDetectionPoint */
539 static int hf_gsm_map_t_CauseValueCriteria = -1;  /* T_CauseValueCriteria */
540 static int hf_gsm_map_vt_CSI = -1;                /* T_vt_CSI */
541 static int hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_vt_BCSM_CAMEL_TDP_CriteriaList */
542 static int hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_vt_BCSM_CAMEL_TDP_CriteriaList_item */
543 static int hf_gsm_map_t_BCSM_TriggerDetectionPoint1 = -1;  /* T_t_BCSM_TriggerDetectionPoint1 */
544 static int hf_gsm_map_tif_CSI_NotificationToCSE = -1;  /* NULL */
545 static int hf_gsm_map_gprs_CSI = -1;              /* T_gprs_CSI */
546 static int hf_gsm_map_gprs_CamelTDPDataList = -1;  /* T_gprs_CamelTDPDataList */
547 static int hf_gsm_map_gprs_CamelTDPDataList_item = -1;  /* T_gprs_CamelTDPDataList_item */
548 static int hf_gsm_map_gprs_TriggerDetectionPoint = -1;  /* T_gprs_TriggerDetectionPoint */
549 static int hf_gsm_map_defaultSessionHandling = -1;  /* T_defaultSessionHandling */
550 static int hf_gsm_map_mo_sms_CSI = -1;            /* T_mo_sms_CSI */
551 static int hf_gsm_map_sms_CAMEL_TDP_DataList = -1;  /* Sms_CAMEL_TDP_DataList */
552 static int hf_gsm_map_ss_CSI1 = -1;               /* T_ss_CSI1 */
553 static int hf_gsm_map_m_CSI = -1;                 /* T_m_CSI */
554 static int hf_gsm_map_mobilityTriggers = -1;      /* MobilityTriggers */
555 static int hf_gsm_map_specificCSIDeletedList = -1;  /* T_specificCSIDeletedList */
556 static int hf_gsm_map_mt_sms_CSI = -1;            /* T_mt_sms_CSI */
557 static int hf_gsm_map_mt_smsCAMELTDP_CriteriaList = -1;  /* T_mt_smsCAMELTDP_CriteriaList */
558 static int hf_gsm_map_mt_smsCAMELTDP_CriteriaList_item = -1;  /* T_mt_smsCAMELTDP_CriteriaList_item */
559 static int hf_gsm_map_sms_TriggerDetectionPoint = -1;  /* T_sms_TriggerDetectionPoint */
560 static int hf_gsm_map_tpdu_TypeCriterion = -1;    /* T_tpdu_TypeCriterion */
561 static int hf_gsm_map_tpdu_TypeCriterion_item = -1;  /* T_tpdu_TypeCriterion_item */
562 static int hf_gsm_map_mg_csi = -1;                /* T_mg_csi */
563 static int hf_gsm_map_o_IM_CSI = -1;              /* T_o_IM_CSI */
564 static int hf_gsm_map_csiActive = -1;             /* NULL */
565 static int hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList = -1;  /* T_o_IM_BcsmCamelTDP_CriteriaList */
566 static int hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList_item = -1;  /* T_o_IM_BcsmCamelTDP_CriteriaList_item */
567 static int hf_gsm_map_o_BcsmTriggerDetectionPoint2 = -1;  /* T_o_BcsmTriggerDetectionPoint1 */
568 static int hf_gsm_map_d_IM_CSI = -1;              /* T_d_IM_CSI */
569 static int hf_gsm_map_vt_IM_CSI = -1;             /* T_vt_IM_CSI */
570 static int hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;  /* T_vt_IM_BCSM_CAMEL_TDP_CriteriaList */
571 static int hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item = -1;  /* T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item */
572 static int hf_gsm_map_t_BCSM_TriggerDetectionPoint2 = -1;  /* T_t_BCSM_TriggerDetectionPoint2 */
573 static int hf_gsm_map_supportedVLR_CAMEL_Phases = -1;  /* T_supportedVLR_CAMEL_Phases */
574 static int hf_gsm_map_supportedSGSN_CAMEL_Phases = -1;  /* T_supportedSGSN_CAMEL_Phases */
575 static int hf_gsm_map_offeredCamel4CSIsInVLR = -1;  /* T_offeredCamel4CSIsInVLR */
576 static int hf_gsm_map_offeredCamel4CSIsInSGSN = -1;  /* T_offeredCamel4CSIsInSGSN */
577 static int hf_gsm_map_Sms_CAMEL_TDP_DataList_item = -1;  /* Sms_CAMEL_TDP_DataList_item */
578 static int hf_gsm_map_sms_TriggerDetectionPoint1 = -1;  /* T_sms_TriggerDetectionPoint1 */
579 static int hf_gsm_map_defaultSMS_Handling = -1;   /* T_defaultSMS_Handling */
580 static int hf_gsm_map_T_CauseValueCriteria_item = -1;  /* OCTET_STRING_SIZE_1 */
581 static int hf_gsm_map_O_CauseValueCriteria_item = -1;  /* OCTET_STRING_SIZE_1 */
582 static int hf_gsm_map_MobilityTriggers_item = -1;  /* OCTET_STRING_SIZE_1 */
583 static int hf_gsm_map_BasicServiceCriteria_item = -1;  /* BasicServiceCriteria_item */
584 static int hf_gsm_map_ext_BearerService = -1;     /* OCTET_STRING_SIZE_1_5 */
585 static int hf_gsm_map_ext_Teleservice = -1;       /* OCTET_STRING_SIZE_1_5 */
586 static int hf_gsm_map_Dp_AnalysedInfoCriteriaList_item = -1;  /* Dp_AnalysedInfoCriteriaList_item */
587 static int hf_gsm_map_dialledNumber = -1;         /* T_dialledNumber */
588 static int hf_gsm_map_modificationRequestFor_CF_Info = -1;  /* T_modificationRequestFor_CF_Info */
589 static int hf_gsm_map_basicService1 = -1;         /* T_basicService */
590 static int hf_gsm_map_noReplyConditionTime1 = -1;  /* INTEGER_1_100 */
591 static int hf_gsm_map_modifyNotificationToCSE = -1;  /* ModifyNotificationToCSE */
592 static int hf_gsm_map_modificationRequestFor_CB_Info = -1;  /* T_modificationRequestFor_CB_Info */
593 static int hf_gsm_map_basicService2 = -1;         /* T_basicService1 */
594 static int hf_gsm_map_modificationRequestFor_CSI = -1;  /* T_modificationRequestFor_CSI */
595 static int hf_gsm_map_requestedCamel_SubscriptionInfo = -1;  /* T_requestedCamel_SubscriptionInfo */
596 static int hf_gsm_map_modifyCSI_State = -1;       /* T_modifyCSI_State */
597 static int hf_gsm_map_modificationRequestFor_ODB_data = -1;  /* T_modificationRequestFor_ODB_data */
598 static int hf_gsm_map_odb_data = -1;              /* Odb_data */
599 static int hf_gsm_map_odb_HPLMN_Data = -1;        /* Odb_HPLMN_Data */
600 static int hf_gsm_map_ss_Event = -1;              /* OCTET_STRING_SIZE_1 */
601 static int hf_gsm_map_ss_EventSpecification = -1;  /* T_ss_EventSpecification */
602 static int hf_gsm_map_ss_EventSpecification_item = -1;  /* OCTET_STRING_SIZE_1_20 */
603 static int hf_gsm_map_codec_Info = -1;            /* OCTET_STRING_SIZE_5_10 */
604 static int hf_gsm_map_cipheringAlgorithm = -1;    /* OCTET_STRING_SIZE_1 */
605 static int hf_gsm_map_groupKeyNumber = -1;        /* INTEGER_0_15 */
606 static int hf_gsm_map_groupKey = -1;              /* OCTET_STRING_SIZE_8 */
607 static int hf_gsm_map_priority = -1;              /* INTEGER_0_15 */
608 static int hf_gsm_map_uplinkFree = -1;            /* NULL */
609 static int hf_gsm_map_groupCallNumber = -1;       /* T_groupCallNumber */
610 static int hf_gsm_map_uplinkRequest = -1;         /* NULL */
611 static int hf_gsm_map_uplinkReleaseIndication = -1;  /* NULL */
612 static int hf_gsm_map_releaseGroupCall = -1;      /* NULL */
613 static int hf_gsm_map_uplinkRequestAck = -1;      /* NULL */
614 static int hf_gsm_map_uplinkRejectCommand = -1;   /* NULL */
615 static int hf_gsm_map_uplinkSeizedCommand = -1;   /* NULL */
616 static int hf_gsm_map_uplinkReleaseCommand = -1;  /* NULL */
617 static int hf_gsm_map_sgsn_Address = -1;          /* OCTET_STRING_SIZE_5_17 */
618 static int hf_gsm_map_sgsn_Capability = -1;       /* T_sgsn_Capability */
619 static int hf_gsm_map_ggsn_Number = -1;           /* Ggsn_Number */
620 static int hf_gsm_map_mobileNotReachableReason = -1;  /* INTEGER_0_255 */
621 static int hf_gsm_map_dataCodingScheme = -1;      /* OCTET_STRING */
622 static int hf_gsm_map_nameString = -1;            /* OCTET_STRING */
623 static int hf_gsm_map_lcsClientType = -1;         /* LcsClientType */
624 static int hf_gsm_map_lcsClientExternalID = -1;   /* LcsClientExternalID */
625 static int hf_gsm_map_lcsClientDialedByMS = -1;   /* OCTET_STRING */
626 static int hf_gsm_map_lcsClientInternalID = -1;   /* LcsClientInternalID */
627 static int hf_gsm_map_lcsClientName = -1;         /* LcsClientName */
628 static int hf_gsm_map_locationType = -1;          /* T_locationType */
629 static int hf_gsm_map_locationEstimateType = -1;  /* T_locationEstimateType */
630 static int hf_gsm_map_mlc_Number = -1;            /* T_mlc_Number */
631 static int hf_gsm_map_lcs_ClientID = -1;          /* Lcs_ClientID */
632 static int hf_gsm_map_privacyOverride = -1;       /* NULL */
633 static int hf_gsm_map_lcs_Priority = -1;          /* OCTET_STRING_SIZE_1 */
634 static int hf_gsm_map_lcs_QoS = -1;               /* T_lcs_QoS */
635 static int hf_gsm_map_horizontal_accuracy = -1;   /* OCTET_STRING_SIZE_1 */
636 static int hf_gsm_map_verticalCoordinateRequest = -1;  /* NULL */
637 static int hf_gsm_map_vertical_accuracy = -1;     /* OCTET_STRING_SIZE_1 */
638 static int hf_gsm_map_responseTime = -1;          /* T_responseTime */
639 static int hf_gsm_map_responseTimeCategory = -1;  /* T_responseTimeCategory */
640 static int hf_gsm_map_locationEstimate = -1;      /* OCTET_STRING_SIZE_1_20 */
641 static int hf_gsm_map_ageOfLocationEstimate = -1;  /* INTEGER_0_32767 */
642 static int hf_gsm_map_mlcNumber = -1;             /* T_mlcNumber */
643 static int hf_gsm_map_targetMS = -1;              /* TargetMS */
644 static int hf_gsm_map_lcsLocationInfo = -1;       /* LcsLocationInfo */
645 static int hf_gsm_map_lcs_Event = -1;             /* Lcs_Event */
646 static int hf_gsm_map_na_ESRD = -1;               /* T_na_ESRD */
647 static int hf_gsm_map_na_ESRK = -1;               /* T_na_ESRK */
648 static int hf_gsm_map_networkResource = -1;       /* NetworkResource */
649 static int hf_gsm_map_extensibleSystemFailureParam = -1;  /* T_extensibleSystemFailureParam */
650 static int hf_gsm_map_unknownSubscriberDiagnostic = -1;  /* T_unknownSubscriberDiagnostic */
651 static int hf_gsm_map_roamingNotAllowedCause = -1;  /* T_roamingNotAllowedCause */
652 static int hf_gsm_map_absentSubscriberReason = -1;  /* T_absentSubscriberReason */
653 static int hf_gsm_map_ccbs_Busy = -1;             /* NULL */
654 static int hf_gsm_map_callBarringCause = -1;      /* CallBarringCause */
655 static int hf_gsm_map_extensibleCallBarredParam = -1;  /* T_extensibleCallBarredParam */
656 static int hf_gsm_map_unauthorisedMessageOriginator = -1;  /* NULL */
657 static int hf_gsm_map_cug_RejectCause = -1;       /* T_cug_RejectCause */
658 static int hf_gsm_map_gprsConnectionSuspended = -1;  /* NULL */
659 static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1;  /* T_sm_EnumeratedDeliveryFailureCause */
660 static int hf_gsm_map_diagnosticInfo = -1;        /* OCTET_STRING_SIZE_1_200 */
661 static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1;  /* T_unauthorizedLCSClient_Diagnostic */
662 static int hf_gsm_map_positionMethodFailure_Diagnostic = -1;  /* T_positionMethodFailure_Diagnostic */
663 static int hf_gsm_map_privateExtensionList = -1;  /* PrivateExtensionList */
664 static int hf_gsm_map_pcsExtensions = -1;         /* PcsExtensions */
665 /* named bits */
666 static int hf_gsm_map_SupportedCamelPhases_phase1 = -1;
667 static int hf_gsm_map_SupportedCamelPhases_phase2 = -1;
668 static int hf_gsm_map_SupportedCamelPhases_phase3 = -1;
669 static int hf_gsm_map_SupportedCamelPhases_phase4 = -1;
670 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
671 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
672 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
673 static int hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
674 static int hf_gsm_map_T_offeredCamel4CSIs_ocsi = -1;
675 static int hf_gsm_map_T_offeredCamel4CSIs_dcsi = -1;
676 static int hf_gsm_map_T_offeredCamel4CSIs_vtcsi = -1;
677 static int hf_gsm_map_T_offeredCamel4CSIs_tcsi = -1;
678 static int hf_gsm_map_T_offeredCamel4CSIs_mtsmscsi = -1;
679 static int hf_gsm_map_T_offeredCamel4CSIs_mgcsi = -1;
680 static int hf_gsm_map_T_offeredCamel4CSIs_psienhancements = -1;
681 static int hf_gsm_map_Odb_GeneralData_allOGCallsBarred = -1;
682 static int hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred = -1;
683 static int hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred = -1;
684 static int hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred = -1;
685 static int hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
686 static int hf_gsm_map_Odb_GeneralData_ssAccessBarred = -1;
687 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred = -1;
688 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred = -1;
689 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred = -1;
690 static int hf_gsm_map_Odb_GeneralData_allECTBarred = -1;
691 static int hf_gsm_map_Odb_GeneralData_chargeableECTBarred = -1;
692 static int hf_gsm_map_Odb_GeneralData_internationalECTBarred = -1;
693 static int hf_gsm_map_Odb_GeneralData_interzonalECTBarred = -1;
694 static int hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred = -1;
695 static int hf_gsm_map_Odb_GeneralData_multipleECTBarred = -1;
696 static int hf_gsm_map_Odb_GeneralData_allPacketOrientedServicesBarred = -1;
697 static int hf_gsm_map_Odb_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
698 static int hf_gsm_map_Odb_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
699 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
700 static int hf_gsm_map_Odb_GeneralData_allIC_CallsBarred = -1;
701 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
702 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
703 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_Barred = -1;
704 static int hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
705 static int hf_gsm_map_Odb_GeneralData_registrationAllCF_Barred = -1;
706 static int hf_gsm_map_Odb_GeneralData_registrationCFNotToHPLMN_Barred = -1;
707 static int hf_gsm_map_Odb_GeneralData_registrationInterzonalCF_Barred = -1;
708 static int hf_gsm_map_Odb_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
709 static int hf_gsm_map_Odb_GeneralData_registrationInternationalCF_Barred = -1;
710 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1 = -1;
711 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2 = -1;
712 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3 = -1;
713 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4 = -1;
714 static int hf_gsm_map_ServiceIndicator_clirInvoked = -1;
715 static int hf_gsm_map_ServiceIndicator_camelInvoked = -1;
716 static int hf_gsm_map_T_mw_Status_scAddressNotIncluded = -1;
717 static int hf_gsm_map_T_mw_Status_mnrfSet = -1;
718 static int hf_gsm_map_T_mw_Status_mcefSet = -1;
719 static int hf_gsm_map_T_mw_Status_mnrgSet = -1;
720 static int hf_gsm_map_T_specificCSIDeletedList_o_csi = -1;
721 static int hf_gsm_map_T_specificCSIDeletedList_ss_csi = -1;
722 static int hf_gsm_map_T_specificCSIDeletedList_tif_csi = -1;
723 static int hf_gsm_map_T_specificCSIDeletedList_d_csi = -1;
724 static int hf_gsm_map_T_specificCSIDeletedList_vt_csi = -1;
725 static int hf_gsm_map_T_specificCSIDeletedList_mo_sms_csi = -1;
726 static int hf_gsm_map_T_specificCSIDeletedList_m_csi = -1;
727 static int hf_gsm_map_T_specificCSIDeletedList_gprs_csi = -1;
728 static int hf_gsm_map_T_specificCSIDeletedList_t_csi = -1;
729 static int hf_gsm_map_T_specificCSIDeletedList_mt_sms_csi = -1;
730 static int hf_gsm_map_T_specificCSIDeletedList_mg_csi = -1;
731 static int hf_gsm_map_T_specificCSIDeletedList_o_IM_CSI = -1;
732 static int hf_gsm_map_T_specificCSIDeletedList_d_IM_CSI = -1;
733 static int hf_gsm_map_T_specificCSIDeletedList_vt_IM_CSI = -1;
734 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase1 = -1;
735 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase2 = -1;
736 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase3 = -1;
737 static int hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase4 = -1;
738 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase1 = -1;
739 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase2 = -1;
740 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase3 = -1;
741 static int hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase4 = -1;
742 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_o_csi = -1;
743 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_d_csi = -1;
744 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_vt_csi = -1;
745 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_t_csi = -1;
746 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_mt_sms_csi = -1;
747 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_mg_csi = -1;
748 static int hf_gsm_map_T_offeredCamel4CSIsInVLR_psi_enhancements = -1;
749 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_o_csi = -1;
750 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_d_csi = -1;
751 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_vt_csi = -1;
752 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_t_csi = -1;
753 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_mt_sms_csi = -1;
754 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_mg_csi = -1;
755 static int hf_gsm_map_T_offeredCamel4CSIsInSGSN_psi_enhancements = -1;
756
757 /*--- End of included file: packet-gsm_map-hf.c ---*/
758
759
760 /* Initialize the subtree pointers */
761 static gint ett_gsm_map = -1;
762 static gint ett_gsm_map_InvokeId = -1;
763 static gint ett_gsm_map_InvokePDU = -1;
764 static gint ett_gsm_map_ReturnResultPDU = -1;
765 static gint ett_gsm_map_ReturnErrorPDU = -1;
766 static gint ett_gsm_map_ReturnResult_result = -1;
767 static gint ett_gsm_map_ReturnError_result = -1;
768 static gint ett_gsm_map_GSMMAPPDU = -1;
769
770
771 /*--- Included file: packet-gsm_map-ett.c ---*/
772
773 static gint ett_gsm_map_Bss_APDU = -1;
774 static gint ett_gsm_map_An_APDU = -1;
775 static gint ett_gsm_map_SupportedCamelPhases = -1;
776 static gint ett_gsm_map_Vlr_Capability = -1;
777 static gint ett_gsm_map_T_superChargerSupportedInServingNetworkEntity = -1;
778 static gint ett_gsm_map_T_supportedLCS_CapabilitySets = -1;
779 static gint ett_gsm_map_T_offeredCamel4CSIs = -1;
780 static gint ett_gsm_map_UpdateLocationArg = -1;
781 static gint ett_gsm_map_T_add_info = -1;
782 static gint ett_gsm_map_UpdateLocationRes = -1;
783 static gint ett_gsm_map_PrivateExtensionList = -1;
784 static gint ett_gsm_map_PrivateExtension = -1;
785 static gint ett_gsm_map_PcsExtensions = -1;
786 static gint ett_gsm_map_CancelLocationArg = -1;
787 static gint ett_gsm_map_T_identity = -1;
788 static gint ett_gsm_map_T_imsi_WithLMSI = -1;
789 static gint ett_gsm_map_CancelLocationRes = -1;
790 static gint ett_gsm_map_PurgeMS_Arg = -1;
791 static gint ett_gsm_map_PurgeMS_Res = -1;
792 static gint ett_gsm_map_SendIdentificationRes = -1;
793 static gint ett_gsm_map_SendId_authenticationSetList = -1;
794 static gint ett_gsm_map_T_authenticationSetList_item = -1;
795 static gint ett_gsm_map_PrepareHO_Arg = -1;
796 static gint ett_gsm_map_PrepareHandoverV3Arg = -1;
797 static gint ett_gsm_map_T_allowedUMTS_Algorithms = -1;
798 static gint ett_gsm_map_T_radioResourceList = -1;
799 static gint ett_gsm_map_T_radioResourceList_item = -1;
800 static gint ett_gsm_map_T_bssmap_ServiceHandoverList = -1;
801 static gint ett_gsm_map_T_bssmap_ServiceHandoverList_item = -1;
802 static gint ett_gsm_map_T_iuSupportedCodecsList = -1;
803 static gint ett_gsm_map_T_utranCodecList = -1;
804 static gint ett_gsm_map_T_geranCodecList = -1;
805 static gint ett_gsm_map_T_uesbi_Iu = -1;
806 static gint ett_gsm_map_PrepareHO_Res = -1;
807 static gint ett_gsm_map_PrepareHandoverV3Res = -1;
808 static gint ett_gsm_map_T_relocationNumberList = -1;
809 static gint ett_gsm_map_T_relocationNumberList_item = -1;
810 static gint ett_gsm_map_T_selectedUMTS_Algorithms = -1;
811 static gint ett_gsm_map_T_chosenRadioResourceInformation = -1;
812 static gint ett_gsm_map_T_iuAvailableCodecsList = -1;
813 static gint ett_gsm_map_SendEndSignalV9Arg = -1;
814 static gint ett_gsm_map_PrepareSubsequentHO_Arg = -1;
815 static gint ett_gsm_map_SendAuthenticationInfoArgV3 = -1;
816 static gint ett_gsm_map_T_re_synchronisationInfo = -1;
817 static gint ett_gsm_map_SendAuthenticationInfoRes = -1;
818 static gint ett_gsm_map_SendAuthenticationInfoRes_item = -1;
819 static gint ett_gsm_map_SendAuthenticationInfoV3Res = -1;
820 static gint ett_gsm_map_T_authenticationSetList = -1;
821 static gint ett_gsm_map_T_tripletList = -1;
822 static gint ett_gsm_map_T_tripletList_item = -1;
823 static gint ett_gsm_map_T_quintupletList = -1;
824 static gint ett_gsm_map_T_quintupletList_item = -1;
825 static gint ett_gsm_map_BasicService = -1;
826 static gint ett_gsm_map_BasicServiceGroupList = -1;
827 static gint ett_gsm_map_Odb_GeneralData = -1;
828 static gint ett_gsm_map_Odb_HPLMN_Data = -1;
829 static gint ett_gsm_map_BcsmCamelTDPData = -1;
830 static gint ett_gsm_map_BcsmCamelTDPDataList = -1;
831 static gint ett_gsm_map_O_CSI = -1;
832 static gint ett_gsm_map_InsertSubscriberDataArg = -1;
833 static gint ett_gsm_map_bearerServiceList = -1;
834 static gint ett_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice = -1;
835 static gint ett_gsm_map_T_provisionedSS = -1;
836 static gint ett_gsm_map_T_provisionedSS_item = -1;
837 static gint ett_gsm_map_T_cug_Info = -1;
838 static gint ett_gsm_map_T_cug_SubscriptionList = -1;
839 static gint ett_gsm_map_T_cug_SubscriptionList_item = -1;
840 static gint ett_gsm_map_T_cug_FeatureList = -1;
841 static gint ett_gsm_map_T_cug_FeatureList_item = -1;
842 static gint ett_gsm_map_T_emlpp_Info = -1;
843 static gint ett_gsm_map_T_regionalSubscriptionData = -1;
844 static gint ett_gsm_map_T_vbsSubscriptionData = -1;
845 static gint ett_gsm_map_T_vbsSubscriptionData_item = -1;
846 static gint ett_gsm_map_T_vgcsSubscriptionData = -1;
847 static gint ett_gsm_map_T_vgcsSubscriptionData_item = -1;
848 static gint ett_gsm_map_T_vlrCamelSubscriptionInfo = -1;
849 static gint ett_gsm_map_T_ss_CSI = -1;
850 static gint ett_gsm_map_T_gprsSubscriptionData = -1;
851 static gint ett_gsm_map_T_gprsDataList = -1;
852 static gint ett_gsm_map_T_gprsDataList_item = -1;
853 static gint ett_gsm_map_T_lsaInformation = -1;
854 static gint ett_gsm_map_T_lsaDataList = -1;
855 static gint ett_gsm_map_T_lsaDataList_item = -1;
856 static gint ett_gsm_map_T_lcsInformation = -1;
857 static gint ett_gsm_map_T_gmlc_List = -1;
858 static gint ett_gsm_map_T_lcs_PrivacyExceptionList = -1;
859 static gint ett_gsm_map_T_lcs_PrivacyExceptionList_item = -1;
860 static gint ett_gsm_map_T_externalClientList = -1;
861 static gint ett_gsm_map_T_externalClientList_item = -1;
862 static gint ett_gsm_map_T_clientIdentity = -1;
863 static gint ett_gsm_map_T_plmnClientList = -1;
864 static gint ett_gsm_map_T_molr_List = -1;
865 static gint ett_gsm_map_T_molr_List_item = -1;
866 static gint ett_gsm_map_InsertSubscriberDataRes = -1;
867 static gint ett_gsm_map_ss_List = -1;
868 static gint ett_gsm_map_Ss_CamelData = -1;
869 static gint ett_gsm_map_T_ss_EventList = -1;
870 static gint ett_gsm_map_CallBarringInfo = -1;
871 static gint ett_gsm_map_CallBarringFeatureList = -1;
872 static gint ett_gsm_map_CallBarringFeatureList_item = -1;
873 static gint ett_gsm_map_ForwardingFeatureList = -1;
874 static gint ett_gsm_map_DestinationNumberCriteria = -1;
875 static gint ett_gsm_map_T_destinationNumberList = -1;
876 static gint ett_gsm_map_T_destinationNumberLengthList = -1;
877 static gint ett_gsm_map_ForwardingInfo = -1;
878 static gint ett_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList = -1;
879 static gint ett_gsm_map_Naea_PreferredCI = -1;
880 static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList = -1;
881 static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1;
882 static gint ett_gsm_map_Ss_SubscriptionOption = -1;
883 static gint ett_gsm_map_DeleteSubscriberDataArg = -1;
884 static gint ett_gsm_map_T_gprsSubscriptionDataWithdraw = -1;
885 static gint ett_gsm_map_T_contextIdList = -1;
886 static gint ett_gsm_map_T_lsaInformationWithdraw = -1;
887 static gint ett_gsm_map_T_lsaIdentityList = -1;
888 static gint ett_gsm_map_DeleteSubscriberDataRes = -1;
889 static gint ett_gsm_map_ResetArg = -1;
890 static gint ett_gsm_map_T_hlr_List = -1;
891 static gint ett_gsm_map_RestoreDataArg = -1;
892 static gint ett_gsm_map_RestoreDataRes = -1;
893 static gint ett_gsm_map_ActivateTraceModeArg = -1;
894 static gint ett_gsm_map_ActivateTraceModeRes = -1;
895 static gint ett_gsm_map_DeactivateTraceModeArg = -1;
896 static gint ett_gsm_map_DeactivateTraceModeRes = -1;
897 static gint ett_gsm_map_SendRoutingInfoArg = -1;
898 static gint ett_gsm_map_T_camelInfo = -1;
899 static gint ett_gsm_map_SendRoutingInfoRes = -1;
900 static gint ett_gsm_map_T_extendedRoutingInfo = -1;
901 static gint ett_gsm_map_T_routingInfo = -1;
902 static gint ett_gsm_map_T_camelRoutingInfo = -1;
903 static gint ett_gsm_map_T_gmscCamelSubscriptionInfo = -1;
904 static gint ett_gsm_map_T_t_CSI = -1;
905 static gint ett_gsm_map_T_ccbs_Indicators = -1;
906 static gint ett_gsm_map_SubscriberState = -1;
907 static gint ett_gsm_map_LocationInformation = -1;
908 static gint ett_gsm_map_T_cellIdOrLAI = -1;
909 static gint ett_gsm_map_SubscriberInfo = -1;
910 static gint ett_gsm_map_T_locationInformationGPRS = -1;
911 static gint ett_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI = -1;
912 static gint ett_gsm_map_T_ps_SubscriberState = -1;
913 static gint ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging = -1;
914 static gint ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item = -1;
915 static gint ett_gsm_map_T_ps_PDP_ActiveReachableForPaging = -1;
916 static gint ett_gsm_map_T_ps_PDP_ActiveReachableForPaging_item = -1;
917 static gint ett_gsm_map_T_gprs_MS_Class = -1;
918 static gint ett_gsm_map_T_mnpInfoRes = -1;
919 static gint ett_gsm_map_AdditionalSignalInfo = -1;
920 static gint ett_gsm_map_Cug_CheckInfo = -1;
921 static gint ett_gsm_map_ForwardingData = -1;
922 static gint ett_gsm_map_ProvideRoamingNumberArg = -1;
923 static gint ett_gsm_map_ProvideRoamingNumberRes = -1;
924 static gint ett_gsm_map_ResumeCallHandlingArg = -1;
925 static gint ett_gsm_map_T_uu_Data = -1;
926 static gint ett_gsm_map_ResumeCallHandlingRes = -1;
927 static gint ett_gsm_map_ProvideSIWFSNumberArg = -1;
928 static gint ett_gsm_map_ProvideSIWFSNumberRes = -1;
929 static gint ett_gsm_map_SIWFSSignallingModifyArg = -1;
930 static gint ett_gsm_map_SIWFSSignallingModifyRes = -1;
931 static gint ett_gsm_map_SetReportingStateArg = -1;
932 static gint ett_gsm_map_SetReportingStateRes = -1;
933 static gint ett_gsm_map_StatusReportArg = -1;
934 static gint ett_gsm_map_T_eventReportData = -1;
935 static gint ett_gsm_map_T_callReportdata = -1;
936 static gint ett_gsm_map_StatusReportRes = -1;
937 static gint ett_gsm_map_RemoteUserFreeArg = -1;
938 static gint ett_gsm_map_RemoteUserFreeRes = -1;
939 static gint ett_gsm_map_Ss_Data = -1;
940 static gint ett_gsm_map_RegisterSS_Arg = -1;
941 static gint ett_gsm_map_Ss_Info = -1;
942 static gint ett_gsm_map_Ccbs_Feature = -1;
943 static gint ett_gsm_map_Ss_ForBS = -1;
944 static gint ett_gsm_map_InterrogateSS_Res = -1;
945 static gint ett_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList = -1;
946 static gint ett_gsm_map_T_genericServiceInfo = -1;
947 static gint ett_gsm_map_T_ccbs_FeatureList = -1;
948 static gint ett_gsm_map_T_ccbs_FeatureList_item = -1;
949 static gint ett_gsm_map_Ussd_Arg = -1;
950 static gint ett_gsm_map_Ussd_Res = -1;
951 static gint ett_gsm_map_ServiceIndicator = -1;
952 static gint ett_gsm_map_RegisterCC_EntryArg = -1;
953 static gint ett_gsm_map_T_ccbs_Data = -1;
954 static gint ett_gsm_map_RegisterCC_EntryRes = -1;
955 static gint ett_gsm_map_EraseCC_EntryArg = -1;
956 static gint ett_gsm_map_EraseCC_EntryRes = -1;
957 static gint ett_gsm_map_RoutingInfoForSMArg = -1;
958 static gint ett_gsm_map_RoutingInfoForSMRes = -1;
959 static gint ett_gsm_map_T_locationInfoWithLMSI = -1;
960 static gint ett_gsm_map_T_additional_Number = -1;
961 static gint ett_gsm_map_Mo_forwardSM_Arg = -1;
962 static gint ett_gsm_map_Mo_forwardSM_Res = -1;
963 static gint ett_gsm_map_Sm_RP_OA = -1;
964 static gint ett_gsm_map_Sm_RP_DA = -1;
965 static gint ett_gsm_map_Mt_forwardSM_Arg = -1;
966 static gint ett_gsm_map_Mt_forwardSM_Res = -1;
967 static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1;
968 static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1;
969 static gint ett_gsm_map_InformServiceCentreArg = -1;
970 static gint ett_gsm_map_T_mw_Status = -1;
971 static gint ett_gsm_map_AlertServiceCentreArg = -1;
972 static gint ett_gsm_map_ReadyForSM_Arg = -1;
973 static gint ett_gsm_map_ReadyForSM_Res = -1;
974 static gint ett_gsm_map_ProvideSubscriberInfoArg = -1;
975 static gint ett_gsm_map_ProvideSubscriberInfoRes = -1;
976 static gint ett_gsm_map_RequestedInfo = -1;
977 static gint ett_gsm_map_AnyTimeInterrogationArg = -1;
978 static gint ett_gsm_map_AnyTimeInterrogationRes = -1;
979 static gint ett_gsm_map_AnyTimeSubscriptionInterrogationArg = -1;
980 static gint ett_gsm_map_T_requestedSubscriptionInfo = -1;
981 static gint ett_gsm_map_T_requestedSS_Info = -1;
982 static gint ett_gsm_map_AnyTimeSubscriptionInterrogationRes = -1;
983 static gint ett_gsm_map_T_callForwardingData = -1;
984 static gint ett_gsm_map_T_callBarringData = -1;
985 static gint ett_gsm_map_T_odb_Info = -1;
986 static gint ett_gsm_map_T_camel_SubscriptionInfo = -1;
987 static gint ett_gsm_map_T_o_BcsmCamelTDP_CriteriaList = -1;
988 static gint ett_gsm_map_T_o_BcsmCamelTDP_CriteriaList_item = -1;
989 static gint ett_gsm_map_T_d_CSI = -1;
990 static gint ett_gsm_map_T_t_CSI1 = -1;
991 static gint ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList = -1;
992 static gint ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item = -1;
993 static gint ett_gsm_map_T_vt_CSI = -1;
994 static gint ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList = -1;
995 static gint ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item = -1;
996 static gint ett_gsm_map_T_gprs_CSI = -1;
997 static gint ett_gsm_map_T_gprs_CamelTDPDataList = -1;
998 static gint ett_gsm_map_T_gprs_CamelTDPDataList_item = -1;
999 static gint ett_gsm_map_T_mo_sms_CSI = -1;
1000 static gint ett_gsm_map_T_ss_CSI1 = -1;
1001 static gint ett_gsm_map_T_m_CSI = -1;
1002 static gint ett_gsm_map_T_specificCSIDeletedList = -1;
1003 static gint ett_gsm_map_T_mt_sms_CSI = -1;
1004 static gint ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList = -1;
1005 static gint ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item = -1;
1006 static gint ett_gsm_map_T_tpdu_TypeCriterion = -1;
1007 static gint ett_gsm_map_T_mg_csi = -1;
1008 static gint ett_gsm_map_T_o_IM_CSI = -1;
1009 static gint ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList = -1;
1010 static gint ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item = -1;
1011 static gint ett_gsm_map_T_d_IM_CSI = -1;
1012 static gint ett_gsm_map_T_vt_IM_CSI = -1;
1013 static gint ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1;
1014 static gint ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item = -1;
1015 static gint ett_gsm_map_T_supportedVLR_CAMEL_Phases = -1;
1016 static gint ett_gsm_map_T_supportedSGSN_CAMEL_Phases = -1;
1017 static gint ett_gsm_map_T_offeredCamel4CSIsInVLR = -1;
1018 static gint ett_gsm_map_T_offeredCamel4CSIsInSGSN = -1;
1019 static gint ett_gsm_map_Sms_CAMEL_TDP_DataList = -1;
1020 static gint ett_gsm_map_Sms_CAMEL_TDP_DataList_item = -1;
1021 static gint ett_gsm_map_T_CauseValueCriteria = -1;
1022 static gint ett_gsm_map_O_CauseValueCriteria = -1;
1023 static gint ett_gsm_map_MobilityTriggers = -1;
1024 static gint ett_gsm_map_BasicServiceCriteria = -1;
1025 static gint ett_gsm_map_BasicServiceCriteria_item = -1;
1026 static gint ett_gsm_map_Dp_AnalysedInfoCriteriaList = -1;
1027 static gint ett_gsm_map_Dp_AnalysedInfoCriteriaList_item = -1;
1028 static gint ett_gsm_map_SubscriberIdentity = -1;
1029 static gint ett_gsm_map_AnyTimeModificationArg = -1;
1030 static gint ett_gsm_map_T_modificationRequestFor_CF_Info = -1;
1031 static gint ett_gsm_map_T_basicService = -1;
1032 static gint ett_gsm_map_T_modificationRequestFor_CB_Info = -1;
1033 static gint ett_gsm_map_T_basicService1 = -1;
1034 static gint ett_gsm_map_T_modificationRequestFor_CSI = -1;
1035 static gint ett_gsm_map_T_modificationRequestFor_ODB_data = -1;
1036 static gint ett_gsm_map_Odb_data = -1;
1037 static gint ett_gsm_map_Ss_InvocationNotificationArg = -1;
1038 static gint ett_gsm_map_T_ss_EventSpecification = -1;
1039 static gint ett_gsm_map_Ss_InvocationNotificationRes = -1;
1040 static gint ett_gsm_map_PrepareGroupCallArg = -1;
1041 static gint ett_gsm_map_PrepareGroupCallRes = -1;
1042 static gint ett_gsm_map_SendGroupCallEndSignalArg = -1;
1043 static gint ett_gsm_map_SendGroupCallEndSignalRes = -1;
1044 static gint ett_gsm_map_ProcessGroupCallSignallingArg = -1;
1045 static gint ett_gsm_map_ForwardGroupCallSignallingArg = -1;
1046 static gint ett_gsm_map_UpdateGprsLocationArg = -1;
1047 static gint ett_gsm_map_T_sgsn_Capability = -1;
1048 static gint ett_gsm_map_UpdateGprsLocationRes = -1;
1049 static gint ett_gsm_map_SendRoutingInfoForGprsArg = -1;
1050 static gint ett_gsm_map_SendRoutingInfoForGprsRes = -1;
1051 static gint ett_gsm_map_FailureReportArg = -1;
1052 static gint ett_gsm_map_FailureReportRes = -1;
1053 static gint ett_gsm_map_NoteMsPresentForGprsArg = -1;
1054 static gint ett_gsm_map_NoteMsPresentForGprsRes = -1;
1055 static gint ett_gsm_map_LcsClientExternalID = -1;
1056 static gint ett_gsm_map_LcsClientName = -1;
1057 static gint ett_gsm_map_Lcs_ClientID = -1;
1058 static gint ett_gsm_map_LcsLocationInfo = -1;
1059 static gint ett_gsm_map_ProvideSubscriberLocation_Arg = -1;
1060 static gint ett_gsm_map_T_locationType = -1;
1061 static gint ett_gsm_map_T_lcs_QoS = -1;
1062 static gint ett_gsm_map_T_responseTime = -1;
1063 static gint ett_gsm_map_ProvideSubscriberLocation_Res = -1;
1064 static gint ett_gsm_map_TargetMS = -1;
1065 static gint ett_gsm_map_RoutingInfoForLCS_Arg = -1;
1066 static gint ett_gsm_map_RoutingInfoForLCS_Res = -1;
1067 static gint ett_gsm_map_SubscriberLocationReport_Arg = -1;
1068 static gint ett_gsm_map_SubscriberLocationReport_Res = -1;
1069 static gint ett_gsm_map_SystemFailureParam = -1;
1070 static gint ett_gsm_map_T_extensibleSystemFailureParam = -1;
1071 static gint ett_gsm_map_DataMissingParam = -1;
1072 static gint ett_gsm_map_UnexpectedDataParam = -1;
1073 static gint ett_gsm_map_FacilityNotSupParam = -1;
1074 static gint ett_gsm_map_IncompatibleTerminalParam = -1;
1075 static gint ett_gsm_map_ResourceLimitationParam = -1;
1076 static gint ett_gsm_map_UnknownSubscriberParam = -1;
1077 static gint ett_gsm_map_NumberChangedParam = -1;
1078 static gint ett_gsm_map_UnidentifiedSubParam = -1;
1079 static gint ett_gsm_map_RoamingNotAllowedParam = -1;
1080 static gint ett_gsm_map_IllegalSubscriberParam = -1;
1081 static gint ett_gsm_map_IllegalEquipmentParam = -1;
1082 static gint ett_gsm_map_BearerServNotProvParam = -1;
1083 static gint ett_gsm_map_TeleservNotProvParam = -1;
1084 static gint ett_gsm_map_TracingBufferFullParam = -1;
1085 static gint ett_gsm_map_NoRoamingNbParam = -1;
1086 static gint ett_gsm_map_AbsentSubscriberParam = -1;
1087 static gint ett_gsm_map_BusySubscriberParam = -1;
1088 static gint ett_gsm_map_NoSubscriberReplyParam = -1;
1089 static gint ett_gsm_map_CallBarredParam = -1;
1090 static gint ett_gsm_map_T_extensibleCallBarredParam = -1;
1091 static gint ett_gsm_map_ForwardingFailedParam = -1;
1092 static gint ett_gsm_map_Or_NotAllowedParam = -1;
1093 static gint ett_gsm_map_ForwardingViolationParam = -1;
1094 static gint ett_gsm_map_Cug_RejectParam = -1;
1095 static gint ett_gsm_map_Ati_NotAllowedParam = -1;
1096 static gint ett_gsm_map_NoGroupCallNbParam = -1;
1097 static gint ett_gsm_map_Ss_IncompatibilityCause = -1;
1098 static gint ett_gsm_map_ShortTermDenialParam = -1;
1099 static gint ett_gsm_map_LongTermDenialParam = -1;
1100 static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
1101 static gint ett_gsm_map_Sm_DeliveryFailureCause = -1;
1102 static gint ett_gsm_map_MessageWaitListFullParam = -1;
1103 static gint ett_gsm_map_AbsentSubscriberSM_Param = -1;
1104 static gint ett_gsm_map_UnauthorizedRequestingNetwork_Param = -1;
1105 static gint ett_gsm_map_UnauthorizedLCSClient_Param = -1;
1106 static gint ett_gsm_map_PositionMethodFailure_Param = -1;
1107 static gint ett_gsm_map_UnknownOrUnreachableLCSClient_Param = -1;
1108 static gint ett_gsm_map_ExtensionContainer = -1;
1109
1110 /*--- End of included file: packet-gsm_map-ett.c ---*/
1111
1112
1113 static dissector_table_t        sms_dissector_table;    /* SMS TPDU */
1114 /* Preferenc settings default */
1115 static guint tcap_itu_ssn1 = 6;
1116 static guint tcap_itu_ssn2 = 7;
1117 static guint tcap_itu_ssn3 = 8;
1118 static guint tcap_itu_ssn4 = 9;
1119
1120 static guint global_tcap_itu_ssn1 = 6;
1121 static guint global_tcap_itu_ssn2 = 7;
1122 static guint global_tcap_itu_ssn3 = 8;
1123 static guint global_tcap_itu_ssn4 = 9;
1124
1125 /* Global variables */
1126 static proto_tree *top_tree;
1127 int application_context_version;
1128 gint protocolId;
1129 static int gsm_map_tap = -1;
1130
1131
1132 static char*
1133 unpack_digits(tvbuff_t *tvb, int offset){
1134
1135         int length;
1136         guint8 octet;
1137         int i=0;
1138         char *digit_str;
1139
1140         length = tvb_length(tvb);
1141         length = length - offset;
1142         digit_str = g_malloc(length+1);
1143
1144         while ( offset <= length ){
1145
1146                 octet = tvb_get_guint8(tvb,offset);
1147                 digit_str[i] = ((octet & 0x0f) + 0x30);
1148                 i++;
1149
1150                 /*
1151                  * unpack second value in byte
1152                  */
1153                 octet = octet >> 4;
1154
1155                 if (octet == 0x0f)      /* odd number bytes - hit filler */
1156                         break;
1157
1158                 digit_str[i] = ((octet & 0x0f) + 0x30);
1159                 i++;
1160                 offset++;
1161
1162         }
1163         digit_str[i]= '\0';
1164         return digit_str;
1165 }
1166
1167
1168
1169 /*--- Included file: packet-gsm_map-fn.c ---*/
1170
1171 /*--- Fields for imported types ---*/
1172
1173
1174
1175 static const value_string gsm_map_ProtocolId_vals[] = {
1176   {   1, "gsm-0408" },
1177   {   2, "gsm-0806" },
1178   {   3, "gsm-BSSMAP" },
1179   {   4, "ets-300102-1" },
1180   { 0, NULL }
1181 };
1182
1183
1184 static int
1185 dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1186
1187   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &protocolId);
1188
1189
1190   return offset;
1191 }
1192 static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1193   return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protocolId);
1194 }
1195
1196
1197 static int
1198 dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1199
1200  tvbuff_t       *parameter_tvb;
1201  guint8         octet;
1202  guint8         length;
1203
1204  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1205                                     &parameter_tvb);
1206  if (!parameter_tvb)
1207         return offset;
1208  switch (protocolId){
1209         /* gsm-0408 */
1210         case 1:
1211                 break;
1212         /* gsm-0806 */
1213         case 2:
1214                 break;
1215         /* gsm-BSSMAP */
1216         case 3:
1217                 break;
1218         /* ets-300102-1 (~Q.931 ) */
1219         case 4:
1220                 octet = tvb_get_guint8(parameter_tvb,0);
1221                 length = tvb_get_guint8(parameter_tvb,1);
1222                 if ( octet == 4 )
1223                         dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree);
1224                 break;
1225         default:
1226                 break;
1227 }
1228
1229
1230   return offset;
1231 }
1232 static int dissect_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1233   return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo);
1234 }
1235
1236
1237 static int
1238 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_) {
1239   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
1240                                          hf_index, NULL);
1241
1242   return offset;
1243 }
1244 static int dissect_extId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1245   return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extId);
1246 }
1247
1248
1249 static int
1250 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_) {
1251   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1252                                     NULL);
1253
1254   return offset;
1255 }
1256 static int dissect_extType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1257   return dissect_gsm_map_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extType);
1258 }
1259 static int dissect_bearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1260   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerService);
1261 }
1262 static int dissect_dataCodingScheme_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1263   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dataCodingScheme);
1264 }
1265 static int dissect_nameString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1266   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nameString);
1267 }
1268 static int dissect_lcsClientDialedByMS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1269   return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientDialedByMS);
1270 }
1271
1272 static const ber_sequence_t PrivateExtension_sequence[] = {
1273   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId },
1274   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extType },
1275   { 0, 0, 0, NULL }
1276 };
1277
1278 static int
1279 dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1280   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1281                                 PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
1282
1283   return offset;
1284 }
1285 static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1286   return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_PrivateExtensionList_item);
1287 }
1288
1289 static const ber_sequence_t PrivateExtensionList_sequence_of[1] = {
1290   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
1291 };
1292
1293 static int
1294 dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1295   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1296                                    PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
1297
1298   return offset;
1299 }
1300 static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1301   return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privateExtensionList);
1302 }
1303
1304 static const ber_sequence_t PcsExtensions_sequence[] = {
1305   { 0, 0, 0, NULL }
1306 };
1307
1308 static int
1309 dissect_gsm_map_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1310   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1311                                 PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
1312
1313   return offset;
1314 }
1315 static int dissect_pcsExtensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1316   return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pcsExtensions);
1317 }
1318
1319 static const ber_sequence_t ExtensionContainer_sequence[] = {
1320   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
1321   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
1322   { 0, 0, 0, NULL }
1323 };
1324
1325 static int
1326 dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1327   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1328                                 ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
1329
1330   return offset;
1331 }
1332 static int dissect_extensionContainer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1333   return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
1334 }
1335 static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1336   return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
1337 }
1338
1339 static const ber_sequence_t Bss_APDU_sequence[] = {
1340   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
1341   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
1342   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1343   { 0, 0, 0, NULL }
1344 };
1345
1346 static int
1347 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_) {
1348   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1349                                 Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
1350
1351   return offset;
1352 }
1353 static int dissect_bss_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1354   return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bss_APDU);
1355 }
1356 static int dissect_networkSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1357   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkSignalInfo);
1358 }
1359 static int dissect_gsm_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1360   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsm_BearerCapability);
1361 }
1362 static int dissect_isdn_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1363   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_isdn_BearerCapability);
1364 }
1365 static int dissect_chosenChannel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1366   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenChannel);
1367 }
1368 static int dissect_lowerLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1369   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lowerLayerCompatibility);
1370 }
1371 static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1372   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_highLayerCompatibility);
1373 }
1374 static int dissect_channelType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1375   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_channelType);
1376 }
1377 static int dissect_callInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1378   return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callInfo);
1379 }
1380
1381
1382 static const value_string gsm_map_T_accessNetworkProtocolId_vals[] = {
1383   {   1, "ts3G-48006" },
1384   {   2, "ts3G-25413" },
1385   { 0, NULL }
1386 };
1387
1388
1389 static int
1390 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_) {
1391   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1392
1393   return offset;
1394 }
1395 static int dissect_accessNetworkProtocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1396   return dissect_gsm_map_T_accessNetworkProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_accessNetworkProtocolId);
1397 }
1398
1399
1400 static int
1401 dissect_gsm_map_SignalInfo2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1402   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1403                                     NULL);
1404
1405   return offset;
1406 }
1407 static int dissect_signalInfo2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1408   return dissect_gsm_map_SignalInfo2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo2);
1409 }
1410
1411 static const ber_sequence_t An_APDU_sequence[] = {
1412   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_accessNetworkProtocolId },
1413   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo2 },
1414   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1415   { 0, 0, 0, NULL }
1416 };
1417
1418 static int
1419 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_) {
1420   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1421                                 An_APDU_sequence, hf_index, ett_gsm_map_An_APDU);
1422
1423   return offset;
1424 }
1425 static int dissect_an_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1426   return dissect_gsm_map_An_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_an_APDU);
1427 }
1428 static int dissect_an_APDU_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1429   return dissect_gsm_map_An_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_an_APDU);
1430 }
1431
1432 static const asn_namedbit SupportedCamelPhases_bits[] = {
1433   {  0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, NULL, NULL },
1434   {  1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, NULL, NULL },
1435   {  2, &hf_gsm_map_SupportedCamelPhases_phase3, -1, -1, NULL, NULL },
1436   {  3, &hf_gsm_map_SupportedCamelPhases_phase4, -1, -1, NULL, NULL },
1437   { 0, NULL, 0, 0, NULL, NULL }
1438 };
1439
1440 static int
1441 dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1442   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1443                                  SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
1444                                  NULL);
1445
1446   return offset;
1447 }
1448 static int dissect_supportedCamelPhases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1449   return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
1450 }
1451 static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1452   return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
1453 }
1454 static int dissect_supportedCamelPhasesInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1455   return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInGMSC);
1456 }
1457
1458
1459 static int
1460 dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1461   { proto_item *ti_tmp;
1462   ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
1463   proto_item_append_text(ti_tmp, ": NULL");
1464   }
1465
1466   return offset;
1467 }
1468 static int dissect_solsaSupportIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1469   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
1470 }
1471 static int dissect_solsaSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1472   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
1473 }
1474 static int dissect_sendSubscriberData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1475   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sendSubscriberData);
1476 }
1477 static int dissect_longFTN_Supported_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1478   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_longFTN_Supported);
1479 }
1480 static int dissect_informPreviousNetworkEntity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1481   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_informPreviousNetworkEntity);
1482 }
1483 static int dissect_cs_LCS_NotSupportedByUE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1484   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cs_LCS_NotSupportedByUE);
1485 }
1486 static int dissect_skipSubscriberDataUpdate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1487   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_skipSubscriberDataUpdate);
1488 }
1489 static int dissect_freezeTMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1490   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeTMSI);
1491 }
1492 static int dissect_freezeP_TMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1493   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeP_TMSI);
1494 }
1495 static int dissect_ho_NumberNotRequired(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1496   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ho_NumberNotRequired);
1497 }
1498 static int dissect_multipleBearerRequested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1499   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_multipleBearerRequested);
1500 }
1501 static int dissect_rab_ConfigurationIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1502   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_rab_ConfigurationIndicator);
1503 }
1504 static int dissect_multipleBearerNotSupported(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1505   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_multipleBearerNotSupported);
1506 }
1507 static int dissect_segmentationProhibited(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1508   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_segmentationProhibited);
1509 }
1510 static int dissect_immediateResponsePreferred_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1511   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_immediateResponsePreferred);
1512 }
1513 static int dissect_roamingRestrictionDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1514   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictionDueToUnsupportedFeature);
1515 }
1516 static int dissect_broadcastInitEntitlement(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1517   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_broadcastInitEntitlement);
1518 }
1519 static int dissect_tif_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1520   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tif_CSI);
1521 }
1522 static int dissect_completeDataListIncluded(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1523   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_completeDataListIncluded);
1524 }
1525 static int dissect_vplmnAddressAllowed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1526   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vplmnAddressAllowed);
1527 }
1528 static int dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1529   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature);
1530 }
1531 static int dissect_lsaActiveModeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1532   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaActiveModeIndicator);
1533 }
1534 static int dissect_lmu_Indicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1535   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmu_Indicator);
1536 }
1537 static int dissect_vbsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1538   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsGroupIndication);
1539 }
1540 static int dissect_vgcsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1541   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsGroupIndication);
1542 }
1543 static int dissect_camelSubscriptionInfoWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1544   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelSubscriptionInfoWithdraw);
1545 }
1546 static int dissect_allGPRSData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1547   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allGPRSData);
1548 }
1549 static int dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1550   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature);
1551 }
1552 static int dissect_allLSAData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1553   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allLSAData);
1554 }
1555 static int dissect_gmlc_ListWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1556   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_ListWithdraw);
1557 }
1558 static int dissect_msNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1559   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msNotReachable);
1560 }
1561 static int dissect_or_Interrogation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1562   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Interrogation);
1563 }
1564 static int dissect_suppress_T_CSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1565   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_suppress_T_CSI);
1566 }
1567 static int dissect_suppressionOfAnnouncement_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1568   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_suppressionOfAnnouncement);
1569 }
1570 static int dissect_ccbs_Call_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1571   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Call);
1572 }
1573 static int dissect_cugSubscriptionFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1574   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cugSubscriptionFlag);
1575 }
1576 static int dissect_forwardingInterrogationRequired_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1577   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInterrogationRequired);
1578 }
1579 static int dissect_ccbs_Possible_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1580   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Possible);
1581 }
1582 static int dissect_keepCCBS_CallIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1583   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_keepCCBS_CallIndicator);
1584 }
1585 static int dissect_assumedIdle_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1586   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_assumedIdle);
1587 }
1588 static int dissect_camelBusy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1589   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelBusy);
1590 }
1591 static int dissect_notProvidedFromVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1592   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notProvidedFromVLR);
1593 }
1594 static int dissect_currentLocationRetrieved_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1595   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_currentLocationRetrieved);
1596 }
1597 static int dissect_sai_Present_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1598   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sai_Present);
1599 }
1600 static int dissect_notProvidedFromSGSN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1601   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notProvidedFromSGSN);
1602 }
1603 static int dissect_ps_Detached_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1604   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_Detached);
1605 }
1606 static int dissect_ps_AttachedNotReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1607   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_AttachedNotReachableForPaging);
1608 }
1609 static int dissect_ps_AttachedReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1610   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_AttachedReachableForPaging);
1611 }
1612 static int dissect_pdp_ContextActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1613   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextActive);
1614 }
1615 static int dissect_cug_OutgoingAccess(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1616   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_OutgoingAccess);
1617 }
1618 static int dissect_orNotSupportedInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1619   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_orNotSupportedInGMSC);
1620 }
1621 static int dissect_uusCFInteraction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1622   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uusCFInteraction);
1623 }
1624 static int dissect_allInformationSent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1625   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allInformationSent);
1626 }
1627 static int dissect_replaceB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1628   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_replaceB_Number);
1629 }
1630 static int dissect_gprsSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1631   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSupportIndicator);
1632 }
1633 static int dissect_gprsNodeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1634   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsNodeIndicator);
1635 }
1636 static int dissect_noSM_RP_OA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1637   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_OA);
1638 }
1639 static int dissect_noSM_RP_DA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1640   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_DA);
1641 }
1642 static int dissect_moreMessagesToSend(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1643   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_moreMessagesToSend);
1644 }
1645 static int dissect_deliveryOutcomeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1646   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_deliveryOutcomeIndicator);
1647 }
1648 static int dissect_alertReasonIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1649   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReasonIndicator);
1650 }
1651 static int dissect_locationInformationFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1652   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformationFlag);
1653 }
1654 static int dissect_subscriberStateFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1655   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStateFlag);
1656 }
1657 static int dissect_currentLocation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1658   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_currentLocation);
1659 }
1660 static int dissect_imei1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1661   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei1);
1662 }
1663 static int dissect_ms_classmark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1664   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ms_classmark);
1665 }
1666 static int dissect_mnpRequestedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1667   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mnpRequestedInfo);
1668 }
1669 static int dissect_odb_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1670   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb);
1671 }
1672 static int dissect_supportedVLR_CAMEL_Phases_flg_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1673   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedVLR_CAMEL_Phases_flg);
1674 }
1675 static int dissect_supportedSGSN_CAMEL_Phases_flg_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1676   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases_flg);
1677 }
1678 static int dissect_notificationToCSE(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1679   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToCSE);
1680 }
1681 static int dissect_notificationToCSE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1682   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToCSE);
1683 }
1684 static int dissect_csi_Active_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1685   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_csi_Active);
1686 }
1687 static int dissect_tif_CSI_NotificationToCSE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1688   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tif_CSI_NotificationToCSE);
1689 }
1690 static int dissect_csiActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1691   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_csiActive);
1692 }
1693 static int dissect_uplinkFree_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1694   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkFree);
1695 }
1696 static int dissect_uplinkRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1697   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequest);
1698 }
1699 static int dissect_uplinkReleaseIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1700   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseIndication);
1701 }
1702 static int dissect_releaseGroupCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1703   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_releaseGroupCall);
1704 }
1705 static int dissect_uplinkRequestAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1706   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequestAck);
1707 }
1708 static int dissect_uplinkRejectCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1709   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRejectCommand);
1710 }
1711 static int dissect_uplinkSeizedCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1712   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkSeizedCommand);
1713 }
1714 static int dissect_uplinkReleaseCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1715   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseCommand);
1716 }
1717 static int dissect_privacyOverride_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1718   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privacyOverride);
1719 }
1720 static int dissect_verticalCoordinateRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1721   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_verticalCoordinateRequest);
1722 }
1723 static int dissect_ccbs_Busy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1724   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Busy);
1725 }
1726 static int dissect_unauthorisedMessageOriginator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1727   return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorisedMessageOriginator);
1728 }
1729 static int dissect_gprsConnectionSuspended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1730   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsConnectionSuspended);
1731 }
1732
1733
1734 static const value_string gsm_map_T_istSupportIndicator_vals[] = {
1735   {   0, "basicISTSupported" },
1736   {   1, "istCommandSupported" },
1737   { 0, NULL }
1738 };
1739
1740
1741 static int
1742 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_) {
1743   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1744
1745   return offset;
1746 }
1747 static int dissect_istSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1748   return dissect_gsm_map_T_istSupportIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_istSupportIndicator);
1749 }
1750
1751
1752 static int
1753 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_) {
1754   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1755                                     NULL);
1756
1757   return offset;
1758 }
1759 static int dissect_subscriberDataStored_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1760   return dissect_gsm_map_OCTET_STRING_SIZE_1_6(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberDataStored);
1761 }
1762
1763
1764 static const value_string gsm_map_T_superChargerSupportedInServingNetworkEntity_vals[] = {
1765   {   0, "sendSubscriberData" },
1766   {   1, "subscriberDataStored" },
1767   { 0, NULL }
1768 };
1769
1770 static const ber_choice_t T_superChargerSupportedInServingNetworkEntity_choice[] = {
1771   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendSubscriberData_impl },
1772   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_subscriberDataStored_impl },
1773   { 0, 0, 0, 0, NULL }
1774 };
1775
1776 static int
1777 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_) {
1778   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1779                               T_superChargerSupportedInServingNetworkEntity_choice, hf_index, ett_gsm_map_T_superChargerSupportedInServingNetworkEntity);
1780
1781   return offset;
1782 }
1783 static int dissect_superChargerSupportedInServingNetworkEntity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1784   return dissect_gsm_map_T_superChargerSupportedInServingNetworkEntity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity);
1785 }
1786
1787 static const asn_namedbit T_supportedLCS_CapabilitySets_bits[] = {
1788   {  0, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, NULL, NULL },
1789   {  1, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, NULL, NULL },
1790   {  2, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, NULL, NULL },
1791   {  3, &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, NULL, NULL },
1792   { 0, NULL, 0, 0, NULL, NULL }
1793 };
1794
1795 static int
1796 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_) {
1797   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1798                                  T_supportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_T_supportedLCS_CapabilitySets,
1799                                  NULL);
1800
1801   return offset;
1802 }
1803 static int dissect_supportedLCS_CapabilitySets_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1804   return dissect_gsm_map_T_supportedLCS_CapabilitySets(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedLCS_CapabilitySets);
1805 }
1806
1807 static const asn_namedbit T_offeredCamel4CSIs_bits[] = {
1808   {  0, &hf_gsm_map_T_offeredCamel4CSIs_ocsi, -1, -1, NULL, NULL },
1809   {  1, &hf_gsm_map_T_offeredCamel4CSIs_dcsi, -1, -1, NULL, NULL },
1810   {  2, &hf_gsm_map_T_offeredCamel4CSIs_vtcsi, -1, -1, NULL, NULL },
1811   {  3, &hf_gsm_map_T_offeredCamel4CSIs_tcsi, -1, -1, NULL, NULL },
1812   {  4, &hf_gsm_map_T_offeredCamel4CSIs_mtsmscsi, -1, -1, NULL, NULL },
1813   {  5, &hf_gsm_map_T_offeredCamel4CSIs_mgcsi, -1, -1, NULL, NULL },
1814   {  6, &hf_gsm_map_T_offeredCamel4CSIs_psienhancements, -1, -1, NULL, NULL },
1815   { 0, NULL, 0, 0, NULL, NULL }
1816 };
1817
1818 static int
1819 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_) {
1820   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1821                                  T_offeredCamel4CSIs_bits, hf_index, ett_gsm_map_T_offeredCamel4CSIs,
1822                                  NULL);
1823
1824   return offset;
1825 }
1826 static int dissect_offeredCamel4CSIs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1827   return dissect_gsm_map_T_offeredCamel4CSIs(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIs);
1828 }
1829
1830 static const ber_sequence_t Vlr_Capability_sequence[] = {
1831   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
1832   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1833   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_solsaSupportIndicator_impl },
1834   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istSupportIndicator_impl },
1835   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_superChargerSupportedInServingNetworkEntity },
1836   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
1837   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl },
1838   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl },
1839   { 0, 0, 0, NULL }
1840 };
1841
1842 static int
1843 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_) {
1844   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1845                                 Vlr_Capability_sequence, hf_index, ett_gsm_map_Vlr_Capability);
1846
1847   return offset;
1848 }
1849 static int dissect_vlr_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1850   return dissect_gsm_map_Vlr_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Capability);
1851 }
1852
1853
1854 static int
1855 dissect_gsm_map_Imsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1856
1857  tvbuff_t       *parameter_tvb;
1858  char           *digit_str;
1859
1860  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1861                                     &parameter_tvb);
1862  if (!parameter_tvb)
1863         return offset;
1864
1865  digit_str = unpack_digits(parameter_tvb, 0);
1866
1867  proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str);
1868  
1869
1870
1871
1872   return offset;
1873 }
1874 static int dissect_imsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1875   return dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
1876 }
1877 static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1878   return dissect_gsm_map_Imsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
1879 }
1880
1881
1882 static int
1883 dissect_gsm_map_Lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1884   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1885                                     NULL);
1886
1887   return offset;
1888 }
1889 static int dissect_lmsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1890   return dissect_gsm_map_Lmsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
1891 }
1892 static int dissect_lmsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1893   return dissect_gsm_map_Lmsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
1894 }
1895
1896
1897 static int
1898 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_) {
1899   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1900                                     NULL);
1901
1902   return offset;
1903 }
1904 static int dissect_msc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1905   return dissect_gsm_map_Msc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
1906 }
1907 static int dissect_msc_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1908   return dissect_gsm_map_Msc_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
1909 }
1910
1911
1912 static int
1913 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_) {
1914   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1915                                     NULL);
1916
1917   return offset;
1918 }
1919 static int dissect_vlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1920   return dissect_gsm_map_Vlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
1921 }
1922 static int dissect_vlr_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1923   return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
1924 }
1925 static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1926   return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_number);
1927 }
1928
1929
1930 static int
1931 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_) {
1932   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1933                                     NULL);
1934
1935   return offset;
1936 }
1937 static int dissect_v_gmlc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1938   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_v_gmlc_Address);
1939 }
1940 static int dissect_rnc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1941   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_rnc_Address);
1942 }
1943 static int dissect_sgsn_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1944   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
1945 }
1946 static int dissect_sgsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1947   return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
1948 }
1949
1950
1951 static int
1952 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_) {
1953   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1954                                     NULL);
1955
1956   return offset;
1957 }
1958 static int dissect_imeisv_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1959   return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imeisv);
1960 }
1961 static int dissect_kc(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1962   return dissect_gsm_map_OCTET_STRING_SIZE_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_kc);
1963 }
1964 static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1965   return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geographicalInformation);
1966 }
1967 static int dissect_groupKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1968   return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKey);
1969 }
1970
1971 static const ber_sequence_t T_add_info_sequence[] = {
1972   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imeisv_impl },
1973   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_skipSubscriberDataUpdate_impl },
1974   { 0, 0, 0, NULL }
1975 };
1976
1977 static int
1978 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_) {
1979   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1980                                 T_add_info_sequence, hf_index, ett_gsm_map_T_add_info);
1981
1982   return offset;
1983 }
1984 static int dissect_add_info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1985   return dissect_gsm_map_T_add_info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_add_info);
1986 }
1987
1988 static const ber_sequence_t UpdateLocationArg_sequence[] = {
1989   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1990   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
1991   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_vlr_Number },
1992   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
1993   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1994   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
1995   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_informPreviousNetworkEntity_impl },
1996   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cs_LCS_NotSupportedByUE_impl },
1997   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_v_gmlc_Address_impl },
1998   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_info_impl },
1999   { 0, 0, 0, NULL }
2000 };
2001
2002 static int
2003 dissect_gsm_map_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2004   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2005                                 UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
2006
2007   return offset;
2008 }
2009
2010
2011 static int
2012 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_) {
2013
2014  tvbuff_t       *parameter_tvb;
2015  char           *digit_str;
2016
2017  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2018                                     &parameter_tvb);
2019
2020  if (!parameter_tvb)
2021         return offset;
2022
2023  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
2024  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
2025  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
2026
2027  digit_str = unpack_digits(parameter_tvb, 1);
2028
2029  proto_tree_add_string(tree, hf_gsm_map_map_hlr_number_digits, parameter_tvb, 1, -1, digit_str);
2030
2031
2032
2033
2034   return offset;
2035 }
2036 static int dissect_hlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2037   return dissect_gsm_map_Hlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_Number);
2038 }
2039
2040 static const ber_sequence_t UpdateLocationRes_sequence[] = {
2041   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
2042   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2043   { 0, 0, 0, NULL }
2044 };
2045
2046 static int
2047 dissect_gsm_map_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2048   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2049                                 UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
2050
2051   return offset;
2052 }
2053
2054
2055 static int
2056 dissect_gsm_map_Teleservice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2057   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2058                                     NULL);
2059
2060   return offset;
2061 }
2062 static int dissect_teleservice(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2063   return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
2064 }
2065 static int dissect_teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2066   return dissect_gsm_map_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
2067 }
2068 static int dissect_teleserviceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2069   return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList_item);
2070 }
2071
2072
2073 static const value_string gsm_map_CancellationType_vals[] = {
2074   {   0, "updateProcedure" },
2075   {   1, "subscriptionWithdraw" },
2076   { 0, NULL }
2077 };
2078
2079
2080 static int
2081 dissect_gsm_map_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2082   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2083
2084   return offset;
2085 }
2086 static int dissect_cancellationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2087   return dissect_gsm_map_CancellationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cancellationType);
2088 }
2089
2090 static const ber_sequence_t T_imsi_WithLMSI_sequence[] = {
2091   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2092   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi },
2093   { 0, 0, 0, NULL }
2094 };
2095
2096 static int
2097 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_) {
2098   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2099                                 T_imsi_WithLMSI_sequence, hf_index, ett_gsm_map_T_imsi_WithLMSI);
2100
2101   return offset;
2102 }
2103 static int dissect_imsi_WithLMSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2104   return dissect_gsm_map_T_imsi_WithLMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi_WithLMSI);
2105 }
2106
2107
2108 static const value_string gsm_map_T_identity_vals[] = {
2109   {   0, "imsi" },
2110   {   1, "imsi-WithLMSI" },
2111   { 0, NULL }
2112 };
2113
2114 static const ber_choice_t T_identity_choice[] = {
2115   {   0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2116   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
2117   { 0, 0, 0, 0, NULL }
2118 };
2119
2120 static int
2121 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_) {
2122   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2123                               T_identity_choice, hf_index, ett_gsm_map_T_identity);
2124
2125   return offset;
2126 }
2127 static int dissect_identity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2128   return dissect_gsm_map_T_identity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_identity);
2129 }
2130
2131 static const ber_sequence_t CancelLocationArg_sequence[] = {
2132   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
2133   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType },
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_CancelLocationArg(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                                 CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
2142
2143   return offset;
2144 }
2145
2146 static const ber_sequence_t CancelLocationRes_sequence[] = {
2147   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2148   { 0, 0, 0, NULL }
2149 };
2150
2151 static int
2152 dissect_gsm_map_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2153   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2154                                 CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
2155
2156   return offset;
2157 }
2158
2159
2160 static int
2161 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_) {
2162   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2163                                     NULL);
2164
2165   return offset;
2166 }
2167 static int dissect_sgsn_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2168   return dissect_gsm_map_Sgsn_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
2169 }
2170 static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2171   return dissect_gsm_map_Sgsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
2172 }
2173
2174 static const ber_sequence_t PurgeMS_Arg_sequence[] = {
2175   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2176   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
2177   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
2178   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2179   { 0, 0, 0, NULL }
2180 };
2181
2182 static int
2183 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_) {
2184   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2185                                 PurgeMS_Arg_sequence, hf_index, ett_gsm_map_PurgeMS_Arg);
2186
2187   return offset;
2188 }
2189
2190 static const ber_sequence_t PurgeMS_Res_sequence[] = {
2191   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl },
2192   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl },
2193   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2194   { 0, 0, 0, NULL }
2195 };
2196
2197 static int
2198 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_) {
2199   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2200                                 PurgeMS_Res_sequence, hf_index, ett_gsm_map_PurgeMS_Res);
2201
2202   return offset;
2203 }
2204
2205
2206 static int
2207 dissect_gsm_map_Tmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2208   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2209                                     NULL);
2210
2211   return offset;
2212 }
2213
2214
2215 static int
2216 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_) {
2217   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2218                                     NULL);
2219
2220   return offset;
2221 }
2222 static int dissect_rand(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2223   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_rand);
2224 }
2225 static int dissect_ck(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2226   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ck);
2227 }
2228 static int dissect_ik(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2229   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ik);
2230 }
2231 static int dissect_autn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2232   return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_autn);
2233 }
2234
2235
2236 static int
2237 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_) {
2238   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2239                                     NULL);
2240
2241   return offset;
2242 }
2243 static int dissect_sres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2244   return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sres);
2245 }
2246 static int dissect_cug_Interlock(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2247   return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Interlock);
2248 }
2249 static int dissect_teid_ForGnAndGp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2250   return dissect_gsm_map_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teid_ForGnAndGp);
2251 }
2252 static int dissect_teid_ForIu_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2253   return dissect_gsm_map_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teid_ForIu);
2254 }
2255 static int dissect_chargingId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2256   return dissect_gsm_map_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chargingId);
2257 }
2258
2259 static const ber_sequence_t T_authenticationSetList_item_sequence[] = {
2260   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
2261   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
2262   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
2263   { 0, 0, 0, NULL }
2264 };
2265
2266 static int
2267 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_) {
2268   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2269                                 T_authenticationSetList_item_sequence, hf_index, ett_gsm_map_T_authenticationSetList_item);
2270
2271   return offset;
2272 }
2273 static int dissect_authenticationSetList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2274   return dissect_gsm_map_T_authenticationSetList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList_item);
2275 }
2276
2277 static const ber_sequence_t SendId_authenticationSetList_sequence_of[1] = {
2278   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_authenticationSetList_item },
2279 };
2280
2281 static int
2282 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_) {
2283   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2284                                    SendId_authenticationSetList_sequence_of, hf_index, ett_gsm_map_SendId_authenticationSetList);
2285
2286   return offset;
2287 }
2288 static int dissect_sendId_authenticationSetList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2289   return dissect_gsm_map_SendId_authenticationSetList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sendId_authenticationSetList);
2290 }
2291
2292 static const ber_sequence_t SendIdentificationRes_sequence[] = {
2293   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
2294   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sendId_authenticationSetList },
2295   { 0, 0, 0, NULL }
2296 };
2297
2298 static int
2299 dissect_gsm_map_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2300   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2301                                 SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
2302
2303   return offset;
2304 }
2305
2306
2307 static int
2308 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_) {
2309   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2310                                     NULL);
2311
2312   return offset;
2313 }
2314 static int dissect_targetCellId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2315   return dissect_gsm_map_OCTET_STRING_SIZE_5_7(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
2316 }
2317 static int dissect_targetCellId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2318   return dissect_gsm_map_OCTET_STRING_SIZE_5_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
2319 }
2320
2321 static const ber_sequence_t PrepareHO_Arg_sequence[] = {
2322   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId },
2323   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
2324   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
2325   { 0, 0, 0, NULL }
2326 };
2327
2328 static int
2329 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_) {
2330   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2331                                 PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
2332
2333   return offset;
2334 }
2335
2336
2337 static int
2338 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_) {
2339   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2340                                     NULL);
2341
2342   return offset;
2343 }
2344 static int dissect_targetRNCId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2345   return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_targetRNCId);
2346 }
2347 static int dissect_cellIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2348   return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdFixedLength);
2349 }
2350 static int dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2351   return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength);
2352 }
2353
2354
2355 static int
2356 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_) {
2357   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2358                                     NULL);
2359
2360   return offset;
2361 }
2362 static int dissect_integrityProtectionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2363   return dissect_gsm_map_OCTET_STRING_SIZE_18_100(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_integrityProtectionInfo);
2364 }
2365 static int dissect_encryptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2366   return dissect_gsm_map_OCTET_STRING_SIZE_18_100(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionInfo);
2367 }
2368
2369
2370 static int
2371 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_) {
2372   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2373                                     NULL);
2374
2375   return offset;
2376 }
2377 static int dissect_radioResourceInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2378   return dissect_gsm_map_OCTET_STRING_SIZE_3_13(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceInformation);
2379 }
2380 static int dissect_radioResourceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2381   return dissect_gsm_map_OCTET_STRING_SIZE_3_13(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceInformation);
2382 }
2383
2384
2385 static int
2386 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_) {
2387   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2388                                     NULL);
2389
2390   return offset;
2391 }
2392 static int dissect_allowedGSM_Algorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2393   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allowedGSM_Algorithms);
2394 }
2395 static int dissect_bssmap_ServiceHandover(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2396   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandover);
2397 }
2398 static int dissect_bssmap_ServiceHandover_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2399   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandover);
2400 }
2401 static int dissect_ranap_ServiceHandover_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2402   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ranap_ServiceHandover);
2403 }
2404 static int dissect_integrityProtectionAlgorithm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2405   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_integrityProtectionAlgorithm);
2406 }
2407 static int dissect_encryptionAlgorithm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2408   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionAlgorithm);
2409 }
2410 static int dissect_chosenChannelInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2411   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenChannelInfo);
2412 }
2413 static int dissect_chosenSpeechVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2414   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenSpeechVersion);
2415 }
2416 static int dissect_category_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2417   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_category);
2418 }
2419 static int dissect_interCUG_Restrictions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2420   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_interCUG_Restrictions);
2421 }
2422 static int dissect_lsaAttributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2423   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaAttributes);
2424 }
2425 static int dissect_ss_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2426   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List_item);
2427 }
2428 static int dissect_ss_EventList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2429   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList_item);
2430 }
2431 static int dissect_alertingPattern(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2432   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
2433 }
2434 static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2435   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
2436 }
2437 static int dissect_uuIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2438   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uuIndicator);
2439 }
2440 static int dissect_call_Direction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2441   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_call_Direction);
2442 }
2443 static int dissect_ussd_DataCodingScheme(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2444   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_DataCodingScheme);
2445 }
2446 static int dissect_T_CauseValueCriteria_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2447   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_T_CauseValueCriteria_item);
2448 }
2449 static int dissect_O_CauseValueCriteria_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2450   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_O_CauseValueCriteria_item);
2451 }
2452 static int dissect_MobilityTriggers_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2453   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_MobilityTriggers_item);
2454 }
2455 static int dissect_ss_Event_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2456   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Event);
2457 }
2458 static int dissect_cipheringAlgorithm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2459   return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cipheringAlgorithm);
2460 }
2461 static int dissect_lcs_Priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2462   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Priority);
2463 }
2464 static int dissect_horizontal_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2465   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_horizontal_accuracy);
2466 }
2467 static int dissect_vertical_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2468   return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vertical_accuracy);
2469 }
2470
2471
2472 static int
2473 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_) {
2474   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2475                                     NULL);
2476
2477   return offset;
2478 }
2479 static int dissect_integrityProtectionAlgorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2480   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_integrityProtectionAlgorithms);
2481 }
2482 static int dissect_encryptionAlgorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2483   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_encryptionAlgorithms);
2484 }
2485 static int dissect_qos_Requested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2486   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Requested);
2487 }
2488 static int dissect_qos_Negotiated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2489   return dissect_gsm_map_OCTET_STRING_SIZE_1_9(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Negotiated);
2490 }
2491
2492 static const ber_sequence_t T_allowedUMTS_Algorithms_sequence[] = {
2493   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithms_impl },
2494   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithms_impl },
2495   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2496   { 0, 0, 0, NULL }
2497 };
2498
2499 static int
2500 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_) {
2501   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2502                                 T_allowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_T_allowedUMTS_Algorithms);
2503
2504   return offset;
2505 }
2506 static int dissect_allowedUMTS_Algorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2507   return dissect_gsm_map_T_allowedUMTS_Algorithms(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allowedUMTS_Algorithms);
2508 }
2509
2510
2511
2512 static int
2513 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_) {
2514   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2515
2516   return offset;
2517 }
2518 static int dissect_rab_Id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2519   return dissect_gsm_map_INTEGER_1_255(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_rab_Id);
2520 }
2521 static int dissect_rab_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2522   return dissect_gsm_map_INTEGER_1_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_rab_Id);
2523 }
2524
2525 static const ber_sequence_t T_radioResourceList_item_sequence[] = {
2526   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_radioResourceInformation },
2527   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
2528   { 0, 0, 0, NULL }
2529 };
2530
2531 static int
2532 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_) {
2533   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2534                                 T_radioResourceList_item_sequence, hf_index, ett_gsm_map_T_radioResourceList_item);
2535
2536   return offset;
2537 }
2538 static int dissect_radioResourceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2539   return dissect_gsm_map_T_radioResourceList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceList_item);
2540 }
2541
2542 static const ber_sequence_t T_radioResourceList_sequence_of[1] = {
2543   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_radioResourceList_item },
2544 };
2545
2546 static int
2547 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_) {
2548   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2549                                    T_radioResourceList_sequence_of, hf_index, ett_gsm_map_T_radioResourceList);
2550
2551   return offset;
2552 }
2553 static int dissect_radioResourceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2554   return dissect_gsm_map_T_radioResourceList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_radioResourceList);
2555 }
2556
2557 static const ber_sequence_t T_bssmap_ServiceHandoverList_item_sequence[] = {
2558   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandover },
2559   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
2560   { 0, 0, 0, NULL }
2561 };
2562
2563 static int
2564 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_) {
2565   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2566                                 T_bssmap_ServiceHandoverList_item_sequence, hf_index, ett_gsm_map_T_bssmap_ServiceHandoverList_item);
2567
2568   return offset;
2569 }
2570 static int dissect_bssmap_ServiceHandoverList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2571   return dissect_gsm_map_T_bssmap_ServiceHandoverList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandoverList_item);
2572 }
2573
2574 static const ber_sequence_t T_bssmap_ServiceHandoverList_sequence_of[1] = {
2575   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandoverList_item },
2576 };
2577
2578 static int
2579 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_) {
2580   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2581                                    T_bssmap_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_T_bssmap_ServiceHandoverList);
2582
2583   return offset;
2584 }
2585 static int dissect_bssmap_ServiceHandoverList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2586   return dissect_gsm_map_T_bssmap_ServiceHandoverList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bssmap_ServiceHandoverList);
2587 }
2588
2589
2590 static int
2591 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_) {
2592   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2593                                     NULL);
2594
2595   return offset;
2596 }
2597 static int dissect_asciCallReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2598   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_asciCallReference);
2599 }
2600 static int dissect_asciCallReference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2601   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_asciCallReference);
2602 }
2603 static int dissect_callReferenceNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2604   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReferenceNumber);
2605 }
2606 static int dissect_mSNetworkCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2607   return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mSNetworkCapability);
2608 }
2609
2610
2611 static int
2612 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_) {
2613   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2614                                     NULL);
2615
2616   return offset;
2617 }
2618 static int dissect_geran_classmark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2619   return dissect_gsm_map_OCTET_STRING_SIZE_2_87(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geran_classmark);
2620 }
2621
2622
2623 static int
2624 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_) {
2625   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2626                                     NULL);
2627
2628   return offset;
2629 }
2630 static int dissect_iuCurrentlyUsedCodec_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2631   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuCurrentlyUsedCodec);
2632 }
2633 static int dissect_codec1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2634   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec1);
2635 }
2636 static int dissect_codec2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2637   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec2);
2638 }
2639 static int dissect_codec3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2640   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec3);
2641 }
2642 static int dissect_codec4_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2643   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec4);
2644 }
2645 static int dissect_codec5_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2646   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec5);
2647 }
2648 static int dissect_codec6_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2649   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec6);
2650 }
2651 static int dissect_codec7_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2652   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec7);
2653 }
2654 static int dissect_codec8_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2655   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_codec8);
2656 }
2657 static int dissect_iuSelectedCodec_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2658   return dissect_gsm_map_OCTET_STRING_SIZE_1_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuSelectedCodec);
2659 }
2660
2661 static const ber_sequence_t T_geranCodecList_sequence[] = {
2662   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
2663   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
2664   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
2665   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
2666   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
2667   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
2668   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
2669   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
2670   { BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2671   { 0, 0, 0, NULL }
2672 };
2673
2674 static int
2675 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_) {
2676   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2677                                 T_geranCodecList_sequence, hf_index, ett_gsm_map_T_geranCodecList);
2678
2679   return offset;
2680 }
2681 static int dissect_geranCodecList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2682   return dissect_gsm_map_T_geranCodecList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geranCodecList);
2683 }
2684
2685 static const ber_sequence_t T_utranCodecList_sequence[] = {
2686   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
2687   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
2688   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
2689   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
2690   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
2691   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
2692   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
2693   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
2694   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2695   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranCodecList_impl },
2696   { 0, 0, 0, NULL }
2697 };
2698
2699 static int
2700 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_) {
2701   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2702                                 T_utranCodecList_sequence, hf_index, ett_gsm_map_T_utranCodecList);
2703
2704   return offset;
2705 }
2706 static int dissect_utranCodecList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2707   return dissect_gsm_map_T_utranCodecList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_utranCodecList);
2708 }
2709
2710 static const ber_sequence_t T_iuSupportedCodecsList_sequence[] = {
2711   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranCodecList_impl },
2712   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2713   { 0, 0, 0, NULL }
2714 };
2715
2716 static int
2717 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_) {
2718   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2719                                 T_iuSupportedCodecsList_sequence, hf_index, ett_gsm_map_T_iuSupportedCodecsList);
2720
2721   return offset;
2722 }
2723 static int dissect_iuSupportedCodecsList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2724   return dissect_gsm_map_T_iuSupportedCodecsList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuSupportedCodecsList);
2725 }
2726
2727
2728 static int
2729 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_) {
2730   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2731                                  NULL, hf_index, -1,
2732                                  NULL);
2733
2734   return offset;
2735 }
2736 static int dissect_uesbi_IuA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2737   return dissect_gsm_map_BIT_STRING_SIZE_1_128(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_IuA);
2738 }
2739 static int dissect_uesbi_IuB_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2740   return dissect_gsm_map_BIT_STRING_SIZE_1_128(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_IuB);
2741 }
2742
2743 static const ber_sequence_t T_uesbi_Iu_sequence[] = {
2744   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuA_impl },
2745   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuB_impl },
2746   { 0, 0, 0, NULL }
2747 };
2748
2749 static int
2750 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_) {
2751   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2752                                 T_uesbi_Iu_sequence, hf_index, ett_gsm_map_T_uesbi_Iu);
2753
2754   return offset;
2755 }
2756 static int dissect_uesbi_Iu_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2757   return dissect_gsm_map_T_uesbi_Iu(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uesbi_Iu);
2758 }
2759
2760 static const ber_sequence_t PrepareHandoverV3Arg_sequence[] = {
2761   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl },
2762   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
2763   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetRNCId_impl },
2764   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
2765   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multipleBearerRequested_impl },
2766   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
2767   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionInfo_impl },
2768   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionInfo_impl },
2769   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceInformation_impl },
2770   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedGSM_Algorithms_impl },
2771   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedUMTS_Algorithms_impl },
2772   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceList_impl },
2773   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2774   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_Id_impl },
2775   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandover_impl },
2776   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ranap_ServiceHandover_impl },
2777   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandoverList_impl },
2778   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asciCallReference_impl },
2779   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geran_classmark_impl },
2780   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuCurrentlyUsedCodec_impl },
2781   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSupportedCodecsList_impl },
2782   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl },
2783   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_Iu_impl },
2784   { 0, 0, 0, NULL }
2785 };
2786
2787 static int
2788 dissect_gsm_map_PrepareHandoverV3Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2789   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2790                                 PrepareHandoverV3Arg_sequence, hf_index, ett_gsm_map_PrepareHandoverV3Arg);
2791
2792   return offset;
2793 }
2794
2795
2796 static int
2797 dissect_gsm_map_HandoverNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2798   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2799                                     NULL);
2800
2801   return offset;
2802 }
2803 static int dissect_handoverNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2804   return dissect_gsm_map_HandoverNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
2805 }
2806 static int dissect_handoverNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2807   return dissect_gsm_map_HandoverNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
2808 }
2809
2810 static const ber_sequence_t PrepareHO_Res_sequence[] = {
2811   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
2812   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
2813   { 0, 0, 0, NULL }
2814 };
2815
2816 static int
2817 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_) {
2818   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2819                                 PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
2820
2821   return offset;
2822 }
2823
2824 static const ber_sequence_t T_relocationNumberList_item_sequence[] = {
2825   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
2826   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
2827   { 0, 0, 0, NULL }
2828 };
2829
2830 static int
2831 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_) {
2832   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2833                                 T_relocationNumberList_item_sequence, hf_index, ett_gsm_map_T_relocationNumberList_item);
2834
2835   return offset;
2836 }
2837 static int dissect_relocationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2838   return dissect_gsm_map_T_relocationNumberList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_relocationNumberList_item);
2839 }
2840
2841 static const ber_sequence_t T_relocationNumberList_sequence_of[1] = {
2842   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_relocationNumberList_item },
2843 };
2844
2845 static int
2846 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_) {
2847   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2848                                    T_relocationNumberList_sequence_of, hf_index, ett_gsm_map_T_relocationNumberList);
2849
2850   return offset;
2851 }
2852 static int dissect_relocationNumberList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2853   return dissect_gsm_map_T_relocationNumberList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_relocationNumberList);
2854 }
2855
2856
2857
2858 static int
2859 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_) {
2860   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2861
2862   return offset;
2863 }
2864 static int dissect_multicallBearerInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2865   return dissect_gsm_map_INTEGER_1_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_multicallBearerInfo);
2866 }
2867
2868 static const ber_sequence_t T_selectedUMTS_Algorithms_sequence[] = {
2869   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithm_impl },
2870   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithm_impl },
2871   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2872   { 0, 0, 0, NULL }
2873 };
2874
2875 static int
2876 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_) {
2877   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2878                                 T_selectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_T_selectedUMTS_Algorithms);
2879
2880   return offset;
2881 }
2882 static int dissect_selectedUMTS_Algorithms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2883   return dissect_gsm_map_T_selectedUMTS_Algorithms(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedUMTS_Algorithms);
2884 }
2885
2886 static const ber_sequence_t T_chosenRadioResourceInformation_sequence[] = {
2887   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannelInfo_impl },
2888   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenSpeechVersion_impl },
2889   { 0, 0, 0, NULL }
2890 };
2891
2892 static int
2893 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_) {
2894   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2895                                 T_chosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_T_chosenRadioResourceInformation);
2896
2897   return offset;
2898 }
2899 static int dissect_chosenRadioResourceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2900   return dissect_gsm_map_T_chosenRadioResourceInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenRadioResourceInformation);
2901 }
2902
2903 static const ber_sequence_t T_iuAvailableCodecsList_sequence[] = {
2904   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
2905   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
2906   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
2907   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
2908   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
2909   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
2910   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
2911   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
2912   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2913   { 0, 0, 0, NULL }
2914 };
2915
2916 static int
2917 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_) {
2918   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2919                                 T_iuAvailableCodecsList_sequence, hf_index, ett_gsm_map_T_iuAvailableCodecsList);
2920
2921   return offset;
2922 }
2923 static int dissect_iuAvailableCodecsList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2924   return dissect_gsm_map_T_iuAvailableCodecsList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_iuAvailableCodecsList);
2925 }
2926
2927 static const ber_sequence_t PrepareHandoverV3Res_sequence[] = {
2928   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_handoverNumber_impl },
2929   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_relocationNumberList_impl },
2930   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
2931   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multicallBearerInfo_impl },
2932   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_multipleBearerNotSupported },
2933   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl },
2934   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenRadioResourceInformation_impl },
2935   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2936   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSelectedCodec_impl },
2937   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuAvailableCodecsList_impl },
2938   { 0, 0, 0, NULL }
2939 };
2940
2941 static int
2942 dissect_gsm_map_PrepareHandoverV3Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2943   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2944                                 PrepareHandoverV3Res_sequence, hf_index, ett_gsm_map_PrepareHandoverV3Res);
2945
2946   return offset;
2947 }
2948
2949 static const ber_sequence_t SendEndSignalV9Arg_sequence[] = {
2950   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
2951   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2952   { 0, 0, 0, NULL }
2953 };
2954
2955 static int
2956 dissect_gsm_map_SendEndSignalV9Arg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2957   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2958                                 SendEndSignalV9Arg_sequence, hf_index, ett_gsm_map_SendEndSignalV9Arg);
2959
2960   return offset;
2961 }
2962
2963
2964 static int
2965 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_) {
2966   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2967                                     NULL);
2968
2969   return offset;
2970 }
2971 static int dissect_targetMSC_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2972   return dissect_gsm_map_T_targetMSC_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
2973 }
2974
2975 static const ber_sequence_t PrepareSubsequentHO_Arg_sequence[] = {
2976   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId },
2977   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number },
2978   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
2979   { 0, 0, 0, NULL }
2980 };
2981
2982 static int
2983 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_) {
2984   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2985                                 PrepareSubsequentHO_Arg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHO_Arg);
2986
2987   return offset;
2988 }
2989
2990
2991 static int
2992 dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2993   offset = dissect_gsm_map_Imsi(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2994
2995   return offset;
2996 }
2997
2998
2999
3000 static int
3001 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_) {
3002   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3003
3004   return offset;
3005 }
3006 static int dissect_numberOfRequestedVectors(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3007   return dissect_gsm_map_INTEGER_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfRequestedVectors);
3008 }
3009 static int dissect_numberOfForwarding_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3010   return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfForwarding);
3011 }
3012 static int dissect_ccbs_Index_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3013   return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Index);
3014 }
3015
3016
3017 static int
3018 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_) {
3019   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3020                                     NULL);
3021
3022   return offset;
3023 }
3024 static int dissect_auts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3025   return dissect_gsm_map_OCTET_STRING_SIZE_14(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_auts);
3026 }
3027
3028 static const ber_sequence_t T_re_synchronisationInfo_sequence[] = {
3029   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3030   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts },
3031   { 0, 0, 0, NULL }
3032 };
3033
3034 static int
3035 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_) {
3036   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3037                                 T_re_synchronisationInfo_sequence, hf_index, ett_gsm_map_T_re_synchronisationInfo);
3038
3039   return offset;
3040 }
3041 static int dissect_re_synchronisationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3042   return dissect_gsm_map_T_re_synchronisationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_re_synchronisationInfo);
3043 }
3044
3045
3046 static const value_string gsm_map_T_requestingNodeType_vals[] = {
3047   {   0, "vlr" },
3048   {   1, "sgsn" },
3049   { 0, NULL }
3050 };
3051
3052
3053 static int
3054 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_) {
3055   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3056
3057   return offset;
3058 }
3059 static int dissect_requestingNodeType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3060   return dissect_gsm_map_T_requestingNodeType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingNodeType);
3061 }
3062
3063
3064 static int
3065 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_) {
3066   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3067                                     NULL);
3068
3069   return offset;
3070 }
3071 static int dissect_requestingPLMN_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3072   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingPLMN_Id);
3073 }
3074 static int dissect_groupid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3075   return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupid);
3076 }
3077 static int dissect_groupId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3078   return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupId);
3079 }
3080 static int dissect_lsaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3081   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentity);
3082 }
3083 static int dissect_naea_PreferredCIC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3084   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCIC);
3085 }
3086 static int dissect_lsaIdentityList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3087   return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList_item);
3088 }
3089 static int dissect_selectedLSA_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3090   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedLSA_Id);
3091 }
3092 static int dissect_selectedLSAIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3093   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_selectedLSAIdentity);
3094 }
3095 static int dissect_ms_Classmark2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3096   return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ms_Classmark2);
3097 }
3098
3099 static const ber_sequence_t SendAuthenticationInfoArgV3_sequence[] = {
3100   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
3101   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
3102   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited },
3103   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immediateResponsePreferred_impl },
3104   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_synchronisationInfo },
3105   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3106   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingNodeType_impl },
3107   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingPLMN_Id_impl },
3108   { 0, 0, 0, NULL }
3109 };
3110
3111 static int
3112 dissect_gsm_map_SendAuthenticationInfoArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3113   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3114                                 SendAuthenticationInfoArgV3_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArgV3);
3115
3116   return offset;
3117 }
3118
3119 static const ber_sequence_t SendAuthenticationInfoRes_item_sequence[] = {
3120   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3121   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
3122   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
3123   { 0, 0, 0, NULL }
3124 };
3125
3126 static int
3127 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_) {
3128   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3129                                 SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
3130
3131   return offset;
3132 }
3133 static int dissect_SendAuthenticationInfoRes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3134   return dissect_gsm_map_SendAuthenticationInfoRes_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_SendAuthenticationInfoRes_item);
3135 }
3136
3137 static const ber_sequence_t SendAuthenticationInfoRes_sequence_of[1] = {
3138   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SendAuthenticationInfoRes_item },
3139 };
3140
3141 static int
3142 dissect_gsm_map_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3143   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3144                                    SendAuthenticationInfoRes_sequence_of, hf_index, ett_gsm_map_SendAuthenticationInfoRes);
3145
3146   return offset;
3147 }
3148
3149 static const ber_sequence_t T_tripletList_item_sequence[] = {
3150   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3151   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
3152   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
3153   { 0, 0, 0, NULL }
3154 };
3155
3156 static int
3157 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_) {
3158   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3159                                 T_tripletList_item_sequence, hf_index, ett_gsm_map_T_tripletList_item);
3160
3161   return offset;
3162 }
3163 static int dissect_tripletList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3164   return dissect_gsm_map_T_tripletList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_tripletList_item);
3165 }
3166
3167 static const ber_sequence_t T_tripletList_sequence_of[1] = {
3168   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tripletList_item },
3169 };
3170
3171 static int
3172 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_) {
3173   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3174                                    T_tripletList_sequence_of, hf_index, ett_gsm_map_T_tripletList);
3175
3176   return offset;
3177 }
3178 static int dissect_tripletList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3179   return dissect_gsm_map_T_tripletList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tripletList);
3180 }
3181
3182
3183 static int
3184 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_) {
3185   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3186                                     NULL);
3187
3188   return offset;
3189 }
3190 static int dissect_xres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3191   return dissect_gsm_map_OCTET_STRING_SIZE_4_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_xres);
3192 }
3193
3194 static const ber_sequence_t T_quintupletList_item_sequence[] = {
3195   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
3196   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_xres },
3197   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck },
3198   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik },
3199   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_autn },
3200   { 0, 0, 0, NULL }
3201 };
3202
3203 static int
3204 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_) {
3205   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3206                                 T_quintupletList_item_sequence, hf_index, ett_gsm_map_T_quintupletList_item);
3207
3208   return offset;
3209 }
3210 static int dissect_quintupletList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3211   return dissect_gsm_map_T_quintupletList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_quintupletList_item);
3212 }
3213
3214 static const ber_sequence_t T_quintupletList_sequence_of[1] = {
3215   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_quintupletList_item },
3216 };
3217
3218 static int
3219 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_) {
3220   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3221                                    T_quintupletList_sequence_of, hf_index, ett_gsm_map_T_quintupletList);
3222
3223   return offset;
3224 }
3225 static int dissect_quintupletList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3226   return dissect_gsm_map_T_quintupletList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_quintupletList);
3227 }
3228
3229
3230 static const value_string gsm_map_T_authenticationSetList_vals[] = {
3231   {   0, "tripletList" },
3232   {   1, "quintupletList" },
3233   { 0, NULL }
3234 };
3235
3236 static const ber_choice_t T_authenticationSetList_choice[] = {
3237   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tripletList_impl },
3238   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_quintupletList_impl },
3239   { 0, 0, 0, 0, NULL }
3240 };
3241
3242 static int
3243 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_) {
3244   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3245                               T_authenticationSetList_choice, hf_index, ett_gsm_map_T_authenticationSetList);
3246
3247   return offset;
3248 }
3249 static int dissect_authenticationSetList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3250   return dissect_gsm_map_T_authenticationSetList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList);
3251 }
3252
3253 static const ber_sequence_t SendAuthenticationInfoV3Res_sequence[] = {
3254   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
3255   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3256   { 0, 0, 0, NULL }
3257 };
3258
3259 static int
3260 dissect_gsm_map_SendAuthenticationInfoV3Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3261   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3262                                 SendAuthenticationInfoV3Res_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoV3Res);
3263
3264   return offset;
3265 }
3266
3267
3268 static int
3269 dissect_gsm_map_Imei(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3270   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3271                                     NULL);
3272
3273   return offset;
3274 }
3275 static int dissect_imei_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3276   return dissect_gsm_map_Imei(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei);
3277 }
3278
3279
3280 static int
3281 dissect_gsm_map_CheckIMEIArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3282   offset = dissect_gsm_map_Imei(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3283
3284   return offset;
3285 }
3286
3287
3288 static const value_string gsm_map_EquipmentStatus_vals[] = {
3289   {   0, "whiteListed" },
3290   {   1, "blackListed" },
3291   {   2, "greyListed" },
3292   { 0, NULL }
3293 };
3294
3295
3296 static int
3297 dissect_gsm_map_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3298   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3299
3300   return offset;
3301 }
3302
3303
3304 static const value_string gsm_map_OverrideCategory_vals[] = {
3305   {   0, "overrideEnabled" },
3306   {   1, "overrideDisabled" },
3307   { 0, NULL }
3308 };
3309
3310
3311 static int
3312 dissect_gsm_map_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3313   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3314
3315   return offset;
3316 }
3317 static int dissect_overrideCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3318   return dissect_gsm_map_OverrideCategory(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_overrideCategory);
3319 }
3320
3321
3322 static const value_string gsm_map_BasicService_vals[] = {
3323   {   2, "bearerService" },
3324   {   3, "teleservice" },
3325   { 0, NULL }
3326 };
3327
3328 static const ber_choice_t BasicService_choice[] = {
3329   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_bearerService_impl },
3330   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_teleservice_impl },
3331   { 0, 0, 0, 0, NULL }
3332 };
3333
3334 static int
3335 dissect_gsm_map_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3336   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3337                               BasicService_choice, hf_index, ett_gsm_map_BasicService);
3338
3339   return offset;
3340 }
3341 static int dissect_BasicServiceGroupList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3342   return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BasicServiceGroupList_item);
3343 }
3344 static int dissect_basicService(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3345   return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService);
3346 }
3347 static int dissect_basicServiceGroup(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3348   return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroup);
3349 }
3350
3351 static const ber_sequence_t BasicServiceGroupList_sequence_of[1] = {
3352   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
3353 };
3354
3355 static int
3356 dissect_gsm_map_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3357   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3358                                    BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_BasicServiceGroupList);
3359
3360   return offset;
3361 }
3362 static int dissect_basicServiceGroupList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3363   return dissect_gsm_map_BasicServiceGroupList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
3364 }
3365 static int dissect_basicServiceGroupList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3366   return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
3367 }
3368 static int dissect_basicServiceCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3369   return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceCriteria);
3370 }
3371 static int dissect_basicServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3372   return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceList);
3373 }
3374
3375
3376 static const value_string gsm_map_IntraCUG_Options_vals[] = {
3377   {   0, "noCUG-Restrictions" },
3378   {   1, "cugIC-CallBarred" },
3379   {   2, "cugOG-CallBarred" },
3380   { 0, NULL }
3381 };
3382
3383
3384 static int
3385 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_) {
3386   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3387
3388   return offset;
3389 }
3390 static int dissect_intraCUG_Options(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3391   return dissect_gsm_map_IntraCUG_Options(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_intraCUG_Options);
3392 }
3393
3394 static const asn_namedbit Odb_GeneralData_bits[] = {
3395   {  0, &hf_gsm_map_Odb_GeneralData_allOGCallsBarred, -1, -1, NULL, NULL },
3396   {  1, &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred, -1, -1, NULL, NULL },
3397   {  2, &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
3398   {  3, &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, NULL, NULL },
3399   {  4, &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, NULL, NULL },
3400   {  5, &hf_gsm_map_Odb_GeneralData_ssAccessBarred, -1, -1, NULL, NULL },
3401   {  6, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred, -1, -1, NULL, NULL },
3402   {  7, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
3403   {  8, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
3404   {  9, &hf_gsm_map_Odb_GeneralData_allECTBarred, -1, -1, NULL, NULL },
3405   { 10, &hf_gsm_map_Odb_GeneralData_chargeableECTBarred, -1, -1, NULL, NULL },
3406   { 11, &hf_gsm_map_Odb_GeneralData_internationalECTBarred, -1, -1, NULL, NULL },
3407   { 12, &hf_gsm_map_Odb_GeneralData_interzonalECTBarred, -1, -1, NULL, NULL },
3408   { 13, &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred, -1, -1, NULL, NULL },
3409   { 14, &hf_gsm_map_Odb_GeneralData_multipleECTBarred, -1, -1, NULL, NULL },
3410   { 15, &hf_gsm_map_Odb_GeneralData_allPacketOrientedServicesBarred, -1, -1, NULL, NULL },
3411   { 16, &hf_gsm_map_Odb_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, NULL, NULL },
3412   { 17, &hf_gsm_map_Odb_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, NULL, NULL },
3413   { 18, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, NULL, NULL },
3414   { 19, &hf_gsm_map_Odb_GeneralData_allIC_CallsBarred, -1, -1, NULL, NULL },
3415   { 20, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, NULL, NULL },
3416   { 21, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, NULL, NULL },
3417   { 22, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_Barred, -1, -1, NULL, NULL },
3418   { 23, &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, NULL, NULL },
3419   { 24, &hf_gsm_map_Odb_GeneralData_registrationAllCF_Barred, -1, -1, NULL, NULL },
3420   { 25, &hf_gsm_map_Odb_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, NULL, NULL },
3421   { 26, &hf_gsm_map_Odb_GeneralData_registrationInterzonalCF_Barred, -1, -1, NULL, NULL },
3422   { 27, &hf_gsm_map_Odb_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, NULL, NULL },
3423   { 28, &hf_gsm_map_Odb_GeneralData_registrationInternationalCF_Barred, -1, -1, NULL, NULL },
3424   { 0, NULL, 0, 0, NULL, NULL }
3425 };
3426
3427 static int
3428 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_) {
3429   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3430                                  Odb_GeneralData_bits, hf_index, ett_gsm_map_Odb_GeneralData,
3431                                  NULL);
3432
3433   return offset;
3434 }
3435 static int dissect_odb_GeneralData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3436   return dissect_gsm_map_Odb_GeneralData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
3437 }
3438 static int dissect_odb_GeneralData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3439   return dissect_gsm_map_Odb_GeneralData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
3440 }
3441
3442 static const asn_namedbit Odb_HPLMN_Data_bits[] = {
3443   {  0, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1, -1, -1, NULL, NULL },
3444   {  1, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2, -1, -1, NULL, NULL },
3445   {  2, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3, -1, -1, NULL, NULL },
3446   {  3, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4, -1, -1, NULL, NULL },
3447   { 0, NULL, 0, 0, NULL, NULL }
3448 };
3449
3450 static int
3451 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_) {
3452   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3453                                  Odb_HPLMN_Data_bits, hf_index, ett_gsm_map_Odb_HPLMN_Data,
3454                                  NULL);
3455
3456   return offset;
3457 }
3458 static int dissect_odb_HPLMN_Data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3459   return dissect_gsm_map_Odb_HPLMN_Data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_HPLMN_Data);
3460 }
3461
3462
3463 static const value_string gsm_map_SubscriberStatus_vals[] = {
3464   {   0, "serviceGranted" },
3465   {   1, "operatorDeterminedBarring" },
3466   { 0, NULL }
3467 };
3468
3469
3470 static int
3471 dissect_gsm_map_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3472   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3473
3474   return offset;
3475 }
3476 static int dissect_subscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3477   return dissect_gsm_map_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStatus);
3478 }
3479
3480
3481 static const value_string gsm_map_BcsmTriggerDetectionPoint_vals[] = {
3482   {   2, "collectedInfo" },
3483   {   4, "routeSelectFailure" },
3484   {  12, "termAttemptAuthorized" },
3485   {  13, "tBusy" },
3486   {  14, "tNoAnswer" },
3487   { 0, NULL }
3488 };
3489
3490
3491 static int
3492 dissect_gsm_map_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3493   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3494
3495   return offset;
3496 }
3497 static int dissect_bcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3498   return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bcsmTriggerDetectionPoint);
3499 }
3500 static int dissect_o_BcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3501   return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint);
3502 }
3503
3504
3505
3506 static int
3507 dissect_gsm_map_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3508   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3509
3510   return offset;
3511 }
3512 static int dissect_serviceKey(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3513   return dissect_gsm_map_ServiceKey(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceKey);
3514 }
3515 static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3516   return dissect_gsm_map_ServiceKey(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceKey);
3517 }
3518
3519
3520 static int
3521 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_) {
3522   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3523                                     NULL);
3524
3525   return offset;
3526 }
3527 static int dissect_gsmSCFAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3528   return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCFAddress);
3529 }
3530 static int dissect_gsmSCF_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3531   return dissect_gsm_map_GsmSCF_Address(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
3532 }
3533 static int dissect_gsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3534   return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
3535 }
3536
3537
3538 static const value_string gsm_map_DefaultCallHandling_vals[] = {
3539   {   0, "continueCall" },
3540   {   1, "releaseCall" },
3541   { 0, NULL }
3542 };
3543
3544
3545 static int
3546 dissect_gsm_map_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3547   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3548
3549   return offset;
3550 }
3551 static int dissect_defaultCallHandling(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3552   return dissect_gsm_map_DefaultCallHandling(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
3553 }
3554 static int dissect_defaultCallHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3555   return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
3556 }
3557
3558 static const ber_sequence_t BcsmCamelTDPData_sequence[] = {
3559   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_bcsmTriggerDetectionPoint },
3560   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
3561   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCFAddress_impl },
3562   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl },
3563   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3564   { 0, 0, 0, NULL }
3565 };
3566
3567 static int
3568 dissect_gsm_map_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3569   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3570                                 BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_BcsmCamelTDPData);
3571
3572   return offset;
3573 }
3574 static int dissect_BcsmCamelTDPDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3575   return dissect_gsm_map_BcsmCamelTDPData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BcsmCamelTDPDataList_item);
3576 }
3577
3578 static const ber_sequence_t BcsmCamelTDPDataList_sequence_of[1] = {
3579   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BcsmCamelTDPDataList_item },
3580 };
3581
3582 static int
3583 dissect_gsm_map_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3584   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3585                                    BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_BcsmCamelTDPDataList);
3586
3587   return offset;
3588 }
3589 static int dissect_o_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3590   return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDPDataList);
3591 }
3592 static int dissect_t_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3593   return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BcsmCamelTDPDataList);
3594 }
3595
3596
3597
3598 static int
3599 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_) {
3600   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3601
3602   return offset;
3603 }
3604 static int dissect_camelCapabilityHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3605   return dissect_gsm_map_INTEGER_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelCapabilityHandling);
3606 }
3607
3608 static const ber_sequence_t O_CSI_sequence[] = {
3609   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
3610   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3611   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
3612   { 0, 0, 0, NULL }
3613 };
3614
3615 static int
3616 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_) {
3617   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3618                                 O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
3619
3620   return offset;
3621 }
3622 static int dissect_o_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3623   return dissect_gsm_map_O_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CSI);
3624 }
3625
3626
3627 static int
3628 dissect_gsm_map_Msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3629
3630  tvbuff_t       *parameter_tvb;
3631  char           *digit_str;
3632
3633  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3634                                     &parameter_tvb);
3635
3636  if (!parameter_tvb)
3637         return offset;
3638
3639  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
3640  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
3641  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
3642
3643  digit_str = unpack_digits(parameter_tvb, 1);
3644
3645  proto_tree_add_string(tree, hf_gsm_map_misdn_digits, parameter_tvb, 1, -1, digit_str);
3646
3647
3648
3649
3650   return offset;
3651 }
3652 static int dissect_msisdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3653   return dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
3654 }
3655 static int dissect_msisdn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3656   return dissect_gsm_map_Msisdn(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
3657 }
3658
3659
3660 static int
3661 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_) {
3662   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3663                                     NULL);
3664
3665   return offset;
3666 }
3667 static int dissect_bearerServiceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3668   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList_item);
3669 }
3670 static int dissect_routeingNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3671   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_routeingNumber);
3672 }
3673 static int dissect_ext_BearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3674   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_BearerService);
3675 }
3676 static int dissect_ext_Teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3677   return dissect_gsm_map_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ext_Teleservice);
3678 }
3679
3680 static const ber_sequence_t bearerServiceList_sequence_of[1] = {
3681   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bearerServiceList_item },
3682 };
3683
3684 static int
3685 dissect_gsm_map_bearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3686   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3687                                    bearerServiceList_sequence_of, hf_index, ett_gsm_map_bearerServiceList);
3688
3689   return offset;
3690 }
3691 static int dissect_bearerServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3692   return dissect_gsm_map_bearerServiceList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList);
3693 }
3694
3695 static const ber_sequence_t SEQUENCE_SIZE_1_20_OF_Teleservice_sequence_of[1] = {
3696   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleserviceList_item },
3697 };
3698
3699 static int
3700 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_) {
3701   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3702                                    SEQUENCE_SIZE_1_20_OF_Teleservice_sequence_of, hf_index, ett_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice);
3703
3704   return offset;
3705 }
3706 static int dissect_teleserviceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3707   return dissect_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList);
3708 }
3709
3710
3711 static int
3712 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_) {
3713   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3714                                     NULL);
3715
3716   return offset;
3717 }
3718 static int dissect_ss_Code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3719   return dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
3720 }
3721 static int dissect_ss_Code_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3722   return dissect_gsm_map_Ss_Code(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
3723 }
3724
3725
3726 static int
3727 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_) {
3728
3729  tvbuff_t       *parameter_tvb;
3730  guint8         octet;
3731
3732  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3733                                     &parameter_tvb);
3734  if (!parameter_tvb)
3735         return offset;
3736
3737  octet = tvb_get_guint8(parameter_tvb,0);
3738
3739  proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
3740  if ((octet & 0x01)== 1)        
3741         proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
3742                                                                                 
3743  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);                                                                    
3744  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);                                                                    
3745  proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);                                                                    
3746
3747
3748
3749   return offset;
3750 }
3751 static int dissect_ss_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3752   return dissect_gsm_map_Ss_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
3753 }
3754 static int dissect_ss_Status_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3755   return dissect_gsm_map_Ss_Status(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
3756 }
3757
3758
3759 static int
3760 dissect_gsm_map_ForwardedToNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3761
3762  tvbuff_t       *parameter_tvb;
3763  char           *digit_str;
3764
3765  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3766                                     &parameter_tvb);
3767
3768  if (!parameter_tvb)
3769         return offset;
3770
3771  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
3772  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
3773  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
3774
3775  digit_str = unpack_digits(parameter_tvb, 1);
3776
3777  proto_tree_add_string(tree, hf_gsm_map_map_ForwardedToNumber_digits, parameter_tvb, 1, -1, digit_str);
3778
3779
3780   return offset;
3781 }
3782 static int dissect_forwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3783   return dissect_gsm_map_ForwardedToNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToNumber);
3784 }
3785
3786
3787 static int
3788 dissect_gsm_map_ForwardedToSubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3789   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3790                                     NULL);
3791
3792   return offset;
3793 }
3794 static int dissect_forwardedToSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3795   return dissect_gsm_map_ForwardedToSubaddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToSubaddress);
3796 }
3797
3798
3799 static int
3800 dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3801   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3802                                     NULL);
3803
3804   return offset;
3805 }
3806 static int dissect_forwardingOptions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3807   return dissect_gsm_map_ForwardingOptions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingOptions);
3808 }
3809
3810
3811
3812 static int
3813 dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3814   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3815
3816   return offset;
3817 }
3818 static int dissect_noReplyConditionTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3819   return dissect_gsm_map_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime);
3820 }
3821
3822
3823 static int
3824 dissect_gsm_map_LongForwardedToNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3825   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3826                                     NULL);
3827
3828   return offset;
3829 }
3830 static int dissect_longForwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3831   return dissect_gsm_map_LongForwardedToNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_longForwardedToNumber);
3832 }
3833
3834 static const ber_sequence_t ForwardingFeatureList_sequence[] = {
3835   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
3836   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
3837   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
3838   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
3839   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
3840   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
3841   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3842   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl },
3843   { 0, 0, 0, NULL }
3844 };
3845
3846 static int
3847 dissect_gsm_map_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3848   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3849                                 ForwardingFeatureList_sequence, hf_index, ett_gsm_map_ForwardingFeatureList);
3850
3851   return offset;
3852 }
3853 static int dissect_forwardingFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3854   return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_item);
3855 }
3856 static int dissect_forwardingFeatureList1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3857   return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList1);
3858 }
3859
3860 static const ber_sequence_t SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList_sequence_of[1] = {
3861   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_item },
3862 };
3863
3864 static int
3865 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_) {
3866   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3867                                    SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList);
3868
3869   return offset;
3870 }
3871 static int dissect_forwardingFeatureList_1_32(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3872   return dissect_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_1_32);
3873 }
3874
3875 static const ber_sequence_t ForwardingInfo_sequence[] = {
3876   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
3877   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_1_32 },
3878   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3879   { 0, 0, 0, NULL }
3880 };
3881
3882 static int
3883 dissect_gsm_map_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3884   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3885                                 ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
3886
3887   return offset;
3888 }
3889 static int dissect_forwardingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3890   return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInfo);
3891 }
3892
3893 static const ber_sequence_t CallBarringFeatureList_item_sequence[] = {
3894   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
3895   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
3896   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3897   { 0, 0, 0, NULL }
3898 };
3899
3900 static int
3901 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_) {
3902   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3903                                 CallBarringFeatureList_item_sequence, hf_index, ett_gsm_map_CallBarringFeatureList_item);
3904
3905   return offset;
3906 }
3907 static int dissect_CallBarringFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3908   return dissect_gsm_map_CallBarringFeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_CallBarringFeatureList_item);
3909 }
3910
3911 static const ber_sequence_t CallBarringFeatureList_sequence_of[1] = {
3912   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CallBarringFeatureList_item },
3913 };
3914
3915 static int
3916 dissect_gsm_map_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3917   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3918                                    CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_CallBarringFeatureList);
3919
3920   return offset;
3921 }
3922 static int dissect_callBarringFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3923   return dissect_gsm_map_CallBarringFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringFeatureList);
3924 }
3925
3926 static const ber_sequence_t CallBarringInfo_sequence[] = {
3927   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
3928   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
3929   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3930   { 0, 0, 0, NULL }
3931 };
3932
3933 static int
3934 dissect_gsm_map_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3935   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3936                                 CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
3937
3938   return offset;
3939 }
3940 static int dissect_callBarringInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3941   return dissect_gsm_map_CallBarringInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringInfo);
3942 }
3943
3944
3945
3946 static int
3947 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_) {
3948   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3949
3950   return offset;
3951 }
3952 static int dissect_cug_Index(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3953   return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Index);
3954 }
3955 static int dissect_preferentialCUG_Indicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3956   return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_preferentialCUG_Indicator);
3957 }
3958 static int dissect_ageOfLocationInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3959   return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationInformation);
3960 }
3961 static int dissect_ageOfLocationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3962   return dissect_gsm_map_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationInformation);
3963 }
3964 static int dissect_ageOfLocationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3965   return dissect_gsm_map_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationEstimate);
3966 }
3967
3968 static const ber_sequence_t T_cug_SubscriptionList_item_sequence[] = {
3969   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index },
3970   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
3971   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intraCUG_Options },
3972   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
3973   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3974   { 0, 0, 0, NULL }
3975 };
3976
3977 static int
3978 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_) {
3979   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3980                                 T_cug_SubscriptionList_item_sequence, hf_index, ett_gsm_map_T_cug_SubscriptionList_item);
3981
3982   return offset;
3983 }
3984 static int dissect_cug_SubscriptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3985   return dissect_gsm_map_T_cug_SubscriptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList_item);
3986 }
3987
3988 static const ber_sequence_t T_cug_SubscriptionList_sequence_of[1] = {
3989   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList_item },
3990 };
3991
3992 static int
3993 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_) {
3994   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3995                                    T_cug_SubscriptionList_sequence_of, hf_index, ett_gsm_map_T_cug_SubscriptionList);
3996
3997   return offset;
3998 }
3999 static int dissect_cug_SubscriptionList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4000   return dissect_gsm_map_T_cug_SubscriptionList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList);
4001 }
4002
4003 static const ber_sequence_t T_cug_FeatureList_item_sequence[] = {
4004   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
4005   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator },
4006   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions },
4007   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4008   { 0, 0, 0, NULL }
4009 };
4010
4011 static int
4012 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_) {
4013   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4014                                 T_cug_FeatureList_item_sequence, hf_index, ett_gsm_map_T_cug_FeatureList_item);
4015
4016   return offset;
4017 }
4018 static int dissect_cug_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4019   return dissect_gsm_map_T_cug_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList_item);
4020 }
4021
4022 static const ber_sequence_t T_cug_FeatureList_sequence_of[1] = {
4023   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList_item },
4024 };
4025
4026 static int
4027 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_) {
4028   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4029                                    T_cug_FeatureList_sequence_of, hf_index, ett_gsm_map_T_cug_FeatureList);
4030
4031   return offset;
4032 }
4033 static int dissect_cug_FeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4034   return dissect_gsm_map_T_cug_FeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList);
4035 }
4036
4037 static const ber_sequence_t T_cug_Info_sequence[] = {
4038   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList },
4039   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList },
4040   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4041   { 0, 0, 0, NULL }
4042 };
4043
4044 static int
4045 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_) {
4046   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4047                                 T_cug_Info_sequence, hf_index, ett_gsm_map_T_cug_Info);
4048
4049   return offset;
4050 }
4051 static int dissect_cug_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4052   return dissect_gsm_map_T_cug_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Info);
4053 }
4054
4055
4056 static const value_string gsm_map_CliRestrictionOption_vals[] = {
4057   {   0, "permanent" },
4058   {   1, "temporaryDefaultRestricted" },
4059   {   2, "temporaryDefaultAllowed" },
4060   { 0, NULL }
4061 };
4062
4063
4064 static int
4065 dissect_gsm_map_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4066   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4067
4068   return offset;
4069 }
4070 static int dissect_cliRestrictionOption_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4071   return dissect_gsm_map_CliRestrictionOption(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cliRestrictionOption);
4072 }
4073
4074
4075 static const value_string gsm_map_Ss_SubscriptionOption_vals[] = {
4076   {   2, "cliRestrictionOption" },
4077   {   1, "overrideCategory" },
4078   { 0, NULL }
4079 };
4080
4081 static const ber_choice_t Ss_SubscriptionOption_choice[] = {
4082   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
4083   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_overrideCategory_impl },
4084   { 0, 0, 0, 0, NULL }
4085 };
4086
4087 static int
4088 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_) {
4089   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4090                               Ss_SubscriptionOption_choice, hf_index, ett_gsm_map_Ss_SubscriptionOption);
4091
4092   return offset;
4093 }
4094 static int dissect_ss_SubscriptionOption(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4095   return dissect_gsm_map_Ss_SubscriptionOption(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_SubscriptionOption);
4096 }
4097
4098
4099
4100 static int
4101 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_) {
4102   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4103
4104   return offset;
4105 }
4106 static int dissect_maximumentitledPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4107   return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_maximumentitledPriority);
4108 }
4109 static int dissect_defaultPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4110   return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
4111 }
4112 static int dissect_defaultPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4113   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
4114 }
4115 static int dissect_nsapi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4116   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nsapi);
4117 }
4118 static int dissect_maximumEntitledPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4119   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_maximumEntitledPriority);
4120 }
4121 static int dissect_groupKeyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4122   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKeyNumber);
4123 }
4124 static int dissect_priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4125   return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_priority);
4126 }
4127
4128 static const ber_sequence_t Ss_Data_sequence[] = {
4129   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4130   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
4131   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
4132   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
4133   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
4134   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4135   { 0, 0, 0, NULL }
4136 };
4137
4138 static int
4139 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_) {
4140   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4141                                 Ss_Data_sequence, hf_index, ett_gsm_map_Ss_Data);
4142
4143   return offset;
4144 }
4145 static int dissect_ss_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4146   return dissect_gsm_map_Ss_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data);
4147 }
4148
4149 static const ber_sequence_t T_emlpp_Info_sequence[] = {
4150   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority },
4151   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
4152   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4153   { 0, 0, 0, NULL }
4154 };
4155
4156 static int
4157 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_) {
4158   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4159                                 T_emlpp_Info_sequence, hf_index, ett_gsm_map_T_emlpp_Info);
4160
4161   return offset;
4162 }
4163 static int dissect_emlpp_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4164   return dissect_gsm_map_T_emlpp_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_emlpp_Info);
4165 }
4166
4167
4168 static const value_string gsm_map_T_provisionedSS_item_vals[] = {
4169   {   0, "forwardingInfo" },
4170   {   1, "callBarringInfo" },
4171   {   2, "cug-Info" },
4172   {   3, "ss-Data" },
4173   {   4, "emlpp-Info" },
4174   { 0, NULL }
4175 };
4176
4177 static const ber_choice_t T_provisionedSS_item_choice[] = {
4178   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
4179   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
4180   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cug_Info_impl },
4181   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
4182   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_emlpp_Info_impl },
4183   { 0, 0, 0, 0, NULL }
4184 };
4185
4186 static int
4187 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_) {
4188   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4189                               T_provisionedSS_item_choice, hf_index, ett_gsm_map_T_provisionedSS_item);
4190
4191   return offset;
4192 }
4193 static int dissect_provisionedSS_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4194   return dissect_gsm_map_T_provisionedSS_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS_item);
4195 }
4196
4197 static const ber_sequence_t T_provisionedSS_sequence_of[1] = {
4198   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_provisionedSS_item },
4199 };
4200
4201 static int
4202 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_) {
4203   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4204                                    T_provisionedSS_sequence_of, hf_index, ett_gsm_map_T_provisionedSS);
4205
4206   return offset;
4207 }
4208 static int dissect_provisionedSS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4209   return dissect_gsm_map_T_provisionedSS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS);
4210 }
4211
4212 static const ber_sequence_t Odb_data_sequence[] = {
4213   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData },
4214   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data },
4215   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4216   { 0, 0, 0, NULL }
4217 };
4218
4219 static int
4220 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_) {
4221   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4222                                 Odb_data_sequence, hf_index, ett_gsm_map_Odb_data);
4223
4224   return offset;
4225 }
4226 static int dissect_odb_Data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4227   return dissect_gsm_map_Odb_data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Data);
4228 }
4229 static int dissect_odb_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4230   return dissect_gsm_map_Odb_data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Data);
4231 }
4232 static int dissect_odb_data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4233   return dissect_gsm_map_Odb_data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_data);
4234 }
4235
4236
4237 static int
4238 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_) {
4239   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4240                                     NULL);
4241
4242   return offset;
4243 }
4244 static int dissect_regionalSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4245   return dissect_gsm_map_OCTET_STRING_SIZE_2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData_item);
4246 }
4247 static int dissect_pdp_Type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4248   return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Type);
4249 }
4250 static int dissect_regionalSubscriptionIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4251   return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionIdentifier);
4252 }
4253 static int dissect_chargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4254   return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chargingCharacteristics);
4255 }
4256
4257 static const ber_sequence_t T_regionalSubscriptionData_sequence_of[1] = {
4258   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_regionalSubscriptionData_item },
4259 };
4260
4261 static int
4262 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_) {
4263   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4264                                    T_regionalSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_regionalSubscriptionData);
4265
4266   return offset;
4267 }
4268 static int dissect_regionalSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4269   return dissect_gsm_map_T_regionalSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData);
4270 }
4271
4272 static const ber_sequence_t T_vbsSubscriptionData_item_sequence[] = {
4273   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid },
4274   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement },
4275   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4276   { 0, 0, 0, NULL }
4277 };
4278
4279 static int
4280 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_) {
4281   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4282                                 T_vbsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vbsSubscriptionData_item);
4283
4284   return offset;
4285 }
4286 static int dissect_vbsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4287   return dissect_gsm_map_T_vbsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData_item);
4288 }
4289
4290 static const ber_sequence_t T_vbsSubscriptionData_sequence_of[1] = {
4291   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vbsSubscriptionData_item },
4292 };
4293
4294 static int
4295 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_) {
4296   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4297                                    T_vbsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vbsSubscriptionData);
4298
4299   return offset;
4300 }
4301 static int dissect_vbsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4302   return dissect_gsm_map_T_vbsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData);
4303 }
4304
4305 static const ber_sequence_t T_vgcsSubscriptionData_item_sequence[] = {
4306   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
4307   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4308   { 0, 0, 0, NULL }
4309 };
4310
4311 static int
4312 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_) {
4313   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4314                                 T_vgcsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vgcsSubscriptionData_item);
4315
4316   return offset;
4317 }
4318 static int dissect_vgcsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4319   return dissect_gsm_map_T_vgcsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData_item);
4320 }
4321
4322 static const ber_sequence_t T_vgcsSubscriptionData_sequence_of[1] = {
4323   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vgcsSubscriptionData_item },
4324 };
4325
4326 static int
4327 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_) {
4328   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4329                                    T_vgcsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vgcsSubscriptionData);
4330
4331   return offset;
4332 }
4333 static int dissect_vgcsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4334   return dissect_gsm_map_T_vgcsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData);
4335 }
4336
4337 static const ber_sequence_t T_ss_EventList_sequence_of[1] = {
4338   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventList_item },
4339 };
4340
4341 static int
4342 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_) {
4343   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4344                                    T_ss_EventList_sequence_of, hf_index, ett_gsm_map_T_ss_EventList);
4345
4346   return offset;
4347 }
4348 static int dissect_ss_EventList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4349   return dissect_gsm_map_T_ss_EventList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList);
4350 }
4351
4352 static const ber_sequence_t Ss_CamelData_sequence[] = {
4353   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList },
4354   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
4355   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4356   { 0, 0, 0, NULL }
4357 };
4358
4359 static int
4360 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_) {
4361   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4362                                 Ss_CamelData_sequence, hf_index, ett_gsm_map_Ss_CamelData);
4363
4364   return offset;
4365 }
4366 static int dissect_ss_CamelData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4367   return dissect_gsm_map_Ss_CamelData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CamelData);
4368 }
4369
4370 static const ber_sequence_t T_ss_CSI_sequence[] = {
4371   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
4372   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4373   { 0, 0, 0, NULL }
4374 };
4375
4376 static int
4377 dissect_gsm_map_T_ss_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4378   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4379                                 T_ss_CSI_sequence, hf_index, ett_gsm_map_T_ss_CSI);
4380
4381   return offset;
4382 }
4383 static int dissect_ss_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4384   return dissect_gsm_map_T_ss_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CSI);
4385 }
4386
4387
4388 static const value_string gsm_map_MatchType_vals[] = {
4389   {   0, "inhibiting" },
4390   {   1, "enabling" },
4391   { 0, NULL }
4392 };
4393
4394
4395 static int
4396 dissect_gsm_map_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4397   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4398
4399   return offset;
4400 }
4401 static int dissect_matchType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4402   return dissect_gsm_map_MatchType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_matchType);
4403 }
4404
4405
4406 static int
4407 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_) {
4408   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4409                                     NULL);
4410
4411   return offset;
4412 }
4413 static int dissect_destinationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4414   return dissect_gsm_map_T_destinationNumberList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList_item);
4415 }
4416
4417 static const ber_sequence_t T_destinationNumberList_sequence_of[1] = {
4418   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_destinationNumberList_item },
4419 };
4420
4421 static int
4422 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_) {
4423   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4424                                    T_destinationNumberList_sequence_of, hf_index, ett_gsm_map_T_destinationNumberList);
4425
4426   return offset;
4427 }
4428 static int dissect_destinationNumberList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4429   return dissect_gsm_map_T_destinationNumberList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList);
4430 }
4431
4432
4433
4434 static int
4435 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_) {
4436   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4437
4438   return offset;
4439 }
4440 static int dissect_destinationNumberLengthList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4441   return dissect_gsm_map_INTEGER_1_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList_item);
4442 }
4443
4444 static const ber_sequence_t T_destinationNumberLengthList_sequence_of[1] = {
4445   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_destinationNumberLengthList_item },
4446 };
4447
4448 static int
4449 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_) {
4450   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4451                                    T_destinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_T_destinationNumberLengthList);
4452
4453   return offset;
4454 }
4455 static int dissect_destinationNumberLengthList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4456   return dissect_gsm_map_T_destinationNumberLengthList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList);
4457 }
4458
4459 static const ber_sequence_t DestinationNumberCriteria_sequence[] = {
4460   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl },
4461   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl },
4462   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberLengthList_impl },
4463   { 0, 0, 0, NULL }
4464 };
4465
4466 static int
4467 dissect_gsm_map_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4468   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4469                                 DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
4470
4471   return offset;
4472 }
4473 static int dissect_destinationNumberCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4474   return dissect_gsm_map_DestinationNumberCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberCriteria);
4475 }
4476
4477
4478 static const value_string gsm_map_CallTypeCriteria_vals[] = {
4479   {   0, "forwarded" },
4480   {   1, "notForwarded" },
4481   { 0, NULL }
4482 };
4483
4484
4485 static int
4486 dissect_gsm_map_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4487   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4488
4489   return offset;
4490 }
4491 static int dissect_callTypeCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4492   return dissect_gsm_map_CallTypeCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callTypeCriteria);
4493 }
4494
4495 static const ber_sequence_t O_BcsmCamelTDP_CriteriaList_item_sequence[] = {
4496   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
4497   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
4498   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
4499   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
4500   { 0, 0, 0, NULL }
4501 };
4502
4503 static int
4504 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_) {
4505   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4506                                 O_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
4507
4508   return offset;
4509 }
4510 static int dissect_O_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4511   return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
4512 }
4513
4514 static const ber_sequence_t O_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
4515   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDP_CriteriaList_item },
4516 };
4517
4518 static int
4519 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_) {
4520   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4521                                    O_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList);
4522
4523   return offset;
4524 }
4525 static int dissect_o_BcsmCamelTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4526   return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList);
4527 }
4528
4529 static const ber_sequence_t T_vlrCamelSubscriptionInfo_sequence[] = {
4530   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
4531   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4532   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
4533   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
4534   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
4535   { 0, 0, 0, NULL }
4536 };
4537
4538 static int
4539 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_) {
4540   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4541                                 T_vlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_vlrCamelSubscriptionInfo);
4542
4543   return offset;
4544 }
4545 static int dissect_vlrCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4546   return dissect_gsm_map_T_vlrCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlrCamelSubscriptionInfo);
4547 }
4548
4549 static const ber_sequence_t Naea_PreferredCI_sequence[] = {
4550   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl },
4551   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4552   { 0, 0, 0, NULL }
4553 };
4554
4555 static int
4556 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_) {
4557   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4558                                 Naea_PreferredCI_sequence, hf_index, ett_gsm_map_Naea_PreferredCI);
4559
4560   return offset;
4561 }
4562 static int dissect_naea_PreferredCI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4563   return dissect_gsm_map_Naea_PreferredCI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCI);
4564 }
4565
4566
4567
4568 static int
4569 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_) {
4570   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4571
4572   return offset;
4573 }
4574 static int dissect_pdp_ContextId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4575   return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextId);
4576 }
4577 static int dissect_contextIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4578   return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList_item);
4579 }
4580 static int dissect_pdp_ContextIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4581   return dissect_gsm_map_INTEGER_1_50(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextIdentifier);
4582 }
4583
4584
4585 static int
4586 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_) {
4587   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4588                                     NULL);
4589
4590   return offset;
4591 }
4592 static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4593   return dissect_gsm_map_OCTET_STRING_SIZE_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Address);
4594 }
4595
4596
4597 static int
4598 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_) {
4599   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4600                                     NULL);
4601
4602   return offset;
4603 }
4604 static int dissect_qos_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4605   return dissect_gsm_map_Qos_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Subscribed);
4606 }
4607
4608
4609 static int
4610 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_) {
4611   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4612                                     NULL);
4613
4614   return offset;
4615 }
4616 static int dissect_apn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4617   return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn);
4618 }
4619 static int dissect_apn_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4620   return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn_Subscribed);
4621 }
4622 static int dissect_apn_InUse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4623   return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn_InUse);
4624 }
4625
4626 static const ber_sequence_t T_gprsDataList_item_sequence[] = {
4627   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId },
4628   { BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
4629   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
4630   { BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
4631   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vplmnAddressAllowed_impl },
4632   { BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_apn_impl },
4633   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4634   { 0, 0, 0, NULL }
4635 };
4636
4637 static int
4638 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_) {
4639   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4640                                 T_gprsDataList_item_sequence, hf_index, ett_gsm_map_T_gprsDataList_item);
4641
4642   return offset;
4643 }
4644 static int dissect_gprsDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4645   return dissect_gsm_map_T_gprsDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList_item);
4646 }
4647
4648 static const ber_sequence_t T_gprsDataList_sequence_of[1] = {
4649   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprsDataList_item },
4650 };
4651
4652 static int
4653 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_) {
4654   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4655                                    T_gprsDataList_sequence_of, hf_index, ett_gsm_map_T_gprsDataList);
4656
4657   return offset;
4658 }
4659 static int dissect_gprsDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4660   return dissect_gsm_map_T_gprsDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList);
4661 }
4662
4663 static const ber_sequence_t T_gprsSubscriptionData_sequence[] = {
4664   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
4665   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl },
4666   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4667   { 0, 0, 0, NULL }
4668 };
4669
4670 static int
4671 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_) {
4672   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4673                                 T_gprsSubscriptionData_sequence, hf_index, ett_gsm_map_T_gprsSubscriptionData);
4674
4675   return offset;
4676 }
4677 static int dissect_gprsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4678   return dissect_gsm_map_T_gprsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionData);
4679 }
4680
4681
4682 static const value_string gsm_map_T_networkAccessMode_vals[] = {
4683   {   0, "bothMSCAndSGSN" },
4684   {   1, "onlyMSC" },
4685   {   2, "onlySGSN" },
4686   { 0, NULL }
4687 };
4688
4689
4690 static int
4691 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_) {
4692   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4693
4694   return offset;
4695 }
4696 static int dissect_networkAccessMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4697   return dissect_gsm_map_T_networkAccessMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkAccessMode);
4698 }
4699
4700
4701 static const value_string gsm_map_T_lsaOnlyAccessIndicator_vals[] = {
4702   {   0, "accessOutsideLSAsAllowed" },
4703   {   1, "accessOutsideLSAsRestricted" },
4704   { 0, NULL }
4705 };
4706
4707
4708 static int
4709 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_) {
4710   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4711
4712   return offset;
4713 }
4714 static int dissect_lsaOnlyAccessIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4715   return dissect_gsm_map_T_lsaOnlyAccessIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaOnlyAccessIndicator);
4716 }
4717
4718 static const ber_sequence_t T_lsaDataList_item_sequence[] = {
4719   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl },
4720   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl },
4721   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaActiveModeIndicator_impl },
4722   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4723   { 0, 0, 0, NULL }
4724 };
4725
4726 static int
4727 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_) {
4728   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4729                                 T_lsaDataList_item_sequence, hf_index, ett_gsm_map_T_lsaDataList_item);
4730
4731   return offset;
4732 }
4733 static int dissect_lsaDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4734   return dissect_gsm_map_T_lsaDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList_item);
4735 }
4736
4737 static const ber_sequence_t T_lsaDataList_sequence_of[1] = {
4738   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaDataList_item },
4739 };
4740
4741 static int
4742 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_) {
4743   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4744                                    T_lsaDataList_sequence_of, hf_index, ett_gsm_map_T_lsaDataList);
4745
4746   return offset;
4747 }
4748 static int dissect_lsaDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4749   return dissect_gsm_map_T_lsaDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList);
4750 }
4751
4752 static const ber_sequence_t T_lsaInformation_sequence[] = {
4753   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
4754   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl },
4755   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaDataList_impl },
4756   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4757   { 0, 0, 0, NULL }
4758 };
4759
4760 static int
4761 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_) {
4762   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4763                                 T_lsaInformation_sequence, hf_index, ett_gsm_map_T_lsaInformation);
4764
4765   return offset;
4766 }
4767 static int dissect_lsaInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4768   return dissect_gsm_map_T_lsaInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformation);
4769 }
4770
4771
4772 static int
4773 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_) {
4774   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4775                                     NULL);
4776
4777   return offset;
4778 }
4779 static int dissect_gmlc_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4780   return dissect_gsm_map_T_gmlc_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List_item);
4781 }
4782
4783 static const ber_sequence_t T_gmlc_List_sequence_of[1] = {
4784   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gmlc_List_item },
4785 };
4786
4787 static int
4788 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_) {
4789   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4790                                    T_gmlc_List_sequence_of, hf_index, ett_gsm_map_T_gmlc_List);
4791
4792   return offset;
4793 }
4794 static int dissect_gmlc_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4795   return dissect_gsm_map_T_gmlc_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List);
4796 }
4797
4798
4799 static const value_string gsm_map_NotificationToMSUser_vals[] = {
4800   {   0, "notifyLocationAllowed" },
4801   {   1, "notifyAndVerify-LocationAllowedIfNoResponse" },
4802   {   2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
4803   { 0, NULL }
4804 };
4805
4806
4807 static int
4808 dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4809   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4810
4811   return offset;
4812 }
4813 static int dissect_notificationToMSUser_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4814   return dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToMSUser);
4815 }
4816
4817
4818 static int
4819 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_) {
4820   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4821                                     NULL);
4822
4823   return offset;
4824 }
4825 static int dissect_externalAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4826   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalAddress);
4827 }
4828 static int dissect_omc_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4829   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_omc_Id);
4830 }
4831 static int dissect_ss_EventSpecification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4832   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification_item);
4833 }
4834 static int dissect_locationEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4835   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
4836 }
4837 static int dissect_locationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4838   return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
4839 }
4840
4841 static const ber_sequence_t T_clientIdentity_sequence[] = {
4842   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
4843   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4844   { 0, 0, 0, NULL }
4845 };
4846
4847 static int
4848 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_) {
4849   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4850                                 T_clientIdentity_sequence, hf_index, ett_gsm_map_T_clientIdentity);
4851
4852   return offset;
4853 }
4854 static int dissect_clientIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4855   return dissect_gsm_map_T_clientIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_clientIdentity);
4856 }
4857
4858
4859 static const value_string gsm_map_T_gmlc_Restriction_vals[] = {
4860   {   0, "gmlc-List" },
4861   {   1, "home-Country" },
4862   { 0, NULL }
4863 };
4864
4865
4866 static int
4867 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_) {
4868   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4869
4870   return offset;
4871 }
4872 static int dissect_gmlc_Restriction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4873   return dissect_gsm_map_T_gmlc_Restriction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_Restriction);
4874 }
4875
4876 static const ber_sequence_t T_externalClientList_item_sequence[] = {
4877   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity },
4878   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
4879   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
4880   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4881   { 0, 0, 0, NULL }
4882 };
4883
4884 static int
4885 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_) {
4886   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4887                                 T_externalClientList_item_sequence, hf_index, ett_gsm_map_T_externalClientList_item);
4888
4889   return offset;
4890 }
4891 static int dissect_externalClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4892   return dissect_gsm_map_T_externalClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList_item);
4893 }
4894
4895 static const ber_sequence_t T_externalClientList_sequence_of[1] = {
4896   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_externalClientList_item },
4897 };
4898
4899 static int
4900 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_) {
4901   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4902                                    T_externalClientList_sequence_of, hf_index, ett_gsm_map_T_externalClientList);
4903
4904   return offset;
4905 }
4906 static int dissect_externalClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4907   return dissect_gsm_map_T_externalClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList);
4908 }
4909
4910
4911 static const value_string gsm_map_T_plmnClientList_item_vals[] = {
4912   {   0, "broadcastService" },
4913   {   1, "o-andM-HPLMN" },
4914   {   2, "o-andM-VPLMN" },
4915   {   3, "anonymousLocation" },
4916   {   4, "targetMSsubscribedService" },
4917   { 0, NULL }
4918 };
4919
4920
4921 static int
4922 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_) {
4923   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4924
4925   return offset;
4926 }
4927 static int dissect_plmnClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4928   return dissect_gsm_map_T_plmnClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList_item);
4929 }
4930
4931 static const ber_sequence_t T_plmnClientList_sequence_of[1] = {
4932   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_plmnClientList_item },
4933 };
4934
4935 static int
4936 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_) {
4937   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4938                                    T_plmnClientList_sequence_of, hf_index, ett_gsm_map_T_plmnClientList);
4939
4940   return offset;
4941 }
4942 static int dissect_plmnClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4943   return dissect_gsm_map_T_plmnClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList);
4944 }
4945
4946 static const ber_sequence_t T_lcs_PrivacyExceptionList_item_sequence[] = {
4947   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4948   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
4949   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
4950   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalClientList_impl },
4951   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmnClientList_impl },
4952   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4953   { 0, 0, 0, NULL }
4954 };
4955
4956 static int
4957 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_) {
4958   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4959                                 T_lcs_PrivacyExceptionList_item_sequence, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList_item);
4960
4961   return offset;
4962 }
4963 static int dissect_lcs_PrivacyExceptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4964   return dissect_gsm_map_T_lcs_PrivacyExceptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList_item);
4965 }
4966
4967 static const ber_sequence_t T_lcs_PrivacyExceptionList_sequence_of[1] = {
4968   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_PrivacyExceptionList_item },
4969 };
4970
4971 static int
4972 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_) {
4973   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4974                                    T_lcs_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList);
4975
4976   return offset;
4977 }
4978 static int dissect_lcs_PrivacyExceptionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4979   return dissect_gsm_map_T_lcs_PrivacyExceptionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList);
4980 }
4981
4982 static const ber_sequence_t T_molr_List_item_sequence[] = {
4983   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4984   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
4985   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4986   { 0, 0, 0, NULL }
4987 };
4988
4989 static int
4990 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_) {
4991   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4992                                 T_molr_List_item_sequence, hf_index, ett_gsm_map_T_molr_List_item);
4993
4994   return offset;
4995 }
4996 static int dissect_molr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4997   return dissect_gsm_map_T_molr_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List_item);
4998 }
4999
5000 static const ber_sequence_t T_molr_List_sequence_of[1] = {
5001   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_molr_List_item },
5002 };
5003
5004 static int
5005 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_) {
5006   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5007                                    T_molr_List_sequence_of, hf_index, ett_gsm_map_T_molr_List);
5008
5009   return offset;
5010 }
5011 static int dissect_molr_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5012   return dissect_gsm_map_T_molr_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List);
5013 }
5014
5015 static const ber_sequence_t T_lcsInformation_sequence[] = {
5016   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl },
5017   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl },
5018   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_molr_List_impl },
5019   { 0, 0, 0, NULL }
5020 };
5021
5022 static int
5023 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_) {
5024   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5025                                 T_lcsInformation_sequence, hf_index, ett_gsm_map_T_lcsInformation);
5026
5027   return offset;
5028 }
5029 static int dissect_lcsInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5030   return dissect_gsm_map_T_lcsInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsInformation);
5031 }
5032
5033 static const ber_sequence_t InsertSubscriberDataArg_sequence[] = {
5034   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5035   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5036   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl },
5037   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStatus_impl },
5038   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
5039   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
5040   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provisionedSS_impl },
5041   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Data_impl },
5042   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
5043   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionData_impl },
5044   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsSubscriptionData_impl },
5045   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsSubscriptionData_impl },
5046   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlrCamelSubscriptionInfo_impl },
5047   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5048   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
5049   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSubscriptionData_impl },
5050   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl },
5051   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkAccessMode_impl },
5052   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaInformation_impl },
5053   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmu_Indicator_impl },
5054   { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsInformation_impl },
5055   { 0, 0, 0, NULL }
5056 };
5057
5058 static int
5059 dissect_gsm_map_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5060   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5061                                 InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
5062
5063   return offset;
5064 }
5065
5066 static const ber_sequence_t ss_List_sequence_of[1] = {
5067   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_List_item },
5068 };
5069
5070 static int
5071 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_) {
5072   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5073                                    ss_List_sequence_of, hf_index, ett_gsm_map_ss_List);
5074
5075   return offset;
5076 }
5077 static int dissect_ss_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5078   return dissect_gsm_map_ss_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List);
5079 }
5080
5081
5082 static const value_string gsm_map_RegionalSubscriptionResponse_vals[] = {
5083   {   0, "networkNodeAreaRestricted" },
5084   {   1, "tooManyZoneCodes" },
5085   {   2, "zoneCodesConflict" },
5086   {   3, "regionalSubscNotSupported" },
5087   { 0, NULL }
5088 };
5089
5090
5091 static int
5092 dissect_gsm_map_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5093   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5094
5095   return offset;
5096 }
5097 static int dissect_regionalSubscriptionResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5098   return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionResponse);
5099 }
5100
5101 static const ber_sequence_t InsertSubscriberDataRes_sequence[] = {
5102   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
5103   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
5104   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
5105   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_GeneralData_impl },
5106   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
5107   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
5108   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5109   { 0, 0, 0, NULL }
5110 };
5111
5112 static int
5113 dissect_gsm_map_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5114   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5115                                 InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
5116
5117   return offset;
5118 }
5119
5120 static const ber_sequence_t T_contextIdList_sequence_of[1] = {
5121   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_contextIdList_item },
5122 };
5123
5124 static int
5125 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_) {
5126   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5127                                    T_contextIdList_sequence_of, hf_index, ett_gsm_map_T_contextIdList);
5128
5129   return offset;
5130 }
5131 static int dissect_contextIdList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5132   return dissect_gsm_map_T_contextIdList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList);
5133 }
5134
5135
5136 static const value_string gsm_map_T_gprsSubscriptionDataWithdraw_vals[] = {
5137   {   0, "allGPRSData" },
5138   {   1, "contextIdList" },
5139   { 0, NULL }
5140 };
5141
5142 static const ber_choice_t T_gprsSubscriptionDataWithdraw_choice[] = {
5143   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allGPRSData },
5144   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextIdList },
5145   { 0, 0, 0, 0, NULL }
5146 };
5147
5148 static int
5149 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_) {
5150   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5151                               T_gprsSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_T_gprsSubscriptionDataWithdraw);
5152
5153   return offset;
5154 }
5155 static int dissect_gprsSubscriptionDataWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5156   return dissect_gsm_map_T_gprsSubscriptionDataWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionDataWithdraw);
5157 }
5158
5159 static const ber_sequence_t T_lsaIdentityList_sequence_of[1] = {
5160   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList_item },
5161 };
5162
5163 static int
5164 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_) {
5165   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5166                                    T_lsaIdentityList_sequence_of, hf_index, ett_gsm_map_T_lsaIdentityList);
5167
5168   return offset;
5169 }
5170 static int dissect_lsaIdentityList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5171   return dissect_gsm_map_T_lsaIdentityList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList);
5172 }
5173
5174
5175 static const value_string gsm_map_T_lsaInformationWithdraw_vals[] = {
5176   {   0, "allLSAData" },
5177   {   1, "lsaIdentityList" },
5178   { 0, NULL }
5179 };
5180
5181 static const ber_choice_t T_lsaInformationWithdraw_choice[] = {
5182   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allLSAData },
5183   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList },
5184   { 0, 0, 0, 0, NULL }
5185 };
5186
5187 static int
5188 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_) {
5189   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5190                               T_lsaInformationWithdraw_choice, hf_index, ett_gsm_map_T_lsaInformationWithdraw);
5191
5192   return offset;
5193 }
5194 static int dissect_lsaInformationWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5195   return dissect_gsm_map_T_lsaInformationWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformationWithdraw);
5196 }
5197
5198 static const ber_sequence_t DeleteSubscriberDataArg_sequence[] = {
5199   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5200   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
5201   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
5202   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
5203   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionIdentifier_impl },
5204   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsGroupIndication_impl },
5205   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsGroupIndication_impl },
5206   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelSubscriptionInfoWithdraw_impl },
5207   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5208   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_gprsSubscriptionDataWithdraw },
5209   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl },
5210   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_lsaInformationWithdraw },
5211   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_ListWithdraw_impl },
5212   { 0, 0, 0, NULL }
5213 };
5214
5215 static int
5216 dissect_gsm_map_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5217   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5218                                 DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
5219
5220   return offset;
5221 }
5222
5223 static const ber_sequence_t DeleteSubscriberDataRes_sequence[] = {
5224   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
5225   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5226   { 0, 0, 0, NULL }
5227 };
5228
5229 static int
5230 dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5231   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5232                                 DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
5233
5234   return offset;
5235 }
5236
5237
5238 static int
5239 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_) {
5240   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5241                                     NULL);
5242
5243   return offset;
5244 }
5245 static int dissect_hlr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5246   return dissect_gsm_map_OCTET_STRING_SIZE_3_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List_item);
5247 }
5248
5249 static const ber_sequence_t T_hlr_List_sequence_of[1] = {
5250   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_List_item },
5251 };
5252
5253 static int
5254 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_) {
5255   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5256                                    T_hlr_List_sequence_of, hf_index, ett_gsm_map_T_hlr_List);
5257
5258   return offset;
5259 }
5260 static int dissect_hlr_List(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5261   return dissect_gsm_map_T_hlr_List(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List);
5262 }
5263
5264 static const ber_sequence_t ResetArg_sequence[] = {
5265   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
5266   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List },
5267   { 0, 0, 0, NULL }
5268 };
5269
5270 static int
5271 dissect_gsm_map_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5272   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5273                                 ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
5274
5275   return offset;
5276 }
5277
5278 static const ber_sequence_t RestoreDataArg_sequence[] = {
5279   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
5280   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
5281   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5282   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
5283   { 0, 0, 0, NULL }
5284 };
5285
5286 static int
5287 dissect_gsm_map_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5288   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5289                                 RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
5290
5291   return offset;
5292 }
5293
5294 static const ber_sequence_t RestoreDataRes_sequence[] = {
5295   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
5296   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable },
5297   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5298   { 0, 0, 0, NULL }
5299 };
5300
5301 static int
5302 dissect_gsm_map_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5303   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5304                                 RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
5305
5306   return offset;
5307 }
5308
5309
5310 static int
5311 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_) {
5312   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5313                                     NULL);
5314
5315   return offset;
5316 }
5317 static int dissect_traceReference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5318   return dissect_gsm_map_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceReference);
5319 }
5320 static int dissect_transactionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5321   return dissect_gsm_map_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_transactionId);
5322 }
5323
5324
5325
5326 static int
5327 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_) {
5328   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5329
5330   return offset;
5331 }
5332 static int dissect_traceType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5333   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceType);
5334 }
5335 static int dissect_absentSubscriberDiagnosticSM(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5336   return dissect_gsm_map_INTEGER_0_255(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
5337 }
5338 static int dissect_absentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5339   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
5340 }
5341 static int dissect_additionalAbsentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5342   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalAbsentSubscriberDiagnosticSM);
5343 }
5344 static int dissect_mobileNotReachableReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5345   return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mobileNotReachableReason);
5346 }
5347
5348 static const ber_sequence_t ActivateTraceModeArg_sequence[] = {
5349   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5350   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
5351   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_traceType_impl },
5352   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_omc_Id_impl },
5353   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5354   { 0, 0, 0, NULL }
5355 };
5356
5357 static int
5358 dissect_gsm_map_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5359   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5360                                 ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
5361
5362   return offset;
5363 }
5364
5365 static const ber_sequence_t ActivateTraceModeRes_sequence[] = {
5366   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5367   { 0, 0, 0, NULL }
5368 };
5369
5370 static int
5371 dissect_gsm_map_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5372   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5373                                 ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
5374
5375   return offset;
5376 }
5377
5378 static const ber_sequence_t DeactivateTraceModeArg_sequence[] = {
5379   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5380   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
5381   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5382   { 0, 0, 0, NULL }
5383 };
5384
5385 static int
5386 dissect_gsm_map_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5387   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5388                                 DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
5389
5390   return offset;
5391 }
5392
5393 static const ber_sequence_t DeactivateTraceModeRes_sequence[] = {
5394   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5395   { 0, 0, 0, NULL }
5396 };
5397
5398 static int
5399 dissect_gsm_map_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5400   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5401                                 DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
5402
5403   return offset;
5404 }
5405
5406 static const ber_sequence_t Cug_CheckInfo_sequence[] = {
5407   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
5408   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess },
5409   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5410   { 0, 0, 0, NULL }
5411 };
5412
5413 static int
5414 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_) {
5415   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5416                                 Cug_CheckInfo_sequence, hf_index, ett_gsm_map_Cug_CheckInfo);
5417
5418   return offset;
5419 }
5420 static int dissect_cug_CheckInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5421   return dissect_gsm_map_Cug_CheckInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_CheckInfo);
5422 }
5423
5424
5425 static const value_string gsm_map_T_interrogationType_vals[] = {
5426   {   0, "basicCall" },
5427   {   1, "forwarding" },
5428   { 0, NULL }
5429 };
5430
5431
5432 static int
5433 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_) {
5434   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5435
5436   return offset;
5437 }
5438 static int dissect_interrogationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5439   return dissect_gsm_map_T_interrogationType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_interrogationType);
5440 }
5441
5442
5443
5444 static int
5445 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_) {
5446   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5447
5448   return offset;
5449 }
5450 static int dissect_or_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5451   return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Capability);
5452 }
5453 static int dissect_supportedCCBS_Phase_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5454   return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCCBS_Phase);
5455 }
5456
5457
5458 static int
5459 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_) {
5460
5461  tvbuff_t       *parameter_tvb;
5462  char           *digit_str;
5463
5464  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5465                                     &parameter_tvb);
5466
5467  if (!parameter_tvb)
5468         return offset;
5469
5470  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
5471  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
5472  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
5473
5474  digit_str = unpack_digits(parameter_tvb, 1);
5475
5476  proto_tree_add_string(tree, hf_gsm_map_map_gmsc_address_digits, parameter_tvb, 1, -1, digit_str);
5477
5478
5479
5480
5481   return offset;
5482 }
5483 static int dissect_gmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5484   return dissect_gsm_map_Gmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_Address);
5485 }
5486
5487
5488 static const value_string gsm_map_T_forwardingReason_vals[] = {
5489   {   0, "notReachable" },
5490   {   1, "busy" },
5491   {   2, "noReply" },
5492   { 0, NULL }
5493 };
5494
5495
5496 static int
5497 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_) {
5498   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5499
5500   return offset;
5501 }
5502 static int dissect_forwardingReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5503   return dissect_gsm_map_T_forwardingReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingReason);
5504 }
5505
5506 static const ber_sequence_t T_camelInfo_sequence[] = {
5507   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases },
5508   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI },
5509   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5510   { 0, 0, 0, NULL }
5511 };
5512
5513 static int
5514 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_) {
5515   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5516                                 T_camelInfo_sequence, hf_index, ett_gsm_map_T_camelInfo);
5517
5518   return offset;
5519 }
5520 static int dissect_camelInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5521   return dissect_gsm_map_T_camelInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelInfo);
5522 }
5523
5524
5525 static const value_string gsm_map_T_ext_ProtocolId_vals[] = {
5526   {   1, "ets-300356" },
5527   { 0, NULL }
5528 };
5529
5530
5531 static int
5532 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_) {
5533   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5534
5535   return offset;
5536 }
5537 static int dissect_ext_ProtocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5538   return dissect_gsm_map_T_ext_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_ProtocolId);
5539 }
5540
5541
5542 static int
5543 dissect_gsm_map_ExtSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5544   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5545                                     NULL);
5546
5547   return offset;
5548 }
5549 static int dissect_ext_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5550   return dissect_gsm_map_ExtSignalInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_signalInfo);
5551 }
5552
5553 static const ber_sequence_t AdditionalSignalInfo_sequence[] = {
5554   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId },
5555   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_signalInfo },
5556   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5557   { 0, 0, 0, NULL }
5558 };
5559
5560 static int
5561 dissect_gsm_map_AdditionalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5562   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5563                                 AdditionalSignalInfo_sequence, hf_index, ett_gsm_map_AdditionalSignalInfo);
5564
5565   return offset;
5566 }
5567 static int dissect_additionalSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5568   return dissect_gsm_map_AdditionalSignalInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSignalInfo);
5569 }
5570
5571 static const ber_sequence_t SendRoutingInfoArg_sequence[] = {
5572   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5573   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
5574   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfForwarding_impl },
5575   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_interrogationType_impl },
5576   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
5577   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Capability_impl },
5578   { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
5579   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
5580   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingReason_impl },
5581   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
5582   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
5583   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelInfo_impl },
5584   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
5585   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5586   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
5587   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
5588   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCCBS_Phase_impl },
5589   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
5590   { 0, 0, 0, NULL }
5591 };
5592
5593 static int
5594 dissect_gsm_map_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5595   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5596                                 SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
5597
5598   return offset;
5599 }
5600
5601
5602 static int
5603 dissect_gsm_map_RoamingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5604
5605  tvbuff_t       *parameter_tvb;
5606  char           *digit_str;
5607
5608  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5609                                     &parameter_tvb);
5610
5611  if (!parameter_tvb)
5612         return offset;
5613
5614  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
5615  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
5616  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
5617
5618  digit_str = unpack_digits(parameter_tvb, 1);
5619
5620  proto_tree_add_string(tree, hf_gsm_map_map_RoamingNumber_digits, parameter_tvb, 1, -1, digit_str);
5621
5622
5623   return offset;
5624 }
5625 static int dissect_roamingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5626   return dissect_gsm_map_RoamingNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNumber);
5627 }
5628
5629 static const ber_sequence_t ForwardingData_sequence[] = {
5630   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
5631   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
5632   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
5633   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5634   { 0, 0, 0, NULL }
5635 };
5636
5637 static int
5638 dissect_gsm_map_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5639   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5640                                 ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
5641
5642   return offset;
5643 }
5644 static int dissect_forwardingData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5645   return dissect_gsm_map_ForwardingData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
5646 }
5647 static int dissect_forwardingData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5648   return dissect_gsm_map_ForwardingData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
5649 }
5650
5651
5652 static const value_string gsm_map_T_routingInfo_vals[] = {
5653   {   0, "roamingNumber" },
5654   {   1, "forwardingData" },
5655   { 0, NULL }
5656 };
5657
5658 static const ber_choice_t T_routingInfo_choice[] = {
5659   {   0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
5660   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingData },
5661   { 0, 0, 0, 0, NULL }
5662 };
5663
5664 static int
5665 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_) {
5666   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5667                               T_routingInfo_choice, hf_index, ett_gsm_map_T_routingInfo);
5668
5669   return offset;
5670 }
5671 static int dissect_routingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5672   return dissect_gsm_map_T_routingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_routingInfo);
5673 }
5674
5675 static const ber_sequence_t T_t_CSI_sequence[] = {
5676   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
5677   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5678   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
5679   { 0, 0, 0, NULL }
5680 };
5681
5682 static int
5683 dissect_gsm_map_T_t_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5684   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5685                                 T_t_CSI_sequence, hf_index, ett_gsm_map_T_t_CSI);
5686
5687   return offset;
5688 }
5689 static int dissect_t_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5690   return dissect_gsm_map_T_t_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CSI);
5691 }
5692
5693 static const ber_sequence_t T_gmscCamelSubscriptionInfo_sequence[] = {
5694   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
5695   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
5696   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5697   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
5698   { 0, 0, 0, NULL }
5699 };
5700
5701 static int
5702 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_) {
5703   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5704                                 T_gmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_gmscCamelSubscriptionInfo);
5705
5706   return offset;
5707 }
5708 static int dissect_gmscCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5709   return dissect_gsm_map_T_gmscCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmscCamelSubscriptionInfo);
5710 }
5711
5712 static const ber_sequence_t T_camelRoutingInfo_sequence[] = {
5713   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData },
5714   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl },
5715   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5716   { 0, 0, 0, NULL }
5717 };
5718
5719 static int
5720 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_) {
5721   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5722                                 T_camelRoutingInfo_sequence, hf_index, ett_gsm_map_T_camelRoutingInfo);
5723
5724   return offset;
5725 }
5726 static int dissect_camelRoutingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5727   return dissect_gsm_map_T_camelRoutingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelRoutingInfo);
5728 }
5729
5730
5731 static const value_string gsm_map_T_extendedRoutingInfo_vals[] = {
5732   {   0, "routingInfo" },
5733   {   1, "camelRoutingInfo" },
5734   { 0, NULL }
5735 };
5736
5737 static const ber_choice_t T_extendedRoutingInfo_choice[] = {
5738   {   0, BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
5739   {   1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl },
5740   { 0, 0, 0, 0, NULL }
5741 };
5742
5743 static int
5744 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_) {
5745   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5746                               T_extendedRoutingInfo_choice, hf_index, ett_gsm_map_T_extendedRoutingInfo);
5747
5748   return offset;
5749 }
5750 static int dissect_extendedRoutingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5751   return dissect_gsm_map_T_extendedRoutingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extendedRoutingInfo);
5752 }
5753
5754
5755 static int
5756 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_) {
5757   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5758                                     NULL);
5759
5760   return offset;
5761 }
5762 static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5763   return dissect_gsm_map_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationNumber);
5764 }
5765
5766
5767 static int
5768 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_) {
5769   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5770                                     NULL);
5771
5772   return offset;
5773 }
5774 static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5775   return dissect_gsm_map_OCTET_STRING_SIZE_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_laiFixedLength);
5776 }
5777
5778
5779 static const value_string gsm_map_T_cellIdOrLAI_vals[] = {
5780   {   0, "cellIdFixedLength" },
5781   {   1, "laiFixedLength" },
5782   { 0, NULL }
5783 };
5784
5785 static const ber_choice_t T_cellIdOrLAI_choice[] = {
5786   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellIdFixedLength_impl },
5787   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
5788   { 0, 0, 0, 0, NULL }
5789 };
5790
5791 static int
5792 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_) {
5793   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5794                               T_cellIdOrLAI_choice, hf_index, ett_gsm_map_T_cellIdOrLAI);
5795
5796   return offset;
5797 }
5798 static int dissect_cellIdOrLAI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5799   return dissect_gsm_map_T_cellIdOrLAI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdOrLAI);
5800 }
5801
5802
5803 static int
5804 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_) {
5805   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5806                                     NULL);
5807
5808   return offset;
5809 }
5810 static int dissect_geodeticInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5811   return dissect_gsm_map_OCTET_STRING_SIZE_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geodeticInformation);
5812 }
5813
5814 static const ber_sequence_t LocationInformation_sequence[] = {
5815   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation },
5816   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
5817   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl },
5818   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
5819   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_cellIdOrLAI },
5820   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5821   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSA_Id_impl },
5822   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
5823   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl },
5824   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl },
5825   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
5826   { 0, 0, 0, NULL }
5827 };
5828
5829 static int
5830 dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5831   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5832                                 LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
5833
5834   return offset;
5835 }
5836 static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5837   return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformation);
5838 }
5839
5840
5841 static const value_string gsm_map_SubscriberState_vals[] = {
5842   {   0, "assumedIdle" },
5843   {   1, "camelBusy" },
5844   {   2, "notProvidedFromVLR" },
5845   { 0, NULL }
5846 };
5847
5848 static const ber_choice_t SubscriberState_choice[] = {
5849   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl },
5850   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl },
5851   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl },
5852   { 0, 0, 0, 0, NULL }
5853 };
5854
5855 static int
5856 dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5857   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5858                               SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState);
5859
5860   return offset;
5861 }
5862 static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5863   return dissect_gsm_map_SubscriberState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberState);
5864 }
5865
5866
5867 static const value_string gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
5868   {   0, "cellGlobalIdOrServiceAreaIdFixedLength" },
5869   {   1, "laiFixedLength" },
5870   { 0, NULL }
5871 };
5872
5873 static const ber_choice_t T_cellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
5874   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl },
5875   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
5876   { 0, 0, 0, 0, NULL }
5877 };
5878
5879 static int
5880 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_) {
5881   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5882                               T_cellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI);
5883
5884   return offset;
5885 }
5886 static int dissect_cellGlobalIdOrServiceAreaIdOrLAI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5887   return dissect_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI);
5888 }
5889
5890
5891 static int
5892 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_) {
5893   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5894                                     NULL);
5895
5896   return offset;
5897 }
5898 static int dissect_routeingAreaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5899   return dissect_gsm_map_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_routeingAreaIdentity);
5900 }
5901
5902 static const ber_sequence_t T_locationInformationGPRS_sequence[] = {
5903   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_cellGlobalIdOrServiceAreaIdOrLAI },
5904   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingAreaIdentity_impl },
5905   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
5906   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
5907   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSAIdentity_impl },
5908   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5909   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
5910   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl },
5911   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl },
5912   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationInformation_impl },
5913   { 0, 0, 0, NULL }
5914 };
5915
5916 static int
5917 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_) {
5918   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5919                                 T_locationInformationGPRS_sequence, hf_index, ett_gsm_map_T_locationInformationGPRS);
5920
5921   return offset;
5922 }
5923 static int dissect_locationInformationGPRS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5924   return dissect_gsm_map_T_locationInformationGPRS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformationGPRS);
5925 }
5926
5927
5928 static int
5929 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_) {
5930   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5931                                     NULL);
5932
5933   return offset;
5934 }
5935 static int dissect_ggsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5936   return dissect_gsm_map_Ggsn_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Address);
5937 }
5938
5939
5940 static int
5941 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_) {
5942   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5943                                     NULL);
5944
5945   return offset;
5946 }
5947 static int dissect_qos2_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5948   return dissect_gsm_map_OCTET_STRING_SIZE_1_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Subscribed);
5949 }
5950 static int dissect_qos2_Requested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5951   return dissect_gsm_map_OCTET_STRING_SIZE_1_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Requested);
5952 }
5953 static int dissect_qos2_Negotiated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5954   return dissect_gsm_map_OCTET_STRING_SIZE_1_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos2_Negotiated);
5955 }
5956
5957 static const ber_sequence_t T_ps_PDP_ActiveNotReachableForPaging_item_sequence[] = {
5958   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl },
5959   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl },
5960   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
5961   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
5962   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_Subscribed_impl },
5963   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_InUse_impl },
5964   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nsapi_impl },
5965   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
5966   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForGnAndGp_impl },
5967   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForIu_impl },
5968   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
5969   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
5970   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Requested_impl },
5971   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Negotiated_impl },
5972   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingId_impl },
5973   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl },
5974   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_Address_impl },
5975   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5976   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Subscribed_impl },
5977   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Requested_impl },
5978   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Negotiated_impl },
5979   { 0, 0, 0, NULL }
5980 };
5981
5982 static int
5983 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_) {
5984   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5985                                 T_ps_PDP_ActiveNotReachableForPaging_item_sequence, hf_index, ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item);
5986
5987   return offset;
5988 }
5989 static int dissect_ps_PDP_ActiveNotReachableForPaging_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5990   return dissect_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveNotReachableForPaging_item);
5991 }
5992
5993 static const ber_sequence_t T_ps_PDP_ActiveNotReachableForPaging_sequence_of[1] = {
5994   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ps_PDP_ActiveNotReachableForPaging_item },
5995 };
5996
5997 static int
5998 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_) {
5999   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6000                                    T_ps_PDP_ActiveNotReachableForPaging_sequence_of, hf_index, ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging);
6001
6002   return offset;
6003 }
6004 static int dissect_ps_PDP_ActiveNotReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6005   return dissect_gsm_map_T_ps_PDP_ActiveNotReachableForPaging(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveNotReachableForPaging);
6006 }
6007
6008 static const ber_sequence_t T_ps_PDP_ActiveReachableForPaging_item_sequence[] = {
6009   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl },
6010   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl },
6011   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
6012   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
6013   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_Subscribed_impl },
6014   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_InUse_impl },
6015   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nsapi_impl },
6016   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
6017   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForGnAndGp_impl },
6018   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForIu_impl },
6019   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
6020   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
6021   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Requested_impl },
6022   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Negotiated_impl },
6023   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingId_impl },
6024   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl },
6025   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_Address_impl },
6026   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6027   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Subscribed_impl },
6028   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Requested_impl },
6029   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Negotiated_impl },
6030   { 0, 0, 0, NULL }
6031 };
6032
6033 static int
6034 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_) {
6035   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6036                                 T_ps_PDP_ActiveReachableForPaging_item_sequence, hf_index, ett_gsm_map_T_ps_PDP_ActiveReachableForPaging_item);
6037
6038   return offset;
6039 }
6040 static int dissect_ps_PDP_ActiveReachableForPaging_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6041   return dissect_gsm_map_T_ps_PDP_ActiveReachableForPaging_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveReachableForPaging_item);
6042 }
6043
6044 static const ber_sequence_t T_ps_PDP_ActiveReachableForPaging_sequence_of[1] = {
6045   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ps_PDP_ActiveReachableForPaging_item },
6046 };
6047
6048 static int
6049 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_) {
6050   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6051                                    T_ps_PDP_ActiveReachableForPaging_sequence_of, hf_index, ett_gsm_map_T_ps_PDP_ActiveReachableForPaging);
6052
6053   return offset;
6054 }
6055 static int dissect_ps_PDP_ActiveReachableForPaging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6056   return dissect_gsm_map_T_ps_PDP_ActiveReachableForPaging(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ps_PDP_ActiveReachableForPaging);
6057 }
6058
6059
6060 static const value_string gsm_map_T_netDetNotReachable_vals[] = {
6061   {   0, "msPurged" },
6062   {   1, "imsiDetached" },
6063   {   2, "restrictedArea" },
6064   {   3, "notRegistered" },
6065   { 0, NULL }
6066 };
6067
6068
6069 static int
6070 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_) {
6071   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6072
6073   return offset;
6074 }
6075 static int dissect_netDetNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6076   return dissect_gsm_map_T_netDetNotReachable(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_netDetNotReachable);
6077 }
6078
6079
6080 static const value_string gsm_map_T_ps_SubscriberState_vals[] = {
6081   {   0, "notProvidedFromSGSN" },
6082   {   1, "ps-Detached" },
6083   {   2, "ps-AttachedNotReachableForPaging" },
6084   {   3, "ps-AttachedReachableForPaging" },
6085   {   4, "ps-PDP-ActiveNotReachableForPaging" },
6086   {   5, "ps-PDP-ActiveReachableForPaging" },
6087   {   6, "netDetNotReachable" },
6088   { 0, NULL }
6089 };
6090
6091 static const ber_choice_t T_ps_SubscriberState_choice[] = {
6092   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_notProvidedFromSGSN_impl },
6093   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ps_Detached_impl },
6094   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ps_AttachedNotReachableForPaging_impl },
6095   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ps_AttachedReachableForPaging_impl },
6096   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveNotReachableForPaging_impl },
6097   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveReachableForPaging_impl },
6098   {   6, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable },
6099   { 0, 0, 0, 0, NULL }
6100 };
6101
6102 static int
6103 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_) {
6104   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6105                               T_ps_SubscriberState_choice, hf_index, ett_gsm_map_T_ps_SubscriberState);
6106
6107   return offset;
6108 }
6109 static int dissect_ps_SubscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6110   return dissect_gsm_map_T_ps_SubscriberState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ps_SubscriberState);
6111 }
6112
6113
6114 static int
6115 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_) {
6116   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6117                                     NULL);
6118
6119   return offset;
6120 }
6121 static int dissect_mSRadioAccessCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6122   return dissect_gsm_map_OCTET_STRING_SIZE_1_50(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mSRadioAccessCapability);
6123 }
6124
6125 static const ber_sequence_t T_gprs_MS_Class_sequence[] = {
6126   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mSNetworkCapability_impl },
6127   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mSRadioAccessCapability_impl },
6128   { 0, 0, 0, NULL }
6129 };
6130
6131 static int
6132 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_) {
6133   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6134                                 T_gprs_MS_Class_sequence, hf_index, ett_gsm_map_T_gprs_MS_Class);
6135
6136   return offset;
6137 }
6138 static int dissect_gprs_MS_Class_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6139   return dissect_gsm_map_T_gprs_MS_Class(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_MS_Class);
6140 }
6141
6142
6143 static const value_string gsm_map_NumberPortabilityStatus_vals[] = {
6144   {   0, "notKnownToBePorted" },
6145   {   1, "ownNumberPortedOut" },
6146   {   2, "foreignNumberPortedToForeignNetwork" },
6147   {   4, "ownNumberNotPortedOut" },
6148   {   5, "foreignNumberPortedIn" },
6149   { 0, NULL }
6150 };
6151
6152
6153 static int
6154 dissect_gsm_map_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6155   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6156
6157   return offset;
6158 }
6159 static int dissect_numberPortabilityStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6160   return dissect_gsm_map_NumberPortabilityStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberPortabilityStatus);
6161 }
6162
6163 static const ber_sequence_t T_mnpInfoRes_sequence[] = {
6164   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingNumber_impl },
6165   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6166   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6167   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
6168   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6169   { 0, 0, 0, NULL }
6170 };
6171
6172 static int
6173 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_) {
6174   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6175                                 T_mnpInfoRes_sequence, hf_index, ett_gsm_map_T_mnpInfoRes);
6176
6177   return offset;
6178 }
6179 static int dissect_mnpInfoRes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6180   return dissect_gsm_map_T_mnpInfoRes(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mnpInfoRes);
6181 }
6182
6183 static const ber_sequence_t SubscriberInfo_sequence[] = {
6184   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
6185   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState },
6186   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6187   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
6188   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_ps_SubscriberState },
6189   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
6190   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_Classmark2_impl },
6191   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_MS_Class_impl },
6192   { BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mnpInfoRes_impl },
6193   { 0, 0, 0, NULL }
6194 };
6195
6196 static int
6197 dissect_gsm_map_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6198   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6199                                 SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
6200
6201   return offset;
6202 }
6203 static int dissect_subscriberInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6204   return dissect_gsm_map_SubscriberInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
6205 }
6206 static int dissect_subscriberInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6207   return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
6208 }
6209
6210
6211 static int
6212 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_) {
6213   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6214                                     NULL);
6215
6216   return offset;
6217 }
6218 static int dissect_vmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6219   return dissect_gsm_map_T_vmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vmsc_Address);
6220 }
6221
6222 static const ber_sequence_t T_ccbs_Indicators_sequence[] = {
6223   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
6224   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl },
6225   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6226   { 0, 0, 0, NULL }
6227 };
6228
6229 static int
6230 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_) {
6231   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6232                                 T_ccbs_Indicators_sequence, hf_index, ett_gsm_map_T_ccbs_Indicators);
6233
6234   return offset;
6235 }
6236 static int dissect_ccbs_Indicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6237   return dissect_gsm_map_T_ccbs_Indicators(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Indicators);
6238 }
6239
6240 static const ber_sequence_t SendRoutingInfoRes_sequence[] = {
6241   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6242   { -1/*choice*/ , -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
6243   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
6244   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl },
6245   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl },
6246   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
6247   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6248   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInterrogationRequired_impl },
6249   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vmsc_Address_impl },
6250   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6251   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
6252   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Indicators_impl },
6253   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6254   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
6255   { 0, 0, 0, NULL }
6256 };
6257
6258 static int
6259 dissect_gsm_map_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6260   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6261                                 SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
6262
6263   return offset;
6264 }
6265
6266
6267 static const value_string gsm_map_NetDetNotReachable_vals[] = {
6268   {   0, "msPurged" },
6269   {   1, "imsiDetached" },
6270   {   2, "restrictedArea" },
6271   {   3, "notRegistered" },
6272   { 0, NULL }
6273 };
6274
6275
6276 static int
6277 dissect_gsm_map_NetDetNotReachable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6278   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6279
6280   return offset;
6281 }
6282
6283 static const ber_sequence_t ProvideRoamingNumberArg_sequence[] = {
6284   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6285   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
6286   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6287   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
6288   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
6289   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
6290   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
6291   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
6292   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
6293   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
6294   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6295   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
6296   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
6297   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInGMSC_impl },
6298   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
6299   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_orNotSupportedInGMSC_impl },
6300   { 0, 0, 0, NULL }
6301 };
6302
6303 static int
6304 dissect_gsm_map_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6305   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6306                                 ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
6307
6308   return offset;
6309 }
6310
6311 static const ber_sequence_t ProvideRoamingNumberRes_sequence[] = {
6312   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
6313   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6314   { 0, 0, 0, NULL }
6315 };
6316
6317 static int
6318 dissect_gsm_map_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6319   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6320                                 ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
6321
6322   return offset;
6323 }
6324
6325
6326 static int
6327 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_) {
6328   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6329                                     NULL);
6330
6331   return offset;
6332 }
6333 static int dissect_uui_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6334   return dissect_gsm_map_OCTET_STRING_SIZE_1_131(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uui);
6335 }
6336
6337 static const ber_sequence_t T_uu_Data_sequence[] = {
6338   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl },
6339   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl },
6340   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uusCFInteraction_impl },
6341   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6342   { 0, 0, 0, NULL }
6343 };
6344
6345 static int
6346 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_) {
6347   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6348                                 T_uu_Data_sequence, hf_index, ett_gsm_map_T_uu_Data);
6349
6350   return offset;
6351 }
6352 static int dissect_uu_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6353   return dissect_gsm_map_T_uu_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uu_Data);
6354 }
6355
6356 static const ber_sequence_t ResumeCallHandlingArg_sequence[] = {
6357   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
6358   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
6359   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingData_impl },
6360   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6361   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
6362   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
6363   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6364   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
6365   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6366   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl },
6367   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allInformationSent_impl },
6368   { 0, 0, 0, NULL }
6369 };
6370
6371 static int
6372 dissect_gsm_map_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6373   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6374                                 ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
6375
6376   return offset;
6377 }
6378
6379 static const ber_sequence_t ResumeCallHandlingRes_sequence[] = {
6380   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6381   { 0, 0, 0, NULL }
6382 };
6383
6384 static int
6385 dissect_gsm_map_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6386   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6387                                 ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
6388
6389   return offset;
6390 }
6391
6392
6393 static int
6394 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_) {
6395   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6396                                     NULL);
6397
6398   return offset;
6399 }
6400 static int dissect_b_Subscriber_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6401   return dissect_gsm_map_T_b_Subscriber_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_Subscriber_Address);
6402 }
6403
6404 static const ber_sequence_t ProvideSIWFSNumberArg_sequence[] = {
6405   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
6406   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl },
6407   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_call_Direction_impl },
6408   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_b_Subscriber_Address_impl },
6409   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
6410   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowerLayerCompatibility_impl },
6411   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
6412   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6413   { 0, 0, 0, NULL }
6414 };
6415
6416 static int
6417 dissect_gsm_map_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6418   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6419                                 ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
6420
6421   return offset;
6422 }
6423
6424
6425 static int
6426 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_) {
6427   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6428                                     NULL);
6429
6430   return offset;
6431 }
6432 static int dissect_sIWFSNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6433   return dissect_gsm_map_T_sIWFSNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sIWFSNumber);
6434 }
6435
6436 static const ber_sequence_t ProvideSIWFSNumberRes_sequence[] = {
6437   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl },
6438   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6439   { 0, 0, 0, NULL }
6440 };
6441
6442 static int
6443 dissect_gsm_map_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6444   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6445                                 ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
6446
6447   return offset;
6448 }
6449
6450 static const ber_sequence_t SIWFSSignallingModifyArg_sequence[] = {
6451   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
6452   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
6453   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6454   { 0, 0, 0, NULL }
6455 };
6456
6457 static int
6458 dissect_gsm_map_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6459   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6460                                 SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
6461
6462   return offset;
6463 }
6464
6465 static const ber_sequence_t SIWFSSignallingModifyRes_sequence[] = {
6466   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
6467   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6468   { 0, 0, 0, NULL }
6469 };
6470
6471 static int
6472 dissect_gsm_map_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6473   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6474                                 SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
6475
6476   return offset;
6477 }
6478
6479
6480 static const value_string gsm_map_Ccbs_Monitoring_vals[] = {
6481   {   0, "stopMonitoring" },
6482   {   1, "startMonitoring" },
6483   { 0, NULL }
6484 };
6485
6486
6487 static int
6488 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_) {
6489   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6490
6491   return offset;
6492 }
6493 static int dissect_ccbs_Monitoring_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6494   return dissect_gsm_map_Ccbs_Monitoring(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Monitoring);
6495 }
6496
6497 static const ber_sequence_t SetReportingStateArg_sequence[] = {
6498   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6499   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
6500   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Monitoring_impl },
6501   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6502   { 0, 0, 0, NULL }
6503 };
6504
6505 static int
6506 dissect_gsm_map_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6507   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6508                                 SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
6509
6510   return offset;
6511 }
6512
6513
6514 static const value_string gsm_map_Ccbs_SubscriberStatus_vals[] = {
6515   {   0, "ccbsNotIdle" },
6516   {   1, "ccbsIdle" },
6517   {   2, "ccbsNotReachable" },
6518   { 0, NULL }
6519 };
6520
6521
6522 static int
6523 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_) {
6524   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6525
6526   return offset;
6527 }
6528 static int dissect_ccbs_SubscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6529   return dissect_gsm_map_Ccbs_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_SubscriberStatus);
6530 }
6531
6532 static const ber_sequence_t SetReportingStateRes_sequence[] = {
6533   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
6534   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6535   { 0, 0, 0, NULL }
6536 };
6537
6538 static int
6539 dissect_gsm_map_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6540   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6541                                 SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
6542
6543   return offset;
6544 }
6545
6546
6547 static const value_string gsm_map_MonitoringMode_vals[] = {
6548   {   0, "a-side" },
6549   {   1, "b-side" },
6550   { 0, NULL }
6551 };
6552
6553
6554 static int
6555 dissect_gsm_map_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6556   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6557
6558   return offset;
6559 }
6560 static int dissect_monitoringMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6561   return dissect_gsm_map_MonitoringMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_monitoringMode);
6562 }
6563
6564
6565 static const value_string gsm_map_CallOutcome_vals[] = {
6566   {   0, "success" },
6567   {   1, "failure" },
6568   {   2, "busy" },
6569   { 0, NULL }
6570 };
6571
6572
6573 static int
6574 dissect_gsm_map_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6575   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6576
6577   return offset;
6578 }
6579 static int dissect_callOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6580   return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callOutcome);
6581 }
6582
6583 static const ber_sequence_t T_eventReportData_sequence[] = {
6584   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
6585   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6586   { 0, 0, 0, NULL }
6587 };
6588
6589 static int
6590 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_) {
6591   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6592                                 T_eventReportData_sequence, hf_index, ett_gsm_map_T_eventReportData);
6593
6594   return offset;
6595 }
6596 static int dissect_eventReportData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6597   return dissect_gsm_map_T_eventReportData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_eventReportData);
6598 }
6599
6600 static const ber_sequence_t T_callReportdata_sequence[] = {
6601   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl },
6602   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl },
6603   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6604   { 0, 0, 0, NULL }
6605 };
6606
6607 static int
6608 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_) {
6609   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6610                                 T_callReportdata_sequence, hf_index, ett_gsm_map_T_callReportdata);
6611
6612   return offset;
6613 }
6614 static int dissect_callReportdata_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6615   return dissect_gsm_map_T_callReportdata(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReportdata);
6616 }
6617
6618 static const ber_sequence_t StatusReportArg_sequence[] = {
6619   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6620   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl },
6621   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReportdata_impl },
6622   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6623   { 0, 0, 0, NULL }
6624 };
6625
6626 static int
6627 dissect_gsm_map_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6628   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6629                                 StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
6630
6631   return offset;
6632 }
6633
6634 static const ber_sequence_t StatusReportRes_sequence[] = {
6635   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6636   { 0, 0, 0, NULL }
6637 };
6638
6639 static int
6640 dissect_gsm_map_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6641   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6642                                 StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
6643
6644   return offset;
6645 }
6646
6647
6648 static const value_string gsm_map_Ruf_Outcome_vals[] = {
6649   {   0, "accepted" },
6650   {   1, "rejected" },
6651   {   2, "noResponseFromFreeMS" },
6652   {   3, "noResponseFromBusyMS" },
6653   {   4, "udubFromFreeMS" },
6654   {   5, "udubFromBusyMS" },
6655   { 0, NULL }
6656 };
6657
6658
6659 static int
6660 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_) {
6661   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6662
6663   return offset;
6664 }
6665 static int dissect_ruf_Outcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6666   return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ruf_Outcome);
6667 }
6668
6669
6670 static int
6671 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_) {
6672   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6673                                     NULL);
6674
6675   return offset;
6676 }
6677 static int dissect_b_subscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6678   return dissect_gsm_map_B_subscriberNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberNumber);
6679 }
6680
6681
6682 static int
6683 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_) {
6684   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6685                                     NULL);
6686
6687   return offset;
6688 }
6689 static int dissect_b_subscriberSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6690   return dissect_gsm_map_OCTET_STRING_SIZE_1_21(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberSubaddress);
6691 }
6692
6693 static const ber_sequence_t Ccbs_Feature_sequence[] = {
6694   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
6695   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
6696   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
6697   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
6698   { 0, 0, 0, NULL }
6699 };
6700
6701 static int
6702 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_) {
6703   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6704                                 Ccbs_Feature_sequence, hf_index, ett_gsm_map_Ccbs_Feature);
6705
6706   return offset;
6707 }
6708 static int dissect_ccbs_Feature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6709   return dissect_gsm_map_Ccbs_Feature(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Feature);
6710 }
6711
6712
6713 static int
6714 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_) {
6715   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6716                                     NULL);
6717
6718   return offset;
6719 }
6720 static int dissect_translatedB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6721   return dissect_gsm_map_TranslatedB_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
6722 }
6723
6724 static const ber_sequence_t RemoteUserFreeArg_sequence[] = {
6725   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6726   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
6727   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
6728   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
6729   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replaceB_Number_impl },
6730   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
6731   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6732   { 0, 0, 0, NULL }
6733 };
6734
6735 static int
6736 dissect_gsm_map_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6737   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6738                                 RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
6739
6740   return offset;
6741 }
6742
6743 static const ber_sequence_t RemoteUserFreeRes_sequence[] = {
6744   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl },
6745   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6746   { 0, 0, 0, NULL }
6747 };
6748
6749 static int
6750 dissect_gsm_map_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6751   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6752                                 RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
6753
6754   return offset;
6755 }
6756
6757 static const ber_sequence_t RegisterSS_Arg_sequence[] = {
6758   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
6759   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6760   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
6761   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
6762   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
6763   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
6764   { 0, 0, 0, NULL }
6765 };
6766
6767 static int
6768 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_) {
6769   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6770                                 RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
6771
6772   return offset;
6773 }
6774
6775
6776 static const value_string gsm_map_Ss_Info_vals[] = {
6777   {   0, "forwardingInfo" },
6778   {   1, "callBarringInfo" },
6779   {   3, "ss-Data" },
6780   { 0, NULL }
6781 };
6782
6783 static const ber_choice_t Ss_Info_choice[] = {
6784   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
6785   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
6786   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
6787   { 0, 0, 0, 0, NULL }
6788 };
6789
6790 static int
6791 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_) {
6792   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6793                               Ss_Info_choice, hf_index, ett_gsm_map_Ss_Info);
6794
6795   return offset;
6796 }
6797
6798 static const ber_sequence_t Ss_ForBS_sequence[] = {
6799   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
6800   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6801   { 0, 0, 0, NULL }
6802 };
6803
6804 static int
6805 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_) {
6806   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6807                                 Ss_ForBS_sequence, hf_index, ett_gsm_map_Ss_ForBS);
6808
6809   return offset;
6810 }
6811
6812 static const ber_sequence_t SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList_sequence_of[1] = {
6813   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_item },
6814 };
6815
6816 static int
6817 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_) {
6818   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6819                                    SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList);
6820
6821   return offset;
6822 }
6823 static int dissect_forwardingFeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6824   return dissect_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList);
6825 }
6826
6827 static const ber_sequence_t T_ccbs_FeatureList_item_sequence[] = {
6828   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
6829   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
6830   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
6831   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
6832   { 0, 0, 0, NULL }
6833 };
6834
6835 static int
6836 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_) {
6837   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6838                                 T_ccbs_FeatureList_item_sequence, hf_index, ett_gsm_map_T_ccbs_FeatureList_item);
6839
6840   return offset;
6841 }
6842 static int dissect_ccbs_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6843   return dissect_gsm_map_T_ccbs_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList_item);
6844 }
6845
6846 static const ber_sequence_t T_ccbs_FeatureList_sequence_of[1] = {
6847   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ccbs_FeatureList_item },
6848 };
6849
6850 static int
6851 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_) {
6852   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6853                                    T_ccbs_FeatureList_sequence_of, hf_index, ett_gsm_map_T_ccbs_FeatureList);
6854
6855   return offset;
6856 }
6857 static int dissect_ccbs_FeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6858   return dissect_gsm_map_T_ccbs_FeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList);
6859 }
6860
6861 static const ber_sequence_t T_genericServiceInfo_sequence[] = {
6862   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
6863   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
6864   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumEntitledPriority_impl },
6865   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
6866   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_FeatureList_impl },
6867   { 0, 0, 0, NULL }
6868 };
6869
6870 static int
6871 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_) {
6872   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6873                                 T_genericServiceInfo_sequence, hf_index, ett_gsm_map_T_genericServiceInfo);
6874
6875   return offset;
6876 }
6877 static int dissect_genericServiceInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6878   return dissect_gsm_map_T_genericServiceInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_genericServiceInfo);
6879 }
6880
6881
6882 static const value_string gsm_map_InterrogateSS_Res_vals[] = {
6883   {   0, "ss-Status" },
6884   {   2, "basicServiceGroupList" },
6885   {   3, "forwardingFeatureList" },
6886   {   4, "genericServiceInfo" },
6887   { 0, NULL }
6888 };
6889
6890 static const ber_choice_t InterrogateSS_Res_choice[] = {
6891   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
6892   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_basicServiceGroupList_impl },
6893   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_forwardingFeatureList_impl },
6894   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_genericServiceInfo_impl },
6895   { 0, 0, 0, 0, NULL }
6896 };
6897
6898 static int
6899 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_) {
6900   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6901                               InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res);
6902
6903   return offset;
6904 }
6905
6906
6907 static int
6908 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_) {
6909   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6910                                     NULL);
6911
6912   return offset;
6913 }
6914 static int dissect_ussd_String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6915   return dissect_gsm_map_OCTET_STRING_SIZE_1_160(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_String);
6916 }
6917
6918 static const ber_sequence_t Ussd_Arg_sequence[] = {
6919   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
6920   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
6921   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertingPattern },
6922   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6923   { 0, 0, 0, NULL }
6924 };
6925
6926 static int
6927 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_) {
6928   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6929                                 Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
6930
6931   return offset;
6932 }
6933
6934 static const ber_sequence_t Ussd_Res_sequence[] = {
6935   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
6936   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
6937   { 0, 0, 0, NULL }
6938 };
6939
6940 static int
6941 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_) {
6942   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6943                                 Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
6944
6945   return offset;
6946 }
6947
6948
6949 static int
6950 dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6951   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6952                                          pinfo, tree, tvb, offset, hf_index,
6953                                          NULL);
6954
6955   return offset;
6956 }
6957
6958
6959 static const value_string gsm_map_GetPasswordArg_vals[] = {
6960   {   0, "enterPW" },
6961   {   1, "enterNewPW" },
6962   {   2, "enterNewPW-Again" },
6963   { 0, NULL }
6964 };
6965
6966
6967 static int
6968 dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6969   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6970
6971   return offset;
6972 }
6973
6974
6975 static int
6976 dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6977   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
6978                                          pinfo, tree, tvb, offset, hf_index,
6979                                          NULL);
6980
6981   return offset;
6982 }
6983
6984 static const asn_namedbit ServiceIndicator_bits[] = {
6985   {  0, &hf_gsm_map_ServiceIndicator_clirInvoked, -1, -1, NULL, NULL },
6986   {  1, &hf_gsm_map_ServiceIndicator_camelInvoked, -1, -1, NULL, NULL },
6987   { 0, NULL, 0, 0, NULL, NULL }
6988 };
6989
6990 static int
6991 dissect_gsm_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6992   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
6993                                  ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
6994                                  NULL);
6995
6996   return offset;
6997 }
6998 static int dissect_serviceIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6999   return dissect_gsm_map_ServiceIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceIndicator);
7000 }
7001
7002 static const ber_sequence_t T_ccbs_Data_sequence[] = {
7003   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
7004   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
7005   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceIndicator_impl },
7006   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
7007   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
7008   { 0, 0, 0, NULL }
7009 };
7010
7011 static int
7012 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_) {
7013   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7014                                 T_ccbs_Data_sequence, hf_index, ett_gsm_map_T_ccbs_Data);
7015
7016   return offset;
7017 }
7018 static int dissect_ccbs_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7019   return dissect_gsm_map_T_ccbs_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Data);
7020 }
7021
7022 static const ber_sequence_t RegisterCC_EntryArg_sequence[] = {
7023   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
7024   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl },
7025   { 0, 0, 0, NULL }
7026 };
7027
7028 static int
7029 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_) {
7030   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7031                                 RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
7032
7033   return offset;
7034 }
7035
7036 static const ber_sequence_t RegisterCC_EntryRes_sequence[] = {
7037   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
7038   { 0, 0, 0, NULL }
7039 };
7040
7041 static int
7042 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_) {
7043   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7044                                 RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
7045
7046   return offset;
7047 }
7048
7049 static const ber_sequence_t EraseCC_EntryArg_sequence[] = {
7050   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
7051   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
7052   { 0, 0, 0, NULL }
7053 };
7054
7055 static int
7056 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_) {
7057   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7058                                 EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
7059
7060   return offset;
7061 }
7062
7063 static const ber_sequence_t EraseCC_EntryRes_sequence[] = {
7064   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
7065   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
7066   { 0, 0, 0, NULL }
7067 };
7068
7069 static int
7070 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_) {
7071   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7072                                 EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
7073
7074   return offset;
7075 }
7076
7077
7078 static int
7079 dissect_gsm_map_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7080   offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index);
7081
7082   return offset;
7083 }
7084 static int dissect_sm_RP_PRI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7085   return dissect_gsm_map_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_PRI);
7086 }
7087
7088
7089 static int
7090 dissect_gsm_map_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7091
7092  tvbuff_t       *parameter_tvb;
7093  char           *digit_str;
7094
7095  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7096                                     &parameter_tvb);
7097  if (!parameter_tvb)
7098         return offset;
7099
7100  proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
7101  proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
7102  proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
7103
7104  digit_str = unpack_digits(parameter_tvb, 1);
7105
7106  proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str);
7107
7108
7109
7110
7111   return offset;
7112 }
7113 static int dissect_serviceCentreAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7114   return dissect_gsm_map_ServiceCentreAddress(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
7115 }
7116 static int dissect_serviceCentreAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7117   return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
7118 }
7119 static int dissect_serviceCentreAddressOA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7120   return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressOA);
7121 }
7122 static int dissect_serviceCentreAddressDA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7123   return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressDA);
7124 }
7125
7126
7127
7128 static int
7129 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_) {
7130   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7131
7132   return offset;
7133 }
7134 static int dissect_sm_RP_MTI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7135   return dissect_gsm_map_INTEGER_0_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_MTI);
7136 }
7137
7138
7139 static int
7140 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_) {
7141   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7142                                     NULL);
7143
7144   return offset;
7145 }
7146 static int dissect_sm_RP_SMEA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7147   return dissect_gsm_map_OCTET_STRING_SIZE_1_12(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_SMEA);
7148 }
7149
7150 static const ber_sequence_t RoutingInfoForSMArg_sequence[] = {
7151   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7152   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl },
7153   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddress_impl },
7154   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7155   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
7156   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_MTI_impl },
7157   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_SMEA_impl },
7158   { 0, 0, 0, NULL }
7159 };
7160
7161 static int
7162 dissect_gsm_map_RoutingInfoForSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7163   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7164                                 RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
7165
7166   return offset;
7167 }
7168
7169
7170 static int
7171 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_) {
7172   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7173                                     NULL);
7174
7175   return offset;
7176 }
7177 static int dissect_networkNode_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7178   return dissect_gsm_map_T_networkNode_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
7179 }
7180
7181
7182 static const value_string gsm_map_T_additional_Number_vals[] = {
7183   {   0, "msc-Number" },
7184   {   1, "sgsn-Number" },
7185   { 0, NULL }
7186 };
7187
7188 static const ber_choice_t T_additional_Number_choice[] = {
7189   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
7190   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
7191   { 0, 0, 0, 0, NULL }
7192 };
7193
7194 static int
7195 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_) {
7196   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7197                               T_additional_Number_choice, hf_index, ett_gsm_map_T_additional_Number);
7198
7199   return offset;
7200 }
7201 static int dissect_additional_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7202   return dissect_gsm_map_T_additional_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_additional_Number);
7203 }
7204
7205 static const ber_sequence_t T_locationInfoWithLMSI_sequence[] = {
7206   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl },
7207   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
7208   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7209   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl },
7210   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_additional_Number },
7211   { 0, 0, 0, NULL }
7212 };
7213
7214 static int
7215 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_) {
7216   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7217                                 T_locationInfoWithLMSI_sequence, hf_index, ett_gsm_map_T_locationInfoWithLMSI);
7218
7219   return offset;
7220 }
7221 static int dissect_locationInfoWithLMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7222   return dissect_gsm_map_T_locationInfoWithLMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInfoWithLMSI);
7223 }
7224
7225 static const ber_sequence_t RoutingInfoForSMRes_sequence[] = {
7226   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
7227   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl },
7228   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7229   { 0, 0, 0, NULL }
7230 };
7231
7232 static int
7233 dissect_gsm_map_RoutingInfoForSMRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7234   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7235                                 RoutingInfoForSMRes_sequence, hf_index, ett_gsm_map_RoutingInfoForSMRes);
7236
7237   return offset;
7238 }
7239
7240
7241 static const value_string gsm_map_Sm_RP_DA_vals[] = {
7242   {   0, "imsi" },
7243   {   1, "lmsi" },
7244   {   4, "serviceCentreAddressDA" },
7245   {   5, "noSM-RP-DA" },
7246   { 0, NULL }
7247 };
7248
7249 static const ber_choice_t Sm_RP_DA_choice[] = {
7250   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7251   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
7252   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressDA_impl },
7253   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_DA_impl },
7254   { 0, 0, 0, 0, NULL }
7255 };
7256
7257 static int
7258 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_) {
7259   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7260                               Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA);
7261
7262   return offset;
7263 }
7264 static int dissect_sm_RP_DA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7265   return dissect_gsm_map_Sm_RP_DA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_DA);
7266 }
7267
7268
7269 static const value_string gsm_map_Sm_RP_OA_vals[] = {
7270   {   2, "msisdn" },
7271   {   4, "serviceCentreAddressOA" },
7272   {   5, "noSM-RP-OA" },
7273   { 0, NULL }
7274 };
7275
7276 static const ber_choice_t Sm_RP_OA_choice[] = {
7277   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7278   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressOA_impl },
7279   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_OA_impl },
7280   { 0, 0, 0, 0, NULL }
7281 };
7282
7283 static int
7284 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_) {
7285   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7286                               Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA);
7287
7288   return offset;
7289 }
7290 static int dissect_sm_RP_OA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7291   return dissect_gsm_map_Sm_RP_OA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_OA);
7292 }
7293
7294
7295 static int
7296 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_) {
7297
7298   tvbuff_t      *tpdu_tvb;
7299         
7300   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7301                                     &tpdu_tvb);
7302     /*
7303      * dissect the embedded TPDU message
7304      */
7305  if (!tpdu_tvb)
7306         return offset;
7307
7308     dissector_try_port(sms_dissector_table, 0, tpdu_tvb, pinfo, top_tree);
7309
7310   return offset;
7311 }
7312 static int dissect_sm_RP_UI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7313   return dissect_gsm_map_Sm_RP_UI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_UI);
7314 }
7315
7316 static const ber_sequence_t Mo_forwardSM_Arg_sequence[] = {
7317   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
7318   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
7319   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7320   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7321   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
7322   { 0, 0, 0, NULL }
7323 };
7324
7325 static int
7326 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_) {
7327   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7328                                 Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
7329
7330   return offset;
7331 }
7332
7333 static const ber_sequence_t Mo_forwardSM_Res_sequence[] = {
7334   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7335   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7336   { 0, 0, 0, NULL }
7337 };
7338
7339 static int
7340 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_) {
7341   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7342                                 Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
7343
7344   return offset;
7345 }
7346
7347 static const ber_sequence_t Mt_forwardSM_Arg_sequence[] = {
7348   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
7349   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
7350   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7351   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
7352   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7353   { 0, 0, 0, NULL }
7354 };
7355
7356 static int
7357 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_) {
7358   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7359                                 Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
7360
7361   return offset;
7362 }
7363
7364 static const ber_sequence_t Mt_forwardSM_Res_sequence[] = {
7365   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
7366   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7367   { 0, 0, 0, NULL }
7368 };
7369
7370 static int
7371 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_) {
7372   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7373                                 Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
7374
7375   return offset;
7376 }
7377
7378
7379 static int
7380 dissect_gsm_map_StoredMSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7381   offset = dissect_gsm_map_Msisdn(implicit_tag, tvb, offset, pinfo, tree, hf_index);
7382
7383   return offset;
7384 }
7385 static int dissect_storedMSISDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7386   return dissect_gsm_map_StoredMSISDN(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_storedMSISDN);
7387 }
7388
7389
7390 static const value_string gsm_map_Sm_DeliveryOutcome_vals[] = {
7391   {   0, "memoryCapacityExceeded" },
7392   {   1, "absentSubscriber" },
7393   {   2, "successfulTransfer" },
7394   { 0, NULL }
7395 };
7396
7397
7398 static int
7399 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_) {
7400   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7401
7402   return offset;
7403 }
7404 static int dissect_sm_DeliveryOutcome(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7405   return dissect_gsm_map_Sm_DeliveryOutcome(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_DeliveryOutcome);
7406 }
7407 static int dissect_additionalSM_DeliveryOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7408   return dissect_gsm_map_Sm_DeliveryOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSM_DeliveryOutcome);
7409 }
7410
7411 static const ber_sequence_t ReportSM_DeliveryStatusArg_sequence[] = {
7412   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
7413   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
7414   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_DeliveryOutcome },
7415   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberDiagnosticSM_impl },
7416   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7417   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
7418   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deliveryOutcomeIndicator_impl },
7419   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSM_DeliveryOutcome_impl },
7420   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
7421   { 0, 0, 0, NULL }
7422 };
7423
7424 static int
7425 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_) {
7426   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7427                                 ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
7428
7429   return offset;
7430 }
7431
7432 static const ber_sequence_t ReportSM_DeliveryStatusRes_sequence[] = {
7433   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
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_ReportSM_DeliveryStatusRes(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                                 ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
7442
7443   return offset;
7444 }
7445
7446 static const asn_namedbit T_mw_Status_bits[] = {
7447   {  0, &hf_gsm_map_T_mw_Status_scAddressNotIncluded, -1, -1, NULL, NULL },
7448   {  1, &hf_gsm_map_T_mw_Status_mnrfSet, -1, -1, NULL, NULL },
7449   {  2, &hf_gsm_map_T_mw_Status_mcefSet, -1, -1, NULL, NULL },
7450   {  3, &hf_gsm_map_T_mw_Status_mnrgSet, -1, -1, NULL, NULL },
7451   { 0, NULL, 0, 0, NULL, NULL }
7452 };
7453
7454 static int
7455 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_) {
7456   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
7457                                  T_mw_Status_bits, hf_index, ett_gsm_map_T_mw_Status,
7458                                  NULL);
7459
7460   return offset;
7461 }
7462 static int dissect_mw_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7463   return dissect_gsm_map_T_mw_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mw_Status);
7464 }
7465
7466 static const ber_sequence_t InformServiceCentreArg_sequence[] = {
7467   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
7468   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status },
7469   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7470   { 0, 0, 0, NULL }
7471 };
7472
7473 static int
7474 dissect_gsm_map_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7475   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7476                                 InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
7477
7478   return offset;
7479 }
7480
7481 static const ber_sequence_t AlertServiceCentreArg_sequence[] = {
7482   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
7483   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
7484   { 0, 0, 0, NULL }
7485 };
7486
7487 static int
7488 dissect_gsm_map_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7489   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7490                                 AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
7491
7492   return offset;
7493 }
7494
7495
7496 static const value_string gsm_map_T_alertReason_vals[] = {
7497   {   0, "msPresent" },
7498   {   1, "memoryAvailable" },
7499   { 0, NULL }
7500 };
7501
7502
7503 static int
7504 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_) {
7505   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7506
7507   return offset;
7508 }
7509 static int dissect_alertReason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7510   return dissect_gsm_map_T_alertReason(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReason);
7511 }
7512
7513 static const ber_sequence_t ReadyForSM_Arg_sequence[] = {
7514   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7515   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason },
7516   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertReasonIndicator },
7517   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7518   { 0, 0, 0, NULL }
7519 };
7520
7521 static int
7522 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_) {
7523   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7524                                 ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
7525
7526   return offset;
7527 }
7528
7529 static const ber_sequence_t ReadyForSM_Res_sequence[] = {
7530   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7531   { 0, 0, 0, NULL }
7532 };
7533
7534 static int
7535 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_) {
7536   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7537                                 ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
7538
7539   return offset;
7540 }
7541
7542
7543 static const value_string gsm_map_T_requestedDomain_vals[] = {
7544   {   0, "cs-Domain" },
7545   {   1, "ps-Domain" },
7546   { 0, NULL }
7547 };
7548
7549
7550 static int
7551 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_) {
7552   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7553
7554   return offset;
7555 }
7556 static int dissect_requestedDomain_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7557   return dissect_gsm_map_T_requestedDomain(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedDomain);
7558 }
7559
7560 static const ber_sequence_t RequestedInfo_sequence[] = {
7561   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationFlag_impl },
7562   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStateFlag_impl },
7563   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7564   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocation_impl },
7565   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedDomain_impl },
7566   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei1_impl },
7567   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_classmark_impl },
7568   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mnpRequestedInfo_impl },
7569   { 0, 0, 0, NULL }
7570 };
7571
7572 static int
7573 dissect_gsm_map_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7574   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7575                                 RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
7576
7577   return offset;
7578 }
7579 static int dissect_requestedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7580   return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedInfo);
7581 }
7582
7583 static const ber_sequence_t ProvideSubscriberInfoArg_sequence[] = {
7584   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7585   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
7586   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
7587   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7588   { 0, 0, 0, NULL }
7589 };
7590
7591 static int
7592 dissect_gsm_map_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7593   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7594                                 ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
7595
7596   return offset;
7597 }
7598
7599 static const ber_sequence_t ProvideSubscriberInfoRes_sequence[] = {
7600   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
7601   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7602   { 0, 0, 0, NULL }
7603 };
7604
7605 static int
7606 dissect_gsm_map_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7607   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7608                                 ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
7609
7610   return offset;
7611 }
7612
7613
7614 static const value_string gsm_map_SubscriberIdentity_vals[] = {
7615   {   0, "imsi" },
7616   {   1, "msisdn" },
7617   { 0, NULL }
7618 };
7619
7620 static const ber_choice_t SubscriberIdentity_choice[] = {
7621   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
7622   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
7623   { 0, 0, 0, 0, NULL }
7624 };
7625
7626 static int
7627 dissect_gsm_map_SubscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7628   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7629                               SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity);
7630
7631   return offset;
7632 }
7633 static int dissect_subscriberIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7634   return dissect_gsm_map_SubscriberIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberIdentity);
7635 }
7636
7637 static const ber_sequence_t AnyTimeInterrogationArg_sequence[] = {
7638   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
7639   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
7640   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
7641   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7642   { 0, 0, 0, NULL }
7643 };
7644
7645 static int
7646 dissect_gsm_map_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7647   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7648                                 AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
7649
7650   return offset;
7651 }
7652
7653 static const ber_sequence_t AnyTimeInterrogationRes_sequence[] = {
7654   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
7655   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7656   { 0, 0, 0, NULL }
7657 };
7658
7659 static int
7660 dissect_gsm_map_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7661   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7662                                 AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
7663
7664   return offset;
7665 }
7666
7667 static const ber_sequence_t T_requestedSS_Info_sequence[] = {
7668   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
7669   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
7670   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
7671   { 0, 0, 0, NULL }
7672 };
7673
7674 static int
7675 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_) {
7676   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7677                                 T_requestedSS_Info_sequence, hf_index, ett_gsm_map_T_requestedSS_Info);
7678
7679   return offset;
7680 }
7681 static int dissect_requestedSS_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7682   return dissect_gsm_map_T_requestedSS_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedSS_Info);
7683 }
7684
7685
7686 static const value_string gsm_map_T_requestedCAMEL_SubscriptionInfo_vals[] = {
7687   {   0, "o-CSI" },
7688   {   1, "t-CSI" },
7689   {   2, "vt-CSI" },
7690   {   3, "tif-CSI" },
7691   {   4, "gprs-CSI" },
7692   {   5, "mo-sms-CSI" },
7693   {   6, "ss-CSI" },
7694   {   7, "m-CSI" },
7695   {   8, "d-csi" },
7696   { 0, NULL }
7697 };
7698
7699
7700 static int
7701 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_) {
7702   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7703
7704   return offset;
7705 }
7706 static int dissect_requestedCAMEL_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7707   return dissect_gsm_map_T_requestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedCAMEL_SubscriptionInfo);
7708 }
7709
7710
7711 static const value_string gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
7712   {   0, "mt-sms-CSI" },
7713   {   1, "mg-csi" },
7714   {   2, "o-IM-CSI" },
7715   {   3, "d-IM-CSI" },
7716   {   4, "vt-IM-CSI" },
7717   { 0, NULL }
7718 };
7719
7720
7721 static int
7722 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_) {
7723   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7724
7725   return offset;
7726 }
7727 static int dissect_additionalRequestedCAMEL_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7728   return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo);
7729 }
7730
7731 static const ber_sequence_t T_requestedSubscriptionInfo_sequence[] = {
7732   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedSS_Info_impl },
7733   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_impl },
7734   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedCAMEL_SubscriptionInfo_impl },
7735   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_flg_impl },
7736   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_flg_impl },
7737   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_extensionContainer },
7738   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRequestedCAMEL_SubscriptionInfo_impl },
7739   { 0, 0, 0, NULL }
7740 };
7741
7742 static int
7743 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_) {
7744   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7745                                 T_requestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_requestedSubscriptionInfo);
7746
7747   return offset;
7748 }
7749 static int dissect_requestedSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7750   return dissect_gsm_map_T_requestedSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedSubscriptionInfo);
7751 }
7752
7753 static const ber_sequence_t AnyTimeSubscriptionInterrogationArg_sequence[] = {
7754   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
7755   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedSubscriptionInfo_impl },
7756   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
7757   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7758   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
7759   { 0, 0, 0, NULL }
7760 };
7761
7762 static int
7763 dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7764   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7765                                 AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationArg);
7766
7767   return offset;
7768 }
7769
7770 static const ber_sequence_t T_callForwardingData_sequence[] = {
7771   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList1 },
7772   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
7773   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7774   { 0, 0, 0, NULL }
7775 };
7776
7777 static int
7778 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_) {
7779   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7780                                 T_callForwardingData_sequence, hf_index, ett_gsm_map_T_callForwardingData);
7781
7782   return offset;
7783 }
7784 static int dissect_callForwardingData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7785   return dissect_gsm_map_T_callForwardingData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callForwardingData);
7786 }
7787
7788
7789 static int
7790 dissect_gsm_map_NumericString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7791   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
7792                                          pinfo, tree, tvb, offset, hf_index,
7793                                          NULL);
7794
7795   return offset;
7796 }
7797 static int dissect_password(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7798   return dissect_gsm_map_NumericString(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_password);
7799 }
7800 static int dissect_password_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7801   return dissect_gsm_map_NumericString(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_password);
7802 }
7803
7804
7805
7806 static int
7807 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_) {
7808   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7809
7810   return offset;
7811 }
7812 static int dissect_wrongPasswordAttemptsCounter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7813   return dissect_gsm_map_INTEGER_0_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
7814 }
7815 static int dissect_wrongPasswordAttemptsCounter_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7816   return dissect_gsm_map_INTEGER_0_4(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
7817 }
7818
7819 static const ber_sequence_t T_callBarringData_sequence[] = {
7820   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
7821   { BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_password },
7822   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_wrongPasswordAttemptsCounter },
7823   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
7824   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7825   { 0, 0, 0, NULL }
7826 };
7827
7828 static int
7829 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_) {
7830   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7831                                 T_callBarringData_sequence, hf_index, ett_gsm_map_T_callBarringData);
7832
7833   return offset;
7834 }
7835 static int dissect_callBarringData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7836   return dissect_gsm_map_T_callBarringData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringData);
7837 }
7838
7839 static const ber_sequence_t T_odb_Info_sequence[] = {
7840   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_odb_Data },
7841   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
7842   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7843   { 0, 0, 0, NULL }
7844 };
7845
7846 static int
7847 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_) {
7848   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7849                                 T_odb_Info_sequence, hf_index, ett_gsm_map_T_odb_Info);
7850
7851   return offset;
7852 }
7853 static int dissect_odb_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7854   return dissect_gsm_map_T_odb_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Info);
7855 }
7856
7857
7858 static const value_string gsm_map_T_o_BcsmTriggerDetectionPoint_vals[] = {
7859   {   2, "collectedInfo" },
7860   {   4, "routeSelectFailure" },
7861   { 0, NULL }
7862 };
7863
7864
7865 static int
7866 dissect_gsm_map_T_o_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7867   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7868
7869   return offset;
7870 }
7871 static int dissect_o_BcsmTriggerDetectionPoint1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7872   return dissect_gsm_map_T_o_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint1);
7873 }
7874
7875
7876 static const value_string gsm_map_BasicServiceCriteria_item_vals[] = {
7877   {   2, "ext-BearerService" },
7878   {   3, "ext-Teleservice" },
7879   { 0, NULL }
7880 };
7881
7882 static const ber_choice_t BasicServiceCriteria_item_choice[] = {
7883   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl },
7884   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl },
7885   { 0, 0, 0, 0, NULL }
7886 };
7887
7888 static int
7889 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_) {
7890   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7891                               BasicServiceCriteria_item_choice, hf_index, ett_gsm_map_BasicServiceCriteria_item);
7892
7893   return offset;
7894 }
7895 static int dissect_BasicServiceCriteria_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7896   return dissect_gsm_map_BasicServiceCriteria_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BasicServiceCriteria_item);
7897 }
7898
7899 static const ber_sequence_t BasicServiceCriteria_sequence_of[1] = {
7900   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceCriteria_item },
7901 };
7902
7903 static int
7904 dissect_gsm_map_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7905   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
7906                                    BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_BasicServiceCriteria);
7907
7908   return offset;
7909 }
7910 static int dissect_basicServiceCriteria1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7911   return dissect_gsm_map_BasicServiceCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceCriteria1);
7912 }
7913
7914 static const ber_sequence_t O_CauseValueCriteria_sequence_of[1] = {
7915   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_O_CauseValueCriteria_item },
7916 };
7917
7918 static int
7919 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_) {
7920   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
7921                                    O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_O_CauseValueCriteria);
7922
7923   return offset;
7924 }
7925 static int dissect_o_CauseValueCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7926   return dissect_gsm_map_O_CauseValueCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CauseValueCriteria);
7927 }
7928
7929 static const ber_sequence_t T_o_BcsmCamelTDP_CriteriaList_item_sequence[] = {
7930   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint1 },
7931   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
7932   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria1_impl },
7933   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
7934   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CauseValueCriteria_impl },
7935   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7936   { 0, 0, 0, NULL }
7937 };
7938
7939 static int
7940 dissect_gsm_map_T_o_BcsmCamelTDP_CriteriaList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7941   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7942                                 T_o_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_o_BcsmCamelTDP_CriteriaList_item);
7943
7944   return offset;
7945 }
7946 static int dissect_o_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7947   return dissect_gsm_map_T_o_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList_item);
7948 }
7949
7950 static const ber_sequence_t T_o_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
7951   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDP_CriteriaList_item },
7952 };
7953
7954 static int
7955 dissect_gsm_map_T_o_BcsmCamelTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7956   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
7957                                    T_o_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_o_BcsmCamelTDP_CriteriaList);
7958
7959   return offset;
7960 }
7961 static int dissect_o_BcsmCamelTDP_CriteriaList1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7962   return dissect_gsm_map_T_o_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList1);
7963 }
7964
7965
7966 static int
7967 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_) {
7968   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7969                                     NULL);
7970
7971   return offset;
7972 }
7973 static int dissect_dialledNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7974   return dissect_gsm_map_T_dialledNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_dialledNumber);
7975 }
7976
7977 static const ber_sequence_t Dp_AnalysedInfoCriteriaList_item_sequence[] = {
7978   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dialledNumber },
7979   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
7980   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
7981   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_defaultCallHandling },
7982   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7983   { 0, 0, 0, NULL }
7984 };
7985
7986 static int
7987 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_) {
7988   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7989                                 Dp_AnalysedInfoCriteriaList_item_sequence, hf_index, ett_gsm_map_Dp_AnalysedInfoCriteriaList_item);
7990
7991   return offset;
7992 }
7993 static int dissect_Dp_AnalysedInfoCriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7994   return dissect_gsm_map_Dp_AnalysedInfoCriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_Dp_AnalysedInfoCriteriaList_item);
7995 }
7996
7997 static const ber_sequence_t Dp_AnalysedInfoCriteriaList_sequence_of[1] = {
7998   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Dp_AnalysedInfoCriteriaList_item },
7999 };
8000
8001 static int
8002 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_) {
8003   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8004                                    Dp_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_Dp_AnalysedInfoCriteriaList);
8005
8006   return offset;
8007 }
8008 static int dissect_dp_AnalysedInfoCriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8009   return dissect_gsm_map_Dp_AnalysedInfoCriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dp_AnalysedInfoCriteriaList);
8010 }
8011
8012 static const ber_sequence_t T_d_CSI_sequence[] = {
8013   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl },
8014   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8015   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8016   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8017   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8018   { 0, 0, 0, NULL }
8019 };
8020
8021 static int
8022 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_) {
8023   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8024                                 T_d_CSI_sequence, hf_index, ett_gsm_map_T_d_CSI);
8025
8026   return offset;
8027 }
8028 static int dissect_d_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8029   return dissect_gsm_map_T_d_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_d_CSI);
8030 }
8031
8032 static const ber_sequence_t T_t_CSI1_sequence[] = {
8033   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
8034   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8035   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8036   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8037   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8038   { 0, 0, 0, NULL }
8039 };
8040
8041 static int
8042 dissect_gsm_map_T_t_CSI1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8043   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8044                                 T_t_CSI1_sequence, hf_index, ett_gsm_map_T_t_CSI1);
8045
8046   return offset;
8047 }
8048 static int dissect_t_CSI1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8049   return dissect_gsm_map_T_t_CSI1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CSI1);
8050 }
8051
8052
8053 static const value_string gsm_map_T_t_BCSM_TriggerDetectionPoint_vals[] = {
8054   {  12, "termAttemptAuthorized" },
8055   {  13, "tBusy" },
8056   {  14, "tNoAnswer" },
8057   { 0, NULL }
8058 };
8059
8060
8061 static int
8062 dissect_gsm_map_T_t_BCSM_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8063   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8064
8065   return offset;
8066 }
8067 static int dissect_t_BCSM_TriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8068   return dissect_gsm_map_T_t_BCSM_TriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_TriggerDetectionPoint);
8069 }
8070
8071 static const ber_sequence_t T_CauseValueCriteria_sequence_of[1] = {
8072   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_T_CauseValueCriteria_item },
8073 };
8074
8075 static int
8076 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_) {
8077   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8078                                    T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_T_CauseValueCriteria);
8079
8080   return offset;
8081 }
8082 static int dissect_t_CauseValueCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8083   return dissect_gsm_map_T_CauseValueCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CauseValueCriteria);
8084 }
8085
8086 static const ber_sequence_t T_t_BCSM_CAMEL_TDP_CriteriaList_item_sequence[] = {
8087   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint },
8088   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria1_impl },
8089   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
8090   { 0, 0, 0, NULL }
8091 };
8092
8093 static int
8094 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_) {
8095   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8096                                 T_t_BCSM_CAMEL_TDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item);
8097
8098   return offset;
8099 }
8100 static int dissect_t_BCSM_CAMEL_TDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8101   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);
8102 }
8103
8104 static const ber_sequence_t T_t_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8105   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_item },
8106 };
8107
8108 static int
8109 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_) {
8110   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8111                                    T_t_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList);
8112
8113   return offset;
8114 }
8115 static int dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8116   return dissect_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList);
8117 }
8118
8119 static const ber_sequence_t T_vt_CSI_sequence[] = {
8120   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
8121   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8122   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8123   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8124   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8125   { 0, 0, 0, NULL }
8126 };
8127
8128 static int
8129 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_) {
8130   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8131                                 T_vt_CSI_sequence, hf_index, ett_gsm_map_T_vt_CSI);
8132
8133   return offset;
8134 }
8135 static int dissect_vt_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8136   return dissect_gsm_map_T_vt_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_CSI);
8137 }
8138
8139
8140 static const value_string gsm_map_T_t_BCSM_TriggerDetectionPoint1_vals[] = {
8141   {  12, "termAttemptAuthorized" },
8142   {  13, "tBusy" },
8143   {  14, "tNoAnswer" },
8144   { 0, NULL }
8145 };
8146
8147
8148 static int
8149 dissect_gsm_map_T_t_BCSM_TriggerDetectionPoint1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8150   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8151
8152   return offset;
8153 }
8154 static int dissect_t_BCSM_TriggerDetectionPoint1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8155   return dissect_gsm_map_T_t_BCSM_TriggerDetectionPoint1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_TriggerDetectionPoint1);
8156 }
8157
8158 static const ber_sequence_t T_vt_BCSM_CAMEL_TDP_CriteriaList_item_sequence[] = {
8159   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint1 },
8160   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria1_impl },
8161   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
8162   { 0, 0, 0, NULL }
8163 };
8164
8165 static int
8166 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_) {
8167   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8168                                 T_vt_BCSM_CAMEL_TDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item);
8169
8170   return offset;
8171 }
8172 static int dissect_vt_BCSM_CAMEL_TDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8173   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);
8174 }
8175
8176 static const ber_sequence_t T_vt_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8177   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vt_BCSM_CAMEL_TDP_CriteriaList_item },
8178 };
8179
8180 static int
8181 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_) {
8182   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8183                                    T_vt_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList);
8184
8185   return offset;
8186 }
8187 static int dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8188   return dissect_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList);
8189 }
8190
8191
8192 static const value_string gsm_map_T_gprs_TriggerDetectionPoint_vals[] = {
8193   {   1, "attach" },
8194   {   2, "attachChangeOfPosition" },
8195   {  11, "pdp-ContextEstablishment" },
8196   {  12, "pdp-ContextEstablishmentAcknowledgement" },
8197   {  14, "pdp-ContextChangeOfPosition" },
8198   { 0, NULL }
8199 };
8200
8201
8202 static int
8203 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_) {
8204   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8205
8206   return offset;
8207 }
8208 static int dissect_gprs_TriggerDetectionPoint_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8209   return dissect_gsm_map_T_gprs_TriggerDetectionPoint(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_TriggerDetectionPoint);
8210 }
8211
8212
8213 static const value_string gsm_map_T_defaultSessionHandling_vals[] = {
8214   {   0, "continueTransaction" },
8215   {   1, "releaseTransaction" },
8216   { 0, NULL }
8217 };
8218
8219
8220 static int
8221 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_) {
8222   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8223
8224   return offset;
8225 }
8226 static int dissect_defaultSessionHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8227   return dissect_gsm_map_T_defaultSessionHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultSessionHandling);
8228 }
8229
8230 static const ber_sequence_t T_gprs_CamelTDPDataList_item_sequence[] = {
8231   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprs_TriggerDetectionPoint_impl },
8232   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
8233   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8234   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSessionHandling_impl },
8235   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8236   { 0, 0, 0, NULL }
8237 };
8238
8239 static int
8240 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_) {
8241   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8242                                 T_gprs_CamelTDPDataList_item_sequence, hf_index, ett_gsm_map_T_gprs_CamelTDPDataList_item);
8243
8244   return offset;
8245 }
8246 static int dissect_gprs_CamelTDPDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8247   return dissect_gsm_map_T_gprs_CamelTDPDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CamelTDPDataList_item);
8248 }
8249
8250 static const ber_sequence_t T_gprs_CamelTDPDataList_sequence_of[1] = {
8251   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprs_CamelTDPDataList_item },
8252 };
8253
8254 static int
8255 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_) {
8256   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8257                                    T_gprs_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_T_gprs_CamelTDPDataList);
8258
8259   return offset;
8260 }
8261 static int dissect_gprs_CamelTDPDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8262   return dissect_gsm_map_T_gprs_CamelTDPDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CamelTDPDataList);
8263 }
8264
8265 static const ber_sequence_t T_gprs_CSI_sequence[] = {
8266   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CamelTDPDataList_impl },
8267   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8268   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8269   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8270   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8271   { 0, 0, 0, NULL }
8272 };
8273
8274 static int
8275 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_) {
8276   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8277                                 T_gprs_CSI_sequence, hf_index, ett_gsm_map_T_gprs_CSI);
8278
8279   return offset;
8280 }
8281 static int dissect_gprs_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8282   return dissect_gsm_map_T_gprs_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprs_CSI);
8283 }
8284
8285
8286 static const value_string gsm_map_T_sms_TriggerDetectionPoint1_vals[] = {
8287   {   1, "sms-CollectedInfo" },
8288   {   2, "sms-DeliveryRequest" },
8289   { 0, NULL }
8290 };
8291
8292
8293 static int
8294 dissect_gsm_map_T_sms_TriggerDetectionPoint1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8295   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8296
8297   return offset;
8298 }
8299 static int dissect_sms_TriggerDetectionPoint1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8300   return dissect_gsm_map_T_sms_TriggerDetectionPoint1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sms_TriggerDetectionPoint1);
8301 }
8302
8303
8304 static const value_string gsm_map_T_defaultSMS_Handling_vals[] = {
8305   {   0, "continueTransaction" },
8306   {   1, "releaseTransaction" },
8307   { 0, NULL }
8308 };
8309
8310
8311 static int
8312 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_) {
8313   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8314
8315   return offset;
8316 }
8317 static int dissect_defaultSMS_Handling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8318   return dissect_gsm_map_T_defaultSMS_Handling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultSMS_Handling);
8319 }
8320
8321 static const ber_sequence_t Sms_CAMEL_TDP_DataList_item_sequence[] = {
8322   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sms_TriggerDetectionPoint1_impl },
8323   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
8324   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8325   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSMS_Handling_impl },
8326   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8327   { 0, 0, 0, NULL }
8328 };
8329
8330 static int
8331 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_) {
8332   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8333                                 Sms_CAMEL_TDP_DataList_item_sequence, hf_index, ett_gsm_map_Sms_CAMEL_TDP_DataList_item);
8334
8335   return offset;
8336 }
8337 static int dissect_Sms_CAMEL_TDP_DataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8338   return dissect_gsm_map_Sms_CAMEL_TDP_DataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_Sms_CAMEL_TDP_DataList_item);
8339 }
8340
8341 static const ber_sequence_t Sms_CAMEL_TDP_DataList_sequence_of[1] = {
8342   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Sms_CAMEL_TDP_DataList_item },
8343 };
8344
8345 static int
8346 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_) {
8347   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8348                                    Sms_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_Sms_CAMEL_TDP_DataList);
8349
8350   return offset;
8351 }
8352 static int dissect_sms_CAMEL_TDP_DataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8353   return dissect_gsm_map_Sms_CAMEL_TDP_DataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sms_CAMEL_TDP_DataList);
8354 }
8355
8356 static const ber_sequence_t T_mo_sms_CSI_sequence[] = {
8357   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl },
8358   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8359   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8360   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8361   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8362   { 0, 0, 0, NULL }
8363 };
8364
8365 static int
8366 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_) {
8367   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8368                                 T_mo_sms_CSI_sequence, hf_index, ett_gsm_map_T_mo_sms_CSI);
8369
8370   return offset;
8371 }
8372 static int dissect_mo_sms_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8373   return dissect_gsm_map_T_mo_sms_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mo_sms_CSI);
8374 }
8375
8376 static const ber_sequence_t T_ss_CSI1_sequence[] = {
8377   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
8378   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8379   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8380   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8381   { 0, 0, 0, NULL }
8382 };
8383
8384 static int
8385 dissect_gsm_map_T_ss_CSI1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8386   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8387                                 T_ss_CSI1_sequence, hf_index, ett_gsm_map_T_ss_CSI1);
8388
8389   return offset;
8390 }
8391 static int dissect_ss_CSI1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8392   return dissect_gsm_map_T_ss_CSI1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CSI1);
8393 }
8394
8395 static const ber_sequence_t MobilityTriggers_sequence_of[1] = {
8396   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_MobilityTriggers_item },
8397 };
8398
8399 static int
8400 dissect_gsm_map_MobilityTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8401   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8402                                    MobilityTriggers_sequence_of, hf_index, ett_gsm_map_MobilityTriggers);
8403
8404   return offset;
8405 }
8406 static int dissect_mobilityTriggers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8407   return dissect_gsm_map_MobilityTriggers(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mobilityTriggers);
8408 }
8409
8410 static const ber_sequence_t T_m_CSI_sequence[] = {
8411   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
8412   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
8413   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8414   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8415   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8416   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8417   { 0, 0, 0, NULL }
8418 };
8419
8420 static int
8421 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_) {
8422   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8423                                 T_m_CSI_sequence, hf_index, ett_gsm_map_T_m_CSI);
8424
8425   return offset;
8426 }
8427 static int dissect_m_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8428   return dissect_gsm_map_T_m_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_m_CSI);
8429 }
8430
8431 static const asn_namedbit T_specificCSIDeletedList_bits[] = {
8432   {  0, &hf_gsm_map_T_specificCSIDeletedList_o_csi, -1, -1, NULL, NULL },
8433   {  1, &hf_gsm_map_T_specificCSIDeletedList_ss_csi, -1, -1, NULL, NULL },
8434   {  2, &hf_gsm_map_T_specificCSIDeletedList_tif_csi, -1, -1, NULL, NULL },
8435   {  3, &hf_gsm_map_T_specificCSIDeletedList_d_csi, -1, -1, NULL, NULL },
8436   {  4, &hf_gsm_map_T_specificCSIDeletedList_vt_csi, -1, -1, NULL, NULL },
8437   {  5, &hf_gsm_map_T_specificCSIDeletedList_mo_sms_csi, -1, -1, NULL, NULL },
8438   {  6, &hf_gsm_map_T_specificCSIDeletedList_m_csi, -1, -1, NULL, NULL },
8439   {  7, &hf_gsm_map_T_specificCSIDeletedList_gprs_csi, -1, -1, NULL, NULL },
8440   {  8, &hf_gsm_map_T_specificCSIDeletedList_t_csi, -1, -1, NULL, NULL },
8441   {  9, &hf_gsm_map_T_specificCSIDeletedList_mt_sms_csi, -1, -1, NULL, NULL },
8442   { 10, &hf_gsm_map_T_specificCSIDeletedList_mg_csi, -1, -1, NULL, NULL },
8443   { 11, &hf_gsm_map_T_specificCSIDeletedList_o_IM_CSI, -1, -1, NULL, NULL },
8444   { 12, &hf_gsm_map_T_specificCSIDeletedList_d_IM_CSI, -1, -1, NULL, NULL },
8445   { 13, &hf_gsm_map_T_specificCSIDeletedList_vt_IM_CSI, -1, -1, NULL, NULL },
8446   { 0, NULL, 0, 0, NULL, NULL }
8447 };
8448
8449 static int
8450 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_) {
8451   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8452                                  T_specificCSIDeletedList_bits, hf_index, ett_gsm_map_T_specificCSIDeletedList,
8453                                  NULL);
8454
8455   return offset;
8456 }
8457 static int dissect_specificCSIDeletedList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8458   return dissect_gsm_map_T_specificCSIDeletedList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_specificCSIDeletedList);
8459 }
8460
8461 static const ber_sequence_t T_mt_sms_CSI_sequence[] = {
8462   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl },
8463   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8464   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8465   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8466   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8467   { 0, 0, 0, NULL }
8468 };
8469
8470 static int
8471 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_) {
8472   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8473                                 T_mt_sms_CSI_sequence, hf_index, ett_gsm_map_T_mt_sms_CSI);
8474
8475   return offset;
8476 }
8477 static int dissect_mt_sms_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8478   return dissect_gsm_map_T_mt_sms_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mt_sms_CSI);
8479 }
8480
8481
8482 static const value_string gsm_map_T_sms_TriggerDetectionPoint_vals[] = {
8483   {   1, "sms-CollectedInfo" },
8484   {   2, "sms-DeliveryRequest" },
8485   { 0, NULL }
8486 };
8487
8488
8489 static int
8490 dissect_gsm_map_T_sms_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8491   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8492
8493   return offset;
8494 }
8495 static int dissect_sms_TriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8496   return dissect_gsm_map_T_sms_TriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sms_TriggerDetectionPoint);
8497 }
8498
8499
8500 static const value_string gsm_map_T_tpdu_TypeCriterion_item_vals[] = {
8501   {   0, "sms-DELIVER" },
8502   {   1, "sms-SUBMIT-REPORT" },
8503   {   2, "sms-STATUS-REPORT" },
8504   { 0, NULL }
8505 };
8506
8507
8508 static int
8509 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_) {
8510   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8511
8512   return offset;
8513 }
8514 static int dissect_tpdu_TypeCriterion_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8515   return dissect_gsm_map_T_tpdu_TypeCriterion_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_tpdu_TypeCriterion_item);
8516 }
8517
8518 static const ber_sequence_t T_tpdu_TypeCriterion_sequence_of[1] = {
8519   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_tpdu_TypeCriterion_item },
8520 };
8521
8522 static int
8523 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_) {
8524   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8525                                    T_tpdu_TypeCriterion_sequence_of, hf_index, ett_gsm_map_T_tpdu_TypeCriterion);
8526
8527   return offset;
8528 }
8529 static int dissect_tpdu_TypeCriterion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8530   return dissect_gsm_map_T_tpdu_TypeCriterion(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tpdu_TypeCriterion);
8531 }
8532
8533 static const ber_sequence_t T_mt_smsCAMELTDP_CriteriaList_item_sequence[] = {
8534   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sms_TriggerDetectionPoint },
8535   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tpdu_TypeCriterion_impl },
8536   { 0, 0, 0, NULL }
8537 };
8538
8539 static int
8540 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_) {
8541   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8542                                 T_mt_smsCAMELTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item);
8543
8544   return offset;
8545 }
8546 static int dissect_mt_smsCAMELTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8547   return dissect_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList_item);
8548 }
8549
8550 static const ber_sequence_t T_mt_smsCAMELTDP_CriteriaList_sequence_of[1] = {
8551   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mt_smsCAMELTDP_CriteriaList_item },
8552 };
8553
8554 static int
8555 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_) {
8556   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8557                                    T_mt_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList);
8558
8559   return offset;
8560 }
8561 static int dissect_mt_smsCAMELTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8562   return dissect_gsm_map_T_mt_smsCAMELTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList);
8563 }
8564
8565 static const ber_sequence_t T_mg_csi_sequence[] = {
8566   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
8567   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
8568   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
8569   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8570   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8571   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8572   { 0, 0, 0, NULL }
8573 };
8574
8575 static int
8576 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_) {
8577   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8578                                 T_mg_csi_sequence, hf_index, ett_gsm_map_T_mg_csi);
8579
8580   return offset;
8581 }
8582 static int dissect_mg_csi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8583   return dissect_gsm_map_T_mg_csi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mg_csi);
8584 }
8585
8586 static const ber_sequence_t T_o_IM_CSI_sequence[] = {
8587   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
8588   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8589   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8590   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8591   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csiActive_impl },
8592   { 0, 0, 0, NULL }
8593 };
8594
8595 static int
8596 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_) {
8597   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8598                                 T_o_IM_CSI_sequence, hf_index, ett_gsm_map_T_o_IM_CSI);
8599
8600   return offset;
8601 }
8602 static int dissect_o_IM_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8603   return dissect_gsm_map_T_o_IM_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_IM_CSI);
8604 }
8605
8606
8607 static const value_string gsm_map_T_o_BcsmTriggerDetectionPoint1_vals[] = {
8608   {   2, "collectedInfo" },
8609   {   4, "routeSelectFailure" },
8610   { 0, NULL }
8611 };
8612
8613
8614 static int
8615 dissect_gsm_map_T_o_BcsmTriggerDetectionPoint1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8616   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8617
8618   return offset;
8619 }
8620 static int dissect_o_BcsmTriggerDetectionPoint2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8621   return dissect_gsm_map_T_o_BcsmTriggerDetectionPoint1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint2);
8622 }
8623
8624 static const ber_sequence_t T_o_IM_BcsmCamelTDP_CriteriaList_item_sequence[] = {
8625   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint2 },
8626   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
8627   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria1_impl },
8628   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
8629   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CauseValueCriteria_impl },
8630   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8631   { 0, 0, 0, NULL }
8632 };
8633
8634 static int
8635 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_) {
8636   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8637                                 T_o_IM_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item);
8638
8639   return offset;
8640 }
8641 static int dissect_o_IM_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8642   return dissect_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList_item);
8643 }
8644
8645 static const ber_sequence_t T_o_IM_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
8646   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_IM_BcsmCamelTDP_CriteriaList_item },
8647 };
8648
8649 static int
8650 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_) {
8651   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8652                                    T_o_IM_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList);
8653
8654   return offset;
8655 }
8656 static int dissect_o_IM_BcsmCamelTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8657   return dissect_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList);
8658 }
8659
8660 static const ber_sequence_t T_d_IM_CSI_sequence[] = {
8661   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl },
8662   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8663   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8664   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8665   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8666   { 0, 0, 0, NULL }
8667 };
8668
8669 static int
8670 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_) {
8671   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8672                                 T_d_IM_CSI_sequence, hf_index, ett_gsm_map_T_d_IM_CSI);
8673
8674   return offset;
8675 }
8676 static int dissect_d_IM_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8677   return dissect_gsm_map_T_d_IM_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_d_IM_CSI);
8678 }
8679
8680 static const ber_sequence_t T_vt_IM_CSI_sequence[] = {
8681   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
8682   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
8683   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
8684   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
8685   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
8686   { 0, 0, 0, NULL }
8687 };
8688
8689 static int
8690 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_) {
8691   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8692                                 T_vt_IM_CSI_sequence, hf_index, ett_gsm_map_T_vt_IM_CSI);
8693
8694   return offset;
8695 }
8696 static int dissect_vt_IM_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8697   return dissect_gsm_map_T_vt_IM_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vt_IM_CSI);
8698 }
8699
8700
8701 static const value_string gsm_map_T_t_BCSM_TriggerDetectionPoint2_vals[] = {
8702   {  12, "termAttemptAuthorized" },
8703   {  13, "tBusy" },
8704   {  14, "tNoAnswer" },
8705   { 0, NULL }
8706 };
8707
8708
8709 static int
8710 dissect_gsm_map_T_t_BCSM_TriggerDetectionPoint2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8711   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8712
8713   return offset;
8714 }
8715 static int dissect_t_BCSM_TriggerDetectionPoint2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8716   return dissect_gsm_map_T_t_BCSM_TriggerDetectionPoint2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BCSM_TriggerDetectionPoint2);
8717 }
8718
8719 static const ber_sequence_t T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item_sequence[] = {
8720   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint2 },
8721   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria1_impl },
8722   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
8723   { 0, 0, 0, NULL }
8724 };
8725
8726 static int
8727 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_) {
8728   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8729                                 T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item);
8730
8731   return offset;
8732 }
8733 static int dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8734   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);
8735 }
8736
8737 static const ber_sequence_t T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
8738   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item },
8739 };
8740
8741 static int
8742 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_) {
8743   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
8744                                    T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList);
8745
8746   return offset;
8747 }
8748 static int dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8749   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);
8750 }
8751
8752 static const ber_sequence_t T_camel_SubscriptionInfo_sequence[] = {
8753   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
8754   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList1_impl },
8755   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_CSI_impl },
8756   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI1_impl },
8757   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl },
8758   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_CSI_impl },
8759   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl },
8760   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
8761   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_NotificationToCSE_impl },
8762   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl },
8763   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl },
8764   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI1_impl },
8765   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_m_CSI_impl },
8766   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8767   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_specificCSIDeletedList_impl },
8768   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl },
8769   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl },
8770   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mg_csi_impl },
8771   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_CSI_impl },
8772   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_BcsmCamelTDP_CriteriaList_impl },
8773   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_IM_CSI_impl },
8774   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_CSI_impl },
8775   { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl },
8776   { 0, 0, 0, NULL }
8777 };
8778
8779 static int
8780 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_) {
8781   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8782                                 T_camel_SubscriptionInfo_sequence, hf_index, ett_gsm_map_T_camel_SubscriptionInfo);
8783
8784   return offset;
8785 }
8786 static int dissect_camel_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8787   return dissect_gsm_map_T_camel_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camel_SubscriptionInfo);
8788 }
8789
8790 static const asn_namedbit T_supportedVLR_CAMEL_Phases_bits[] = {
8791   {  0, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase1, -1, -1, NULL, NULL },
8792   {  1, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase2, -1, -1, NULL, NULL },
8793   {  2, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase3, -1, -1, NULL, NULL },
8794   {  3, &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase4, -1, -1, NULL, NULL },
8795   { 0, NULL, 0, 0, NULL, NULL }
8796 };
8797
8798 static int
8799 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_) {
8800   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8801                                  T_supportedVLR_CAMEL_Phases_bits, hf_index, ett_gsm_map_T_supportedVLR_CAMEL_Phases,
8802                                  NULL);
8803
8804   return offset;
8805 }
8806 static int dissect_supportedVLR_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8807   return dissect_gsm_map_T_supportedVLR_CAMEL_Phases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedVLR_CAMEL_Phases);
8808 }
8809
8810 static const asn_namedbit T_supportedSGSN_CAMEL_Phases_bits[] = {
8811   {  0, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase1, -1, -1, NULL, NULL },
8812   {  1, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase2, -1, -1, NULL, NULL },
8813   {  2, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase3, -1, -1, NULL, NULL },
8814   {  3, &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase4, -1, -1, NULL, NULL },
8815   { 0, NULL, 0, 0, NULL, NULL }
8816 };
8817
8818 static int
8819 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_) {
8820   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8821                                  T_supportedSGSN_CAMEL_Phases_bits, hf_index, ett_gsm_map_T_supportedSGSN_CAMEL_Phases,
8822                                  NULL);
8823
8824   return offset;
8825 }
8826 static int dissect_supportedSGSN_CAMEL_Phases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8827   return dissect_gsm_map_T_supportedSGSN_CAMEL_Phases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases);
8828 }
8829
8830 static const asn_namedbit T_offeredCamel4CSIsInVLR_bits[] = {
8831   {  0, &hf_gsm_map_T_offeredCamel4CSIsInVLR_o_csi, -1, -1, NULL, NULL },
8832   {  1, &hf_gsm_map_T_offeredCamel4CSIsInVLR_d_csi, -1, -1, NULL, NULL },
8833   {  2, &hf_gsm_map_T_offeredCamel4CSIsInVLR_vt_csi, -1, -1, NULL, NULL },
8834   {  3, &hf_gsm_map_T_offeredCamel4CSIsInVLR_t_csi, -1, -1, NULL, NULL },
8835   {  4, &hf_gsm_map_T_offeredCamel4CSIsInVLR_mt_sms_csi, -1, -1, NULL, NULL },
8836   {  5, &hf_gsm_map_T_offeredCamel4CSIsInVLR_mg_csi, -1, -1, NULL, NULL },
8837   {  6, &hf_gsm_map_T_offeredCamel4CSIsInVLR_psi_enhancements, -1, -1, NULL, NULL },
8838   { 0, NULL, 0, 0, NULL, NULL }
8839 };
8840
8841 static int
8842 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_) {
8843   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8844                                  T_offeredCamel4CSIsInVLR_bits, hf_index, ett_gsm_map_T_offeredCamel4CSIsInVLR,
8845                                  NULL);
8846
8847   return offset;
8848 }
8849 static int dissect_offeredCamel4CSIsInVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8850   return dissect_gsm_map_T_offeredCamel4CSIsInVLR(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIsInVLR);
8851 }
8852
8853 static const asn_namedbit T_offeredCamel4CSIsInSGSN_bits[] = {
8854   {  0, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_o_csi, -1, -1, NULL, NULL },
8855   {  1, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_d_csi, -1, -1, NULL, NULL },
8856   {  2, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_vt_csi, -1, -1, NULL, NULL },
8857   {  3, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_t_csi, -1, -1, NULL, NULL },
8858   {  4, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mt_sms_csi, -1, -1, NULL, NULL },
8859   {  5, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mg_csi, -1, -1, NULL, NULL },
8860   {  6, &hf_gsm_map_T_offeredCamel4CSIsInSGSN_psi_enhancements, -1, -1, NULL, NULL },
8861   { 0, NULL, 0, 0, NULL, NULL }
8862 };
8863
8864 static int
8865 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_) {
8866   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
8867                                  T_offeredCamel4CSIsInSGSN_bits, hf_index, ett_gsm_map_T_offeredCamel4CSIsInSGSN,
8868                                  NULL);
8869
8870   return offset;
8871 }
8872 static int dissect_offeredCamel4CSIsInSGSN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8873   return dissect_gsm_map_T_offeredCamel4CSIsInSGSN(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_offeredCamel4CSIsInSGSN);
8874 }
8875
8876 static const ber_sequence_t AnyTimeSubscriptionInterrogationRes_sequence[] = {
8877   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwardingData_impl },
8878   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringData_impl },
8879   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl },
8880   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl },
8881   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_impl },
8882   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_impl },
8883   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8884   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInVLR_impl },
8885   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInSGSN_impl },
8886   { 0, 0, 0, NULL }
8887 };
8888
8889 static int
8890 dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8891   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8892                                 AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationRes);
8893
8894   return offset;
8895 }
8896
8897
8898 static const value_string gsm_map_T_basicService_vals[] = {
8899   {   2, "ext-BearerService" },
8900   {   3, "ext-Teleservice" },
8901   { 0, NULL }
8902 };
8903
8904 static const ber_choice_t T_basicService_choice[] = {
8905   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl },
8906   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl },
8907   { 0, 0, 0, 0, NULL }
8908 };
8909
8910 static int
8911 dissect_gsm_map_T_basicService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8912   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
8913                               T_basicService_choice, hf_index, ett_gsm_map_T_basicService);
8914
8915   return offset;
8916 }
8917 static int dissect_basicService1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8918   return dissect_gsm_map_T_basicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService1);
8919 }
8920
8921
8922
8923 static int
8924 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_) {
8925   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8926
8927   return offset;
8928 }
8929 static int dissect_noReplyConditionTime1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8930   return dissect_gsm_map_INTEGER_1_100(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime1);
8931 }
8932
8933
8934 static const value_string gsm_map_ModifyNotificationToCSE_vals[] = {
8935   {   0, "deactivate" },
8936   {   1, "activate" },
8937   { 0, NULL }
8938 };
8939
8940
8941 static int
8942 dissect_gsm_map_ModifyNotificationToCSE(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8943   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
8944
8945   return offset;
8946 }
8947 static int dissect_modifyNotificationToCSE_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8948   return dissect_gsm_map_ModifyNotificationToCSE(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modifyNotificationToCSE);
8949 }
8950
8951 static const ber_sequence_t T_modificationRequestFor_CF_Info_sequence[] = {
8952   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
8953   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_basicService1 },
8954   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
8955   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
8956   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
8957   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime1_impl },
8958   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
8959   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
8960   { 0, 0, 0, NULL }
8961 };
8962
8963 static int
8964 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_) {
8965   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8966                                 T_modificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_CF_Info);
8967
8968   return offset;
8969 }
8970 static int dissect_modificationRequestFor_CF_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8971   return dissect_gsm_map_T_modificationRequestFor_CF_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CF_Info);
8972 }
8973
8974
8975 static const value_string gsm_map_T_basicService1_vals[] = {
8976   {   2, "ext-BearerService" },
8977   {   3, "ext-Teleservice" },
8978   { 0, NULL }
8979 };
8980
8981 static const ber_choice_t T_basicService1_choice[] = {
8982   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl },
8983   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl },
8984   { 0, 0, 0, 0, NULL }
8985 };
8986
8987 static int
8988 dissect_gsm_map_T_basicService1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
8989   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
8990                               T_basicService1_choice, hf_index, ett_gsm_map_T_basicService1);
8991
8992   return offset;
8993 }
8994 static int dissect_basicService2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8995   return dissect_gsm_map_T_basicService1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService2);
8996 }
8997
8998 static const ber_sequence_t T_modificationRequestFor_CB_Info_sequence[] = {
8999   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
9000   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_basicService2 },
9001   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
9002   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_password_impl },
9003   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wrongPasswordAttemptsCounter_impl },
9004   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
9005   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9006   { 0, 0, 0, NULL }
9007 };
9008
9009 static int
9010 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_) {
9011   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9012                                 T_modificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_CB_Info);
9013
9014   return offset;
9015 }
9016 static int dissect_modificationRequestFor_CB_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9017   return dissect_gsm_map_T_modificationRequestFor_CB_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CB_Info);
9018 }
9019
9020
9021 static const value_string gsm_map_T_requestedCamel_SubscriptionInfo_vals[] = {
9022   {   0, "o-CSI" },
9023   {   1, "t-CSI" },
9024   {   2, "vt-CSI" },
9025   {   3, "tif-CSI" },
9026   {   4, "gprs-CSI" },
9027   {   5, "mo-sms-CSI" },
9028   {   6, "ss-CSI" },
9029   {   7, "m-CSI" },
9030   {   8, "d-csi" },
9031   { 0, NULL }
9032 };
9033
9034
9035 static int
9036 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_) {
9037   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9038
9039   return offset;
9040 }
9041 static int dissect_requestedCamel_SubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9042   return dissect_gsm_map_T_requestedCamel_SubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedCamel_SubscriptionInfo);
9043 }
9044
9045
9046 static const value_string gsm_map_T_modifyCSI_State_vals[] = {
9047   {   0, "deactivate" },
9048   {   1, "activate" },
9049   { 0, NULL }
9050 };
9051
9052
9053 static int
9054 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_) {
9055   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9056
9057   return offset;
9058 }
9059 static int dissect_modifyCSI_State_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9060   return dissect_gsm_map_T_modifyCSI_State(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modifyCSI_State);
9061 }
9062
9063 static const ber_sequence_t T_modificationRequestFor_CSI_sequence[] = {
9064   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedCamel_SubscriptionInfo_impl },
9065   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
9066   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyCSI_State_impl },
9067   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9068   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRequestedCAMEL_SubscriptionInfo_impl },
9069   { 0, 0, 0, NULL }
9070 };
9071
9072 static int
9073 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_) {
9074   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9075                                 T_modificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_CSI);
9076
9077   return offset;
9078 }
9079 static int dissect_modificationRequestFor_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9080   return dissect_gsm_map_T_modificationRequestFor_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_CSI);
9081 }
9082
9083 static const ber_sequence_t T_modificationRequestFor_ODB_data_sequence[] = {
9084   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_data_impl },
9085   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
9086   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9087   { 0, 0, 0, NULL }
9088 };
9089
9090 static int
9091 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_) {
9092   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9093                                 T_modificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_T_modificationRequestFor_ODB_data);
9094
9095   return offset;
9096 }
9097 static int dissect_modificationRequestFor_ODB_data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9098   return dissect_gsm_map_T_modificationRequestFor_ODB_data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_modificationRequestFor_ODB_data);
9099 }
9100
9101 static const ber_sequence_t AnyTimeModificationArg_sequence[] = {
9102   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
9103   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
9104   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CF_Info_impl },
9105   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CB_Info_impl },
9106   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CSI_impl },
9107   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9108   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
9109   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_ODB_data_impl },
9110   { 0, 0, 0, NULL }
9111 };
9112
9113 static int
9114 dissect_gsm_map_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9115   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9116                                 AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_AnyTimeModificationArg);
9117
9118   return offset;
9119 }
9120
9121 static const ber_sequence_t T_ss_EventSpecification_sequence_of[1] = {
9122   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventSpecification_item },
9123 };
9124
9125 static int
9126 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_) {
9127   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
9128                                    T_ss_EventSpecification_sequence_of, hf_index, ett_gsm_map_T_ss_EventSpecification);
9129
9130   return offset;
9131 }
9132 static int dissect_ss_EventSpecification_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9133   return dissect_gsm_map_T_ss_EventSpecification(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification);
9134 }
9135
9136 static const ber_sequence_t Ss_InvocationNotificationArg_sequence[] = {
9137   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9138   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9139   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ss_Event_impl },
9140   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_EventSpecification_impl },
9141   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9142   { 0, 0, 0, NULL }
9143 };
9144
9145 static int
9146 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_) {
9147   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9148                                 Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
9149
9150   return offset;
9151 }
9152
9153 static const ber_sequence_t Ss_InvocationNotificationRes_sequence[] = {
9154   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9155   { 0, 0, 0, NULL }
9156 };
9157
9158 static int
9159 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_) {
9160   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9161                                 Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
9162
9163   return offset;
9164 }
9165
9166
9167 static int
9168 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_) {
9169   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9170                                     NULL);
9171
9172   return offset;
9173 }
9174 static int dissect_codec_Info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9175   return dissect_gsm_map_OCTET_STRING_SIZE_5_10(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_codec_Info);
9176 }
9177
9178 static const ber_sequence_t PrepareGroupCallArg_sequence[] = {
9179   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleservice },
9180   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
9181   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_codec_Info },
9182   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cipheringAlgorithm },
9183   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKeyNumber_impl },
9184   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKey_impl },
9185   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl },
9186   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkFree_impl },
9187   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9188   { 0, 0, 0, NULL }
9189 };
9190
9191 static int
9192 dissect_gsm_map_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9193   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9194                                 PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
9195
9196   return offset;
9197 }
9198
9199
9200 static int
9201 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_) {
9202   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9203                                     NULL);
9204
9205   return offset;
9206 }
9207 static int dissect_groupCallNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9208   return dissect_gsm_map_T_groupCallNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupCallNumber);
9209 }
9210
9211 static const ber_sequence_t PrepareGroupCallRes_sequence[] = {
9212   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber },
9213   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9214   { 0, 0, 0, NULL }
9215 };
9216
9217 static int
9218 dissect_gsm_map_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9219   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9220                                 PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
9221
9222   return offset;
9223 }
9224
9225 static const ber_sequence_t SendGroupCallEndSignalArg_sequence[] = {
9226   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
9227   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9228   { 0, 0, 0, NULL }
9229 };
9230
9231 static int
9232 dissect_gsm_map_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9233   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9234                                 SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
9235
9236   return offset;
9237 }
9238
9239 static const ber_sequence_t SendGroupCallEndSignalRes_sequence[] = {
9240   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9241   { 0, 0, 0, NULL }
9242 };
9243
9244 static int
9245 dissect_gsm_map_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9246   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9247                                 SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
9248
9249   return offset;
9250 }
9251
9252 static const ber_sequence_t ProcessGroupCallSignallingArg_sequence[] = {
9253   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl },
9254   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
9255   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseGroupCall_impl },
9256   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9257   { 0, 0, 0, NULL }
9258 };
9259
9260 static int
9261 dissect_gsm_map_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9262   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9263                                 ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
9264
9265   return offset;
9266 }
9267
9268 static const ber_sequence_t ForwardGroupCallSignallingArg_sequence[] = {
9269   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
9270   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl },
9271   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
9272   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRejectCommand_impl },
9273   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkSeizedCommand_impl },
9274   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseCommand_impl },
9275   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9276   { 0, 0, 0, NULL }
9277 };
9278
9279 static int
9280 dissect_gsm_map_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9281   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9282                                 ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
9283
9284   return offset;
9285 }
9286
9287 static const ber_sequence_t T_sgsn_Capability_sequence[] = {
9288   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator },
9289   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9290   { 0, 0, 0, NULL }
9291 };
9292
9293 static int
9294 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_) {
9295   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9296                                 T_sgsn_Capability_sequence, hf_index, ett_gsm_map_T_sgsn_Capability);
9297
9298   return offset;
9299 }
9300 static int dissect_sgsn_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9301   return dissect_gsm_map_T_sgsn_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Capability);
9302 }
9303
9304 static const ber_sequence_t UpdateGprsLocationArg_sequence[] = {
9305   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
9306   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number },
9307   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Address },
9308   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9309   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Capability_impl },
9310   { 0, 0, 0, NULL }
9311 };
9312
9313 static int
9314 dissect_gsm_map_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9315   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9316                                 UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
9317
9318   return offset;
9319 }
9320
9321 static const ber_sequence_t UpdateGprsLocationRes_sequence[] = {
9322   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
9323   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9324   { 0, 0, 0, NULL }
9325 };
9326
9327 static int
9328 dissect_gsm_map_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9329   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9330                                 UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
9331
9332   return offset;
9333 }
9334
9335
9336 static int
9337 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_) {
9338   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9339                                     NULL);
9340
9341   return offset;
9342 }
9343 static int dissect_ggsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9344   return dissect_gsm_map_Ggsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Number);
9345 }
9346
9347 static const ber_sequence_t SendRoutingInfoForGprsArg_sequence[] = {
9348   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9349   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9350   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
9351   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9352   { 0, 0, 0, NULL }
9353 };
9354
9355 static int
9356 dissect_gsm_map_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9357   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9358                                 SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
9359
9360   return offset;
9361 }
9362
9363 static const ber_sequence_t SendRoutingInfoForGprsRes_sequence[] = {
9364   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
9365   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9366   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mobileNotReachableReason_impl },
9367   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9368   { 0, 0, 0, NULL }
9369 };
9370
9371 static int
9372 dissect_gsm_map_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9373   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9374                                 SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
9375
9376   return offset;
9377 }
9378
9379 static const ber_sequence_t FailureReportArg_sequence[] = {
9380   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9381   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
9382   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9383   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9384   { 0, 0, 0, NULL }
9385 };
9386
9387 static int
9388 dissect_gsm_map_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9389   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9390                                 FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
9391
9392   return offset;
9393 }
9394
9395 static const ber_sequence_t FailureReportRes_sequence[] = {
9396   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9397   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9398   { 0, 0, 0, NULL }
9399 };
9400
9401 static int
9402 dissect_gsm_map_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9403   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9404                                 FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
9405
9406   return offset;
9407 }
9408
9409 static const ber_sequence_t NoteMsPresentForGprsArg_sequence[] = {
9410   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9411   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
9412   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
9413   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9414   { 0, 0, 0, NULL }
9415 };
9416
9417 static int
9418 dissect_gsm_map_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9419   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9420                                 NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
9421
9422   return offset;
9423 }
9424
9425 static const ber_sequence_t NoteMsPresentForGprsRes_sequence[] = {
9426   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9427   { 0, 0, 0, NULL }
9428 };
9429
9430 static int
9431 dissect_gsm_map_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9432   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9433                                 NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
9434
9435   return offset;
9436 }
9437
9438
9439 static const value_string gsm_map_LcsClientType_vals[] = {
9440   {   0, "emergencyServices" },
9441   {   1, "valueAddedServices" },
9442   {   2, "plmnOperatorServices" },
9443   {   3, "lawfulInterceptServices" },
9444   { 0, NULL }
9445 };
9446
9447
9448 static int
9449 dissect_gsm_map_LcsClientType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9450   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9451
9452   return offset;
9453 }
9454 static int dissect_lcsClientType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9455   return dissect_gsm_map_LcsClientType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientType);
9456 }
9457
9458 static const ber_sequence_t LcsClientExternalID_sequence[] = {
9459   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
9460   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9461   { 0, 0, 0, NULL }
9462 };
9463
9464 static int
9465 dissect_gsm_map_LcsClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9466   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9467                                 LcsClientExternalID_sequence, hf_index, ett_gsm_map_LcsClientExternalID);
9468
9469   return offset;
9470 }
9471 static int dissect_lcsClientExternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9472   return dissect_gsm_map_LcsClientExternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientExternalID);
9473 }
9474
9475
9476 static const value_string gsm_map_LcsClientInternalID_vals[] = {
9477   {   0, "broadcastService" },
9478   {   1, "o-andM-HPLMN" },
9479   {   2, "o-andM-VPLMN" },
9480   {   3, "anonymousLocation" },
9481   {   4, "targetMSsubscribedService" },
9482   { 0, NULL }
9483 };
9484
9485
9486 static int
9487 dissect_gsm_map_LcsClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9488   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9489
9490   return offset;
9491 }
9492 static int dissect_lcsClientInternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9493   return dissect_gsm_map_LcsClientInternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientInternalID);
9494 }
9495
9496 static const ber_sequence_t LcsClientName_sequence[] = {
9497   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
9498   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl },
9499   { 0, 0, 0, NULL }
9500 };
9501
9502 static int
9503 dissect_gsm_map_LcsClientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9504   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9505                                 LcsClientName_sequence, hf_index, ett_gsm_map_LcsClientName);
9506
9507   return offset;
9508 }
9509 static int dissect_lcsClientName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9510   return dissect_gsm_map_LcsClientName(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientName);
9511 }
9512
9513 static const ber_sequence_t Lcs_ClientID_sequence[] = {
9514   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl },
9515   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl },
9516   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientDialedByMS_impl },
9517   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientInternalID_impl },
9518   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientName_impl },
9519   { 0, 0, 0, NULL }
9520 };
9521
9522 static int
9523 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_) {
9524   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9525                                 Lcs_ClientID_sequence, hf_index, ett_gsm_map_Lcs_ClientID);
9526
9527   return offset;
9528 }
9529 static int dissect_lcs_ClientID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9530   return dissect_gsm_map_Lcs_ClientID(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
9531 }
9532 static int dissect_lcs_ClientID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9533   return dissect_gsm_map_Lcs_ClientID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
9534 }
9535
9536
9537 static const value_string gsm_map_Lcs_Event_vals[] = {
9538   {   0, "emergencyCallOrigination" },
9539   {   1, "emergencyCallRelease" },
9540   {   2, "mo-lr" },
9541   { 0, NULL }
9542 };
9543
9544
9545 static int
9546 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_) {
9547   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9548
9549   return offset;
9550 }
9551 static int dissect_lcs_Event(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9552   return dissect_gsm_map_Lcs_Event(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Event);
9553 }
9554
9555 static const ber_sequence_t LcsLocationInfo_sequence[] = {
9556   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msc_Number },
9557   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
9558   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9559   { 0, 0, 0, NULL }
9560 };
9561
9562 static int
9563 dissect_gsm_map_LcsLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9564   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9565                                 LcsLocationInfo_sequence, hf_index, ett_gsm_map_LcsLocationInfo);
9566
9567   return offset;
9568 }
9569 static int dissect_lcsLocationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9570   return dissect_gsm_map_LcsLocationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
9571 }
9572 static int dissect_lcsLocationInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9573   return dissect_gsm_map_LcsLocationInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
9574 }
9575
9576
9577 static const value_string gsm_map_T_locationEstimateType_vals[] = {
9578   {   0, "currentLocation" },
9579   {   1, "currentOrLastKnownLocation" },
9580   {   2, "initialLocation" },
9581   { 0, NULL }
9582 };
9583
9584
9585 static int
9586 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_) {
9587   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9588
9589   return offset;
9590 }
9591 static int dissect_locationEstimateType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9592   return dissect_gsm_map_T_locationEstimateType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimateType);
9593 }
9594
9595 static const ber_sequence_t T_locationType_sequence[] = {
9596   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl },
9597   { 0, 0, 0, NULL }
9598 };
9599
9600 static int
9601 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_) {
9602   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9603                                 T_locationType_sequence, hf_index, ett_gsm_map_T_locationType);
9604
9605   return offset;
9606 }
9607 static int dissect_locationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9608   return dissect_gsm_map_T_locationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationType);
9609 }
9610
9611
9612 static int
9613 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_) {
9614   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9615                                     NULL);
9616
9617   return offset;
9618 }
9619 static int dissect_mlc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9620   return dissect_gsm_map_T_mlc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mlc_Number);
9621 }
9622
9623
9624 static const value_string gsm_map_T_responseTimeCategory_vals[] = {
9625   {   0, "lowdelay" },
9626   {   1, "delaytolerant" },
9627   { 0, NULL }
9628 };
9629
9630
9631 static int
9632 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_) {
9633   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9634
9635   return offset;
9636 }
9637 static int dissect_responseTimeCategory(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9638   return dissect_gsm_map_T_responseTimeCategory(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_responseTimeCategory);
9639 }
9640
9641 static const ber_sequence_t T_responseTime_sequence[] = {
9642   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory },
9643   { 0, 0, 0, NULL }
9644 };
9645
9646 static int
9647 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_) {
9648   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9649                                 T_responseTime_sequence, hf_index, ett_gsm_map_T_responseTime);
9650
9651   return offset;
9652 }
9653 static int dissect_responseTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9654   return dissect_gsm_map_T_responseTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_responseTime);
9655 }
9656
9657 static const ber_sequence_t T_lcs_QoS_sequence[] = {
9658   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl },
9659   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl },
9660   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vertical_accuracy_impl },
9661   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseTime_impl },
9662   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9663   { 0, 0, 0, NULL }
9664 };
9665
9666 static int
9667 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_) {
9668   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9669                                 T_lcs_QoS_sequence, hf_index, ett_gsm_map_T_lcs_QoS);
9670
9671   return offset;
9672 }
9673 static int dissect_lcs_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9674   return dissect_gsm_map_T_lcs_QoS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_QoS);
9675 }
9676
9677 static const ber_sequence_t ProvideSubscriberLocation_Arg_sequence[] = {
9678   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType },
9679   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number },
9680   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ClientID_impl },
9681   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privacyOverride_impl },
9682   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9683   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9684   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
9685   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
9686   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_Priority_impl },
9687   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_QoS_impl },
9688   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9689   { 0, 0, 0, NULL }
9690 };
9691
9692 static int
9693 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_) {
9694   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9695                                 ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
9696
9697   return offset;
9698 }
9699
9700 static const ber_sequence_t ProvideSubscriberLocation_Res_sequence[] = {
9701   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate },
9702   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
9703   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9704   { 0, 0, 0, NULL }
9705 };
9706
9707 static int
9708 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_) {
9709   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9710                                 ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
9711
9712   return offset;
9713 }
9714
9715
9716 static const value_string gsm_map_TargetMS_vals[] = {
9717   {   0, "imsi" },
9718   {   1, "msisdn" },
9719   { 0, NULL }
9720 };
9721
9722 static const ber_choice_t TargetMS_choice[] = {
9723   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9724   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9725   { 0, 0, 0, 0, NULL }
9726 };
9727
9728 static int
9729 dissect_gsm_map_TargetMS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9730   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
9731                               TargetMS_choice, hf_index, ett_gsm_map_TargetMS);
9732
9733   return offset;
9734 }
9735 static int dissect_targetMS(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9736   return dissect_gsm_map_TargetMS(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMS);
9737 }
9738
9739
9740 static int
9741 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_) {
9742   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9743                                     NULL);
9744
9745   return offset;
9746 }
9747 static int dissect_mlcNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9748   return dissect_gsm_map_T_mlcNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mlcNumber);
9749 }
9750
9751 static const ber_sequence_t RoutingInfoForLCS_Arg_sequence[] = {
9752   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl },
9753   { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
9754   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9755   { 0, 0, 0, NULL }
9756 };
9757
9758 static int
9759 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_) {
9760   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9761                                 RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
9762
9763   return offset;
9764 }
9765
9766 static const ber_sequence_t RoutingInfoForLCS_Res_sequence[] = {
9767   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
9768   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsLocationInfo_impl },
9769   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9770   { 0, 0, 0, NULL }
9771 };
9772
9773 static int
9774 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_) {
9775   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9776                                 RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
9777
9778   return offset;
9779 }
9780
9781
9782 static int
9783 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_) {
9784   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9785                                     NULL);
9786
9787   return offset;
9788 }
9789 static int dissect_na_ESRD_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9790   return dissect_gsm_map_T_na_ESRD(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRD);
9791 }
9792
9793
9794 static int
9795 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_) {
9796   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
9797                                     NULL);
9798
9799   return offset;
9800 }
9801 static int dissect_na_ESRK_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9802   return dissect_gsm_map_T_na_ESRK(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRK);
9803 }
9804
9805 static const ber_sequence_t SubscriberLocationReport_Arg_sequence[] = {
9806   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event },
9807   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID },
9808   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcsLocationInfo },
9809   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
9810   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
9811   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
9812   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl },
9813   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl },
9814   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationEstimate_impl },
9815   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
9816   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
9817   { 0, 0, 0, NULL }
9818 };
9819
9820 static int
9821 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_) {
9822   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9823                                 SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
9824
9825   return offset;
9826 }
9827
9828 static const ber_sequence_t SubscriberLocationReport_Res_sequence[] = {
9829   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9830   { 0, 0, 0, NULL }
9831 };
9832
9833 static int
9834 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_) {
9835   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9836                                 SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
9837
9838   return offset;
9839 }
9840
9841
9842 static const value_string gsm_map_NetworkResource_vals[] = {
9843   {   0, "plmn" },
9844   {   1, "hlr" },
9845   {   2, "vlr" },
9846   {   3, "pvlr" },
9847   {   4, "controllingMSC" },
9848   {   5, "vmsc" },
9849   {   6, "eir" },
9850   {   7, "rss" },
9851   { 0, NULL }
9852 };
9853
9854
9855 static int
9856 dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9857   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9858
9859   return offset;
9860 }
9861 static int dissect_networkResource(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9862   return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkResource);
9863 }
9864
9865 static const ber_sequence_t T_extensibleSystemFailureParam_sequence[] = {
9866   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource },
9867   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9868   { 0, 0, 0, NULL }
9869 };
9870
9871 static int
9872 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_) {
9873   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9874                                 T_extensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_T_extensibleSystemFailureParam);
9875
9876   return offset;
9877 }
9878 static int dissect_extensibleSystemFailureParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9879   return dissect_gsm_map_T_extensibleSystemFailureParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleSystemFailureParam);
9880 }
9881
9882
9883 static const value_string gsm_map_SystemFailureParam_vals[] = {
9884   {   0, "networkResource" },
9885   {   1, "extensibleSystemFailureParam" },
9886   { 0, NULL }
9887 };
9888
9889 static const ber_choice_t SystemFailureParam_choice[] = {
9890   {   0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_networkResource },
9891   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleSystemFailureParam },
9892   { 0, 0, 0, 0, NULL }
9893 };
9894
9895 static int
9896 dissect_gsm_map_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9897   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
9898                               SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam);
9899
9900   return offset;
9901 }
9902
9903 static const ber_sequence_t DataMissingParam_sequence[] = {
9904   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9905   { 0, 0, 0, NULL }
9906 };
9907
9908 static int
9909 dissect_gsm_map_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9910   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9911                                 DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
9912
9913   return offset;
9914 }
9915
9916 static const ber_sequence_t UnexpectedDataParam_sequence[] = {
9917   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9918   { 0, 0, 0, NULL }
9919 };
9920
9921 static int
9922 dissect_gsm_map_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9923   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9924                                 UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
9925
9926   return offset;
9927 }
9928
9929 static const ber_sequence_t FacilityNotSupParam_sequence[] = {
9930   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9931   { 0, 0, 0, NULL }
9932 };
9933
9934 static int
9935 dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9936   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9937                                 FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
9938
9939   return offset;
9940 }
9941
9942 static const ber_sequence_t IncompatibleTerminalParam_sequence[] = {
9943   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9944   { 0, 0, 0, NULL }
9945 };
9946
9947 static int
9948 dissect_gsm_map_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9949   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9950                                 IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
9951
9952   return offset;
9953 }
9954
9955 static const ber_sequence_t ResourceLimitationParam_sequence[] = {
9956   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9957   { 0, 0, 0, NULL }
9958 };
9959
9960 static int
9961 dissect_gsm_map_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9962   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9963                                 ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
9964
9965   return offset;
9966 }
9967
9968
9969 static const value_string gsm_map_T_unknownSubscriberDiagnostic_vals[] = {
9970   {   0, "imsiUnknown" },
9971   {   1, "gprsSubscriptionUnknown" },
9972   { 0, NULL }
9973 };
9974
9975
9976 static int
9977 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_) {
9978   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
9979
9980   return offset;
9981 }
9982 static int dissect_unknownSubscriberDiagnostic(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
9983   return dissect_gsm_map_T_unknownSubscriberDiagnostic(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_unknownSubscriberDiagnostic);
9984 }
9985
9986 static const ber_sequence_t UnknownSubscriberParam_sequence[] = {
9987   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
9988   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic },
9989   { 0, 0, 0, NULL }
9990 };
9991
9992 static int
9993 dissect_gsm_map_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
9994   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
9995                                 UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
9996
9997   return offset;
9998 }
9999
10000 static const ber_sequence_t NumberChangedParam_sequence[] = {
10001   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10002   { 0, 0, 0, NULL }
10003 };
10004
10005 static int
10006 dissect_gsm_map_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10007   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10008                                 NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
10009
10010   return offset;
10011 }
10012
10013 static const ber_sequence_t UnidentifiedSubParam_sequence[] = {
10014   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10015   { 0, 0, 0, NULL }
10016 };
10017
10018 static int
10019 dissect_gsm_map_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10020   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10021                                 UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
10022
10023   return offset;
10024 }
10025
10026
10027 static const value_string gsm_map_T_roamingNotAllowedCause_vals[] = {
10028   {   0, "plmnRoamingNotAllowed" },
10029   {   3, "operatorDeterminedBarring" },
10030   { 0, NULL }
10031 };
10032
10033
10034 static int
10035 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_) {
10036   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10037
10038   return offset;
10039 }
10040 static int dissect_roamingNotAllowedCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10041   return dissect_gsm_map_T_roamingNotAllowedCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNotAllowedCause);
10042 }
10043
10044 static const ber_sequence_t RoamingNotAllowedParam_sequence[] = {
10045   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause },
10046   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10047   { 0, 0, 0, NULL }
10048 };
10049
10050 static int
10051 dissect_gsm_map_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10052   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10053                                 RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
10054
10055   return offset;
10056 }
10057
10058 static const ber_sequence_t IllegalSubscriberParam_sequence[] = {
10059   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10060   { 0, 0, 0, NULL }
10061 };
10062
10063 static int
10064 dissect_gsm_map_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10065   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10066                                 IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
10067
10068   return offset;
10069 }
10070
10071 static const ber_sequence_t IllegalEquipmentParam_sequence[] = {
10072   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10073   { 0, 0, 0, NULL }
10074 };
10075
10076 static int
10077 dissect_gsm_map_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10078   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10079                                 IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
10080
10081   return offset;
10082 }
10083
10084 static const ber_sequence_t BearerServNotProvParam_sequence[] = {
10085   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10086   { 0, 0, 0, NULL }
10087 };
10088
10089 static int
10090 dissect_gsm_map_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10091   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10092                                 BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
10093
10094   return offset;
10095 }
10096
10097 static const ber_sequence_t TeleservNotProvParam_sequence[] = {
10098   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10099   { 0, 0, 0, NULL }
10100 };
10101
10102 static int
10103 dissect_gsm_map_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10104   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10105                                 TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
10106
10107   return offset;
10108 }
10109
10110 static const ber_sequence_t TracingBufferFullParam_sequence[] = {
10111   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10112   { 0, 0, 0, NULL }
10113 };
10114
10115 static int
10116 dissect_gsm_map_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10117   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10118                                 TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
10119
10120   return offset;
10121 }
10122
10123 static const ber_sequence_t NoRoamingNbParam_sequence[] = {
10124   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10125   { 0, 0, 0, NULL }
10126 };
10127
10128 static int
10129 dissect_gsm_map_NoRoamingNbParam(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                                 NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
10132
10133   return offset;
10134 }
10135
10136
10137 static const value_string gsm_map_T_absentSubscriberReason_vals[] = {
10138   {   0, "imsiDetach" },
10139   {   1, "restrictedArea" },
10140   {   2, "noPageResponse" },
10141   { 0, NULL }
10142 };
10143
10144
10145 static int
10146 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_) {
10147   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10148
10149   return offset;
10150 }
10151 static int dissect_absentSubscriberReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10152   return dissect_gsm_map_T_absentSubscriberReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberReason);
10153 }
10154
10155 static const ber_sequence_t AbsentSubscriberParam_sequence[] = {
10156   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10157   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl },
10158   { 0, 0, 0, NULL }
10159 };
10160
10161 static int
10162 dissect_gsm_map_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10163   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10164                                 AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
10165
10166   return offset;
10167 }
10168
10169 static const ber_sequence_t BusySubscriberParam_sequence[] = {
10170   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10171   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
10172   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Busy_impl },
10173   { 0, 0, 0, NULL }
10174 };
10175
10176 static int
10177 dissect_gsm_map_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10178   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10179                                 BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
10180
10181   return offset;
10182 }
10183
10184 static const ber_sequence_t NoSubscriberReplyParam_sequence[] = {
10185   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10186   { 0, 0, 0, NULL }
10187 };
10188
10189 static int
10190 dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10191   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10192                                 NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
10193
10194   return offset;
10195 }
10196
10197
10198 static const value_string gsm_map_CallBarringCause_vals[] = {
10199   {   0, "barringServiceActive" },
10200   {   1, "operatorBarring" },
10201   { 0, NULL }
10202 };
10203
10204
10205 static int
10206 dissect_gsm_map_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10207   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10208
10209   return offset;
10210 }
10211 static int dissect_callBarringCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10212   return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringCause);
10213 }
10214
10215 static const ber_sequence_t T_extensibleCallBarredParam_sequence[] = {
10216   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
10217   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10218   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl },
10219   { 0, 0, 0, NULL }
10220 };
10221
10222 static int
10223 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_) {
10224   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10225                                 T_extensibleCallBarredParam_sequence, hf_index, ett_gsm_map_T_extensibleCallBarredParam);
10226
10227   return offset;
10228 }
10229 static int dissect_extensibleCallBarredParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10230   return dissect_gsm_map_T_extensibleCallBarredParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleCallBarredParam);
10231 }
10232
10233
10234 static const value_string gsm_map_CallBarredParam_vals[] = {
10235   {   0, "callBarringCause" },
10236   {   1, "extensibleCallBarredParam" },
10237   { 0, NULL }
10238 };
10239
10240 static const ber_choice_t CallBarredParam_choice[] = {
10241   {   0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
10242   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleCallBarredParam },
10243   { 0, 0, 0, 0, NULL }
10244 };
10245
10246 static int
10247 dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10248   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
10249                               CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam);
10250
10251   return offset;
10252 }
10253
10254 static const ber_sequence_t ForwardingFailedParam_sequence[] = {
10255   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10256   { 0, 0, 0, NULL }
10257 };
10258
10259 static int
10260 dissect_gsm_map_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10261   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10262                                 ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
10263
10264   return offset;
10265 }
10266
10267 static const ber_sequence_t Or_NotAllowedParam_sequence[] = {
10268   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10269   { 0, 0, 0, NULL }
10270 };
10271
10272 static int
10273 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_) {
10274   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10275                                 Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
10276
10277   return offset;
10278 }
10279
10280 static const ber_sequence_t ForwardingViolationParam_sequence[] = {
10281   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10282   { 0, 0, 0, NULL }
10283 };
10284
10285 static int
10286 dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10287   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10288                                 ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
10289
10290   return offset;
10291 }
10292
10293
10294 static const value_string gsm_map_T_cug_RejectCause_vals[] = {
10295   {   0, "incomingCallsBarredWithinCUG" },
10296   {   1, "subscriberNotMemberOfCUG" },
10297   {   5, "requestedBasicServiceViolatesCUG-Constraints" },
10298   {   7, "calledPartySS-InteractionViolation" },
10299   { 0, NULL }
10300 };
10301
10302
10303 static int
10304 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_) {
10305   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10306
10307   return offset;
10308 }
10309 static int dissect_cug_RejectCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10310   return dissect_gsm_map_T_cug_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause);
10311 }
10312
10313 static const ber_sequence_t Cug_RejectParam_sequence[] = {
10314   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
10315   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10316   { 0, 0, 0, NULL }
10317 };
10318
10319 static int
10320 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_) {
10321   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10322                                 Cug_RejectParam_sequence, hf_index, ett_gsm_map_Cug_RejectParam);
10323
10324   return offset;
10325 }
10326
10327 static const ber_sequence_t Ati_NotAllowedParam_sequence[] = {
10328   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10329   { 0, 0, 0, NULL }
10330 };
10331
10332 static int
10333 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_) {
10334   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10335                                 Ati_NotAllowedParam_sequence, hf_index, ett_gsm_map_Ati_NotAllowedParam);
10336
10337   return offset;
10338 }
10339
10340 static const ber_sequence_t NoGroupCallNbParam_sequence[] = {
10341   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10342   { 0, 0, 0, NULL }
10343 };
10344
10345 static int
10346 dissect_gsm_map_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10347   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10348                                 NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
10349
10350   return offset;
10351 }
10352
10353 static const ber_sequence_t Ss_IncompatibilityCause_sequence[] = {
10354   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
10355   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
10356   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
10357   { 0, 0, 0, NULL }
10358 };
10359
10360 static int
10361 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_) {
10362   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10363                                 Ss_IncompatibilityCause_sequence, hf_index, ett_gsm_map_Ss_IncompatibilityCause);
10364
10365   return offset;
10366 }
10367
10368
10369 static const value_string gsm_map_Pw_RegistrationFailureCause_vals[] = {
10370   {   0, "undetermined" },
10371   {   1, "invalidFormat" },
10372   {   2, "newPasswordsMismatch" },
10373   { 0, NULL }
10374 };
10375
10376
10377 static int
10378 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_) {
10379   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10380
10381   return offset;
10382 }
10383
10384 static const ber_sequence_t ShortTermDenialParam_sequence[] = {
10385   { 0, 0, 0, NULL }
10386 };
10387
10388 static int
10389 dissect_gsm_map_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10390   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10391                                 ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
10392
10393   return offset;
10394 }
10395
10396 static const ber_sequence_t LongTermDenialParam_sequence[] = {
10397   { 0, 0, 0, NULL }
10398 };
10399
10400 static int
10401 dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10402   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10403                                 LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
10404
10405   return offset;
10406 }
10407
10408 static const ber_sequence_t SubBusyForMT_SMS_Param_sequence[] = {
10409   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10410   { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
10411   { 0, 0, 0, NULL }
10412 };
10413
10414 static int
10415 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_) {
10416   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10417                                 SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
10418
10419   return offset;
10420 }
10421
10422
10423 static const value_string gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals[] = {
10424   {   0, "memoryCapacityExceeded" },
10425   {   1, "equipmentProtocolError" },
10426   {   2, "equipmentNotSM-Equipped" },
10427   {   3, "unknownServiceCentre" },
10428   {   4, "sc-Congestion" },
10429   {   5, "invalidSME-Address" },
10430   {   6, "subscriberNotSC-Subscriber" },
10431   { 0, NULL }
10432 };
10433
10434
10435 static int
10436 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_) {
10437   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10438
10439   return offset;
10440 }
10441 static int dissect_sm_EnumeratedDeliveryFailureCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10442   return dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
10443 }
10444
10445
10446 static int
10447 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_) {
10448   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
10449                                     NULL);
10450
10451   return offset;
10452 }
10453 static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10454   return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_diagnosticInfo);
10455 }
10456
10457 static const ber_sequence_t Sm_DeliveryFailureCause_sequence[] = {
10458   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause },
10459   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo },
10460   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10461   { 0, 0, 0, NULL }
10462 };
10463
10464 static int
10465 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_) {
10466   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10467                                 Sm_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_Sm_DeliveryFailureCause);
10468
10469   return offset;
10470 }
10471
10472 static const ber_sequence_t MessageWaitListFullParam_sequence[] = {
10473   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10474   { 0, 0, 0, NULL }
10475 };
10476
10477 static int
10478 dissect_gsm_map_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
10479   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10480                                 MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
10481
10482   return offset;
10483 }
10484
10485 static const ber_sequence_t AbsentSubscriberSM_Param_sequence[] = {
10486   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
10487   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10488   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
10489   { 0, 0, 0, NULL }
10490 };
10491
10492 static int
10493 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_) {
10494   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10495                                 AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
10496
10497   return offset;
10498 }
10499
10500 static const ber_sequence_t UnauthorizedRequestingNetwork_Param_sequence[] = {
10501   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10502   { 0, 0, 0, NULL }
10503 };
10504
10505 static int
10506 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_) {
10507   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10508                                 UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
10509
10510   return offset;
10511 }
10512
10513
10514 static const value_string gsm_map_T_unauthorizedLCSClient_Diagnostic_vals[] = {
10515   {   0, "noAdditionalInformation" },
10516   {   1, "clientNotInMSPrivacyExceptionList" },
10517   {   2, "callToClientNotSetup" },
10518   {   3, "privacyOverrideNotApplicable" },
10519   {   4, "disallowedByLocalRegulatoryRequirements" },
10520   { 0, NULL }
10521 };
10522
10523
10524 static int
10525 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_) {
10526   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10527
10528   return offset;
10529 }
10530 static int dissect_unauthorizedLCSClient_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10531   return dissect_gsm_map_T_unauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic);
10532 }
10533
10534 static const ber_sequence_t UnauthorizedLCSClient_Param_sequence[] = {
10535   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl },
10536   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
10537   { 0, 0, 0, NULL }
10538 };
10539
10540 static int
10541 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_) {
10542   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10543                                 UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
10544
10545   return offset;
10546 }
10547
10548
10549 static const value_string gsm_map_T_positionMethodFailure_Diagnostic_vals[] = {
10550   {   0, "congestion" },
10551   {   1, "insufficientResources" },
10552   {   2, "insufficientMeasurementData" },
10553   {   3, "inconsistentMeasurementData" },
10554   {   4, "locationProcedureNotCompleted" },
10555   {   5, "locationProcedureNotSupportedByTargetMS" },
10556   {   6, "qoSNotAttainable" },
10557   {   7, "positionMethodNotAvailableInNetwork" },
10558   {   8, "positionMethodNotAvailableInLocationArea" },
10559   { 0, NULL }
10560 };
10561
10562
10563 static int
10564 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_) {
10565   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
10566
10567   return offset;
10568 }
10569 static int dissect_positionMethodFailure_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10570   return dissect_gsm_map_T_positionMethodFailure_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
10571 }
10572
10573 static const ber_sequence_t PositionMethodFailure_Param_sequence[] = {
10574   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
10575   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
10576   { 0, 0, 0, NULL }
10577 };
10578
10579 static int
10580 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_) {
10581   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10582                                 PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
10583
10584   return offset;
10585 }
10586
10587 static const ber_sequence_t UnknownOrUnreachableLCSClient_Param_sequence[] = {
10588   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
10589   { 0, 0, 0, NULL }
10590 };
10591
10592 static int
10593 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_) {
10594   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
10595                                 UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
10596
10597   return offset;
10598 }
10599
10600
10601 /*--- End of included file: packet-gsm_map-fn.c ---*/
10602
10603
10604 /* Stuff included from the "old" packet-gsm_map.c for tapping purposes */
10605 static gchar *
10606 my_match_strval(guint32 val, const value_string *vs, gint *idx)
10607 {
10608     gint        i = 0;
10609
10610     while (vs[i].strptr) {
10611         if (vs[i].value == val)
10612         {
10613             *idx = i;
10614             return(vs[i].strptr);
10615         }
10616
10617         i++;
10618     }
10619
10620     *idx = -1;
10621     return(NULL);
10622 }
10623 /* End includes from old" packet-gsm_map.c */
10624
10625 const value_string gsm_map_opr_code_strings[] = {
10626   {   2, "updateLocation" },
10627   {   3, "cancelLocation" },
10628   {   4, "provideRoamingNumber" },
10629   {   6, "resumeCallHandling" },
10630   {   7, "insertSubscriberData" },
10631   {   8, "deleteSubscriberData" },
10632   {   9, "sendParameters" },                                    /* map-ac infoRetrieval (14) version1 (1)*/
10633   {  10, "registerSS" },
10634   {  11, "eraseSS" },
10635   {  12, "activateSS" },
10636   {  13, "deactivateSS" },
10637   {  14, "interrogateSS" },
10638   {  17, "registerPassword" },
10639   {  18, "getPassword" },
10640   {  19, "processUnstructuredSS-Data" },                /* map-ac networkFunctionalSs (18) version1 (1) */
10641   {  22, "sendRoutingInfo" },
10642   {  23, "updateGprsLocation" },
10643   {  24, "sendRoutingInfoForGprs" },
10644   {  25, "failureReport" },
10645   {  26, "noteMsPresentForGprs" },
10646   {  28, "performHandover" },                                   /* map-ac handoverControl (11) version1 (1)*/
10647   {  29, "sendEndSignal" },
10648   {  30, "performSubsequentHandover" },                 /* map-ac handoverControl (11) version1 (1) */
10649   {  31, "provideSIWFSNumber" },
10650   {  32, "sIWFSSignallingModify" },
10651   {  33, "processAccessSignalling" },
10652   {  34, "forwardAccessSignalling" },
10653   {  35, "noteInternalHandover" },                              /* map-ac handoverControl (11) version1 (1) */
10654   {  37, "reset" },
10655   {  38, "forwardCheckSS-Indication" },
10656   {  39, "prepareGroupCall" },
10657   {  40, "sendGroupCallEndSignal" },
10658   {  41, "processGroupCallSignalling" },
10659   {  42, "forwardGroupCallSignalling" },
10660   {  43, "checkIMEI" },
10661   {  44, "mt-forwardSM" },
10662   {  45, "sendRoutingInfoForSM" },
10663   {  46, "mo-forwardSM" },
10664   {  47, "reportSM-DeliveryStatus" },
10665   {  48, "noteSubscriberPresent" },                             /* map-ac mwdMngt (24) version1 (1) */
10666   {  49, "alertServiceCentreWithoutResult" },   /* map-ac shortMsgAlert (23) version1 (1) */
10667   {  50, "activateTraceMode" },
10668   {  51, "deactivateTraceMode" },
10669   {  52, "traceSubscriberActivity" },                   /* map-ac handoverControl (11) version1 (1) */
10670   {  54, "beginSubscriberActivity" },                   /* map-ac networkFunctionalSs (18) version1 (1) */
10671   {  55, "sendIdentification" },
10672   {  56, "sendAuthenticationInfo" },
10673   {  57, "restoreData" },
10674   {  58, "sendIMSI" },
10675   {  59, "processUnstructuredSS-Request" },
10676   {  60, "unstructuredSS-Request" },
10677   {  61, "unstructuredSS-Notify" },
10678   {  63, "informServiceCentre" },
10679   {  64, "alertServiceCentre" },
10680   {  66, "readyForSM" },
10681   {  67, "purgeMS" },
10682   {  68, "prepareHandover" },
10683   {  69, "prepareSubsequentHandover" },
10684   {  70, "provideSubscriberInfo" },
10685   {  71, "anyTimeInterrogation" },
10686   {  72, "ss-InvocationNotification" },
10687   {  73, "setReportingState" },
10688   {  74, "statusReport" },
10689   {  75, "remoteUserFree" },
10690   {  76, "registerCC-Entry" },
10691   {  77, "eraseCC-Entry" },
10692   {  83, "provideSubscriberLocation" },
10693   {  85, "sendRoutingInfoForLCS" },
10694   {  86, "subscriberLocationReport" },
10695   { 0, NULL }
10696 };
10697 static const value_string gsm_map_err_code_string_vals[] = {
10698     { 1,        "Unknown Subscriber" },
10699     { 3,        "Unknown MSC" },
10700     { 5,        "Unidentified Subscriber" },
10701     { 6,        "Absent Subscriber SM" },
10702     { 7,        "Unknown Equipment" },
10703     { 8,        "Roaming Not Allowed" },
10704     { 9,        "Illegal Subscriber" },
10705     { 10,       "Bearer Service Not Provisioned" },
10706     { 11,       "Teleservice Not Provisioned" },
10707     { 12,       "Illegal Equipment" },
10708     { 13,       "Call Barred" },
10709     { 14,       "Forwarding Violation" },
10710     { 15,       "CUG Reject" },
10711     { 16,       "Illegal SS Operation" },
10712     { 17,       "SS Error Status" },
10713     { 18,       "SS Not Available" },
10714     { 19,       "SS Subscription Violation" },
10715     { 20,       "SS Incompatibility" },
10716     { 21,       "Facility Not Supported" },
10717     { 25,       "No Handover Number Available" },
10718     { 26,       "Subsequent Handover Failure" },
10719     { 27,       "Absent Subscriber" },
10720     { 28,       "Incompatible Terminal" },
10721     { 29,       "Short Term Denial" },
10722     { 30,       "Long Term Denial" },
10723     { 31,       "Subscriber Busy For MT SMS" },
10724     { 32,       "SM Delivery Failure" },
10725     { 33,       "Message Waiting List Full" },
10726     { 34,       "System Failure" },
10727     { 35,       "Data Missing" },
10728     { 36,       "Unexpected Data Value" },
10729     { 37,       "PW Registration Failure" },
10730     { 38,       "Negative PW Check" },
10731     { 39,       "No Roaming Number Available" },
10732     { 40,       "Tracing Buffer Full" },
10733     { 42,       "Target Cell Outside Group Call Area" },
10734     { 43,       "Number Of PW Attempts Violation" },
10735     { 44,       "Number Changed" },
10736     { 45,       "Busy Subscriber" },
10737     { 46,       "No Subscriber Reply" },
10738     { 47,       "Forwarding Failed" },
10739     { 48,       "OR Not Allowed" },
10740     { 49,       "ATI Not Allowed" },
10741     { 50,       "No Group Call Number Available" },
10742     { 51,       "Resource Limitation" },
10743     { 52,       "Unauthorized Requesting Network" },
10744     { 53,       "Unauthorized LCS Client" },
10745     { 54,       "Position Method Failure" },
10746     { 58,       "Unknown Or Unreachable LCS Client" },
10747     { 59,       "MM Event Not Supported" },
10748     { 60,       "ATSI Not Allowed" },
10749     { 61,       "ATM Not Allowed" },
10750     { 62,       "Information Not Available" },
10751     { 71,       "Unknown Alphabet" },
10752     { 72,       "USSD Busy" },
10753     { 120,      "Nbr Sb Exceeded" },
10754     { 121,      "Rejected By User" },
10755     { 122,      "Rejected By Network" },
10756     { 123,      "Deflection To Served Subscriber" },
10757     { 124,      "Special Service Code" },
10758     { 125,      "Invalid Deflected To Number" },
10759     { 126,      "Max Number Of MPTY Participants Exceeded" },
10760     { 127,      "Resources Not Available" },
10761     { 0, NULL }
10762 };
10763 static const true_false_string gsm_map_extension_value = {
10764   "No Extension",
10765   "Extension"
10766 };
10767 static const value_string gsm_map_nature_of_number_values[] = {
10768         {   0x00,       "unknown" },
10769         {   0x01,       "International Number" },
10770         {   0x02,       "National Significant Number" },
10771         {   0x03,       "Network Specific Number" },
10772         {   0x04,       "Subscriber Number" },
10773         {   0x05,       "Reserved" },
10774         {   0x06,       "Abbreviated Number" },
10775         {   0x07,       "Reserved for extension" },
10776         { 0, NULL }
10777 };
10778 static const value_string gsm_map_number_plan_values[] = {
10779         {   0x00,       "unknown" },
10780         {   0x01,       "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
10781         {   0x02,       "spare" },
10782         {   0x03,       "Data Numbering (ITU-T Rec. X.121)" },
10783         {   0x04,       "Telex Numbering (ITU-T Rec. F.69)" },
10784         {   0x05,       "spare" },
10785         {   0x06,       "Land Mobile Numbering (ITU-T Rec. E.212)" },
10786         {   0x07,       "spare" },
10787         {   0x08,       "National Numbering" },
10788         {   0x09,       "Private Numbering" },
10789         {   0x0f,       "Reserved for extension" },
10790         { 0, NULL }
10791 };
10792
10793 static const true_false_string gsm_map_Ss_Status_q_bit_values = {
10794   "Quiescent",
10795   "Operative"
10796 };
10797 static const true_false_string gsm_map_Ss_Status_p_values = {
10798   "Provisioned",
10799   "Not Provisioned"
10800 };
10801 static const true_false_string gsm_map_Ss_Status_r_values = {
10802   "Registered",
10803   "Not Registered"
10804 };
10805 static const true_false_string gsm_map_Ss_Status_a_values = {
10806   "Active",
10807   "not Active"
10808 };
10809
10810 static guint32 opcode=0;
10811
10812 static int
10813 dissect_gsm_map_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
10814   offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
10815
10816   if (check_col(pinfo->cinfo, COL_INFO)){
10817     col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
10818   }
10819
10820   return offset;
10821 }
10822
10823 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
10824
10825   guint8 octet;
10826
10827   switch(opcode){
10828   case  2: /*updateLocation*/
10829     offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
10830     break;
10831   case  3: /*cancelLocation*/
10832     offset=dissect_gsm_map_CancelLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
10833     break;
10834   case  4: /*provideRoamingNumber*/
10835     offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
10836     break;
10837   case  6: /*resumeCallHandling*/
10838     offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, pinfo, tree, -1);
10839     break;
10840   case  7: /*insertSubscriberData*/
10841     offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10842     break;
10843   case  8: /*deleteSubscriberData*/
10844     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10845     break;
10846         /* TODO find out why this isn't in the ASN1 file
10847   case  9: sendParameters
10848     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10849     break;
10850         */
10851   case  10: /*registerSS*/
10852     offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10853     break;
10854   case  11: /*eraseSS*/
10855     offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
10856     break;
10857   case 12: /*activateSS*/
10858     offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
10859     break;
10860   case 13: /*deactivateSS*/
10861     offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
10862     break;
10863   case 14: /*interrogateSS*/
10864     offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, pinfo, tree, -1);
10865     break;
10866   case 17: /*registerPassword*/
10867     offset=dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
10868     break;
10869   case 18: /*getPassword*/
10870     offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_getPassword);
10871     break;
10872   case 22: /*sendRoutingInfo*/
10873     offset=dissect_gsm_map_SendRoutingInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
10874     break;
10875   case 23: /*updateGprsLocation*/
10876     offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
10877     break;
10878   case 24: /*sendRoutingInfoForGprs*/
10879     offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
10880     break;
10881   case 25: /*failureReport*/
10882     offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, pinfo, tree, -1);
10883     break;
10884   case 26: /*noteMsPresentForGprs*/
10885     offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
10886     break;
10887   case 29: /*sendEndSignal*/
10888         octet = tvb_get_guint8(tvb,0) & 0xf;
10889         if ( octet == 3){ /* This is a V9 message ??? */
10890                 offset = offset +2;
10891                 offset=dissect_gsm_map_SendEndSignalV9Arg(TRUE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
10892         }else{
10893                 offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
10894         }
10895     break;
10896   case 31: /*provideSIWFSNumbe*/
10897     offset=dissect_gsm_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
10898     break;
10899   case 32: /*sIWFSSignallingModify*/
10900     offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, pinfo, tree, -1);
10901     break;
10902   case 33: /*processAccessSignalling*/
10903     offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
10904     break;
10905   case 34: /*forwardAccessSignalling*/
10906     offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
10907     break;
10908   case 37: /*reset*/
10909     offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, pinfo, tree, -1);
10910     break;
10911   case 38: /*forwardCheckSS-Indication*/
10912     return offset;
10913     break;
10914   case 39: /*prepareGroupCall*/
10915     offset=dissect_gsm_map_PrepareGroupCallArg(FALSE, tvb, offset, pinfo, tree, -1);
10916     break;
10917   case 40: /*sendGroupCallEndSignal*/
10918     dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, pinfo, tree, -1);
10919     break;
10920   case 42: /*processGroupCallSignalling*/
10921     offset=dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, pinfo, tree, -1);
10922     break;
10923   case 43: /*checkIMEI*/
10924     offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
10925     break;
10926   case 44: /*mt-forwardSM*/
10927     offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
10928     break;
10929   case 45: /*sendRoutingInfoForSM*/
10930     offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
10931     break;
10932   case 46: /*mo-forwardSM*/
10933     offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10934     break;
10935   case 47: /*reportSM-DeliveryStatus*/
10936     offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
10937     break;
10938   case 50: /*activateTraceMode*/
10939     offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
10940     break;
10941   case 51: /*deactivateTraceMode*/
10942     offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
10943     break;
10944   case 55: /*sendIdentification*/
10945     offset=dissect_gsm_map_Tmsi(FALSE, tvb, offset, pinfo, tree, -1);
10946     break;
10947   case 56: /*sendAuthenticationInfo*/
10948           if (application_context_version < 3 ){
10949                   offset=dissect_gsm_map_SendAuthenticationInfoArg(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
10950           }else{
10951                   offset=dissect_gsm_map_SendAuthenticationInfoArgV3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_SendAuthenticationInfoArg);
10952           }
10953         break;
10954   case 57: /*restoreData*/
10955         offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, pinfo, tree, -1);
10956         break;
10957   case 58: /*sendIMSI*/
10958         offset=dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, -1);
10959         break;
10960   case 59: /*processUnstructuredSS-Request*/
10961     offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10962     break;
10963   case 60: /*unstructuredSS-Request*/
10964     offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10965     break;
10966   case 61: /*unstructuredSS-Notify*/
10967     offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10968     break;
10969   case 63: /*informServiceCentre*/
10970     offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
10971     break;
10972   case 64: /*alertServiceCentre*/
10973     offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
10974     break;
10975   case 66: /*readyForSM*/
10976     offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10977     break;
10978   case 67: /*purgeMS*/
10979     offset=dissect_gsm_map_PurgeMS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10980     break;
10981   case 68: /*prepareHandover*/
10982         octet = tvb_get_guint8(tvb,0) & 0xf;
10983         if ( octet == 3){ /* This is a V9 message ??? */
10984                 offset = offset +2;
10985                 offset=dissect_gsm_map_PrepareHandoverV3Arg(TRUE, tvb, offset, pinfo, tree, -1);
10986         }else{
10987                 offset=dissect_gsm_map_PrepareHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10988         }
10989     break;
10990   case 69: /*prepareSubsequentHandover*/
10991     offset=dissect_gsm_map_PrepareSubsequentHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
10992     break;
10993   case 70: /*provideSubscriberInfo*/
10994     offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
10995     break;
10996   case 71: /*anyTimeInterrogation*/
10997     offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, pinfo, tree, -1);
10998     break;
10999   case 72: /*ss-InvocationNotificatio*/
11000     offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, pinfo, tree, -1);
11001     break;
11002   case 73: /*setReportingState*/
11003     offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, pinfo, tree, -1);
11004     break;
11005   case 74: /*statusReport*/
11006     offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, pinfo, tree, -1);
11007     break;
11008   case 75: /*remoteUserFree*/
11009     offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, pinfo, tree, -1);
11010     break;
11011   case 76: /*registerCC-Entry*/
11012     offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
11013     break;
11014   case 77: /*eraseCC-Entry*/
11015     offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
11016     break;
11017   case 83: /*provideSubscriberLocation*/
11018     offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, pinfo, tree, -1);
11019     break;
11020   case 85: /*sendRoutingInfoForLCS*/
11021     offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
11022     break;
11023   case 86: /*subscriberLocationReport*/
11024     offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, pinfo, tree, -1);
11025     break;
11026   default:
11027     proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
11028   }
11029   return offset;
11030 }
11031
11032
11033 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11034         
11035   guint8 octet;
11036   switch(opcode){
11037   case  2: /*updateLocation*/
11038     offset=dissect_gsm_map_UpdateLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
11039     break;
11040   case  3: /*cancelLocation*/
11041     offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
11042     break;
11043   case  4: /*provideRoamingNumber*/
11044     offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
11045     break;
11046   case  6: /*resumeCallHandling*/
11047     offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, pinfo, tree, -1);
11048     break;
11049   case  7: /*insertSubscriberData*/
11050     offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
11051     break;
11052   case  8: /*deleteSubscriberData*/
11053     offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
11054     break;
11055         /* TODO find out why this isn't in the ASN1 file
11056   case  9: sendParameters
11057     offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
11058     break;
11059         */
11060   case  10: /*registerSS*/
11061     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
11062     break;
11063   case  11: /*eraseSS*/
11064     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
11065     break;
11066   case 12: /*activateSS*/
11067     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
11068     break;
11069   case 13: /*deactivateSS*/
11070     offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
11071     break;
11072   case 14: /*interrogateSS*/
11073     offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, pinfo, tree, -1);
11074     break;
11075   case 17: /*registerPassword*/
11076     offset=dissect_gsm_map_NewPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
11077     break;
11078   case 18: /*getPassword*/
11079     offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_currentPassword);
11080     break;
11081   case 22: /*sendRoutingInfo*/
11082           /* This is done to get around a problem with IMPLICIT tag:s */
11083     offset = offset +2;
11084     offset=dissect_gsm_map_SendRoutingInfoRes(TRUE, tvb, offset, pinfo, tree, -1);
11085     break;
11086   case 23: /*updateGprsLocation*/
11087     offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
11088     break;
11089   case 24: /*sendRoutingInfoForGprs*/
11090     offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
11091     break;
11092   case 25: /*failureReport*/
11093     offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, pinfo, tree, -1);
11094     break;
11095   case 26: /*noteMsPresentForGprs*/
11096     offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
11097     break;
11098   case 29: /*sendEndSignal*/
11099           /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain 
11100            * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
11101            */
11102     offset=dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, -1);
11103     break;
11104   case 31: /*provideSIWFSNumbe*/
11105     offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
11106     break;
11107   case 32: /*provideSIWFSNumbe*/
11108     offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, pinfo, tree, -1);
11109     break;
11110   case 39: /*prepareGroupCall*/
11111     offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, pinfo, tree, -1);
11112     break;
11113   case 40: /*sendGroupCallEndSignal*/
11114     dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, pinfo, tree, -1);
11115     break;
11116   case 43: /*checkIMEI*/
11117     offset=dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, pinfo, tree, -1);
11118     break;
11119   case 45: /*sendRoutingInfoForSM*/
11120     offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
11121     break;
11122   case 46: /*mo-forwardSM*/
11123     offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
11124     break;
11125   case 48: /*reportSM-DeliveryStatus*/
11126     offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
11127     break;
11128   case 50: /*activateTraceMode*/
11129     offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
11130     break;
11131   case 51: /*deactivateTraceMode*/
11132     offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
11133     break;
11134   case 55: /*sendIdentification*/
11135     offset=dissect_gsm_map_SendIdentificationRes(FALSE, tvb, offset, pinfo, tree, -1);
11136     break;
11137   case 56:
11138           offset = dissect_gsm_map_SendAuthenticationInfoRes(FALSE, tvb, offset, pinfo, tree, -1);
11139   case 57: /*restoreData*/
11140         offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, pinfo, tree, -1);
11141         break;
11142   case 58: /*sendIMSI*/
11143         offset=dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree,hf_gsm_map_imsi);
11144         break;
11145   case 59: /*unstructuredSS-Request*/
11146     offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
11147     break;
11148   case 60: /*unstructuredSS-Request*/
11149     offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
11150     break;
11151   case 61: /*unstructuredSS-Notify*/
11152     /* TRUE ? */
11153     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
11154     break;
11155   case 66: /*readyForSM*/
11156     offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
11157     break;
11158   case 67: /*purgeMS*/
11159     offset=dissect_gsm_map_PurgeMS_Res(FALSE, tvb, offset, pinfo, tree, -1);
11160     break;
11161   case 68: /*prepareHandover*/
11162         octet = tvb_get_guint8(tvb,0) & 0xf;
11163         if ( octet == 3){ /* This is a V9 message ??? */
11164                 offset = offset +2;
11165                 offset=dissect_gsm_map_PrepareHandoverV3Res(TRUE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
11166         }else{
11167                 offset=dissect_gsm_map_PrepareHO_Res(FALSE, tvb, offset, pinfo, tree, -1);
11168         }
11169     break;
11170   case 69: /*prepareSubsequentHandover*/
11171      offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
11172     break;
11173   case 70: /*provideSubscriberInfo*/
11174     offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, pinfo, tree, -1);
11175     break;
11176   case 71: /*anyTimeInterrogation*/
11177     offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, pinfo, tree, -1);
11178     break;
11179   case 72: /*ss-InvocationNotificatio*/
11180     offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, pinfo, tree, -1);
11181     break;
11182   case 73: /*setReportingState*/
11183     offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, pinfo, tree, -1);
11184     break;
11185   case 74: /*statusReport*/
11186     offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, pinfo, tree, -1);
11187     break;
11188   case 75: /*remoteUserFree*/
11189     offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, pinfo, tree, -1);
11190     break;
11191   case 76: /*registerCC-Entry*/
11192     offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
11193     break;
11194   case 77: /*eraseCC-Entry*/
11195     offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
11196     break;
11197   case 83: /*provideSubscriberLocation*/
11198     offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, pinfo, tree, -1);
11199     break;
11200   case 85: /*sendRoutingInfoForLCS*/
11201     offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
11202     break;
11203   case 86: /*subscriberLocationReport*/
11204     offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, pinfo, tree, -1);
11205     break;
11206  default:
11207     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
11208   }
11209   return offset;
11210 }
11211
11212 static int 
11213 dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11214   return dissect_gsm_map_Opcode(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeCmd);
11215 }
11216
11217 static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11218   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_invokeid, NULL);
11219 }
11220
11221
11222 static const value_string InvokeId_vals[] = {
11223   {   0, "invokeid" },
11224   {   1, "absent" },
11225   { 0, NULL }
11226 };
11227
11228 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11229   return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absent);
11230 }
11231
11232
11233 static const ber_choice_t InvokeId_choice[] = {
11234   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
11235   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
11236   { 0, 0, 0, 0, NULL }
11237 };
11238
11239 static int
11240 dissect_gsm_map_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11241   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
11242                               InvokeId_choice, hf_index, ett_gsm_map_InvokeId);
11243
11244   return offset;
11245 }
11246 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11247   return dissect_gsm_map_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeId);
11248 }
11249
11250 static const ber_sequence_t InvokePDU_sequence[] = {
11251   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
11252   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
11253   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
11254   { 0, 0, 0, NULL }
11255 };
11256
11257 static int
11258 dissect_gsm_map_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11259   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
11260                                 InvokePDU_sequence, hf_index, ett_gsm_map_InvokePDU);
11261
11262   return offset;
11263 }
11264 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11265   return dissect_gsm_map_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invoke);
11266 }
11267
11268 static const ber_sequence_t ReturnResult_result_sequence[] = {
11269   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
11270   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
11271   { 0, 0, 0, NULL }
11272 };
11273 static int
11274 dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11275   offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
11276                                 ReturnResult_result_sequence, hf_gsm_map_returnResult_result, ett_gsm_map_ReturnResult_result);
11277
11278   return offset;
11279 }
11280
11281 static const ber_sequence_t ReturnResultPDU_sequence[] = {
11282   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
11283   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
11284   { 0, 0, 0, NULL }
11285 };
11286
11287 static int
11288 dissect_gsm_map_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11289   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
11290                                 ReturnResultPDU_sequence, hf_index, ett_gsm_map_ReturnResultPDU);
11291
11292   return offset;
11293 }
11294 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11295   return dissect_gsm_map_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResult);
11296 }
11297
11298 static int
11299 dissect_local_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11300   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_local_errorCode, NULL);
11301 }
11302
11303 static int
11304 dissect_global_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11305   offset =  dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
11306                                          hf_gsm_map_global_errorCode_oid, NULL);
11307   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_global_errorCode, NULL);
11308 }
11309 static const ber_choice_t ReturnError_result_choice[] = {
11310   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_local_errorCode },
11311   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_global_errorCode },
11312   {   0, 0, 0, 0, NULL }
11313 };
11314
11315
11316 static int
11317 dissect_ReturnError_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11318
11319   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
11320                               ReturnError_result_choice, hf_gsm_map_returnError_result, ett_gsm_map_ReturnError_result);
11321
11322   return offset;
11323 }
11324
11325 static const ber_sequence_t ReturnErrorPDU_sequence[] = {
11326   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
11327   { BER_CLASS_UNI, -1/*choice*/,BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ReturnError_result },
11328   { 0, 0, 0, NULL }
11329 };
11330
11331 static int
11332 dissect_gsm_map_ReturnErrorPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
11333   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
11334                                 ReturnErrorPDU_sequence, hf_index, ett_gsm_map_ReturnErrorPDU);
11335
11336   return offset;
11337 }
11338 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
11339   return dissect_gsm_map_ReturnErrorPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnError);
11340 }
11341
11342
11343 static const value_string GSMMAPPDU_vals[] = {
11344   {   1, "Invoke " },
11345   {   2, "ReturnResult " },
11346   {   3, "ReturnError " },
11347   {   4, "Reject " },
11348   { 0, NULL }
11349 };
11350
11351 static const ber_choice_t GSMMAPPDU_choice[] = {
11352   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
11353   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
11354   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
11355 #ifdef REMOVED
11356   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
11357 #endif
11358   { 0, 0, 0, 0, NULL }
11359 };
11360
11361 static guint8 gsmmap_pdu_type = 0;
11362 static guint8 gsm_map_pdu_size = 0;
11363
11364 static int
11365 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo , proto_tree *tree, int hf_index) {
11366
11367         char *version_ptr, *version_str;
11368
11369         opcode = 0;
11370         application_context_version = 0;
11371         if (pinfo->private_data != NULL){
11372                 version_ptr = strrchr(pinfo->private_data,'.');
11373                 version_str = g_strdup(version_ptr+1);
11374                 application_context_version = atoi(version_str);
11375         }
11376
11377   gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
11378   /* Get the length and add 2 */
11379   gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
11380
11381   if (check_col(pinfo->cinfo, COL_INFO)){
11382     col_set_str(pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, GSMMAPPDU_vals, "Unknown GSM-MAP PDU (%u)"));
11383   }
11384
11385   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
11386                               GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU);
11387
11388
11389   return offset;
11390 }
11391
11392
11393
11394
11395 static void
11396 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
11397 {
11398     proto_item          *item=NULL;
11399     proto_tree          *tree=NULL;
11400         /* Used for gsm_map TAP */
11401         static                  gsm_map_tap_rec_t tap_rec;
11402         gint                    op_idx;
11403     gchar                       *str = NULL;
11404
11405
11406     if (check_col(pinfo->cinfo, COL_PROTOCOL))
11407     {
11408         col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
11409     }
11410
11411         top_tree = parent_tree;
11412
11413     /* create display subtree for the protocol */
11414     if(parent_tree){
11415        item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
11416        tree = proto_item_add_subtree(item, ett_gsm_map);
11417     }
11418
11419     dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
11420         str = my_match_strval(opcode, gsm_map_opr_code_strings, &op_idx);
11421
11422         tap_rec.invoke = FALSE;
11423         if ( gsmmap_pdu_type  == 1 )
11424                 tap_rec.invoke = TRUE;
11425         tap_rec.opr_code_idx = op_idx;
11426         tap_rec.size = gsm_map_pdu_size;
11427
11428         tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
11429
11430
11431 }
11432
11433 static const value_string ssCode_vals[] = {
11434   { 0x00, "allSS - all SS" },
11435   { 0x10 ,"allLineIdentificationSS - all line identification SS" },
11436   { 0x11 ,"clip - calling line identification presentation" },
11437   { 0x12 ,"clir - calling line identification restriction" },
11438   { 0x13 ,"colp - connected line identification presentation" },
11439   { 0x14 ,"colr - connected line identification restriction" },
11440   { 0x15 ,"mci - malicious call identification" },
11441   { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
11442   { 0x19 ,"cnap - calling name presentation" },
11443   { 0x20 ,"allForwardingSS - all forwarding SS" },
11444   { 0x21 ,"cfu - call forwarding unconditional" },
11445   { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
11446   { 0x29 ,"cfb - call forwarding busy" },
11447   { 0x2a ,"cfnry - call forwarding on no reply" },
11448   { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
11449   { 0x24 ,"cd - call deflection" },
11450   { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
11451   { 0x31 ,"ect - explicit call transfer" },
11452   { 0x32 ,"mah - mobile access hunting" },
11453   { 0x40 ,"allCallCompletionSS - all Call completion SS" },
11454   { 0x41 ,"cw - call waiting" },
11455   { 0x42 ,"hold - call hold" },
11456   { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
11457   { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
11458   { 0x45 ,"mc - multicall" },
11459   { 0x50 ,"allMultiPartySS - all multiparty SS" },
11460   { 0x51 ,"multiPTY - multiparty" },
11461   { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
11462   { 0x61 ,"cug - closed user group" },
11463   { 0x70 ,"allChargingSS - all charging SS" },
11464   { 0x71 ,"aoci - advice of charge information" },
11465   { 0x72 ,"aocc - advice of charge charging" },
11466   { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
11467   { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
11468   { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
11469   { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
11470   { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
11471   { 0x91 ,"barringOfOutgoingCalls" },
11472   { 0x92 ,"baoc - barring of all outgoing calls" },
11473   { 0x93 ,"boic - barring of outgoing international calls" },
11474   { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
11475   { 0x99 ,"barringOfIncomingCalls" },
11476   { 0x9a ,"baic - barring of all incoming calls" },
11477   { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
11478   { 0xf0 ,"allPLMN-specificSS" },
11479   { 0xa0 ,"allCallPrioritySS - all call priority SS" },
11480   { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
11481   { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
11482   { 0xb1 ,"universal - allow location by any LCS client" },
11483   { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
11484   { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
11485   { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
11486   { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
11487   { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
11488   { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
11489   { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
11490
11491   { 0xf1 ,"plmn-specificSS-1" },
11492   { 0xf2 ,"plmn-specificSS-2" },
11493   { 0xf3 ,"plmn-specificSS-3" },
11494   { 0xf4 ,"plmn-specificSS-4" },
11495   { 0xf5 ,"plmn-specificSS-5" },
11496   { 0xf6 ,"plmn-specificSS-6" },
11497   { 0xf7 ,"plmn-specificSS-7" },
11498   { 0xf8 ,"plmn-specificSS-8" },
11499   { 0xf9 ,"plmn-specificSS-9" },
11500   { 0xfa ,"plmn-specificSS-a" },
11501   { 0xfb ,"plmn-specificSS-b" },
11502   { 0xfc ,"plmn-specificSS-c" },
11503   { 0xfd ,"plmn-specificSS-d" },
11504   { 0xfe ,"plmn-specificSS-e" },
11505   { 0xff ,"plmn-specificSS-f" },
11506   { 0, NULL }
11507 };
11508
11509 static const value_string Teleservice_vals[] = {
11510 {0x00, "allTeleservices" },
11511 {0x10, "allSpeechTransmissionServices" },
11512 {0x11, "telephony" },
11513 {0x12, "emergencyCalls" },
11514 {0x20, "allShortMessageServices" },
11515 {0x21, "shortMessageMT-PP" },
11516 {0x22, "shortMessageMO-PP" },
11517 {0x60, "allFacsimileTransmissionServices" },
11518 {0x61, "facsimileGroup3AndAlterSpeech" },
11519 {0x62, "automaticFacsimileGroup3" },
11520 {0x63, "facsimileGroup4" },
11521
11522 {0x70, "allDataTeleservices" },
11523 {0x80, "allTeleservices-ExeptSMS" },
11524
11525 {0x90, "allVoiceGroupCallServices" },
11526 {0x91, "voiceGroupCall" },
11527 {0x92, "voiceBroadcastCall" },
11528
11529 {0xd0, "allPLMN-specificTS" },
11530 {0xd1, "plmn-specificTS-1" },
11531 {0xd2, "plmn-specificTS-2" },
11532 {0xd3, "plmn-specificTS-3" },
11533 {0xd4, "plmn-specificTS-4" },
11534 {0xd5, "plmn-specificTS-5" },
11535 {0xd6, "plmn-specificTS-6" },
11536 {0xd7, "plmn-specificTS-7" },
11537 {0xd8, "plmn-specificTS-8" },
11538 {0xd9, "plmn-specificTS-9" },
11539 {0xda, "plmn-specificTS-A" },
11540 {0xdb, "plmn-specificTS-B" },
11541 {0xdc, "plmn-specificTS-C" },
11542 {0xdd, "plmn-specificTS-D" },
11543 {0xde, "plmn-specificTS-E" },
11544 {0xdf, "plmn-specificTS-F" },
11545   { 0, NULL }
11546 };
11547 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
11548 void proto_reg_handoff_gsm_map(void) {
11549     dissector_handle_t  map_handle;
11550         static int map_prefs_initialized = FALSE;
11551
11552     map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
11553
11554         if (!map_prefs_initialized) {
11555                 map_prefs_initialized = TRUE;
11556         }
11557         else {
11558                 dissector_delete("tcap.itu_ssn", tcap_itu_ssn1, map_handle);
11559                 dissector_delete("tcap.itu_ssn", tcap_itu_ssn2, map_handle);
11560                 dissector_delete("tcap.itu_ssn", tcap_itu_ssn3, map_handle);
11561                 dissector_delete("tcap.itu_ssn", tcap_itu_ssn4, map_handle);
11562         }
11563                 /* Set our sub system number for future use */
11564         tcap_itu_ssn1 = global_tcap_itu_ssn1;
11565         tcap_itu_ssn2 = global_tcap_itu_ssn2;
11566         tcap_itu_ssn3 = global_tcap_itu_ssn3;
11567         tcap_itu_ssn4 = global_tcap_itu_ssn4;
11568
11569     dissector_add("tcap.itu_ssn", tcap_itu_ssn1, map_handle);
11570     dissector_add("tcap.itu_ssn", tcap_itu_ssn2, map_handle);
11571     dissector_add("tcap.itu_ssn", tcap_itu_ssn3, map_handle);
11572     dissector_add("tcap.itu_ssn", tcap_itu_ssn4, map_handle);
11573 }
11574
11575 /*--- proto_register_gsm_map -------------------------------------------*/
11576 void proto_register_gsm_map(void) {
11577         module_t *gsm_map_module;
11578
11579   /* List of fields */
11580   static hf_register_info hf[] = {
11581     { &hf_gsm_map_invokeCmd,
11582       { "invokeCmd", "gsm_map.invokeCmd",
11583         FT_UINT32, BASE_DEC, VALS(gsm_map_opr_code_strings), 0,
11584         "InvokePDU/invokeCmd", HFILL }},
11585     { &hf_gsm_map_invokeid,
11586       { "invokeid", "gsm_map.invokeid",
11587         FT_INT32, BASE_DEC, NULL, 0,
11588         "InvokeId/invokeid", HFILL }},
11589     { &hf_gsm_map_absent,
11590       { "absent", "gsm_map.absent",
11591         FT_NONE, BASE_NONE, NULL, 0,
11592         "InvokeId/absent", HFILL }},
11593     { &hf_gsm_map_invokeId,
11594       { "invokeId", "gsm_map.invokeId",
11595         FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
11596         "InvokePDU/invokeId", HFILL }},
11597         { &hf_gsm_map_SendAuthenticationInfoArg,
11598       { "SendAuthenticationInfoArg", "gsm_map.SendAuthenticationInfoArg",
11599         FT_BYTES, BASE_NONE, NULL, 0,
11600         "SendAuthenticationInfoArg", HFILL }},
11601     { &hf_gsm_map_currentPassword,
11602       { "currentPassword", "gsm_map.currentPassword",
11603         FT_STRING, BASE_NONE, NULL, 0,
11604         "", HFILL }},
11605         { &hf_gsm_mapSendEndSignal,
11606       { "mapSendEndSignalArg", "gsm_map.mapsendendsignalarg",
11607         FT_BYTES, BASE_NONE, NULL, 0,
11608         "mapSendEndSignalArg", HFILL }},
11609     { &hf_gsm_map_invoke,
11610       { "invoke", "gsm_map.invoke",
11611         FT_NONE, BASE_NONE, NULL, 0,
11612         "GSMMAPPDU/invoke", HFILL }},
11613     { &hf_gsm_map_returnResult,
11614       { "returnResult", "gsm_map.returnResult",
11615         FT_NONE, BASE_NONE, NULL, 0,
11616         "GSMMAPPDU/returnResult", HFILL }},
11617         {&hf_gsm_map_returnResult_result,
11618       { "returnResult_result", "gsm_map.returnresultresult",
11619         FT_BYTES, BASE_NONE, NULL, 0,
11620         "returnResult_result", HFILL }},
11621         {&hf_gsm_map_returnError_result,
11622       { "returnError_result", "gsm_map.returnerrorresult",
11623         FT_UINT32, BASE_DEC, NULL, 0,
11624         "returnError_result", HFILL }},
11625         {&hf_gsm_map_returnError,
11626       { "returnError", "gsm_map.returnError",
11627         FT_NONE, BASE_NONE, NULL, 0,
11628         "GSMMAPPDU/returnError", HFILL }},
11629         {&hf_gsm_map_local_errorCode,
11630       { "Local Error Code", "gsm_map.localerrorCode",
11631         FT_UINT32, BASE_DEC, VALS(gsm_map_err_code_string_vals), 0,
11632         "localerrorCode", HFILL }},
11633         {&hf_gsm_map_global_errorCode_oid,
11634       { "Global Error Code OID", "gsm_map.hlobalerrorCodeoid",
11635         FT_BYTES, BASE_NONE, NULL, 0,
11636         "globalerrorCodeoid", HFILL }},
11637         {&hf_gsm_map_global_errorCode,
11638       { "Global Error Code", "gsm_map.globalerrorCode",
11639         FT_UINT32, BASE_DEC, NULL, 0,
11640         "globalerrorCode", HFILL }},
11641     { &hf_gsm_map_getPassword,
11642       { "Password", "gsm_map.password",
11643         FT_UINT8, BASE_DEC, VALS(gsm_map_GetPasswordArg_vals), 0,
11644         "Password", HFILL }},
11645     { &hf_gsm_map_extension,
11646       { "Extension", "gsm_map.extension",
11647         FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
11648         "Extension", HFILL }},
11649     { &hf_gsm_map_nature_of_number,
11650       { "Nature of number", "gsm_map.nature_of_number",
11651         FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
11652         "ature of number", HFILL }},
11653     { &hf_gsm_map_number_plan,
11654       { "Number plan", "gsm_map.number_plan",
11655         FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
11656         "Number plan", HFILL }},
11657         { &hf_gsm_map_misdn_digits,
11658       { "Misdn digits", "gsm_map.misdn_digits",
11659         FT_STRING, BASE_NONE, NULL, 0,
11660         "Misdn digits", HFILL }},
11661         { &hf_gsm_map_servicecentreaddress_digits,
11662       { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
11663         FT_STRING, BASE_NONE, NULL, 0,
11664         "ServiceCentreAddress digits", HFILL }},
11665         { &hf_gsm_map_map_gmsc_address_digits,
11666       { "Gmsc Address digits digits", "gsm_map.gmsc_address_digits",
11667         FT_STRING, BASE_NONE, NULL, 0,
11668         "Gmsc Address digits", HFILL }},
11669         { &hf_gsm_map_imsi_digits,
11670       { "Imsi digits", "gsm_map.imsi_digits",
11671         FT_STRING, BASE_NONE, NULL, 0,
11672         "Imsi digits", HFILL }},
11673         {&hf_gsm_map_map_RoamingNumber_digits,
11674       { "RoamingNumber digits", "gsm_map.RoamingNumber_digits",
11675         FT_STRING, BASE_NONE, NULL, 0,
11676         "RoamingNumber digits", HFILL }},
11677         {&hf_gsm_map_map_hlr_number_digits,
11678       { "Hlr-Number digits", "gsm_map.hlr_number_digits",
11679         FT_STRING, BASE_NONE, NULL, 0,
11680         "Hlr-Number digits", HFILL }},
11681         {&hf_gsm_map_map_ForwardedToNumber_digits,
11682       { "Forwarded To Number digits", "gsm_map.forwardedtonumber_digits",
11683         FT_STRING, BASE_NONE, NULL, 0,
11684         "Forwarded To Number digits", HFILL }},
11685         { &hf_gsm_map_Ss_Status_unused,
11686       { "Unused", "gsm_map.unused",
11687         FT_UINT8, BASE_HEX, NULL, 0xf0,
11688         "Unused", HFILL }},
11689         { &hf_gsm_map_Ss_Status_q_bit,
11690       { "Q bit", "gsm_map.ss_status_q_bit",
11691         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
11692         "Q bit", HFILL }},
11693         { &hf_gsm_map_Ss_Status_p_bit,
11694       { "P bit", "gsm_map.ss_status_p_bit",
11695         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
11696         "P bit", HFILL }},
11697         { &hf_gsm_map_Ss_Status_r_bit,
11698       { "R bit", "ss_status_r_bit",
11699         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
11700         "R bit", HFILL }},
11701         { &hf_gsm_map_Ss_Status_a_bit,
11702       { "A bit", "ss_status_a_bit",
11703         FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
11704         "A bit", HFILL }},
11705
11706
11707 /*--- Included file: packet-gsm_map-hfarr.c ---*/
11708
11709     { &hf_gsm_map_protocolId,
11710       { "protocolId", "gsm_map.protocolId",
11711         FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
11712         "Bss-APDU/protocolId", HFILL }},
11713     { &hf_gsm_map_signalInfo,
11714       { "signalInfo", "gsm_map.signalInfo",
11715         FT_BYTES, BASE_HEX, NULL, 0,
11716         "Bss-APDU/signalInfo", HFILL }},
11717     { &hf_gsm_map_extensionContainer,
11718       { "extensionContainer", "gsm_map.extensionContainer",
11719         FT_NONE, BASE_NONE, NULL, 0,
11720         "", HFILL }},
11721     { &hf_gsm_map_accessNetworkProtocolId,
11722       { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
11723         FT_UINT32, BASE_DEC, VALS(gsm_map_T_accessNetworkProtocolId_vals), 0,
11724         "An-APDU/accessNetworkProtocolId", HFILL }},
11725     { &hf_gsm_map_signalInfo2,
11726       { "signalInfo2", "gsm_map.signalInfo2",
11727         FT_BYTES, BASE_HEX, NULL, 0,
11728         "An-APDU/signalInfo2", HFILL }},
11729     { &hf_gsm_map_supportedCamelPhases,
11730       { "supportedCamelPhases", "gsm_map.supportedCamelPhases",
11731         FT_BYTES, BASE_HEX, NULL, 0,
11732         "", HFILL }},
11733     { &hf_gsm_map_solsaSupportIndicator,
11734       { "solsaSupportIndicator", "gsm_map.solsaSupportIndicator",
11735         FT_NONE, BASE_NONE, NULL, 0,
11736         "", HFILL }},
11737     { &hf_gsm_map_istSupportIndicator,
11738       { "istSupportIndicator", "gsm_map.istSupportIndicator",
11739         FT_UINT32, BASE_DEC, VALS(gsm_map_T_istSupportIndicator_vals), 0,
11740         "Vlr-Capability/istSupportIndicator", HFILL }},
11741     { &hf_gsm_map_superChargerSupportedInServingNetworkEntity,
11742       { "superChargerSupportedInServingNetworkEntity", "gsm_map.superChargerSupportedInServingNetworkEntity",
11743         FT_UINT32, BASE_DEC, VALS(gsm_map_T_superChargerSupportedInServingNetworkEntity_vals), 0,
11744         "Vlr-Capability/superChargerSupportedInServingNetworkEntity", HFILL }},
11745     { &hf_gsm_map_sendSubscriberData,
11746       { "sendSubscriberData", "gsm_map.sendSubscriberData",
11747         FT_NONE, BASE_NONE, NULL, 0,
11748         "Vlr-Capability/superChargerSupportedInServingNetworkEntity/sendSubscriberData", HFILL }},
11749     { &hf_gsm_map_subscriberDataStored,
11750       { "subscriberDataStored", "gsm_map.subscriberDataStored",
11751         FT_BYTES, BASE_HEX, NULL, 0,
11752         "Vlr-Capability/superChargerSupportedInServingNetworkEntity/subscriberDataStored", HFILL }},
11753     { &hf_gsm_map_longFTN_Supported,
11754       { "longFTN-Supported", "gsm_map.longFTN_Supported",
11755         FT_NONE, BASE_NONE, NULL, 0,
11756         "", HFILL }},
11757     { &hf_gsm_map_supportedLCS_CapabilitySets,
11758       { "supportedLCS-CapabilitySets", "gsm_map.supportedLCS_CapabilitySets",
11759         FT_BYTES, BASE_HEX, NULL, 0,
11760         "Vlr-Capability/supportedLCS-CapabilitySets", HFILL }},
11761     { &hf_gsm_map_offeredCamel4CSIs,
11762       { "offeredCamel4CSIs", "gsm_map.offeredCamel4CSIs",
11763         FT_BYTES, BASE_HEX, NULL, 0,
11764         "Vlr-Capability/offeredCamel4CSIs", HFILL }},
11765     { &hf_gsm_map_imsi,
11766       { "imsi", "gsm_map.imsi",
11767         FT_BYTES, BASE_HEX, NULL, 0,
11768         "", HFILL }},
11769     { &hf_gsm_map_msc_Number,
11770       { "msc-Number", "gsm_map.msc_Number",
11771         FT_BYTES, BASE_HEX, NULL, 0,
11772         "", HFILL }},
11773     { &hf_gsm_map_vlr_Number,
11774       { "vlr-Number", "gsm_map.vlr_Number",
11775         FT_BYTES, BASE_HEX, NULL, 0,
11776         "", HFILL }},
11777     { &hf_gsm_map_lmsi,
11778       { "lmsi", "gsm_map.lmsi",
11779         FT_BYTES, BASE_HEX, NULL, 0,
11780         "", HFILL }},
11781     { &hf_gsm_map_vlr_Capability,
11782       { "vlr-Capability", "gsm_map.vlr_Capability",
11783         FT_NONE, BASE_NONE, NULL, 0,
11784         "", HFILL }},
11785     { &hf_gsm_map_informPreviousNetworkEntity,
11786       { "informPreviousNetworkEntity", "gsm_map.informPreviousNetworkEntity",
11787         FT_NONE, BASE_NONE, NULL, 0,
11788         "UpdateLocationArg/informPreviousNetworkEntity", HFILL }},
11789     { &hf_gsm_map_cs_LCS_NotSupportedByUE,
11790       { "cs-LCS-NotSupportedByUE", "gsm_map.cs_LCS_NotSupportedByUE",
11791         FT_NONE, BASE_NONE, NULL, 0,
11792         "UpdateLocationArg/cs-LCS-NotSupportedByUE", HFILL }},
11793     { &hf_gsm_map_v_gmlc_Address,
11794       { "v-gmlc-Address", "gsm_map.v_gmlc_Address",
11795         FT_BYTES, BASE_HEX, NULL, 0,
11796         "UpdateLocationArg/v-gmlc-Address", HFILL }},
11797     { &hf_gsm_map_add_info,
11798       { "add-info", "gsm_map.add_info",
11799         FT_NONE, BASE_NONE, NULL, 0,
11800         "UpdateLocationArg/add-info", HFILL }},
11801     { &hf_gsm_map_imeisv,
11802       { "imeisv", "gsm_map.imeisv",
11803         FT_BYTES, BASE_HEX, NULL, 0,
11804         "UpdateLocationArg/add-info/imeisv", HFILL }},
11805     { &hf_gsm_map_skipSubscriberDataUpdate,
11806       { "skipSubscriberDataUpdate", "gsm_map.skipSubscriberDataUpdate",
11807         FT_NONE, BASE_NONE, NULL, 0,
11808         "UpdateLocationArg/add-info/skipSubscriberDataUpdate", HFILL }},
11809     { &hf_gsm_map_hlr_Number,
11810       { "hlr-Number", "gsm_map.hlr_Number",
11811         FT_BYTES, BASE_HEX, NULL, 0,
11812         "", HFILL }},
11813     { &hf_gsm_map_PrivateExtensionList_item,
11814       { "Item", "gsm_map.PrivateExtensionList_item",
11815         FT_NONE, BASE_NONE, NULL, 0,
11816         "PrivateExtensionList/_item", HFILL }},
11817     { &hf_gsm_map_extId,
11818       { "extId", "gsm_map.extId",
11819         FT_STRING, BASE_NONE, NULL, 0,
11820         "PrivateExtension/extId", HFILL }},
11821     { &hf_gsm_map_extType,
11822       { "extType", "gsm_map.extType",
11823         FT_BYTES, BASE_HEX, NULL, 0,
11824         "PrivateExtension/extType", HFILL }},
11825     { &hf_gsm_map_identity,
11826       { "identity", "gsm_map.identity",
11827         FT_UINT32, BASE_DEC, VALS(gsm_map_T_identity_vals), 0,
11828         "CancelLocationArg/identity", HFILL }},
11829     { &hf_gsm_map_imsi_WithLMSI,
11830       { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
11831         FT_NONE, BASE_NONE, NULL, 0,
11832         "CancelLocationArg/identity/imsi-WithLMSI", HFILL }},
11833     { &hf_gsm_map_cancellationType,
11834       { "cancellationType", "gsm_map.cancellationType",
11835         FT_UINT32, BASE_DEC, VALS(gsm_map_CancellationType_vals), 0,
11836         "CancelLocationArg/cancellationType", HFILL }},
11837     { &hf_gsm_map_sgsn_Number,
11838       { "sgsn-Number", "gsm_map.sgsn_Number",
11839         FT_BYTES, BASE_HEX, NULL, 0,
11840         "", HFILL }},
11841     { &hf_gsm_map_freezeTMSI,
11842       { "freezeTMSI", "gsm_map.freezeTMSI",
11843         FT_NONE, BASE_NONE, NULL, 0,
11844         "PurgeMS-Res/freezeTMSI", HFILL }},
11845     { &hf_gsm_map_freezeP_TMSI,
11846       { "freezeP-TMSI", "gsm_map.freezeP_TMSI",
11847         FT_NONE, BASE_NONE, NULL, 0,
11848         "PurgeMS-Res/freezeP-TMSI", HFILL }},
11849     { &hf_gsm_map_sendId_authenticationSetList,
11850       { "authenticationSetList", "gsm_map.authenticationSetList",
11851         FT_NONE, BASE_NONE, NULL, 0,
11852         "SendIdentificationRes/authenticationSetList", HFILL }},
11853     { &hf_gsm_map_authenticationSetList_item,
11854       { "Item", "gsm_map.authenticationSetList_item",
11855         FT_NONE, BASE_NONE, NULL, 0,
11856         "SendIdentificationRes/authenticationSetList/_item", HFILL }},
11857     { &hf_gsm_map_rand,
11858       { "rand", "gsm_map.rand",
11859         FT_BYTES, BASE_HEX, NULL, 0,
11860         "", HFILL }},
11861     { &hf_gsm_map_sres,
11862       { "sres", "gsm_map.sres",
11863         FT_BYTES, BASE_HEX, NULL, 0,
11864         "", HFILL }},
11865     { &hf_gsm_map_kc,
11866       { "kc", "gsm_map.kc",
11867         FT_BYTES, BASE_HEX, NULL, 0,
11868         "", HFILL }},
11869     { &hf_gsm_map_targetCellId,
11870       { "targetCellId", "gsm_map.targetCellId",
11871         FT_BYTES, BASE_HEX, NULL, 0,
11872         "", HFILL }},
11873     { &hf_gsm_map_ho_NumberNotRequired,
11874       { "ho-NumberNotRequired", "gsm_map.ho_NumberNotRequired",
11875         FT_NONE, BASE_NONE, NULL, 0,
11876         "", HFILL }},
11877     { &hf_gsm_map_bss_APDU,
11878       { "bss-APDU", "gsm_map.bss_APDU",
11879         FT_NONE, BASE_NONE, NULL, 0,
11880         "", HFILL }},
11881     { &hf_gsm_map_targetRNCId,
11882       { "targetRNCId", "gsm_map.targetRNCId",
11883         FT_BYTES, BASE_HEX, NULL, 0,
11884         "PrepareHandoverV3Arg/targetRNCId", HFILL }},
11885     { &hf_gsm_map_an_APDU,
11886       { "an-APDU", "gsm_map.an_APDU",
11887         FT_NONE, BASE_NONE, NULL, 0,
11888         "", HFILL }},
11889     { &hf_gsm_map_multipleBearerRequested,
11890       { "multipleBearerRequested", "gsm_map.multipleBearerRequested",
11891         FT_NONE, BASE_NONE, NULL, 0,
11892         "PrepareHandoverV3Arg/multipleBearerRequested", HFILL }},
11893     { &hf_gsm_map_integrityProtectionInfo,
11894       { "integrityProtectionInfo", "gsm_map.integrityProtectionInfo",
11895         FT_BYTES, BASE_HEX, NULL, 0,
11896         "PrepareHandoverV3Arg/integrityProtectionInfo", HFILL }},
11897     { &hf_gsm_map_encryptionInfo,
11898       { "encryptionInfo", "gsm_map.encryptionInfo",
11899         FT_BYTES, BASE_HEX, NULL, 0,
11900         "PrepareHandoverV3Arg/encryptionInfo", HFILL }},
11901     { &hf_gsm_map_radioResourceInformation,
11902       { "radioResourceInformation", "gsm_map.radioResourceInformation",
11903         FT_BYTES, BASE_HEX, NULL, 0,
11904         "", HFILL }},
11905     { &hf_gsm_map_allowedGSM_Algorithms,
11906       { "allowedGSM-Algorithms", "gsm_map.allowedGSM_Algorithms",
11907         FT_BYTES, BASE_HEX, NULL, 0,
11908         "PrepareHandoverV3Arg/allowedGSM-Algorithms", HFILL }},
11909     { &hf_gsm_map_allowedUMTS_Algorithms,
11910       { "allowedUMTS-Algorithms", "gsm_map.allowedUMTS_Algorithms",
11911         FT_NONE, BASE_NONE, NULL, 0,
11912         "PrepareHandoverV3Arg/allowedUMTS-Algorithms", HFILL }},
11913     { &hf_gsm_map_integrityProtectionAlgorithms,
11914       { "integrityProtectionAlgorithms", "gsm_map.integrityProtectionAlgorithms",
11915         FT_BYTES, BASE_HEX, NULL, 0,
11916         "PrepareHandoverV3Arg/allowedUMTS-Algorithms/integrityProtectionAlgorithms", HFILL }},
11917     { &hf_gsm_map_encryptionAlgorithms,
11918       { "encryptionAlgorithms", "gsm_map.encryptionAlgorithms",
11919         FT_BYTES, BASE_HEX, NULL, 0,
11920         "PrepareHandoverV3Arg/allowedUMTS-Algorithms/encryptionAlgorithms", HFILL }},
11921     { &hf_gsm_map_radioResourceList,
11922       { "radioResourceList", "gsm_map.radioResourceList",
11923         FT_NONE, BASE_NONE, NULL, 0,
11924         "PrepareHandoverV3Arg/radioResourceList", HFILL }},
11925     { &hf_gsm_map_radioResourceList_item,
11926       { "Item", "gsm_map.radioResourceList_item",
11927         FT_NONE, BASE_NONE, NULL, 0,
11928         "PrepareHandoverV3Arg/radioResourceList/_item", HFILL }},
11929     { &hf_gsm_map_rab_Id,
11930       { "rab-Id", "gsm_map.rab_Id",
11931         FT_UINT32, BASE_DEC, NULL, 0,
11932         "", HFILL }},
11933     { &hf_gsm_map_bssmap_ServiceHandover,
11934       { "bssmap-ServiceHandover", "gsm_map.bssmap_ServiceHandover",
11935         FT_BYTES, BASE_HEX, NULL, 0,
11936         "", HFILL }},
11937     { &hf_gsm_map_ranap_ServiceHandover,
11938       { "ranap-ServiceHandover", "gsm_map.ranap_ServiceHandover",
11939         FT_BYTES, BASE_HEX, NULL, 0,
11940         "PrepareHandoverV3Arg/ranap-ServiceHandover", HFILL }},
11941     { &hf_gsm_map_bssmap_ServiceHandoverList,
11942       { "bssmap-ServiceHandoverList", "gsm_map.bssmap_ServiceHandoverList",
11943         FT_NONE, BASE_NONE, NULL, 0,
11944         "PrepareHandoverV3Arg/bssmap-ServiceHandoverList", HFILL }},
11945     { &hf_gsm_map_bssmap_ServiceHandoverList_item,
11946       { "Item", "gsm_map.bssmap_ServiceHandoverList_item",
11947         FT_NONE, BASE_NONE, NULL, 0,
11948         "PrepareHandoverV3Arg/bssmap-ServiceHandoverList/_item", HFILL }},
11949     { &hf_gsm_map_asciCallReference,
11950       { "asciCallReference", "gsm_map.asciCallReference",
11951         FT_BYTES, BASE_HEX, NULL, 0,
11952         "", HFILL }},
11953     { &hf_gsm_map_geran_classmark,
11954       { "geran-classmark", "gsm_map.geran_classmark",
11955         FT_BYTES, BASE_HEX, NULL, 0,
11956         "PrepareHandoverV3Arg/geran-classmark", HFILL }},
11957     { &hf_gsm_map_iuCurrentlyUsedCodec,
11958       { "iuCurrentlyUsedCodec", "gsm_map.iuCurrentlyUsedCodec",
11959         FT_BYTES, BASE_HEX, NULL, 0,
11960         "PrepareHandoverV3Arg/iuCurrentlyUsedCodec", HFILL }},
11961     { &hf_gsm_map_iuSupportedCodecsList,
11962       { "iuSupportedCodecsList", "gsm_map.iuSupportedCodecsList",
11963         FT_NONE, BASE_NONE, NULL, 0,
11964         "PrepareHandoverV3Arg/iuSupportedCodecsList", HFILL }},
11965     { &hf_gsm_map_utranCodecList,
11966       { "utranCodecList", "gsm_map.utranCodecList",
11967         FT_NONE, BASE_NONE, NULL, 0,
11968         "PrepareHandoverV3Arg/iuSupportedCodecsList/utranCodecList", HFILL }},
11969     { &hf_gsm_map_codec1,
11970       { "codec1", "gsm_map.codec1",
11971         FT_BYTES, BASE_HEX, NULL, 0,
11972         "", HFILL }},
11973     { &hf_gsm_map_codec2,
11974       { "codec2", "gsm_map.codec2",
11975         FT_BYTES, BASE_HEX, NULL, 0,
11976         "", HFILL }},
11977     { &hf_gsm_map_codec3,
11978       { "codec3", "gsm_map.codec3",
11979         FT_BYTES, BASE_HEX, NULL, 0,
11980         "", HFILL }},
11981     { &hf_gsm_map_codec4,
11982       { "codec4", "gsm_map.codec4",
11983         FT_BYTES, BASE_HEX, NULL, 0,
11984         "", HFILL }},
11985     { &hf_gsm_map_codec5,
11986       { "codec5", "gsm_map.codec5",
11987         FT_BYTES, BASE_HEX, NULL, 0,
11988         "", HFILL }},
11989     { &hf_gsm_map_codec6,
11990       { "codec6", "gsm_map.codec6",
11991         FT_BYTES, BASE_HEX, NULL, 0,
11992         "", HFILL }},
11993     { &hf_gsm_map_codec7,
11994       { "codec7", "gsm_map.codec7",
11995         FT_BYTES, BASE_HEX, NULL, 0,
11996         "", HFILL }},
11997     { &hf_gsm_map_codec8,
11998       { "codec8", "gsm_map.codec8",
11999         FT_BYTES, BASE_HEX, NULL, 0,
12000         "", HFILL }},
12001     { &hf_gsm_map_geranCodecList,
12002       { "geranCodecList", "gsm_map.geranCodecList",
12003         FT_NONE, BASE_NONE, NULL, 0,
12004         "PrepareHandoverV3Arg/iuSupportedCodecsList/utranCodecList/geranCodecList", HFILL }},
12005     { &hf_gsm_map_rab_ConfigurationIndicator,
12006       { "rab-ConfigurationIndicator", "gsm_map.rab_ConfigurationIndicator",
12007         FT_NONE, BASE_NONE, NULL, 0,
12008         "PrepareHandoverV3Arg/rab-ConfigurationIndicator", HFILL }},
12009     { &hf_gsm_map_uesbi_Iu,
12010       { "uesbi-Iu", "gsm_map.uesbi_Iu",
12011         FT_NONE, BASE_NONE, NULL, 0,
12012         "PrepareHandoverV3Arg/uesbi-Iu", HFILL }},
12013     { &hf_gsm_map_uesbi_IuA,
12014       { "uesbi-IuA", "gsm_map.uesbi_IuA",
12015         FT_BYTES, BASE_HEX, NULL, 0,
12016         "PrepareHandoverV3Arg/uesbi-Iu/uesbi-IuA", HFILL }},
12017     { &hf_gsm_map_uesbi_IuB,
12018       { "uesbi-IuB", "gsm_map.uesbi_IuB",
12019         FT_BYTES, BASE_HEX, NULL, 0,
12020         "PrepareHandoverV3Arg/uesbi-Iu/uesbi-IuB", HFILL }},
12021     { &hf_gsm_map_handoverNumber,
12022       { "handoverNumber", "gsm_map.handoverNumber",
12023         FT_BYTES, BASE_HEX, NULL, 0,
12024         "", HFILL }},
12025     { &hf_gsm_map_relocationNumberList,
12026       { "relocationNumberList", "gsm_map.relocationNumberList",
12027         FT_NONE, BASE_NONE, NULL, 0,
12028         "PrepareHandoverV3Res/relocationNumberList", HFILL }},
12029     { &hf_gsm_map_relocationNumberList_item,
12030       { "Item", "gsm_map.relocationNumberList_item",
12031         FT_NONE, BASE_NONE, NULL, 0,
12032         "PrepareHandoverV3Res/relocationNumberList/_item", HFILL }},
12033     { &hf_gsm_map_multicallBearerInfo,
12034       { "multicallBearerInfo", "gsm_map.multicallBearerInfo",
12035         FT_UINT32, BASE_DEC, NULL, 0,
12036         "PrepareHandoverV3Res/multicallBearerInfo", HFILL }},
12037     { &hf_gsm_map_multipleBearerNotSupported,
12038       { "multipleBearerNotSupported", "gsm_map.multipleBearerNotSupported",
12039         FT_NONE, BASE_NONE, NULL, 0,
12040         "PrepareHandoverV3Res/multipleBearerNotSupported", HFILL }},
12041     { &hf_gsm_map_selectedUMTS_Algorithms,
12042       { "selectedUMTS-Algorithms", "gsm_map.selectedUMTS_Algorithms",
12043         FT_NONE, BASE_NONE, NULL, 0,
12044         "PrepareHandoverV3Res/selectedUMTS-Algorithms", HFILL }},
12045     { &hf_gsm_map_integrityProtectionAlgorithm,
12046       { "integrityProtectionAlgorithm", "gsm_map.integrityProtectionAlgorithm",
12047         FT_BYTES, BASE_HEX, NULL, 0,
12048         "PrepareHandoverV3Res/selectedUMTS-Algorithms/integrityProtectionAlgorithm", HFILL }},
12049     { &hf_gsm_map_encryptionAlgorithm,
12050       { "encryptionAlgorithm", "gsm_map.encryptionAlgorithm",
12051         FT_BYTES, BASE_HEX, NULL, 0,
12052         "PrepareHandoverV3Res/selectedUMTS-Algorithms/encryptionAlgorithm", HFILL }},
12053     { &hf_gsm_map_chosenRadioResourceInformation,
12054       { "chosenRadioResourceInformation", "gsm_map.chosenRadioResourceInformation",
12055         FT_NONE, BASE_NONE, NULL, 0,
12056         "PrepareHandoverV3Res/chosenRadioResourceInformation", HFILL }},
12057     { &hf_gsm_map_chosenChannelInfo,
12058       { "chosenChannelInfo", "gsm_map.chosenChannelInfo",
12059         FT_BYTES, BASE_HEX, NULL, 0,
12060         "PrepareHandoverV3Res/chosenRadioResourceInformation/chosenChannelInfo", HFILL }},
12061     { &hf_gsm_map_chosenSpeechVersion,
12062       { "chosenSpeechVersion", "gsm_map.chosenSpeechVersion",
12063         FT_BYTES, BASE_HEX, NULL, 0,
12064         "PrepareHandoverV3Res/chosenRadioResourceInformation/chosenSpeechVersion", HFILL }},
12065     { &hf_gsm_map_iuSelectedCodec,
12066       { "iuSelectedCodec", "gsm_map.iuSelectedCodec",
12067         FT_BYTES, BASE_HEX, NULL, 0,
12068         "PrepareHandoverV3Res/iuSelectedCodec", HFILL }},
12069     { &hf_gsm_map_iuAvailableCodecsList,
12070       { "iuAvailableCodecsList", "gsm_map.iuAvailableCodecsList",
12071         FT_NONE, BASE_NONE, NULL, 0,
12072         "PrepareHandoverV3Res/iuAvailableCodecsList", HFILL }},
12073     { &hf_gsm_map_targetMSC_Number,
12074       { "targetMSC-Number", "gsm_map.targetMSC_Number",
12075         FT_BYTES, BASE_HEX, NULL, 0,
12076         "PrepareSubsequentHO-Arg/targetMSC-Number", HFILL }},
12077     { &hf_gsm_map_numberOfRequestedVectors,
12078       { "numberOfRequestedVectors", "gsm_map.numberOfRequestedVectors",
12079         FT_UINT32, BASE_DEC, NULL, 0,
12080         "SendAuthenticationInfoArgV3/numberOfRequestedVectors", HFILL }},
12081     { &hf_gsm_map_segmentationProhibited,
12082       { "segmentationProhibited", "gsm_map.segmentationProhibited",
12083         FT_NONE, BASE_NONE, NULL, 0,
12084         "SendAuthenticationInfoArgV3/segmentationProhibited", HFILL }},
12085     { &hf_gsm_map_immediateResponsePreferred,
12086       { "immediateResponsePreferred", "gsm_map.immediateResponsePreferred",
12087         FT_NONE, BASE_NONE, NULL, 0,
12088         "SendAuthenticationInfoArgV3/immediateResponsePreferred", HFILL }},
12089     { &hf_gsm_map_re_synchronisationInfo,
12090       { "re-synchronisationInfo", "gsm_map.re_synchronisationInfo",
12091         FT_NONE, BASE_NONE, NULL, 0,
12092         "SendAuthenticationInfoArgV3/re-synchronisationInfo", HFILL }},
12093     { &hf_gsm_map_auts,
12094       { "auts", "gsm_map.auts",
12095         FT_BYTES, BASE_HEX, NULL, 0,
12096         "SendAuthenticationInfoArgV3/re-synchronisationInfo/auts", HFILL }},
12097     { &hf_gsm_map_requestingNodeType,
12098       { "requestingNodeType", "gsm_map.requestingNodeType",
12099         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestingNodeType_vals), 0,
12100         "SendAuthenticationInfoArgV3/requestingNodeType", HFILL }},
12101     { &hf_gsm_map_requestingPLMN_Id,
12102       { "requestingPLMN-Id", "gsm_map.requestingPLMN_Id",
12103         FT_BYTES, BASE_HEX, NULL, 0,
12104         "SendAuthenticationInfoArgV3/requestingPLMN-Id", HFILL }},
12105     { &hf_gsm_map_SendAuthenticationInfoRes_item,
12106       { "Item", "gsm_map.SendAuthenticationInfoRes_item",
12107         FT_NONE, BASE_NONE, NULL, 0,
12108         "SendAuthenticationInfoRes/_item", HFILL }},
12109     { &hf_gsm_map_authenticationSetList,
12110       { "authenticationSetList", "gsm_map.authenticationSetList",
12111         FT_UINT32, BASE_DEC, VALS(gsm_map_T_authenticationSetList_vals), 0,
12112         "SendAuthenticationInfoV3Res/authenticationSetList", HFILL }},
12113     { &hf_gsm_map_tripletList,
12114       { "tripletList", "gsm_map.tripletList",
12115         FT_NONE, BASE_NONE, NULL, 0,
12116         "SendAuthenticationInfoV3Res/authenticationSetList/tripletList", HFILL }},
12117     { &hf_gsm_map_tripletList_item,
12118       { "Item", "gsm_map.tripletList_item",
12119         FT_NONE, BASE_NONE, NULL, 0,
12120         "SendAuthenticationInfoV3Res/authenticationSetList/tripletList/_item", HFILL }},
12121     { &hf_gsm_map_quintupletList,
12122       { "quintupletList", "gsm_map.quintupletList",
12123         FT_NONE, BASE_NONE, NULL, 0,
12124         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList", HFILL }},
12125     { &hf_gsm_map_quintupletList_item,
12126       { "Item", "gsm_map.quintupletList_item",
12127         FT_NONE, BASE_NONE, NULL, 0,
12128         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item", HFILL }},
12129     { &hf_gsm_map_xres,
12130       { "xres", "gsm_map.xres",
12131         FT_BYTES, BASE_HEX, NULL, 0,
12132         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/xres", HFILL }},
12133     { &hf_gsm_map_ck,
12134       { "ck", "gsm_map.ck",
12135         FT_BYTES, BASE_HEX, NULL, 0,
12136         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/ck", HFILL }},
12137     { &hf_gsm_map_ik,
12138       { "ik", "gsm_map.ik",
12139         FT_BYTES, BASE_HEX, NULL, 0,
12140         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/ik", HFILL }},
12141     { &hf_gsm_map_autn,
12142       { "autn", "gsm_map.autn",
12143         FT_BYTES, BASE_HEX, NULL, 0,
12144         "SendAuthenticationInfoV3Res/authenticationSetList/quintupletList/_item/autn", HFILL }},
12145     { &hf_gsm_map_bearerService,
12146       { "bearerService", "gsm_map.bearerService",
12147         FT_BYTES, BASE_HEX, NULL, 0,
12148         "BasicService/bearerService", HFILL }},
12149     { &hf_gsm_map_teleservice,
12150       { "teleservice", "gsm_map.teleservice",
12151         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
12152         "", HFILL }},
12153     { &hf_gsm_map_BasicServiceGroupList_item,
12154       { "Item", "gsm_map.BasicServiceGroupList_item",
12155         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_vals), 0,
12156         "BasicServiceGroupList/_item", HFILL }},
12157     { &hf_gsm_map_bcsmTriggerDetectionPoint,
12158       { "bcsmTriggerDetectionPoint", "gsm_map.bcsmTriggerDetectionPoint",
12159         FT_UINT32, BASE_DEC, VALS(gsm_map_BcsmTriggerDetectionPoint_vals), 0,
12160         "BcsmCamelTDPData/bcsmTriggerDetectionPoint", HFILL }},
12161     { &hf_gsm_map_serviceKey,
12162       { "serviceKey", "gsm_map.serviceKey",
12163         FT_UINT32, BASE_DEC, NULL, 0,
12164         "", HFILL }},
12165     { &hf_gsm_map_gsmSCFAddress,
12166       { "gsmSCFAddress", "gsm_map.gsmSCFAddress",
12167         FT_BYTES, BASE_HEX, NULL, 0,
12168         "BcsmCamelTDPData/gsmSCFAddress", HFILL }},
12169     { &hf_gsm_map_defaultCallHandling,
12170       { "defaultCallHandling", "gsm_map.defaultCallHandling",
12171         FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultCallHandling_vals), 0,
12172         "", HFILL }},
12173     { &hf_gsm_map_BcsmCamelTDPDataList_item,
12174       { "Item", "gsm_map.BcsmCamelTDPDataList_item",
12175         FT_NONE, BASE_NONE, NULL, 0,
12176         "BcsmCamelTDPDataList/_item", HFILL }},
12177     { &hf_gsm_map_o_BcsmCamelTDPDataList,
12178       { "o-BcsmCamelTDPDataList", "gsm_map.o_BcsmCamelTDPDataList",
12179         FT_NONE, BASE_NONE, NULL, 0,
12180         "", HFILL }},
12181     { &hf_gsm_map_camelCapabilityHandling,
12182       { "camelCapabilityHandling", "gsm_map.camelCapabilityHandling",
12183         FT_UINT32, BASE_DEC, NULL, 0,
12184         "", HFILL }},
12185     { &hf_gsm_map_msisdn,
12186       { "msisdn", "gsm_map.msisdn",
12187         FT_BYTES, BASE_HEX, NULL, 0,
12188         "", HFILL }},
12189     { &hf_gsm_map_category,
12190       { "category", "gsm_map.category",
12191         FT_BYTES, BASE_HEX, NULL, 0,
12192         "InsertSubscriberDataArg/category", HFILL }},
12193     { &hf_gsm_map_subscriberStatus,
12194       { "subscriberStatus", "gsm_map.subscriberStatus",
12195         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberStatus_vals), 0,
12196         "InsertSubscriberDataArg/subscriberStatus", HFILL }},
12197     { &hf_gsm_map_bearerServiceList,
12198       { "bearerServiceList", "gsm_map.bearerServiceList",
12199         FT_NONE, BASE_NONE, NULL, 0,
12200         "", HFILL }},
12201     { &hf_gsm_map_bearerServiceList_item,
12202       { "Item", "gsm_map.bearerServiceList_item",
12203         FT_BYTES, BASE_HEX, NULL, 0,
12204         "", HFILL }},
12205     { &hf_gsm_map_teleserviceList,
12206       { "teleserviceList", "gsm_map.teleserviceList",
12207         FT_NONE, BASE_NONE, NULL, 0,
12208         "", HFILL }},
12209     { &hf_gsm_map_teleserviceList_item,
12210       { "Item", "gsm_map.teleserviceList_item",
12211         FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
12212         "", HFILL }},
12213     { &hf_gsm_map_provisionedSS,
12214       { "provisionedSS", "gsm_map.provisionedSS",
12215         FT_NONE, BASE_NONE, NULL, 0,
12216         "InsertSubscriberDataArg/provisionedSS", HFILL }},
12217     { &hf_gsm_map_provisionedSS_item,
12218       { "Item", "gsm_map.provisionedSS_item",
12219         FT_UINT32, BASE_DEC, VALS(gsm_map_T_provisionedSS_item_vals), 0,
12220         "InsertSubscriberDataArg/provisionedSS/_item", HFILL }},
12221     { &hf_gsm_map_forwardingInfo,
12222       { "forwardingInfo", "gsm_map.forwardingInfo",
12223         FT_NONE, BASE_NONE, NULL, 0,
12224         "", HFILL }},
12225     { &hf_gsm_map_callBarringInfo,
12226       { "callBarringInfo", "gsm_map.callBarringInfo",
12227         FT_NONE, BASE_NONE, NULL, 0,
12228         "", HFILL }},
12229     { &hf_gsm_map_cug_Info,
12230       { "cug-Info", "gsm_map.cug_Info",
12231         FT_NONE, BASE_NONE, NULL, 0,
12232         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info", HFILL }},
12233     { &hf_gsm_map_cug_SubscriptionList,
12234       { "cug-SubscriptionList", "gsm_map.cug_SubscriptionList",
12235         FT_NONE, BASE_NONE, NULL, 0,
12236         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList", HFILL }},
12237     { &hf_gsm_map_cug_SubscriptionList_item,
12238       { "Item", "gsm_map.cug_SubscriptionList_item",
12239         FT_NONE, BASE_NONE, NULL, 0,
12240         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item", HFILL }},
12241     { &hf_gsm_map_cug_Index,
12242       { "cug-Index", "gsm_map.cug_Index",
12243         FT_UINT32, BASE_DEC, NULL, 0,
12244         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/cug-Index", HFILL }},
12245     { &hf_gsm_map_cug_Interlock,
12246       { "cug-Interlock", "gsm_map.cug_Interlock",
12247         FT_BYTES, BASE_HEX, NULL, 0,
12248         "", HFILL }},
12249     { &hf_gsm_map_intraCUG_Options,
12250       { "intraCUG-Options", "gsm_map.intraCUG_Options",
12251         FT_UINT32, BASE_DEC, VALS(gsm_map_IntraCUG_Options_vals), 0,
12252         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/intraCUG-Options", HFILL }},
12253     { &hf_gsm_map_basicServiceGroupList,
12254       { "basicServiceGroupList", "gsm_map.basicServiceGroupList",
12255         FT_NONE, BASE_NONE, NULL, 0,
12256         "", HFILL }},
12257     { &hf_gsm_map_cug_FeatureList,
12258       { "cug-FeatureList", "gsm_map.cug_FeatureList",
12259         FT_NONE, BASE_NONE, NULL, 0,
12260         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList", HFILL }},
12261     { &hf_gsm_map_cug_FeatureList_item,
12262       { "Item", "gsm_map.cug_FeatureList_item",
12263         FT_NONE, BASE_NONE, NULL, 0,
12264         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item", HFILL }},
12265     { &hf_gsm_map_basicService,
12266       { "basicService", "gsm_map.basicService",
12267         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_vals), 0,
12268         "", HFILL }},
12269     { &hf_gsm_map_preferentialCUG_Indicator,
12270       { "preferentialCUG-Indicator", "gsm_map.preferentialCUG_Indicator",
12271         FT_UINT32, BASE_DEC, NULL, 0,
12272         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/preferentialCUG-Indicator", HFILL }},
12273     { &hf_gsm_map_interCUG_Restrictions,
12274       { "interCUG-Restrictions", "gsm_map.interCUG_Restrictions",
12275         FT_BYTES, BASE_HEX, NULL, 0,
12276         "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/interCUG-Restrictions", HFILL }},
12277     { &hf_gsm_map_ss_Data,
12278       { "ss-Data", "gsm_map.ss_Data",
12279         FT_NONE, BASE_NONE, NULL, 0,
12280         "", HFILL }},
12281     { &hf_gsm_map_emlpp_Info,
12282       { "emlpp-Info", "gsm_map.emlpp_Info",
12283         FT_NONE, BASE_NONE, NULL, 0,
12284         "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info", HFILL }},
12285     { &hf_gsm_map_maximumentitledPriority,
12286       { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
12287         FT_UINT32, BASE_DEC, NULL, 0,
12288         "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info/maximumentitledPriority", HFILL }},
12289     { &hf_gsm_map_defaultPriority,
12290       { "defaultPriority", "gsm_map.defaultPriority",
12291         FT_UINT32, BASE_DEC, NULL, 0,
12292         "", HFILL }},
12293     { &hf_gsm_map_odb_Data,
12294       { "odb-Data", "gsm_map.odb_Data",
12295         FT_NONE, BASE_NONE, NULL, 0,
12296         "", HFILL }},
12297     { &hf_gsm_map_roamingRestrictionDueToUnsupportedFeature,
12298       { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.roamingRestrictionDueToUnsupportedFeature",
12299         FT_NONE, BASE_NONE, NULL, 0,
12300         "", HFILL }},
12301     { &hf_gsm_map_regionalSubscriptionData,
12302       { "regionalSubscriptionData", "gsm_map.regionalSubscriptionData",
12303         FT_NONE, BASE_NONE, NULL, 0,
12304         "InsertSubscriberDataArg/regionalSubscriptionData", HFILL }},
12305     { &hf_gsm_map_regionalSubscriptionData_item,
12306       { "Item", "gsm_map.regionalSubscriptionData_item",
12307         FT_BYTES, BASE_HEX, NULL, 0,
12308         "InsertSubscriberDataArg/regionalSubscriptionData/_item", HFILL }},
12309     { &hf_gsm_map_vbsSubscriptionData,
12310       { "vbsSubscriptionData", "gsm_map.vbsSubscriptionData",
12311         FT_NONE, BASE_NONE, NULL, 0,
12312         "InsertSubscriberDataArg/vbsSubscriptionData", HFILL }},
12313     { &hf_gsm_map_vbsSubscriptionData_item,
12314       { "Item", "gsm_map.vbsSubscriptionData_item",
12315         FT_NONE, BASE_NONE, NULL, 0,
12316         "InsertSubscriberDataArg/vbsSubscriptionData/_item", HFILL }},
12317     { &hf_gsm_map_groupid,
12318       { "groupid", "gsm_map.groupid",
12319         FT_BYTES, BASE_HEX, NULL, 0,
12320         "InsertSubscriberDataArg/vbsSubscriptionData/_item/groupid", HFILL }},
12321     { &hf_gsm_map_broadcastInitEntitlement,
12322       { "broadcastInitEntitlement", "gsm_map.broadcastInitEntitlement",
12323         FT_NONE, BASE_NONE, NULL, 0,
12324         "InsertSubscriberDataArg/vbsSubscriptionData/_item/broadcastInitEntitlement", HFILL }},
12325     { &hf_gsm_map_vgcsSubscriptionData,
12326       { "vgcsSubscriptionData", "gsm_map.vgcsSubscriptionData",
12327         FT_NONE, BASE_NONE, NULL, 0,
12328         "InsertSubscriberDataArg/vgcsSubscriptionData", HFILL }},
12329     { &hf_gsm_map_vgcsSubscriptionData_item,
12330       { "Item", "gsm_map.vgcsSubscriptionData_item",
12331         FT_NONE, BASE_NONE, NULL, 0,
12332         "InsertSubscriberDataArg/vgcsSubscriptionData/_item", HFILL }},
12333     { &hf_gsm_map_groupId,
12334       { "groupId", "gsm_map.groupId",
12335         FT_BYTES, BASE_HEX, NULL, 0,
12336         "InsertSubscriberDataArg/vgcsSubscriptionData/_item/groupId", HFILL }},
12337     { &hf_gsm_map_vlrCamelSubscriptionInfo,
12338       { "vlrCamelSubscriptionInfo", "gsm_map.vlrCamelSubscriptionInfo",
12339         FT_NONE, BASE_NONE, NULL, 0,
12340         "InsertSubscriberDataArg/vlrCamelSubscriptionInfo", HFILL }},
12341     { &hf_gsm_map_o_CSI,
12342       { "o-CSI", "gsm_map.o_CSI",
12343         FT_NONE, BASE_NONE, NULL, 0,
12344         "", HFILL }},
12345     { &hf_gsm_map_ss_CSI,
12346       { "ss-CSI", "gsm_map.ss_CSI",
12347         FT_NONE, BASE_NONE, NULL, 0,
12348         "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI", HFILL }},
12349     { &hf_gsm_map_ss_CamelData,
12350       { "ss-CamelData", "gsm_map.ss_CamelData",
12351         FT_NONE, BASE_NONE, NULL, 0,
12352         "", HFILL }},
12353     { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList,
12354       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList",
12355         FT_NONE, BASE_NONE, NULL, 0,
12356         "", HFILL }},
12357     { &hf_gsm_map_tif_CSI,
12358       { "tif-CSI", "gsm_map.tif_CSI",
12359         FT_NONE, BASE_NONE, NULL, 0,
12360         "", HFILL }},
12361     { &hf_gsm_map_naea_PreferredCI,
12362       { "naea-PreferredCI", "gsm_map.naea_PreferredCI",
12363         FT_NONE, BASE_NONE, NULL, 0,
12364         "", HFILL }},
12365     { &hf_gsm_map_gprsSubscriptionData,
12366       { "gprsSubscriptionData", "gsm_map.gprsSubscriptionData",
12367         FT_NONE, BASE_NONE, NULL, 0,
12368         "InsertSubscriberDataArg/gprsSubscriptionData", HFILL }},
12369     { &hf_gsm_map_completeDataListIncluded,
12370       { "completeDataListIncluded", "gsm_map.completeDataListIncluded",
12371         FT_NONE, BASE_NONE, NULL, 0,
12372         "", HFILL }},
12373     { &hf_gsm_map_gprsDataList,
12374       { "gprsDataList", "gsm_map.gprsDataList",
12375         FT_NONE, BASE_NONE, NULL, 0,
12376         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList", HFILL }},
12377     { &hf_gsm_map_gprsDataList_item,
12378       { "Item", "gsm_map.gprsDataList_item",
12379         FT_NONE, BASE_NONE, NULL, 0,
12380         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item", HFILL }},
12381     { &hf_gsm_map_pdp_ContextId,
12382       { "pdp-ContextId", "gsm_map.pdp_ContextId",
12383         FT_UINT32, BASE_DEC, NULL, 0,
12384         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-ContextId", HFILL }},
12385     { &hf_gsm_map_pdp_Type,
12386       { "pdp-Type", "gsm_map.pdp_Type",
12387         FT_BYTES, BASE_HEX, NULL, 0,
12388         "", HFILL }},
12389     { &hf_gsm_map_pdp_Address,
12390       { "pdp-Address", "gsm_map.pdp_Address",
12391         FT_BYTES, BASE_HEX, NULL, 0,
12392         "", HFILL }},
12393     { &hf_gsm_map_qos_Subscribed,
12394       { "qos-Subscribed", "gsm_map.qos_Subscribed",
12395         FT_BYTES, BASE_HEX, NULL, 0,
12396         "", HFILL }},
12397     { &hf_gsm_map_vplmnAddressAllowed,
12398       { "vplmnAddressAllowed", "gsm_map.vplmnAddressAllowed",
12399         FT_NONE, BASE_NONE, NULL, 0,
12400         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/vplmnAddressAllowed", HFILL }},
12401     { &hf_gsm_map_apn,
12402       { "apn", "gsm_map.apn",
12403         FT_BYTES, BASE_HEX, NULL, 0,
12404         "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/apn", HFILL }},
12405     { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature,
12406       { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsupportedFeature",
12407         FT_NONE, BASE_NONE, NULL, 0,
12408         "InsertSubscriberDataArg/roamingRestrictedInSgsnDueToUnsupportedFeature", HFILL }},
12409     { &hf_gsm_map_networkAccessMode,
12410       { "networkAccessMode", "gsm_map.networkAccessMode",
12411         FT_UINT32, BASE_DEC, VALS(gsm_map_T_networkAccessMode_vals), 0,
12412         "InsertSubscriberDataArg/networkAccessMode", HFILL }},
12413     { &hf_gsm_map_lsaInformation,
12414       { "lsaInformation", "gsm_map.lsaInformation",
12415         FT_NONE, BASE_NONE, NULL, 0,
12416         "InsertSubscriberDataArg/lsaInformation", HFILL }},
12417     { &hf_gsm_map_lsaOnlyAccessIndicator,
12418       { "lsaOnlyAccessIndicator", "gsm_map.lsaOnlyAccessIndicator",
12419         FT_UINT32, BASE_DEC, VALS(gsm_map_T_lsaOnlyAccessIndicator_vals), 0,
12420         "InsertSubscriberDataArg/lsaInformation/lsaOnlyAccessIndicator", HFILL }},
12421     { &hf_gsm_map_lsaDataList,
12422       { "lsaDataList", "gsm_map.lsaDataList",
12423         FT_NONE, BASE_NONE, NULL, 0,
12424         "InsertSubscriberDataArg/lsaInformation/lsaDataList", HFILL }},
12425     { &hf_gsm_map_lsaDataList_item,
12426       { "Item", "gsm_map.lsaDataList_item",
12427         FT_NONE, BASE_NONE, NULL, 0,
12428         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item", HFILL }},
12429     { &hf_gsm_map_lsaIdentity,
12430       { "lsaIdentity", "gsm_map.lsaIdentity",
12431         FT_BYTES, BASE_HEX, NULL, 0,
12432         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaIdentity", HFILL }},
12433     { &hf_gsm_map_lsaAttributes,
12434       { "lsaAttributes", "gsm_map.lsaAttributes",
12435         FT_BYTES, BASE_HEX, NULL, 0,
12436         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaAttributes", HFILL }},
12437     { &hf_gsm_map_lsaActiveModeIndicator,
12438       { "lsaActiveModeIndicator", "gsm_map.lsaActiveModeIndicator",
12439         FT_NONE, BASE_NONE, NULL, 0,
12440         "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaActiveModeIndicator", HFILL }},
12441     { &hf_gsm_map_lmu_Indicator,
12442       { "lmu-Indicator", "gsm_map.lmu_Indicator",
12443         FT_NONE, BASE_NONE, NULL, 0,
12444         "InsertSubscriberDataArg/lmu-Indicator", HFILL }},
12445     { &hf_gsm_map_lcsInformation,
12446       { "lcsInformation", "gsm_map.lcsInformation",
12447         FT_NONE, BASE_NONE, NULL, 0,
12448         "InsertSubscriberDataArg/lcsInformation", HFILL }},
12449     { &hf_gsm_map_gmlc_List,
12450       { "gmlc-List", "gsm_map.gmlc_List",
12451         FT_NONE, BASE_NONE, NULL, 0,
12452         "InsertSubscriberDataArg/lcsInformation/gmlc-List", HFILL }},
12453     { &hf_gsm_map_gmlc_List_item,
12454       { "Item", "gsm_map.gmlc_List_item",
12455         FT_BYTES, BASE_HEX, NULL, 0,
12456         "InsertSubscriberDataArg/lcsInformation/gmlc-List/_item", HFILL }},
12457     { &hf_gsm_map_lcs_PrivacyExceptionList,
12458       { "lcs-PrivacyExceptionList", "gsm_map.lcs_PrivacyExceptionList",
12459         FT_NONE, BASE_NONE, NULL, 0,
12460         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList", HFILL }},
12461     { &hf_gsm_map_lcs_PrivacyExceptionList_item,
12462       { "Item", "gsm_map.lcs_PrivacyExceptionList_item",
12463         FT_NONE, BASE_NONE, NULL, 0,
12464         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item", HFILL }},
12465     { &hf_gsm_map_ss_Code,
12466       { "ss-Code", "gsm_map.ss_Code",
12467         FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
12468         "", HFILL }},
12469     { &hf_gsm_map_ss_Status,
12470       { "ss-Status", "gsm_map.ss_Status",
12471         FT_BYTES, BASE_HEX, NULL, 0,
12472         "", HFILL }},
12473     { &hf_gsm_map_notificationToMSUser,
12474       { "notificationToMSUser", "gsm_map.notificationToMSUser",
12475         FT_UINT32, BASE_DEC, VALS(gsm_map_NotificationToMSUser_vals), 0,
12476         "", HFILL }},
12477     { &hf_gsm_map_externalClientList,
12478       { "externalClientList", "gsm_map.externalClientList",
12479         FT_NONE, BASE_NONE, NULL, 0,
12480         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList", HFILL }},
12481     { &hf_gsm_map_externalClientList_item,
12482       { "Item", "gsm_map.externalClientList_item",
12483         FT_NONE, BASE_NONE, NULL, 0,
12484         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item", HFILL }},
12485     { &hf_gsm_map_clientIdentity,
12486       { "clientIdentity", "gsm_map.clientIdentity",
12487         FT_NONE, BASE_NONE, NULL, 0,
12488         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/clientIdentity", HFILL }},
12489     { &hf_gsm_map_externalAddress,
12490       { "externalAddress", "gsm_map.externalAddress",
12491         FT_BYTES, BASE_HEX, NULL, 0,
12492         "", HFILL }},
12493     { &hf_gsm_map_gmlc_Restriction,
12494       { "gmlc-Restriction", "gsm_map.gmlc_Restriction",
12495         FT_UINT32, BASE_DEC, VALS(gsm_map_T_gmlc_Restriction_vals), 0,
12496         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/gmlc-Restriction", HFILL }},
12497     { &hf_gsm_map_plmnClientList,
12498       { "plmnClientList", "gsm_map.plmnClientList",
12499         FT_NONE, BASE_NONE, NULL, 0,
12500         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList", HFILL }},
12501     { &hf_gsm_map_plmnClientList_item,
12502       { "Item", "gsm_map.plmnClientList_item",
12503         FT_UINT32, BASE_DEC, VALS(gsm_map_T_plmnClientList_item_vals), 0,
12504         "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList/_item", HFILL }},
12505     { &hf_gsm_map_molr_List,
12506       { "molr-List", "gsm_map.molr_List",
12507         FT_NONE, BASE_NONE, NULL, 0,
12508         "InsertSubscriberDataArg/lcsInformation/molr-List", HFILL }},
12509     { &hf_gsm_map_molr_List_item,
12510       { "Item", "gsm_map.molr_List_item",
12511         FT_NONE, BASE_NONE, NULL, 0,
12512         "InsertSubscriberDataArg/lcsInformation/molr-List/_item", HFILL }},
12513     { &hf_gsm_map_ss_List,
12514       { "ss-List", "gsm_map.ss_List",
12515         FT_NONE, BASE_NONE, NULL, 0,
12516         "", HFILL }},
12517     { &hf_gsm_map_ss_List_item,
12518       { "Item", "gsm_map.ss_List_item",
12519         FT_BYTES, BASE_HEX, NULL, 0,
12520         "", HFILL }},
12521     { &hf_gsm_map_odb_GeneralData,
12522       { "odb-GeneralData", "gsm_map.odb_GeneralData",
12523         FT_BYTES, BASE_HEX, NULL, 0,
12524         "", HFILL }},
12525     { &hf_gsm_map_regionalSubscriptionResponse,
12526       { "regionalSubscriptionResponse", "gsm_map.regionalSubscriptionResponse",
12527         FT_UINT32, BASE_DEC, VALS(gsm_map_RegionalSubscriptionResponse_vals), 0,
12528         "", HFILL }},
12529     { &hf_gsm_map_ss_EventList,
12530       { "ss-EventList", "gsm_map.ss_EventList",
12531         FT_NONE, BASE_NONE, NULL, 0,
12532         "Ss-CamelData/ss-EventList", HFILL }},
12533     { &hf_gsm_map_ss_EventList_item,
12534       { "Item", "gsm_map.ss_EventList_item",
12535         FT_BYTES, BASE_HEX, NULL, 0,
12536         "Ss-CamelData/ss-EventList/_item", HFILL }},
12537     { &hf_gsm_map_gsmSCF_Address,
12538       { "gsmSCF-Address", "gsm_map.gsmSCF_Address",
12539         FT_BYTES, BASE_HEX, NULL, 0,
12540         "", HFILL }},
12541     { &hf_gsm_map_callBarringFeatureList,
12542       { "callBarringFeatureList", "gsm_map.callBarringFeatureList",
12543         FT_NONE, BASE_NONE, NULL, 0,
12544         "", HFILL }},
12545     { &hf_gsm_map_CallBarringFeatureList_item,
12546       { "Item", "gsm_map.CallBarringFeatureList_item",
12547         FT_NONE, BASE_NONE, NULL, 0,
12548         "CallBarringFeatureList/_item", HFILL }},
12549     { &hf_gsm_map_forwardedToNumber,
12550       { "forwardedToNumber", "gsm_map.forwardedToNumber",
12551         FT_BYTES, BASE_HEX, NULL, 0,
12552         "", HFILL }},
12553     { &hf_gsm_map_forwardedToSubaddress,
12554       { "forwardedToSubaddress", "gsm_map.forwardedToSubaddress",
12555         FT_BYTES, BASE_HEX, NULL, 0,
12556         "", HFILL }},
12557     { &hf_gsm_map_forwardingOptions,
12558       { "forwardingOptions", "gsm_map.forwardingOptions",
12559         FT_BYTES, BASE_HEX, NULL, 0,
12560         "", HFILL }},
12561     { &hf_gsm_map_noReplyConditionTime,
12562       { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
12563         FT_INT32, BASE_DEC, NULL, 0,
12564         "", HFILL }},
12565     { &hf_gsm_map_longForwardedToNumber,
12566       { "longForwardedToNumber", "gsm_map.longForwardedToNumber",
12567         FT_BYTES, BASE_HEX, NULL, 0,
12568         "ForwardingFeatureList/longForwardedToNumber", HFILL }},
12569     { &hf_gsm_map_matchType,
12570       { "matchType", "gsm_map.matchType",
12571         FT_UINT32, BASE_DEC, VALS(gsm_map_MatchType_vals), 0,
12572         "DestinationNumberCriteria/matchType", HFILL }},
12573     { &hf_gsm_map_destinationNumberList,
12574       { "destinationNumberList", "gsm_map.destinationNumberList",
12575         FT_NONE, BASE_NONE, NULL, 0,
12576         "DestinationNumberCriteria/destinationNumberList", HFILL }},
12577     { &hf_gsm_map_destinationNumberList_item,
12578       { "Item", "gsm_map.destinationNumberList_item",
12579         FT_BYTES, BASE_HEX, NULL, 0,
12580         "DestinationNumberCriteria/destinationNumberList/_item", HFILL }},
12581     { &hf_gsm_map_destinationNumberLengthList,
12582       { "destinationNumberLengthList", "gsm_map.destinationNumberLengthList",
12583         FT_NONE, BASE_NONE, NULL, 0,
12584         "DestinationNumberCriteria/destinationNumberLengthList", HFILL }},
12585     { &hf_gsm_map_destinationNumberLengthList_item,
12586       { "Item", "gsm_map.destinationNumberLengthList_item",
12587         FT_UINT32, BASE_DEC, NULL, 0,
12588         "DestinationNumberCriteria/destinationNumberLengthList/_item", HFILL }},
12589     { &hf_gsm_map_forwardingFeatureList_1_32,
12590       { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
12591         FT_NONE, BASE_NONE, NULL, 0,
12592         "ForwardingInfo/forwardingFeatureList", HFILL }},
12593     { &hf_gsm_map_forwardingFeatureList_item,
12594       { "Item", "gsm_map.forwardingFeatureList_item",
12595         FT_NONE, BASE_NONE, NULL, 0,
12596         "", HFILL }},
12597     { &hf_gsm_map_naea_PreferredCIC,
12598       { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
12599         FT_BYTES, BASE_HEX, NULL, 0,
12600         "Naea-PreferredCI/naea-PreferredCIC", HFILL }},
12601     { &hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
12602       { "Item", "gsm_map.O_BcsmCamelTDP_CriteriaList_item",
12603         FT_NONE, BASE_NONE, NULL, 0,
12604         "O-BcsmCamelTDP-CriteriaList/_item", HFILL }},
12605     { &hf_gsm_map_o_BcsmTriggerDetectionPoint,
12606       { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
12607         FT_UINT32, BASE_DEC, VALS(gsm_map_BcsmTriggerDetectionPoint_vals), 0,
12608         "O-BcsmCamelTDP-CriteriaList/_item/o-BcsmTriggerDetectionPoint", HFILL }},
12609     { &hf_gsm_map_destinationNumberCriteria,
12610       { "destinationNumberCriteria", "gsm_map.destinationNumberCriteria",
12611         FT_NONE, BASE_NONE, NULL, 0,
12612         "", HFILL }},
12613     { &hf_gsm_map_basicServiceCriteria,
12614       { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
12615         FT_NONE, BASE_NONE, NULL, 0,
12616         "O-BcsmCamelTDP-CriteriaList/_item/basicServiceCriteria", HFILL }},
12617     { &hf_gsm_map_callTypeCriteria,
12618       { "callTypeCriteria", "gsm_map.callTypeCriteria",
12619         FT_UINT32, BASE_DEC, VALS(gsm_map_CallTypeCriteria_vals), 0,
12620         "", HFILL }},
12621     { &hf_gsm_map_cliRestrictionOption,
12622       { "cliRestrictionOption", "gsm_map.cliRestrictionOption",
12623         FT_UINT32, BASE_DEC, VALS(gsm_map_CliRestrictionOption_vals), 0,
12624         "", HFILL }},
12625     { &hf_gsm_map_overrideCategory,
12626       { "overrideCategory", "gsm_map.overrideCategory",
12627         FT_UINT32, BASE_DEC, VALS(gsm_map_OverrideCategory_vals), 0,
12628         "Ss-SubscriptionOption/overrideCategory", HFILL }},
12629     { &hf_gsm_map_basicServiceList,
12630       { "basicServiceList", "gsm_map.basicServiceList",
12631         FT_NONE, BASE_NONE, NULL, 0,
12632         "DeleteSubscriberDataArg/basicServiceList", HFILL }},
12633     { &hf_gsm_map_regionalSubscriptionIdentifier,
12634       { "regionalSubscriptionIdentifier", "gsm_map.regionalSubscriptionIdentifier",
12635         FT_BYTES, BASE_HEX, NULL, 0,
12636         "DeleteSubscriberDataArg/regionalSubscriptionIdentifier", HFILL }},
12637     { &hf_gsm_map_vbsGroupIndication,
12638       { "vbsGroupIndication", "gsm_map.vbsGroupIndication",
12639         FT_NONE, BASE_NONE, NULL, 0,
12640         "DeleteSubscriberDataArg/vbsGroupIndication", HFILL }},
12641     { &hf_gsm_map_vgcsGroupIndication,
12642       { "vgcsGroupIndication", "gsm_map.vgcsGroupIndication",
12643         FT_NONE, BASE_NONE, NULL, 0,
12644         "DeleteSubscriberDataArg/vgcsGroupIndication", HFILL }},
12645     { &hf_gsm_map_camelSubscriptionInfoWithdraw,
12646       { "camelSubscriptionInfoWithdraw", "gsm_map.camelSubscriptionInfoWithdraw",
12647         FT_NONE, BASE_NONE, NULL, 0,
12648         "DeleteSubscriberDataArg/camelSubscriptionInfoWithdraw", HFILL }},
12649     { &hf_gsm_map_gprsSubscriptionDataWithdraw,
12650       { "gprsSubscriptionDataWithdraw", "gsm_map.gprsSubscriptionDataWithdraw",
12651         FT_UINT32, BASE_DEC, VALS(gsm_map_T_gprsSubscriptionDataWithdraw_vals), 0,
12652         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw", HFILL }},
12653     { &hf_gsm_map_allGPRSData,
12654       { "allGPRSData", "gsm_map.allGPRSData",
12655         FT_NONE, BASE_NONE, NULL, 0,
12656         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/allGPRSData", HFILL }},
12657     { &hf_gsm_map_contextIdList,
12658       { "contextIdList", "gsm_map.contextIdList",
12659         FT_NONE, BASE_NONE, NULL, 0,
12660         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList", HFILL }},
12661     { &hf_gsm_map_contextIdList_item,
12662       { "Item", "gsm_map.contextIdList_item",
12663         FT_UINT32, BASE_DEC, NULL, 0,
12664         "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList/_item", HFILL }},
12665     { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature,
12666       { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsuppportedFeature",
12667         FT_NONE, BASE_NONE, NULL, 0,
12668         "DeleteSubscriberDataArg/roamingRestrictedInSgsnDueToUnsuppportedFeature", HFILL }},
12669     { &hf_gsm_map_lsaInformationWithdraw,
12670       { "lsaInformationWithdraw", "gsm_map.lsaInformationWithdraw",
12671         FT_UINT32, BASE_DEC, VALS(gsm_map_T_lsaInformationWithdraw_vals), 0,
12672         "DeleteSubscriberDataArg/lsaInformationWithdraw", HFILL }},
12673     { &hf_gsm_map_allLSAData,
12674       { "allLSAData", "gsm_map.allLSAData",
12675         FT_NONE, BASE_NONE, NULL, 0,
12676         "DeleteSubscriberDataArg/lsaInformationWithdraw/allLSAData", HFILL }},
12677     { &hf_gsm_map_lsaIdentityList,
12678       { "lsaIdentityList", "gsm_map.lsaIdentityList",
12679         FT_NONE, BASE_NONE, NULL, 0,
12680         "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList", HFILL }},
12681     { &hf_gsm_map_lsaIdentityList_item,
12682       { "Item", "gsm_map.lsaIdentityList_item",
12683         FT_BYTES, BASE_HEX, NULL, 0,
12684         "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList/_item", HFILL }},
12685     { &hf_gsm_map_gmlc_ListWithdraw,
12686       { "gmlc-ListWithdraw", "gsm_map.gmlc_ListWithdraw",
12687         FT_NONE, BASE_NONE, NULL, 0,
12688         "DeleteSubscriberDataArg/gmlc-ListWithdraw", HFILL }},
12689     { &hf_gsm_map_hlr_List,
12690       { "hlr-List", "gsm_map.hlr_List",
12691         FT_NONE, BASE_NONE, NULL, 0,
12692         "ResetArg/hlr-List", HFILL }},
12693     { &hf_gsm_map_hlr_List_item,
12694       { "Item", "gsm_map.hlr_List_item",
12695         FT_BYTES, BASE_HEX, NULL, 0,
12696         "ResetArg/hlr-List/_item", HFILL }},
12697     { &hf_gsm_map_msNotReachable,
12698       { "msNotReachable", "gsm_map.msNotReachable",
12699         FT_NONE, BASE_NONE, NULL, 0,
12700         "RestoreDataRes/msNotReachable", HFILL }},
12701     { &hf_gsm_map_traceReference,
12702       { "traceReference", "gsm_map.traceReference",
12703         FT_BYTES, BASE_HEX, NULL, 0,
12704         "", HFILL }},
12705     { &hf_gsm_map_traceType,
12706       { "traceType", "gsm_map.traceType",
12707         FT_UINT32, BASE_DEC, NULL, 0,
12708         "ActivateTraceModeArg/traceType", HFILL }},
12709     { &hf_gsm_map_omc_Id,
12710       { "omc-Id", "gsm_map.omc_Id",
12711         FT_BYTES, BASE_HEX, NULL, 0,
12712         "ActivateTraceModeArg/omc-Id", HFILL }},
12713     { &hf_gsm_map_cug_CheckInfo,
12714       { "cug-CheckInfo", "gsm_map.cug_CheckInfo",
12715         FT_NONE, BASE_NONE, NULL, 0,
12716         "", HFILL }},
12717     { &hf_gsm_map_numberOfForwarding,
12718       { "numberOfForwarding", "gsm_map.numberOfForwarding",
12719         FT_UINT32, BASE_DEC, NULL, 0,
12720         "SendRoutingInfoArg/numberOfForwarding", HFILL }},
12721     { &hf_gsm_map_interrogationType,
12722       { "interrogationType", "gsm_map.interrogationType",
12723         FT_UINT32, BASE_DEC, VALS(gsm_map_T_interrogationType_vals), 0,
12724         "SendRoutingInfoArg/interrogationType", HFILL }},
12725     { &hf_gsm_map_or_Interrogation,
12726       { "or-Interrogation", "gsm_map.or_Interrogation",
12727         FT_NONE, BASE_NONE, NULL, 0,
12728         "", HFILL }},
12729     { &hf_gsm_map_or_Capability,
12730       { "or-Capability", "gsm_map.or_Capability",
12731         FT_UINT32, BASE_DEC, NULL, 0,
12732         "SendRoutingInfoArg/or-Capability", HFILL }},
12733     { &hf_gsm_map_gmsc_Address,
12734       { "gmsc-Address", "gsm_map.gmsc_Address",
12735         FT_BYTES, BASE_HEX, NULL, 0,
12736         "", HFILL }},
12737     { &hf_gsm_map_callReferenceNumber,
12738       { "callReferenceNumber", "gsm_map.callReferenceNumber",
12739         FT_BYTES, BASE_HEX, NULL, 0,
12740         "", HFILL }},
12741     { &hf_gsm_map_forwardingReason,
12742       { "forwardingReason", "gsm_map.forwardingReason",
12743         FT_UINT32, BASE_DEC, VALS(gsm_map_T_forwardingReason_vals), 0,
12744         "SendRoutingInfoArg/forwardingReason", HFILL }},
12745     { &hf_gsm_map_basicServiceGroup,
12746       { "basicServiceGroup", "gsm_map.basicServiceGroup",
12747         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicService_vals), 0,
12748         "", HFILL }},
12749     { &hf_gsm_map_networkSignalInfo,
12750       { "networkSignalInfo", "gsm_map.networkSignalInfo",
12751         FT_NONE, BASE_NONE, NULL, 0,
12752         "", HFILL }},
12753     { &hf_gsm_map_camelInfo,
12754       { "camelInfo", "gsm_map.camelInfo",
12755         FT_NONE, BASE_NONE, NULL, 0,
12756         "SendRoutingInfoArg/camelInfo", HFILL }},
12757     { &hf_gsm_map_suppress_T_CSI,
12758       { "suppress-T-CSI", "gsm_map.suppress_T_CSI",
12759         FT_NONE, BASE_NONE, NULL, 0,
12760         "SendRoutingInfoArg/camelInfo/suppress-T-CSI", HFILL }},
12761     { &hf_gsm_map_suppressionOfAnnouncement,
12762       { "suppressionOfAnnouncement", "gsm_map.suppressionOfAnnouncement",
12763         FT_NONE, BASE_NONE, NULL, 0,
12764         "", HFILL }},
12765     { &hf_gsm_map_alertingPattern,
12766       { "alertingPattern", "gsm_map.alertingPattern",
12767         FT_BYTES, BASE_HEX, NULL, 0,
12768         "", HFILL }},
12769     { &hf_gsm_map_ccbs_Call,
12770       { "ccbs-Call", "gsm_map.ccbs_Call",
12771         FT_NONE, BASE_NONE, NULL, 0,
12772         "", HFILL }},
12773     { &hf_gsm_map_supportedCCBS_Phase,
12774       { "supportedCCBS-Phase", "gsm_map.supportedCCBS_Phase",
12775         FT_UINT32, BASE_DEC, NULL, 0,
12776         "SendRoutingInfoArg/supportedCCBS-Phase", HFILL }},
12777     { &hf_gsm_map_additionalSignalInfo,
12778       { "additionalSignalInfo", "gsm_map.additionalSignalInfo",
12779         FT_NONE, BASE_NONE, NULL, 0,
12780         "", HFILL }},
12781     { &hf_gsm_map_extendedRoutingInfo,
12782       { "extendedRoutingInfo", "gsm_map.extendedRoutingInfo",
12783         FT_UINT32, BASE_DEC, VALS(gsm_map_T_extendedRoutingInfo_vals), 0,
12784         "SendRoutingInfoRes/extendedRoutingInfo", HFILL }},
12785     { &hf_gsm_map_routingInfo,
12786       { "routingInfo", "gsm_map.routingInfo",
12787         FT_UINT32, BASE_DEC, VALS(gsm_map_T_routingInfo_vals), 0,
12788         "SendRoutingInfoRes/extendedRoutingInfo/routingInfo", HFILL }},
12789     { &hf_gsm_map_roamingNumber,
12790       { "roamingNumber", "gsm_map.roamingNumber",
12791         FT_BYTES, BASE_HEX, NULL, 0,
12792         "", HFILL }},
12793     { &hf_gsm_map_forwardingData,
12794       { "forwardingData", "gsm_map.forwardingData",
12795         FT_NONE, BASE_NONE, NULL, 0,
12796         "", HFILL }},
12797     { &hf_gsm_map_camelRoutingInfo,
12798       { "camelRoutingInfo", "gsm_map.camelRoutingInfo",
12799         FT_NONE, BASE_NONE, NULL, 0,
12800         "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo", HFILL }},
12801     { &hf_gsm_map_gmscCamelSubscriptionInfo,
12802       { "gmscCamelSubscriptionInfo", "gsm_map.gmscCamelSubscriptionInfo",
12803         FT_NONE, BASE_NONE, NULL, 0,
12804         "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo", HFILL }},
12805     { &hf_gsm_map_t_CSI,
12806       { "t-CSI", "gsm_map.t_CSI",
12807         FT_NONE, BASE_NONE, NULL, 0,
12808         "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo/t-CSI", HFILL }},
12809     { &hf_gsm_map_t_BcsmCamelTDPDataList,
12810       { "t-BcsmCamelTDPDataList", "gsm_map.t_BcsmCamelTDPDataList",
12811         FT_NONE, BASE_NONE, NULL, 0,
12812         "", HFILL }},
12813     { &hf_gsm_map_cugSubscriptionFlag,
12814       { "cugSubscriptionFlag", "gsm_map.cugSubscriptionFlag",
12815         FT_NONE, BASE_NONE, NULL, 0,
12816         "SendRoutingInfoRes/cugSubscriptionFlag", HFILL }},
12817     { &hf_gsm_map_subscriberInfo,
12818       { "subscriberInfo", "gsm_map.subscriberInfo",
12819         FT_NONE, BASE_NONE, NULL, 0,
12820         "", HFILL }},
12821     { &hf_gsm_map_forwardingInterrogationRequired,
12822       { "forwardingInterrogationRequired", "gsm_map.forwardingInterrogationRequired",
12823         FT_NONE, BASE_NONE, NULL, 0,
12824         "SendRoutingInfoRes/forwardingInterrogationRequired", HFILL }},
12825     { &hf_gsm_map_vmsc_Address,
12826       { "vmsc-Address", "gsm_map.vmsc_Address",
12827         FT_BYTES, BASE_HEX, NULL, 0,
12828         "SendRoutingInfoRes/vmsc-Address", HFILL }},
12829     { &hf_gsm_map_ccbs_Indicators,
12830       { "ccbs-Indicators", "gsm_map.ccbs_Indicators",
12831         FT_NONE, BASE_NONE, NULL, 0,
12832         "SendRoutingInfoRes/ccbs-Indicators", HFILL }},
12833     { &hf_gsm_map_ccbs_Possible,
12834       { "ccbs-Possible", "gsm_map.ccbs_Possible",
12835         FT_NONE, BASE_NONE, NULL, 0,
12836         "", HFILL }},
12837     { &hf_gsm_map_keepCCBS_CallIndicator,
12838       { "keepCCBS-CallIndicator", "gsm_map.keepCCBS_CallIndicator",
12839         FT_NONE, BASE_NONE, NULL, 0,
12840         "SendRoutingInfoRes/ccbs-Indicators/keepCCBS-CallIndicator", HFILL }},
12841     { &hf_gsm_map_numberPortabilityStatus,
12842       { "numberPortabilityStatus", "gsm_map.numberPortabilityStatus",
12843         FT_UINT32, BASE_DEC, VALS(gsm_map_NumberPortabilityStatus_vals), 0,
12844         "", HFILL }},
12845     { &hf_gsm_map_assumedIdle,
12846       { "assumedIdle", "gsm_map.assumedIdle",
12847         FT_NONE, BASE_NONE, NULL, 0,
12848         "SubscriberState/assumedIdle", HFILL }},
12849     { &hf_gsm_map_camelBusy,
12850       { "camelBusy", "gsm_map.camelBusy",
12851         FT_NONE, BASE_NONE, NULL, 0,
12852         "SubscriberState/camelBusy", HFILL }},
12853     { &hf_gsm_map_notProvidedFromVLR,
12854       { "notProvidedFromVLR", "gsm_map.notProvidedFromVLR",
12855         FT_NONE, BASE_NONE, NULL, 0,
12856         "SubscriberState/notProvidedFromVLR", HFILL }},
12857     { &hf_gsm_map_ageOfLocationInformation,
12858       { "ageOfLocationInformation", "gsm_map.ageOfLocationInformation",
12859         FT_UINT32, BASE_DEC, NULL, 0,
12860         "", HFILL }},
12861     { &hf_gsm_map_geographicalInformation,
12862       { "geographicalInformation", "gsm_map.geographicalInformation",
12863         FT_BYTES, BASE_HEX, NULL, 0,
12864         "", HFILL }},
12865     { &hf_gsm_map_vlr_number,
12866       { "vlr-number", "gsm_map.vlr_number",
12867         FT_BYTES, BASE_HEX, NULL, 0,
12868         "LocationInformation/vlr-number", HFILL }},
12869     { &hf_gsm_map_locationNumber,
12870       { "locationNumber", "gsm_map.locationNumber",
12871         FT_BYTES, BASE_HEX, NULL, 0,
12872         "LocationInformation/locationNumber", HFILL }},
12873     { &hf_gsm_map_cellIdOrLAI,
12874       { "cellIdOrLAI", "gsm_map.cellIdOrLAI",
12875         FT_UINT32, BASE_DEC, VALS(gsm_map_T_cellIdOrLAI_vals), 0,
12876         "LocationInformation/cellIdOrLAI", HFILL }},
12877     { &hf_gsm_map_cellIdFixedLength,
12878       { "cellIdFixedLength", "gsm_map.cellIdFixedLength",
12879         FT_BYTES, BASE_HEX, NULL, 0,
12880         "LocationInformation/cellIdOrLAI/cellIdFixedLength", HFILL }},
12881     { &hf_gsm_map_laiFixedLength,
12882       { "laiFixedLength", "gsm_map.laiFixedLength",
12883         FT_BYTES, BASE_HEX, NULL, 0,
12884         "", HFILL }},
12885     { &hf_gsm_map_selectedLSA_Id,
12886       { "selectedLSA-Id", "gsm_map.selectedLSA_Id",
12887         FT_BYTES, BASE_HEX, NULL, 0,
12888         "LocationInformation/selectedLSA-Id", HFILL }},
12889     { &hf_gsm_map_geodeticInformation,
12890       { "geodeticInformation", "gsm_map.geodeticInformation",
12891         FT_BYTES, BASE_HEX, NULL, 0,
12892         "", HFILL }},
12893     { &hf_gsm_map_currentLocationRetrieved,
12894       { "currentLocationRetrieved", "gsm_map.currentLocationRetrieved",
12895         FT_NONE, BASE_NONE, NULL, 0,
12896         "", HFILL }},
12897     { &hf_gsm_map_sai_Present,
12898       { "sai-Present", "gsm_map.sai_Present",
12899         FT_NONE, BASE_NONE, NULL, 0,
12900         "", HFILL }},
12901     { &hf_gsm_map_locationInformation,
12902       { "locationInformation", "gsm_map.locationInformation",
12903         FT_NONE, BASE_NONE, NULL, 0,
12904         "SubscriberInfo/locationInformation", HFILL }},
12905     { &hf_gsm_map_subscriberState,
12906       { "subscriberState", "gsm_map.subscriberState",
12907         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberState_vals), 0,
12908         "SubscriberInfo/subscriberState", HFILL }},
12909     { &hf_gsm_map_locationInformationGPRS,
12910       { "locationInformationGPRS", "gsm_map.locationInformationGPRS",
12911         FT_NONE, BASE_NONE, NULL, 0,
12912         "SubscriberInfo/locationInformationGPRS", HFILL }},
12913     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI,
12914       { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.cellGlobalIdOrServiceAreaIdOrLAI",
12915         FT_UINT32, BASE_DEC, VALS(gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
12916         "SubscriberInfo/locationInformationGPRS/cellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
12917     { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
12918       { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
12919         FT_BYTES, BASE_HEX, NULL, 0,
12920         "SubscriberInfo/locationInformationGPRS/cellGlobalIdOrServiceAreaIdOrLAI/cellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
12921     { &hf_gsm_map_routeingAreaIdentity,
12922       { "routeingAreaIdentity", "gsm_map.routeingAreaIdentity",
12923         FT_BYTES, BASE_HEX, NULL, 0,
12924         "SubscriberInfo/locationInformationGPRS/routeingAreaIdentity", HFILL }},
12925     { &hf_gsm_map_selectedLSAIdentity,
12926       { "selectedLSAIdentity", "gsm_map.selectedLSAIdentity",
12927         FT_BYTES, BASE_HEX, NULL, 0,
12928         "SubscriberInfo/locationInformationGPRS/selectedLSAIdentity", HFILL }},
12929     { &hf_gsm_map_ps_SubscriberState,
12930       { "ps-SubscriberState", "gsm_map.ps_SubscriberState",
12931         FT_UINT32, BASE_DEC, VALS(gsm_map_T_ps_SubscriberState_vals), 0,
12932         "SubscriberInfo/ps-SubscriberState", HFILL }},
12933     { &hf_gsm_map_notProvidedFromSGSN,
12934       { "notProvidedFromSGSN", "gsm_map.notProvidedFromSGSN",
12935         FT_NONE, BASE_NONE, NULL, 0,
12936         "SubscriberInfo/ps-SubscriberState/notProvidedFromSGSN", HFILL }},
12937     { &hf_gsm_map_ps_Detached,
12938       { "ps-Detached", "gsm_map.ps_Detached",
12939         FT_NONE, BASE_NONE, NULL, 0,
12940         "SubscriberInfo/ps-SubscriberState/ps-Detached", HFILL }},
12941     { &hf_gsm_map_ps_AttachedNotReachableForPaging,
12942       { "ps-AttachedNotReachableForPaging", "gsm_map.ps_AttachedNotReachableForPaging",
12943         FT_NONE, BASE_NONE, NULL, 0,
12944         "SubscriberInfo/ps-SubscriberState/ps-AttachedNotReachableForPaging", HFILL }},
12945     { &hf_gsm_map_ps_AttachedReachableForPaging,
12946       { "ps-AttachedReachableForPaging", "gsm_map.ps_AttachedReachableForPaging",
12947         FT_NONE, BASE_NONE, NULL, 0,
12948         "SubscriberInfo/ps-SubscriberState/ps-AttachedReachableForPaging", HFILL }},
12949     { &hf_gsm_map_ps_PDP_ActiveNotReachableForPaging,
12950       { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ps_PDP_ActiveNotReachableForPaging",
12951         FT_NONE, BASE_NONE, NULL, 0,
12952         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveNotReachableForPaging", HFILL }},
12953     { &hf_gsm_map_ps_PDP_ActiveNotReachableForPaging_item,
12954       { "Item", "gsm_map.ps_PDP_ActiveNotReachableForPaging_item",
12955         FT_NONE, BASE_NONE, NULL, 0,
12956         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveNotReachableForPaging/_item", HFILL }},
12957     { &hf_gsm_map_pdp_ContextIdentifier,
12958       { "pdp-ContextIdentifier", "gsm_map.pdp_ContextIdentifier",
12959         FT_UINT32, BASE_DEC, NULL, 0,
12960         "", HFILL }},
12961     { &hf_gsm_map_pdp_ContextActive,
12962       { "pdp-ContextActive", "gsm_map.pdp_ContextActive",
12963         FT_NONE, BASE_NONE, NULL, 0,
12964         "", HFILL }},
12965     { &hf_gsm_map_apn_Subscribed,
12966       { "apn-Subscribed", "gsm_map.apn_Subscribed",
12967         FT_BYTES, BASE_HEX, NULL, 0,
12968         "", HFILL }},
12969     { &hf_gsm_map_apn_InUse,
12970       { "apn-InUse", "gsm_map.apn_InUse",
12971         FT_BYTES, BASE_HEX, NULL, 0,
12972         "", HFILL }},
12973     { &hf_gsm_map_nsapi,
12974       { "nsapi", "gsm_map.nsapi",
12975         FT_UINT32, BASE_DEC, NULL, 0,
12976         "", HFILL }},
12977     { &hf_gsm_map_transactionId,
12978       { "transactionId", "gsm_map.transactionId",
12979         FT_BYTES, BASE_HEX, NULL, 0,
12980         "", HFILL }},
12981     { &hf_gsm_map_teid_ForGnAndGp,
12982       { "teid-ForGnAndGp", "gsm_map.teid_ForGnAndGp",
12983         FT_BYTES, BASE_HEX, NULL, 0,
12984         "", HFILL }},
12985     { &hf_gsm_map_teid_ForIu,
12986       { "teid-ForIu", "gsm_map.teid_ForIu",
12987         FT_BYTES, BASE_HEX, NULL, 0,
12988         "", HFILL }},
12989     { &hf_gsm_map_ggsn_Address,
12990       { "ggsn-Address", "gsm_map.ggsn_Address",
12991         FT_BYTES, BASE_HEX, NULL, 0,
12992         "", HFILL }},
12993     { &hf_gsm_map_qos_Requested,
12994       { "qos-Requested", "gsm_map.qos_Requested",
12995         FT_BYTES, BASE_HEX, NULL, 0,
12996         "", HFILL }},
12997     { &hf_gsm_map_qos_Negotiated,
12998       { "qos-Negotiated", "gsm_map.qos_Negotiated",
12999         FT_BYTES, BASE_HEX, NULL, 0,
13000         "", HFILL }},
13001     { &hf_gsm_map_chargingId,
13002       { "chargingId", "gsm_map.chargingId",
13003         FT_BYTES, BASE_HEX, NULL, 0,
13004         "", HFILL }},
13005     { &hf_gsm_map_chargingCharacteristics,
13006       { "chargingCharacteristics", "gsm_map.chargingCharacteristics",
13007         FT_BYTES, BASE_HEX, NULL, 0,
13008         "", HFILL }},
13009     { &hf_gsm_map_rnc_Address,
13010       { "rnc-Address", "gsm_map.rnc_Address",
13011         FT_BYTES, BASE_HEX, NULL, 0,
13012         "", HFILL }},
13013     { &hf_gsm_map_qos2_Subscribed,
13014       { "qos2-Subscribed", "gsm_map.qos2_Subscribed",
13015         FT_BYTES, BASE_HEX, NULL, 0,
13016         "", HFILL }},
13017     { &hf_gsm_map_qos2_Requested,
13018       { "qos2-Requested", "gsm_map.qos2_Requested",
13019         FT_BYTES, BASE_HEX, NULL, 0,
13020         "", HFILL }},
13021     { &hf_gsm_map_qos2_Negotiated,
13022       { "qos2-Negotiated", "gsm_map.qos2_Negotiated",
13023         FT_BYTES, BASE_HEX, NULL, 0,
13024         "", HFILL }},
13025     { &hf_gsm_map_ps_PDP_ActiveReachableForPaging,
13026       { "ps-PDP-ActiveReachableForPaging", "gsm_map.ps_PDP_ActiveReachableForPaging",
13027         FT_NONE, BASE_NONE, NULL, 0,
13028         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveReachableForPaging", HFILL }},
13029     { &hf_gsm_map_ps_PDP_ActiveReachableForPaging_item,
13030       { "Item", "gsm_map.ps_PDP_ActiveReachableForPaging_item",
13031         FT_NONE, BASE_NONE, NULL, 0,
13032         "SubscriberInfo/ps-SubscriberState/ps-PDP-ActiveReachableForPaging/_item", HFILL }},
13033     { &hf_gsm_map_netDetNotReachable,
13034       { "netDetNotReachable", "gsm_map.netDetNotReachable",
13035         FT_UINT32, BASE_DEC, VALS(gsm_map_T_netDetNotReachable_vals), 0,
13036         "SubscriberInfo/ps-SubscriberState/netDetNotReachable", HFILL }},
13037     { &hf_gsm_map_imei,
13038       { "imei", "gsm_map.imei",
13039         FT_BYTES, BASE_HEX, NULL, 0,
13040         "", HFILL }},
13041     { &hf_gsm_map_ms_Classmark2,
13042       { "ms-Classmark2", "gsm_map.ms_Classmark2",
13043         FT_BYTES, BASE_HEX, NULL, 0,
13044         "SubscriberInfo/ms-Classmark2", HFILL }},
13045     { &hf_gsm_map_gprs_MS_Class,
13046       { "gprs-MS-Class", "gsm_map.gprs_MS_Class",
13047         FT_NONE, BASE_NONE, NULL, 0,
13048         "SubscriberInfo/gprs-MS-Class", HFILL }},
13049     { &hf_gsm_map_mSNetworkCapability,
13050       { "mSNetworkCapability", "gsm_map.mSNetworkCapability",
13051         FT_BYTES, BASE_HEX, NULL, 0,
13052         "SubscriberInfo/gprs-MS-Class/mSNetworkCapability", HFILL }},
13053     { &hf_gsm_map_mSRadioAccessCapability,
13054       { "mSRadioAccessCapability", "gsm_map.mSRadioAccessCapability",
13055         FT_BYTES, BASE_HEX, NULL, 0,
13056         "SubscriberInfo/gprs-MS-Class/mSRadioAccessCapability", HFILL }},
13057     { &hf_gsm_map_mnpInfoRes,
13058       { "mnpInfoRes", "gsm_map.mnpInfoRes",
13059         FT_NONE, BASE_NONE, NULL, 0,
13060         "SubscriberInfo/mnpInfoRes", HFILL }},
13061     { &hf_gsm_map_routeingNumber,
13062       { "routeingNumber", "gsm_map.routeingNumber",
13063         FT_BYTES, BASE_HEX, NULL, 0,
13064         "SubscriberInfo/mnpInfoRes/routeingNumber", HFILL }},
13065     { &hf_gsm_map_ext_ProtocolId,
13066       { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
13067         FT_UINT32, BASE_DEC, VALS(gsm_map_T_ext_ProtocolId_vals), 0,
13068         "AdditionalSignalInfo/ext-ProtocolId", HFILL }},
13069     { &hf_gsm_map_ext_signalInfo,
13070       { "signalInfo", "gsm_map.signalInfo",
13071         FT_BYTES, BASE_HEX, NULL, 0,
13072         "AdditionalSignalInfo/signalInfo", HFILL }},
13073     { &hf_gsm_map_cug_OutgoingAccess,
13074       { "cug-OutgoingAccess", "gsm_map.cug_OutgoingAccess",
13075         FT_NONE, BASE_NONE, NULL, 0,
13076         "Cug-CheckInfo/cug-OutgoingAccess", HFILL }},
13077     { &hf_gsm_map_gsm_BearerCapability,
13078       { "gsm-BearerCapability", "gsm_map.gsm_BearerCapability",
13079         FT_NONE, BASE_NONE, NULL, 0,
13080         "", HFILL }},
13081     { &hf_gsm_map_supportedCamelPhasesInGMSC,
13082       { "supportedCamelPhasesInGMSC", "gsm_map.supportedCamelPhasesInGMSC",
13083         FT_BYTES, BASE_HEX, NULL, 0,
13084         "ProvideRoamingNumberArg/supportedCamelPhasesInGMSC", HFILL }},
13085     { &hf_gsm_map_orNotSupportedInGMSC,
13086       { "orNotSupportedInGMSC", "gsm_map.orNotSupportedInGMSC",
13087         FT_NONE, BASE_NONE, NULL, 0,
13088         "ProvideRoamingNumberArg/orNotSupportedInGMSC", HFILL }},
13089     { &hf_gsm_map_uu_Data,
13090       { "uu-Data", "gsm_map.uu_Data",
13091         FT_NONE, BASE_NONE, NULL, 0,
13092         "ResumeCallHandlingArg/uu-Data", HFILL }},
13093     { &hf_gsm_map_uuIndicator,
13094       { "uuIndicator", "gsm_map.uuIndicator",
13095         FT_BYTES, BASE_HEX, NULL, 0,
13096         "ResumeCallHandlingArg/uu-Data/uuIndicator", HFILL }},
13097     { &hf_gsm_map_uui,
13098       { "uui", "gsm_map.uui",
13099         FT_BYTES, BASE_HEX, NULL, 0,
13100         "ResumeCallHandlingArg/uu-Data/uui", HFILL }},
13101     { &hf_gsm_map_uusCFInteraction,
13102       { "uusCFInteraction", "gsm_map.uusCFInteraction",
13103         FT_NONE, BASE_NONE, NULL, 0,
13104         "ResumeCallHandlingArg/uu-Data/uusCFInteraction", HFILL }},
13105     { &hf_gsm_map_allInformationSent,
13106       { "allInformationSent", "gsm_map.allInformationSent",
13107         FT_NONE, BASE_NONE, NULL, 0,
13108         "ResumeCallHandlingArg/allInformationSent", HFILL }},
13109     { &hf_gsm_map_isdn_BearerCapability,
13110       { "isdn-BearerCapability", "gsm_map.isdn_BearerCapability",
13111         FT_NONE, BASE_NONE, NULL, 0,
13112         "ProvideSIWFSNumberArg/isdn-BearerCapability", HFILL }},
13113     { &hf_gsm_map_call_Direction,
13114       { "call-Direction", "gsm_map.call_Direction",
13115         FT_BYTES, BASE_HEX, NULL, 0,
13116         "ProvideSIWFSNumberArg/call-Direction", HFILL }},
13117     { &hf_gsm_map_b_Subscriber_Address,
13118       { "b-Subscriber-Address", "gsm_map.b_Subscriber_Address",
13119         FT_BYTES, BASE_HEX, NULL, 0,
13120         "ProvideSIWFSNumberArg/b-Subscriber-Address", HFILL }},
13121     { &hf_gsm_map_chosenChannel,
13122       { "chosenChannel", "gsm_map.chosenChannel",
13123         FT_NONE, BASE_NONE, NULL, 0,
13124         "", HFILL }},
13125     { &hf_gsm_map_lowerLayerCompatibility,
13126       { "lowerLayerCompatibility", "gsm_map.lowerLayerCompatibility",
13127         FT_NONE, BASE_NONE, NULL, 0,
13128         "ProvideSIWFSNumberArg/lowerLayerCompatibility", HFILL }},
13129     { &hf_gsm_map_highLayerCompatibility,
13130       { "highLayerCompatibility", "gsm_map.highLayerCompatibility",
13131         FT_NONE, BASE_NONE, NULL, 0,
13132         "ProvideSIWFSNumberArg/highLayerCompatibility", HFILL }},
13133     { &hf_gsm_map_sIWFSNumber,
13134       { "sIWFSNumber", "gsm_map.sIWFSNumber",
13135         FT_BYTES, BASE_HEX, NULL, 0,
13136         "ProvideSIWFSNumberRes/sIWFSNumber", HFILL }},
13137     { &hf_gsm_map_channelType,
13138       { "channelType", "gsm_map.channelType",
13139         FT_NONE, BASE_NONE, NULL, 0,
13140         "SIWFSSignallingModifyArg/channelType", HFILL }},
13141     { &hf_gsm_map_ccbs_Monitoring,
13142       { "ccbs-Monitoring", "gsm_map.ccbs_Monitoring",
13143         FT_UINT32, BASE_DEC, VALS(gsm_map_Ccbs_Monitoring_vals), 0,
13144         "SetReportingStateArg/ccbs-Monitoring", HFILL }},
13145     { &hf_gsm_map_ccbs_SubscriberStatus,
13146       { "ccbs-SubscriberStatus", "gsm_map.ccbs_SubscriberStatus",
13147         FT_UINT32, BASE_DEC, VALS(gsm_map_Ccbs_SubscriberStatus_vals), 0,
13148         "", HFILL }},
13149     { &hf_gsm_map_eventReportData,
13150       { "eventReportData", "gsm_map.eventReportData",
13151         FT_NONE, BASE_NONE, NULL, 0,
13152         "StatusReportArg/eventReportData", HFILL }},
13153     { &hf_gsm_map_callReportdata,
13154       { "callReportdata", "gsm_map.callReportdata",
13155         FT_NONE, BASE_NONE, NULL, 0,
13156         "StatusReportArg/callReportdata", HFILL }},
13157     { &hf_gsm_map_monitoringMode,
13158       { "monitoringMode", "gsm_map.monitoringMode",
13159         FT_UINT32, BASE_DEC, VALS(gsm_map_MonitoringMode_vals), 0,
13160         "StatusReportArg/callReportdata/monitoringMode", HFILL }},
13161     { &hf_gsm_map_callOutcome,
13162       { "callOutcome", "gsm_map.callOutcome",
13163         FT_UINT32, BASE_DEC, VALS(gsm_map_CallOutcome_vals), 0,
13164         "StatusReportArg/callReportdata/callOutcome", HFILL }},
13165     { &hf_gsm_map_callInfo,
13166       { "callInfo", "gsm_map.callInfo",
13167         FT_NONE, BASE_NONE, NULL, 0,
13168         "", HFILL }},
13169     { &hf_gsm_map_ccbs_Feature,
13170       { "ccbs-Feature", "gsm_map.ccbs_Feature",
13171         FT_NONE, BASE_NONE, NULL, 0,
13172         "", HFILL }},
13173     { &hf_gsm_map_translatedB_Number,
13174       { "translatedB-Number", "gsm_map.translatedB_Number",
13175         FT_BYTES, BASE_HEX, NULL, 0,
13176         "", HFILL }},
13177     { &hf_gsm_map_replaceB_Number,
13178       { "replaceB-Number", "gsm_map.replaceB_Number",
13179         FT_NONE, BASE_NONE, NULL, 0,
13180         "RemoteUserFreeArg/replaceB-Number", HFILL }},
13181     { &hf_gsm_map_ruf_Outcome,
13182       { "ruf-Outcome", "gsm_map.ruf_Outcome",
13183         FT_UINT32, BASE_DEC, VALS(gsm_map_Ruf_Outcome_vals), 0,
13184         "RemoteUserFreeRes/ruf-Outcome", HFILL }},
13185     { &hf_gsm_map_ss_SubscriptionOption,
13186       { "ss-SubscriptionOption", "gsm_map.ss_SubscriptionOption",
13187         FT_UINT32, BASE_DEC, VALS(gsm_map_Ss_SubscriptionOption_vals), 0,
13188         "Ss-Data/ss-SubscriptionOption", HFILL }},
13189     { &hf_gsm_map_ccbs_Index,
13190       { "ccbs-Index", "gsm_map.ccbs_Index",
13191         FT_UINT32, BASE_DEC, NULL, 0,
13192         "", HFILL }},
13193     { &hf_gsm_map_b_subscriberNumber,
13194       { "b-subscriberNumber", "gsm_map.b_subscriberNumber",
13195         FT_BYTES, BASE_HEX, NULL, 0,
13196         "", HFILL }},
13197     { &hf_gsm_map_b_subscriberSubaddress,
13198       { "b-subscriberSubaddress", "gsm_map.b_subscriberSubaddress",
13199         FT_BYTES, BASE_HEX, NULL, 0,
13200         "", HFILL }},
13201     { &hf_gsm_map_forwardingFeatureList,
13202       { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
13203         FT_NONE, BASE_NONE, NULL, 0,
13204         "InterrogateSS-Res/forwardingFeatureList", HFILL }},
13205     { &hf_gsm_map_genericServiceInfo,
13206       { "genericServiceInfo", "gsm_map.genericServiceInfo",
13207         FT_NONE, BASE_NONE, NULL, 0,
13208         "InterrogateSS-Res/genericServiceInfo", HFILL }},
13209     { &hf_gsm_map_maximumEntitledPriority,
13210       { "maximumEntitledPriority", "gsm_map.maximumEntitledPriority",
13211         FT_UINT32, BASE_DEC, NULL, 0,
13212         "InterrogateSS-Res/genericServiceInfo/maximumEntitledPriority", HFILL }},
13213     { &hf_gsm_map_ccbs_FeatureList,
13214       { "ccbs-FeatureList", "gsm_map.ccbs_FeatureList",
13215         FT_NONE, BASE_NONE, NULL, 0,
13216         "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList", HFILL }},
13217     { &hf_gsm_map_ccbs_FeatureList_item,
13218       { "Item", "gsm_map.ccbs_FeatureList_item",
13219         FT_NONE, BASE_NONE, NULL, 0,
13220         "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList/_item", HFILL }},
13221     { &hf_gsm_map_ussd_DataCodingScheme,
13222       { "ussd-DataCodingScheme", "gsm_map.ussd_DataCodingScheme",
13223         FT_BYTES, BASE_HEX, NULL, 0,
13224         "", HFILL }},
13225     { &hf_gsm_map_ussd_String,
13226       { "ussd-String", "gsm_map.ussd_String",
13227         FT_BYTES, BASE_HEX, NULL, 0,
13228         "", HFILL }},
13229     { &hf_gsm_map_ccbs_Data,
13230       { "ccbs-Data", "gsm_map.ccbs_Data",
13231         FT_NONE, BASE_NONE, NULL, 0,
13232         "RegisterCC-EntryArg/ccbs-Data", HFILL }},
13233     { &hf_gsm_map_serviceIndicator,
13234       { "serviceIndicator", "gsm_map.serviceIndicator",
13235         FT_BYTES, BASE_HEX, NULL, 0,
13236         "RegisterCC-EntryArg/ccbs-Data/serviceIndicator", HFILL }},
13237     { &hf_gsm_map_sm_RP_PRI,
13238       { "sm-RP-PRI", "gsm_map.sm_RP_PRI",
13239         FT_BOOLEAN, 8, NULL, 0,
13240         "RoutingInfoForSMArg/sm-RP-PRI", HFILL }},
13241     { &hf_gsm_map_serviceCentreAddress,
13242       { "serviceCentreAddress", "gsm_map.serviceCentreAddress",
13243         FT_BYTES, BASE_HEX, NULL, 0,
13244         "", HFILL }},
13245     { &hf_gsm_map_gprsSupportIndicator,
13246       { "gprsSupportIndicator", "gsm_map.gprsSupportIndicator",
13247         FT_NONE, BASE_NONE, NULL, 0,
13248         "", HFILL }},
13249     { &hf_gsm_map_sm_RP_MTI,
13250       { "sm-RP-MTI", "gsm_map.sm_RP_MTI",
13251         FT_UINT32, BASE_DEC, NULL, 0,
13252         "RoutingInfoForSMArg/sm-RP-MTI", HFILL }},
13253     { &hf_gsm_map_sm_RP_SMEA,
13254       { "sm-RP-SMEA", "gsm_map.sm_RP_SMEA",
13255         FT_BYTES, BASE_HEX, NULL, 0,
13256         "RoutingInfoForSMArg/sm-RP-SMEA", HFILL }},
13257     { &hf_gsm_map_locationInfoWithLMSI,
13258       { "locationInfoWithLMSI", "gsm_map.locationInfoWithLMSI",
13259         FT_NONE, BASE_NONE, NULL, 0,
13260         "RoutingInfoForSMRes/locationInfoWithLMSI", HFILL }},
13261     { &hf_gsm_map_networkNode_Number,
13262       { "networkNode-Number", "gsm_map.networkNode_Number",
13263         FT_BYTES, BASE_HEX, NULL, 0,
13264         "RoutingInfoForSMRes/locationInfoWithLMSI/networkNode-Number", HFILL }},
13265     { &hf_gsm_map_gprsNodeIndicator,
13266       { "gprsNodeIndicator", "gsm_map.gprsNodeIndicator",
13267         FT_NONE, BASE_NONE, NULL, 0,
13268         "RoutingInfoForSMRes/locationInfoWithLMSI/gprsNodeIndicator", HFILL }},
13269     { &hf_gsm_map_additional_Number,
13270       { "additional-Number", "gsm_map.additional_Number",
13271         FT_UINT32, BASE_DEC, VALS(gsm_map_T_additional_Number_vals), 0,
13272         "RoutingInfoForSMRes/locationInfoWithLMSI/additional-Number", HFILL }},
13273     { &hf_gsm_map_sm_RP_DA,
13274       { "sm-RP-DA", "gsm_map.sm_RP_DA",
13275         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_DA_vals), 0,
13276         "", HFILL }},
13277     { &hf_gsm_map_sm_RP_OA,
13278       { "sm-RP-OA", "gsm_map.sm_RP_OA",
13279         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_OA_vals), 0,
13280         "", HFILL }},
13281     { &hf_gsm_map_sm_RP_UI,
13282       { "sm-RP-UI", "gsm_map.sm_RP_UI",
13283         FT_BYTES, BASE_HEX, NULL, 0,
13284         "", HFILL }},
13285     { &hf_gsm_map_serviceCentreAddressOA,
13286       { "serviceCentreAddressOA", "gsm_map.serviceCentreAddressOA",
13287         FT_BYTES, BASE_HEX, NULL, 0,
13288         "Sm-RP-OA/serviceCentreAddressOA", HFILL }},
13289     { &hf_gsm_map_noSM_RP_OA,
13290       { "noSM-RP-OA", "gsm_map.noSM_RP_OA",
13291         FT_NONE, BASE_NONE, NULL, 0,
13292         "Sm-RP-OA/noSM-RP-OA", HFILL }},
13293     { &hf_gsm_map_serviceCentreAddressDA,
13294       { "serviceCentreAddressDA", "gsm_map.serviceCentreAddressDA",
13295         FT_BYTES, BASE_HEX, NULL, 0,
13296         "Sm-RP-DA/serviceCentreAddressDA", HFILL }},
13297     { &hf_gsm_map_noSM_RP_DA,
13298       { "noSM-RP-DA", "gsm_map.noSM_RP_DA",
13299         FT_NONE, BASE_NONE, NULL, 0,
13300         "Sm-RP-DA/noSM-RP-DA", HFILL }},
13301     { &hf_gsm_map_moreMessagesToSend,
13302       { "moreMessagesToSend", "gsm_map.moreMessagesToSend",
13303         FT_NONE, BASE_NONE, NULL, 0,
13304         "Mt-forwardSM-Arg/moreMessagesToSend", HFILL }},
13305     { &hf_gsm_map_sm_DeliveryOutcome,
13306       { "sm-DeliveryOutcome", "gsm_map.sm_DeliveryOutcome",
13307         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0,
13308         "ReportSM-DeliveryStatusArg/sm-DeliveryOutcome", HFILL }},
13309     { &hf_gsm_map_absentSubscriberDiagnosticSM,
13310       { "absentSubscriberDiagnosticSM", "gsm_map.absentSubscriberDiagnosticSM",
13311         FT_UINT32, BASE_DEC, NULL, 0,
13312         "", HFILL }},
13313     { &hf_gsm_map_deliveryOutcomeIndicator,
13314       { "deliveryOutcomeIndicator", "gsm_map.deliveryOutcomeIndicator",
13315         FT_NONE, BASE_NONE, NULL, 0,
13316         "ReportSM-DeliveryStatusArg/deliveryOutcomeIndicator", HFILL }},
13317     { &hf_gsm_map_additionalSM_DeliveryOutcome,
13318       { "additionalSM-DeliveryOutcome", "gsm_map.additionalSM_DeliveryOutcome",
13319         FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0,
13320         "ReportSM-DeliveryStatusArg/additionalSM-DeliveryOutcome", HFILL }},
13321     { &hf_gsm_map_additionalAbsentSubscriberDiagnosticSM,
13322       { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.additionalAbsentSubscriberDiagnosticSM",
13323         FT_UINT32, BASE_DEC, NULL, 0,
13324         "", HFILL }},
13325     { &hf_gsm_map_storedMSISDN,
13326       { "storedMSISDN", "gsm_map.storedMSISDN",
13327         FT_BYTES, BASE_HEX, NULL, 0,
13328         "", HFILL }},
13329     { &hf_gsm_map_mw_Status,
13330       { "mw-Status", "gsm_map.mw_Status",
13331         FT_BYTES, BASE_HEX, NULL, 0,
13332         "InformServiceCentreArg/mw-Status", HFILL }},
13333     { &hf_gsm_map_alertReason,
13334       { "alertReason", "gsm_map.alertReason",
13335         FT_UINT32, BASE_DEC, VALS(gsm_map_T_alertReason_vals), 0,
13336         "ReadyForSM-Arg/alertReason", HFILL }},
13337     { &hf_gsm_map_alertReasonIndicator,
13338       { "alertReasonIndicator", "gsm_map.alertReasonIndicator",
13339         FT_NONE, BASE_NONE, NULL, 0,
13340         "ReadyForSM-Arg/alertReasonIndicator", HFILL }},
13341     { &hf_gsm_map_requestedInfo,
13342       { "requestedInfo", "gsm_map.requestedInfo",
13343         FT_NONE, BASE_NONE, NULL, 0,
13344         "", HFILL }},
13345     { &hf_gsm_map_locationInformationFlag,
13346       { "locationInformation", "gsm_map.locationInformation",
13347         FT_NONE, BASE_NONE, NULL, 0,
13348         "RequestedInfo/locationInformation", HFILL }},
13349     { &hf_gsm_map_subscriberStateFlag,
13350       { "subscriberState", "gsm_map.subscriberState",
13351         FT_NONE, BASE_NONE, NULL, 0,
13352         "RequestedInfo/subscriberState", HFILL }},
13353     { &hf_gsm_map_currentLocation,
13354       { "currentLocation", "gsm_map.currentLocation",
13355         FT_NONE, BASE_NONE, NULL, 0,
13356         "RequestedInfo/currentLocation", HFILL }},
13357     { &hf_gsm_map_requestedDomain,
13358       { "requestedDomain", "gsm_map.requestedDomain",
13359         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestedDomain_vals), 0,
13360         "RequestedInfo/requestedDomain", HFILL }},
13361     { &hf_gsm_map_imei1,
13362       { "imei", "gsm_map.imei",
13363         FT_NONE, BASE_NONE, NULL, 0,
13364         "RequestedInfo/imei", HFILL }},
13365     { &hf_gsm_map_ms_classmark,
13366       { "ms-classmark", "gsm_map.ms_classmark",
13367         FT_NONE, BASE_NONE, NULL, 0,
13368         "RequestedInfo/ms-classmark", HFILL }},
13369     { &hf_gsm_map_mnpRequestedInfo,
13370       { "mnpRequestedInfo", "gsm_map.mnpRequestedInfo",
13371         FT_NONE, BASE_NONE, NULL, 0,
13372         "RequestedInfo/mnpRequestedInfo", HFILL }},
13373     { &hf_gsm_map_subscriberIdentity,
13374       { "subscriberIdentity", "gsm_map.subscriberIdentity",
13375         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
13376         "", HFILL }},
13377     { &hf_gsm_map_requestedSubscriptionInfo,
13378       { "requestedSubscriptionInfo", "gsm_map.requestedSubscriptionInfo",
13379         FT_NONE, BASE_NONE, NULL, 0,
13380         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo", HFILL }},
13381     { &hf_gsm_map_requestedSS_Info,
13382       { "requestedSS-Info", "gsm_map.requestedSS_Info",
13383         FT_NONE, BASE_NONE, NULL, 0,
13384         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/requestedSS-Info", HFILL }},
13385     { &hf_gsm_map_odb,
13386       { "odb", "gsm_map.odb",
13387         FT_NONE, BASE_NONE, NULL, 0,
13388         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/odb", HFILL }},
13389     { &hf_gsm_map_requestedCAMEL_SubscriptionInfo,
13390       { "requestedCAMEL-SubscriptionInfo", "gsm_map.requestedCAMEL_SubscriptionInfo",
13391         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestedCAMEL_SubscriptionInfo_vals), 0,
13392         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/requestedCAMEL-SubscriptionInfo", HFILL }},
13393     { &hf_gsm_map_supportedVLR_CAMEL_Phases_flg,
13394       { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases",
13395         FT_NONE, BASE_NONE, NULL, 0,
13396         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/supportedVLR-CAMEL-Phases", HFILL }},
13397     { &hf_gsm_map_supportedSGSN_CAMEL_Phases_flg,
13398       { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases",
13399         FT_NONE, BASE_NONE, NULL, 0,
13400         "AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/supportedSGSN-CAMEL-Phases", HFILL }},
13401     { &hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo,
13402       { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.additionalRequestedCAMEL_SubscriptionInfo",
13403         FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
13404         "", HFILL }},
13405     { &hf_gsm_map_callForwardingData,
13406       { "callForwardingData", "gsm_map.callForwardingData",
13407         FT_NONE, BASE_NONE, NULL, 0,
13408         "AnyTimeSubscriptionInterrogationRes/callForwardingData", HFILL }},
13409     { &hf_gsm_map_forwardingFeatureList1,
13410       { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
13411         FT_NONE, BASE_NONE, NULL, 0,
13412         "AnyTimeSubscriptionInterrogationRes/callForwardingData/forwardingFeatureList", HFILL }},
13413     { &hf_gsm_map_notificationToCSE,
13414       { "notificationToCSE", "gsm_map.notificationToCSE",
13415         FT_NONE, BASE_NONE, NULL, 0,
13416         "", HFILL }},
13417     { &hf_gsm_map_callBarringData,
13418       { "callBarringData", "gsm_map.callBarringData",
13419         FT_NONE, BASE_NONE, NULL, 0,
13420         "AnyTimeSubscriptionInterrogationRes/callBarringData", HFILL }},
13421     { &hf_gsm_map_password,
13422       { "password", "gsm_map.password",
13423         FT_STRING, BASE_NONE, NULL, 0,
13424         "", HFILL }},
13425     { &hf_gsm_map_wrongPasswordAttemptsCounter,
13426       { "wrongPasswordAttemptsCounter", "gsm_map.wrongPasswordAttemptsCounter",
13427         FT_UINT32, BASE_DEC, NULL, 0,
13428         "", HFILL }},
13429     { &hf_gsm_map_odb_Info,
13430       { "odb-Info", "gsm_map.odb_Info",
13431         FT_NONE, BASE_NONE, NULL, 0,
13432         "AnyTimeSubscriptionInterrogationRes/odb-Info", HFILL }},
13433     { &hf_gsm_map_camel_SubscriptionInfo,
13434       { "camel-SubscriptionInfo", "gsm_map.camel_SubscriptionInfo",
13435         FT_NONE, BASE_NONE, NULL, 0,
13436         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo", HFILL }},
13437     { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList1,
13438       { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList",
13439         FT_NONE, BASE_NONE, NULL, 0,
13440         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-BcsmCamelTDP-CriteriaList", HFILL }},
13441     { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList_item,
13442       { "Item", "gsm_map.o_BcsmCamelTDP_CriteriaList_item",
13443         FT_NONE, BASE_NONE, NULL, 0,
13444         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-BcsmCamelTDP-CriteriaList/_item", HFILL }},
13445     { &hf_gsm_map_o_BcsmTriggerDetectionPoint1,
13446       { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
13447         FT_UINT32, BASE_DEC, VALS(gsm_map_T_o_BcsmTriggerDetectionPoint_vals), 0,
13448         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-BcsmCamelTDP-CriteriaList/_item/o-BcsmTriggerDetectionPoint", HFILL }},
13449     { &hf_gsm_map_basicServiceCriteria1,
13450       { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
13451         FT_NONE, BASE_NONE, NULL, 0,
13452         "", HFILL }},
13453     { &hf_gsm_map_o_CauseValueCriteria,
13454       { "o-CauseValueCriteria", "gsm_map.o_CauseValueCriteria",
13455         FT_NONE, BASE_NONE, NULL, 0,
13456         "", HFILL }},
13457     { &hf_gsm_map_d_CSI,
13458       { "d-CSI", "gsm_map.d_CSI",
13459         FT_NONE, BASE_NONE, NULL, 0,
13460         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/d-CSI", HFILL }},
13461     { &hf_gsm_map_dp_AnalysedInfoCriteriaList,
13462       { "dp-AnalysedInfoCriteriaList", "gsm_map.dp_AnalysedInfoCriteriaList",
13463         FT_NONE, BASE_NONE, NULL, 0,
13464         "", HFILL }},
13465     { &hf_gsm_map_csi_Active,
13466       { "csi-Active", "gsm_map.csi_Active",
13467         FT_NONE, BASE_NONE, NULL, 0,
13468         "", HFILL }},
13469     { &hf_gsm_map_t_CSI1,
13470       { "t-CSI", "gsm_map.t_CSI",
13471         FT_NONE, BASE_NONE, NULL, 0,
13472         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/t-CSI", HFILL }},
13473     { &hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList,
13474       { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.t_BCSM_CAMEL_TDP_CriteriaList",
13475         FT_NONE, BASE_NONE, NULL, 0,
13476         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/t-BCSM-CAMEL-TDP-CriteriaList", HFILL }},
13477     { &hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList_item,
13478       { "Item", "gsm_map.t_BCSM_CAMEL_TDP_CriteriaList_item",
13479         FT_NONE, BASE_NONE, NULL, 0,
13480         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/t-BCSM-CAMEL-TDP-CriteriaList/_item", HFILL }},
13481     { &hf_gsm_map_t_BCSM_TriggerDetectionPoint,
13482       { "t-BCSM-TriggerDetectionPoint", "gsm_map.t_BCSM_TriggerDetectionPoint",
13483         FT_UINT32, BASE_DEC, VALS(gsm_map_T_t_BCSM_TriggerDetectionPoint_vals), 0,
13484         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/t-BCSM-CAMEL-TDP-CriteriaList/_item/t-BCSM-TriggerDetectionPoint", HFILL }},
13485     { &hf_gsm_map_t_CauseValueCriteria,
13486       { "t-CauseValueCriteria", "gsm_map.t_CauseValueCriteria",
13487         FT_NONE, BASE_NONE, NULL, 0,
13488         "", HFILL }},
13489     { &hf_gsm_map_vt_CSI,
13490       { "vt-CSI", "gsm_map.vt_CSI",
13491         FT_NONE, BASE_NONE, NULL, 0,
13492         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-CSI", HFILL }},
13493     { &hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList,
13494       { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_BCSM_CAMEL_TDP_CriteriaList",
13495         FT_NONE, BASE_NONE, NULL, 0,
13496         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-BCSM-CAMEL-TDP-CriteriaList", HFILL }},
13497     { &hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList_item,
13498       { "Item", "gsm_map.vt_BCSM_CAMEL_TDP_CriteriaList_item",
13499         FT_NONE, BASE_NONE, NULL, 0,
13500         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-BCSM-CAMEL-TDP-CriteriaList/_item", HFILL }},
13501     { &hf_gsm_map_t_BCSM_TriggerDetectionPoint1,
13502       { "t-BCSM-TriggerDetectionPoint", "gsm_map.t_BCSM_TriggerDetectionPoint",
13503         FT_UINT32, BASE_DEC, VALS(gsm_map_T_t_BCSM_TriggerDetectionPoint1_vals), 0,
13504         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-BCSM-CAMEL-TDP-CriteriaList/_item/t-BCSM-TriggerDetectionPoint", HFILL }},
13505     { &hf_gsm_map_tif_CSI_NotificationToCSE,
13506       { "tif-CSI-NotificationToCSE", "gsm_map.tif_CSI_NotificationToCSE",
13507         FT_NONE, BASE_NONE, NULL, 0,
13508         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/tif-CSI-NotificationToCSE", HFILL }},
13509     { &hf_gsm_map_gprs_CSI,
13510       { "gprs-CSI", "gsm_map.gprs_CSI",
13511         FT_NONE, BASE_NONE, NULL, 0,
13512         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI", HFILL }},
13513     { &hf_gsm_map_gprs_CamelTDPDataList,
13514       { "gprs-CamelTDPDataList", "gsm_map.gprs_CamelTDPDataList",
13515         FT_NONE, BASE_NONE, NULL, 0,
13516         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList", HFILL }},
13517     { &hf_gsm_map_gprs_CamelTDPDataList_item,
13518       { "Item", "gsm_map.gprs_CamelTDPDataList_item",
13519         FT_NONE, BASE_NONE, NULL, 0,
13520         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList/_item", HFILL }},
13521     { &hf_gsm_map_gprs_TriggerDetectionPoint,
13522       { "gprs-TriggerDetectionPoint", "gsm_map.gprs_TriggerDetectionPoint",
13523         FT_UINT32, BASE_DEC, VALS(gsm_map_T_gprs_TriggerDetectionPoint_vals), 0,
13524         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList/_item/gprs-TriggerDetectionPoint", HFILL }},
13525     { &hf_gsm_map_defaultSessionHandling,
13526       { "defaultSessionHandling", "gsm_map.defaultSessionHandling",
13527         FT_UINT32, BASE_DEC, VALS(gsm_map_T_defaultSessionHandling_vals), 0,
13528         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/gprs-CSI/gprs-CamelTDPDataList/_item/defaultSessionHandling", HFILL }},
13529     { &hf_gsm_map_mo_sms_CSI,
13530       { "mo-sms-CSI", "gsm_map.mo_sms_CSI",
13531         FT_NONE, BASE_NONE, NULL, 0,
13532         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mo-sms-CSI", HFILL }},
13533     { &hf_gsm_map_sms_CAMEL_TDP_DataList,
13534       { "sms-CAMEL-TDP-DataList", "gsm_map.sms_CAMEL_TDP_DataList",
13535         FT_NONE, BASE_NONE, NULL, 0,
13536         "", HFILL }},
13537     { &hf_gsm_map_ss_CSI1,
13538       { "ss-CSI", "gsm_map.ss_CSI",
13539         FT_NONE, BASE_NONE, NULL, 0,
13540         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/ss-CSI", HFILL }},
13541     { &hf_gsm_map_m_CSI,
13542       { "m-CSI", "gsm_map.m_CSI",
13543         FT_NONE, BASE_NONE, NULL, 0,
13544         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/m-CSI", HFILL }},
13545     { &hf_gsm_map_mobilityTriggers,
13546       { "mobilityTriggers", "gsm_map.mobilityTriggers",
13547         FT_NONE, BASE_NONE, NULL, 0,
13548         "", HFILL }},
13549     { &hf_gsm_map_specificCSIDeletedList,
13550       { "specificCSIDeletedList", "gsm_map.specificCSIDeletedList",
13551         FT_BYTES, BASE_HEX, NULL, 0,
13552         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/specificCSIDeletedList", HFILL }},
13553     { &hf_gsm_map_mt_sms_CSI,
13554       { "mt-sms-CSI", "gsm_map.mt_sms_CSI",
13555         FT_NONE, BASE_NONE, NULL, 0,
13556         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-sms-CSI", HFILL }},
13557     { &hf_gsm_map_mt_smsCAMELTDP_CriteriaList,
13558       { "mt-smsCAMELTDP-CriteriaList", "gsm_map.mt_smsCAMELTDP_CriteriaList",
13559         FT_NONE, BASE_NONE, NULL, 0,
13560         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList", HFILL }},
13561     { &hf_gsm_map_mt_smsCAMELTDP_CriteriaList_item,
13562       { "Item", "gsm_map.mt_smsCAMELTDP_CriteriaList_item",
13563         FT_NONE, BASE_NONE, NULL, 0,
13564         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item", HFILL }},
13565     { &hf_gsm_map_sms_TriggerDetectionPoint,
13566       { "sms-TriggerDetectionPoint", "gsm_map.sms_TriggerDetectionPoint",
13567         FT_UINT32, BASE_DEC, VALS(gsm_map_T_sms_TriggerDetectionPoint_vals), 0,
13568         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item/sms-TriggerDetectionPoint", HFILL }},
13569     { &hf_gsm_map_tpdu_TypeCriterion,
13570       { "tpdu-TypeCriterion", "gsm_map.tpdu_TypeCriterion",
13571         FT_NONE, BASE_NONE, NULL, 0,
13572         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item/tpdu-TypeCriterion", HFILL }},
13573     { &hf_gsm_map_tpdu_TypeCriterion_item,
13574       { "Item", "gsm_map.tpdu_TypeCriterion_item",
13575         FT_UINT32, BASE_DEC, VALS(gsm_map_T_tpdu_TypeCriterion_item_vals), 0,
13576         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mt-smsCAMELTDP-CriteriaList/_item/tpdu-TypeCriterion/_item", HFILL }},
13577     { &hf_gsm_map_mg_csi,
13578       { "mg-csi", "gsm_map.mg_csi",
13579         FT_NONE, BASE_NONE, NULL, 0,
13580         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/mg-csi", HFILL }},
13581     { &hf_gsm_map_o_IM_CSI,
13582       { "o-IM-CSI", "gsm_map.o_IM_CSI",
13583         FT_NONE, BASE_NONE, NULL, 0,
13584         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-CSI", HFILL }},
13585     { &hf_gsm_map_csiActive,
13586       { "csiActive", "gsm_map.csiActive",
13587         FT_NONE, BASE_NONE, NULL, 0,
13588         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-CSI/csiActive", HFILL }},
13589     { &hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList,
13590       { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.o_IM_BcsmCamelTDP_CriteriaList",
13591         FT_NONE, BASE_NONE, NULL, 0,
13592         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-BcsmCamelTDP-CriteriaList", HFILL }},
13593     { &hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList_item,
13594       { "Item", "gsm_map.o_IM_BcsmCamelTDP_CriteriaList_item",
13595         FT_NONE, BASE_NONE, NULL, 0,
13596         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-BcsmCamelTDP-CriteriaList/_item", HFILL }},
13597     { &hf_gsm_map_o_BcsmTriggerDetectionPoint2,
13598       { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
13599         FT_UINT32, BASE_DEC, VALS(gsm_map_T_o_BcsmTriggerDetectionPoint1_vals), 0,
13600         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/o-IM-BcsmCamelTDP-CriteriaList/_item/o-BcsmTriggerDetectionPoint", HFILL }},
13601     { &hf_gsm_map_d_IM_CSI,
13602       { "d-IM-CSI", "gsm_map.d_IM_CSI",
13603         FT_NONE, BASE_NONE, NULL, 0,
13604         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/d-IM-CSI", HFILL }},
13605     { &hf_gsm_map_vt_IM_CSI,
13606       { "vt-IM-CSI", "gsm_map.vt_IM_CSI",
13607         FT_NONE, BASE_NONE, NULL, 0,
13608         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-CSI", HFILL }},
13609     { &hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
13610       { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
13611         FT_NONE, BASE_NONE, NULL, 0,
13612         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-BCSM-CAMEL-TDP-CriteriaList", HFILL }},
13613     { &hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item,
13614       { "Item", "gsm_map.vt_IM_BCSM_CAMEL_TDP_CriteriaList_item",
13615         FT_NONE, BASE_NONE, NULL, 0,
13616         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-BCSM-CAMEL-TDP-CriteriaList/_item", HFILL }},
13617     { &hf_gsm_map_t_BCSM_TriggerDetectionPoint2,
13618       { "t-BCSM-TriggerDetectionPoint", "gsm_map.t_BCSM_TriggerDetectionPoint",
13619         FT_UINT32, BASE_DEC, VALS(gsm_map_T_t_BCSM_TriggerDetectionPoint2_vals), 0,
13620         "AnyTimeSubscriptionInterrogationRes/camel-SubscriptionInfo/vt-IM-BCSM-CAMEL-TDP-CriteriaList/_item/t-BCSM-TriggerDetectionPoint", HFILL }},
13621     { &hf_gsm_map_supportedVLR_CAMEL_Phases,
13622       { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases",
13623         FT_BYTES, BASE_HEX, NULL, 0,
13624         "AnyTimeSubscriptionInterrogationRes/supportedVLR-CAMEL-Phases", HFILL }},
13625     { &hf_gsm_map_supportedSGSN_CAMEL_Phases,
13626       { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases",
13627         FT_BYTES, BASE_HEX, NULL, 0,
13628         "AnyTimeSubscriptionInterrogationRes/supportedSGSN-CAMEL-Phases", HFILL }},
13629     { &hf_gsm_map_offeredCamel4CSIsInVLR,
13630       { "offeredCamel4CSIsInVLR", "gsm_map.offeredCamel4CSIsInVLR",
13631         FT_BYTES, BASE_HEX, NULL, 0,
13632         "AnyTimeSubscriptionInterrogationRes/offeredCamel4CSIsInVLR", HFILL }},
13633     { &hf_gsm_map_offeredCamel4CSIsInSGSN,
13634       { "offeredCamel4CSIsInSGSN", "gsm_map.offeredCamel4CSIsInSGSN",
13635         FT_BYTES, BASE_HEX, NULL, 0,
13636         "AnyTimeSubscriptionInterrogationRes/offeredCamel4CSIsInSGSN", HFILL }},
13637     { &hf_gsm_map_Sms_CAMEL_TDP_DataList_item,
13638       { "Item", "gsm_map.Sms_CAMEL_TDP_DataList_item",
13639         FT_NONE, BASE_NONE, NULL, 0,
13640         "Sms-CAMEL-TDP-DataList/_item", HFILL }},
13641     { &hf_gsm_map_sms_TriggerDetectionPoint1,
13642       { "sms-TriggerDetectionPoint", "gsm_map.sms_TriggerDetectionPoint",
13643         FT_UINT32, BASE_DEC, VALS(gsm_map_T_sms_TriggerDetectionPoint1_vals), 0,
13644         "Sms-CAMEL-TDP-DataList/_item/sms-TriggerDetectionPoint", HFILL }},
13645     { &hf_gsm_map_defaultSMS_Handling,
13646       { "defaultSMS-Handling", "gsm_map.defaultSMS_Handling",
13647         FT_UINT32, BASE_DEC, VALS(gsm_map_T_defaultSMS_Handling_vals), 0,
13648         "Sms-CAMEL-TDP-DataList/_item/defaultSMS-Handling", HFILL }},
13649     { &hf_gsm_map_T_CauseValueCriteria_item,
13650       { "Item", "gsm_map.T_CauseValueCriteria_item",
13651         FT_BYTES, BASE_HEX, NULL, 0,
13652         "T-CauseValueCriteria/_item", HFILL }},
13653     { &hf_gsm_map_O_CauseValueCriteria_item,
13654       { "Item", "gsm_map.O_CauseValueCriteria_item",
13655         FT_BYTES, BASE_HEX, NULL, 0,
13656         "O-CauseValueCriteria/_item", HFILL }},
13657     { &hf_gsm_map_MobilityTriggers_item,
13658       { "Item", "gsm_map.MobilityTriggers_item",
13659         FT_BYTES, BASE_HEX, NULL, 0,
13660         "MobilityTriggers/_item", HFILL }},
13661     { &hf_gsm_map_BasicServiceCriteria_item,
13662       { "Item", "gsm_map.BasicServiceCriteria_item",
13663         FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCriteria_item_vals), 0,
13664         "BasicServiceCriteria/_item", HFILL }},
13665     { &hf_gsm_map_ext_BearerService,
13666       { "ext-BearerService", "gsm_map.ext_BearerService",
13667         FT_BYTES, BASE_HEX, NULL, 0,
13668         "", HFILL }},
13669     { &hf_gsm_map_ext_Teleservice,
13670       { "ext-Teleservice", "gsm_map.ext_Teleservice",
13671         FT_BYTES, BASE_HEX, NULL, 0,
13672         "", HFILL }},
13673     { &hf_gsm_map_Dp_AnalysedInfoCriteriaList_item,
13674       { "Item", "gsm_map.Dp_AnalysedInfoCriteriaList_item",
13675         FT_NONE, BASE_NONE, NULL, 0,
13676         "Dp-AnalysedInfoCriteriaList/_item", HFILL }},
13677     { &hf_gsm_map_dialledNumber,
13678       { "dialledNumber", "gsm_map.dialledNumber",
13679         FT_BYTES, BASE_HEX, NULL, 0,
13680         "Dp-AnalysedInfoCriteriaList/_item/dialledNumber", HFILL }},
13681     { &hf_gsm_map_modificationRequestFor_CF_Info,
13682       { "modificationRequestFor-CF-Info", "gsm_map.modificationRequestFor_CF_Info",
13683         FT_NONE, BASE_NONE, NULL, 0,
13684         "AnyTimeModificationArg/modificationRequestFor-CF-Info", HFILL }},
13685     { &hf_gsm_map_basicService1,
13686       { "basicService", "gsm_map.basicService",
13687         FT_UINT32, BASE_DEC, VALS(gsm_map_T_basicService_vals), 0,
13688         "AnyTimeModificationArg/modificationRequestFor-CF-Info/basicService", HFILL }},
13689     { &hf_gsm_map_noReplyConditionTime1,
13690       { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
13691         FT_UINT32, BASE_DEC, NULL, 0,
13692         "AnyTimeModificationArg/modificationRequestFor-CF-Info/noReplyConditionTime", HFILL }},
13693     { &hf_gsm_map_modifyNotificationToCSE,
13694       { "modifyNotificationToCSE", "gsm_map.modifyNotificationToCSE",
13695         FT_UINT32, BASE_DEC, VALS(gsm_map_ModifyNotificationToCSE_vals), 0,
13696         "", HFILL }},
13697     { &hf_gsm_map_modificationRequestFor_CB_Info,
13698       { "modificationRequestFor-CB-Info", "gsm_map.modificationRequestFor_CB_Info",
13699         FT_NONE, BASE_NONE, NULL, 0,
13700         "AnyTimeModificationArg/modificationRequestFor-CB-Info", HFILL }},
13701     { &hf_gsm_map_basicService2,
13702       { "basicService", "gsm_map.basicService",
13703         FT_UINT32, BASE_DEC, VALS(gsm_map_T_basicService1_vals), 0,
13704         "AnyTimeModificationArg/modificationRequestFor-CB-Info/basicService", HFILL }},
13705     { &hf_gsm_map_modificationRequestFor_CSI,
13706       { "modificationRequestFor-CSI", "gsm_map.modificationRequestFor_CSI",
13707         FT_NONE, BASE_NONE, NULL, 0,
13708         "AnyTimeModificationArg/modificationRequestFor-CSI", HFILL }},
13709     { &hf_gsm_map_requestedCamel_SubscriptionInfo,
13710       { "requestedCamel-SubscriptionInfo", "gsm_map.requestedCamel_SubscriptionInfo",
13711         FT_UINT32, BASE_DEC, VALS(gsm_map_T_requestedCamel_SubscriptionInfo_vals), 0,
13712         "AnyTimeModificationArg/modificationRequestFor-CSI/requestedCamel-SubscriptionInfo", HFILL }},
13713     { &hf_gsm_map_modifyCSI_State,
13714       { "modifyCSI-State", "gsm_map.modifyCSI_State",
13715         FT_UINT32, BASE_DEC, VALS(gsm_map_T_modifyCSI_State_vals), 0,
13716         "AnyTimeModificationArg/modificationRequestFor-CSI/modifyCSI-State", HFILL }},
13717     { &hf_gsm_map_modificationRequestFor_ODB_data,
13718       { "modificationRequestFor-ODB-data", "gsm_map.modificationRequestFor_ODB_data",
13719         FT_NONE, BASE_NONE, NULL, 0,
13720         "AnyTimeModificationArg/modificationRequestFor-ODB-data", HFILL }},
13721     { &hf_gsm_map_odb_data,
13722       { "odb-data", "gsm_map.odb_data",
13723         FT_NONE, BASE_NONE, NULL, 0,
13724         "AnyTimeModificationArg/modificationRequestFor-ODB-data/odb-data", HFILL }},
13725     { &hf_gsm_map_odb_HPLMN_Data,
13726       { "odb-HPLMN-Data", "gsm_map.odb_HPLMN_Data",
13727         FT_BYTES, BASE_HEX, NULL, 0,
13728         "Odb-data/odb-HPLMN-Data", HFILL }},
13729     { &hf_gsm_map_ss_Event,
13730       { "ss-Event", "gsm_map.ss_Event",
13731         FT_BYTES, BASE_HEX, NULL, 0,
13732         "Ss-InvocationNotificationArg/ss-Event", HFILL }},
13733     { &hf_gsm_map_ss_EventSpecification,
13734       { "ss-EventSpecification", "gsm_map.ss_EventSpecification",
13735         FT_NONE, BASE_NONE, NULL, 0,
13736         "Ss-InvocationNotificationArg/ss-EventSpecification", HFILL }},
13737     { &hf_gsm_map_ss_EventSpecification_item,
13738       { "Item", "gsm_map.ss_EventSpecification_item",
13739         FT_BYTES, BASE_HEX, NULL, 0,
13740         "Ss-InvocationNotificationArg/ss-EventSpecification/_item", HFILL }},
13741     { &hf_gsm_map_codec_Info,
13742       { "codec-Info", "gsm_map.codec_Info",
13743         FT_BYTES, BASE_HEX, NULL, 0,
13744         "PrepareGroupCallArg/codec-Info", HFILL }},
13745     { &hf_gsm_map_cipheringAlgorithm,
13746       { "cipheringAlgorithm", "gsm_map.cipheringAlgorithm",
13747         FT_BYTES, BASE_HEX, NULL, 0,
13748         "PrepareGroupCallArg/cipheringAlgorithm", HFILL }},
13749     { &hf_gsm_map_groupKeyNumber,
13750       { "groupKeyNumber", "gsm_map.groupKeyNumber",
13751         FT_UINT32, BASE_DEC, NULL, 0,
13752         "PrepareGroupCallArg/groupKeyNumber", HFILL }},
13753     { &hf_gsm_map_groupKey,
13754       { "groupKey", "gsm_map.groupKey",
13755         FT_BYTES, BASE_HEX, NULL, 0,
13756         "PrepareGroupCallArg/groupKey", HFILL }},
13757     { &hf_gsm_map_priority,
13758       { "priority", "gsm_map.priority",
13759         FT_UINT32, BASE_DEC, NULL, 0,
13760         "PrepareGroupCallArg/priority", HFILL }},
13761     { &hf_gsm_map_uplinkFree,
13762       { "uplinkFree", "gsm_map.uplinkFree",
13763         FT_NONE, BASE_NONE, NULL, 0,
13764         "PrepareGroupCallArg/uplinkFree", HFILL }},
13765     { &hf_gsm_map_groupCallNumber,
13766       { "groupCallNumber", "gsm_map.groupCallNumber",
13767         FT_BYTES, BASE_HEX, NULL, 0,
13768         "PrepareGroupCallRes/groupCallNumber", HFILL }},
13769     { &hf_gsm_map_uplinkRequest,
13770       { "uplinkRequest", "gsm_map.uplinkRequest",
13771         FT_NONE, BASE_NONE, NULL, 0,
13772         "ProcessGroupCallSignallingArg/uplinkRequest", HFILL }},
13773     { &hf_gsm_map_uplinkReleaseIndication,
13774       { "uplinkReleaseIndication", "gsm_map.uplinkReleaseIndication",
13775         FT_NONE, BASE_NONE, NULL, 0,
13776         "", HFILL }},
13777     { &hf_gsm_map_releaseGroupCall,
13778       { "releaseGroupCall", "gsm_map.releaseGroupCall",
13779         FT_NONE, BASE_NONE, NULL, 0,
13780         "ProcessGroupCallSignallingArg/releaseGroupCall", HFILL }},
13781     { &hf_gsm_map_uplinkRequestAck,
13782       { "uplinkRequestAck", "gsm_map.uplinkRequestAck",
13783         FT_NONE, BASE_NONE, NULL, 0,
13784         "ForwardGroupCallSignallingArg/uplinkRequestAck", HFILL }},
13785     { &hf_gsm_map_uplinkRejectCommand,
13786       { "uplinkRejectCommand", "gsm_map.uplinkRejectCommand",
13787         FT_NONE, BASE_NONE, NULL, 0,
13788         "ForwardGroupCallSignallingArg/uplinkRejectCommand", HFILL }},
13789     { &hf_gsm_map_uplinkSeizedCommand,
13790       { "uplinkSeizedCommand", "gsm_map.uplinkSeizedCommand",
13791         FT_NONE, BASE_NONE, NULL, 0,
13792         "ForwardGroupCallSignallingArg/uplinkSeizedCommand", HFILL }},
13793     { &hf_gsm_map_uplinkReleaseCommand,
13794       { "uplinkReleaseCommand", "gsm_map.uplinkReleaseCommand",
13795         FT_NONE, BASE_NONE, NULL, 0,
13796         "ForwardGroupCallSignallingArg/uplinkReleaseCommand", HFILL }},
13797     { &hf_gsm_map_sgsn_Address,
13798       { "sgsn-Address", "gsm_map.sgsn_Address",
13799         FT_BYTES, BASE_HEX, NULL, 0,
13800         "", HFILL }},
13801     { &hf_gsm_map_sgsn_Capability,
13802       { "sgsn-Capability", "gsm_map.sgsn_Capability",
13803         FT_NONE, BASE_NONE, NULL, 0,
13804         "UpdateGprsLocationArg/sgsn-Capability", HFILL }},
13805     { &hf_gsm_map_ggsn_Number,
13806       { "ggsn-Number", "gsm_map.ggsn_Number",
13807         FT_BYTES, BASE_HEX, NULL, 0,
13808         "", HFILL }},
13809     { &hf_gsm_map_mobileNotReachableReason,
13810       { "mobileNotReachableReason", "gsm_map.mobileNotReachableReason",
13811         FT_UINT32, BASE_DEC, NULL, 0,
13812         "SendRoutingInfoForGprsRes/mobileNotReachableReason", HFILL }},
13813     { &hf_gsm_map_dataCodingScheme,
13814       { "dataCodingScheme", "gsm_map.dataCodingScheme",
13815         FT_BYTES, BASE_HEX, NULL, 0,
13816         "LcsClientName/dataCodingScheme", HFILL }},
13817     { &hf_gsm_map_nameString,
13818       { "nameString", "gsm_map.nameString",
13819         FT_BYTES, BASE_HEX, NULL, 0,
13820         "LcsClientName/nameString", HFILL }},
13821     { &hf_gsm_map_lcsClientType,
13822       { "lcsClientType", "gsm_map.lcsClientType",
13823         FT_UINT32, BASE_DEC, VALS(gsm_map_LcsClientType_vals), 0,
13824         "Lcs-ClientID/lcsClientType", HFILL }},
13825     { &hf_gsm_map_lcsClientExternalID,
13826       { "lcsClientExternalID", "gsm_map.lcsClientExternalID",
13827         FT_NONE, BASE_NONE, NULL, 0,
13828         "Lcs-ClientID/lcsClientExternalID", HFILL }},
13829     { &hf_gsm_map_lcsClientDialedByMS,
13830       { "lcsClientDialedByMS", "gsm_map.lcsClientDialedByMS",
13831         FT_BYTES, BASE_HEX, NULL, 0,
13832         "Lcs-ClientID/lcsClientDialedByMS", HFILL }},
13833     { &hf_gsm_map_lcsClientInternalID,
13834       { "lcsClientInternalID", "gsm_map.lcsClientInternalID",
13835         FT_UINT32, BASE_DEC, VALS(gsm_map_LcsClientInternalID_vals), 0,
13836         "Lcs-ClientID/lcsClientInternalID", HFILL }},
13837     { &hf_gsm_map_lcsClientName,
13838       { "lcsClientName", "gsm_map.lcsClientName",
13839         FT_NONE, BASE_NONE, NULL, 0,
13840         "Lcs-ClientID/lcsClientName", HFILL }},
13841     { &hf_gsm_map_locationType,
13842       { "locationType", "gsm_map.locationType",
13843         FT_NONE, BASE_NONE, NULL, 0,
13844         "ProvideSubscriberLocation-Arg/locationType", HFILL }},
13845     { &hf_gsm_map_locationEstimateType,
13846       { "locationEstimateType", "gsm_map.locationEstimateType",
13847         FT_UINT32, BASE_DEC, VALS(gsm_map_T_locationEstimateType_vals), 0,
13848         "ProvideSubscriberLocation-Arg/locationType/locationEstimateType", HFILL }},
13849     { &hf_gsm_map_mlc_Number,
13850       { "mlc-Number", "gsm_map.mlc_Number",
13851         FT_BYTES, BASE_HEX, NULL, 0,
13852         "ProvideSubscriberLocation-Arg/mlc-Number", HFILL }},
13853     { &hf_gsm_map_lcs_ClientID,
13854       { "lcs-ClientID", "gsm_map.lcs_ClientID",
13855         FT_NONE, BASE_NONE, NULL, 0,
13856         "", HFILL }},
13857     { &hf_gsm_map_privacyOverride,
13858       { "privacyOverride", "gsm_map.privacyOverride",
13859         FT_NONE, BASE_NONE, NULL, 0,
13860         "ProvideSubscriberLocation-Arg/privacyOverride", HFILL }},
13861     { &hf_gsm_map_lcs_Priority,
13862       { "lcs-Priority", "gsm_map.lcs_Priority",
13863         FT_BYTES, BASE_HEX, NULL, 0,
13864         "ProvideSubscriberLocation-Arg/lcs-Priority", HFILL }},
13865     { &hf_gsm_map_lcs_QoS,
13866       { "lcs-QoS", "gsm_map.lcs_QoS",
13867         FT_NONE, BASE_NONE, NULL, 0,
13868         "ProvideSubscriberLocation-Arg/lcs-QoS", HFILL }},
13869     { &hf_gsm_map_horizontal_accuracy,
13870       { "horizontal-accuracy", "gsm_map.horizontal_accuracy",
13871         FT_BYTES, BASE_HEX, NULL, 0,
13872         "ProvideSubscriberLocation-Arg/lcs-QoS/horizontal-accuracy", HFILL }},
13873     { &hf_gsm_map_verticalCoordinateRequest,
13874       { "verticalCoordinateRequest", "gsm_map.verticalCoordinateRequest",
13875         FT_NONE, BASE_NONE, NULL, 0,
13876         "ProvideSubscriberLocation-Arg/lcs-QoS/verticalCoordinateRequest", HFILL }},
13877     { &hf_gsm_map_vertical_accuracy,
13878       { "vertical-accuracy", "gsm_map.vertical_accuracy",
13879         FT_BYTES, BASE_HEX, NULL, 0,
13880         "ProvideSubscriberLocation-Arg/lcs-QoS/vertical-accuracy", HFILL }},
13881     { &hf_gsm_map_responseTime,
13882       { "responseTime", "gsm_map.responseTime",
13883         FT_NONE, BASE_NONE, NULL, 0,
13884         "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime", HFILL }},
13885     { &hf_gsm_map_responseTimeCategory,
13886       { "responseTimeCategory", "gsm_map.responseTimeCategory",
13887         FT_UINT32, BASE_DEC, VALS(gsm_map_T_responseTimeCategory_vals), 0,
13888         "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime/responseTimeCategory", HFILL }},
13889     { &hf_gsm_map_locationEstimate,
13890       { "locationEstimate", "gsm_map.locationEstimate",
13891         FT_BYTES, BASE_HEX, NULL, 0,
13892         "", HFILL }},
13893     { &hf_gsm_map_ageOfLocationEstimate,
13894       { "ageOfLocationEstimate", "gsm_map.ageOfLocationEstimate",
13895         FT_UINT32, BASE_DEC, NULL, 0,
13896         "", HFILL }},
13897     { &hf_gsm_map_mlcNumber,
13898       { "mlcNumber", "gsm_map.mlcNumber",
13899         FT_BYTES, BASE_HEX, NULL, 0,
13900         "RoutingInfoForLCS-Arg/mlcNumber", HFILL }},
13901     { &hf_gsm_map_targetMS,
13902       { "targetMS", "gsm_map.targetMS",
13903         FT_UINT32, BASE_DEC, VALS(gsm_map_TargetMS_vals), 0,
13904         "", HFILL }},
13905     { &hf_gsm_map_lcsLocationInfo,
13906       { "lcsLocationInfo", "gsm_map.lcsLocationInfo",
13907         FT_NONE, BASE_NONE, NULL, 0,
13908         "", HFILL }},
13909     { &hf_gsm_map_lcs_Event,
13910       { "lcs-Event", "gsm_map.lcs_Event",
13911         FT_UINT32, BASE_DEC, VALS(gsm_map_Lcs_Event_vals), 0,
13912         "SubscriberLocationReport-Arg/lcs-Event", HFILL }},
13913     { &hf_gsm_map_na_ESRD,
13914       { "na-ESRD", "gsm_map.na_ESRD",
13915         FT_BYTES, BASE_HEX, NULL, 0,
13916         "SubscriberLocationReport-Arg/na-ESRD", HFILL }},
13917     { &hf_gsm_map_na_ESRK,
13918       { "na-ESRK", "gsm_map.na_ESRK",
13919         FT_BYTES, BASE_HEX, NULL, 0,
13920         "SubscriberLocationReport-Arg/na-ESRK", HFILL }},
13921     { &hf_gsm_map_networkResource,
13922       { "networkResource", "gsm_map.networkResource",
13923         FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
13924         "", HFILL }},
13925     { &hf_gsm_map_extensibleSystemFailureParam,
13926       { "extensibleSystemFailureParam", "gsm_map.extensibleSystemFailureParam",
13927         FT_NONE, BASE_NONE, NULL, 0,
13928         "SystemFailureParam/extensibleSystemFailureParam", HFILL }},
13929     { &hf_gsm_map_unknownSubscriberDiagnostic,
13930       { "unknownSubscriberDiagnostic", "gsm_map.unknownSubscriberDiagnostic",
13931         FT_UINT32, BASE_DEC, VALS(gsm_map_T_unknownSubscriberDiagnostic_vals), 0,
13932         "UnknownSubscriberParam/unknownSubscriberDiagnostic", HFILL }},
13933     { &hf_gsm_map_roamingNotAllowedCause,
13934       { "roamingNotAllowedCause", "gsm_map.roamingNotAllowedCause",
13935         FT_UINT32, BASE_DEC, VALS(gsm_map_T_roamingNotAllowedCause_vals), 0,
13936         "RoamingNotAllowedParam/roamingNotAllowedCause", HFILL }},
13937     { &hf_gsm_map_absentSubscriberReason,
13938       { "absentSubscriberReason", "gsm_map.absentSubscriberReason",
13939         FT_UINT32, BASE_DEC, VALS(gsm_map_T_absentSubscriberReason_vals), 0,
13940         "AbsentSubscriberParam/absentSubscriberReason", HFILL }},
13941     { &hf_gsm_map_ccbs_Busy,
13942       { "ccbs-Busy", "gsm_map.ccbs_Busy",
13943         FT_NONE, BASE_NONE, NULL, 0,
13944         "BusySubscriberParam/ccbs-Busy", HFILL }},
13945     { &hf_gsm_map_callBarringCause,
13946       { "callBarringCause", "gsm_map.callBarringCause",
13947         FT_UINT32, BASE_DEC, VALS(gsm_map_CallBarringCause_vals), 0,
13948         "", HFILL }},
13949     { &hf_gsm_map_extensibleCallBarredParam,
13950       { "extensibleCallBarredParam", "gsm_map.extensibleCallBarredParam",
13951         FT_NONE, BASE_NONE, NULL, 0,
13952         "CallBarredParam/extensibleCallBarredParam", HFILL }},
13953     { &hf_gsm_map_unauthorisedMessageOriginator,
13954       { "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator",
13955         FT_NONE, BASE_NONE, NULL, 0,
13956         "CallBarredParam/extensibleCallBarredParam/unauthorisedMessageOriginator", HFILL }},
13957     { &hf_gsm_map_cug_RejectCause,
13958       { "cug-RejectCause", "gsm_map.cug_RejectCause",
13959         FT_UINT32, BASE_DEC, VALS(gsm_map_T_cug_RejectCause_vals), 0,
13960         "Cug-RejectParam/cug-RejectCause", HFILL }},
13961     { &hf_gsm_map_gprsConnectionSuspended,
13962       { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
13963         FT_NONE, BASE_NONE, NULL, 0,
13964         "SubBusyForMT-SMS-Param/gprsConnectionSuspended", HFILL }},
13965     { &hf_gsm_map_sm_EnumeratedDeliveryFailureCause,
13966       { "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause",
13967         FT_UINT32, BASE_DEC, VALS(gsm_map_T_sm_EnumeratedDeliveryFailureCause_vals), 0,
13968         "Sm-DeliveryFailureCause/sm-EnumeratedDeliveryFailureCause", HFILL }},
13969     { &hf_gsm_map_diagnosticInfo,
13970       { "diagnosticInfo", "gsm_map.diagnosticInfo",
13971         FT_BYTES, BASE_HEX, NULL, 0,
13972         "Sm-DeliveryFailureCause/diagnosticInfo", HFILL }},
13973     { &hf_gsm_map_unauthorizedLCSClient_Diagnostic,
13974       { "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic",
13975         FT_UINT32, BASE_DEC, VALS(gsm_map_T_unauthorizedLCSClient_Diagnostic_vals), 0,
13976         "UnauthorizedLCSClient-Param/unauthorizedLCSClient-Diagnostic", HFILL }},
13977     { &hf_gsm_map_positionMethodFailure_Diagnostic,
13978       { "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic",
13979         FT_UINT32, BASE_DEC, VALS(gsm_map_T_positionMethodFailure_Diagnostic_vals), 0,
13980         "PositionMethodFailure-Param/positionMethodFailure-Diagnostic", HFILL }},
13981     { &hf_gsm_map_privateExtensionList,
13982       { "privateExtensionList", "gsm_map.privateExtensionList",
13983         FT_NONE, BASE_NONE, NULL, 0,
13984         "ExtensionContainer/privateExtensionList", HFILL }},
13985     { &hf_gsm_map_pcsExtensions,
13986       { "pcsExtensions", "gsm_map.pcsExtensions",
13987         FT_NONE, BASE_NONE, NULL, 0,
13988         "ExtensionContainer/pcsExtensions", HFILL }},
13989     { &hf_gsm_map_SupportedCamelPhases_phase1,
13990       { "phase1", "gsm_map.phase1",
13991         FT_BOOLEAN, 8, NULL, 0x80,
13992         "", HFILL }},
13993     { &hf_gsm_map_SupportedCamelPhases_phase2,
13994       { "phase2", "gsm_map.phase2",
13995         FT_BOOLEAN, 8, NULL, 0x40,
13996         "", HFILL }},
13997     { &hf_gsm_map_SupportedCamelPhases_phase3,
13998       { "phase3", "gsm_map.phase3",
13999         FT_BOOLEAN, 8, NULL, 0x20,
14000         "", HFILL }},
14001     { &hf_gsm_map_SupportedCamelPhases_phase4,
14002       { "phase4", "gsm_map.phase4",
14003         FT_BOOLEAN, 8, NULL, 0x10,
14004         "", HFILL }},
14005     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet1,
14006       { "lcsCapabilitySet1", "gsm_map.lcsCapabilitySet1",
14007         FT_BOOLEAN, 8, NULL, 0x80,
14008         "", HFILL }},
14009     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet2,
14010       { "lcsCapabilitySet2", "gsm_map.lcsCapabilitySet2",
14011         FT_BOOLEAN, 8, NULL, 0x40,
14012         "", HFILL }},
14013     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet3,
14014       { "lcsCapabilitySet3", "gsm_map.lcsCapabilitySet3",
14015         FT_BOOLEAN, 8, NULL, 0x20,
14016         "", HFILL }},
14017     { &hf_gsm_map_T_supportedLCS_CapabilitySets_lcsCapabilitySet4,
14018       { "lcsCapabilitySet4", "gsm_map.lcsCapabilitySet4",
14019         FT_BOOLEAN, 8, NULL, 0x10,
14020         "", HFILL }},
14021     { &hf_gsm_map_T_offeredCamel4CSIs_ocsi,
14022       { "ocsi", "gsm_map.ocsi",
14023         FT_BOOLEAN, 8, NULL, 0x80,
14024         "", HFILL }},
14025     { &hf_gsm_map_T_offeredCamel4CSIs_dcsi,
14026       { "dcsi", "gsm_map.dcsi",
14027         FT_BOOLEAN, 8, NULL, 0x40,
14028         "", HFILL }},
14029     { &hf_gsm_map_T_offeredCamel4CSIs_vtcsi,
14030       { "vtcsi", "gsm_map.vtcsi",
14031         FT_BOOLEAN, 8, NULL, 0x20,
14032         "", HFILL }},
14033     { &hf_gsm_map_T_offeredCamel4CSIs_tcsi,
14034       { "tcsi", "gsm_map.tcsi",
14035         FT_BOOLEAN, 8, NULL, 0x10,
14036         "", HFILL }},
14037     { &hf_gsm_map_T_offeredCamel4CSIs_mtsmscsi,
14038       { "mtsmscsi", "gsm_map.mtsmscsi",
14039         FT_BOOLEAN, 8, NULL, 0x08,
14040         "", HFILL }},
14041     { &hf_gsm_map_T_offeredCamel4CSIs_mgcsi,
14042       { "mgcsi", "gsm_map.mgcsi",
14043         FT_BOOLEAN, 8, NULL, 0x04,
14044         "", HFILL }},
14045     { &hf_gsm_map_T_offeredCamel4CSIs_psienhancements,
14046       { "psienhancements", "gsm_map.psienhancements",
14047         FT_BOOLEAN, 8, NULL, 0x02,
14048         "", HFILL }},
14049     { &hf_gsm_map_Odb_GeneralData_allOGCallsBarred,
14050       { "allOGCallsBarred", "gsm_map.allOGCallsBarred",
14051         FT_BOOLEAN, 8, NULL, 0x80,
14052         "", HFILL }},
14053     { &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred,
14054       { "internationalOGCallsBarred", "gsm_map.internationalOGCallsBarred",
14055         FT_BOOLEAN, 8, NULL, 0x40,
14056         "", HFILL }},
14057     { &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred,
14058       { "internationalOGCallsNotToHPLMNCountryBarred", "gsm_map.internationalOGCallsNotToHPLMNCountryBarred",
14059         FT_BOOLEAN, 8, NULL, 0x20,
14060         "", HFILL }},
14061     { &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred,
14062       { "premiumRateInformationOGCallsBarred", "gsm_map.premiumRateInformationOGCallsBarred",
14063         FT_BOOLEAN, 8, NULL, 0x10,
14064         "", HFILL }},
14065     { &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred,
14066       { "premiumRateEntertainementOGCallsBarred", "gsm_map.premiumRateEntertainementOGCallsBarred",
14067         FT_BOOLEAN, 8, NULL, 0x08,
14068         "", HFILL }},
14069     { &hf_gsm_map_Odb_GeneralData_ssAccessBarred,
14070       { "ssAccessBarred", "gsm_map.ssAccessBarred",
14071         FT_BOOLEAN, 8, NULL, 0x04,
14072         "", HFILL }},
14073     { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred,
14074       { "interzonalOGCallsBarred", "gsm_map.interzonalOGCallsBarred",
14075         FT_BOOLEAN, 8, NULL, 0x02,
14076         "", HFILL }},
14077     { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred,
14078       { "interzonalOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsNotToHPLMNCountryBarred",
14079         FT_BOOLEAN, 8, NULL, 0x01,
14080         "", HFILL }},
14081     { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred,
14082       { "interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred",
14083         FT_BOOLEAN, 8, NULL, 0x80,
14084         "", HFILL }},
14085     { &hf_gsm_map_Odb_GeneralData_allECTBarred,
14086       { "allECTBarred", "gsm_map.allECTBarred",
14087         FT_BOOLEAN, 8, NULL, 0x40,
14088         "", HFILL }},
14089     { &hf_gsm_map_Odb_GeneralData_chargeableECTBarred,
14090       { "chargeableECTBarred", "gsm_map.chargeableECTBarred",
14091         FT_BOOLEAN, 8, NULL, 0x20,
14092         "", HFILL }},
14093     { &hf_gsm_map_Odb_GeneralData_internationalECTBarred,
14094       { "internationalECTBarred", "gsm_map.internationalECTBarred",
14095         FT_BOOLEAN, 8, NULL, 0x10,
14096         "", HFILL }},
14097     { &hf_gsm_map_Odb_GeneralData_interzonalECTBarred,
14098       { "interzonalECTBarred", "gsm_map.interzonalECTBarred",
14099         FT_BOOLEAN, 8, NULL, 0x08,
14100         "", HFILL }},
14101     { &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred,
14102       { "doublyChargeableECTBarred", "gsm_map.doublyChargeableECTBarred",
14103         FT_BOOLEAN, 8, NULL, 0x04,
14104         "", HFILL }},
14105     { &hf_gsm_map_Odb_GeneralData_multipleECTBarred,
14106       { "multipleECTBarred", "gsm_map.multipleECTBarred",
14107         FT_BOOLEAN, 8, NULL, 0x02,
14108         "", HFILL }},
14109     { &hf_gsm_map_Odb_GeneralData_allPacketOrientedServicesBarred,
14110       { "allPacketOrientedServicesBarred", "gsm_map.allPacketOrientedServicesBarred",
14111         FT_BOOLEAN, 8, NULL, 0x01,
14112         "", HFILL }},
14113     { &hf_gsm_map_Odb_GeneralData_roamerAccessToHPLMN_AP_Barred,
14114       { "roamerAccessToHPLMN-AP-Barred", "gsm_map.roamerAccessToHPLMN-AP-Barred",
14115         FT_BOOLEAN, 8, NULL, 0x80,
14116         "", HFILL }},
14117     { &hf_gsm_map_Odb_GeneralData_roamerAccessToVPLMN_AP_Barred,
14118       { "roamerAccessToVPLMN-AP-Barred", "gsm_map.roamerAccessToVPLMN-AP-Barred",
14119         FT_BOOLEAN, 8, NULL, 0x40,
14120         "", HFILL }},
14121     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNOG_CallsBarred,
14122       { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.roamingOutsidePLMNOG-CallsBarred",
14123         FT_BOOLEAN, 8, NULL, 0x20,
14124         "", HFILL }},
14125     { &hf_gsm_map_Odb_GeneralData_allIC_CallsBarred,
14126       { "allIC-CallsBarred", "gsm_map.allIC-CallsBarred",
14127         FT_BOOLEAN, 8, NULL, 0x10,
14128         "", HFILL }},
14129     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNIC_CallsBarred,
14130       { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.roamingOutsidePLMNIC-CallsBarred",
14131         FT_BOOLEAN, 8, NULL, 0x08,
14132         "", HFILL }},
14133     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
14134       { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.roamingOutsidePLMNICountryIC-CallsBarred",
14135         FT_BOOLEAN, 8, NULL, 0x04,
14136         "", HFILL }},
14137     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_Barred,
14138       { "roamingOutsidePLMN-Barred", "gsm_map.roamingOutsidePLMN-Barred",
14139         FT_BOOLEAN, 8, NULL, 0x02,
14140         "", HFILL }},
14141     { &hf_gsm_map_Odb_GeneralData_roamingOutsidePLMN_CountryBarred,
14142       { "roamingOutsidePLMN-CountryBarred", "gsm_map.roamingOutsidePLMN-CountryBarred",
14143         FT_BOOLEAN, 8, NULL, 0x01,
14144         "", HFILL }},
14145     { &hf_gsm_map_Odb_GeneralData_registrationAllCF_Barred,
14146       { "registrationAllCF-Barred", "gsm_map.registrationAllCF-Barred",
14147         FT_BOOLEAN, 8, NULL, 0x80,
14148         "", HFILL }},
14149     { &hf_gsm_map_Odb_GeneralData_registrationCFNotToHPLMN_Barred,
14150       { "registrationCFNotToHPLMN-Barred", "gsm_map.registrationCFNotToHPLMN-Barred",
14151         FT_BOOLEAN, 8, NULL, 0x40,
14152         "", HFILL }},
14153     { &hf_gsm_map_Odb_GeneralData_registrationInterzonalCF_Barred,
14154       { "registrationInterzonalCF-Barred", "gsm_map.registrationInterzonalCF-Barred",
14155         FT_BOOLEAN, 8, NULL, 0x20,
14156         "", HFILL }},
14157     { &hf_gsm_map_Odb_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
14158       { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.registrationInterzonalCFNotToHPLMN-Barred",
14159         FT_BOOLEAN, 8, NULL, 0x10,
14160         "", HFILL }},
14161     { &hf_gsm_map_Odb_GeneralData_registrationInternationalCF_Barred,
14162       { "registrationInternationalCF-Barred", "gsm_map.registrationInternationalCF-Barred",
14163         FT_BOOLEAN, 8, NULL, 0x08,
14164         "", HFILL }},
14165     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1,
14166       { "plmnSpecificBarringType1", "gsm_map.plmnSpecificBarringType1",
14167         FT_BOOLEAN, 8, NULL, 0x80,
14168         "", HFILL }},
14169     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2,
14170       { "plmnSpecificBarringType2", "gsm_map.plmnSpecificBarringType2",
14171         FT_BOOLEAN, 8, NULL, 0x40,
14172         "", HFILL }},
14173     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3,
14174       { "plmnSpecificBarringType3", "gsm_map.plmnSpecificBarringType3",
14175         FT_BOOLEAN, 8, NULL, 0x20,
14176         "", HFILL }},
14177     { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4,
14178       { "plmnSpecificBarringType4", "gsm_map.plmnSpecificBarringType4",
14179         FT_BOOLEAN, 8, NULL, 0x10,
14180         "", HFILL }},
14181     { &hf_gsm_map_ServiceIndicator_clirInvoked,
14182       { "clirInvoked", "gsm_map.clirInvoked",
14183         FT_BOOLEAN, 8, NULL, 0x80,
14184         "", HFILL }},
14185     { &hf_gsm_map_ServiceIndicator_camelInvoked,
14186       { "camelInvoked", "gsm_map.camelInvoked",
14187         FT_BOOLEAN, 8, NULL, 0x40,
14188         "", HFILL }},
14189     { &hf_gsm_map_T_mw_Status_scAddressNotIncluded,
14190       { "scAddressNotIncluded", "gsm_map.scAddressNotIncluded",
14191         FT_BOOLEAN, 8, NULL, 0x80,
14192         "", HFILL }},
14193     { &hf_gsm_map_T_mw_Status_mnrfSet,
14194       { "mnrfSet", "gsm_map.mnrfSet",
14195         FT_BOOLEAN, 8, NULL, 0x40,
14196         "", HFILL }},
14197     { &hf_gsm_map_T_mw_Status_mcefSet,
14198       { "mcefSet", "gsm_map.mcefSet",
14199         FT_BOOLEAN, 8, NULL, 0x20,
14200         "", HFILL }},
14201     { &hf_gsm_map_T_mw_Status_mnrgSet,
14202       { "mnrgSet", "gsm_map.mnrgSet",
14203         FT_BOOLEAN, 8, NULL, 0x10,
14204         "", HFILL }},
14205     { &hf_gsm_map_T_specificCSIDeletedList_o_csi,
14206       { "o-csi", "gsm_map.o-csi",
14207         FT_BOOLEAN, 8, NULL, 0x80,
14208         "", HFILL }},
14209     { &hf_gsm_map_T_specificCSIDeletedList_ss_csi,
14210       { "ss-csi", "gsm_map.ss-csi",
14211         FT_BOOLEAN, 8, NULL, 0x40,
14212         "", HFILL }},
14213     { &hf_gsm_map_T_specificCSIDeletedList_tif_csi,
14214       { "tif-csi", "gsm_map.tif-csi",
14215         FT_BOOLEAN, 8, NULL, 0x20,
14216         "", HFILL }},
14217     { &hf_gsm_map_T_specificCSIDeletedList_d_csi,
14218       { "d-csi", "gsm_map.d-csi",
14219         FT_BOOLEAN, 8, NULL, 0x10,
14220         "", HFILL }},
14221     { &hf_gsm_map_T_specificCSIDeletedList_vt_csi,
14222       { "vt-csi", "gsm_map.vt-csi",
14223         FT_BOOLEAN, 8, NULL, 0x08,
14224         "", HFILL }},
14225     { &hf_gsm_map_T_specificCSIDeletedList_mo_sms_csi,
14226       { "mo-sms-csi", "gsm_map.mo-sms-csi",
14227         FT_BOOLEAN, 8, NULL, 0x04,
14228         "", HFILL }},
14229     { &hf_gsm_map_T_specificCSIDeletedList_m_csi,
14230       { "m-csi", "gsm_map.m-csi",
14231         FT_BOOLEAN, 8, NULL, 0x02,
14232         "", HFILL }},
14233     { &hf_gsm_map_T_specificCSIDeletedList_gprs_csi,
14234       { "gprs-csi", "gsm_map.gprs-csi",
14235         FT_BOOLEAN, 8, NULL, 0x01,
14236         "", HFILL }},
14237     { &hf_gsm_map_T_specificCSIDeletedList_t_csi,
14238       { "t-csi", "gsm_map.t-csi",
14239         FT_BOOLEAN, 8, NULL, 0x80,
14240         "", HFILL }},
14241     { &hf_gsm_map_T_specificCSIDeletedList_mt_sms_csi,
14242       { "mt-sms-csi", "gsm_map.mt-sms-csi",
14243         FT_BOOLEAN, 8, NULL, 0x40,
14244         "", HFILL }},
14245     { &hf_gsm_map_T_specificCSIDeletedList_mg_csi,
14246       { "mg-csi", "gsm_map.mg-csi",
14247         FT_BOOLEAN, 8, NULL, 0x20,
14248         "", HFILL }},
14249     { &hf_gsm_map_T_specificCSIDeletedList_o_IM_CSI,
14250       { "o-IM-CSI", "gsm_map.o-IM-CSI",
14251         FT_BOOLEAN, 8, NULL, 0x10,
14252         "", HFILL }},
14253     { &hf_gsm_map_T_specificCSIDeletedList_d_IM_CSI,
14254       { "d-IM-CSI", "gsm_map.d-IM-CSI",
14255         FT_BOOLEAN, 8, NULL, 0x08,
14256         "", HFILL }},
14257     { &hf_gsm_map_T_specificCSIDeletedList_vt_IM_CSI,
14258       { "vt-IM-CSI", "gsm_map.vt-IM-CSI",
14259         FT_BOOLEAN, 8, NULL, 0x04,
14260         "", HFILL }},
14261     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase1,
14262       { "phase1", "gsm_map.phase1",
14263         FT_BOOLEAN, 8, NULL, 0x80,
14264         "", HFILL }},
14265     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase2,
14266       { "phase2", "gsm_map.phase2",
14267         FT_BOOLEAN, 8, NULL, 0x40,
14268         "", HFILL }},
14269     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase3,
14270       { "phase3", "gsm_map.phase3",
14271         FT_BOOLEAN, 8, NULL, 0x20,
14272         "", HFILL }},
14273     { &hf_gsm_map_T_supportedVLR_CAMEL_Phases_phase4,
14274       { "phase4", "gsm_map.phase4",
14275         FT_BOOLEAN, 8, NULL, 0x10,
14276         "", HFILL }},
14277     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase1,
14278       { "phase1", "gsm_map.phase1",
14279         FT_BOOLEAN, 8, NULL, 0x80,
14280         "", HFILL }},
14281     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase2,
14282       { "phase2", "gsm_map.phase2",
14283         FT_BOOLEAN, 8, NULL, 0x40,
14284         "", HFILL }},
14285     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase3,
14286       { "phase3", "gsm_map.phase3",
14287         FT_BOOLEAN, 8, NULL, 0x20,
14288         "", HFILL }},
14289     { &hf_gsm_map_T_supportedSGSN_CAMEL_Phases_phase4,
14290       { "phase4", "gsm_map.phase4",
14291         FT_BOOLEAN, 8, NULL, 0x10,
14292         "", HFILL }},
14293     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_o_csi,
14294       { "o-csi", "gsm_map.o-csi",
14295         FT_BOOLEAN, 8, NULL, 0x80,
14296         "", HFILL }},
14297     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_d_csi,
14298       { "d-csi", "gsm_map.d-csi",
14299         FT_BOOLEAN, 8, NULL, 0x40,
14300         "", HFILL }},
14301     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_vt_csi,
14302       { "vt-csi", "gsm_map.vt-csi",
14303         FT_BOOLEAN, 8, NULL, 0x20,
14304         "", HFILL }},
14305     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_t_csi,
14306       { "t-csi", "gsm_map.t-csi",
14307         FT_BOOLEAN, 8, NULL, 0x10,
14308         "", HFILL }},
14309     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_mt_sms_csi,
14310       { "mt-sms-csi", "gsm_map.mt-sms-csi",
14311         FT_BOOLEAN, 8, NULL, 0x08,
14312         "", HFILL }},
14313     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_mg_csi,
14314       { "mg-csi", "gsm_map.mg-csi",
14315         FT_BOOLEAN, 8, NULL, 0x04,
14316         "", HFILL }},
14317     { &hf_gsm_map_T_offeredCamel4CSIsInVLR_psi_enhancements,
14318       { "psi-enhancements", "gsm_map.psi-enhancements",
14319         FT_BOOLEAN, 8, NULL, 0x02,
14320         "", HFILL }},
14321     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_o_csi,
14322       { "o-csi", "gsm_map.o-csi",
14323         FT_BOOLEAN, 8, NULL, 0x80,
14324         "", HFILL }},
14325     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_d_csi,
14326       { "d-csi", "gsm_map.d-csi",
14327         FT_BOOLEAN, 8, NULL, 0x40,
14328         "", HFILL }},
14329     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_vt_csi,
14330       { "vt-csi", "gsm_map.vt-csi",
14331         FT_BOOLEAN, 8, NULL, 0x20,
14332         "", HFILL }},
14333     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_t_csi,
14334       { "t-csi", "gsm_map.t-csi",
14335         FT_BOOLEAN, 8, NULL, 0x10,
14336         "", HFILL }},
14337     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mt_sms_csi,
14338       { "mt-sms-csi", "gsm_map.mt-sms-csi",
14339         FT_BOOLEAN, 8, NULL, 0x08,
14340         "", HFILL }},
14341     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_mg_csi,
14342       { "mg-csi", "gsm_map.mg-csi",
14343         FT_BOOLEAN, 8, NULL, 0x04,
14344         "", HFILL }},
14345     { &hf_gsm_map_T_offeredCamel4CSIsInSGSN_psi_enhancements,
14346       { "psi-enhancements", "gsm_map.psi-enhancements",
14347         FT_BOOLEAN, 8, NULL, 0x02,
14348         "", HFILL }},
14349
14350 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
14351
14352   };
14353
14354   /* List of subtrees */
14355   static gint *ett[] = {
14356     &ett_gsm_map,
14357     &ett_gsm_map_InvokeId,
14358     &ett_gsm_map_InvokePDU,
14359     &ett_gsm_map_ReturnResultPDU,
14360         &ett_gsm_map_ReturnErrorPDU,
14361     &ett_gsm_map_ReturnResult_result,
14362         &ett_gsm_map_ReturnError_result,
14363     &ett_gsm_map_GSMMAPPDU,
14364
14365 /*--- Included file: packet-gsm_map-ettarr.c ---*/
14366
14367     &ett_gsm_map_Bss_APDU,
14368     &ett_gsm_map_An_APDU,
14369     &ett_gsm_map_SupportedCamelPhases,
14370     &ett_gsm_map_Vlr_Capability,
14371     &ett_gsm_map_T_superChargerSupportedInServingNetworkEntity,
14372     &ett_gsm_map_T_supportedLCS_CapabilitySets,
14373     &ett_gsm_map_T_offeredCamel4CSIs,
14374     &ett_gsm_map_UpdateLocationArg,
14375     &ett_gsm_map_T_add_info,
14376     &ett_gsm_map_UpdateLocationRes,
14377     &ett_gsm_map_PrivateExtensionList,
14378     &ett_gsm_map_PrivateExtension,
14379     &ett_gsm_map_PcsExtensions,
14380     &ett_gsm_map_CancelLocationArg,
14381     &ett_gsm_map_T_identity,
14382     &ett_gsm_map_T_imsi_WithLMSI,
14383     &ett_gsm_map_CancelLocationRes,
14384     &ett_gsm_map_PurgeMS_Arg,
14385     &ett_gsm_map_PurgeMS_Res,
14386     &ett_gsm_map_SendIdentificationRes,
14387     &ett_gsm_map_SendId_authenticationSetList,
14388     &ett_gsm_map_T_authenticationSetList_item,
14389     &ett_gsm_map_PrepareHO_Arg,
14390     &ett_gsm_map_PrepareHandoverV3Arg,
14391     &ett_gsm_map_T_allowedUMTS_Algorithms,
14392     &ett_gsm_map_T_radioResourceList,
14393     &ett_gsm_map_T_radioResourceList_item,
14394     &ett_gsm_map_T_bssmap_ServiceHandoverList,
14395     &ett_gsm_map_T_bssmap_ServiceHandoverList_item,
14396     &ett_gsm_map_T_iuSupportedCodecsList,
14397     &ett_gsm_map_T_utranCodecList,
14398     &ett_gsm_map_T_geranCodecList,
14399     &ett_gsm_map_T_uesbi_Iu,
14400     &ett_gsm_map_PrepareHO_Res,
14401     &ett_gsm_map_PrepareHandoverV3Res,
14402     &ett_gsm_map_T_relocationNumberList,
14403     &ett_gsm_map_T_relocationNumberList_item,
14404     &ett_gsm_map_T_selectedUMTS_Algorithms,
14405     &ett_gsm_map_T_chosenRadioResourceInformation,
14406     &ett_gsm_map_T_iuAvailableCodecsList,
14407     &ett_gsm_map_SendEndSignalV9Arg,
14408     &ett_gsm_map_PrepareSubsequentHO_Arg,
14409     &ett_gsm_map_SendAuthenticationInfoArgV3,
14410     &ett_gsm_map_T_re_synchronisationInfo,
14411     &ett_gsm_map_SendAuthenticationInfoRes,
14412     &ett_gsm_map_SendAuthenticationInfoRes_item,
14413     &ett_gsm_map_SendAuthenticationInfoV3Res,
14414     &ett_gsm_map_T_authenticationSetList,
14415     &ett_gsm_map_T_tripletList,
14416     &ett_gsm_map_T_tripletList_item,
14417     &ett_gsm_map_T_quintupletList,
14418     &ett_gsm_map_T_quintupletList_item,
14419     &ett_gsm_map_BasicService,
14420     &ett_gsm_map_BasicServiceGroupList,
14421     &ett_gsm_map_Odb_GeneralData,
14422     &ett_gsm_map_Odb_HPLMN_Data,
14423     &ett_gsm_map_BcsmCamelTDPData,
14424     &ett_gsm_map_BcsmCamelTDPDataList,
14425     &ett_gsm_map_O_CSI,
14426     &ett_gsm_map_InsertSubscriberDataArg,
14427     &ett_gsm_map_bearerServiceList,
14428     &ett_gsm_map_SEQUENCE_SIZE_1_20_OF_Teleservice,
14429     &ett_gsm_map_T_provisionedSS,
14430     &ett_gsm_map_T_provisionedSS_item,
14431     &ett_gsm_map_T_cug_Info,
14432     &ett_gsm_map_T_cug_SubscriptionList,
14433     &ett_gsm_map_T_cug_SubscriptionList_item,
14434     &ett_gsm_map_T_cug_FeatureList,
14435     &ett_gsm_map_T_cug_FeatureList_item,
14436     &ett_gsm_map_T_emlpp_Info,
14437     &ett_gsm_map_T_regionalSubscriptionData,
14438     &ett_gsm_map_T_vbsSubscriptionData,
14439     &ett_gsm_map_T_vbsSubscriptionData_item,
14440     &ett_gsm_map_T_vgcsSubscriptionData,
14441     &ett_gsm_map_T_vgcsSubscriptionData_item,
14442     &ett_gsm_map_T_vlrCamelSubscriptionInfo,
14443     &ett_gsm_map_T_ss_CSI,
14444     &ett_gsm_map_T_gprsSubscriptionData,
14445     &ett_gsm_map_T_gprsDataList,
14446     &ett_gsm_map_T_gprsDataList_item,
14447     &ett_gsm_map_T_lsaInformation,
14448     &ett_gsm_map_T_lsaDataList,
14449     &ett_gsm_map_T_lsaDataList_item,
14450     &ett_gsm_map_T_lcsInformation,
14451     &ett_gsm_map_T_gmlc_List,
14452     &ett_gsm_map_T_lcs_PrivacyExceptionList,
14453     &ett_gsm_map_T_lcs_PrivacyExceptionList_item,
14454     &ett_gsm_map_T_externalClientList,
14455     &ett_gsm_map_T_externalClientList_item,
14456     &ett_gsm_map_T_clientIdentity,
14457     &ett_gsm_map_T_plmnClientList,
14458     &ett_gsm_map_T_molr_List,
14459     &ett_gsm_map_T_molr_List_item,
14460     &ett_gsm_map_InsertSubscriberDataRes,
14461     &ett_gsm_map_ss_List,
14462     &ett_gsm_map_Ss_CamelData,
14463     &ett_gsm_map_T_ss_EventList,
14464     &ett_gsm_map_CallBarringInfo,
14465     &ett_gsm_map_CallBarringFeatureList,
14466     &ett_gsm_map_CallBarringFeatureList_item,
14467     &ett_gsm_map_ForwardingFeatureList,
14468     &ett_gsm_map_DestinationNumberCriteria,
14469     &ett_gsm_map_T_destinationNumberList,
14470     &ett_gsm_map_T_destinationNumberLengthList,
14471     &ett_gsm_map_ForwardingInfo,
14472     &ett_gsm_map_SEQUENCE_SIZE_1_32_OF_ForwardingFeatureList,
14473     &ett_gsm_map_Naea_PreferredCI,
14474     &ett_gsm_map_O_BcsmCamelTDP_CriteriaList,
14475     &ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
14476     &ett_gsm_map_Ss_SubscriptionOption,
14477     &ett_gsm_map_DeleteSubscriberDataArg,
14478     &ett_gsm_map_T_gprsSubscriptionDataWithdraw,
14479     &ett_gsm_map_T_contextIdList,
14480     &ett_gsm_map_T_lsaInformationWithdraw,
14481     &ett_gsm_map_T_lsaIdentityList,
14482     &ett_gsm_map_DeleteSubscriberDataRes,
14483     &ett_gsm_map_ResetArg,
14484     &ett_gsm_map_T_hlr_List,
14485     &ett_gsm_map_RestoreDataArg,
14486     &ett_gsm_map_RestoreDataRes,
14487     &ett_gsm_map_ActivateTraceModeArg,
14488     &ett_gsm_map_ActivateTraceModeRes,
14489     &ett_gsm_map_DeactivateTraceModeArg,
14490     &ett_gsm_map_DeactivateTraceModeRes,
14491     &ett_gsm_map_SendRoutingInfoArg,
14492     &ett_gsm_map_T_camelInfo,
14493     &ett_gsm_map_SendRoutingInfoRes,
14494     &ett_gsm_map_T_extendedRoutingInfo,
14495     &ett_gsm_map_T_routingInfo,
14496     &ett_gsm_map_T_camelRoutingInfo,
14497     &ett_gsm_map_T_gmscCamelSubscriptionInfo,
14498     &ett_gsm_map_T_t_CSI,
14499     &ett_gsm_map_T_ccbs_Indicators,
14500     &ett_gsm_map_SubscriberState,
14501     &ett_gsm_map_LocationInformation,
14502     &ett_gsm_map_T_cellIdOrLAI,
14503     &ett_gsm_map_SubscriberInfo,
14504     &ett_gsm_map_T_locationInformationGPRS,
14505     &ett_gsm_map_T_cellGlobalIdOrServiceAreaIdOrLAI,
14506     &ett_gsm_map_T_ps_SubscriberState,
14507     &ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging,
14508     &ett_gsm_map_T_ps_PDP_ActiveNotReachableForPaging_item,
14509     &ett_gsm_map_T_ps_PDP_ActiveReachableForPaging,
14510     &ett_gsm_map_T_ps_PDP_ActiveReachableForPaging_item,
14511     &ett_gsm_map_T_gprs_MS_Class,
14512     &ett_gsm_map_T_mnpInfoRes,
14513     &ett_gsm_map_AdditionalSignalInfo,
14514     &ett_gsm_map_Cug_CheckInfo,
14515     &ett_gsm_map_ForwardingData,
14516     &ett_gsm_map_ProvideRoamingNumberArg,
14517     &ett_gsm_map_ProvideRoamingNumberRes,
14518     &ett_gsm_map_ResumeCallHandlingArg,
14519     &ett_gsm_map_T_uu_Data,
14520     &ett_gsm_map_ResumeCallHandlingRes,
14521     &ett_gsm_map_ProvideSIWFSNumberArg,
14522     &ett_gsm_map_ProvideSIWFSNumberRes,
14523     &ett_gsm_map_SIWFSSignallingModifyArg,
14524     &ett_gsm_map_SIWFSSignallingModifyRes,
14525     &ett_gsm_map_SetReportingStateArg,
14526     &ett_gsm_map_SetReportingStateRes,
14527     &ett_gsm_map_StatusReportArg,
14528     &ett_gsm_map_T_eventReportData,
14529     &ett_gsm_map_T_callReportdata,
14530     &ett_gsm_map_StatusReportRes,
14531     &ett_gsm_map_RemoteUserFreeArg,
14532     &ett_gsm_map_RemoteUserFreeRes,
14533     &ett_gsm_map_Ss_Data,
14534     &ett_gsm_map_RegisterSS_Arg,
14535     &ett_gsm_map_Ss_Info,
14536     &ett_gsm_map_Ccbs_Feature,
14537     &ett_gsm_map_Ss_ForBS,
14538     &ett_gsm_map_InterrogateSS_Res,
14539     &ett_gsm_map_SEQUENCE_SIZE_1_13_OF_ForwardingFeatureList,
14540     &ett_gsm_map_T_genericServiceInfo,
14541     &ett_gsm_map_T_ccbs_FeatureList,
14542     &ett_gsm_map_T_ccbs_FeatureList_item,
14543     &ett_gsm_map_Ussd_Arg,
14544     &ett_gsm_map_Ussd_Res,
14545     &ett_gsm_map_ServiceIndicator,
14546     &ett_gsm_map_RegisterCC_EntryArg,
14547     &ett_gsm_map_T_ccbs_Data,
14548     &ett_gsm_map_RegisterCC_EntryRes,
14549     &ett_gsm_map_EraseCC_EntryArg,
14550     &ett_gsm_map_EraseCC_EntryRes,
14551     &ett_gsm_map_RoutingInfoForSMArg,
14552     &ett_gsm_map_RoutingInfoForSMRes,
14553     &ett_gsm_map_T_locationInfoWithLMSI,
14554     &ett_gsm_map_T_additional_Number,
14555     &ett_gsm_map_Mo_forwardSM_Arg,
14556     &ett_gsm_map_Mo_forwardSM_Res,
14557     &ett_gsm_map_Sm_RP_OA,
14558     &ett_gsm_map_Sm_RP_DA,
14559     &ett_gsm_map_Mt_forwardSM_Arg,
14560     &ett_gsm_map_Mt_forwardSM_Res,
14561     &ett_gsm_map_ReportSM_DeliveryStatusArg,
14562     &ett_gsm_map_ReportSM_DeliveryStatusRes,
14563     &ett_gsm_map_InformServiceCentreArg,
14564     &ett_gsm_map_T_mw_Status,
14565     &ett_gsm_map_AlertServiceCentreArg,
14566     &ett_gsm_map_ReadyForSM_Arg,
14567     &ett_gsm_map_ReadyForSM_Res,
14568     &ett_gsm_map_ProvideSubscriberInfoArg,
14569     &ett_gsm_map_ProvideSubscriberInfoRes,
14570     &ett_gsm_map_RequestedInfo,
14571     &ett_gsm_map_AnyTimeInterrogationArg,
14572     &ett_gsm_map_AnyTimeInterrogationRes,
14573     &ett_gsm_map_AnyTimeSubscriptionInterrogationArg,
14574     &ett_gsm_map_T_requestedSubscriptionInfo,
14575     &ett_gsm_map_T_requestedSS_Info,
14576     &ett_gsm_map_AnyTimeSubscriptionInterrogationRes,
14577     &ett_gsm_map_T_callForwardingData,
14578     &ett_gsm_map_T_callBarringData,
14579     &ett_gsm_map_T_odb_Info,
14580     &ett_gsm_map_T_camel_SubscriptionInfo,
14581     &ett_gsm_map_T_o_BcsmCamelTDP_CriteriaList,
14582     &ett_gsm_map_T_o_BcsmCamelTDP_CriteriaList_item,
14583     &ett_gsm_map_T_d_CSI,
14584     &ett_gsm_map_T_t_CSI1,
14585     &ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList,
14586     &ett_gsm_map_T_t_BCSM_CAMEL_TDP_CriteriaList_item,
14587     &ett_gsm_map_T_vt_CSI,
14588     &ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList,
14589     &ett_gsm_map_T_vt_BCSM_CAMEL_TDP_CriteriaList_item,
14590     &ett_gsm_map_T_gprs_CSI,
14591     &ett_gsm_map_T_gprs_CamelTDPDataList,
14592     &ett_gsm_map_T_gprs_CamelTDPDataList_item,
14593     &ett_gsm_map_T_mo_sms_CSI,
14594     &ett_gsm_map_T_ss_CSI1,
14595     &ett_gsm_map_T_m_CSI,
14596     &ett_gsm_map_T_specificCSIDeletedList,
14597     &ett_gsm_map_T_mt_sms_CSI,
14598     &ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList,
14599     &ett_gsm_map_T_mt_smsCAMELTDP_CriteriaList_item,
14600     &ett_gsm_map_T_tpdu_TypeCriterion,
14601     &ett_gsm_map_T_mg_csi,
14602     &ett_gsm_map_T_o_IM_CSI,
14603     &ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList,
14604     &ett_gsm_map_T_o_IM_BcsmCamelTDP_CriteriaList_item,
14605     &ett_gsm_map_T_d_IM_CSI,
14606     &ett_gsm_map_T_vt_IM_CSI,
14607     &ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
14608     &ett_gsm_map_T_vt_IM_BCSM_CAMEL_TDP_CriteriaList_item,
14609     &ett_gsm_map_T_supportedVLR_CAMEL_Phases,
14610     &ett_gsm_map_T_supportedSGSN_CAMEL_Phases,
14611     &ett_gsm_map_T_offeredCamel4CSIsInVLR,
14612     &ett_gsm_map_T_offeredCamel4CSIsInSGSN,
14613     &ett_gsm_map_Sms_CAMEL_TDP_DataList,
14614     &ett_gsm_map_Sms_CAMEL_TDP_DataList_item,
14615     &ett_gsm_map_T_CauseValueCriteria,
14616     &ett_gsm_map_O_CauseValueCriteria,
14617     &ett_gsm_map_MobilityTriggers,
14618     &ett_gsm_map_BasicServiceCriteria,
14619     &ett_gsm_map_BasicServiceCriteria_item,
14620     &ett_gsm_map_Dp_AnalysedInfoCriteriaList,
14621     &ett_gsm_map_Dp_AnalysedInfoCriteriaList_item,
14622     &ett_gsm_map_SubscriberIdentity,
14623     &ett_gsm_map_AnyTimeModificationArg,
14624     &ett_gsm_map_T_modificationRequestFor_CF_Info,
14625     &ett_gsm_map_T_basicService,
14626     &ett_gsm_map_T_modificationRequestFor_CB_Info,
14627     &ett_gsm_map_T_basicService1,
14628     &ett_gsm_map_T_modificationRequestFor_CSI,
14629     &ett_gsm_map_T_modificationRequestFor_ODB_data,
14630     &ett_gsm_map_Odb_data,
14631     &ett_gsm_map_Ss_InvocationNotificationArg,
14632     &ett_gsm_map_T_ss_EventSpecification,
14633     &ett_gsm_map_Ss_InvocationNotificationRes,
14634     &ett_gsm_map_PrepareGroupCallArg,
14635     &ett_gsm_map_PrepareGroupCallRes,
14636     &ett_gsm_map_SendGroupCallEndSignalArg,
14637     &ett_gsm_map_SendGroupCallEndSignalRes,
14638     &ett_gsm_map_ProcessGroupCallSignallingArg,
14639     &ett_gsm_map_ForwardGroupCallSignallingArg,
14640     &ett_gsm_map_UpdateGprsLocationArg,
14641     &ett_gsm_map_T_sgsn_Capability,
14642     &ett_gsm_map_UpdateGprsLocationRes,
14643     &ett_gsm_map_SendRoutingInfoForGprsArg,
14644     &ett_gsm_map_SendRoutingInfoForGprsRes,
14645     &ett_gsm_map_FailureReportArg,
14646     &ett_gsm_map_FailureReportRes,
14647     &ett_gsm_map_NoteMsPresentForGprsArg,
14648     &ett_gsm_map_NoteMsPresentForGprsRes,
14649     &ett_gsm_map_LcsClientExternalID,
14650     &ett_gsm_map_LcsClientName,
14651     &ett_gsm_map_Lcs_ClientID,
14652     &ett_gsm_map_LcsLocationInfo,
14653     &ett_gsm_map_ProvideSubscriberLocation_Arg,
14654     &ett_gsm_map_T_locationType,
14655     &ett_gsm_map_T_lcs_QoS,
14656     &ett_gsm_map_T_responseTime,
14657     &ett_gsm_map_ProvideSubscriberLocation_Res,
14658     &ett_gsm_map_TargetMS,
14659     &ett_gsm_map_RoutingInfoForLCS_Arg,
14660     &ett_gsm_map_RoutingInfoForLCS_Res,
14661     &ett_gsm_map_SubscriberLocationReport_Arg,
14662     &ett_gsm_map_SubscriberLocationReport_Res,
14663     &ett_gsm_map_SystemFailureParam,
14664     &ett_gsm_map_T_extensibleSystemFailureParam,
14665     &ett_gsm_map_DataMissingParam,
14666     &ett_gsm_map_UnexpectedDataParam,
14667     &ett_gsm_map_FacilityNotSupParam,
14668     &ett_gsm_map_IncompatibleTerminalParam,
14669     &ett_gsm_map_ResourceLimitationParam,
14670     &ett_gsm_map_UnknownSubscriberParam,
14671     &ett_gsm_map_NumberChangedParam,
14672     &ett_gsm_map_UnidentifiedSubParam,
14673     &ett_gsm_map_RoamingNotAllowedParam,
14674     &ett_gsm_map_IllegalSubscriberParam,
14675     &ett_gsm_map_IllegalEquipmentParam,
14676     &ett_gsm_map_BearerServNotProvParam,
14677     &ett_gsm_map_TeleservNotProvParam,
14678     &ett_gsm_map_TracingBufferFullParam,
14679     &ett_gsm_map_NoRoamingNbParam,
14680     &ett_gsm_map_AbsentSubscriberParam,
14681     &ett_gsm_map_BusySubscriberParam,
14682     &ett_gsm_map_NoSubscriberReplyParam,
14683     &ett_gsm_map_CallBarredParam,
14684     &ett_gsm_map_T_extensibleCallBarredParam,
14685     &ett_gsm_map_ForwardingFailedParam,
14686     &ett_gsm_map_Or_NotAllowedParam,
14687     &ett_gsm_map_ForwardingViolationParam,
14688     &ett_gsm_map_Cug_RejectParam,
14689     &ett_gsm_map_Ati_NotAllowedParam,
14690     &ett_gsm_map_NoGroupCallNbParam,
14691     &ett_gsm_map_Ss_IncompatibilityCause,
14692     &ett_gsm_map_ShortTermDenialParam,
14693     &ett_gsm_map_LongTermDenialParam,
14694     &ett_gsm_map_SubBusyForMT_SMS_Param,
14695     &ett_gsm_map_Sm_DeliveryFailureCause,
14696     &ett_gsm_map_MessageWaitListFullParam,
14697     &ett_gsm_map_AbsentSubscriberSM_Param,
14698     &ett_gsm_map_UnauthorizedRequestingNetwork_Param,
14699     &ett_gsm_map_UnauthorizedLCSClient_Param,
14700     &ett_gsm_map_PositionMethodFailure_Param,
14701     &ett_gsm_map_UnknownOrUnreachableLCSClient_Param,
14702     &ett_gsm_map_ExtensionContainer,
14703
14704 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
14705
14706   };
14707
14708   /* Register protocol */
14709   proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
14710 /*XXX  register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);*/
14711   /* Register fields and subtrees */
14712   proto_register_field_array(proto_gsm_map, hf, array_length(hf));
14713   proto_register_subtree_array(ett, array_length(ett));
14714
14715         sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu", 
14716                 "GSM SMS TPDU",FT_UINT8, BASE_DEC);
14717
14718         gsm_map_tap = register_tap("gsm_map");
14719         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)" );
14720         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)" );
14721         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)" );
14722         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)" );
14723         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)" );
14724         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)" );
14725         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)" );
14726         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)" );
14727         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)" );
14728         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)" );
14729         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)" );
14730         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)" );
14731         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)" );
14732         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)" );
14733         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)" );
14734         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)" );
14735         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)" );
14736         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)" );
14737         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)" );
14738         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)" );
14739         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)" );
14740         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)" );
14741         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)" );
14742         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)" );
14743         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)" );
14744         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)" );
14745         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)" );
14746         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)" );
14747         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)" );
14748         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)" );
14749         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)" );
14750         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)" );
14751         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)" );
14752         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)" );
14753         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)" );
14754         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)" );
14755         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)" );
14756         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)" );
14757         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)" );
14758         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)" );
14759         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)" );
14760
14761         /* Register our configuration options, particularly our ssn:s */
14762
14763         gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
14764         prefs_register_uint_preference(gsm_map_module, "tcap.itu_ssn1",
14765                 "Subsystem number used for GSM MAP 1",
14766                 "Set Subsystem number used for GSM MAP",
14767                 10, &global_tcap_itu_ssn1);
14768         prefs_register_uint_preference(gsm_map_module, "tcap.itu_ssn2",
14769                 "Subsystem number used for GSM MAP 2",
14770                 "Set Subsystem number used for GSM MAP",
14771                 10, &global_tcap_itu_ssn2);
14772         prefs_register_uint_preference(gsm_map_module, "tcap.itu_ssn3",
14773                 "Subsystem number used for GSM MAP 3",
14774                 "Set Subsystem number used for GSM MAP",
14775                 10, &global_tcap_itu_ssn3);
14776         prefs_register_uint_preference(gsm_map_module, "tcap.itu_ssn4",
14777                 "Subsystem number used for GSM MAP 4",
14778                 "Set Subsystem number used for GSM MAP",
14779                 10, &global_tcap_itu_ssn4);
14780
14781
14782 }
14783
14784