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 -k -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */
6 /* Input file: packet-gsm_map-template.c */
8 /* packet-gsm_map-template.c
9 * Routines for GSM MobileApplication packet dissection
10 * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
14 * Ethereal - Network traffic analyzer
15 * By Gerald Combs <gerald@ethereal.com>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
31 * References: ETSI TS 129 002
39 #include <epan/packet.h>
40 #include <epan/conversation.h>
46 #include "packet-ber.h"
47 #include "packet-gsm_map.h"
49 #define PNAME "GSM_MobileAPplication"
50 #define PSNAME "GSM_MAP"
51 #define PFNAME "gsm_map"
53 /* Initialize the protocol and registered fields */
54 int proto_gsm_map = -1;
55 static int hf_gsm_map_invokeCmd = -1; /* Opcode */
56 static int hf_gsm_map_invokeid = -1; /* INTEGER */
57 static int hf_gsm_map_absent = -1; /* NULL */
58 static int hf_gsm_map_invokeId = -1; /* InvokeId */
59 static int hf_gsm_map_invoke = -1; /* InvokePDU */
60 static int hf_gsm_map_returnResult = -1; /* InvokePDU */
61 static int hf_gsm_map_returnResult_result = -1;
62 static int hf_gsm_map_getPassword = -1;
63 static int hf_gsm_map_currentPassword = -1;
65 /*--- Included file: packet-gsm_map-hf.c ---*/
67 static int hf_gsm_map_protocolId = -1; /* ProtocolId */
68 static int hf_gsm_map_signalInfo = -1; /* OCTET_STRING_SIZE_1_200 */
69 static int hf_gsm_map_extensionContainer = -1; /* ExtensionContainer */
70 static int hf_gsm_map_supportedCamelPhases = -1; /* SupportedCamelPhases */
71 static int hf_gsm_map_solsaSupportIndicator = -1; /* NULL */
72 static int hf_gsm_map_imsi = -1; /* Imsi */
73 static int hf_gsm_map_msc_Number = -1; /* Msc_Number */
74 static int hf_gsm_map_vlr_Number = -1; /* Vlr_Number */
75 static int hf_gsm_map_lmsi = -1; /* Lmsi */
76 static int hf_gsm_map_vlr_Capability = -1; /* Vlr_Capability */
77 static int hf_gsm_map_hlr_Number = -1; /* Hlr_Number */
78 static int hf_gsm_map_PrivateExtensionList_item = -1; /* PrivateExtension */
79 static int hf_gsm_map_identity = -1; /* T_identity */
80 static int hf_gsm_map_imsi_WithLMSI = -1; /* T_imsi_WithLMSI */
81 static int hf_gsm_map_cancellationType = -1; /* CancellationType */
82 static int hf_gsm_map_sgsn_Number = -1; /* Sgsn_Number */
83 static int hf_gsm_map_freezeTMSI = -1; /* NULL */
84 static int hf_gsm_map_freezeP_TMSI = -1; /* NULL */
85 static int hf_gsm_map_authenticationSetList = -1; /* T_authenticationSetList */
86 static int hf_gsm_map_authenticationSetList_item = -1; /* T_authenticationSetList_item */
87 static int hf_gsm_map_rand = -1; /* OCTET_STRING_SIZE_16 */
88 static int hf_gsm_map_sres = -1; /* OCTET_STRING_SIZE_4 */
89 static int hf_gsm_map_kc = -1; /* OCTET_STRING_SIZE_8 */
90 static int hf_gsm_map_targetCellId = -1; /* OCTET_STRING_SIZE_5_7 */
91 static int hf_gsm_map_ho_NumberNotRequired = -1; /* NULL */
92 static int hf_gsm_map_bss_APDU = -1; /* Bss_APDU */
93 static int hf_gsm_map_handoverNumber = -1; /* T_handoverNumber */
94 static int hf_gsm_map_targetMSC_Number = -1; /* T_targetMSC_Number */
95 static int hf_gsm_map_numberOfRequestedVectors = -1; /* INTEGER_1_5 */
96 static int hf_gsm_map_segmentationProhibited = -1; /* NULL */
97 static int hf_gsm_map_immediateResponsePreferred = -1; /* NULL */
98 static int hf_gsm_map_re_synchronisationInfo = -1; /* T_re_synchronisationInfo */
99 static int hf_gsm_map_auts = -1; /* OCTET_STRING_SIZE_14 */
100 static int hf_gsm_map_requestingNodeType = -1; /* T_requestingNodeType */
101 static int hf_gsm_map_requestingPLMN_Id = -1; /* OCTET_STRING_SIZE_3 */
102 static int hf_gsm_map_SendAuthenticationInfoRes_item = -1; /* SendAuthenticationInfoRes_item */
103 static int hf_gsm_map_bearerService = -1; /* OCTET_STRING */
104 static int hf_gsm_map_teleservice = -1; /* Teleservice */
105 static int hf_gsm_map_BasicServiceGroupList_item = -1; /* BasicService */
106 static int hf_gsm_map_bcsmTriggerDetectionPoint = -1; /* BcsmTriggerDetectionPoint */
107 static int hf_gsm_map_serviceKey = -1; /* ServiceKey */
108 static int hf_gsm_map_gsmSCFAddress = -1; /* GsmSCF_Address */
109 static int hf_gsm_map_defaultCallHandling = -1; /* DefaultCallHandling */
110 static int hf_gsm_map_BcsmCamelTDPDataList_item = -1; /* BcsmCamelTDPData */
111 static int hf_gsm_map_o_BcsmCamelTDPDataList = -1; /* BcsmCamelTDPDataList */
112 static int hf_gsm_map_camelCapabilityHandling = -1; /* INTEGER_1_16 */
113 static int hf_gsm_map_msisdn = -1; /* Msisdn */
114 static int hf_gsm_map_category = -1; /* OCTET_STRING_SIZE_1 */
115 static int hf_gsm_map_subscriberStatus = -1; /* SubscriberStatus */
116 static int hf_gsm_map_bearerServiceList = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1_5 */
117 static int hf_gsm_map_bearerServiceList_item = -1; /* OCTET_STRING_SIZE_1_5 */
118 static int hf_gsm_map_teleserviceList = -1; /* SEQUNCE_OF_Teleservice */
119 static int hf_gsm_map_teleserviceList_item = -1; /* Teleservice */
120 static int hf_gsm_map_provisionedSS = -1; /* T_provisionedSS */
121 static int hf_gsm_map_provisionedSS_item = -1; /* T_provisionedSS_item */
122 static int hf_gsm_map_forwardingInfo = -1; /* ForwardingInfo */
123 static int hf_gsm_map_callBarringInfo = -1; /* CallBarringInfo */
124 static int hf_gsm_map_cug_Info = -1; /* T_cug_Info */
125 static int hf_gsm_map_cug_SubscriptionList = -1; /* T_cug_SubscriptionList */
126 static int hf_gsm_map_cug_SubscriptionList_item = -1; /* T_cug_SubscriptionList_item */
127 static int hf_gsm_map_cug_Index = -1; /* INTEGER_0_32767 */
128 static int hf_gsm_map_cug_Interlock = -1; /* OCTET_STRING_SIZE_4 */
129 static int hf_gsm_map_intraCUG_Options = -1; /* IntraCUG_Options */
130 static int hf_gsm_map_basicServiceGroupList = -1; /* BasicServiceGroupList */
131 static int hf_gsm_map_cug_FeatureList = -1; /* T_cug_FeatureList */
132 static int hf_gsm_map_cug_FeatureList_item = -1; /* T_cug_FeatureList_item */
133 static int hf_gsm_map_basicService = -1; /* BasicService */
134 static int hf_gsm_map_preferentialCUG_Indicator = -1; /* INTEGER_0_32767 */
135 static int hf_gsm_map_interCUG_Restrictions = -1; /* OCTET_STRING_SIZE_1 */
136 static int hf_gsm_map_ss_Data2 = -1; /* T_ss_Data2 */
137 static int hf_gsm_map_ss_Code = -1; /* Ss_Code */
138 static int hf_gsm_map_ss_Status = -1; /* Ss_Status */
139 static int hf_gsm_map_ss_SubscriptionOption = -1; /* Ss_SubscriptionOption */
140 static int hf_gsm_map_emlpp_Info = -1; /* T_emlpp_Info */
141 static int hf_gsm_map_maximumentitledPriority = -1; /* INTEGER_0_15 */
142 static int hf_gsm_map_defaultPriority = -1; /* INTEGER_0_15 */
143 static int hf_gsm_map_odb_Data = -1; /* T_odb_Data */
144 static int hf_gsm_map_odb_GeneralData = -1; /* Odb_GeneralData */
145 static int hf_gsm_map_odb_HPLMN_Data = -1; /* Odb_HPLMN_Data */
146 static int hf_gsm_map_roamingRestrictionDueToUnsupportedFeature = -1; /* NULL */
147 static int hf_gsm_map_regionalSubscriptionData = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_2 */
148 static int hf_gsm_map_regionalSubscriptionData_item = -1; /* OCTET_STRING_SIZE_2 */
149 static int hf_gsm_map_vbsSubscriptionData = -1; /* T_vbsSubscriptionData */
150 static int hf_gsm_map_vbsSubscriptionData_item = -1; /* T_vbsSubscriptionData_item */
151 static int hf_gsm_map_groupid = -1; /* OCTET_STRING_SIZE_3 */
152 static int hf_gsm_map_broadcastInitEntitlement = -1; /* NULL */
153 static int hf_gsm_map_vgcsSubscriptionData = -1; /* T_vgcsSubscriptionData */
154 static int hf_gsm_map_vgcsSubscriptionData_item = -1; /* T_vgcsSubscriptionData_item */
155 static int hf_gsm_map_groupId = -1; /* OCTET_STRING_SIZE_3 */
156 static int hf_gsm_map_vlrCamelSubscriptionInfo = -1; /* T_vlrCamelSubscriptionInfo */
157 static int hf_gsm_map_o_CSI = -1; /* O_CSI */
158 static int hf_gsm_map_ss_CSI = -1; /* T_ss_CSI */
159 static int hf_gsm_map_ss_CamelData = -1; /* T_ss_CamelData */
160 static int hf_gsm_map_ss_EventList = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1 */
161 static int hf_gsm_map_ss_EventList_item = -1; /* OCTET_STRING_SIZE_1 */
162 static int hf_gsm_map_gsmSCF_Address = -1; /* GsmSCF_Address */
163 static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDP_CriteriaList */
164 static int hf_gsm_map_tif_CSI = -1; /* NULL */
165 static int hf_gsm_map_naea_PreferredCI = -1; /* Naea_PreferredCI */
166 static int hf_gsm_map_gprsSubscriptionData = -1; /* T_gprsSubscriptionData */
167 static int hf_gsm_map_completeDataListIncluded = -1; /* NULL */
168 static int hf_gsm_map_gprsDataList = -1; /* T_gprsDataList */
169 static int hf_gsm_map_gprsDataList_item = -1; /* T_gprsDataList_item */
170 static int hf_gsm_map_pdp_ContextId = -1; /* INTEGER_1_50 */
171 static int hf_gsm_map_pdp_Type = -1; /* OCTET_STRING_SIZE_2 */
172 static int hf_gsm_map_pdp_Address = -1; /* OCTET_STRING_SIZE_1_16 */
173 static int hf_gsm_map_qos_Subscribed = -1; /* OCTET_STRING_SIZE_3 */
174 static int hf_gsm_map_vplmnAddressAllowed = -1; /* NULL */
175 static int hf_gsm_map_apn = -1; /* OCTET_STRING_SIZE_2_63 */
176 static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature = -1; /* NULL */
177 static int hf_gsm_map_networkAccessMode = -1; /* T_networkAccessMode */
178 static int hf_gsm_map_lsaInformation = -1; /* T_lsaInformation */
179 static int hf_gsm_map_lsaOnlyAccessIndicator = -1; /* T_lsaOnlyAccessIndicator */
180 static int hf_gsm_map_lsaDataList = -1; /* T_lsaDataList */
181 static int hf_gsm_map_lsaDataList_item = -1; /* T_lsaDataList_item */
182 static int hf_gsm_map_lsaIdentity = -1; /* OCTET_STRING_SIZE_3 */
183 static int hf_gsm_map_lsaAttributes = -1; /* OCTET_STRING_SIZE_1 */
184 static int hf_gsm_map_lsaActiveModeIndicator = -1; /* NULL */
185 static int hf_gsm_map_lmu_Indicator = -1; /* NULL */
186 static int hf_gsm_map_lcsInformation = -1; /* T_lcsInformation */
187 static int hf_gsm_map_gmlc_List = -1; /* T_gmlc_List */
188 static int hf_gsm_map_gmlc_List_item = -1; /* T_gmlc_List_item */
189 static int hf_gsm_map_lcs_PrivacyExceptionList = -1; /* T_lcs_PrivacyExceptionList */
190 static int hf_gsm_map_lcs_PrivacyExceptionList_item = -1; /* T_lcs_PrivacyExceptionList_item */
191 static int hf_gsm_map_notificationToMSUser = -1; /* NotificationToMSUser */
192 static int hf_gsm_map_externalClientList = -1; /* T_externalClientList */
193 static int hf_gsm_map_externalClientList_item = -1; /* T_externalClientList_item */
194 static int hf_gsm_map_clientIdentity = -1; /* T_clientIdentity */
195 static int hf_gsm_map_externalAddress = -1; /* OCTET_STRING_SIZE_1_20 */
196 static int hf_gsm_map_gmlc_Restriction = -1; /* T_gmlc_Restriction */
197 static int hf_gsm_map_plmnClientList = -1; /* T_plmnClientList */
198 static int hf_gsm_map_plmnClientList_item = -1; /* T_plmnClientList_item */
199 static int hf_gsm_map_molr_List = -1; /* T_molr_List */
200 static int hf_gsm_map_molr_List_item = -1; /* T_molr_List_item */
201 static int hf_gsm_map_ss_List = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1 */
202 static int hf_gsm_map_ss_List_item = -1; /* OCTET_STRING_SIZE_1 */
203 static int hf_gsm_map_regionalSubscriptionResponse = -1; /* RegionalSubscriptionResponse */
204 static int hf_gsm_map_callBarringFeatureList = -1; /* T_callBarringFeatureList */
205 static int hf_gsm_map_callBarringFeatureList_item = -1; /* T_callBarringFeatureList_item */
206 static int hf_gsm_map_forwardedToNumber = -1; /* ForwardedToNumber */
207 static int hf_gsm_map_forwardedToSubaddress = -1; /* ForwardedToSubaddress */
208 static int hf_gsm_map_forwardingOptions = -1; /* ForwardingOptions */
209 static int hf_gsm_map_noReplyConditionTime = -1; /* INTEGER */
210 static int hf_gsm_map_matchType = -1; /* MatchType */
211 static int hf_gsm_map_destinationNumberList = -1; /* T_destinationNumberList */
212 static int hf_gsm_map_destinationNumberList_item = -1; /* T_destinationNumberList_item */
213 static int hf_gsm_map_destinationNumberLengthList = -1; /* SEQUNCE_OF_INTEGER_1_15 */
214 static int hf_gsm_map_destinationNumberLengthList_item = -1; /* INTEGER_1_15 */
215 static int hf_gsm_map_forwardingFeatureList = -1; /* SEQUNCE_OF_ForwardingFeatureList */
216 static int hf_gsm_map_forwardingFeatureList_item = -1; /* ForwardingFeatureList */
217 static int hf_gsm_map_naea_PreferredCIC = -1; /* OCTET_STRING_SIZE_3 */
218 static int hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1; /* O_BcsmCamelTDP_CriteriaList_item */
219 static int hf_gsm_map_o_BcsmTriggerDetectionPoint = -1; /* BcsmTriggerDetectionPoint */
220 static int hf_gsm_map_destinationNumberCriteria = -1; /* DestinationNumberCriteria */
221 static int hf_gsm_map_basicServiceCriteria = -1; /* BasicServiceGroupList */
222 static int hf_gsm_map_callTypeCriteria = -1; /* CallTypeCriteria */
223 static int hf_gsm_map_cliRestrictionOption = -1; /* CliRestrictionOption */
224 static int hf_gsm_map_overrideCategory = -1; /* OverrideCategory */
225 static int hf_gsm_map_basicServiceList = -1; /* BasicServiceGroupList */
226 static int hf_gsm_map_regionalSubscriptionIdentifier = -1; /* OCTET_STRING_SIZE_2 */
227 static int hf_gsm_map_vbsGroupIndication = -1; /* NULL */
228 static int hf_gsm_map_vgcsGroupIndication = -1; /* NULL */
229 static int hf_gsm_map_camelSubscriptionInfoWithdraw = -1; /* NULL */
230 static int hf_gsm_map_gprsSubscriptionDataWithdraw = -1; /* T_gprsSubscriptionDataWithdraw */
231 static int hf_gsm_map_allGPRSData = -1; /* NULL */
232 static int hf_gsm_map_contextIdList = -1; /* SEQUNCE_OF_INTEGER_1_50 */
233 static int hf_gsm_map_contextIdList_item = -1; /* INTEGER_1_50 */
234 static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1; /* NULL */
235 static int hf_gsm_map_lsaInformationWithdraw = -1; /* T_lsaInformationWithdraw */
236 static int hf_gsm_map_allLSAData = -1; /* NULL */
237 static int hf_gsm_map_lsaIdentityList = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_3 */
238 static int hf_gsm_map_lsaIdentityList_item = -1; /* OCTET_STRING_SIZE_3 */
239 static int hf_gsm_map_gmlc_ListWithdraw = -1; /* NULL */
240 static int hf_gsm_map_hlr_List = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_3_8 */
241 static int hf_gsm_map_hlr_List_item = -1; /* OCTET_STRING_SIZE_3_8 */
242 static int hf_gsm_map_msNotReachable = -1; /* NULL */
243 static int hf_gsm_map_traceReference = -1; /* OCTET_STRING_SIZE_1_2 */
244 static int hf_gsm_map_traceType = -1; /* INTEGER_0_255 */
245 static int hf_gsm_map_omc_Id = -1; /* OCTET_STRING_SIZE_1_20 */
246 static int hf_gsm_map_cug_CheckInfo = -1; /* Cug_CheckInfo */
247 static int hf_gsm_map_numberOfForwarding = -1; /* INTEGER_1_5 */
248 static int hf_gsm_map_interrogationType = -1; /* T_interrogationType */
249 static int hf_gsm_map_or_Interrogation = -1; /* NULL */
250 static int hf_gsm_map_or_Capability = -1; /* INTEGER_1_127 */
251 static int hf_gsm_map_gmsc_Address = -1; /* Gmsc_Address */
252 static int hf_gsm_map_callReferenceNumber = -1; /* OCTET_STRING_SIZE_1_8 */
253 static int hf_gsm_map_forwardingReason = -1; /* T_forwardingReason */
254 static int hf_gsm_map_basicServiceGroup = -1; /* BasicService */
255 static int hf_gsm_map_networkSignalInfo = -1; /* Bss_APDU */
256 static int hf_gsm_map_camelInfo = -1; /* T_camelInfo */
257 static int hf_gsm_map_suppress_T_CSI = -1; /* NULL */
258 static int hf_gsm_map_suppressionOfAnnouncement = -1; /* NULL */
259 static int hf_gsm_map_alertingPattern = -1; /* OCTET_STRING_SIZE_1 */
260 static int hf_gsm_map_ccbs_Call = -1; /* NULL */
261 static int hf_gsm_map_supportedCCBS_Phase = -1; /* INTEGER_1_127 */
262 static int hf_gsm_map_additionalSignalInfo = -1; /* AdditionalSignalInfo */
263 static int hf_gsm_map_extendedRoutingInfo = -1; /* T_extendedRoutingInfo */
264 static int hf_gsm_map_routingInfo = -1; /* T_routingInfo */
265 static int hf_gsm_map_roamingNumber = -1; /* RoamingNumber */
266 static int hf_gsm_map_forwardingData = -1; /* ForwardingData */
267 static int hf_gsm_map_camelRoutingInfo = -1; /* T_camelRoutingInfo */
268 static int hf_gsm_map_gmscCamelSubscriptionInfo = -1; /* T_gmscCamelSubscriptionInfo */
269 static int hf_gsm_map_t_CSI = -1; /* T_t_CSI */
270 static int hf_gsm_map_t_BcsmCamelTDPDataList = -1; /* BcsmCamelTDPDataList */
271 static int hf_gsm_map_cugSubscriptionFlag = -1; /* NULL */
272 static int hf_gsm_map_subscriberInfo = -1; /* SubscriberInfo */
273 static int hf_gsm_map_forwardingInterrogationRequired = -1; /* NULL */
274 static int hf_gsm_map_vmsc_Address = -1; /* T_vmsc_Address */
275 static int hf_gsm_map_ccbs_Indicators = -1; /* T_ccbs_Indicators */
276 static int hf_gsm_map_ccbs_Possible = -1; /* NULL */
277 static int hf_gsm_map_keepCCBS_CallIndicator = -1; /* NULL */
278 static int hf_gsm_map_numberPortabilityStatus = -1; /* T_numberPortabilityStatus */
279 static int hf_gsm_map_assumedIdle = -1; /* NULL */
280 static int hf_gsm_map_camelBusy = -1; /* NULL */
281 static int hf_gsm_map_notProvidedFromVLR = -1; /* NULL */
282 static int hf_gsm_map_ageOfLocationInformation = -1; /* INTEGER_0_32767 */
283 static int hf_gsm_map_geographicalInformation = -1; /* OCTET_STRING_SIZE_8 */
284 static int hf_gsm_map_vlr_number = -1; /* Vlr_Number */
285 static int hf_gsm_map_locationNumber = -1; /* OCTET_STRING_SIZE_2_10 */
286 static int hf_gsm_map_cellIdOrLAI = -1; /* T_cellIdOrLAI */
287 static int hf_gsm_map_cellIdFixedLength = -1; /* OCTET_STRING_SIZE_7 */
288 static int hf_gsm_map_laiFixedLength = -1; /* OCTET_STRING_SIZE_5 */
289 static int hf_gsm_map_locationInformation = -1; /* LocationInformation */
290 static int hf_gsm_map_subscriberState = -1; /* SubscriberState */
291 static int hf_gsm_map_ext_ProtocolId = -1; /* T_ext_ProtocolId */
292 static int hf_gsm_map_cug_OutgoingAccess = -1; /* NULL */
293 static int hf_gsm_map_gsm_BearerCapability = -1; /* Bss_APDU */
294 static int hf_gsm_map_supportedCamelPhasesInGMSC = -1; /* SupportedCamelPhases */
295 static int hf_gsm_map_orNotSupportedInGMSC = -1; /* NULL */
296 static int hf_gsm_map_uu_Data = -1; /* T_uu_Data */
297 static int hf_gsm_map_uuIndicator = -1; /* OCTET_STRING_SIZE_1 */
298 static int hf_gsm_map_uui = -1; /* OCTET_STRING_SIZE_1_131 */
299 static int hf_gsm_map_uusCFInteraction = -1; /* NULL */
300 static int hf_gsm_map_allInformationSent = -1; /* NULL */
301 static int hf_gsm_map_isdn_BearerCapability = -1; /* Bss_APDU */
302 static int hf_gsm_map_call_Direction = -1; /* OCTET_STRING_SIZE_1 */
303 static int hf_gsm_map_b_Subscriber_Address = -1; /* T_b_Subscriber_Address */
304 static int hf_gsm_map_chosenChannel = -1; /* Bss_APDU */
305 static int hf_gsm_map_lowerLayerCompatibility = -1; /* Bss_APDU */
306 static int hf_gsm_map_highLayerCompatibility = -1; /* Bss_APDU */
307 static int hf_gsm_map_sIWFSNumber = -1; /* T_sIWFSNumber */
308 static int hf_gsm_map_channelType = -1; /* Bss_APDU */
309 static int hf_gsm_map_ccbs_Monitoring = -1; /* Ccbs_Monitoring */
310 static int hf_gsm_map_ccbs_SubscriberStatus = -1; /* Ccbs_SubscriberStatus */
311 static int hf_gsm_map_eventReportData = -1; /* T_eventReportData */
312 static int hf_gsm_map_callReportdata = -1; /* T_callReportdata */
313 static int hf_gsm_map_monitoringMode = -1; /* MonitoringMode */
314 static int hf_gsm_map_callOutcome = -1; /* CallOutcome */
315 static int hf_gsm_map_callInfo = -1; /* Bss_APDU */
316 static int hf_gsm_map_ccbs_Feature = -1; /* Ccbs_Feature */
317 static int hf_gsm_map_translatedB_Number = -1; /* TranslatedB_Number */
318 static int hf_gsm_map_replaceB_Number = -1; /* NULL */
319 static int hf_gsm_map_ruf_Outcome = -1; /* Ruf_Outcome */
320 static int hf_gsm_map_ss_Data = -1; /* Ss_Data */
321 static int hf_gsm_map_ccbs_Index = -1; /* INTEGER_1_5 */
322 static int hf_gsm_map_b_subscriberNumber = -1; /* B_subscriberNumber */
323 static int hf_gsm_map_b_subscriberSubaddress = -1; /* OCTET_STRING_SIZE_1_21 */
324 static int hf_gsm_map_genericServiceInfo = -1; /* T_genericServiceInfo */
325 static int hf_gsm_map_maximumEntitledPriority = -1; /* INTEGER_0_15 */
326 static int hf_gsm_map_ccbs_FeatureList = -1; /* T_ccbs_FeatureList */
327 static int hf_gsm_map_ccbs_FeatureList_item = -1; /* T_ccbs_FeatureList_item */
328 static int hf_gsm_map_ussd_DataCodingScheme = -1; /* OCTET_STRING_SIZE_1 */
329 static int hf_gsm_map_ussd_String = -1; /* OCTET_STRING_SIZE_1_160 */
330 static int hf_gsm_map_ccbs_Data = -1; /* T_ccbs_Data */
331 static int hf_gsm_map_serviceIndicator = -1; /* ServiceIndicator */
332 static int hf_gsm_map_sm_RP_PRI = -1; /* BOOLEAN */
333 static int hf_gsm_map_serviceCentreAddress = -1; /* OCTET_STRING_SIZE_1_20 */
334 static int hf_gsm_map_gprsSupportIndicator = -1; /* NULL */
335 static int hf_gsm_map_sm_RP_MTI = -1; /* INTEGER_0_10 */
336 static int hf_gsm_map_sm_RP_SMEA = -1; /* OCTET_STRING_SIZE_1_12 */
337 static int hf_gsm_map_locationInfoWithLMSI = -1; /* T_locationInfoWithLMSI */
338 static int hf_gsm_map_networkNode_Number = -1; /* T_networkNode_Number */
339 static int hf_gsm_map_gprsNodeIndicator = -1; /* NULL */
340 static int hf_gsm_map_additional_Number = -1; /* T_additional_Number */
341 static int hf_gsm_map_sm_RP_DA = -1; /* Sm_RP_DA */
342 static int hf_gsm_map_sm_RP_OA = -1; /* Sm_RP_OA */
343 static int hf_gsm_map_sm_RP_UI = -1; /* OCTET_STRING_SIZE_1_200 */
344 static int hf_gsm_map_serviceCentreAddressOA = -1; /* OCTET_STRING_SIZE_1_20 */
345 static int hf_gsm_map_noSM_RP_OA = -1; /* NULL */
346 static int hf_gsm_map_serviceCentreAddressDA = -1; /* OCTET_STRING_SIZE_1_20 */
347 static int hf_gsm_map_noSM_RP_DA = -1; /* NULL */
348 static int hf_gsm_map_moreMessagesToSend = -1; /* NULL */
349 static int hf_gsm_map_sm_DeliveryOutcome = -1; /* Sm_DeliveryOutcome */
350 static int hf_gsm_map_absentSubscriberDiagnosticSM = -1; /* INTEGER_0_255 */
351 static int hf_gsm_map_deliveryOutcomeIndicator = -1; /* NULL */
352 static int hf_gsm_map_additionalSM_DeliveryOutcome = -1; /* Sm_DeliveryOutcome */
353 static int hf_gsm_map_additionalAbsentSubscriberDiagnosticSM = -1; /* INTEGER_0_255 */
354 static int hf_gsm_map_storedMSISDN = -1; /* StoredMSISDN */
355 static int hf_gsm_map_mw_Status = -1; /* T_mw_Status */
356 static int hf_gsm_map_alertReason = -1; /* T_alertReason */
357 static int hf_gsm_map_alertReasonIndicator = -1; /* NULL */
358 static int hf_gsm_map_requestedInfo = -1; /* RequestedInfo */
359 static int hf_gsm_map_locationInformationFlag = -1; /* NULL */
360 static int hf_gsm_map_subscriberStateFlag = -1; /* NULL */
361 static int hf_gsm_map_subscriberIdentity = -1; /* T_subscriberIdentity */
362 static int hf_gsm_map_ss_Event = -1; /* OCTET_STRING_SIZE_1 */
363 static int hf_gsm_map_ss_EventSpecification = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1_20 */
364 static int hf_gsm_map_ss_EventSpecification_item = -1; /* OCTET_STRING_SIZE_1_20 */
365 static int hf_gsm_map_asciCallReference = -1; /* OCTET_STRING_SIZE_1_8 */
366 static int hf_gsm_map_codec_Info = -1; /* OCTET_STRING_SIZE_5_10 */
367 static int hf_gsm_map_cipheringAlgorithm = -1; /* OCTET_STRING_SIZE_1 */
368 static int hf_gsm_map_groupKeyNumber = -1; /* INTEGER_0_15 */
369 static int hf_gsm_map_groupKey = -1; /* OCTET_STRING_SIZE_8 */
370 static int hf_gsm_map_priority = -1; /* INTEGER_0_15 */
371 static int hf_gsm_map_uplinkFree = -1; /* NULL */
372 static int hf_gsm_map_groupCallNumber = -1; /* T_groupCallNumber */
373 static int hf_gsm_map_uplinkRequest = -1; /* NULL */
374 static int hf_gsm_map_uplinkReleaseIndication = -1; /* NULL */
375 static int hf_gsm_map_releaseGroupCall = -1; /* NULL */
376 static int hf_gsm_map_uplinkRequestAck = -1; /* NULL */
377 static int hf_gsm_map_uplinkRejectCommand = -1; /* NULL */
378 static int hf_gsm_map_uplinkSeizedCommand = -1; /* NULL */
379 static int hf_gsm_map_uplinkReleaseCommand = -1; /* NULL */
380 static int hf_gsm_map_sgsn_Address = -1; /* OCTET_STRING_SIZE_5_17 */
381 static int hf_gsm_map_sgsn_Capability = -1; /* T_sgsn_Capability */
382 static int hf_gsm_map_ggsn_Address = -1; /* Ggsn_Address */
383 static int hf_gsm_map_ggsn_Number = -1; /* Ggsn_Number */
384 static int hf_gsm_map_mobileNotReachableReason = -1; /* INTEGER_0_255 */
385 static int hf_gsm_map_dataCodingScheme = -1; /* OCTET_STRING */
386 static int hf_gsm_map_nameString = -1; /* OCTET_STRING */
387 static int hf_gsm_map_lcsClientType = -1; /* LcsClientType */
388 static int hf_gsm_map_lcsClientExternalID = -1; /* LcsClientExternalID */
389 static int hf_gsm_map_lcsClientDialedByMS = -1; /* OCTET_STRING */
390 static int hf_gsm_map_lcsClientInternalID = -1; /* LcsClientInternalID */
391 static int hf_gsm_map_lcsClientName = -1; /* LcsClientName */
392 static int hf_gsm_map_locationType = -1; /* T_locationType */
393 static int hf_gsm_map_locationEstimateType = -1; /* T_locationEstimateType */
394 static int hf_gsm_map_mlc_Number = -1; /* T_mlc_Number */
395 static int hf_gsm_map_lcs_ClientID = -1; /* Lcs_ClientID */
396 static int hf_gsm_map_privacyOverride = -1; /* NULL */
397 static int hf_gsm_map_imei = -1; /* Imei */
398 static int hf_gsm_map_lcs_Priority = -1; /* OCTET_STRING_SIZE_1 */
399 static int hf_gsm_map_lcs_QoS = -1; /* T_lcs_QoS */
400 static int hf_gsm_map_horizontal_accuracy = -1; /* OCTET_STRING_SIZE_1 */
401 static int hf_gsm_map_verticalCoordinateRequest = -1; /* NULL */
402 static int hf_gsm_map_vertical_accuracy = -1; /* OCTET_STRING_SIZE_1 */
403 static int hf_gsm_map_responseTime = -1; /* T_responseTime */
404 static int hf_gsm_map_responseTimeCategory = -1; /* T_responseTimeCategory */
405 static int hf_gsm_map_locationEstimate = -1; /* OCTET_STRING_SIZE_1_20 */
406 static int hf_gsm_map_ageOfLocationEstimate = -1; /* INTEGER_0_32767 */
407 static int hf_gsm_map_mlcNumber = -1; /* T_mlcNumber */
408 static int hf_gsm_map_targetMS = -1; /* TargetMS */
409 static int hf_gsm_map_lcsLocationInfo = -1; /* LcsLocationInfo */
410 static int hf_gsm_map_lcs_Event = -1; /* Lcs_Event */
411 static int hf_gsm_map_na_ESRD = -1; /* T_na_ESRD */
412 static int hf_gsm_map_na_ESRK = -1; /* T_na_ESRK */
413 static int hf_gsm_map_networkResource = -1; /* NetworkResource */
414 static int hf_gsm_map_extensibleSystemFailureParam = -1; /* T_extensibleSystemFailureParam */
415 static int hf_gsm_map_unknownSubscriberDiagnostic = -1; /* T_unknownSubscriberDiagnostic */
416 static int hf_gsm_map_roamingNotAllowedCause = -1; /* T_roamingNotAllowedCause */
417 static int hf_gsm_map_absentSubscriberReason = -1; /* T_absentSubscriberReason */
418 static int hf_gsm_map_ccbs_Busy = -1; /* NULL */
419 static int hf_gsm_map_callBarringCause = -1; /* CallBarringCause */
420 static int hf_gsm_map_extensibleCallBarredParam = -1; /* T_extensibleCallBarredParam */
421 static int hf_gsm_map_unauthorisedMessageOriginator = -1; /* NULL */
422 static int hf_gsm_map_cug_RejectCause = -1; /* T_cug_RejectCause */
423 static int hf_gsm_map_gprsConnectionSuspended = -1; /* NULL */
424 static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1; /* T_sm_EnumeratedDeliveryFailureCause */
425 static int hf_gsm_map_diagnosticInfo = -1; /* OCTET_STRING_SIZE_1_200 */
426 static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1; /* T_unauthorizedLCSClient_Diagnostic */
427 static int hf_gsm_map_positionMethodFailure_Diagnostic = -1; /* T_positionMethodFailure_Diagnostic */
428 static int hf_gsm_map_privateExtensionList = -1; /* PrivateExtensionList */
429 static int hf_gsm_map_pcsExtensions = -1; /* PcsExtensions */
431 static int hf_gsm_map_SupportedCamelPhases_phase1 = -1;
432 static int hf_gsm_map_SupportedCamelPhases_phase2 = -1;
433 static int hf_gsm_map_Odb_GeneralData_allOGCallsBarred = -1;
434 static int hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred = -1;
435 static int hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred = -1;
436 static int hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred = -1;
437 static int hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
438 static int hf_gsm_map_Odb_GeneralData_ssAccessBarred = -1;
439 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred = -1;
440 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred = -1;
441 static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred = -1;
442 static int hf_gsm_map_Odb_GeneralData_allECTBarred = -1;
443 static int hf_gsm_map_Odb_GeneralData_chargeableECTBarred = -1;
444 static int hf_gsm_map_Odb_GeneralData_internationalECTBarred = -1;
445 static int hf_gsm_map_Odb_GeneralData_interzonalECTBarred = -1;
446 static int hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred = -1;
447 static int hf_gsm_map_Odb_GeneralData_multipleECTBarred = -1;
448 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1 = -1;
449 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2 = -1;
450 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3 = -1;
451 static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4 = -1;
452 static int hf_gsm_map_ServiceIndicator_clirInvoked = -1;
453 static int hf_gsm_map_ServiceIndicator_camelInvoked = -1;
454 static int hf_gsm_map_T_mw_Status_scAddressNotIncluded = -1;
455 static int hf_gsm_map_T_mw_Status_mnrfSet = -1;
456 static int hf_gsm_map_T_mw_Status_mcefSet = -1;
457 static int hf_gsm_map_T_mw_Status_mnrgSet = -1;
459 /*--- End of included file: packet-gsm_map-hf.c ---*/
462 /* Initialize the subtree pointers */
463 static gint ett_gsm_map = -1;
464 static gint ett_gsm_map_InvokeId = -1;
465 static gint ett_gsm_map_InvokePDU = -1;
466 static gint ett_gsm_map_ReturnResultPDU = -1;
467 static gint ett_gsm_map_ReturnResult_result = -1;
468 static gint ett_gsm_map_GSMMAPPDU = -1;
469 static int gsm_map_tap = -1;
471 /*--- Included file: packet-gsm_map-ett.c ---*/
473 static gint ett_gsm_map_Bss_APDU = -1;
474 static gint ett_gsm_map_SupportedCamelPhases = -1;
475 static gint ett_gsm_map_Vlr_Capability = -1;
476 static gint ett_gsm_map_UpdateLocationArg = -1;
477 static gint ett_gsm_map_UpdateLocationRes = -1;
478 static gint ett_gsm_map_PrivateExtensionList = -1;
479 static gint ett_gsm_map_PrivateExtension = -1;
480 static gint ett_gsm_map_PcsExtensions = -1;
481 static gint ett_gsm_map_CancelLocationArg = -1;
482 static gint ett_gsm_map_T_identity = -1;
483 static gint ett_gsm_map_T_imsi_WithLMSI = -1;
484 static gint ett_gsm_map_CancelLocationRes = -1;
485 static gint ett_gsm_map_PurgeMS_Arg = -1;
486 static gint ett_gsm_map_PurgeMS_Res = -1;
487 static gint ett_gsm_map_SendIdentificationRes = -1;
488 static gint ett_gsm_map_T_authenticationSetList = -1;
489 static gint ett_gsm_map_T_authenticationSetList_item = -1;
490 static gint ett_gsm_map_PrepareHO_Arg = -1;
491 static gint ett_gsm_map_PrepareHO_Res = -1;
492 static gint ett_gsm_map_PrepareSubsequentHO_Arg = -1;
493 static gint ett_gsm_map_SendAuthenticationInfoArg = -1;
494 static gint ett_gsm_map_T_re_synchronisationInfo = -1;
495 static gint ett_gsm_map_SendAuthenticationInfoRes = -1;
496 static gint ett_gsm_map_SendAuthenticationInfoRes_item = -1;
497 static gint ett_gsm_map_BasicService = -1;
498 static gint ett_gsm_map_BasicServiceGroupList = -1;
499 static gint ett_gsm_map_Odb_GeneralData = -1;
500 static gint ett_gsm_map_Odb_HPLMN_Data = -1;
501 static gint ett_gsm_map_BcsmCamelTDPData = -1;
502 static gint ett_gsm_map_BcsmCamelTDPDataList = -1;
503 static gint ett_gsm_map_O_CSI = -1;
504 static gint ett_gsm_map_InsertSubscriberDataArg = -1;
505 static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5 = -1;
506 static gint ett_gsm_map_SEQUNCE_OF_Teleservice = -1;
507 static gint ett_gsm_map_T_provisionedSS = -1;
508 static gint ett_gsm_map_T_provisionedSS_item = -1;
509 static gint ett_gsm_map_T_cug_Info = -1;
510 static gint ett_gsm_map_T_cug_SubscriptionList = -1;
511 static gint ett_gsm_map_T_cug_SubscriptionList_item = -1;
512 static gint ett_gsm_map_T_cug_FeatureList = -1;
513 static gint ett_gsm_map_T_cug_FeatureList_item = -1;
514 static gint ett_gsm_map_T_ss_Data2 = -1;
515 static gint ett_gsm_map_T_emlpp_Info = -1;
516 static gint ett_gsm_map_T_odb_Data = -1;
517 static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2 = -1;
518 static gint ett_gsm_map_T_vbsSubscriptionData = -1;
519 static gint ett_gsm_map_T_vbsSubscriptionData_item = -1;
520 static gint ett_gsm_map_T_vgcsSubscriptionData = -1;
521 static gint ett_gsm_map_T_vgcsSubscriptionData_item = -1;
522 static gint ett_gsm_map_T_vlrCamelSubscriptionInfo = -1;
523 static gint ett_gsm_map_T_ss_CSI = -1;
524 static gint ett_gsm_map_T_ss_CamelData = -1;
525 static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1 = -1;
526 static gint ett_gsm_map_T_gprsSubscriptionData = -1;
527 static gint ett_gsm_map_T_gprsDataList = -1;
528 static gint ett_gsm_map_T_gprsDataList_item = -1;
529 static gint ett_gsm_map_T_lsaInformation = -1;
530 static gint ett_gsm_map_T_lsaDataList = -1;
531 static gint ett_gsm_map_T_lsaDataList_item = -1;
532 static gint ett_gsm_map_T_lcsInformation = -1;
533 static gint ett_gsm_map_T_gmlc_List = -1;
534 static gint ett_gsm_map_T_lcs_PrivacyExceptionList = -1;
535 static gint ett_gsm_map_T_lcs_PrivacyExceptionList_item = -1;
536 static gint ett_gsm_map_T_externalClientList = -1;
537 static gint ett_gsm_map_T_externalClientList_item = -1;
538 static gint ett_gsm_map_T_clientIdentity = -1;
539 static gint ett_gsm_map_T_plmnClientList = -1;
540 static gint ett_gsm_map_T_molr_List = -1;
541 static gint ett_gsm_map_T_molr_List_item = -1;
542 static gint ett_gsm_map_InsertSubscriberDataRes = -1;
543 static gint ett_gsm_map_CallBarringInfo = -1;
544 static gint ett_gsm_map_T_callBarringFeatureList = -1;
545 static gint ett_gsm_map_T_callBarringFeatureList_item = -1;
546 static gint ett_gsm_map_ForwardingFeatureList = -1;
547 static gint ett_gsm_map_DestinationNumberCriteria = -1;
548 static gint ett_gsm_map_T_destinationNumberList = -1;
549 static gint ett_gsm_map_SEQUNCE_OF_INTEGER_1_15 = -1;
550 static gint ett_gsm_map_ForwardingInfo = -1;
551 static gint ett_gsm_map_SEQUNCE_OF_ForwardingFeatureList = -1;
552 static gint ett_gsm_map_Naea_PreferredCI = -1;
553 static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList = -1;
554 static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1;
555 static gint ett_gsm_map_Ss_SubscriptionOption = -1;
556 static gint ett_gsm_map_DeleteSubscriberDataArg = -1;
557 static gint ett_gsm_map_T_gprsSubscriptionDataWithdraw = -1;
558 static gint ett_gsm_map_SEQUNCE_OF_INTEGER_1_50 = -1;
559 static gint ett_gsm_map_T_lsaInformationWithdraw = -1;
560 static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3 = -1;
561 static gint ett_gsm_map_DeleteSubscriberDataRes = -1;
562 static gint ett_gsm_map_ResetArg = -1;
563 static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8 = -1;
564 static gint ett_gsm_map_RestoreDataArg = -1;
565 static gint ett_gsm_map_RestoreDataRes = -1;
566 static gint ett_gsm_map_ActivateTraceModeArg = -1;
567 static gint ett_gsm_map_ActivateTraceModeRes = -1;
568 static gint ett_gsm_map_DeactivateTraceModeArg = -1;
569 static gint ett_gsm_map_DeactivateTraceModeRes = -1;
570 static gint ett_gsm_map_SendRoutingInfoArg = -1;
571 static gint ett_gsm_map_T_camelInfo = -1;
572 static gint ett_gsm_map_SendRoutingInfoRes = -1;
573 static gint ett_gsm_map_T_extendedRoutingInfo = -1;
574 static gint ett_gsm_map_T_routingInfo = -1;
575 static gint ett_gsm_map_T_camelRoutingInfo = -1;
576 static gint ett_gsm_map_T_gmscCamelSubscriptionInfo = -1;
577 static gint ett_gsm_map_T_t_CSI = -1;
578 static gint ett_gsm_map_T_ccbs_Indicators = -1;
579 static gint ett_gsm_map_SubscriberState = -1;
580 static gint ett_gsm_map_LocationInformation = -1;
581 static gint ett_gsm_map_T_cellIdOrLAI = -1;
582 static gint ett_gsm_map_SubscriberInfo = -1;
583 static gint ett_gsm_map_AdditionalSignalInfo = -1;
584 static gint ett_gsm_map_Cug_CheckInfo = -1;
585 static gint ett_gsm_map_ForwardingData = -1;
586 static gint ett_gsm_map_ProvideRoamingNumberArg = -1;
587 static gint ett_gsm_map_ProvideRoamingNumberRes = -1;
588 static gint ett_gsm_map_ResumeCallHandlingArg = -1;
589 static gint ett_gsm_map_T_uu_Data = -1;
590 static gint ett_gsm_map_ResumeCallHandlingRes = -1;
591 static gint ett_gsm_map_ProvideSIWFSNumberArg = -1;
592 static gint ett_gsm_map_ProvideSIWFSNumberRes = -1;
593 static gint ett_gsm_map_SIWFSSignallingModifyArg = -1;
594 static gint ett_gsm_map_SIWFSSignallingModifyRes = -1;
595 static gint ett_gsm_map_SetReportingStateArg = -1;
596 static gint ett_gsm_map_SetReportingStateRes = -1;
597 static gint ett_gsm_map_StatusReportArg = -1;
598 static gint ett_gsm_map_T_eventReportData = -1;
599 static gint ett_gsm_map_T_callReportdata = -1;
600 static gint ett_gsm_map_StatusReportRes = -1;
601 static gint ett_gsm_map_RemoteUserFreeArg = -1;
602 static gint ett_gsm_map_RemoteUserFreeRes = -1;
603 static gint ett_gsm_map_Ss_Data = -1;
604 static gint ett_gsm_map_RegisterSS_Arg = -1;
605 static gint ett_gsm_map_Ss_Info = -1;
606 static gint ett_gsm_map_Ccbs_Feature = -1;
607 static gint ett_gsm_map_Ss_ForBS = -1;
608 static gint ett_gsm_map_InterrogateSS_Res = -1;
609 static gint ett_gsm_map_T_genericServiceInfo = -1;
610 static gint ett_gsm_map_T_ccbs_FeatureList = -1;
611 static gint ett_gsm_map_T_ccbs_FeatureList_item = -1;
612 static gint ett_gsm_map_Ussd_Arg = -1;
613 static gint ett_gsm_map_Ussd_Res = -1;
614 static gint ett_gsm_map_ServiceIndicator = -1;
615 static gint ett_gsm_map_RegisterCC_EntryArg = -1;
616 static gint ett_gsm_map_T_ccbs_Data = -1;
617 static gint ett_gsm_map_RegisterCC_EntryRes = -1;
618 static gint ett_gsm_map_EraseCC_EntryArg = -1;
619 static gint ett_gsm_map_EraseCC_EntryRes = -1;
620 static gint ett_gsm_map_RoutingInfoForSMArg = -1;
621 static gint ett_gsm_map_RoutingInfoForSMRes = -1;
622 static gint ett_gsm_map_T_locationInfoWithLMSI = -1;
623 static gint ett_gsm_map_T_additional_Number = -1;
624 static gint ett_gsm_map_Mo_forwardSM_Arg = -1;
625 static gint ett_gsm_map_Mo_forwardSM_Res = -1;
626 static gint ett_gsm_map_Sm_RP_OA = -1;
627 static gint ett_gsm_map_Sm_RP_DA = -1;
628 static gint ett_gsm_map_Mt_forwardSM_Arg = -1;
629 static gint ett_gsm_map_Mt_forwardSM_Res = -1;
630 static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1;
631 static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1;
632 static gint ett_gsm_map_InformServiceCentreArg = -1;
633 static gint ett_gsm_map_T_mw_Status = -1;
634 static gint ett_gsm_map_AlertServiceCentreArg = -1;
635 static gint ett_gsm_map_ReadyForSM_Arg = -1;
636 static gint ett_gsm_map_ReadyForSM_Res = -1;
637 static gint ett_gsm_map_ProvideSubscriberInfoArg = -1;
638 static gint ett_gsm_map_ProvideSubscriberInfoRes = -1;
639 static gint ett_gsm_map_RequestedInfo = -1;
640 static gint ett_gsm_map_AnyTimeInterrogationArg = -1;
641 static gint ett_gsm_map_T_subscriberIdentity = -1;
642 static gint ett_gsm_map_AnyTimeInterrogationRes = -1;
643 static gint ett_gsm_map_Ss_InvocationNotificationArg = -1;
644 static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20 = -1;
645 static gint ett_gsm_map_Ss_InvocationNotificationRes = -1;
646 static gint ett_gsm_map_PrepareGroupCallArg = -1;
647 static gint ett_gsm_map_PrepareGroupCallRes = -1;
648 static gint ett_gsm_map_SendGroupCallEndSignalArg = -1;
649 static gint ett_gsm_map_SendGroupCallEndSignalRes = -1;
650 static gint ett_gsm_map_ProcessGroupCallSignallingArg = -1;
651 static gint ett_gsm_map_ForwardGroupCallSignallingArg = -1;
652 static gint ett_gsm_map_UpdateGprsLocationArg = -1;
653 static gint ett_gsm_map_T_sgsn_Capability = -1;
654 static gint ett_gsm_map_UpdateGprsLocationRes = -1;
655 static gint ett_gsm_map_SendRoutingInfoForGprsArg = -1;
656 static gint ett_gsm_map_SendRoutingInfoForGprsRes = -1;
657 static gint ett_gsm_map_FailureReportArg = -1;
658 static gint ett_gsm_map_FailureReportRes = -1;
659 static gint ett_gsm_map_NoteMsPresentForGprsArg = -1;
660 static gint ett_gsm_map_NoteMsPresentForGprsRes = -1;
661 static gint ett_gsm_map_LcsClientExternalID = -1;
662 static gint ett_gsm_map_LcsClientName = -1;
663 static gint ett_gsm_map_Lcs_ClientID = -1;
664 static gint ett_gsm_map_LcsLocationInfo = -1;
665 static gint ett_gsm_map_ProvideSubscriberLocation_Arg = -1;
666 static gint ett_gsm_map_T_locationType = -1;
667 static gint ett_gsm_map_T_lcs_QoS = -1;
668 static gint ett_gsm_map_T_responseTime = -1;
669 static gint ett_gsm_map_ProvideSubscriberLocation_Res = -1;
670 static gint ett_gsm_map_TargetMS = -1;
671 static gint ett_gsm_map_RoutingInfoForLCS_Arg = -1;
672 static gint ett_gsm_map_RoutingInfoForLCS_Res = -1;
673 static gint ett_gsm_map_SubscriberLocationReport_Arg = -1;
674 static gint ett_gsm_map_SubscriberLocationReport_Res = -1;
675 static gint ett_gsm_map_SystemFailureParam = -1;
676 static gint ett_gsm_map_T_extensibleSystemFailureParam = -1;
677 static gint ett_gsm_map_DataMissingParam = -1;
678 static gint ett_gsm_map_UnexpectedDataParam = -1;
679 static gint ett_gsm_map_FacilityNotSupParam = -1;
680 static gint ett_gsm_map_IncompatibleTerminalParam = -1;
681 static gint ett_gsm_map_ResourceLimitationParam = -1;
682 static gint ett_gsm_map_UnknownSubscriberParam = -1;
683 static gint ett_gsm_map_NumberChangedParam = -1;
684 static gint ett_gsm_map_UnidentifiedSubParam = -1;
685 static gint ett_gsm_map_RoamingNotAllowedParam = -1;
686 static gint ett_gsm_map_IllegalSubscriberParam = -1;
687 static gint ett_gsm_map_IllegalEquipmentParam = -1;
688 static gint ett_gsm_map_BearerServNotProvParam = -1;
689 static gint ett_gsm_map_TeleservNotProvParam = -1;
690 static gint ett_gsm_map_TracingBufferFullParam = -1;
691 static gint ett_gsm_map_NoRoamingNbParam = -1;
692 static gint ett_gsm_map_AbsentSubscriberParam = -1;
693 static gint ett_gsm_map_BusySubscriberParam = -1;
694 static gint ett_gsm_map_NoSubscriberReplyParam = -1;
695 static gint ett_gsm_map_CallBarredParam = -1;
696 static gint ett_gsm_map_T_extensibleCallBarredParam = -1;
697 static gint ett_gsm_map_ForwardingFailedParam = -1;
698 static gint ett_gsm_map_Or_NotAllowedParam = -1;
699 static gint ett_gsm_map_ForwardingViolationParam = -1;
700 static gint ett_gsm_map_Cug_RejectParam = -1;
701 static gint ett_gsm_map_Ati_NotAllowedParam = -1;
702 static gint ett_gsm_map_NoGroupCallNbParam = -1;
703 static gint ett_gsm_map_Ss_IncompatibilityCause = -1;
704 static gint ett_gsm_map_ShortTermDenialParam = -1;
705 static gint ett_gsm_map_LongTermDenialParam = -1;
706 static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
707 static gint ett_gsm_map_Sm_DeliveryFailureCause = -1;
708 static gint ett_gsm_map_MessageWaitListFullParam = -1;
709 static gint ett_gsm_map_AbsentSubscriberSM_Param = -1;
710 static gint ett_gsm_map_UnauthorizedRequestingNetwork_Param = -1;
711 static gint ett_gsm_map_UnauthorizedLCSClient_Param = -1;
712 static gint ett_gsm_map_PositionMethodFailure_Param = -1;
713 static gint ett_gsm_map_UnknownOrUnreachableLCSClient_Param = -1;
714 static gint ett_gsm_map_ExtensionContainer = -1;
716 /*--- End of included file: packet-gsm_map-ett.c ---*/
719 static dissector_table_t sms_dissector_table; /* SMS TPDU */
721 static int dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
724 /*--- Included file: packet-gsm_map-fn.c ---*/
726 /*--- Fields for imported types ---*/
730 static const value_string ProtocolId_vals[] = {
734 { 4, "ets-300102-1" },
740 dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
741 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
745 static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
746 return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protocolId);
751 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_) {
752 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
757 static int dissect_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
758 return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo);
760 static int dissect_sm_RP_UI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
761 return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_UI);
763 static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
764 return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_diagnosticInfo);
767 static const ber_sequence PrivateExtension_sequence[] = {
772 dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
773 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
774 PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
778 static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
779 return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_PrivateExtensionList_item);
782 static const ber_sequence PrivateExtensionList_sequence_of[1] = {
783 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
787 dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
788 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
789 PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
793 static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
794 return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privateExtensionList);
797 static const ber_sequence PcsExtensions_sequence[] = {
802 dissect_gsm_map_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
803 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
804 PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
808 static int dissect_pcsExtensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
809 return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pcsExtensions);
812 static const ber_sequence ExtensionContainer_sequence[] = {
813 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
814 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
819 dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
820 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
821 ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
825 static int dissect_extensionContainer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
826 return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
828 static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
829 return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
832 static const ber_sequence Bss_APDU_sequence[] = {
833 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
834 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
835 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
840 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_) {
841 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
842 Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
846 static int dissect_bss_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
847 return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bss_APDU);
849 static int dissect_networkSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
850 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkSignalInfo);
852 static int dissect_gsm_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
853 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsm_BearerCapability);
855 static int dissect_isdn_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
856 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_isdn_BearerCapability);
858 static int dissect_chosenChannel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
859 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenChannel);
861 static int dissect_lowerLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
862 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lowerLayerCompatibility);
864 static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
865 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_highLayerCompatibility);
867 static int dissect_channelType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
868 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_channelType);
870 static int dissect_callInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
871 return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callInfo);
874 static const asn_namedbit SupportedCamelPhases_bits[] = {
875 { 0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, NULL, NULL },
876 { 1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, NULL, NULL },
877 { 0, NULL, 0, 0, NULL, NULL }
881 dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
882 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
883 SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
888 static int dissect_supportedCamelPhases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
889 return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
891 static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
892 return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
894 static int dissect_supportedCamelPhasesInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
895 return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInGMSC);
900 dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
901 { proto_item *ti_tmp;
902 ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
903 proto_item_append_text(ti_tmp, ": NULL");
908 static int dissect_solsaSupportIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
909 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
911 static int dissect_solsaSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
912 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
914 static int dissect_freezeTMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
915 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeTMSI);
917 static int dissect_freezeP_TMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
918 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeP_TMSI);
920 static int dissect_ho_NumberNotRequired(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
921 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ho_NumberNotRequired);
923 static int dissect_segmentationProhibited(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
924 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_segmentationProhibited);
926 static int dissect_immediateResponsePreferred_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
927 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_immediateResponsePreferred);
929 static int dissect_roamingRestrictionDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
930 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictionDueToUnsupportedFeature);
932 static int dissect_broadcastInitEntitlement(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
933 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_broadcastInitEntitlement);
935 static int dissect_tif_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
936 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tif_CSI);
938 static int dissect_completeDataListIncluded(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
939 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_completeDataListIncluded);
941 static int dissect_vplmnAddressAllowed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
942 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vplmnAddressAllowed);
944 static int dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
945 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature);
947 static int dissect_lsaActiveModeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
948 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaActiveModeIndicator);
950 static int dissect_lmu_Indicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
951 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmu_Indicator);
953 static int dissect_vbsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
954 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsGroupIndication);
956 static int dissect_vgcsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
957 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsGroupIndication);
959 static int dissect_camelSubscriptionInfoWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
960 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelSubscriptionInfoWithdraw);
962 static int dissect_allGPRSData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
963 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allGPRSData);
965 static int dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
966 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature);
968 static int dissect_allLSAData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
969 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allLSAData);
971 static int dissect_gmlc_ListWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
972 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_ListWithdraw);
974 static int dissect_msNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
975 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msNotReachable);
977 static int dissect_or_Interrogation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
978 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Interrogation);
980 static int dissect_suppress_T_CSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
981 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_suppress_T_CSI);
983 static int dissect_suppressionOfAnnouncement_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
984 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_suppressionOfAnnouncement);
986 static int dissect_ccbs_Call_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
987 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Call);
989 static int dissect_cugSubscriptionFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
990 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cugSubscriptionFlag);
992 static int dissect_forwardingInterrogationRequired_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
993 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInterrogationRequired);
995 static int dissect_ccbs_Possible_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
996 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Possible);
998 static int dissect_keepCCBS_CallIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
999 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_keepCCBS_CallIndicator);
1001 static int dissect_assumedIdle_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1002 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_assumedIdle);
1004 static int dissect_camelBusy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1005 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelBusy);
1007 static int dissect_notProvidedFromVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1008 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notProvidedFromVLR);
1010 static int dissect_cug_OutgoingAccess(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1011 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_OutgoingAccess);
1013 static int dissect_orNotSupportedInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1014 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_orNotSupportedInGMSC);
1016 static int dissect_uusCFInteraction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1017 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uusCFInteraction);
1019 static int dissect_allInformationSent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1020 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allInformationSent);
1022 static int dissect_replaceB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1023 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_replaceB_Number);
1025 static int dissect_gprsSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1026 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSupportIndicator);
1028 static int dissect_gprsNodeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1029 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsNodeIndicator);
1031 static int dissect_noSM_RP_OA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1032 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_OA);
1034 static int dissect_noSM_RP_DA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1035 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_DA);
1037 static int dissect_moreMessagesToSend(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1038 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_moreMessagesToSend);
1040 static int dissect_deliveryOutcomeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1041 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_deliveryOutcomeIndicator);
1043 static int dissect_alertReasonIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1044 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReasonIndicator);
1046 static int dissect_locationInformationFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1047 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformationFlag);
1049 static int dissect_subscriberStateFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1050 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStateFlag);
1052 static int dissect_uplinkFree_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1053 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkFree);
1055 static int dissect_uplinkRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1056 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequest);
1058 static int dissect_uplinkReleaseIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1059 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseIndication);
1061 static int dissect_releaseGroupCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1062 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_releaseGroupCall);
1064 static int dissect_uplinkRequestAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1065 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequestAck);
1067 static int dissect_uplinkRejectCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1068 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRejectCommand);
1070 static int dissect_uplinkSeizedCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1071 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkSeizedCommand);
1073 static int dissect_uplinkReleaseCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1074 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseCommand);
1076 static int dissect_privacyOverride_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1077 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privacyOverride);
1079 static int dissect_verticalCoordinateRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1080 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_verticalCoordinateRequest);
1082 static int dissect_ccbs_Busy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1083 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Busy);
1085 static int dissect_unauthorisedMessageOriginator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1086 return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorisedMessageOriginator);
1088 static int dissect_gprsConnectionSuspended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1089 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsConnectionSuspended);
1092 static const ber_sequence Vlr_Capability_sequence[] = {
1093 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
1094 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1095 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_solsaSupportIndicator_impl },
1100 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_) {
1101 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1102 Vlr_Capability_sequence, hf_index, ett_gsm_map_Vlr_Capability);
1106 static int dissect_vlr_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1107 return dissect_gsm_map_Vlr_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Capability);
1112 dissect_gsm_map_Imsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1113 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1118 static int dissect_imsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1119 return dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
1121 static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1122 return dissect_gsm_map_Imsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
1127 dissect_gsm_map_Lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1128 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1133 static int dissect_lmsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1134 return dissect_gsm_map_Lmsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
1136 static int dissect_lmsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1137 return dissect_gsm_map_Lmsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
1142 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_) {
1143 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1148 static int dissect_msc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1149 return dissect_gsm_map_Msc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
1151 static int dissect_msc_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1152 return dissect_gsm_map_Msc_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
1157 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_) {
1158 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1163 static int dissect_vlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1164 return dissect_gsm_map_Vlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
1166 static int dissect_vlr_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1167 return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
1169 static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1170 return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_number);
1173 static const ber_sequence UpdateLocationArg_sequence[] = {
1174 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1175 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
1176 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_vlr_Number },
1177 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
1178 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1179 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
1184 dissect_gsm_map_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1185 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1186 UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
1193 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_) {
1194 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1199 static int dissect_hlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1200 return dissect_gsm_map_Hlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_Number);
1203 static const ber_sequence UpdateLocationRes_sequence[] = {
1204 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
1205 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1210 dissect_gsm_map_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1211 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1212 UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
1219 dissect_gsm_map_Teleservice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1220 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1225 static int dissect_teleservice(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1226 return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
1228 static int dissect_teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1229 return dissect_gsm_map_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
1231 static int dissect_teleserviceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1232 return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList_item);
1236 static const value_string CancellationType_vals[] = {
1237 { 0, "updateProcedure" },
1238 { 1, "subscriptionWithdraw" },
1244 dissect_gsm_map_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1245 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1249 static int dissect_cancellationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1250 return dissect_gsm_map_CancellationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cancellationType);
1253 static const ber_sequence T_imsi_WithLMSI_sequence[] = {
1254 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1255 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi },
1260 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_) {
1261 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1262 T_imsi_WithLMSI_sequence, hf_index, ett_gsm_map_T_imsi_WithLMSI);
1266 static int dissect_imsi_WithLMSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1267 return dissect_gsm_map_T_imsi_WithLMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi_WithLMSI);
1271 static const value_string T_identity_vals[] = {
1273 { 1, "imsi-WithLMSI" },
1277 static const ber_choice T_identity_choice[] = {
1278 { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1279 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
1280 { 0, 0, 0, 0, NULL }
1284 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_) {
1285 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1286 T_identity_choice, hf_index, ett_gsm_map_T_identity);
1290 static int dissect_identity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1291 return dissect_gsm_map_T_identity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_identity);
1294 static const ber_sequence CancelLocationArg_sequence[] = {
1295 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
1296 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType },
1297 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1302 dissect_gsm_map_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1303 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1304 CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
1309 static const ber_sequence CancelLocationRes_sequence[] = {
1310 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1315 dissect_gsm_map_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1316 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1317 CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
1324 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_) {
1325 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1330 static int dissect_sgsn_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1331 return dissect_gsm_map_Sgsn_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
1333 static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1334 return dissect_gsm_map_Sgsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
1337 static const ber_sequence PurgeMS_Arg_sequence[] = {
1338 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1339 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
1340 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
1341 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1346 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_) {
1347 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1348 PurgeMS_Arg_sequence, hf_index, ett_gsm_map_PurgeMS_Arg);
1353 static const ber_sequence PurgeMS_Res_sequence[] = {
1354 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl },
1355 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl },
1356 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
1361 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_) {
1362 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1363 PurgeMS_Res_sequence, hf_index, ett_gsm_map_PurgeMS_Res);
1370 dissect_gsm_map_Tmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1371 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1379 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_) {
1380 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1385 static int dissect_rand(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1386 return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_rand);
1391 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_) {
1392 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1397 static int dissect_sres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1398 return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sres);
1400 static int dissect_cug_Interlock(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1401 return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Interlock);
1406 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_) {
1407 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1412 static int dissect_kc(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1413 return dissect_gsm_map_OCTET_STRING_SIZE_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_kc);
1415 static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1416 return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geographicalInformation);
1418 static int dissect_groupKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1419 return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKey);
1422 static const ber_sequence T_authenticationSetList_item_sequence[] = {
1423 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
1424 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
1425 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
1430 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_) {
1431 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1432 T_authenticationSetList_item_sequence, hf_index, ett_gsm_map_T_authenticationSetList_item);
1436 static int dissect_authenticationSetList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1437 return dissect_gsm_map_T_authenticationSetList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList_item);
1440 static const ber_sequence T_authenticationSetList_sequence_of[1] = {
1441 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_authenticationSetList_item },
1445 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_) {
1446 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1447 T_authenticationSetList_sequence_of, hf_index, ett_gsm_map_T_authenticationSetList);
1451 static int dissect_authenticationSetList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1452 return dissect_gsm_map_T_authenticationSetList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList);
1455 static const ber_sequence SendIdentificationRes_sequence[] = {
1456 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
1457 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_authenticationSetList },
1462 dissect_gsm_map_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1463 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1464 SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
1471 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_) {
1472 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1477 static int dissect_targetCellId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1478 return dissect_gsm_map_OCTET_STRING_SIZE_5_7(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
1481 static const ber_sequence PrepareHO_Arg_sequence[] = {
1482 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId },
1483 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
1484 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
1489 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_) {
1490 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1491 PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
1498 dissect_gsm_map_T_handoverNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1499 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1504 static int dissect_handoverNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1505 return dissect_gsm_map_T_handoverNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
1508 static const ber_sequence PrepareHO_Res_sequence[] = {
1509 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
1510 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
1515 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_) {
1516 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1517 PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
1524 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_) {
1525 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1530 static int dissect_targetMSC_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1531 return dissect_gsm_map_T_targetMSC_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
1534 static const ber_sequence PrepareSubsequentHO_Arg_sequence[] = {
1535 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId },
1536 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number },
1537 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
1542 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_) {
1543 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1544 PrepareSubsequentHO_Arg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHO_Arg);
1552 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_) {
1553 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1557 static int dissect_numberOfRequestedVectors(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1558 return dissect_gsm_map_INTEGER_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfRequestedVectors);
1560 static int dissect_numberOfForwarding_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1561 return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfForwarding);
1563 static int dissect_ccbs_Index_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1564 return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Index);
1569 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_) {
1570 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1575 static int dissect_auts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1576 return dissect_gsm_map_OCTET_STRING_SIZE_14(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_auts);
1579 static const ber_sequence T_re_synchronisationInfo_sequence[] = {
1580 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
1581 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts },
1586 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_) {
1587 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1588 T_re_synchronisationInfo_sequence, hf_index, ett_gsm_map_T_re_synchronisationInfo);
1592 static int dissect_re_synchronisationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1593 return dissect_gsm_map_T_re_synchronisationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_re_synchronisationInfo);
1597 static const value_string T_requestingNodeType_vals[] = {
1605 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_) {
1606 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1610 static int dissect_requestingNodeType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1611 return dissect_gsm_map_T_requestingNodeType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingNodeType);
1616 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_) {
1617 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1622 static int dissect_requestingPLMN_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1623 return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingPLMN_Id);
1625 static int dissect_groupid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1626 return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupid);
1628 static int dissect_groupId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1629 return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupId);
1631 static int dissect_qos_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1632 return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Subscribed);
1634 static int dissect_lsaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1635 return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentity);
1637 static int dissect_naea_PreferredCIC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1638 return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCIC);
1640 static int dissect_lsaIdentityList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1641 return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList_item);
1644 static const ber_sequence SendAuthenticationInfoArg_sequence[] = {
1645 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
1646 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
1647 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited },
1648 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immediateResponsePreferred_impl },
1649 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_synchronisationInfo },
1650 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
1651 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingNodeType_impl },
1652 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingPLMN_Id_impl },
1657 dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1658 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1659 SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArg);
1664 static const ber_sequence SendAuthenticationInfoRes_item_sequence[] = {
1665 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
1666 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
1667 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
1672 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_) {
1673 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1674 SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
1678 static int dissect_SendAuthenticationInfoRes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1679 return dissect_gsm_map_SendAuthenticationInfoRes_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_SendAuthenticationInfoRes_item);
1682 static const ber_sequence SendAuthenticationInfoRes_sequence_of[1] = {
1683 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SendAuthenticationInfoRes_item },
1687 dissect_gsm_map_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1688 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1689 SendAuthenticationInfoRes_sequence_of, hf_index, ett_gsm_map_SendAuthenticationInfoRes);
1696 dissect_gsm_map_Imei(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1697 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1702 static int dissect_imei_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1703 return dissect_gsm_map_Imei(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei);
1708 dissect_gsm_map_CheckIMEIArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1709 offset = dissect_gsm_map_Imei(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1715 static const value_string EquipmentStatus_vals[] = {
1716 { 0, "whiteListed" },
1717 { 1, "blackListed" },
1718 { 2, "greyListed" },
1724 dissect_gsm_map_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1725 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1731 static const value_string OverrideCategory_vals[] = {
1732 { 0, "overrideEnabled" },
1733 { 1, "overrideDisabled" },
1739 dissect_gsm_map_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1740 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1744 static int dissect_overrideCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1745 return dissect_gsm_map_OverrideCategory(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_overrideCategory);
1750 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_) {
1751 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1756 static int dissect_bearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1757 return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerService);
1759 static int dissect_dataCodingScheme_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1760 return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dataCodingScheme);
1762 static int dissect_nameString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1763 return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nameString);
1765 static int dissect_lcsClientDialedByMS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1766 return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientDialedByMS);
1770 static const value_string BasicService_vals[] = {
1771 { 2, "bearerService" },
1772 { 3, "teleservice" },
1776 static const ber_choice BasicService_choice[] = {
1777 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_bearerService_impl },
1778 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_teleservice_impl },
1779 { 0, 0, 0, 0, NULL }
1783 dissect_gsm_map_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1784 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1785 BasicService_choice, hf_index, ett_gsm_map_BasicService);
1789 static int dissect_BasicServiceGroupList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1790 return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BasicServiceGroupList_item);
1792 static int dissect_basicService(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1793 return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService);
1795 static int dissect_basicServiceGroup(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1796 return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroup);
1799 static const ber_sequence BasicServiceGroupList_sequence_of[1] = {
1800 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
1804 dissect_gsm_map_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1805 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1806 BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_BasicServiceGroupList);
1810 static int dissect_basicServiceGroupList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1811 return dissect_gsm_map_BasicServiceGroupList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
1813 static int dissect_basicServiceGroupList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1814 return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
1816 static int dissect_basicServiceCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1817 return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceCriteria);
1819 static int dissect_basicServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1820 return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceList);
1824 static const value_string IntraCUG_Options_vals[] = {
1825 { 0, "noCUG-Restrictions" },
1826 { 1, "cugIC-CallBarred" },
1827 { 2, "cugOG-CallBarred" },
1833 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_) {
1834 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1838 static int dissect_intraCUG_Options(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1839 return dissect_gsm_map_IntraCUG_Options(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_intraCUG_Options);
1842 static const asn_namedbit Odb_GeneralData_bits[] = {
1843 { 0, &hf_gsm_map_Odb_GeneralData_allOGCallsBarred, -1, -1, NULL, NULL },
1844 { 1, &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred, -1, -1, NULL, NULL },
1845 { 2, &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
1846 { 3, &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, NULL, NULL },
1847 { 4, &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, NULL, NULL },
1848 { 5, &hf_gsm_map_Odb_GeneralData_ssAccessBarred, -1, -1, NULL, NULL },
1849 { 6, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred, -1, -1, NULL, NULL },
1850 { 7, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
1851 { 8, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
1852 { 9, &hf_gsm_map_Odb_GeneralData_allECTBarred, -1, -1, NULL, NULL },
1853 { 10, &hf_gsm_map_Odb_GeneralData_chargeableECTBarred, -1, -1, NULL, NULL },
1854 { 11, &hf_gsm_map_Odb_GeneralData_internationalECTBarred, -1, -1, NULL, NULL },
1855 { 12, &hf_gsm_map_Odb_GeneralData_interzonalECTBarred, -1, -1, NULL, NULL },
1856 { 13, &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred, -1, -1, NULL, NULL },
1857 { 14, &hf_gsm_map_Odb_GeneralData_multipleECTBarred, -1, -1, NULL, NULL },
1858 { 0, NULL, 0, 0, NULL, NULL }
1862 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_) {
1863 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1864 Odb_GeneralData_bits, hf_index, ett_gsm_map_Odb_GeneralData,
1869 static int dissect_odb_GeneralData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1870 return dissect_gsm_map_Odb_GeneralData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
1872 static int dissect_odb_GeneralData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1873 return dissect_gsm_map_Odb_GeneralData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
1876 static const asn_namedbit Odb_HPLMN_Data_bits[] = {
1877 { 0, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1, -1, -1, NULL, NULL },
1878 { 1, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2, -1, -1, NULL, NULL },
1879 { 2, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3, -1, -1, NULL, NULL },
1880 { 3, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4, -1, -1, NULL, NULL },
1881 { 0, NULL, 0, 0, NULL, NULL }
1885 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_) {
1886 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1887 Odb_HPLMN_Data_bits, hf_index, ett_gsm_map_Odb_HPLMN_Data,
1892 static int dissect_odb_HPLMN_Data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1893 return dissect_gsm_map_Odb_HPLMN_Data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_HPLMN_Data);
1897 static const value_string SubscriberStatus_vals[] = {
1898 { 0, "serviceGranted" },
1899 { 1, "operatorDeterminedBarring" },
1905 dissect_gsm_map_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1906 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1910 static int dissect_subscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1911 return dissect_gsm_map_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStatus);
1915 static const value_string BcsmTriggerDetectionPoint_vals[] = {
1916 { 2, "collectedInfo" },
1917 { 12, "termAttemptAuthorized" },
1923 dissect_gsm_map_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1924 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1928 static int dissect_bcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1929 return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bcsmTriggerDetectionPoint);
1931 static int dissect_o_BcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1932 return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint);
1938 dissect_gsm_map_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1939 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1943 static int dissect_serviceKey(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1944 return dissect_gsm_map_ServiceKey(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceKey);
1949 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_) {
1950 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1955 static int dissect_gsmSCFAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1956 return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCFAddress);
1958 static int dissect_gsmSCF_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1959 return dissect_gsm_map_GsmSCF_Address(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
1961 static int dissect_gsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1962 return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
1966 static const value_string DefaultCallHandling_vals[] = {
1967 { 0, "continueCall" },
1968 { 1, "releaseCall" },
1974 dissect_gsm_map_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1975 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1979 static int dissect_defaultCallHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1980 return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
1983 static const ber_sequence BcsmCamelTDPData_sequence[] = {
1984 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_bcsmTriggerDetectionPoint },
1985 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
1986 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCFAddress_impl },
1987 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl },
1988 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
1993 dissect_gsm_map_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1994 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1995 BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_BcsmCamelTDPData);
1999 static int dissect_BcsmCamelTDPDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2000 return dissect_gsm_map_BcsmCamelTDPData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BcsmCamelTDPDataList_item);
2003 static const ber_sequence BcsmCamelTDPDataList_sequence_of[1] = {
2004 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BcsmCamelTDPDataList_item },
2008 dissect_gsm_map_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2009 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2010 BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_BcsmCamelTDPDataList);
2014 static int dissect_o_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2015 return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDPDataList);
2017 static int dissect_t_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2018 return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BcsmCamelTDPDataList);
2024 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_) {
2025 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2029 static int dissect_camelCapabilityHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2030 return dissect_gsm_map_INTEGER_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelCapabilityHandling);
2033 static const ber_sequence O_CSI_sequence[] = {
2034 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
2035 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2036 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
2041 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_) {
2042 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2043 O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
2047 static int dissect_o_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2048 return dissect_gsm_map_O_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CSI);
2053 dissect_gsm_map_Msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2054 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2059 static int dissect_msisdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2060 return dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
2062 static int dissect_msisdn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2063 return dissect_gsm_map_Msisdn(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
2068 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_) {
2069 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2074 static int dissect_category_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2075 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_category);
2077 static int dissect_interCUG_Restrictions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2078 return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_interCUG_Restrictions);
2080 static int dissect_ss_EventList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2081 return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList_item);
2083 static int dissect_lsaAttributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2084 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaAttributes);
2086 static int dissect_ss_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2087 return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List_item);
2089 static int dissect_alertingPattern(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2090 return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
2092 static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2093 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
2095 static int dissect_uuIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2096 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uuIndicator);
2098 static int dissect_call_Direction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2099 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_call_Direction);
2101 static int dissect_ussd_DataCodingScheme(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2102 return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_DataCodingScheme);
2104 static int dissect_ss_Event_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2105 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Event);
2107 static int dissect_cipheringAlgorithm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2108 return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cipheringAlgorithm);
2110 static int dissect_lcs_Priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2111 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Priority);
2113 static int dissect_horizontal_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2114 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_horizontal_accuracy);
2116 static int dissect_vertical_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2117 return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vertical_accuracy);
2122 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_) {
2123 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2128 static int dissect_bearerServiceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2129 return dissect_gsm_map_OCTET_STRING_SIZE_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList_item);
2132 static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_1_5_sequence_of[1] = {
2133 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bearerServiceList_item },
2137 dissect_gsm_map_SEQUNCE_OF_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_) {
2138 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2139 SEQUNCE_OF_OCTET_STRING_SIZE_1_5_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5);
2143 static int dissect_bearerServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2144 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList);
2147 static const ber_sequence SEQUNCE_OF_Teleservice_sequence_of[1] = {
2148 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleserviceList_item },
2152 dissect_gsm_map_SEQUNCE_OF_Teleservice(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_of(implicit_tag, pinfo, tree, tvb, offset,
2154 SEQUNCE_OF_Teleservice_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_Teleservice);
2158 static int dissect_teleserviceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2159 return dissect_gsm_map_SEQUNCE_OF_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList);
2164 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_) {
2165 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2170 static int dissect_ss_Code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2171 return dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
2173 static int dissect_ss_Code_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2174 return dissect_gsm_map_Ss_Code(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
2179 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_) {
2180 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2185 static int dissect_ss_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2186 return dissect_gsm_map_Ss_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
2188 static int dissect_ss_Status_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2189 return dissect_gsm_map_Ss_Status(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
2194 dissect_gsm_map_ForwardedToNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2195 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2200 static int dissect_forwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2201 return dissect_gsm_map_ForwardedToNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToNumber);
2206 dissect_gsm_map_ForwardedToSubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2207 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2212 static int dissect_forwardedToSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2213 return dissect_gsm_map_ForwardedToSubaddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToSubaddress);
2218 dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2219 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2224 static int dissect_forwardingOptions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2225 return dissect_gsm_map_ForwardingOptions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingOptions);
2231 dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2232 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2236 static int dissect_noReplyConditionTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2237 return dissect_gsm_map_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime);
2240 static const ber_sequence ForwardingFeatureList_sequence[] = {
2241 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
2242 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
2243 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
2244 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
2245 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
2246 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
2247 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2252 dissect_gsm_map_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2253 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2254 ForwardingFeatureList_sequence, hf_index, ett_gsm_map_ForwardingFeatureList);
2258 static int dissect_forwardingFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2259 return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_item);
2262 static const ber_sequence SEQUNCE_OF_ForwardingFeatureList_sequence_of[1] = {
2263 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_item },
2267 dissect_gsm_map_SEQUNCE_OF_ForwardingFeatureList(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_of(implicit_tag, pinfo, tree, tvb, offset,
2269 SEQUNCE_OF_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_ForwardingFeatureList);
2273 static int dissect_forwardingFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2274 return dissect_gsm_map_SEQUNCE_OF_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList);
2276 static int dissect_forwardingFeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2277 return dissect_gsm_map_SEQUNCE_OF_ForwardingFeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList);
2280 static const ber_sequence ForwardingInfo_sequence[] = {
2281 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
2282 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList },
2283 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2288 dissect_gsm_map_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2289 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2290 ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
2294 static int dissect_forwardingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2295 return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInfo);
2298 static const ber_sequence T_callBarringFeatureList_item_sequence[] = {
2299 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
2300 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
2301 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2306 dissect_gsm_map_T_callBarringFeatureList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2307 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2308 T_callBarringFeatureList_item_sequence, hf_index, ett_gsm_map_T_callBarringFeatureList_item);
2312 static int dissect_callBarringFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2313 return dissect_gsm_map_T_callBarringFeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringFeatureList_item);
2316 static const ber_sequence T_callBarringFeatureList_sequence_of[1] = {
2317 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList_item },
2321 dissect_gsm_map_T_callBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2322 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2323 T_callBarringFeatureList_sequence_of, hf_index, ett_gsm_map_T_callBarringFeatureList);
2327 static int dissect_callBarringFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2328 return dissect_gsm_map_T_callBarringFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringFeatureList);
2331 static const ber_sequence CallBarringInfo_sequence[] = {
2332 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
2333 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
2334 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2339 dissect_gsm_map_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2340 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2341 CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
2345 static int dissect_callBarringInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2346 return dissect_gsm_map_CallBarringInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringInfo);
2352 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_) {
2353 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2357 static int dissect_cug_Index(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2358 return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Index);
2360 static int dissect_preferentialCUG_Indicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2361 return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_preferentialCUG_Indicator);
2363 static int dissect_ageOfLocationInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2364 return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationInformation);
2366 static int dissect_ageOfLocationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2367 return dissect_gsm_map_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationEstimate);
2370 static const ber_sequence T_cug_SubscriptionList_item_sequence[] = {
2371 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index },
2372 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
2373 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intraCUG_Options },
2374 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
2375 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2380 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_) {
2381 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2382 T_cug_SubscriptionList_item_sequence, hf_index, ett_gsm_map_T_cug_SubscriptionList_item);
2386 static int dissect_cug_SubscriptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2387 return dissect_gsm_map_T_cug_SubscriptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList_item);
2390 static const ber_sequence T_cug_SubscriptionList_sequence_of[1] = {
2391 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList_item },
2395 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_) {
2396 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2397 T_cug_SubscriptionList_sequence_of, hf_index, ett_gsm_map_T_cug_SubscriptionList);
2401 static int dissect_cug_SubscriptionList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2402 return dissect_gsm_map_T_cug_SubscriptionList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList);
2405 static const ber_sequence T_cug_FeatureList_item_sequence[] = {
2406 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
2407 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator },
2408 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions },
2409 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2414 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_) {
2415 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2416 T_cug_FeatureList_item_sequence, hf_index, ett_gsm_map_T_cug_FeatureList_item);
2420 static int dissect_cug_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2421 return dissect_gsm_map_T_cug_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList_item);
2424 static const ber_sequence T_cug_FeatureList_sequence_of[1] = {
2425 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList_item },
2429 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_) {
2430 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2431 T_cug_FeatureList_sequence_of, hf_index, ett_gsm_map_T_cug_FeatureList);
2435 static int dissect_cug_FeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2436 return dissect_gsm_map_T_cug_FeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList);
2439 static const ber_sequence T_cug_Info_sequence[] = {
2440 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList },
2441 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList },
2442 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2447 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_) {
2448 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2449 T_cug_Info_sequence, hf_index, ett_gsm_map_T_cug_Info);
2453 static int dissect_cug_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2454 return dissect_gsm_map_T_cug_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Info);
2458 static const value_string CliRestrictionOption_vals[] = {
2460 { 1, "temporaryDefaultRestricted" },
2461 { 2, "temporaryDefaultAllowed" },
2467 dissect_gsm_map_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2468 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2472 static int dissect_cliRestrictionOption_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2473 return dissect_gsm_map_CliRestrictionOption(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cliRestrictionOption);
2477 static const value_string Ss_SubscriptionOption_vals[] = {
2478 { 2, "cliRestrictionOption" },
2479 { 1, "overrideCategory" },
2483 static const ber_choice Ss_SubscriptionOption_choice[] = {
2484 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
2485 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_overrideCategory_impl },
2486 { 0, 0, 0, 0, NULL }
2490 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_) {
2491 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2492 Ss_SubscriptionOption_choice, hf_index, ett_gsm_map_Ss_SubscriptionOption);
2496 static int dissect_ss_SubscriptionOption(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2497 return dissect_gsm_map_Ss_SubscriptionOption(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_SubscriptionOption);
2500 static const ber_sequence T_ss_Data2_sequence[] = {
2501 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
2502 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
2503 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
2504 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
2505 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2510 dissect_gsm_map_T_ss_Data2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2511 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2512 T_ss_Data2_sequence, hf_index, ett_gsm_map_T_ss_Data2);
2516 static int dissect_ss_Data2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2517 return dissect_gsm_map_T_ss_Data2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data2);
2523 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_) {
2524 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2528 static int dissect_maximumentitledPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2529 return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_maximumentitledPriority);
2531 static int dissect_defaultPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2532 return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
2534 static int dissect_defaultPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2535 return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
2537 static int dissect_maximumEntitledPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2538 return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_maximumEntitledPriority);
2540 static int dissect_groupKeyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2541 return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKeyNumber);
2543 static int dissect_priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2544 return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_priority);
2547 static const ber_sequence T_emlpp_Info_sequence[] = {
2548 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority },
2549 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
2550 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2555 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_) {
2556 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2557 T_emlpp_Info_sequence, hf_index, ett_gsm_map_T_emlpp_Info);
2561 static int dissect_emlpp_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2562 return dissect_gsm_map_T_emlpp_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_emlpp_Info);
2566 static const value_string T_provisionedSS_item_vals[] = {
2567 { 0, "forwardingInfo" },
2568 { 1, "callBarringInfo" },
2571 { 4, "emlpp-Info" },
2575 static const ber_choice T_provisionedSS_item_choice[] = {
2576 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
2577 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
2578 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cug_Info_impl },
2579 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data2_impl },
2580 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_emlpp_Info_impl },
2581 { 0, 0, 0, 0, NULL }
2585 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_) {
2586 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2587 T_provisionedSS_item_choice, hf_index, ett_gsm_map_T_provisionedSS_item);
2591 static int dissect_provisionedSS_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2592 return dissect_gsm_map_T_provisionedSS_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS_item);
2595 static const ber_sequence T_provisionedSS_sequence_of[1] = {
2596 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_provisionedSS_item },
2600 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_) {
2601 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2602 T_provisionedSS_sequence_of, hf_index, ett_gsm_map_T_provisionedSS);
2606 static int dissect_provisionedSS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2607 return dissect_gsm_map_T_provisionedSS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS);
2610 static const ber_sequence T_odb_Data_sequence[] = {
2611 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData },
2612 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data },
2613 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2618 dissect_gsm_map_T_odb_Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2619 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2620 T_odb_Data_sequence, hf_index, ett_gsm_map_T_odb_Data);
2624 static int dissect_odb_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2625 return dissect_gsm_map_T_odb_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Data);
2630 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_) {
2631 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2636 static int dissect_regionalSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2637 return dissect_gsm_map_OCTET_STRING_SIZE_2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData_item);
2639 static int dissect_pdp_Type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2640 return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Type);
2642 static int dissect_regionalSubscriptionIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2643 return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionIdentifier);
2646 static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_2_sequence_of[1] = {
2647 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_regionalSubscriptionData_item },
2651 dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2652 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2653 SEQUNCE_OF_OCTET_STRING_SIZE_2_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2);
2657 static int dissect_regionalSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2658 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData);
2661 static const ber_sequence T_vbsSubscriptionData_item_sequence[] = {
2662 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid },
2663 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement },
2664 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2669 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_) {
2670 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2671 T_vbsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vbsSubscriptionData_item);
2675 static int dissect_vbsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2676 return dissect_gsm_map_T_vbsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData_item);
2679 static const ber_sequence T_vbsSubscriptionData_sequence_of[1] = {
2680 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vbsSubscriptionData_item },
2684 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_) {
2685 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2686 T_vbsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vbsSubscriptionData);
2690 static int dissect_vbsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2691 return dissect_gsm_map_T_vbsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData);
2694 static const ber_sequence T_vgcsSubscriptionData_item_sequence[] = {
2695 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
2696 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2701 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_) {
2702 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2703 T_vgcsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vgcsSubscriptionData_item);
2707 static int dissect_vgcsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2708 return dissect_gsm_map_T_vgcsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData_item);
2711 static const ber_sequence T_vgcsSubscriptionData_sequence_of[1] = {
2712 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vgcsSubscriptionData_item },
2716 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_) {
2717 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2718 T_vgcsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vgcsSubscriptionData);
2722 static int dissect_vgcsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2723 return dissect_gsm_map_T_vgcsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData);
2726 static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_1_sequence_of[1] = {
2727 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventList_item },
2731 dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2732 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2733 SEQUNCE_OF_OCTET_STRING_SIZE_1_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1);
2737 static int dissect_ss_EventList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2738 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList);
2740 static int dissect_ss_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2741 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List);
2744 static const ber_sequence T_ss_CamelData_sequence[] = {
2745 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList },
2746 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
2747 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2752 dissect_gsm_map_T_ss_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2753 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2754 T_ss_CamelData_sequence, hf_index, ett_gsm_map_T_ss_CamelData);
2758 static int dissect_ss_CamelData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2759 return dissect_gsm_map_T_ss_CamelData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CamelData);
2762 static const ber_sequence T_ss_CSI_sequence[] = {
2763 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
2764 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
2769 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_) {
2770 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2771 T_ss_CSI_sequence, hf_index, ett_gsm_map_T_ss_CSI);
2775 static int dissect_ss_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2776 return dissect_gsm_map_T_ss_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CSI);
2780 static const value_string MatchType_vals[] = {
2781 { 0, "inhibiting" },
2788 dissect_gsm_map_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2789 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2793 static int dissect_matchType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2794 return dissect_gsm_map_MatchType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_matchType);
2799 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_) {
2800 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2805 static int dissect_destinationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2806 return dissect_gsm_map_T_destinationNumberList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList_item);
2809 static const ber_sequence T_destinationNumberList_sequence_of[1] = {
2810 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_destinationNumberList_item },
2814 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_) {
2815 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2816 T_destinationNumberList_sequence_of, hf_index, ett_gsm_map_T_destinationNumberList);
2820 static int dissect_destinationNumberList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2821 return dissect_gsm_map_T_destinationNumberList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList);
2827 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_) {
2828 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2832 static int dissect_destinationNumberLengthList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2833 return dissect_gsm_map_INTEGER_1_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList_item);
2836 static const ber_sequence SEQUNCE_OF_INTEGER_1_15_sequence_of[1] = {
2837 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_destinationNumberLengthList_item },
2841 dissect_gsm_map_SEQUNCE_OF_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2842 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2843 SEQUNCE_OF_INTEGER_1_15_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_INTEGER_1_15);
2847 static int dissect_destinationNumberLengthList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2848 return dissect_gsm_map_SEQUNCE_OF_INTEGER_1_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList);
2851 static const ber_sequence DestinationNumberCriteria_sequence[] = {
2852 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl },
2853 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl },
2854 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberLengthList_impl },
2859 dissect_gsm_map_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2860 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2861 DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
2865 static int dissect_destinationNumberCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2866 return dissect_gsm_map_DestinationNumberCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberCriteria);
2870 static const value_string CallTypeCriteria_vals[] = {
2872 { 1, "notForwarded" },
2878 dissect_gsm_map_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2879 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2883 static int dissect_callTypeCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2884 return dissect_gsm_map_CallTypeCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callTypeCriteria);
2887 static const ber_sequence O_BcsmCamelTDP_CriteriaList_item_sequence[] = {
2888 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
2889 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
2890 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
2891 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
2896 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_) {
2897 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2898 O_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
2902 static int dissect_O_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2903 return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
2906 static const ber_sequence O_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
2907 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDP_CriteriaList_item },
2911 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_) {
2912 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2913 O_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList);
2917 static int dissect_o_BcsmCamelTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2918 return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList);
2921 static const ber_sequence T_vlrCamelSubscriptionInfo_sequence[] = {
2922 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
2923 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2924 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
2925 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
2926 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
2931 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_) {
2932 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2933 T_vlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_vlrCamelSubscriptionInfo);
2937 static int dissect_vlrCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2938 return dissect_gsm_map_T_vlrCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlrCamelSubscriptionInfo);
2941 static const ber_sequence Naea_PreferredCI_sequence[] = {
2942 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl },
2943 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
2948 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_) {
2949 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2950 Naea_PreferredCI_sequence, hf_index, ett_gsm_map_Naea_PreferredCI);
2954 static int dissect_naea_PreferredCI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2955 return dissect_gsm_map_Naea_PreferredCI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCI);
2961 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_) {
2962 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2966 static int dissect_pdp_ContextId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2967 return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextId);
2969 static int dissect_contextIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2970 return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList_item);
2975 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_) {
2976 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2981 static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2982 return dissect_gsm_map_OCTET_STRING_SIZE_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Address);
2987 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_) {
2988 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2993 static int dissect_apn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2994 return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn);
2997 static const ber_sequence T_gprsDataList_item_sequence[] = {
2998 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId },
2999 { BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
3000 { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
3001 { BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
3002 { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vplmnAddressAllowed_impl },
3003 { BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_apn_impl },
3004 { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3009 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_) {
3010 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3011 T_gprsDataList_item_sequence, hf_index, ett_gsm_map_T_gprsDataList_item);
3015 static int dissect_gprsDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3016 return dissect_gsm_map_T_gprsDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList_item);
3019 static const ber_sequence T_gprsDataList_sequence_of[1] = {
3020 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprsDataList_item },
3024 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_) {
3025 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3026 T_gprsDataList_sequence_of, hf_index, ett_gsm_map_T_gprsDataList);
3030 static int dissect_gprsDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3031 return dissect_gsm_map_T_gprsDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList);
3034 static const ber_sequence T_gprsSubscriptionData_sequence[] = {
3035 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
3036 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl },
3037 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3042 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_) {
3043 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3044 T_gprsSubscriptionData_sequence, hf_index, ett_gsm_map_T_gprsSubscriptionData);
3048 static int dissect_gprsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3049 return dissect_gsm_map_T_gprsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionData);
3053 static const value_string T_networkAccessMode_vals[] = {
3054 { 0, "bothMSCAndSGSN" },
3062 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_) {
3063 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3067 static int dissect_networkAccessMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3068 return dissect_gsm_map_T_networkAccessMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkAccessMode);
3072 static const value_string T_lsaOnlyAccessIndicator_vals[] = {
3073 { 0, "accessOutsideLSAsAllowed" },
3074 { 1, "accessOutsideLSAsRestricted" },
3080 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_) {
3081 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3085 static int dissect_lsaOnlyAccessIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3086 return dissect_gsm_map_T_lsaOnlyAccessIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaOnlyAccessIndicator);
3089 static const ber_sequence T_lsaDataList_item_sequence[] = {
3090 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl },
3091 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl },
3092 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaActiveModeIndicator_impl },
3093 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3098 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_) {
3099 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3100 T_lsaDataList_item_sequence, hf_index, ett_gsm_map_T_lsaDataList_item);
3104 static int dissect_lsaDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3105 return dissect_gsm_map_T_lsaDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList_item);
3108 static const ber_sequence T_lsaDataList_sequence_of[1] = {
3109 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaDataList_item },
3113 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_) {
3114 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3115 T_lsaDataList_sequence_of, hf_index, ett_gsm_map_T_lsaDataList);
3119 static int dissect_lsaDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3120 return dissect_gsm_map_T_lsaDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList);
3123 static const ber_sequence T_lsaInformation_sequence[] = {
3124 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
3125 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl },
3126 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaDataList_impl },
3127 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3132 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_) {
3133 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3134 T_lsaInformation_sequence, hf_index, ett_gsm_map_T_lsaInformation);
3138 static int dissect_lsaInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3139 return dissect_gsm_map_T_lsaInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformation);
3144 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_) {
3145 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3150 static int dissect_gmlc_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3151 return dissect_gsm_map_T_gmlc_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List_item);
3154 static const ber_sequence T_gmlc_List_sequence_of[1] = {
3155 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gmlc_List_item },
3159 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_) {
3160 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3161 T_gmlc_List_sequence_of, hf_index, ett_gsm_map_T_gmlc_List);
3165 static int dissect_gmlc_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3166 return dissect_gsm_map_T_gmlc_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List);
3170 static const value_string NotificationToMSUser_vals[] = {
3171 { 0, "notifyLocationAllowed" },
3172 { 1, "notifyAndVerify-LocationAllowedIfNoResponse" },
3173 { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
3179 dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3180 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3184 static int dissect_notificationToMSUser_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3185 return dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToMSUser);
3190 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_) {
3191 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3196 static int dissect_externalAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3197 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalAddress);
3199 static int dissect_omc_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3200 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_omc_Id);
3202 static int dissect_serviceCentreAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3203 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
3205 static int dissect_serviceCentreAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3206 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
3208 static int dissect_serviceCentreAddressOA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3209 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressOA);
3211 static int dissect_serviceCentreAddressDA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3212 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressDA);
3214 static int dissect_ss_EventSpecification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3215 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification_item);
3217 static int dissect_locationEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3218 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
3220 static int dissect_locationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3221 return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
3224 static const ber_sequence T_clientIdentity_sequence[] = {
3225 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
3226 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3231 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_) {
3232 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3233 T_clientIdentity_sequence, hf_index, ett_gsm_map_T_clientIdentity);
3237 static int dissect_clientIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3238 return dissect_gsm_map_T_clientIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_clientIdentity);
3242 static const value_string T_gmlc_Restriction_vals[] = {
3244 { 1, "home-Country" },
3250 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_) {
3251 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3255 static int dissect_gmlc_Restriction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3256 return dissect_gsm_map_T_gmlc_Restriction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_Restriction);
3259 static const ber_sequence T_externalClientList_item_sequence[] = {
3260 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity },
3261 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
3262 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
3263 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3268 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_) {
3269 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3270 T_externalClientList_item_sequence, hf_index, ett_gsm_map_T_externalClientList_item);
3274 static int dissect_externalClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3275 return dissect_gsm_map_T_externalClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList_item);
3278 static const ber_sequence T_externalClientList_sequence_of[1] = {
3279 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_externalClientList_item },
3283 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_) {
3284 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3285 T_externalClientList_sequence_of, hf_index, ett_gsm_map_T_externalClientList);
3289 static int dissect_externalClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3290 return dissect_gsm_map_T_externalClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList);
3294 static const value_string T_plmnClientList_item_vals[] = {
3295 { 0, "broadcastService" },
3296 { 1, "o-andM-HPLMN" },
3297 { 2, "o-andM-VPLMN" },
3298 { 3, "anonymousLocation" },
3299 { 4, "targetMSsubscribedService" },
3305 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_) {
3306 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3310 static int dissect_plmnClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3311 return dissect_gsm_map_T_plmnClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList_item);
3314 static const ber_sequence T_plmnClientList_sequence_of[1] = {
3315 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_plmnClientList_item },
3319 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_) {
3320 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3321 T_plmnClientList_sequence_of, hf_index, ett_gsm_map_T_plmnClientList);
3325 static int dissect_plmnClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3326 return dissect_gsm_map_T_plmnClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList);
3329 static const ber_sequence T_lcs_PrivacyExceptionList_item_sequence[] = {
3330 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
3331 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
3332 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
3333 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalClientList_impl },
3334 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmnClientList_impl },
3335 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3340 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_) {
3341 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3342 T_lcs_PrivacyExceptionList_item_sequence, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList_item);
3346 static int dissect_lcs_PrivacyExceptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3347 return dissect_gsm_map_T_lcs_PrivacyExceptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList_item);
3350 static const ber_sequence T_lcs_PrivacyExceptionList_sequence_of[1] = {
3351 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_PrivacyExceptionList_item },
3355 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_) {
3356 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3357 T_lcs_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList);
3361 static int dissect_lcs_PrivacyExceptionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3362 return dissect_gsm_map_T_lcs_PrivacyExceptionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList);
3365 static const ber_sequence T_molr_List_item_sequence[] = {
3366 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
3367 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
3368 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3373 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_) {
3374 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3375 T_molr_List_item_sequence, hf_index, ett_gsm_map_T_molr_List_item);
3379 static int dissect_molr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3380 return dissect_gsm_map_T_molr_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List_item);
3383 static const ber_sequence T_molr_List_sequence_of[1] = {
3384 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_molr_List_item },
3388 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_) {
3389 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3390 T_molr_List_sequence_of, hf_index, ett_gsm_map_T_molr_List);
3394 static int dissect_molr_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3395 return dissect_gsm_map_T_molr_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List);
3398 static const ber_sequence T_lcsInformation_sequence[] = {
3399 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl },
3400 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl },
3401 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_molr_List_impl },
3406 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_) {
3407 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3408 T_lcsInformation_sequence, hf_index, ett_gsm_map_T_lcsInformation);
3412 static int dissect_lcsInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3413 return dissect_gsm_map_T_lcsInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsInformation);
3416 static const ber_sequence InsertSubscriberDataArg_sequence[] = {
3417 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
3418 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
3419 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl },
3420 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStatus_impl },
3421 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
3422 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
3423 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provisionedSS_impl },
3424 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Data_impl },
3425 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
3426 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionData_impl },
3427 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsSubscriptionData_impl },
3428 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsSubscriptionData_impl },
3429 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlrCamelSubscriptionInfo_impl },
3430 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3431 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
3432 { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSubscriptionData_impl },
3433 { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl },
3434 { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkAccessMode_impl },
3435 { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaInformation_impl },
3436 { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmu_Indicator_impl },
3437 { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsInformation_impl },
3442 dissect_gsm_map_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3443 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3444 InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
3450 static const value_string RegionalSubscriptionResponse_vals[] = {
3451 { 0, "networkNodeAreaRestricted" },
3452 { 1, "tooManyZoneCodes" },
3453 { 2, "zoneCodesConflict" },
3454 { 3, "regionalSubscNotSupported" },
3460 dissect_gsm_map_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3461 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3465 static int dissect_regionalSubscriptionResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3466 return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionResponse);
3469 static const ber_sequence InsertSubscriberDataRes_sequence[] = {
3470 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
3471 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
3472 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
3473 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_GeneralData_impl },
3474 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
3475 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
3476 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3481 dissect_gsm_map_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3482 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3483 InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
3488 static const ber_sequence SEQUNCE_OF_INTEGER_1_50_sequence_of[1] = {
3489 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_contextIdList_item },
3493 dissect_gsm_map_SEQUNCE_OF_INTEGER_1_50(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3494 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3495 SEQUNCE_OF_INTEGER_1_50_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_INTEGER_1_50);
3499 static int dissect_contextIdList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3500 return dissect_gsm_map_SEQUNCE_OF_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList);
3504 static const value_string T_gprsSubscriptionDataWithdraw_vals[] = {
3505 { 0, "allGPRSData" },
3506 { 1, "contextIdList" },
3510 static const ber_choice T_gprsSubscriptionDataWithdraw_choice[] = {
3511 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allGPRSData },
3512 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextIdList },
3513 { 0, 0, 0, 0, NULL }
3517 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_) {
3518 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3519 T_gprsSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_T_gprsSubscriptionDataWithdraw);
3523 static int dissect_gprsSubscriptionDataWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3524 return dissect_gsm_map_T_gprsSubscriptionDataWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionDataWithdraw);
3527 static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_3_sequence_of[1] = {
3528 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList_item },
3532 dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3533 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3534 SEQUNCE_OF_OCTET_STRING_SIZE_3_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3);
3538 static int dissect_lsaIdentityList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3539 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList);
3543 static const value_string T_lsaInformationWithdraw_vals[] = {
3544 { 0, "allLSAData" },
3545 { 1, "lsaIdentityList" },
3549 static const ber_choice T_lsaInformationWithdraw_choice[] = {
3550 { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allLSAData },
3551 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList },
3552 { 0, 0, 0, 0, NULL }
3556 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_) {
3557 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3558 T_lsaInformationWithdraw_choice, hf_index, ett_gsm_map_T_lsaInformationWithdraw);
3562 static int dissect_lsaInformationWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3563 return dissect_gsm_map_T_lsaInformationWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformationWithdraw);
3566 static const ber_sequence DeleteSubscriberDataArg_sequence[] = {
3567 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
3568 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
3569 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
3570 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
3571 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionIdentifier_impl },
3572 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsGroupIndication_impl },
3573 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsGroupIndication_impl },
3574 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelSubscriptionInfoWithdraw_impl },
3575 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3576 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_gprsSubscriptionDataWithdraw },
3577 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl },
3578 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_lsaInformationWithdraw },
3579 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_ListWithdraw_impl },
3584 dissect_gsm_map_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3585 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3586 DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
3591 static const ber_sequence DeleteSubscriberDataRes_sequence[] = {
3592 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
3593 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3598 dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3599 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3600 DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
3607 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_) {
3608 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3613 static int dissect_hlr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3614 return dissect_gsm_map_OCTET_STRING_SIZE_3_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List_item);
3617 static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_3_8_sequence_of[1] = {
3618 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_List_item },
3622 dissect_gsm_map_SEQUNCE_OF_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_) {
3623 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3624 SEQUNCE_OF_OCTET_STRING_SIZE_3_8_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8);
3628 static int dissect_hlr_List(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3629 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List);
3632 static const ber_sequence ResetArg_sequence[] = {
3633 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
3634 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List },
3639 dissect_gsm_map_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3640 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3641 ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
3646 static const ber_sequence RestoreDataArg_sequence[] = {
3647 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
3648 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
3649 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3650 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
3655 dissect_gsm_map_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3656 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3657 RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
3662 static const ber_sequence RestoreDataRes_sequence[] = {
3663 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
3664 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable },
3665 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3670 dissect_gsm_map_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3671 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3672 RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
3679 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_) {
3680 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3685 static int dissect_traceReference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3686 return dissect_gsm_map_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceReference);
3692 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_) {
3693 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3697 static int dissect_traceType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3698 return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceType);
3700 static int dissect_absentSubscriberDiagnosticSM(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3701 return dissect_gsm_map_INTEGER_0_255(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
3703 static int dissect_absentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3704 return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
3706 static int dissect_additionalAbsentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3707 return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalAbsentSubscriberDiagnosticSM);
3709 static int dissect_mobileNotReachableReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3710 return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mobileNotReachableReason);
3713 static const ber_sequence ActivateTraceModeArg_sequence[] = {
3714 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
3715 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
3716 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_traceType_impl },
3717 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_omc_Id_impl },
3718 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3723 dissect_gsm_map_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3724 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3725 ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
3730 static const ber_sequence ActivateTraceModeRes_sequence[] = {
3731 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3736 dissect_gsm_map_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3737 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3738 ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
3743 static const ber_sequence DeactivateTraceModeArg_sequence[] = {
3744 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
3745 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
3746 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3751 dissect_gsm_map_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3752 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3753 DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
3758 static const ber_sequence DeactivateTraceModeRes_sequence[] = {
3759 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3764 dissect_gsm_map_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3765 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3766 DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
3771 static const ber_sequence Cug_CheckInfo_sequence[] = {
3772 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
3773 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess },
3774 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3779 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_) {
3780 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3781 Cug_CheckInfo_sequence, hf_index, ett_gsm_map_Cug_CheckInfo);
3785 static int dissect_cug_CheckInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3786 return dissect_gsm_map_Cug_CheckInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_CheckInfo);
3790 static const value_string T_interrogationType_vals[] = {
3792 { 1, "forwarding" },
3798 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_) {
3799 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3803 static int dissect_interrogationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3804 return dissect_gsm_map_T_interrogationType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_interrogationType);
3810 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_) {
3811 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3815 static int dissect_or_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3816 return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Capability);
3818 static int dissect_supportedCCBS_Phase_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3819 return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCCBS_Phase);
3824 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_) {
3825 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3830 static int dissect_gmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3831 return dissect_gsm_map_Gmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_Address);
3836 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_) {
3837 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3842 static int dissect_callReferenceNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3843 return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReferenceNumber);
3845 static int dissect_asciCallReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3846 return dissect_gsm_map_OCTET_STRING_SIZE_1_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_asciCallReference);
3850 static const value_string T_forwardingReason_vals[] = {
3851 { 0, "notReachable" },
3859 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_) {
3860 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3864 static int dissect_forwardingReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3865 return dissect_gsm_map_T_forwardingReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingReason);
3868 static const ber_sequence T_camelInfo_sequence[] = {
3869 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases },
3870 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI },
3871 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3876 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_) {
3877 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3878 T_camelInfo_sequence, hf_index, ett_gsm_map_T_camelInfo);
3882 static int dissect_camelInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3883 return dissect_gsm_map_T_camelInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelInfo);
3887 static const value_string T_ext_ProtocolId_vals[] = {
3888 { 1, "ets-300356" },
3894 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_) {
3895 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3899 static int dissect_ext_ProtocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3900 return dissect_gsm_map_T_ext_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_ProtocolId);
3903 static const ber_sequence AdditionalSignalInfo_sequence[] = {
3904 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId },
3905 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
3906 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
3911 dissect_gsm_map_AdditionalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3912 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3913 AdditionalSignalInfo_sequence, hf_index, ett_gsm_map_AdditionalSignalInfo);
3917 static int dissect_additionalSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3918 return dissect_gsm_map_AdditionalSignalInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSignalInfo);
3921 static const ber_sequence SendRoutingInfoArg_sequence[] = {
3922 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
3923 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
3924 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfForwarding_impl },
3925 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_interrogationType_impl },
3926 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
3927 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Capability_impl },
3928 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
3929 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
3930 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingReason_impl },
3931 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
3932 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
3933 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelInfo_impl },
3934 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
3935 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3936 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
3937 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
3938 { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCCBS_Phase_impl },
3939 { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
3944 dissect_gsm_map_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3945 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3946 SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
3953 dissect_gsm_map_RoamingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3954 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3959 static int dissect_roamingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3960 return dissect_gsm_map_RoamingNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNumber);
3963 static const ber_sequence ForwardingData_sequence[] = {
3964 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
3965 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
3966 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
3967 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
3972 dissect_gsm_map_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3973 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3974 ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
3978 static int dissect_forwardingData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3979 return dissect_gsm_map_ForwardingData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
3981 static int dissect_forwardingData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3982 return dissect_gsm_map_ForwardingData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
3986 static const value_string T_routingInfo_vals[] = {
3987 { 0, "roamingNumber" },
3988 { 1, "forwardingData" },
3992 static const ber_choice T_routingInfo_choice[] = {
3993 { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
3994 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingData },
3995 { 0, 0, 0, 0, NULL }
3999 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_) {
4000 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4001 T_routingInfo_choice, hf_index, ett_gsm_map_T_routingInfo);
4005 static int dissect_routingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4006 return dissect_gsm_map_T_routingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_routingInfo);
4009 static const ber_sequence T_t_CSI_sequence[] = {
4010 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
4011 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4012 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
4017 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_) {
4018 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4019 T_t_CSI_sequence, hf_index, ett_gsm_map_T_t_CSI);
4023 static int dissect_t_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4024 return dissect_gsm_map_T_t_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CSI);
4027 static const ber_sequence T_gmscCamelSubscriptionInfo_sequence[] = {
4028 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
4029 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
4030 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4031 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
4036 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_) {
4037 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4038 T_gmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_gmscCamelSubscriptionInfo);
4042 static int dissect_gmscCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4043 return dissect_gsm_map_T_gmscCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmscCamelSubscriptionInfo);
4046 static const ber_sequence T_camelRoutingInfo_sequence[] = {
4047 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData },
4048 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl },
4049 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4054 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_) {
4055 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4056 T_camelRoutingInfo_sequence, hf_index, ett_gsm_map_T_camelRoutingInfo);
4060 static int dissect_camelRoutingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4061 return dissect_gsm_map_T_camelRoutingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelRoutingInfo);
4065 static const value_string T_extendedRoutingInfo_vals[] = {
4066 { 0, "routingInfo" },
4067 { 1, "camelRoutingInfo" },
4071 static const ber_choice T_extendedRoutingInfo_choice[] = {
4072 { 0, BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
4073 { 1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl },
4074 { 0, 0, 0, 0, NULL }
4078 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_) {
4079 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4080 T_extendedRoutingInfo_choice, hf_index, ett_gsm_map_T_extendedRoutingInfo);
4084 static int dissect_extendedRoutingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4085 return dissect_gsm_map_T_extendedRoutingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extendedRoutingInfo);
4090 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_) {
4091 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4096 static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4097 return dissect_gsm_map_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationNumber);
4102 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_) {
4103 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4108 static int dissect_cellIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4109 return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdFixedLength);
4114 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_) {
4115 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4120 static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4121 return dissect_gsm_map_OCTET_STRING_SIZE_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_laiFixedLength);
4125 static const value_string T_cellIdOrLAI_vals[] = {
4126 { 0, "cellIdFixedLength" },
4127 { 1, "laiFixedLength" },
4131 static const ber_choice T_cellIdOrLAI_choice[] = {
4132 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellIdFixedLength_impl },
4133 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
4134 { 0, 0, 0, 0, NULL }
4138 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_) {
4139 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4140 T_cellIdOrLAI_choice, hf_index, ett_gsm_map_T_cellIdOrLAI);
4144 static int dissect_cellIdOrLAI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4145 return dissect_gsm_map_T_cellIdOrLAI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdOrLAI);
4148 static const ber_sequence LocationInformation_sequence[] = {
4149 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation },
4150 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
4151 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl },
4152 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
4153 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_cellIdOrLAI },
4154 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4159 dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4160 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4161 LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
4165 static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4166 return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformation);
4170 static const value_string SubscriberState_vals[] = {
4171 { 0, "assumedIdle" },
4173 { 2, "notProvidedFromVLR" },
4177 static const ber_choice SubscriberState_choice[] = {
4178 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl },
4179 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl },
4180 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl },
4181 { 0, 0, 0, 0, NULL }
4185 dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4186 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4187 SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState);
4191 static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4192 return dissect_gsm_map_SubscriberState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberState);
4195 static const ber_sequence SubscriberInfo_sequence[] = {
4196 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
4197 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState },
4198 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4203 dissect_gsm_map_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4204 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4205 SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
4209 static int dissect_subscriberInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4210 return dissect_gsm_map_SubscriberInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
4212 static int dissect_subscriberInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4213 return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
4218 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_) {
4219 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4224 static int dissect_vmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4225 return dissect_gsm_map_T_vmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vmsc_Address);
4228 static const ber_sequence T_ccbs_Indicators_sequence[] = {
4229 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
4230 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl },
4231 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4236 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_) {
4237 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4238 T_ccbs_Indicators_sequence, hf_index, ett_gsm_map_T_ccbs_Indicators);
4242 static int dissect_ccbs_Indicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4243 return dissect_gsm_map_T_ccbs_Indicators(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Indicators);
4247 static const value_string T_numberPortabilityStatus_vals[] = {
4248 { 0, "notKnownToBePorted" },
4249 { 1, "ownNumberPortedOut" },
4250 { 2, "foreignNumberPortedToForeignNetwork" },
4256 dissect_gsm_map_T_numberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4257 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4261 static int dissect_numberPortabilityStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4262 return dissect_gsm_map_T_numberPortabilityStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberPortabilityStatus);
4265 static const ber_sequence SendRoutingInfoRes_sequence[] = {
4266 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
4267 { -1/*choice*/ , -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
4268 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
4269 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl },
4270 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl },
4271 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
4272 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicService },
4273 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInterrogationRequired_impl },
4274 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vmsc_Address_impl },
4275 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4276 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
4277 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Indicators_impl },
4278 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
4279 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
4284 dissect_gsm_map_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4285 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4286 SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
4292 static const value_string NetDetNotReachable_vals[] = {
4294 { 1, "imsiDetached" },
4295 { 2, "restrictedArea" },
4296 { 3, "notRegistered" },
4302 dissect_gsm_map_NetDetNotReachable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4303 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4308 static const ber_sequence ProvideRoamingNumberArg_sequence[] = {
4309 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
4310 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
4311 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
4312 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
4313 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
4314 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
4315 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
4316 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
4317 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
4318 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
4319 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4320 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
4321 { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
4322 { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInGMSC_impl },
4323 { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
4324 { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_orNotSupportedInGMSC_impl },
4329 dissect_gsm_map_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4330 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4331 ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
4336 static const ber_sequence ProvideRoamingNumberRes_sequence[] = {
4337 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
4338 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4343 dissect_gsm_map_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4344 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4345 ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
4352 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_) {
4353 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4358 static int dissect_uui_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4359 return dissect_gsm_map_OCTET_STRING_SIZE_1_131(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uui);
4362 static const ber_sequence T_uu_Data_sequence[] = {
4363 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl },
4364 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl },
4365 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uusCFInteraction_impl },
4366 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4371 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_) {
4372 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4373 T_uu_Data_sequence, hf_index, ett_gsm_map_T_uu_Data);
4377 static int dissect_uu_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4378 return dissect_gsm_map_T_uu_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uu_Data);
4381 static const ber_sequence ResumeCallHandlingArg_sequence[] = {
4382 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
4383 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
4384 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingData_impl },
4385 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
4386 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
4387 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
4388 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4389 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
4390 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
4391 { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl },
4392 { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allInformationSent_impl },
4397 dissect_gsm_map_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4398 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4399 ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
4404 static const ber_sequence ResumeCallHandlingRes_sequence[] = {
4405 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
4410 dissect_gsm_map_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4411 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4412 ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
4419 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_) {
4420 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4425 static int dissect_b_Subscriber_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4426 return dissect_gsm_map_T_b_Subscriber_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_Subscriber_Address);
4429 static const ber_sequence ProvideSIWFSNumberArg_sequence[] = {
4430 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
4431 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl },
4432 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_call_Direction_impl },
4433 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_b_Subscriber_Address_impl },
4434 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
4435 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowerLayerCompatibility_impl },
4436 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
4437 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4442 dissect_gsm_map_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4443 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4444 ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
4451 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_) {
4452 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4457 static int dissect_sIWFSNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4458 return dissect_gsm_map_T_sIWFSNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sIWFSNumber);
4461 static const ber_sequence ProvideSIWFSNumberRes_sequence[] = {
4462 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl },
4463 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4468 dissect_gsm_map_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4469 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4470 ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
4475 static const ber_sequence SIWFSSignallingModifyArg_sequence[] = {
4476 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
4477 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
4478 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4483 dissect_gsm_map_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4484 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4485 SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
4490 static const ber_sequence SIWFSSignallingModifyRes_sequence[] = {
4491 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
4492 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4497 dissect_gsm_map_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4498 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4499 SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
4505 static const value_string Ccbs_Monitoring_vals[] = {
4506 { 0, "stopMonitoring" },
4507 { 1, "startMonitoring" },
4513 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_) {
4514 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4518 static int dissect_ccbs_Monitoring_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4519 return dissect_gsm_map_Ccbs_Monitoring(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Monitoring);
4522 static const ber_sequence SetReportingStateArg_sequence[] = {
4523 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
4524 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
4525 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Monitoring_impl },
4526 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4531 dissect_gsm_map_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4532 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4533 SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
4539 static const value_string Ccbs_SubscriberStatus_vals[] = {
4540 { 0, "ccbsNotIdle" },
4542 { 2, "ccbsNotReachable" },
4548 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_) {
4549 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4553 static int dissect_ccbs_SubscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4554 return dissect_gsm_map_Ccbs_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_SubscriberStatus);
4557 static const ber_sequence SetReportingStateRes_sequence[] = {
4558 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
4559 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4564 dissect_gsm_map_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4565 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4566 SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
4572 static const value_string MonitoringMode_vals[] = {
4580 dissect_gsm_map_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4581 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4585 static int dissect_monitoringMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4586 return dissect_gsm_map_MonitoringMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_monitoringMode);
4590 static const value_string CallOutcome_vals[] = {
4599 dissect_gsm_map_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4600 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4604 static int dissect_callOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4605 return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callOutcome);
4608 static const ber_sequence T_eventReportData_sequence[] = {
4609 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
4610 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4615 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_) {
4616 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4617 T_eventReportData_sequence, hf_index, ett_gsm_map_T_eventReportData);
4621 static int dissect_eventReportData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4622 return dissect_gsm_map_T_eventReportData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_eventReportData);
4625 static const ber_sequence T_callReportdata_sequence[] = {
4626 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl },
4627 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl },
4628 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4633 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_) {
4634 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4635 T_callReportdata_sequence, hf_index, ett_gsm_map_T_callReportdata);
4639 static int dissect_callReportdata_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4640 return dissect_gsm_map_T_callReportdata(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReportdata);
4643 static const ber_sequence StatusReportArg_sequence[] = {
4644 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
4645 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl },
4646 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReportdata_impl },
4647 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4652 dissect_gsm_map_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4653 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4654 StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
4659 static const ber_sequence StatusReportRes_sequence[] = {
4660 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4665 dissect_gsm_map_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4666 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4667 StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
4673 static const value_string Ruf_Outcome_vals[] = {
4676 { 2, "noResponseFromFreeMS" },
4677 { 3, "noResponseFromBusyMS" },
4678 { 4, "udubFromFreeMS" },
4679 { 5, "udubFromBusyMS" },
4685 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_) {
4686 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
4690 static int dissect_ruf_Outcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4691 return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ruf_Outcome);
4696 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_) {
4697 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4702 static int dissect_b_subscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4703 return dissect_gsm_map_B_subscriberNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberNumber);
4708 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_) {
4709 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4714 static int dissect_b_subscriberSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4715 return dissect_gsm_map_OCTET_STRING_SIZE_1_21(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberSubaddress);
4718 static const ber_sequence Ccbs_Feature_sequence[] = {
4719 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
4720 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
4721 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
4722 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
4727 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_) {
4728 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4729 Ccbs_Feature_sequence, hf_index, ett_gsm_map_Ccbs_Feature);
4733 static int dissect_ccbs_Feature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4734 return dissect_gsm_map_Ccbs_Feature(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Feature);
4739 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_) {
4740 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4745 static int dissect_translatedB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4746 return dissect_gsm_map_TranslatedB_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
4749 static const ber_sequence RemoteUserFreeArg_sequence[] = {
4750 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
4751 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
4752 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
4753 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
4754 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replaceB_Number_impl },
4755 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
4756 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4761 dissect_gsm_map_RemoteUserFreeArg(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 RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
4768 static const ber_sequence RemoteUserFreeRes_sequence[] = {
4769 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl },
4770 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
4775 dissect_gsm_map_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4776 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4777 RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
4782 static const ber_sequence Ss_Data_sequence[] = {
4783 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4784 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
4785 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
4786 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
4787 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
4792 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_) {
4793 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4794 Ss_Data_sequence, hf_index, ett_gsm_map_Ss_Data);
4798 static int dissect_ss_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4799 return dissect_gsm_map_Ss_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data);
4802 static const ber_sequence RegisterSS_Arg_sequence[] = {
4803 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4804 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
4805 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
4806 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
4807 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
4808 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
4813 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_) {
4814 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4815 RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
4821 static const value_string Ss_Info_vals[] = {
4822 { 0, "forwardingInfo" },
4823 { 1, "callBarringInfo" },
4828 static const ber_choice Ss_Info_choice[] = {
4829 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
4830 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
4831 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
4832 { 0, 0, 0, 0, NULL }
4836 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_) {
4837 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4838 Ss_Info_choice, hf_index, ett_gsm_map_Ss_Info);
4843 static const ber_sequence Ss_ForBS_sequence[] = {
4844 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
4845 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
4850 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_) {
4851 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4852 Ss_ForBS_sequence, hf_index, ett_gsm_map_Ss_ForBS);
4857 static const ber_sequence T_ccbs_FeatureList_item_sequence[] = {
4858 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
4859 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
4860 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
4861 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
4866 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_) {
4867 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4868 T_ccbs_FeatureList_item_sequence, hf_index, ett_gsm_map_T_ccbs_FeatureList_item);
4872 static int dissect_ccbs_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4873 return dissect_gsm_map_T_ccbs_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList_item);
4876 static const ber_sequence T_ccbs_FeatureList_sequence_of[1] = {
4877 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ccbs_FeatureList_item },
4881 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_) {
4882 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4883 T_ccbs_FeatureList_sequence_of, hf_index, ett_gsm_map_T_ccbs_FeatureList);
4887 static int dissect_ccbs_FeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4888 return dissect_gsm_map_T_ccbs_FeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList);
4891 static const ber_sequence T_genericServiceInfo_sequence[] = {
4892 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
4893 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
4894 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumEntitledPriority_impl },
4895 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
4896 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_FeatureList_impl },
4901 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_) {
4902 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4903 T_genericServiceInfo_sequence, hf_index, ett_gsm_map_T_genericServiceInfo);
4907 static int dissect_genericServiceInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4908 return dissect_gsm_map_T_genericServiceInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_genericServiceInfo);
4912 static const value_string InterrogateSS_Res_vals[] = {
4914 { 2, "basicServiceGroupList" },
4915 { 3, "forwardingFeatureList" },
4916 { 4, "genericServiceInfo" },
4920 static const ber_choice InterrogateSS_Res_choice[] = {
4921 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
4922 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_basicServiceGroupList_impl },
4923 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_forwardingFeatureList_impl },
4924 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_genericServiceInfo_impl },
4925 { 0, 0, 0, 0, NULL }
4929 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_) {
4930 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4931 InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res);
4938 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_) {
4939 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4944 static int dissect_ussd_String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4945 return dissect_gsm_map_OCTET_STRING_SIZE_1_160(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_String);
4948 static const ber_sequence Ussd_Arg_sequence[] = {
4949 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
4950 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
4951 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertingPattern },
4952 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
4957 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_) {
4958 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4959 Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
4964 static const ber_sequence Ussd_Res_sequence[] = {
4965 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
4966 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
4971 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_) {
4972 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4973 Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
4980 dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4981 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
4982 pinfo, tree, tvb, offset, hf_index,
4989 static const value_string GetPasswordArg_vals[] = {
4991 { 1, "enterNewPW" },
4992 { 2, "enterNewPW-Again" },
4998 dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4999 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5006 dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5007 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
5008 pinfo, tree, tvb, offset, hf_index,
5014 static const asn_namedbit ServiceIndicator_bits[] = {
5015 { 0, &hf_gsm_map_ServiceIndicator_clirInvoked, -1, -1, NULL, NULL },
5016 { 1, &hf_gsm_map_ServiceIndicator_camelInvoked, -1, -1, NULL, NULL },
5017 { 0, NULL, 0, 0, NULL, NULL }
5021 dissect_gsm_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5022 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
5023 ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
5028 static int dissect_serviceIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5029 return dissect_gsm_map_ServiceIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceIndicator);
5032 static const ber_sequence T_ccbs_Data_sequence[] = {
5033 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
5034 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
5035 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceIndicator_impl },
5036 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
5037 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
5042 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_) {
5043 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5044 T_ccbs_Data_sequence, hf_index, ett_gsm_map_T_ccbs_Data);
5048 static int dissect_ccbs_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5049 return dissect_gsm_map_T_ccbs_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Data);
5052 static const ber_sequence RegisterCC_EntryArg_sequence[] = {
5053 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
5054 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl },
5059 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_) {
5060 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5061 RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
5066 static const ber_sequence RegisterCC_EntryRes_sequence[] = {
5067 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
5072 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_) {
5073 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5074 RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
5079 static const ber_sequence EraseCC_EntryArg_sequence[] = {
5080 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
5081 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
5086 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_) {
5087 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5088 EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
5093 static const ber_sequence EraseCC_EntryRes_sequence[] = {
5094 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
5095 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
5100 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_) {
5101 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5102 EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
5109 dissect_gsm_map_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5110 offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index);
5114 static int dissect_sm_RP_PRI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5115 return dissect_gsm_map_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_PRI);
5121 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_) {
5122 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5126 static int dissect_sm_RP_MTI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5127 return dissect_gsm_map_INTEGER_0_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_MTI);
5132 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_) {
5133 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5138 static int dissect_sm_RP_SMEA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5139 return dissect_gsm_map_OCTET_STRING_SIZE_1_12(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_SMEA);
5142 static const ber_sequence RoutingInfoForSMArg_sequence[] = {
5143 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5144 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl },
5145 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddress_impl },
5146 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5147 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
5148 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_MTI_impl },
5149 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_SMEA_impl },
5154 dissect_gsm_map_RoutingInfoForSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5155 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5156 RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
5163 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_) {
5164 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5169 static int dissect_networkNode_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5170 return dissect_gsm_map_T_networkNode_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
5174 static const value_string T_additional_Number_vals[] = {
5175 { 0, "msc-Number" },
5176 { 1, "sgsn-Number" },
5180 static const ber_choice T_additional_Number_choice[] = {
5181 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
5182 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
5183 { 0, 0, 0, 0, NULL }
5187 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_) {
5188 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5189 T_additional_Number_choice, hf_index, ett_gsm_map_T_additional_Number);
5193 static int dissect_additional_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5194 return dissect_gsm_map_T_additional_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_additional_Number);
5197 static const ber_sequence T_locationInfoWithLMSI_sequence[] = {
5198 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl },
5199 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
5200 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5201 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl },
5202 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_additional_Number },
5207 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_) {
5208 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5209 T_locationInfoWithLMSI_sequence, hf_index, ett_gsm_map_T_locationInfoWithLMSI);
5213 static int dissect_locationInfoWithLMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5214 return dissect_gsm_map_T_locationInfoWithLMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInfoWithLMSI);
5217 static const ber_sequence RoutingInfoForSMRes_sequence[] = {
5218 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
5219 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl },
5220 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5225 dissect_gsm_map_RoutingInfoForSMRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5226 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5227 RoutingInfoForSMRes_sequence, hf_index, ett_gsm_map_RoutingInfoForSMRes);
5233 static const value_string Sm_RP_DA_vals[] = {
5236 { 4, "serviceCentreAddressDA" },
5237 { 5, "noSM-RP-DA" },
5241 static const ber_choice Sm_RP_DA_choice[] = {
5242 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5243 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
5244 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressDA_impl },
5245 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_DA_impl },
5246 { 0, 0, 0, 0, NULL }
5250 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_) {
5251 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5252 Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA);
5256 static int dissect_sm_RP_DA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5257 return dissect_gsm_map_Sm_RP_DA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_DA);
5261 static const value_string Sm_RP_OA_vals[] = {
5263 { 4, "serviceCentreAddressOA" },
5264 { 5, "noSM-RP-OA" },
5268 static const ber_choice Sm_RP_OA_choice[] = {
5269 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5270 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressOA_impl },
5271 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_OA_impl },
5272 { 0, 0, 0, 0, NULL }
5276 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_) {
5277 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5278 Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA);
5282 static int dissect_sm_RP_OA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5283 return dissect_gsm_map_Sm_RP_OA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_OA);
5286 static const ber_sequence Mo_forwardSM_Arg_sequence[] = {
5287 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
5288 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
5289 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
5290 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5291 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
5296 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_) {
5297 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5298 Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
5303 static const ber_sequence Mo_forwardSM_Res_sequence[] = {
5304 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
5305 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5310 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_) {
5311 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5312 Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
5317 static const ber_sequence Mt_forwardSM_Arg_sequence[] = {
5318 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
5319 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
5320 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
5321 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
5322 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5327 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_) {
5328 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5329 Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
5334 static const ber_sequence Mt_forwardSM_Res_sequence[] = {
5335 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
5336 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5341 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_) {
5342 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5343 Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
5350 dissect_gsm_map_StoredMSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5351 offset = dissect_gsm_map_Msisdn(implicit_tag, tvb, offset, pinfo, tree, hf_index);
5355 static int dissect_storedMSISDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5356 return dissect_gsm_map_StoredMSISDN(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_storedMSISDN);
5360 static const value_string Sm_DeliveryOutcome_vals[] = {
5361 { 0, "memoryCapacityExceeded" },
5362 { 1, "absentSubscriber" },
5363 { 2, "successfulTransfer" },
5369 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_) {
5370 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5374 static int dissect_sm_DeliveryOutcome(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5375 return dissect_gsm_map_Sm_DeliveryOutcome(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_DeliveryOutcome);
5377 static int dissect_additionalSM_DeliveryOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5378 return dissect_gsm_map_Sm_DeliveryOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSM_DeliveryOutcome);
5381 static const ber_sequence ReportSM_DeliveryStatusArg_sequence[] = {
5382 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
5383 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
5384 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_DeliveryOutcome },
5385 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberDiagnosticSM_impl },
5386 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5387 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
5388 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deliveryOutcomeIndicator_impl },
5389 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSM_DeliveryOutcome_impl },
5390 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
5395 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_) {
5396 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5397 ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
5402 static const ber_sequence ReportSM_DeliveryStatusRes_sequence[] = {
5403 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
5404 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5409 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_) {
5410 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5411 ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
5416 static const asn_namedbit T_mw_Status_bits[] = {
5417 { 0, &hf_gsm_map_T_mw_Status_scAddressNotIncluded, -1, -1, NULL, NULL },
5418 { 1, &hf_gsm_map_T_mw_Status_mnrfSet, -1, -1, NULL, NULL },
5419 { 2, &hf_gsm_map_T_mw_Status_mcefSet, -1, -1, NULL, NULL },
5420 { 3, &hf_gsm_map_T_mw_Status_mnrgSet, -1, -1, NULL, NULL },
5421 { 0, NULL, 0, 0, NULL, NULL }
5425 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_) {
5426 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
5427 T_mw_Status_bits, hf_index, ett_gsm_map_T_mw_Status,
5432 static int dissect_mw_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5433 return dissect_gsm_map_T_mw_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mw_Status);
5436 static const ber_sequence InformServiceCentreArg_sequence[] = {
5437 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
5438 { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status },
5439 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5444 dissect_gsm_map_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5445 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5446 InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
5451 static const ber_sequence AlertServiceCentreArg_sequence[] = {
5452 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
5453 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
5458 dissect_gsm_map_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5459 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5460 AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
5466 static const value_string T_alertReason_vals[] = {
5468 { 1, "memoryAvailable" },
5474 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_) {
5475 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5479 static int dissect_alertReason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5480 return dissect_gsm_map_T_alertReason(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReason);
5483 static const ber_sequence ReadyForSM_Arg_sequence[] = {
5484 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5485 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason },
5486 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertReasonIndicator },
5487 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5492 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_) {
5493 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5494 ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
5499 static const ber_sequence ReadyForSM_Res_sequence[] = {
5500 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5505 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_) {
5506 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5507 ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
5512 static const ber_sequence RequestedInfo_sequence[] = {
5513 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationFlag_impl },
5514 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStateFlag_impl },
5515 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5520 dissect_gsm_map_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5521 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5522 RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
5526 static int dissect_requestedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5527 return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedInfo);
5530 static const ber_sequence ProvideSubscriberInfoArg_sequence[] = {
5531 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5532 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
5533 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
5534 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5539 dissect_gsm_map_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5540 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5541 ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
5546 static const ber_sequence ProvideSubscriberInfoRes_sequence[] = {
5547 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
5548 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5553 dissect_gsm_map_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5554 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5555 ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
5561 static const value_string T_subscriberIdentity_vals[] = {
5567 static const ber_choice T_subscriberIdentity_choice[] = {
5568 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5569 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5570 { 0, 0, 0, 0, NULL }
5574 dissect_gsm_map_T_subscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5575 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5576 T_subscriberIdentity_choice, hf_index, ett_gsm_map_T_subscriberIdentity);
5580 static int dissect_subscriberIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5581 return dissect_gsm_map_T_subscriberIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberIdentity);
5584 static const ber_sequence AnyTimeInterrogationArg_sequence[] = {
5585 { BER_CLASS_CON, 0, 0, dissect_subscriberIdentity },
5586 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
5587 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
5588 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5593 dissect_gsm_map_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5594 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5595 AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
5600 static const ber_sequence AnyTimeInterrogationRes_sequence[] = {
5601 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
5602 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5607 dissect_gsm_map_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5608 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5609 AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
5614 static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_1_20_sequence_of[1] = {
5615 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventSpecification_item },
5619 dissect_gsm_map_SEQUNCE_OF_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_) {
5620 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5621 SEQUNCE_OF_OCTET_STRING_SIZE_1_20_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20);
5625 static int dissect_ss_EventSpecification_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5626 return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification);
5629 static const ber_sequence Ss_InvocationNotificationArg_sequence[] = {
5630 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5631 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
5632 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ss_Event_impl },
5633 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_EventSpecification_impl },
5634 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5639 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_) {
5640 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5641 Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
5646 static const ber_sequence Ss_InvocationNotificationRes_sequence[] = {
5647 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5652 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_) {
5653 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5654 Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
5661 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_) {
5662 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5667 static int dissect_codec_Info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5668 return dissect_gsm_map_OCTET_STRING_SIZE_5_10(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_codec_Info);
5671 static const ber_sequence PrepareGroupCallArg_sequence[] = {
5672 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleservice },
5673 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
5674 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_codec_Info },
5675 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cipheringAlgorithm },
5676 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKeyNumber_impl },
5677 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKey_impl },
5678 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl },
5679 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkFree_impl },
5680 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5685 dissect_gsm_map_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5686 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5687 PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
5694 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_) {
5695 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5700 static int dissect_groupCallNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5701 return dissect_gsm_map_T_groupCallNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupCallNumber);
5704 static const ber_sequence PrepareGroupCallRes_sequence[] = {
5705 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber },
5706 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5711 dissect_gsm_map_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5712 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5713 PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
5718 static const ber_sequence SendGroupCallEndSignalArg_sequence[] = {
5719 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
5720 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5725 dissect_gsm_map_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5726 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5727 SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
5732 static const ber_sequence SendGroupCallEndSignalRes_sequence[] = {
5733 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5738 dissect_gsm_map_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5739 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5740 SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
5745 static const ber_sequence ProcessGroupCallSignallingArg_sequence[] = {
5746 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl },
5747 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
5748 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseGroupCall_impl },
5749 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5754 dissect_gsm_map_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5755 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5756 ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
5761 static const ber_sequence ForwardGroupCallSignallingArg_sequence[] = {
5762 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
5763 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl },
5764 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
5765 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRejectCommand_impl },
5766 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkSeizedCommand_impl },
5767 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseCommand_impl },
5768 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5773 dissect_gsm_map_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5774 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5775 ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
5782 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_) {
5783 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5788 static int dissect_sgsn_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5789 return dissect_gsm_map_OCTET_STRING_SIZE_5_17(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
5791 static int dissect_sgsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5792 return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
5795 static const ber_sequence T_sgsn_Capability_sequence[] = {
5796 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator },
5797 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5802 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_) {
5803 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5804 T_sgsn_Capability_sequence, hf_index, ett_gsm_map_T_sgsn_Capability);
5808 static int dissect_sgsn_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5809 return dissect_gsm_map_T_sgsn_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Capability);
5812 static const ber_sequence UpdateGprsLocationArg_sequence[] = {
5813 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
5814 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number },
5815 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Address },
5816 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5817 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Capability_impl },
5822 dissect_gsm_map_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5823 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5824 UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
5829 static const ber_sequence UpdateGprsLocationRes_sequence[] = {
5830 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
5831 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
5836 dissect_gsm_map_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5837 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5838 UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
5845 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_) {
5846 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5851 static int dissect_ggsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5852 return dissect_gsm_map_Ggsn_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Address);
5857 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_) {
5858 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5863 static int dissect_ggsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5864 return dissect_gsm_map_Ggsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Number);
5867 static const ber_sequence SendRoutingInfoForGprsArg_sequence[] = {
5868 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5869 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
5870 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
5871 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5876 dissect_gsm_map_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5877 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5878 SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
5883 static const ber_sequence SendRoutingInfoForGprsRes_sequence[] = {
5884 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
5885 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
5886 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mobileNotReachableReason_impl },
5887 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5892 dissect_gsm_map_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5893 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5894 SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
5899 static const ber_sequence FailureReportArg_sequence[] = {
5900 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5901 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
5902 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
5903 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5908 dissect_gsm_map_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5909 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5910 FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
5915 static const ber_sequence FailureReportRes_sequence[] = {
5916 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
5917 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5922 dissect_gsm_map_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5923 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5924 FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
5929 static const ber_sequence NoteMsPresentForGprsArg_sequence[] = {
5930 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
5931 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
5932 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
5933 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5938 dissect_gsm_map_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5939 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5940 NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
5945 static const ber_sequence NoteMsPresentForGprsRes_sequence[] = {
5946 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5951 dissect_gsm_map_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5952 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5953 NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
5959 static const value_string LcsClientType_vals[] = {
5960 { 0, "emergencyServices" },
5961 { 1, "valueAddedServices" },
5962 { 2, "plmnOperatorServices" },
5963 { 3, "lawfulInterceptServices" },
5969 dissect_gsm_map_LcsClientType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5970 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5974 static int dissect_lcsClientType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5975 return dissect_gsm_map_LcsClientType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientType);
5978 static const ber_sequence LcsClientExternalID_sequence[] = {
5979 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
5980 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5985 dissect_gsm_map_LcsClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5986 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5987 LcsClientExternalID_sequence, hf_index, ett_gsm_map_LcsClientExternalID);
5991 static int dissect_lcsClientExternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5992 return dissect_gsm_map_LcsClientExternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientExternalID);
5996 static const value_string LcsClientInternalID_vals[] = {
5997 { 0, "broadcastService" },
5998 { 1, "o-andM-HPLMN" },
5999 { 2, "o-andM-VPLMN" },
6000 { 3, "anonymousLocation" },
6001 { 4, "targetMSsubscribedService" },
6007 dissect_gsm_map_LcsClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6008 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6012 static int dissect_lcsClientInternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6013 return dissect_gsm_map_LcsClientInternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientInternalID);
6016 static const ber_sequence LcsClientName_sequence[] = {
6017 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
6018 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl },
6023 dissect_gsm_map_LcsClientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6024 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6025 LcsClientName_sequence, hf_index, ett_gsm_map_LcsClientName);
6029 static int dissect_lcsClientName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6030 return dissect_gsm_map_LcsClientName(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientName);
6033 static const ber_sequence Lcs_ClientID_sequence[] = {
6034 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl },
6035 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl },
6036 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientDialedByMS_impl },
6037 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientInternalID_impl },
6038 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientName_impl },
6043 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_) {
6044 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6045 Lcs_ClientID_sequence, hf_index, ett_gsm_map_Lcs_ClientID);
6049 static int dissect_lcs_ClientID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6050 return dissect_gsm_map_Lcs_ClientID(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
6052 static int dissect_lcs_ClientID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6053 return dissect_gsm_map_Lcs_ClientID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
6057 static const value_string Lcs_Event_vals[] = {
6058 { 0, "emergencyCallOrigination" },
6059 { 1, "emergencyCallRelease" },
6066 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_) {
6067 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6071 static int dissect_lcs_Event(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6072 return dissect_gsm_map_Lcs_Event(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Event);
6075 static const ber_sequence LcsLocationInfo_sequence[] = {
6076 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msc_Number },
6077 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
6078 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6083 dissect_gsm_map_LcsLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6084 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6085 LcsLocationInfo_sequence, hf_index, ett_gsm_map_LcsLocationInfo);
6089 static int dissect_lcsLocationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6090 return dissect_gsm_map_LcsLocationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
6092 static int dissect_lcsLocationInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6093 return dissect_gsm_map_LcsLocationInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
6097 static const value_string T_locationEstimateType_vals[] = {
6098 { 0, "currentLocation" },
6099 { 1, "currentOrLastKnownLocation" },
6100 { 2, "initialLocation" },
6106 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_) {
6107 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6111 static int dissect_locationEstimateType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6112 return dissect_gsm_map_T_locationEstimateType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimateType);
6115 static const ber_sequence T_locationType_sequence[] = {
6116 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl },
6121 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_) {
6122 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6123 T_locationType_sequence, hf_index, ett_gsm_map_T_locationType);
6127 static int dissect_locationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6128 return dissect_gsm_map_T_locationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationType);
6133 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_) {
6134 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6139 static int dissect_mlc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6140 return dissect_gsm_map_T_mlc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mlc_Number);
6144 static const value_string T_responseTimeCategory_vals[] = {
6146 { 1, "delaytolerant" },
6152 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_) {
6153 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6157 static int dissect_responseTimeCategory(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6158 return dissect_gsm_map_T_responseTimeCategory(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_responseTimeCategory);
6161 static const ber_sequence T_responseTime_sequence[] = {
6162 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory },
6167 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_) {
6168 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6169 T_responseTime_sequence, hf_index, ett_gsm_map_T_responseTime);
6173 static int dissect_responseTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6174 return dissect_gsm_map_T_responseTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_responseTime);
6177 static const ber_sequence T_lcs_QoS_sequence[] = {
6178 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl },
6179 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl },
6180 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vertical_accuracy_impl },
6181 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseTime_impl },
6182 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6187 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_) {
6188 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6189 T_lcs_QoS_sequence, hf_index, ett_gsm_map_T_lcs_QoS);
6193 static int dissect_lcs_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6194 return dissect_gsm_map_T_lcs_QoS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_QoS);
6197 static const ber_sequence ProvideSubscriberLocation_Arg_sequence[] = {
6198 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType },
6199 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number },
6200 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ClientID_impl },
6201 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privacyOverride_impl },
6202 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6203 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6204 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
6205 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
6206 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_Priority_impl },
6207 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_QoS_impl },
6208 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6213 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_) {
6214 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6215 ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
6220 static const ber_sequence ProvideSubscriberLocation_Res_sequence[] = {
6221 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate },
6222 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
6223 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6228 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_) {
6229 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6230 ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
6236 static const value_string TargetMS_vals[] = {
6242 static const ber_choice TargetMS_choice[] = {
6243 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6244 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6245 { 0, 0, 0, 0, NULL }
6249 dissect_gsm_map_TargetMS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6250 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6251 TargetMS_choice, hf_index, ett_gsm_map_TargetMS);
6255 static int dissect_targetMS(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6256 return dissect_gsm_map_TargetMS(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMS);
6261 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_) {
6262 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6267 static int dissect_mlcNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6268 return dissect_gsm_map_T_mlcNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mlcNumber);
6271 static const ber_sequence RoutingInfoForLCS_Arg_sequence[] = {
6272 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl },
6273 { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
6274 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6279 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_) {
6280 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6281 RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
6286 static const ber_sequence RoutingInfoForLCS_Res_sequence[] = {
6287 { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
6288 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsLocationInfo_impl },
6289 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6294 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_) {
6295 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6296 RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
6303 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_) {
6304 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6309 static int dissect_na_ESRD_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6310 return dissect_gsm_map_T_na_ESRD(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRD);
6315 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_) {
6316 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6321 static int dissect_na_ESRK_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6322 return dissect_gsm_map_T_na_ESRK(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRK);
6325 static const ber_sequence SubscriberLocationReport_Arg_sequence[] = {
6326 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event },
6327 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID },
6328 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcsLocationInfo },
6329 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
6330 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
6331 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
6332 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl },
6333 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl },
6334 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationEstimate_impl },
6335 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
6336 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
6341 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_) {
6342 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6343 SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
6348 static const ber_sequence SubscriberLocationReport_Res_sequence[] = {
6349 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6354 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_) {
6355 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6356 SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
6362 static const value_string NetworkResource_vals[] = {
6367 { 4, "controllingMSC" },
6376 dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6377 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6381 static int dissect_networkResource(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6382 return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkResource);
6385 static const ber_sequence T_extensibleSystemFailureParam_sequence[] = {
6386 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource },
6387 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6392 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_) {
6393 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6394 T_extensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_T_extensibleSystemFailureParam);
6398 static int dissect_extensibleSystemFailureParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6399 return dissect_gsm_map_T_extensibleSystemFailureParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleSystemFailureParam);
6403 static const value_string SystemFailureParam_vals[] = {
6404 { 0, "networkResource" },
6405 { 1, "extensibleSystemFailureParam" },
6409 static const ber_choice SystemFailureParam_choice[] = {
6410 { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_networkResource },
6411 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleSystemFailureParam },
6412 { 0, 0, 0, 0, NULL }
6416 dissect_gsm_map_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6417 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6418 SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam);
6423 static const ber_sequence DataMissingParam_sequence[] = {
6424 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6429 dissect_gsm_map_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6430 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6431 DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
6436 static const ber_sequence UnexpectedDataParam_sequence[] = {
6437 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6442 dissect_gsm_map_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6443 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6444 UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
6449 static const ber_sequence FacilityNotSupParam_sequence[] = {
6450 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6455 dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6456 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6457 FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
6462 static const ber_sequence IncompatibleTerminalParam_sequence[] = {
6463 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6468 dissect_gsm_map_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6469 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6470 IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
6475 static const ber_sequence ResourceLimitationParam_sequence[] = {
6476 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6481 dissect_gsm_map_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6482 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6483 ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
6489 static const value_string T_unknownSubscriberDiagnostic_vals[] = {
6490 { 0, "imsiUnknown" },
6491 { 1, "gprsSubscriptionUnknown" },
6497 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_) {
6498 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6502 static int dissect_unknownSubscriberDiagnostic(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6503 return dissect_gsm_map_T_unknownSubscriberDiagnostic(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_unknownSubscriberDiagnostic);
6506 static const ber_sequence UnknownSubscriberParam_sequence[] = {
6507 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6508 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic },
6513 dissect_gsm_map_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6514 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6515 UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
6520 static const ber_sequence NumberChangedParam_sequence[] = {
6521 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6526 dissect_gsm_map_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6527 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6528 NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
6533 static const ber_sequence UnidentifiedSubParam_sequence[] = {
6534 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6539 dissect_gsm_map_UnidentifiedSubParam(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 UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
6547 static const value_string T_roamingNotAllowedCause_vals[] = {
6548 { 0, "plmnRoamingNotAllowed" },
6549 { 3, "operatorDeterminedBarring" },
6555 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_) {
6556 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6560 static int dissect_roamingNotAllowedCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6561 return dissect_gsm_map_T_roamingNotAllowedCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNotAllowedCause);
6564 static const ber_sequence RoamingNotAllowedParam_sequence[] = {
6565 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause },
6566 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6571 dissect_gsm_map_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6572 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6573 RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
6578 static const ber_sequence IllegalSubscriberParam_sequence[] = {
6579 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6584 dissect_gsm_map_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6585 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6586 IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
6591 static const ber_sequence IllegalEquipmentParam_sequence[] = {
6592 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6597 dissect_gsm_map_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6598 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6599 IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
6604 static const ber_sequence BearerServNotProvParam_sequence[] = {
6605 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6610 dissect_gsm_map_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6611 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6612 BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
6617 static const ber_sequence TeleservNotProvParam_sequence[] = {
6618 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6623 dissect_gsm_map_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6624 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6625 TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
6630 static const ber_sequence TracingBufferFullParam_sequence[] = {
6631 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6636 dissect_gsm_map_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6637 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6638 TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
6643 static const ber_sequence NoRoamingNbParam_sequence[] = {
6644 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6649 dissect_gsm_map_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6650 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6651 NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
6657 static const value_string T_absentSubscriberReason_vals[] = {
6658 { 0, "imsiDetach" },
6659 { 1, "restrictedArea" },
6660 { 2, "noPageResponse" },
6666 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_) {
6667 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6671 static int dissect_absentSubscriberReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6672 return dissect_gsm_map_T_absentSubscriberReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberReason);
6675 static const ber_sequence AbsentSubscriberParam_sequence[] = {
6676 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6677 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl },
6682 dissect_gsm_map_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6683 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6684 AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
6689 static const ber_sequence BusySubscriberParam_sequence[] = {
6690 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6691 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
6692 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Busy_impl },
6697 dissect_gsm_map_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6698 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6699 BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
6704 static const ber_sequence NoSubscriberReplyParam_sequence[] = {
6705 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6710 dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6711 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6712 NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
6718 static const value_string CallBarringCause_vals[] = {
6719 { 0, "barringServiceActive" },
6720 { 1, "operatorBarring" },
6726 dissect_gsm_map_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6727 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6731 static int dissect_callBarringCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6732 return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringCause);
6735 static const ber_sequence T_extensibleCallBarredParam_sequence[] = {
6736 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
6737 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6738 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl },
6743 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_) {
6744 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6745 T_extensibleCallBarredParam_sequence, hf_index, ett_gsm_map_T_extensibleCallBarredParam);
6749 static int dissect_extensibleCallBarredParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6750 return dissect_gsm_map_T_extensibleCallBarredParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleCallBarredParam);
6754 static const value_string CallBarredParam_vals[] = {
6755 { 0, "callBarringCause" },
6756 { 1, "extensibleCallBarredParam" },
6760 static const ber_choice CallBarredParam_choice[] = {
6761 { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
6762 { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleCallBarredParam },
6763 { 0, 0, 0, 0, NULL }
6767 dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6768 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6769 CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam);
6774 static const ber_sequence ForwardingFailedParam_sequence[] = {
6775 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6780 dissect_gsm_map_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6781 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6782 ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
6787 static const ber_sequence Or_NotAllowedParam_sequence[] = {
6788 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6793 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_) {
6794 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6795 Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
6800 static const ber_sequence ForwardingViolationParam_sequence[] = {
6801 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6806 dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6807 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6808 ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
6814 static const value_string T_cug_RejectCause_vals[] = {
6815 { 0, "incomingCallsBarredWithinCUG" },
6816 { 1, "subscriberNotMemberOfCUG" },
6817 { 5, "requestedBasicServiceViolatesCUG-Constraints" },
6818 { 7, "calledPartySS-InteractionViolation" },
6824 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_) {
6825 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6829 static int dissect_cug_RejectCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6830 return dissect_gsm_map_T_cug_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause);
6833 static const ber_sequence Cug_RejectParam_sequence[] = {
6834 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
6835 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6840 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_) {
6841 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6842 Cug_RejectParam_sequence, hf_index, ett_gsm_map_Cug_RejectParam);
6847 static const ber_sequence Ati_NotAllowedParam_sequence[] = {
6848 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6853 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_) {
6854 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6855 Ati_NotAllowedParam_sequence, hf_index, ett_gsm_map_Ati_NotAllowedParam);
6860 static const ber_sequence NoGroupCallNbParam_sequence[] = {
6861 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6866 dissect_gsm_map_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6867 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6868 NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
6873 static const ber_sequence Ss_IncompatibilityCause_sequence[] = {
6874 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
6875 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
6876 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
6881 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_) {
6882 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6883 Ss_IncompatibilityCause_sequence, hf_index, ett_gsm_map_Ss_IncompatibilityCause);
6889 static const value_string Pw_RegistrationFailureCause_vals[] = {
6890 { 0, "undetermined" },
6891 { 1, "invalidFormat" },
6892 { 2, "newPasswordsMismatch" },
6898 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_) {
6899 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6904 static const ber_sequence ShortTermDenialParam_sequence[] = {
6909 dissect_gsm_map_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6910 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6911 ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
6916 static const ber_sequence LongTermDenialParam_sequence[] = {
6921 dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6922 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6923 LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
6928 static const ber_sequence SubBusyForMT_SMS_Param_sequence[] = {
6929 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6930 { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
6935 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_) {
6936 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6937 SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
6943 static const value_string T_sm_EnumeratedDeliveryFailureCause_vals[] = {
6944 { 0, "memoryCapacityExceeded" },
6945 { 1, "equipmentProtocolError" },
6946 { 2, "equipmentNotSM-Equipped" },
6947 { 3, "unknownServiceCentre" },
6948 { 4, "sc-Congestion" },
6949 { 5, "invalidSME-Address" },
6950 { 6, "subscriberNotSC-Subscriber" },
6956 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_) {
6957 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
6961 static int dissect_sm_EnumeratedDeliveryFailureCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6962 return dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
6965 static const ber_sequence Sm_DeliveryFailureCause_sequence[] = {
6966 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause },
6967 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo },
6968 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6973 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_) {
6974 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6975 Sm_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_Sm_DeliveryFailureCause);
6980 static const ber_sequence MessageWaitListFullParam_sequence[] = {
6981 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6986 dissect_gsm_map_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6987 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6988 MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
6993 static const ber_sequence AbsentSubscriberSM_Param_sequence[] = {
6994 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
6995 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
6996 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
7001 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_) {
7002 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7003 AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
7008 static const ber_sequence UnauthorizedRequestingNetwork_Param_sequence[] = {
7009 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7014 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_) {
7015 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7016 UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
7022 static const value_string T_unauthorizedLCSClient_Diagnostic_vals[] = {
7023 { 0, "noAdditionalInformation" },
7024 { 1, "clientNotInMSPrivacyExceptionList" },
7025 { 2, "callToClientNotSetup" },
7026 { 3, "privacyOverrideNotApplicable" },
7027 { 4, "disallowedByLocalRegulatoryRequirements" },
7033 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_) {
7034 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7038 static int dissect_unauthorizedLCSClient_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7039 return dissect_gsm_map_T_unauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic);
7042 static const ber_sequence UnauthorizedLCSClient_Param_sequence[] = {
7043 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl },
7044 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7049 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_) {
7050 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7051 UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
7057 static const value_string T_positionMethodFailure_Diagnostic_vals[] = {
7058 { 0, "congestion" },
7059 { 1, "insufficientResources" },
7060 { 2, "insufficientMeasurementData" },
7061 { 3, "inconsistentMeasurementData" },
7062 { 4, "locationProcedureNotCompleted" },
7063 { 5, "locationProcedureNotSupportedByTargetMS" },
7064 { 6, "qoSNotAttainable" },
7065 { 7, "positionMethodNotAvailableInNetwork" },
7066 { 8, "positionMethodNotAvailableInLocationArea" },
7072 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_) {
7073 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
7077 static int dissect_positionMethodFailure_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7078 return dissect_gsm_map_T_positionMethodFailure_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
7081 static const ber_sequence PositionMethodFailure_Param_sequence[] = {
7082 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
7083 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
7088 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_) {
7089 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7090 PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
7095 static const ber_sequence UnknownOrUnreachableLCSClient_Param_sequence[] = {
7096 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
7101 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_) {
7102 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7103 UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
7109 /*--- End of included file: packet-gsm_map-fn.c ---*/
7112 /* Stuff included from the "old" packet-gsm_map.c for tapping purposes */
7114 my_match_strval(guint32 val, const value_string *vs, gint *idx)
7118 while (vs[i].strptr) {
7119 if (vs[i].value == val)
7122 return(vs[i].strptr);
7131 /* End includes from old" packet-gsm_map.c */
7133 const value_string gsm_map_opr_code_strings[] = {
7134 { 2, "updateLocation" },
7135 { 3, "cancelLocation" },
7136 { 4, "provideRoamingNumber" },
7137 { 6, "resumeCallHandling" },
7138 { 7, "insertSubscriberData" },
7139 { 8, "deleteSubscriberData" },
7140 { 9, "sendParameters" }, /* map-ac infoRetrieval (14) version1 (1)*/
7141 { 10, "registerSS" },
7143 { 12, "activateSS" },
7144 { 13, "deactivateSS" },
7145 { 14, "interrogateSS" },
7146 { 17, "registerPassword" },
7147 { 18, "getPassword" },
7148 { 19, "processUnstructuredSS-Data" }, /* map-ac networkFunctionalSs (18) version1 (1) */
7149 { 22, "sendRoutingInfo" },
7150 { 23, "updateGprsLocation" },
7151 { 24, "sendRoutingInfoForGprs" },
7152 { 25, "failureReport" },
7153 { 26, "noteMsPresentForGprs" },
7154 { 28, "performHandover" }, /* map-ac handoverControl (11) version1 (1)*/
7155 { 29, "sendEndSignal" },
7156 { 30, "performSubsequentHandover" }, /* map-ac handoverControl (11) version1 (1) */
7157 { 31, "provideSIWFSNumber" },
7158 { 32, "sIWFSSignallingModify" },
7159 { 33, "processAccessSignalling" },
7160 { 34, "forwardAccessSignalling" },
7161 { 35, "noteInternalHandover" }, /* map-ac handoverControl (11) version1 (1) */
7163 { 38, "forwardCheckSS-Indication" },
7164 { 39, "prepareGroupCall" },
7165 { 40, "sendGroupCallEndSignal" },
7166 { 41, "processGroupCallSignalling" },
7167 { 42, "forwardGroupCallSignalling" },
7168 { 43, "checkIMEI" },
7169 { 44, "mt-forwardSM" },
7170 { 45, "sendRoutingInfoForSM" },
7171 { 46, "mo-forwardSM" },
7172 { 47, "reportSM-DeliveryStatus" },
7173 { 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
7174 { 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
7175 { 50, "activateTraceMode" },
7176 { 51, "deactivateTraceMode" },
7177 { 52, "traceSubscriberActivity" }, /* map-ac handoverControl (11) version1 (1) */
7178 { 54, "beginSubscriberActivity" }, /* map-ac networkFunctionalSs (18) version1 (1) */
7179 { 55, "sendIdentification" },
7180 { 56, "sendAuthenticationInfo" },
7181 { 57, "restoreData" },
7183 { 59, "processUnstructuredSS-Request" },
7184 { 60, "unstructuredSS-Request" },
7185 { 61, "unstructuredSS-Notify" },
7186 { 63, "informServiceCentre" },
7187 { 64, "alertServiceCentre" },
7188 { 66, "readyForSM" },
7190 { 68, "prepareHandover" },
7191 { 69, "prepareSubsequentHandover" },
7192 { 70, "provideSubscriberInfo" },
7193 { 71, "anyTimeInterrogation" },
7194 { 72, "ss-InvocationNotification" },
7195 { 73, "setReportingState" },
7196 { 74, "statusReport" },
7197 { 75, "remoteUserFree" },
7198 { 76, "registerCC-Entry" },
7199 { 77, "eraseCC-Entry" },
7200 { 83, "provideSubscriberLocation" },
7201 { 85, "sendRoutingInfoForLCS" },
7202 { 86, "subscriberLocationReport" },
7206 static guint32 opcode=0;
7209 dissect_gsm_map_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
7210 offset = dissect_ber_integer_new(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
7212 if (check_col(pinfo->cinfo, COL_INFO)){
7213 col_set_str(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
7219 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7221 case 2: /*updateLocation*/
7222 offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
7224 case 3: /*cancelLocation*/
7225 offset=dissect_gsm_map_CancelLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
7227 case 4: /*provideRoamingNumber*/
7228 offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
7230 case 6: /*resumeCallHandling*/
7231 offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, pinfo, tree, -1);
7233 case 7: /*insertSubscriberData*/
7234 offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
7236 case 8: /*deleteSubscriberData*/
7237 offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
7239 /* TODO find out why this isn't in the ASN1 file
7240 case 9: sendParameters
7241 offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
7244 case 10: /*registerSS*/
7245 offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7247 case 11: /*eraseSS*/
7248 offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
7250 case 12: /*activateSS*/
7251 offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
7253 case 13: /*deactivateSS*/
7254 offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
7256 case 14: /*interrogateSS*/
7257 offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
7259 case 17: /*registerPassword*/
7260 offset=dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
7262 case 18: /*getPassword*/
7263 offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_getPassword);
7265 case 22: /*sendRoutingInfo*/
7266 offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
7268 case 23: /*updateGprsLocation*/
7269 offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
7271 case 24: /*sendRoutingInfoForGprs*/
7272 offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
7274 case 25: /*failureReport*/
7275 offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, pinfo, tree, -1);
7277 case 26: /*noteMsPresentForGprs*/
7278 offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
7280 case 29: /*sendEndSignal*/
7281 offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
7283 case 31: /*provideSIWFSNumbe*/
7284 offset=dissect_gsm_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
7286 case 32: /*sIWFSSignallingModify*/
7287 offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, pinfo, tree, -1);
7289 case 33: /*processAccessSignalling*/
7290 offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
7292 case 34: /*forwardAccessSignalling*/
7293 offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
7296 offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, pinfo, tree, -1);
7298 case 38: /*forwardCheckSS-Indication*/
7301 case 39: /*prepareGroupCall*/
7302 offset=dissect_gsm_map_PrepareGroupCallArg(FALSE, tvb, offset, pinfo, tree, -1);
7304 case 40: /*sendGroupCallEndSignal*/
7305 dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, pinfo, tree, -1);
7307 case 42: /*processGroupCallSignalling*/
7308 offset=dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, pinfo, tree, -1);
7310 case 43: /*checkIMEI*/
7311 offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
7313 case 44: /*mt-forwardSM*/
7314 offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
7316 case 45: /*sendRoutingInfoForSM*/
7317 offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
7319 case 46: /*mo-forwardSM*/
7320 offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7322 case 47: /*reportSM-DeliveryStatus*/
7323 offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
7325 case 50: /*activateTraceMode*/
7326 offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
7328 case 51: /*deactivateTraceMode*/
7329 offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
7331 case 55: /*sendIdentification*/
7332 offset=dissect_gsm_map_Tmsi(FALSE, tvb, offset, pinfo, tree, -1);
7334 case 56: /*sendAuthenticationInfo*/
7335 offset=dissect_gsm_map_SendAuthenticationInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
7337 case 57: /*restoreData*/
7338 offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, pinfo, tree, -1);
7340 case 58: /*sendIMSI*/
7341 offset=dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, -1);
7343 case 59: /*processUnstructuredSS-Request*/
7344 offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7346 case 60: /*unstructuredSS-Request*/
7347 offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7349 case 61: /*unstructuredSS-Notify*/
7350 offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7352 case 63: /*informServiceCentre*/
7353 offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
7355 case 64: /*alertServiceCentre*/
7356 offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
7358 case 66: /*readyForSM*/
7359 offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7361 case 67: /*purgeMS*/
7362 offset=dissect_gsm_map_PurgeMS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7364 case 68: /*prepareHandover*/
7365 offset=dissect_gsm_map_PrepareHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7367 case 69: /*prepareSubsequentHandover*/
7368 offset=dissect_gsm_map_PrepareSubsequentHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7370 case 70: /*provideSubscriberInfo*/
7371 offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
7373 case 71: /*anyTimeInterrogation*/
7374 offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, pinfo, tree, -1);
7376 case 72: /*ss-InvocationNotificatio*/
7377 offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, pinfo, tree, -1);
7379 case 73: /*setReportingState*/
7380 offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, pinfo, tree, -1);
7382 case 74: /*statusReport*/
7383 offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, pinfo, tree, -1);
7385 case 75: /*remoteUserFree*/
7386 offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, pinfo, tree, -1);
7388 case 76: /*registerCC-Entry*/
7389 offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
7391 case 77: /*eraseCC-Entry*/
7392 offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
7394 case 83: /*provideSubscriberLocation*/
7395 offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7397 case 85: /*sendRoutingInfoForLCS*/
7398 offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7400 case 86: /*subscriberLocationReport*/
7401 offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7404 proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
7410 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7412 case 2: /*updateLocation*/
7413 offset=dissect_gsm_map_UpdateLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
7415 case 3: /*cancelLocation*/
7416 offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
7418 case 4: /*provideRoamingNumber*/
7419 offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
7421 case 6: /*resumeCallHandling*/
7422 offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, pinfo, tree, -1);
7424 case 7: /*insertSubscriberData*/
7425 offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
7427 case 8: /*deleteSubscriberData*/
7428 offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
7430 /* TODO find out why this isn't in the ASN1 file
7431 case 9: sendParameters
7432 offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
7435 case 10: /*registerSS*/
7436 offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
7438 case 11: /*eraseSS*/
7439 offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
7441 case 12: /*activateSS*/
7442 offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
7444 case 13: /*deactivateSS*/
7445 offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
7447 case 14: /*interrogateSS*/
7448 offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
7450 case 17: /*registerPassword*/
7451 offset=dissect_gsm_map_NewPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
7453 case 18: /*getPassword*/
7454 offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_currentPassword);
7456 case 22: /*sendRoutingInfo*/
7457 offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
7459 case 23: /*updateGprsLocation*/
7460 offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
7462 case 24: /*sendRoutingInfoForGprs*/
7463 offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
7465 case 25: /*failureReport*/
7466 offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, pinfo, tree, -1);
7468 case 26: /*noteMsPresentForGprs*/
7469 offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
7471 case 29: /*sendEndSignal*/
7472 /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
7473 * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
7475 offset=dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, -1);
7477 case 31: /*provideSIWFSNumbe*/
7478 offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
7480 case 32: /*provideSIWFSNumbe*/
7481 offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, pinfo, tree, -1);
7483 case 39: /*prepareGroupCall*/
7484 offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, pinfo, tree, -1);
7486 case 40: /*sendGroupCallEndSignal*/
7487 dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, pinfo, tree, -1);
7489 case 43: /*checkIMEI*/
7490 offset=dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, pinfo, tree, -1);
7492 case 45: /*sendRoutingInfoForSM*/
7493 offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
7495 case 46: /*mo-forwardSM*/
7496 offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
7498 case 48: /*reportSM-DeliveryStatus*/
7499 offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
7501 case 50: /*activateTraceMode*/
7502 offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
7504 case 51: /*deactivateTraceMode*/
7505 offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
7507 case 55: /*sendIdentification*/
7508 offset=dissect_gsm_map_SendIdentificationRes(FALSE, tvb, offset, pinfo, tree, -1);
7510 case 57: /*restoreData*/
7511 offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, pinfo, tree, -1);
7513 case 58: /*sendIMSI*/
7514 offset=dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree, -1);
7516 case 59: /*unstructuredSS-Request*/
7517 offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
7519 case 60: /*unstructuredSS-Request*/
7520 offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
7522 case 61: /*unstructuredSS-Notify*/
7524 proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
7526 case 66: /*readyForSM*/
7527 offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
7529 case 67: /*purgeMS*/
7530 offset=dissect_gsm_map_PurgeMS_Res(FALSE, tvb, offset, pinfo, tree, -1);
7532 case 68: /*prepareHandover*/
7533 offset=dissect_gsm_map_PrepareHO_Res(FALSE, tvb, offset, pinfo, tree, -1);
7535 case 69: /*prepareSubsequentHandover*/
7536 offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
7538 case 70: /*provideSubscriberInfo*/
7539 offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, pinfo, tree, -1);
7541 case 71: /*anyTimeInterrogation*/
7542 offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, pinfo, tree, -1);
7544 case 72: /*ss-InvocationNotificatio*/
7545 offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, pinfo, tree, -1);
7547 case 73: /*setReportingState*/
7548 offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, pinfo, tree, -1);
7550 case 74: /*statusReport*/
7551 offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, pinfo, tree, -1);
7553 case 75: /*remoteUserFree*/
7554 offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, pinfo, tree, -1);
7556 case 76: /*registerCC-Entry*/
7557 offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
7559 case 77: /*eraseCC-Entry*/
7560 offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
7562 case 83: /*provideSubscriberLocation*/
7563 offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, pinfo, tree, -1);
7565 case 85: /*sendRoutingInfoForLCS*/
7566 offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
7568 case 86: /*subscriberLocationReport*/
7569 offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, pinfo, tree, -1);
7572 proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
7578 dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7579 return dissect_gsm_map_Opcode(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeCmd);
7582 static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7583 return dissect_ber_integer_new(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_invokeid, NULL);
7587 static const value_string InvokeId_vals[] = {
7593 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7594 return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absent);
7598 static const ber_choice InvokeId_choice[] = {
7599 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
7600 { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
7601 { 0, 0, 0, 0, NULL }
7605 dissect_gsm_map_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
7606 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7607 InvokeId_choice, hf_index, ett_gsm_map_InvokeId);
7611 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7612 return dissect_gsm_map_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeId);
7615 static const ber_sequence InvokePDU_sequence[] = {
7616 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
7617 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
7618 { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
7623 dissect_gsm_map_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
7624 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7625 InvokePDU_sequence, hf_index, ett_gsm_map_InvokePDU);
7629 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7630 return dissect_gsm_map_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invoke);
7633 static const ber_sequence ReturnResult_result_sequence[] = {
7634 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
7635 { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
7639 dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7640 offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
7641 ReturnResult_result_sequence, hf_gsm_map_returnResult_result, ett_gsm_map_ReturnResult_result);
7646 static const ber_sequence ReturnResultPDU_sequence[] = {
7647 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
7648 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
7653 dissect_gsm_map_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
7654 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7655 ReturnResultPDU_sequence, hf_index, ett_gsm_map_ReturnResultPDU);
7659 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7660 return dissect_gsm_map_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResult);
7663 static const value_string GSMMAPPDU_vals[] = {
7665 { 2, "returnResult" },
7666 { 3, "returnError" },
7671 static const ber_choice GSMMAPPDU_choice[] = {
7672 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
7673 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
7675 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
7676 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
7678 { 0, 0, 0, 0, NULL }
7681 static guint8 gsmmap_pdu_type = 0;
7682 static guint8 gsm_map_pdu_size = 0;
7685 dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
7687 gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
7688 /* Get the length and add 2 */
7689 gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
7691 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7692 GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU);
7694 if (check_col(pinfo->cinfo, COL_INFO)){
7695 col_prepend_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
7705 dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
7707 proto_item *item=NULL;
7708 proto_tree *tree=NULL;
7709 /* Used for gsm_map TAP */
7710 static gsm_map_tap_rec_t tap_rec;
7715 if (check_col(pinfo->cinfo, COL_PROTOCOL))
7717 col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
7720 /* create display subtree for the protocol */
7722 item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
7723 tree = proto_item_add_subtree(item, ett_gsm_map);
7726 dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
7727 str = my_match_strval(opcode, gsm_map_opr_code_strings, &op_idx);
7729 tap_rec.invoke = FALSE;
7730 if ( gsmmap_pdu_type == 1 )
7731 tap_rec.invoke = TRUE;
7732 tap_rec.opr_code_idx = op_idx;
7733 tap_rec.size = gsm_map_pdu_size;
7734 tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
7740 static const value_string ssCode_vals[] = {
7741 { 0x00, "allSS - all SS" },
7742 { 0x10 ,"allLineIdentificationSS - all line identification SS" },
7743 { 0x11 ,"clip - calling line identification presentation" },
7744 { 0x12 ,"clir - calling line identification restriction" },
7745 { 0x13 ,"colp - connected line identification presentation" },
7746 { 0x14 ,"colr - connected line identification restriction" },
7747 { 0x15 ,"mci - malicious call identification" },
7748 { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
7749 { 0x19 ,"cnap - calling name presentation" },
7750 { 0x20 ,"allForwardingSS - all forwarding SS" },
7751 { 0x21 ,"cfu - call forwarding unconditional" },
7752 { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
7753 { 0x29 ,"cfb - call forwarding busy" },
7754 { 0x2a ,"cfnry - call forwarding on no reply" },
7755 { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
7756 { 0x24 ,"cd - call deflection" },
7757 { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
7758 { 0x31 ,"ect - explicit call transfer" },
7759 { 0x32 ,"mah - mobile access hunting" },
7760 { 0x40 ,"allCallCompletionSS - all Call completion SS" },
7761 { 0x41 ,"cw - call waiting" },
7762 { 0x42 ,"hold - call hold" },
7763 { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
7764 { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
7765 { 0x45 ,"mc - multicall" },
7766 { 0x50 ,"allMultiPartySS - all multiparty SS" },
7767 { 0x51 ,"multiPTY - multiparty" },
7768 { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
7769 { 0x61 ,"cug - closed user group" },
7770 { 0x70 ,"allChargingSS - all charging SS" },
7771 { 0x71 ,"aoci - advice of charge information" },
7772 { 0x72 ,"aocc - advice of charge charging" },
7773 { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
7774 { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
7775 { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
7776 { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
7777 { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
7778 { 0x91 ,"barringOfOutgoingCalls" },
7779 { 0x92 ,"baoc - barring of all outgoing calls" },
7780 { 0x93 ,"boic - barring of outgoing international calls" },
7781 { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
7782 { 0x99 ,"barringOfIncomingCalls" },
7783 { 0x9a ,"baic - barring of all incoming calls" },
7784 { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
7785 { 0xf0 ,"allPLMN-specificSS" },
7786 { 0xa0 ,"allCallPrioritySS - all call priority SS" },
7787 { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
7788 { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
7789 { 0xb1 ,"universal - allow location by any LCS client" },
7790 { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
7791 { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
7792 { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
7793 { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
7794 { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
7795 { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
7796 { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
7798 { 0xf1 ,"plmn-specificSS-1" },
7799 { 0xf2 ,"plmn-specificSS-2" },
7800 { 0xf3 ,"plmn-specificSS-3" },
7801 { 0xf4 ,"plmn-specificSS-4" },
7802 { 0xf5 ,"plmn-specificSS-5" },
7803 { 0xf6 ,"plmn-specificSS-6" },
7804 { 0xf7 ,"plmn-specificSS-7" },
7805 { 0xf8 ,"plmn-specificSS-8" },
7806 { 0xf9 ,"plmn-specificSS-9" },
7807 { 0xfa ,"plmn-specificSS-a" },
7808 { 0xfb ,"plmn-specificSS-b" },
7809 { 0xfc ,"plmn-specificSS-c" },
7810 { 0xfd ,"plmn-specificSS-d" },
7811 { 0xfe ,"plmn-specificSS-e" },
7812 { 0xff ,"plmn-specificSS-f" },
7816 static const value_string Teleservice_vals[] = {
7817 {0x00, "allTeleservices" },
7818 {0x10, "allSpeechTransmissionServices" },
7819 {0x11, "telephony" },
7820 {0x12, "emergencyCalls" },
7821 {0x20, "allShortMessageServices" },
7822 {0x21, "shortMessageMT-PP" },
7823 {0x22, "shortMessageMO-PP" },
7824 {0x60, "allFacsimileTransmissionServices" },
7825 {0x61, "facsimileGroup3AndAlterSpeech" },
7826 {0x62, "automaticFacsimileGroup3" },
7827 {0x63, "facsimileGroup4" },
7829 {0x70, "allDataTeleservices" },
7830 {0x80, "allTeleservices-ExeptSMS" },
7832 {0x90, "allVoiceGroupCallServices" },
7833 {0x91, "voiceGroupCall" },
7834 {0x92, "voiceBroadcastCall" },
7836 {0xd0, "allPLMN-specificTS" },
7837 {0xd1, "plmn-specificTS-1" },
7838 {0xd2, "plmn-specificTS-2" },
7839 {0xd3, "plmn-specificTS-3" },
7840 {0xd4, "plmn-specificTS-4" },
7841 {0xd5, "plmn-specificTS-5" },
7842 {0xd6, "plmn-specificTS-6" },
7843 {0xd7, "plmn-specificTS-7" },
7844 {0xd8, "plmn-specificTS-8" },
7845 {0xd9, "plmn-specificTS-9" },
7846 {0xda, "plmn-specificTS-A" },
7847 {0xdb, "plmn-specificTS-B" },
7848 {0xdc, "plmn-specificTS-C" },
7849 {0xdd, "plmn-specificTS-D" },
7850 {0xde, "plmn-specificTS-E" },
7851 {0xdf, "plmn-specificTS-F" },
7855 /*--- proto_register_gsm_map -------------------------------------------*/
7856 void proto_register_gsm_map(void) {
7858 /* List of fields */
7859 static hf_register_info hf[] = {
7860 { &hf_gsm_map_invokeCmd,
7861 { "invokeCmd", "gsm_map.invokeCmd",
7862 FT_UINT32, BASE_DEC, VALS(gsm_map_opr_code_strings), 0,
7863 "InvokePDU/invokeCmd", HFILL }},
7864 { &hf_gsm_map_invokeid,
7865 { "invokeid", "gsm_map.invokeid",
7866 FT_INT32, BASE_DEC, NULL, 0,
7867 "InvokeId/invokeid", HFILL }},
7868 { &hf_gsm_map_absent,
7869 { "absent", "gsm_map.absent",
7870 FT_NONE, BASE_NONE, NULL, 0,
7871 "InvokeId/absent", HFILL }},
7872 { &hf_gsm_map_invokeId,
7873 { "invokeId", "gsm_map.invokeId",
7874 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
7875 "InvokePDU/invokeId", HFILL }},
7876 { &hf_gsm_map_currentPassword,
7877 { "currentPassword", "gsm_map.currentPassword",
7878 FT_STRING, BASE_NONE, NULL, 0,
7880 { &hf_gsm_map_invoke,
7881 { "invoke", "gsm_map.invoke",
7882 FT_NONE, BASE_NONE, NULL, 0,
7883 "GSMMAPPDU/invoke", HFILL }},
7884 { &hf_gsm_map_returnResult,
7885 { "returnResult", "gsm_map.returnResult",
7886 FT_NONE, BASE_NONE, NULL, 0,
7887 "GSMMAPPDU/returnResult", HFILL }},
7888 { &hf_gsm_map_getPassword,
7889 { "Password", "gsm_map.password",
7890 FT_UINT8, BASE_DEC, VALS(GetPasswordArg_vals), 0,
7891 "Password", HFILL }},
7895 /*--- Included file: packet-gsm_map-hfarr.c ---*/
7897 { &hf_gsm_map_protocolId,
7898 { "protocolId", "gsm_map.protocolId",
7899 FT_UINT32, BASE_DEC, VALS(ProtocolId_vals), 0,
7900 "Bss-APDU/protocolId", HFILL }},
7901 { &hf_gsm_map_signalInfo,
7902 { "signalInfo", "gsm_map.signalInfo",
7903 FT_BYTES, BASE_HEX, NULL, 0,
7905 { &hf_gsm_map_extensionContainer,
7906 { "extensionContainer", "gsm_map.extensionContainer",
7907 FT_NONE, BASE_NONE, NULL, 0,
7909 { &hf_gsm_map_supportedCamelPhases,
7910 { "supportedCamelPhases", "gsm_map.supportedCamelPhases",
7911 FT_BYTES, BASE_HEX, NULL, 0,
7913 { &hf_gsm_map_solsaSupportIndicator,
7914 { "solsaSupportIndicator", "gsm_map.solsaSupportIndicator",
7915 FT_NONE, BASE_NONE, NULL, 0,
7918 { "imsi", "gsm_map.imsi",
7919 FT_BYTES, BASE_HEX, NULL, 0,
7921 { &hf_gsm_map_msc_Number,
7922 { "msc-Number", "gsm_map.msc_Number",
7923 FT_BYTES, BASE_HEX, NULL, 0,
7925 { &hf_gsm_map_vlr_Number,
7926 { "vlr-Number", "gsm_map.vlr_Number",
7927 FT_BYTES, BASE_HEX, NULL, 0,
7930 { "lmsi", "gsm_map.lmsi",
7931 FT_BYTES, BASE_HEX, NULL, 0,
7933 { &hf_gsm_map_vlr_Capability,
7934 { "vlr-Capability", "gsm_map.vlr_Capability",
7935 FT_NONE, BASE_NONE, NULL, 0,
7937 { &hf_gsm_map_hlr_Number,
7938 { "hlr-Number", "gsm_map.hlr_Number",
7939 FT_BYTES, BASE_HEX, NULL, 0,
7941 { &hf_gsm_map_PrivateExtensionList_item,
7942 { "Item", "gsm_map.PrivateExtensionList_item",
7943 FT_NONE, BASE_NONE, NULL, 0,
7944 "PrivateExtensionList/_item", HFILL }},
7945 { &hf_gsm_map_identity,
7946 { "identity", "gsm_map.identity",
7947 FT_UINT32, BASE_DEC, VALS(T_identity_vals), 0,
7948 "CancelLocationArg/identity", HFILL }},
7949 { &hf_gsm_map_imsi_WithLMSI,
7950 { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
7951 FT_NONE, BASE_NONE, NULL, 0,
7952 "CancelLocationArg/identity/imsi-WithLMSI", HFILL }},
7953 { &hf_gsm_map_cancellationType,
7954 { "cancellationType", "gsm_map.cancellationType",
7955 FT_UINT32, BASE_DEC, VALS(CancellationType_vals), 0,
7956 "CancelLocationArg/cancellationType", HFILL }},
7957 { &hf_gsm_map_sgsn_Number,
7958 { "sgsn-Number", "gsm_map.sgsn_Number",
7959 FT_BYTES, BASE_HEX, NULL, 0,
7961 { &hf_gsm_map_freezeTMSI,
7962 { "freezeTMSI", "gsm_map.freezeTMSI",
7963 FT_NONE, BASE_NONE, NULL, 0,
7964 "PurgeMS-Res/freezeTMSI", HFILL }},
7965 { &hf_gsm_map_freezeP_TMSI,
7966 { "freezeP-TMSI", "gsm_map.freezeP_TMSI",
7967 FT_NONE, BASE_NONE, NULL, 0,
7968 "PurgeMS-Res/freezeP-TMSI", HFILL }},
7969 { &hf_gsm_map_authenticationSetList,
7970 { "authenticationSetList", "gsm_map.authenticationSetList",
7971 FT_UINT32, BASE_DEC, NULL, 0,
7972 "SendIdentificationRes/authenticationSetList", HFILL }},
7973 { &hf_gsm_map_authenticationSetList_item,
7974 { "Item", "gsm_map.authenticationSetList_item",
7975 FT_NONE, BASE_NONE, NULL, 0,
7976 "SendIdentificationRes/authenticationSetList/_item", HFILL }},
7978 { "rand", "gsm_map.rand",
7979 FT_BYTES, BASE_HEX, NULL, 0,
7982 { "sres", "gsm_map.sres",
7983 FT_BYTES, BASE_HEX, NULL, 0,
7986 { "kc", "gsm_map.kc",
7987 FT_BYTES, BASE_HEX, NULL, 0,
7989 { &hf_gsm_map_targetCellId,
7990 { "targetCellId", "gsm_map.targetCellId",
7991 FT_BYTES, BASE_HEX, NULL, 0,
7993 { &hf_gsm_map_ho_NumberNotRequired,
7994 { "ho-NumberNotRequired", "gsm_map.ho_NumberNotRequired",
7995 FT_NONE, BASE_NONE, NULL, 0,
7996 "PrepareHO-Arg/ho-NumberNotRequired", HFILL }},
7997 { &hf_gsm_map_bss_APDU,
7998 { "bss-APDU", "gsm_map.bss_APDU",
7999 FT_NONE, BASE_NONE, NULL, 0,
8001 { &hf_gsm_map_handoverNumber,
8002 { "handoverNumber", "gsm_map.handoverNumber",
8003 FT_BYTES, BASE_HEX, NULL, 0,
8004 "PrepareHO-Res/handoverNumber", HFILL }},
8005 { &hf_gsm_map_targetMSC_Number,
8006 { "targetMSC-Number", "gsm_map.targetMSC_Number",
8007 FT_BYTES, BASE_HEX, NULL, 0,
8008 "PrepareSubsequentHO-Arg/targetMSC-Number", HFILL }},
8009 { &hf_gsm_map_numberOfRequestedVectors,
8010 { "numberOfRequestedVectors", "gsm_map.numberOfRequestedVectors",
8011 FT_UINT32, BASE_DEC, NULL, 0,
8012 "SendAuthenticationInfoArg/numberOfRequestedVectors", HFILL }},
8013 { &hf_gsm_map_segmentationProhibited,
8014 { "segmentationProhibited", "gsm_map.segmentationProhibited",
8015 FT_NONE, BASE_NONE, NULL, 0,
8016 "SendAuthenticationInfoArg/segmentationProhibited", HFILL }},
8017 { &hf_gsm_map_immediateResponsePreferred,
8018 { "immediateResponsePreferred", "gsm_map.immediateResponsePreferred",
8019 FT_NONE, BASE_NONE, NULL, 0,
8020 "SendAuthenticationInfoArg/immediateResponsePreferred", HFILL }},
8021 { &hf_gsm_map_re_synchronisationInfo,
8022 { "re-synchronisationInfo", "gsm_map.re_synchronisationInfo",
8023 FT_NONE, BASE_NONE, NULL, 0,
8024 "SendAuthenticationInfoArg/re-synchronisationInfo", HFILL }},
8026 { "auts", "gsm_map.auts",
8027 FT_BYTES, BASE_HEX, NULL, 0,
8028 "SendAuthenticationInfoArg/re-synchronisationInfo/auts", HFILL }},
8029 { &hf_gsm_map_requestingNodeType,
8030 { "requestingNodeType", "gsm_map.requestingNodeType",
8031 FT_UINT32, BASE_DEC, VALS(T_requestingNodeType_vals), 0,
8032 "SendAuthenticationInfoArg/requestingNodeType", HFILL }},
8033 { &hf_gsm_map_requestingPLMN_Id,
8034 { "requestingPLMN-Id", "gsm_map.requestingPLMN_Id",
8035 FT_BYTES, BASE_HEX, NULL, 0,
8036 "SendAuthenticationInfoArg/requestingPLMN-Id", HFILL }},
8037 { &hf_gsm_map_SendAuthenticationInfoRes_item,
8038 { "Item", "gsm_map.SendAuthenticationInfoRes_item",
8039 FT_NONE, BASE_NONE, NULL, 0,
8040 "SendAuthenticationInfoRes/_item", HFILL }},
8041 { &hf_gsm_map_bearerService,
8042 { "bearerService", "gsm_map.bearerService",
8043 FT_BYTES, BASE_HEX, NULL, 0,
8044 "BasicService/bearerService", HFILL }},
8045 { &hf_gsm_map_teleservice,
8046 { "teleservice", "gsm_map.teleservice",
8047 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
8049 { &hf_gsm_map_BasicServiceGroupList_item,
8050 { "Item", "gsm_map.BasicServiceGroupList_item",
8051 FT_UINT32, BASE_DEC, VALS(BasicService_vals), 0,
8052 "BasicServiceGroupList/_item", HFILL }},
8053 { &hf_gsm_map_bcsmTriggerDetectionPoint,
8054 { "bcsmTriggerDetectionPoint", "gsm_map.bcsmTriggerDetectionPoint",
8055 FT_UINT32, BASE_DEC, VALS(BcsmTriggerDetectionPoint_vals), 0,
8056 "BcsmCamelTDPData/bcsmTriggerDetectionPoint", HFILL }},
8057 { &hf_gsm_map_serviceKey,
8058 { "serviceKey", "gsm_map.serviceKey",
8059 FT_UINT32, BASE_DEC, NULL, 0,
8060 "BcsmCamelTDPData/serviceKey", HFILL }},
8061 { &hf_gsm_map_gsmSCFAddress,
8062 { "gsmSCFAddress", "gsm_map.gsmSCFAddress",
8063 FT_BYTES, BASE_HEX, NULL, 0,
8064 "BcsmCamelTDPData/gsmSCFAddress", HFILL }},
8065 { &hf_gsm_map_defaultCallHandling,
8066 { "defaultCallHandling", "gsm_map.defaultCallHandling",
8067 FT_UINT32, BASE_DEC, VALS(DefaultCallHandling_vals), 0,
8068 "BcsmCamelTDPData/defaultCallHandling", HFILL }},
8069 { &hf_gsm_map_BcsmCamelTDPDataList_item,
8070 { "Item", "gsm_map.BcsmCamelTDPDataList_item",
8071 FT_NONE, BASE_NONE, NULL, 0,
8072 "BcsmCamelTDPDataList/_item", HFILL }},
8073 { &hf_gsm_map_o_BcsmCamelTDPDataList,
8074 { "o-BcsmCamelTDPDataList", "gsm_map.o_BcsmCamelTDPDataList",
8075 FT_UINT32, BASE_DEC, NULL, 0,
8076 "O-CSI/o-BcsmCamelTDPDataList", HFILL }},
8077 { &hf_gsm_map_camelCapabilityHandling,
8078 { "camelCapabilityHandling", "gsm_map.camelCapabilityHandling",
8079 FT_UINT32, BASE_DEC, NULL, 0,
8081 { &hf_gsm_map_msisdn,
8082 { "msisdn", "gsm_map.msisdn",
8083 FT_BYTES, BASE_HEX, NULL, 0,
8085 { &hf_gsm_map_category,
8086 { "category", "gsm_map.category",
8087 FT_BYTES, BASE_HEX, NULL, 0,
8088 "InsertSubscriberDataArg/category", HFILL }},
8089 { &hf_gsm_map_subscriberStatus,
8090 { "subscriberStatus", "gsm_map.subscriberStatus",
8091 FT_UINT32, BASE_DEC, VALS(SubscriberStatus_vals), 0,
8092 "InsertSubscriberDataArg/subscriberStatus", HFILL }},
8093 { &hf_gsm_map_bearerServiceList,
8094 { "bearerServiceList", "gsm_map.bearerServiceList",
8095 FT_UINT32, BASE_DEC, NULL, 0,
8097 { &hf_gsm_map_bearerServiceList_item,
8098 { "Item", "gsm_map.bearerServiceList_item",
8099 FT_BYTES, BASE_HEX, NULL, 0,
8101 { &hf_gsm_map_teleserviceList,
8102 { "teleserviceList", "gsm_map.teleserviceList",
8103 FT_UINT32, BASE_DEC, NULL, 0,
8105 { &hf_gsm_map_teleserviceList_item,
8106 { "Item", "gsm_map.teleserviceList_item",
8107 FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
8109 { &hf_gsm_map_provisionedSS,
8110 { "provisionedSS", "gsm_map.provisionedSS",
8111 FT_UINT32, BASE_DEC, NULL, 0,
8112 "InsertSubscriberDataArg/provisionedSS", HFILL }},
8113 { &hf_gsm_map_provisionedSS_item,
8114 { "Item", "gsm_map.provisionedSS_item",
8115 FT_UINT32, BASE_DEC, VALS(T_provisionedSS_item_vals), 0,
8116 "InsertSubscriberDataArg/provisionedSS/_item", HFILL }},
8117 { &hf_gsm_map_forwardingInfo,
8118 { "forwardingInfo", "gsm_map.forwardingInfo",
8119 FT_NONE, BASE_NONE, NULL, 0,
8121 { &hf_gsm_map_callBarringInfo,
8122 { "callBarringInfo", "gsm_map.callBarringInfo",
8123 FT_NONE, BASE_NONE, NULL, 0,
8125 { &hf_gsm_map_cug_Info,
8126 { "cug-Info", "gsm_map.cug_Info",
8127 FT_NONE, BASE_NONE, NULL, 0,
8128 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info", HFILL }},
8129 { &hf_gsm_map_cug_SubscriptionList,
8130 { "cug-SubscriptionList", "gsm_map.cug_SubscriptionList",
8131 FT_UINT32, BASE_DEC, NULL, 0,
8132 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList", HFILL }},
8133 { &hf_gsm_map_cug_SubscriptionList_item,
8134 { "Item", "gsm_map.cug_SubscriptionList_item",
8135 FT_NONE, BASE_NONE, NULL, 0,
8136 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item", HFILL }},
8137 { &hf_gsm_map_cug_Index,
8138 { "cug-Index", "gsm_map.cug_Index",
8139 FT_UINT32, BASE_DEC, NULL, 0,
8140 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/cug-Index", HFILL }},
8141 { &hf_gsm_map_cug_Interlock,
8142 { "cug-Interlock", "gsm_map.cug_Interlock",
8143 FT_BYTES, BASE_HEX, NULL, 0,
8145 { &hf_gsm_map_intraCUG_Options,
8146 { "intraCUG-Options", "gsm_map.intraCUG_Options",
8147 FT_UINT32, BASE_DEC, VALS(IntraCUG_Options_vals), 0,
8148 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/intraCUG-Options", HFILL }},
8149 { &hf_gsm_map_basicServiceGroupList,
8150 { "basicServiceGroupList", "gsm_map.basicServiceGroupList",
8151 FT_UINT32, BASE_DEC, NULL, 0,
8153 { &hf_gsm_map_cug_FeatureList,
8154 { "cug-FeatureList", "gsm_map.cug_FeatureList",
8155 FT_UINT32, BASE_DEC, NULL, 0,
8156 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList", HFILL }},
8157 { &hf_gsm_map_cug_FeatureList_item,
8158 { "Item", "gsm_map.cug_FeatureList_item",
8159 FT_NONE, BASE_NONE, NULL, 0,
8160 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item", HFILL }},
8161 { &hf_gsm_map_basicService,
8162 { "basicService", "gsm_map.basicService",
8163 FT_UINT32, BASE_DEC, VALS(BasicService_vals), 0,
8165 { &hf_gsm_map_preferentialCUG_Indicator,
8166 { "preferentialCUG-Indicator", "gsm_map.preferentialCUG_Indicator",
8167 FT_UINT32, BASE_DEC, NULL, 0,
8168 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/preferentialCUG-Indicator", HFILL }},
8169 { &hf_gsm_map_interCUG_Restrictions,
8170 { "interCUG-Restrictions", "gsm_map.interCUG_Restrictions",
8171 FT_BYTES, BASE_HEX, NULL, 0,
8172 "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/interCUG-Restrictions", HFILL }},
8173 { &hf_gsm_map_ss_Data2,
8174 { "ss-Data2", "gsm_map.ss_Data2",
8175 FT_NONE, BASE_NONE, NULL, 0,
8176 "InsertSubscriberDataArg/provisionedSS/_item/ss-Data2", HFILL }},
8177 { &hf_gsm_map_ss_Code,
8178 { "ss-Code", "gsm_map.ss_Code",
8179 FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
8181 { &hf_gsm_map_ss_Status,
8182 { "ss-Status", "gsm_map.ss_Status",
8183 FT_BYTES, BASE_HEX, NULL, 0,
8185 { &hf_gsm_map_ss_SubscriptionOption,
8186 { "ss-SubscriptionOption", "gsm_map.ss_SubscriptionOption",
8187 FT_UINT32, BASE_DEC, VALS(Ss_SubscriptionOption_vals), 0,
8189 { &hf_gsm_map_emlpp_Info,
8190 { "emlpp-Info", "gsm_map.emlpp_Info",
8191 FT_NONE, BASE_NONE, NULL, 0,
8192 "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info", HFILL }},
8193 { &hf_gsm_map_maximumentitledPriority,
8194 { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
8195 FT_UINT32, BASE_DEC, NULL, 0,
8196 "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info/maximumentitledPriority", HFILL }},
8197 { &hf_gsm_map_defaultPriority,
8198 { "defaultPriority", "gsm_map.defaultPriority",
8199 FT_UINT32, BASE_DEC, NULL, 0,
8201 { &hf_gsm_map_odb_Data,
8202 { "odb-Data", "gsm_map.odb_Data",
8203 FT_NONE, BASE_NONE, NULL, 0,
8204 "InsertSubscriberDataArg/odb-Data", HFILL }},
8205 { &hf_gsm_map_odb_GeneralData,
8206 { "odb-GeneralData", "gsm_map.odb_GeneralData",
8207 FT_BYTES, BASE_HEX, NULL, 0,
8209 { &hf_gsm_map_odb_HPLMN_Data,
8210 { "odb-HPLMN-Data", "gsm_map.odb_HPLMN_Data",
8211 FT_BYTES, BASE_HEX, NULL, 0,
8212 "InsertSubscriberDataArg/odb-Data/odb-HPLMN-Data", HFILL }},
8213 { &hf_gsm_map_roamingRestrictionDueToUnsupportedFeature,
8214 { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.roamingRestrictionDueToUnsupportedFeature",
8215 FT_NONE, BASE_NONE, NULL, 0,
8217 { &hf_gsm_map_regionalSubscriptionData,
8218 { "regionalSubscriptionData", "gsm_map.regionalSubscriptionData",
8219 FT_UINT32, BASE_DEC, NULL, 0,
8220 "InsertSubscriberDataArg/regionalSubscriptionData", HFILL }},
8221 { &hf_gsm_map_regionalSubscriptionData_item,
8222 { "Item", "gsm_map.regionalSubscriptionData_item",
8223 FT_BYTES, BASE_HEX, NULL, 0,
8224 "InsertSubscriberDataArg/regionalSubscriptionData/_item", HFILL }},
8225 { &hf_gsm_map_vbsSubscriptionData,
8226 { "vbsSubscriptionData", "gsm_map.vbsSubscriptionData",
8227 FT_UINT32, BASE_DEC, NULL, 0,
8228 "InsertSubscriberDataArg/vbsSubscriptionData", HFILL }},
8229 { &hf_gsm_map_vbsSubscriptionData_item,
8230 { "Item", "gsm_map.vbsSubscriptionData_item",
8231 FT_NONE, BASE_NONE, NULL, 0,
8232 "InsertSubscriberDataArg/vbsSubscriptionData/_item", HFILL }},
8233 { &hf_gsm_map_groupid,
8234 { "groupid", "gsm_map.groupid",
8235 FT_BYTES, BASE_HEX, NULL, 0,
8236 "InsertSubscriberDataArg/vbsSubscriptionData/_item/groupid", HFILL }},
8237 { &hf_gsm_map_broadcastInitEntitlement,
8238 { "broadcastInitEntitlement", "gsm_map.broadcastInitEntitlement",
8239 FT_NONE, BASE_NONE, NULL, 0,
8240 "InsertSubscriberDataArg/vbsSubscriptionData/_item/broadcastInitEntitlement", HFILL }},
8241 { &hf_gsm_map_vgcsSubscriptionData,
8242 { "vgcsSubscriptionData", "gsm_map.vgcsSubscriptionData",
8243 FT_UINT32, BASE_DEC, NULL, 0,
8244 "InsertSubscriberDataArg/vgcsSubscriptionData", HFILL }},
8245 { &hf_gsm_map_vgcsSubscriptionData_item,
8246 { "Item", "gsm_map.vgcsSubscriptionData_item",
8247 FT_NONE, BASE_NONE, NULL, 0,
8248 "InsertSubscriberDataArg/vgcsSubscriptionData/_item", HFILL }},
8249 { &hf_gsm_map_groupId,
8250 { "groupId", "gsm_map.groupId",
8251 FT_BYTES, BASE_HEX, NULL, 0,
8252 "InsertSubscriberDataArg/vgcsSubscriptionData/_item/groupId", HFILL }},
8253 { &hf_gsm_map_vlrCamelSubscriptionInfo,
8254 { "vlrCamelSubscriptionInfo", "gsm_map.vlrCamelSubscriptionInfo",
8255 FT_NONE, BASE_NONE, NULL, 0,
8256 "InsertSubscriberDataArg/vlrCamelSubscriptionInfo", HFILL }},
8257 { &hf_gsm_map_o_CSI,
8258 { "o-CSI", "gsm_map.o_CSI",
8259 FT_NONE, BASE_NONE, NULL, 0,
8261 { &hf_gsm_map_ss_CSI,
8262 { "ss-CSI", "gsm_map.ss_CSI",
8263 FT_NONE, BASE_NONE, NULL, 0,
8264 "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI", HFILL }},
8265 { &hf_gsm_map_ss_CamelData,
8266 { "ss-CamelData", "gsm_map.ss_CamelData",
8267 FT_NONE, BASE_NONE, NULL, 0,
8268 "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI/ss-CamelData", HFILL }},
8269 { &hf_gsm_map_ss_EventList,
8270 { "ss-EventList", "gsm_map.ss_EventList",
8271 FT_UINT32, BASE_DEC, NULL, 0,
8272 "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI/ss-CamelData/ss-EventList", HFILL }},
8273 { &hf_gsm_map_ss_EventList_item,
8274 { "Item", "gsm_map.ss_EventList_item",
8275 FT_BYTES, BASE_HEX, NULL, 0,
8276 "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI/ss-CamelData/ss-EventList/_item", HFILL }},
8277 { &hf_gsm_map_gsmSCF_Address,
8278 { "gsmSCF-Address", "gsm_map.gsmSCF_Address",
8279 FT_BYTES, BASE_HEX, NULL, 0,
8281 { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList,
8282 { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList",
8283 FT_UINT32, BASE_DEC, NULL, 0,
8285 { &hf_gsm_map_tif_CSI,
8286 { "tif-CSI", "gsm_map.tif_CSI",
8287 FT_NONE, BASE_NONE, NULL, 0,
8288 "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/tif-CSI", HFILL }},
8289 { &hf_gsm_map_naea_PreferredCI,
8290 { "naea-PreferredCI", "gsm_map.naea_PreferredCI",
8291 FT_NONE, BASE_NONE, NULL, 0,
8293 { &hf_gsm_map_gprsSubscriptionData,
8294 { "gprsSubscriptionData", "gsm_map.gprsSubscriptionData",
8295 FT_NONE, BASE_NONE, NULL, 0,
8296 "InsertSubscriberDataArg/gprsSubscriptionData", HFILL }},
8297 { &hf_gsm_map_completeDataListIncluded,
8298 { "completeDataListIncluded", "gsm_map.completeDataListIncluded",
8299 FT_NONE, BASE_NONE, NULL, 0,
8301 { &hf_gsm_map_gprsDataList,
8302 { "gprsDataList", "gsm_map.gprsDataList",
8303 FT_UINT32, BASE_DEC, NULL, 0,
8304 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList", HFILL }},
8305 { &hf_gsm_map_gprsDataList_item,
8306 { "Item", "gsm_map.gprsDataList_item",
8307 FT_NONE, BASE_NONE, NULL, 0,
8308 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item", HFILL }},
8309 { &hf_gsm_map_pdp_ContextId,
8310 { "pdp-ContextId", "gsm_map.pdp_ContextId",
8311 FT_UINT32, BASE_DEC, NULL, 0,
8312 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-ContextId", HFILL }},
8313 { &hf_gsm_map_pdp_Type,
8314 { "pdp-Type", "gsm_map.pdp_Type",
8315 FT_BYTES, BASE_HEX, NULL, 0,
8316 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-Type", HFILL }},
8317 { &hf_gsm_map_pdp_Address,
8318 { "pdp-Address", "gsm_map.pdp_Address",
8319 FT_BYTES, BASE_HEX, NULL, 0,
8320 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-Address", HFILL }},
8321 { &hf_gsm_map_qos_Subscribed,
8322 { "qos-Subscribed", "gsm_map.qos_Subscribed",
8323 FT_BYTES, BASE_HEX, NULL, 0,
8324 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/qos-Subscribed", HFILL }},
8325 { &hf_gsm_map_vplmnAddressAllowed,
8326 { "vplmnAddressAllowed", "gsm_map.vplmnAddressAllowed",
8327 FT_NONE, BASE_NONE, NULL, 0,
8328 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/vplmnAddressAllowed", HFILL }},
8330 { "apn", "gsm_map.apn",
8331 FT_BYTES, BASE_HEX, NULL, 0,
8332 "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/apn", HFILL }},
8333 { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature,
8334 { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsupportedFeature",
8335 FT_NONE, BASE_NONE, NULL, 0,
8336 "InsertSubscriberDataArg/roamingRestrictedInSgsnDueToUnsupportedFeature", HFILL }},
8337 { &hf_gsm_map_networkAccessMode,
8338 { "networkAccessMode", "gsm_map.networkAccessMode",
8339 FT_UINT32, BASE_DEC, VALS(T_networkAccessMode_vals), 0,
8340 "InsertSubscriberDataArg/networkAccessMode", HFILL }},
8341 { &hf_gsm_map_lsaInformation,
8342 { "lsaInformation", "gsm_map.lsaInformation",
8343 FT_NONE, BASE_NONE, NULL, 0,
8344 "InsertSubscriberDataArg/lsaInformation", HFILL }},
8345 { &hf_gsm_map_lsaOnlyAccessIndicator,
8346 { "lsaOnlyAccessIndicator", "gsm_map.lsaOnlyAccessIndicator",
8347 FT_UINT32, BASE_DEC, VALS(T_lsaOnlyAccessIndicator_vals), 0,
8348 "InsertSubscriberDataArg/lsaInformation/lsaOnlyAccessIndicator", HFILL }},
8349 { &hf_gsm_map_lsaDataList,
8350 { "lsaDataList", "gsm_map.lsaDataList",
8351 FT_UINT32, BASE_DEC, NULL, 0,
8352 "InsertSubscriberDataArg/lsaInformation/lsaDataList", HFILL }},
8353 { &hf_gsm_map_lsaDataList_item,
8354 { "Item", "gsm_map.lsaDataList_item",
8355 FT_NONE, BASE_NONE, NULL, 0,
8356 "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item", HFILL }},
8357 { &hf_gsm_map_lsaIdentity,
8358 { "lsaIdentity", "gsm_map.lsaIdentity",
8359 FT_BYTES, BASE_HEX, NULL, 0,
8360 "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaIdentity", HFILL }},
8361 { &hf_gsm_map_lsaAttributes,
8362 { "lsaAttributes", "gsm_map.lsaAttributes",
8363 FT_BYTES, BASE_HEX, NULL, 0,
8364 "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaAttributes", HFILL }},
8365 { &hf_gsm_map_lsaActiveModeIndicator,
8366 { "lsaActiveModeIndicator", "gsm_map.lsaActiveModeIndicator",
8367 FT_NONE, BASE_NONE, NULL, 0,
8368 "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaActiveModeIndicator", HFILL }},
8369 { &hf_gsm_map_lmu_Indicator,
8370 { "lmu-Indicator", "gsm_map.lmu_Indicator",
8371 FT_NONE, BASE_NONE, NULL, 0,
8372 "InsertSubscriberDataArg/lmu-Indicator", HFILL }},
8373 { &hf_gsm_map_lcsInformation,
8374 { "lcsInformation", "gsm_map.lcsInformation",
8375 FT_NONE, BASE_NONE, NULL, 0,
8376 "InsertSubscriberDataArg/lcsInformation", HFILL }},
8377 { &hf_gsm_map_gmlc_List,
8378 { "gmlc-List", "gsm_map.gmlc_List",
8379 FT_UINT32, BASE_DEC, NULL, 0,
8380 "InsertSubscriberDataArg/lcsInformation/gmlc-List", HFILL }},
8381 { &hf_gsm_map_gmlc_List_item,
8382 { "Item", "gsm_map.gmlc_List_item",
8383 FT_BYTES, BASE_HEX, NULL, 0,
8384 "InsertSubscriberDataArg/lcsInformation/gmlc-List/_item", HFILL }},
8385 { &hf_gsm_map_lcs_PrivacyExceptionList,
8386 { "lcs-PrivacyExceptionList", "gsm_map.lcs_PrivacyExceptionList",
8387 FT_UINT32, BASE_DEC, NULL, 0,
8388 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList", HFILL }},
8389 { &hf_gsm_map_lcs_PrivacyExceptionList_item,
8390 { "Item", "gsm_map.lcs_PrivacyExceptionList_item",
8391 FT_NONE, BASE_NONE, NULL, 0,
8392 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item", HFILL }},
8393 { &hf_gsm_map_notificationToMSUser,
8394 { "notificationToMSUser", "gsm_map.notificationToMSUser",
8395 FT_UINT32, BASE_DEC, VALS(NotificationToMSUser_vals), 0,
8397 { &hf_gsm_map_externalClientList,
8398 { "externalClientList", "gsm_map.externalClientList",
8399 FT_UINT32, BASE_DEC, NULL, 0,
8400 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList", HFILL }},
8401 { &hf_gsm_map_externalClientList_item,
8402 { "Item", "gsm_map.externalClientList_item",
8403 FT_NONE, BASE_NONE, NULL, 0,
8404 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item", HFILL }},
8405 { &hf_gsm_map_clientIdentity,
8406 { "clientIdentity", "gsm_map.clientIdentity",
8407 FT_NONE, BASE_NONE, NULL, 0,
8408 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/clientIdentity", HFILL }},
8409 { &hf_gsm_map_externalAddress,
8410 { "externalAddress", "gsm_map.externalAddress",
8411 FT_BYTES, BASE_HEX, NULL, 0,
8413 { &hf_gsm_map_gmlc_Restriction,
8414 { "gmlc-Restriction", "gsm_map.gmlc_Restriction",
8415 FT_UINT32, BASE_DEC, VALS(T_gmlc_Restriction_vals), 0,
8416 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/gmlc-Restriction", HFILL }},
8417 { &hf_gsm_map_plmnClientList,
8418 { "plmnClientList", "gsm_map.plmnClientList",
8419 FT_UINT32, BASE_DEC, NULL, 0,
8420 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList", HFILL }},
8421 { &hf_gsm_map_plmnClientList_item,
8422 { "Item", "gsm_map.plmnClientList_item",
8423 FT_UINT32, BASE_DEC, VALS(T_plmnClientList_item_vals), 0,
8424 "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList/_item", HFILL }},
8425 { &hf_gsm_map_molr_List,
8426 { "molr-List", "gsm_map.molr_List",
8427 FT_UINT32, BASE_DEC, NULL, 0,
8428 "InsertSubscriberDataArg/lcsInformation/molr-List", HFILL }},
8429 { &hf_gsm_map_molr_List_item,
8430 { "Item", "gsm_map.molr_List_item",
8431 FT_NONE, BASE_NONE, NULL, 0,
8432 "InsertSubscriberDataArg/lcsInformation/molr-List/_item", HFILL }},
8433 { &hf_gsm_map_ss_List,
8434 { "ss-List", "gsm_map.ss_List",
8435 FT_UINT32, BASE_DEC, NULL, 0,
8437 { &hf_gsm_map_ss_List_item,
8438 { "Item", "gsm_map.ss_List_item",
8439 FT_BYTES, BASE_HEX, NULL, 0,
8441 { &hf_gsm_map_regionalSubscriptionResponse,
8442 { "regionalSubscriptionResponse", "gsm_map.regionalSubscriptionResponse",
8443 FT_UINT32, BASE_DEC, VALS(RegionalSubscriptionResponse_vals), 0,
8445 { &hf_gsm_map_callBarringFeatureList,
8446 { "callBarringFeatureList", "gsm_map.callBarringFeatureList",
8447 FT_UINT32, BASE_DEC, NULL, 0,
8448 "CallBarringInfo/callBarringFeatureList", HFILL }},
8449 { &hf_gsm_map_callBarringFeatureList_item,
8450 { "Item", "gsm_map.callBarringFeatureList_item",
8451 FT_NONE, BASE_NONE, NULL, 0,
8452 "CallBarringInfo/callBarringFeatureList/_item", HFILL }},
8453 { &hf_gsm_map_forwardedToNumber,
8454 { "forwardedToNumber", "gsm_map.forwardedToNumber",
8455 FT_BYTES, BASE_HEX, NULL, 0,
8457 { &hf_gsm_map_forwardedToSubaddress,
8458 { "forwardedToSubaddress", "gsm_map.forwardedToSubaddress",
8459 FT_BYTES, BASE_HEX, NULL, 0,
8461 { &hf_gsm_map_forwardingOptions,
8462 { "forwardingOptions", "gsm_map.forwardingOptions",
8463 FT_BYTES, BASE_HEX, NULL, 0,
8465 { &hf_gsm_map_noReplyConditionTime,
8466 { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
8467 FT_INT32, BASE_DEC, NULL, 0,
8469 { &hf_gsm_map_matchType,
8470 { "matchType", "gsm_map.matchType",
8471 FT_UINT32, BASE_DEC, VALS(MatchType_vals), 0,
8472 "DestinationNumberCriteria/matchType", HFILL }},
8473 { &hf_gsm_map_destinationNumberList,
8474 { "destinationNumberList", "gsm_map.destinationNumberList",
8475 FT_UINT32, BASE_DEC, NULL, 0,
8476 "DestinationNumberCriteria/destinationNumberList", HFILL }},
8477 { &hf_gsm_map_destinationNumberList_item,
8478 { "Item", "gsm_map.destinationNumberList_item",
8479 FT_BYTES, BASE_HEX, NULL, 0,
8480 "DestinationNumberCriteria/destinationNumberList/_item", HFILL }},
8481 { &hf_gsm_map_destinationNumberLengthList,
8482 { "destinationNumberLengthList", "gsm_map.destinationNumberLengthList",
8483 FT_UINT32, BASE_DEC, NULL, 0,
8484 "DestinationNumberCriteria/destinationNumberLengthList", HFILL }},
8485 { &hf_gsm_map_destinationNumberLengthList_item,
8486 { "Item", "gsm_map.destinationNumberLengthList_item",
8487 FT_UINT32, BASE_DEC, NULL, 0,
8488 "DestinationNumberCriteria/destinationNumberLengthList/_item", HFILL }},
8489 { &hf_gsm_map_forwardingFeatureList,
8490 { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
8491 FT_UINT32, BASE_DEC, NULL, 0,
8493 { &hf_gsm_map_forwardingFeatureList_item,
8494 { "Item", "gsm_map.forwardingFeatureList_item",
8495 FT_NONE, BASE_NONE, NULL, 0,
8497 { &hf_gsm_map_naea_PreferredCIC,
8498 { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
8499 FT_BYTES, BASE_HEX, NULL, 0,
8500 "Naea-PreferredCI/naea-PreferredCIC", HFILL }},
8501 { &hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
8502 { "Item", "gsm_map.O_BcsmCamelTDP_CriteriaList_item",
8503 FT_NONE, BASE_NONE, NULL, 0,
8504 "O-BcsmCamelTDP-CriteriaList/_item", HFILL }},
8505 { &hf_gsm_map_o_BcsmTriggerDetectionPoint,
8506 { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
8507 FT_UINT32, BASE_DEC, VALS(BcsmTriggerDetectionPoint_vals), 0,
8508 "O-BcsmCamelTDP-CriteriaList/_item/o-BcsmTriggerDetectionPoint", HFILL }},
8509 { &hf_gsm_map_destinationNumberCriteria,
8510 { "destinationNumberCriteria", "gsm_map.destinationNumberCriteria",
8511 FT_NONE, BASE_NONE, NULL, 0,
8512 "O-BcsmCamelTDP-CriteriaList/_item/destinationNumberCriteria", HFILL }},
8513 { &hf_gsm_map_basicServiceCriteria,
8514 { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
8515 FT_UINT32, BASE_DEC, NULL, 0,
8516 "O-BcsmCamelTDP-CriteriaList/_item/basicServiceCriteria", HFILL }},
8517 { &hf_gsm_map_callTypeCriteria,
8518 { "callTypeCriteria", "gsm_map.callTypeCriteria",
8519 FT_UINT32, BASE_DEC, VALS(CallTypeCriteria_vals), 0,
8520 "O-BcsmCamelTDP-CriteriaList/_item/callTypeCriteria", HFILL }},
8521 { &hf_gsm_map_cliRestrictionOption,
8522 { "cliRestrictionOption", "gsm_map.cliRestrictionOption",
8523 FT_UINT32, BASE_DEC, VALS(CliRestrictionOption_vals), 0,
8525 { &hf_gsm_map_overrideCategory,
8526 { "overrideCategory", "gsm_map.overrideCategory",
8527 FT_UINT32, BASE_DEC, VALS(OverrideCategory_vals), 0,
8528 "Ss-SubscriptionOption/overrideCategory", HFILL }},
8529 { &hf_gsm_map_basicServiceList,
8530 { "basicServiceList", "gsm_map.basicServiceList",
8531 FT_UINT32, BASE_DEC, NULL, 0,
8532 "DeleteSubscriberDataArg/basicServiceList", HFILL }},
8533 { &hf_gsm_map_regionalSubscriptionIdentifier,
8534 { "regionalSubscriptionIdentifier", "gsm_map.regionalSubscriptionIdentifier",
8535 FT_BYTES, BASE_HEX, NULL, 0,
8536 "DeleteSubscriberDataArg/regionalSubscriptionIdentifier", HFILL }},
8537 { &hf_gsm_map_vbsGroupIndication,
8538 { "vbsGroupIndication", "gsm_map.vbsGroupIndication",
8539 FT_NONE, BASE_NONE, NULL, 0,
8540 "DeleteSubscriberDataArg/vbsGroupIndication", HFILL }},
8541 { &hf_gsm_map_vgcsGroupIndication,
8542 { "vgcsGroupIndication", "gsm_map.vgcsGroupIndication",
8543 FT_NONE, BASE_NONE, NULL, 0,
8544 "DeleteSubscriberDataArg/vgcsGroupIndication", HFILL }},
8545 { &hf_gsm_map_camelSubscriptionInfoWithdraw,
8546 { "camelSubscriptionInfoWithdraw", "gsm_map.camelSubscriptionInfoWithdraw",
8547 FT_NONE, BASE_NONE, NULL, 0,
8548 "DeleteSubscriberDataArg/camelSubscriptionInfoWithdraw", HFILL }},
8549 { &hf_gsm_map_gprsSubscriptionDataWithdraw,
8550 { "gprsSubscriptionDataWithdraw", "gsm_map.gprsSubscriptionDataWithdraw",
8551 FT_UINT32, BASE_DEC, VALS(T_gprsSubscriptionDataWithdraw_vals), 0,
8552 "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw", HFILL }},
8553 { &hf_gsm_map_allGPRSData,
8554 { "allGPRSData", "gsm_map.allGPRSData",
8555 FT_NONE, BASE_NONE, NULL, 0,
8556 "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/allGPRSData", HFILL }},
8557 { &hf_gsm_map_contextIdList,
8558 { "contextIdList", "gsm_map.contextIdList",
8559 FT_UINT32, BASE_DEC, NULL, 0,
8560 "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList", HFILL }},
8561 { &hf_gsm_map_contextIdList_item,
8562 { "Item", "gsm_map.contextIdList_item",
8563 FT_UINT32, BASE_DEC, NULL, 0,
8564 "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList/_item", HFILL }},
8565 { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature,
8566 { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsuppportedFeature",
8567 FT_NONE, BASE_NONE, NULL, 0,
8568 "DeleteSubscriberDataArg/roamingRestrictedInSgsnDueToUnsuppportedFeature", HFILL }},
8569 { &hf_gsm_map_lsaInformationWithdraw,
8570 { "lsaInformationWithdraw", "gsm_map.lsaInformationWithdraw",
8571 FT_UINT32, BASE_DEC, VALS(T_lsaInformationWithdraw_vals), 0,
8572 "DeleteSubscriberDataArg/lsaInformationWithdraw", HFILL }},
8573 { &hf_gsm_map_allLSAData,
8574 { "allLSAData", "gsm_map.allLSAData",
8575 FT_NONE, BASE_NONE, NULL, 0,
8576 "DeleteSubscriberDataArg/lsaInformationWithdraw/allLSAData", HFILL }},
8577 { &hf_gsm_map_lsaIdentityList,
8578 { "lsaIdentityList", "gsm_map.lsaIdentityList",
8579 FT_UINT32, BASE_DEC, NULL, 0,
8580 "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList", HFILL }},
8581 { &hf_gsm_map_lsaIdentityList_item,
8582 { "Item", "gsm_map.lsaIdentityList_item",
8583 FT_BYTES, BASE_HEX, NULL, 0,
8584 "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList/_item", HFILL }},
8585 { &hf_gsm_map_gmlc_ListWithdraw,
8586 { "gmlc-ListWithdraw", "gsm_map.gmlc_ListWithdraw",
8587 FT_NONE, BASE_NONE, NULL, 0,
8588 "DeleteSubscriberDataArg/gmlc-ListWithdraw", HFILL }},
8589 { &hf_gsm_map_hlr_List,
8590 { "hlr-List", "gsm_map.hlr_List",
8591 FT_UINT32, BASE_DEC, NULL, 0,
8592 "ResetArg/hlr-List", HFILL }},
8593 { &hf_gsm_map_hlr_List_item,
8594 { "Item", "gsm_map.hlr_List_item",
8595 FT_BYTES, BASE_HEX, NULL, 0,
8596 "ResetArg/hlr-List/_item", HFILL }},
8597 { &hf_gsm_map_msNotReachable,
8598 { "msNotReachable", "gsm_map.msNotReachable",
8599 FT_NONE, BASE_NONE, NULL, 0,
8600 "RestoreDataRes/msNotReachable", HFILL }},
8601 { &hf_gsm_map_traceReference,
8602 { "traceReference", "gsm_map.traceReference",
8603 FT_BYTES, BASE_HEX, NULL, 0,
8605 { &hf_gsm_map_traceType,
8606 { "traceType", "gsm_map.traceType",
8607 FT_UINT32, BASE_DEC, NULL, 0,
8608 "ActivateTraceModeArg/traceType", HFILL }},
8609 { &hf_gsm_map_omc_Id,
8610 { "omc-Id", "gsm_map.omc_Id",
8611 FT_BYTES, BASE_HEX, NULL, 0,
8612 "ActivateTraceModeArg/omc-Id", HFILL }},
8613 { &hf_gsm_map_cug_CheckInfo,
8614 { "cug-CheckInfo", "gsm_map.cug_CheckInfo",
8615 FT_NONE, BASE_NONE, NULL, 0,
8617 { &hf_gsm_map_numberOfForwarding,
8618 { "numberOfForwarding", "gsm_map.numberOfForwarding",
8619 FT_UINT32, BASE_DEC, NULL, 0,
8620 "SendRoutingInfoArg/numberOfForwarding", HFILL }},
8621 { &hf_gsm_map_interrogationType,
8622 { "interrogationType", "gsm_map.interrogationType",
8623 FT_UINT32, BASE_DEC, VALS(T_interrogationType_vals), 0,
8624 "SendRoutingInfoArg/interrogationType", HFILL }},
8625 { &hf_gsm_map_or_Interrogation,
8626 { "or-Interrogation", "gsm_map.or_Interrogation",
8627 FT_NONE, BASE_NONE, NULL, 0,
8629 { &hf_gsm_map_or_Capability,
8630 { "or-Capability", "gsm_map.or_Capability",
8631 FT_UINT32, BASE_DEC, NULL, 0,
8632 "SendRoutingInfoArg/or-Capability", HFILL }},
8633 { &hf_gsm_map_gmsc_Address,
8634 { "gmsc-Address", "gsm_map.gmsc_Address",
8635 FT_BYTES, BASE_HEX, NULL, 0,
8637 { &hf_gsm_map_callReferenceNumber,
8638 { "callReferenceNumber", "gsm_map.callReferenceNumber",
8639 FT_BYTES, BASE_HEX, NULL, 0,
8641 { &hf_gsm_map_forwardingReason,
8642 { "forwardingReason", "gsm_map.forwardingReason",
8643 FT_UINT32, BASE_DEC, VALS(T_forwardingReason_vals), 0,
8644 "SendRoutingInfoArg/forwardingReason", HFILL }},
8645 { &hf_gsm_map_basicServiceGroup,
8646 { "basicServiceGroup", "gsm_map.basicServiceGroup",
8647 FT_UINT32, BASE_DEC, VALS(BasicService_vals), 0,
8649 { &hf_gsm_map_networkSignalInfo,
8650 { "networkSignalInfo", "gsm_map.networkSignalInfo",
8651 FT_NONE, BASE_NONE, NULL, 0,
8653 { &hf_gsm_map_camelInfo,
8654 { "camelInfo", "gsm_map.camelInfo",
8655 FT_NONE, BASE_NONE, NULL, 0,
8656 "SendRoutingInfoArg/camelInfo", HFILL }},
8657 { &hf_gsm_map_suppress_T_CSI,
8658 { "suppress-T-CSI", "gsm_map.suppress_T_CSI",
8659 FT_NONE, BASE_NONE, NULL, 0,
8660 "SendRoutingInfoArg/camelInfo/suppress-T-CSI", HFILL }},
8661 { &hf_gsm_map_suppressionOfAnnouncement,
8662 { "suppressionOfAnnouncement", "gsm_map.suppressionOfAnnouncement",
8663 FT_NONE, BASE_NONE, NULL, 0,
8665 { &hf_gsm_map_alertingPattern,
8666 { "alertingPattern", "gsm_map.alertingPattern",
8667 FT_BYTES, BASE_HEX, NULL, 0,
8669 { &hf_gsm_map_ccbs_Call,
8670 { "ccbs-Call", "gsm_map.ccbs_Call",
8671 FT_NONE, BASE_NONE, NULL, 0,
8673 { &hf_gsm_map_supportedCCBS_Phase,
8674 { "supportedCCBS-Phase", "gsm_map.supportedCCBS_Phase",
8675 FT_UINT32, BASE_DEC, NULL, 0,
8676 "SendRoutingInfoArg/supportedCCBS-Phase", HFILL }},
8677 { &hf_gsm_map_additionalSignalInfo,
8678 { "additionalSignalInfo", "gsm_map.additionalSignalInfo",
8679 FT_NONE, BASE_NONE, NULL, 0,
8681 { &hf_gsm_map_extendedRoutingInfo,
8682 { "extendedRoutingInfo", "gsm_map.extendedRoutingInfo",
8683 FT_UINT32, BASE_DEC, VALS(T_extendedRoutingInfo_vals), 0,
8684 "SendRoutingInfoRes/extendedRoutingInfo", HFILL }},
8685 { &hf_gsm_map_routingInfo,
8686 { "routingInfo", "gsm_map.routingInfo",
8687 FT_UINT32, BASE_DEC, VALS(T_routingInfo_vals), 0,
8688 "SendRoutingInfoRes/extendedRoutingInfo/routingInfo", HFILL }},
8689 { &hf_gsm_map_roamingNumber,
8690 { "roamingNumber", "gsm_map.roamingNumber",
8691 FT_BYTES, BASE_HEX, NULL, 0,
8693 { &hf_gsm_map_forwardingData,
8694 { "forwardingData", "gsm_map.forwardingData",
8695 FT_NONE, BASE_NONE, NULL, 0,
8697 { &hf_gsm_map_camelRoutingInfo,
8698 { "camelRoutingInfo", "gsm_map.camelRoutingInfo",
8699 FT_NONE, BASE_NONE, NULL, 0,
8700 "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo", HFILL }},
8701 { &hf_gsm_map_gmscCamelSubscriptionInfo,
8702 { "gmscCamelSubscriptionInfo", "gsm_map.gmscCamelSubscriptionInfo",
8703 FT_NONE, BASE_NONE, NULL, 0,
8704 "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo", HFILL }},
8705 { &hf_gsm_map_t_CSI,
8706 { "t-CSI", "gsm_map.t_CSI",
8707 FT_NONE, BASE_NONE, NULL, 0,
8708 "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo/t-CSI", HFILL }},
8709 { &hf_gsm_map_t_BcsmCamelTDPDataList,
8710 { "t-BcsmCamelTDPDataList", "gsm_map.t_BcsmCamelTDPDataList",
8711 FT_UINT32, BASE_DEC, NULL, 0,
8712 "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo/t-CSI/t-BcsmCamelTDPDataList", HFILL }},
8713 { &hf_gsm_map_cugSubscriptionFlag,
8714 { "cugSubscriptionFlag", "gsm_map.cugSubscriptionFlag",
8715 FT_NONE, BASE_NONE, NULL, 0,
8716 "SendRoutingInfoRes/cugSubscriptionFlag", HFILL }},
8717 { &hf_gsm_map_subscriberInfo,
8718 { "subscriberInfo", "gsm_map.subscriberInfo",
8719 FT_NONE, BASE_NONE, NULL, 0,
8721 { &hf_gsm_map_forwardingInterrogationRequired,
8722 { "forwardingInterrogationRequired", "gsm_map.forwardingInterrogationRequired",
8723 FT_NONE, BASE_NONE, NULL, 0,
8724 "SendRoutingInfoRes/forwardingInterrogationRequired", HFILL }},
8725 { &hf_gsm_map_vmsc_Address,
8726 { "vmsc-Address", "gsm_map.vmsc_Address",
8727 FT_BYTES, BASE_HEX, NULL, 0,
8728 "SendRoutingInfoRes/vmsc-Address", HFILL }},
8729 { &hf_gsm_map_ccbs_Indicators,
8730 { "ccbs-Indicators", "gsm_map.ccbs_Indicators",
8731 FT_NONE, BASE_NONE, NULL, 0,
8732 "SendRoutingInfoRes/ccbs-Indicators", HFILL }},
8733 { &hf_gsm_map_ccbs_Possible,
8734 { "ccbs-Possible", "gsm_map.ccbs_Possible",
8735 FT_NONE, BASE_NONE, NULL, 0,
8737 { &hf_gsm_map_keepCCBS_CallIndicator,
8738 { "keepCCBS-CallIndicator", "gsm_map.keepCCBS_CallIndicator",
8739 FT_NONE, BASE_NONE, NULL, 0,
8740 "SendRoutingInfoRes/ccbs-Indicators/keepCCBS-CallIndicator", HFILL }},
8741 { &hf_gsm_map_numberPortabilityStatus,
8742 { "numberPortabilityStatus", "gsm_map.numberPortabilityStatus",
8743 FT_UINT32, BASE_DEC, VALS(T_numberPortabilityStatus_vals), 0,
8744 "SendRoutingInfoRes/numberPortabilityStatus", HFILL }},
8745 { &hf_gsm_map_assumedIdle,
8746 { "assumedIdle", "gsm_map.assumedIdle",
8747 FT_NONE, BASE_NONE, NULL, 0,
8748 "SubscriberState/assumedIdle", HFILL }},
8749 { &hf_gsm_map_camelBusy,
8750 { "camelBusy", "gsm_map.camelBusy",
8751 FT_NONE, BASE_NONE, NULL, 0,
8752 "SubscriberState/camelBusy", HFILL }},
8753 { &hf_gsm_map_notProvidedFromVLR,
8754 { "notProvidedFromVLR", "gsm_map.notProvidedFromVLR",
8755 FT_NONE, BASE_NONE, NULL, 0,
8756 "SubscriberState/notProvidedFromVLR", HFILL }},
8757 { &hf_gsm_map_ageOfLocationInformation,
8758 { "ageOfLocationInformation", "gsm_map.ageOfLocationInformation",
8759 FT_UINT32, BASE_DEC, NULL, 0,
8760 "LocationInformation/ageOfLocationInformation", HFILL }},
8761 { &hf_gsm_map_geographicalInformation,
8762 { "geographicalInformation", "gsm_map.geographicalInformation",
8763 FT_BYTES, BASE_HEX, NULL, 0,
8764 "LocationInformation/geographicalInformation", HFILL }},
8765 { &hf_gsm_map_vlr_number,
8766 { "vlr-number", "gsm_map.vlr_number",
8767 FT_BYTES, BASE_HEX, NULL, 0,
8768 "LocationInformation/vlr-number", HFILL }},
8769 { &hf_gsm_map_locationNumber,
8770 { "locationNumber", "gsm_map.locationNumber",
8771 FT_BYTES, BASE_HEX, NULL, 0,
8772 "LocationInformation/locationNumber", HFILL }},
8773 { &hf_gsm_map_cellIdOrLAI,
8774 { "cellIdOrLAI", "gsm_map.cellIdOrLAI",
8775 FT_UINT32, BASE_DEC, VALS(T_cellIdOrLAI_vals), 0,
8776 "LocationInformation/cellIdOrLAI", HFILL }},
8777 { &hf_gsm_map_cellIdFixedLength,
8778 { "cellIdFixedLength", "gsm_map.cellIdFixedLength",
8779 FT_BYTES, BASE_HEX, NULL, 0,
8780 "LocationInformation/cellIdOrLAI/cellIdFixedLength", HFILL }},
8781 { &hf_gsm_map_laiFixedLength,
8782 { "laiFixedLength", "gsm_map.laiFixedLength",
8783 FT_BYTES, BASE_HEX, NULL, 0,
8784 "LocationInformation/cellIdOrLAI/laiFixedLength", HFILL }},
8785 { &hf_gsm_map_locationInformation,
8786 { "locationInformation", "gsm_map.locationInformation",
8787 FT_NONE, BASE_NONE, NULL, 0,
8788 "SubscriberInfo/locationInformation", HFILL }},
8789 { &hf_gsm_map_subscriberState,
8790 { "subscriberState", "gsm_map.subscriberState",
8791 FT_UINT32, BASE_DEC, VALS(SubscriberState_vals), 0,
8792 "SubscriberInfo/subscriberState", HFILL }},
8793 { &hf_gsm_map_ext_ProtocolId,
8794 { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
8795 FT_UINT32, BASE_DEC, VALS(T_ext_ProtocolId_vals), 0,
8796 "AdditionalSignalInfo/ext-ProtocolId", HFILL }},
8797 { &hf_gsm_map_cug_OutgoingAccess,
8798 { "cug-OutgoingAccess", "gsm_map.cug_OutgoingAccess",
8799 FT_NONE, BASE_NONE, NULL, 0,
8800 "Cug-CheckInfo/cug-OutgoingAccess", HFILL }},
8801 { &hf_gsm_map_gsm_BearerCapability,
8802 { "gsm-BearerCapability", "gsm_map.gsm_BearerCapability",
8803 FT_NONE, BASE_NONE, NULL, 0,
8805 { &hf_gsm_map_supportedCamelPhasesInGMSC,
8806 { "supportedCamelPhasesInGMSC", "gsm_map.supportedCamelPhasesInGMSC",
8807 FT_BYTES, BASE_HEX, NULL, 0,
8808 "ProvideRoamingNumberArg/supportedCamelPhasesInGMSC", HFILL }},
8809 { &hf_gsm_map_orNotSupportedInGMSC,
8810 { "orNotSupportedInGMSC", "gsm_map.orNotSupportedInGMSC",
8811 FT_NONE, BASE_NONE, NULL, 0,
8812 "ProvideRoamingNumberArg/orNotSupportedInGMSC", HFILL }},
8813 { &hf_gsm_map_uu_Data,
8814 { "uu-Data", "gsm_map.uu_Data",
8815 FT_NONE, BASE_NONE, NULL, 0,
8816 "ResumeCallHandlingArg/uu-Data", HFILL }},
8817 { &hf_gsm_map_uuIndicator,
8818 { "uuIndicator", "gsm_map.uuIndicator",
8819 FT_BYTES, BASE_HEX, NULL, 0,
8820 "ResumeCallHandlingArg/uu-Data/uuIndicator", HFILL }},
8822 { "uui", "gsm_map.uui",
8823 FT_BYTES, BASE_HEX, NULL, 0,
8824 "ResumeCallHandlingArg/uu-Data/uui", HFILL }},
8825 { &hf_gsm_map_uusCFInteraction,
8826 { "uusCFInteraction", "gsm_map.uusCFInteraction",
8827 FT_NONE, BASE_NONE, NULL, 0,
8828 "ResumeCallHandlingArg/uu-Data/uusCFInteraction", HFILL }},
8829 { &hf_gsm_map_allInformationSent,
8830 { "allInformationSent", "gsm_map.allInformationSent",
8831 FT_NONE, BASE_NONE, NULL, 0,
8832 "ResumeCallHandlingArg/allInformationSent", HFILL }},
8833 { &hf_gsm_map_isdn_BearerCapability,
8834 { "isdn-BearerCapability", "gsm_map.isdn_BearerCapability",
8835 FT_NONE, BASE_NONE, NULL, 0,
8836 "ProvideSIWFSNumberArg/isdn-BearerCapability", HFILL }},
8837 { &hf_gsm_map_call_Direction,
8838 { "call-Direction", "gsm_map.call_Direction",
8839 FT_BYTES, BASE_HEX, NULL, 0,
8840 "ProvideSIWFSNumberArg/call-Direction", HFILL }},
8841 { &hf_gsm_map_b_Subscriber_Address,
8842 { "b-Subscriber-Address", "gsm_map.b_Subscriber_Address",
8843 FT_BYTES, BASE_HEX, NULL, 0,
8844 "ProvideSIWFSNumberArg/b-Subscriber-Address", HFILL }},
8845 { &hf_gsm_map_chosenChannel,
8846 { "chosenChannel", "gsm_map.chosenChannel",
8847 FT_NONE, BASE_NONE, NULL, 0,
8849 { &hf_gsm_map_lowerLayerCompatibility,
8850 { "lowerLayerCompatibility", "gsm_map.lowerLayerCompatibility",
8851 FT_NONE, BASE_NONE, NULL, 0,
8852 "ProvideSIWFSNumberArg/lowerLayerCompatibility", HFILL }},
8853 { &hf_gsm_map_highLayerCompatibility,
8854 { "highLayerCompatibility", "gsm_map.highLayerCompatibility",
8855 FT_NONE, BASE_NONE, NULL, 0,
8856 "ProvideSIWFSNumberArg/highLayerCompatibility", HFILL }},
8857 { &hf_gsm_map_sIWFSNumber,
8858 { "sIWFSNumber", "gsm_map.sIWFSNumber",
8859 FT_BYTES, BASE_HEX, NULL, 0,
8860 "ProvideSIWFSNumberRes/sIWFSNumber", HFILL }},
8861 { &hf_gsm_map_channelType,
8862 { "channelType", "gsm_map.channelType",
8863 FT_NONE, BASE_NONE, NULL, 0,
8864 "SIWFSSignallingModifyArg/channelType", HFILL }},
8865 { &hf_gsm_map_ccbs_Monitoring,
8866 { "ccbs-Monitoring", "gsm_map.ccbs_Monitoring",
8867 FT_UINT32, BASE_DEC, VALS(Ccbs_Monitoring_vals), 0,
8868 "SetReportingStateArg/ccbs-Monitoring", HFILL }},
8869 { &hf_gsm_map_ccbs_SubscriberStatus,
8870 { "ccbs-SubscriberStatus", "gsm_map.ccbs_SubscriberStatus",
8871 FT_UINT32, BASE_DEC, VALS(Ccbs_SubscriberStatus_vals), 0,
8873 { &hf_gsm_map_eventReportData,
8874 { "eventReportData", "gsm_map.eventReportData",
8875 FT_NONE, BASE_NONE, NULL, 0,
8876 "StatusReportArg/eventReportData", HFILL }},
8877 { &hf_gsm_map_callReportdata,
8878 { "callReportdata", "gsm_map.callReportdata",
8879 FT_NONE, BASE_NONE, NULL, 0,
8880 "StatusReportArg/callReportdata", HFILL }},
8881 { &hf_gsm_map_monitoringMode,
8882 { "monitoringMode", "gsm_map.monitoringMode",
8883 FT_UINT32, BASE_DEC, VALS(MonitoringMode_vals), 0,
8884 "StatusReportArg/callReportdata/monitoringMode", HFILL }},
8885 { &hf_gsm_map_callOutcome,
8886 { "callOutcome", "gsm_map.callOutcome",
8887 FT_UINT32, BASE_DEC, VALS(CallOutcome_vals), 0,
8888 "StatusReportArg/callReportdata/callOutcome", HFILL }},
8889 { &hf_gsm_map_callInfo,
8890 { "callInfo", "gsm_map.callInfo",
8891 FT_NONE, BASE_NONE, NULL, 0,
8893 { &hf_gsm_map_ccbs_Feature,
8894 { "ccbs-Feature", "gsm_map.ccbs_Feature",
8895 FT_NONE, BASE_NONE, NULL, 0,
8897 { &hf_gsm_map_translatedB_Number,
8898 { "translatedB-Number", "gsm_map.translatedB_Number",
8899 FT_BYTES, BASE_HEX, NULL, 0,
8901 { &hf_gsm_map_replaceB_Number,
8902 { "replaceB-Number", "gsm_map.replaceB_Number",
8903 FT_NONE, BASE_NONE, NULL, 0,
8904 "RemoteUserFreeArg/replaceB-Number", HFILL }},
8905 { &hf_gsm_map_ruf_Outcome,
8906 { "ruf-Outcome", "gsm_map.ruf_Outcome",
8907 FT_UINT32, BASE_DEC, VALS(Ruf_Outcome_vals), 0,
8908 "RemoteUserFreeRes/ruf-Outcome", HFILL }},
8909 { &hf_gsm_map_ss_Data,
8910 { "ss-Data", "gsm_map.ss_Data",
8911 FT_NONE, BASE_NONE, NULL, 0,
8912 "Ss-Info/ss-Data", HFILL }},
8913 { &hf_gsm_map_ccbs_Index,
8914 { "ccbs-Index", "gsm_map.ccbs_Index",
8915 FT_UINT32, BASE_DEC, NULL, 0,
8917 { &hf_gsm_map_b_subscriberNumber,
8918 { "b-subscriberNumber", "gsm_map.b_subscriberNumber",
8919 FT_BYTES, BASE_HEX, NULL, 0,
8921 { &hf_gsm_map_b_subscriberSubaddress,
8922 { "b-subscriberSubaddress", "gsm_map.b_subscriberSubaddress",
8923 FT_BYTES, BASE_HEX, NULL, 0,
8925 { &hf_gsm_map_genericServiceInfo,
8926 { "genericServiceInfo", "gsm_map.genericServiceInfo",
8927 FT_NONE, BASE_NONE, NULL, 0,
8928 "InterrogateSS-Res/genericServiceInfo", HFILL }},
8929 { &hf_gsm_map_maximumEntitledPriority,
8930 { "maximumEntitledPriority", "gsm_map.maximumEntitledPriority",
8931 FT_UINT32, BASE_DEC, NULL, 0,
8932 "InterrogateSS-Res/genericServiceInfo/maximumEntitledPriority", HFILL }},
8933 { &hf_gsm_map_ccbs_FeatureList,
8934 { "ccbs-FeatureList", "gsm_map.ccbs_FeatureList",
8935 FT_UINT32, BASE_DEC, NULL, 0,
8936 "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList", HFILL }},
8937 { &hf_gsm_map_ccbs_FeatureList_item,
8938 { "Item", "gsm_map.ccbs_FeatureList_item",
8939 FT_NONE, BASE_NONE, NULL, 0,
8940 "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList/_item", HFILL }},
8941 { &hf_gsm_map_ussd_DataCodingScheme,
8942 { "ussd-DataCodingScheme", "gsm_map.ussd_DataCodingScheme",
8943 FT_BYTES, BASE_HEX, NULL, 0,
8945 { &hf_gsm_map_ussd_String,
8946 { "ussd-String", "gsm_map.ussd_String",
8947 FT_BYTES, BASE_HEX, NULL, 0,
8949 { &hf_gsm_map_ccbs_Data,
8950 { "ccbs-Data", "gsm_map.ccbs_Data",
8951 FT_NONE, BASE_NONE, NULL, 0,
8952 "RegisterCC-EntryArg/ccbs-Data", HFILL }},
8953 { &hf_gsm_map_serviceIndicator,
8954 { "serviceIndicator", "gsm_map.serviceIndicator",
8955 FT_BYTES, BASE_HEX, NULL, 0,
8956 "RegisterCC-EntryArg/ccbs-Data/serviceIndicator", HFILL }},
8957 { &hf_gsm_map_sm_RP_PRI,
8958 { "sm-RP-PRI", "gsm_map.sm_RP_PRI",
8959 FT_BOOLEAN, 8, NULL, 0,
8960 "RoutingInfoForSMArg/sm-RP-PRI", HFILL }},
8961 { &hf_gsm_map_serviceCentreAddress,
8962 { "serviceCentreAddress", "gsm_map.serviceCentreAddress",
8963 FT_BYTES, BASE_HEX, NULL, 0,
8965 { &hf_gsm_map_gprsSupportIndicator,
8966 { "gprsSupportIndicator", "gsm_map.gprsSupportIndicator",
8967 FT_NONE, BASE_NONE, NULL, 0,
8969 { &hf_gsm_map_sm_RP_MTI,
8970 { "sm-RP-MTI", "gsm_map.sm_RP_MTI",
8971 FT_UINT32, BASE_DEC, NULL, 0,
8972 "RoutingInfoForSMArg/sm-RP-MTI", HFILL }},
8973 { &hf_gsm_map_sm_RP_SMEA,
8974 { "sm-RP-SMEA", "gsm_map.sm_RP_SMEA",
8975 FT_BYTES, BASE_HEX, NULL, 0,
8976 "RoutingInfoForSMArg/sm-RP-SMEA", HFILL }},
8977 { &hf_gsm_map_locationInfoWithLMSI,
8978 { "locationInfoWithLMSI", "gsm_map.locationInfoWithLMSI",
8979 FT_NONE, BASE_NONE, NULL, 0,
8980 "RoutingInfoForSMRes/locationInfoWithLMSI", HFILL }},
8981 { &hf_gsm_map_networkNode_Number,
8982 { "networkNode-Number", "gsm_map.networkNode_Number",
8983 FT_BYTES, BASE_HEX, NULL, 0,
8984 "RoutingInfoForSMRes/locationInfoWithLMSI/networkNode-Number", HFILL }},
8985 { &hf_gsm_map_gprsNodeIndicator,
8986 { "gprsNodeIndicator", "gsm_map.gprsNodeIndicator",
8987 FT_NONE, BASE_NONE, NULL, 0,
8988 "RoutingInfoForSMRes/locationInfoWithLMSI/gprsNodeIndicator", HFILL }},
8989 { &hf_gsm_map_additional_Number,
8990 { "additional-Number", "gsm_map.additional_Number",
8991 FT_UINT32, BASE_DEC, VALS(T_additional_Number_vals), 0,
8992 "RoutingInfoForSMRes/locationInfoWithLMSI/additional-Number", HFILL }},
8993 { &hf_gsm_map_sm_RP_DA,
8994 { "sm-RP-DA", "gsm_map.sm_RP_DA",
8995 FT_UINT32, BASE_DEC, VALS(Sm_RP_DA_vals), 0,
8997 { &hf_gsm_map_sm_RP_OA,
8998 { "sm-RP-OA", "gsm_map.sm_RP_OA",
8999 FT_UINT32, BASE_DEC, VALS(Sm_RP_OA_vals), 0,
9001 { &hf_gsm_map_sm_RP_UI,
9002 { "sm-RP-UI", "gsm_map.sm_RP_UI",
9003 FT_BYTES, BASE_HEX, NULL, 0,
9005 { &hf_gsm_map_serviceCentreAddressOA,
9006 { "serviceCentreAddressOA", "gsm_map.serviceCentreAddressOA",
9007 FT_BYTES, BASE_HEX, NULL, 0,
9008 "Sm-RP-OA/serviceCentreAddressOA", HFILL }},
9009 { &hf_gsm_map_noSM_RP_OA,
9010 { "noSM-RP-OA", "gsm_map.noSM_RP_OA",
9011 FT_NONE, BASE_NONE, NULL, 0,
9012 "Sm-RP-OA/noSM-RP-OA", HFILL }},
9013 { &hf_gsm_map_serviceCentreAddressDA,
9014 { "serviceCentreAddressDA", "gsm_map.serviceCentreAddressDA",
9015 FT_BYTES, BASE_HEX, NULL, 0,
9016 "Sm-RP-DA/serviceCentreAddressDA", HFILL }},
9017 { &hf_gsm_map_noSM_RP_DA,
9018 { "noSM-RP-DA", "gsm_map.noSM_RP_DA",
9019 FT_NONE, BASE_NONE, NULL, 0,
9020 "Sm-RP-DA/noSM-RP-DA", HFILL }},
9021 { &hf_gsm_map_moreMessagesToSend,
9022 { "moreMessagesToSend", "gsm_map.moreMessagesToSend",
9023 FT_NONE, BASE_NONE, NULL, 0,
9024 "Mt-forwardSM-Arg/moreMessagesToSend", HFILL }},
9025 { &hf_gsm_map_sm_DeliveryOutcome,
9026 { "sm-DeliveryOutcome", "gsm_map.sm_DeliveryOutcome",
9027 FT_UINT32, BASE_DEC, VALS(Sm_DeliveryOutcome_vals), 0,
9028 "ReportSM-DeliveryStatusArg/sm-DeliveryOutcome", HFILL }},
9029 { &hf_gsm_map_absentSubscriberDiagnosticSM,
9030 { "absentSubscriberDiagnosticSM", "gsm_map.absentSubscriberDiagnosticSM",
9031 FT_UINT32, BASE_DEC, NULL, 0,
9033 { &hf_gsm_map_deliveryOutcomeIndicator,
9034 { "deliveryOutcomeIndicator", "gsm_map.deliveryOutcomeIndicator",
9035 FT_NONE, BASE_NONE, NULL, 0,
9036 "ReportSM-DeliveryStatusArg/deliveryOutcomeIndicator", HFILL }},
9037 { &hf_gsm_map_additionalSM_DeliveryOutcome,
9038 { "additionalSM-DeliveryOutcome", "gsm_map.additionalSM_DeliveryOutcome",
9039 FT_UINT32, BASE_DEC, VALS(Sm_DeliveryOutcome_vals), 0,
9040 "ReportSM-DeliveryStatusArg/additionalSM-DeliveryOutcome", HFILL }},
9041 { &hf_gsm_map_additionalAbsentSubscriberDiagnosticSM,
9042 { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.additionalAbsentSubscriberDiagnosticSM",
9043 FT_UINT32, BASE_DEC, NULL, 0,
9045 { &hf_gsm_map_storedMSISDN,
9046 { "storedMSISDN", "gsm_map.storedMSISDN",
9047 FT_BYTES, BASE_HEX, NULL, 0,
9049 { &hf_gsm_map_mw_Status,
9050 { "mw-Status", "gsm_map.mw_Status",
9051 FT_BYTES, BASE_HEX, NULL, 0,
9052 "InformServiceCentreArg/mw-Status", HFILL }},
9053 { &hf_gsm_map_alertReason,
9054 { "alertReason", "gsm_map.alertReason",
9055 FT_UINT32, BASE_DEC, VALS(T_alertReason_vals), 0,
9056 "ReadyForSM-Arg/alertReason", HFILL }},
9057 { &hf_gsm_map_alertReasonIndicator,
9058 { "alertReasonIndicator", "gsm_map.alertReasonIndicator",
9059 FT_NONE, BASE_NONE, NULL, 0,
9060 "ReadyForSM-Arg/alertReasonIndicator", HFILL }},
9061 { &hf_gsm_map_requestedInfo,
9062 { "requestedInfo", "gsm_map.requestedInfo",
9063 FT_NONE, BASE_NONE, NULL, 0,
9065 { &hf_gsm_map_locationInformationFlag,
9066 { "locationInformation", "gsm_map.locationInformation",
9067 FT_NONE, BASE_NONE, NULL, 0,
9068 "RequestedInfo/locationInformation", HFILL }},
9069 { &hf_gsm_map_subscriberStateFlag,
9070 { "subscriberState", "gsm_map.subscriberState",
9071 FT_NONE, BASE_NONE, NULL, 0,
9072 "RequestedInfo/subscriberState", HFILL }},
9073 { &hf_gsm_map_subscriberIdentity,
9074 { "subscriberIdentity", "gsm_map.subscriberIdentity",
9075 FT_UINT32, BASE_DEC, VALS(T_subscriberIdentity_vals), 0,
9076 "AnyTimeInterrogationArg/subscriberIdentity", HFILL }},
9077 { &hf_gsm_map_ss_Event,
9078 { "ss-Event", "gsm_map.ss_Event",
9079 FT_BYTES, BASE_HEX, NULL, 0,
9080 "Ss-InvocationNotificationArg/ss-Event", HFILL }},
9081 { &hf_gsm_map_ss_EventSpecification,
9082 { "ss-EventSpecification", "gsm_map.ss_EventSpecification",
9083 FT_UINT32, BASE_DEC, NULL, 0,
9084 "Ss-InvocationNotificationArg/ss-EventSpecification", HFILL }},
9085 { &hf_gsm_map_ss_EventSpecification_item,
9086 { "Item", "gsm_map.ss_EventSpecification_item",
9087 FT_BYTES, BASE_HEX, NULL, 0,
9088 "Ss-InvocationNotificationArg/ss-EventSpecification/_item", HFILL }},
9089 { &hf_gsm_map_asciCallReference,
9090 { "asciCallReference", "gsm_map.asciCallReference",
9091 FT_BYTES, BASE_HEX, NULL, 0,
9092 "PrepareGroupCallArg/asciCallReference", HFILL }},
9093 { &hf_gsm_map_codec_Info,
9094 { "codec-Info", "gsm_map.codec_Info",
9095 FT_BYTES, BASE_HEX, NULL, 0,
9096 "PrepareGroupCallArg/codec-Info", HFILL }},
9097 { &hf_gsm_map_cipheringAlgorithm,
9098 { "cipheringAlgorithm", "gsm_map.cipheringAlgorithm",
9099 FT_BYTES, BASE_HEX, NULL, 0,
9100 "PrepareGroupCallArg/cipheringAlgorithm", HFILL }},
9101 { &hf_gsm_map_groupKeyNumber,
9102 { "groupKeyNumber", "gsm_map.groupKeyNumber",
9103 FT_UINT32, BASE_DEC, NULL, 0,
9104 "PrepareGroupCallArg/groupKeyNumber", HFILL }},
9105 { &hf_gsm_map_groupKey,
9106 { "groupKey", "gsm_map.groupKey",
9107 FT_BYTES, BASE_HEX, NULL, 0,
9108 "PrepareGroupCallArg/groupKey", HFILL }},
9109 { &hf_gsm_map_priority,
9110 { "priority", "gsm_map.priority",
9111 FT_UINT32, BASE_DEC, NULL, 0,
9112 "PrepareGroupCallArg/priority", HFILL }},
9113 { &hf_gsm_map_uplinkFree,
9114 { "uplinkFree", "gsm_map.uplinkFree",
9115 FT_NONE, BASE_NONE, NULL, 0,
9116 "PrepareGroupCallArg/uplinkFree", HFILL }},
9117 { &hf_gsm_map_groupCallNumber,
9118 { "groupCallNumber", "gsm_map.groupCallNumber",
9119 FT_BYTES, BASE_HEX, NULL, 0,
9120 "PrepareGroupCallRes/groupCallNumber", HFILL }},
9121 { &hf_gsm_map_uplinkRequest,
9122 { "uplinkRequest", "gsm_map.uplinkRequest",
9123 FT_NONE, BASE_NONE, NULL, 0,
9124 "ProcessGroupCallSignallingArg/uplinkRequest", HFILL }},
9125 { &hf_gsm_map_uplinkReleaseIndication,
9126 { "uplinkReleaseIndication", "gsm_map.uplinkReleaseIndication",
9127 FT_NONE, BASE_NONE, NULL, 0,
9129 { &hf_gsm_map_releaseGroupCall,
9130 { "releaseGroupCall", "gsm_map.releaseGroupCall",
9131 FT_NONE, BASE_NONE, NULL, 0,
9132 "ProcessGroupCallSignallingArg/releaseGroupCall", HFILL }},
9133 { &hf_gsm_map_uplinkRequestAck,
9134 { "uplinkRequestAck", "gsm_map.uplinkRequestAck",
9135 FT_NONE, BASE_NONE, NULL, 0,
9136 "ForwardGroupCallSignallingArg/uplinkRequestAck", HFILL }},
9137 { &hf_gsm_map_uplinkRejectCommand,
9138 { "uplinkRejectCommand", "gsm_map.uplinkRejectCommand",
9139 FT_NONE, BASE_NONE, NULL, 0,
9140 "ForwardGroupCallSignallingArg/uplinkRejectCommand", HFILL }},
9141 { &hf_gsm_map_uplinkSeizedCommand,
9142 { "uplinkSeizedCommand", "gsm_map.uplinkSeizedCommand",
9143 FT_NONE, BASE_NONE, NULL, 0,
9144 "ForwardGroupCallSignallingArg/uplinkSeizedCommand", HFILL }},
9145 { &hf_gsm_map_uplinkReleaseCommand,
9146 { "uplinkReleaseCommand", "gsm_map.uplinkReleaseCommand",
9147 FT_NONE, BASE_NONE, NULL, 0,
9148 "ForwardGroupCallSignallingArg/uplinkReleaseCommand", HFILL }},
9149 { &hf_gsm_map_sgsn_Address,
9150 { "sgsn-Address", "gsm_map.sgsn_Address",
9151 FT_BYTES, BASE_HEX, NULL, 0,
9153 { &hf_gsm_map_sgsn_Capability,
9154 { "sgsn-Capability", "gsm_map.sgsn_Capability",
9155 FT_NONE, BASE_NONE, NULL, 0,
9156 "UpdateGprsLocationArg/sgsn-Capability", HFILL }},
9157 { &hf_gsm_map_ggsn_Address,
9158 { "ggsn-Address", "gsm_map.ggsn_Address",
9159 FT_BYTES, BASE_HEX, NULL, 0,
9161 { &hf_gsm_map_ggsn_Number,
9162 { "ggsn-Number", "gsm_map.ggsn_Number",
9163 FT_BYTES, BASE_HEX, NULL, 0,
9165 { &hf_gsm_map_mobileNotReachableReason,
9166 { "mobileNotReachableReason", "gsm_map.mobileNotReachableReason",
9167 FT_UINT32, BASE_DEC, NULL, 0,
9168 "SendRoutingInfoForGprsRes/mobileNotReachableReason", HFILL }},
9169 { &hf_gsm_map_dataCodingScheme,
9170 { "dataCodingScheme", "gsm_map.dataCodingScheme",
9171 FT_BYTES, BASE_HEX, NULL, 0,
9172 "LcsClientName/dataCodingScheme", HFILL }},
9173 { &hf_gsm_map_nameString,
9174 { "nameString", "gsm_map.nameString",
9175 FT_BYTES, BASE_HEX, NULL, 0,
9176 "LcsClientName/nameString", HFILL }},
9177 { &hf_gsm_map_lcsClientType,
9178 { "lcsClientType", "gsm_map.lcsClientType",
9179 FT_UINT32, BASE_DEC, VALS(LcsClientType_vals), 0,
9180 "Lcs-ClientID/lcsClientType", HFILL }},
9181 { &hf_gsm_map_lcsClientExternalID,
9182 { "lcsClientExternalID", "gsm_map.lcsClientExternalID",
9183 FT_NONE, BASE_NONE, NULL, 0,
9184 "Lcs-ClientID/lcsClientExternalID", HFILL }},
9185 { &hf_gsm_map_lcsClientDialedByMS,
9186 { "lcsClientDialedByMS", "gsm_map.lcsClientDialedByMS",
9187 FT_BYTES, BASE_HEX, NULL, 0,
9188 "Lcs-ClientID/lcsClientDialedByMS", HFILL }},
9189 { &hf_gsm_map_lcsClientInternalID,
9190 { "lcsClientInternalID", "gsm_map.lcsClientInternalID",
9191 FT_UINT32, BASE_DEC, VALS(LcsClientInternalID_vals), 0,
9192 "Lcs-ClientID/lcsClientInternalID", HFILL }},
9193 { &hf_gsm_map_lcsClientName,
9194 { "lcsClientName", "gsm_map.lcsClientName",
9195 FT_NONE, BASE_NONE, NULL, 0,
9196 "Lcs-ClientID/lcsClientName", HFILL }},
9197 { &hf_gsm_map_locationType,
9198 { "locationType", "gsm_map.locationType",
9199 FT_NONE, BASE_NONE, NULL, 0,
9200 "ProvideSubscriberLocation-Arg/locationType", HFILL }},
9201 { &hf_gsm_map_locationEstimateType,
9202 { "locationEstimateType", "gsm_map.locationEstimateType",
9203 FT_UINT32, BASE_DEC, VALS(T_locationEstimateType_vals), 0,
9204 "ProvideSubscriberLocation-Arg/locationType/locationEstimateType", HFILL }},
9205 { &hf_gsm_map_mlc_Number,
9206 { "mlc-Number", "gsm_map.mlc_Number",
9207 FT_BYTES, BASE_HEX, NULL, 0,
9208 "ProvideSubscriberLocation-Arg/mlc-Number", HFILL }},
9209 { &hf_gsm_map_lcs_ClientID,
9210 { "lcs-ClientID", "gsm_map.lcs_ClientID",
9211 FT_NONE, BASE_NONE, NULL, 0,
9213 { &hf_gsm_map_privacyOverride,
9214 { "privacyOverride", "gsm_map.privacyOverride",
9215 FT_NONE, BASE_NONE, NULL, 0,
9216 "ProvideSubscriberLocation-Arg/privacyOverride", HFILL }},
9218 { "imei", "gsm_map.imei",
9219 FT_BYTES, BASE_HEX, NULL, 0,
9221 { &hf_gsm_map_lcs_Priority,
9222 { "lcs-Priority", "gsm_map.lcs_Priority",
9223 FT_BYTES, BASE_HEX, NULL, 0,
9224 "ProvideSubscriberLocation-Arg/lcs-Priority", HFILL }},
9225 { &hf_gsm_map_lcs_QoS,
9226 { "lcs-QoS", "gsm_map.lcs_QoS",
9227 FT_NONE, BASE_NONE, NULL, 0,
9228 "ProvideSubscriberLocation-Arg/lcs-QoS", HFILL }},
9229 { &hf_gsm_map_horizontal_accuracy,
9230 { "horizontal-accuracy", "gsm_map.horizontal_accuracy",
9231 FT_BYTES, BASE_HEX, NULL, 0,
9232 "ProvideSubscriberLocation-Arg/lcs-QoS/horizontal-accuracy", HFILL }},
9233 { &hf_gsm_map_verticalCoordinateRequest,
9234 { "verticalCoordinateRequest", "gsm_map.verticalCoordinateRequest",
9235 FT_NONE, BASE_NONE, NULL, 0,
9236 "ProvideSubscriberLocation-Arg/lcs-QoS/verticalCoordinateRequest", HFILL }},
9237 { &hf_gsm_map_vertical_accuracy,
9238 { "vertical-accuracy", "gsm_map.vertical_accuracy",
9239 FT_BYTES, BASE_HEX, NULL, 0,
9240 "ProvideSubscriberLocation-Arg/lcs-QoS/vertical-accuracy", HFILL }},
9241 { &hf_gsm_map_responseTime,
9242 { "responseTime", "gsm_map.responseTime",
9243 FT_NONE, BASE_NONE, NULL, 0,
9244 "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime", HFILL }},
9245 { &hf_gsm_map_responseTimeCategory,
9246 { "responseTimeCategory", "gsm_map.responseTimeCategory",
9247 FT_UINT32, BASE_DEC, VALS(T_responseTimeCategory_vals), 0,
9248 "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime/responseTimeCategory", HFILL }},
9249 { &hf_gsm_map_locationEstimate,
9250 { "locationEstimate", "gsm_map.locationEstimate",
9251 FT_BYTES, BASE_HEX, NULL, 0,
9253 { &hf_gsm_map_ageOfLocationEstimate,
9254 { "ageOfLocationEstimate", "gsm_map.ageOfLocationEstimate",
9255 FT_UINT32, BASE_DEC, NULL, 0,
9257 { &hf_gsm_map_mlcNumber,
9258 { "mlcNumber", "gsm_map.mlcNumber",
9259 FT_BYTES, BASE_HEX, NULL, 0,
9260 "RoutingInfoForLCS-Arg/mlcNumber", HFILL }},
9261 { &hf_gsm_map_targetMS,
9262 { "targetMS", "gsm_map.targetMS",
9263 FT_UINT32, BASE_DEC, VALS(TargetMS_vals), 0,
9265 { &hf_gsm_map_lcsLocationInfo,
9266 { "lcsLocationInfo", "gsm_map.lcsLocationInfo",
9267 FT_NONE, BASE_NONE, NULL, 0,
9269 { &hf_gsm_map_lcs_Event,
9270 { "lcs-Event", "gsm_map.lcs_Event",
9271 FT_UINT32, BASE_DEC, VALS(Lcs_Event_vals), 0,
9272 "SubscriberLocationReport-Arg/lcs-Event", HFILL }},
9273 { &hf_gsm_map_na_ESRD,
9274 { "na-ESRD", "gsm_map.na_ESRD",
9275 FT_BYTES, BASE_HEX, NULL, 0,
9276 "SubscriberLocationReport-Arg/na-ESRD", HFILL }},
9277 { &hf_gsm_map_na_ESRK,
9278 { "na-ESRK", "gsm_map.na_ESRK",
9279 FT_BYTES, BASE_HEX, NULL, 0,
9280 "SubscriberLocationReport-Arg/na-ESRK", HFILL }},
9281 { &hf_gsm_map_networkResource,
9282 { "networkResource", "gsm_map.networkResource",
9283 FT_UINT32, BASE_DEC, VALS(NetworkResource_vals), 0,
9285 { &hf_gsm_map_extensibleSystemFailureParam,
9286 { "extensibleSystemFailureParam", "gsm_map.extensibleSystemFailureParam",
9287 FT_NONE, BASE_NONE, NULL, 0,
9288 "SystemFailureParam/extensibleSystemFailureParam", HFILL }},
9289 { &hf_gsm_map_unknownSubscriberDiagnostic,
9290 { "unknownSubscriberDiagnostic", "gsm_map.unknownSubscriberDiagnostic",
9291 FT_UINT32, BASE_DEC, VALS(T_unknownSubscriberDiagnostic_vals), 0,
9292 "UnknownSubscriberParam/unknownSubscriberDiagnostic", HFILL }},
9293 { &hf_gsm_map_roamingNotAllowedCause,
9294 { "roamingNotAllowedCause", "gsm_map.roamingNotAllowedCause",
9295 FT_UINT32, BASE_DEC, VALS(T_roamingNotAllowedCause_vals), 0,
9296 "RoamingNotAllowedParam/roamingNotAllowedCause", HFILL }},
9297 { &hf_gsm_map_absentSubscriberReason,
9298 { "absentSubscriberReason", "gsm_map.absentSubscriberReason",
9299 FT_UINT32, BASE_DEC, VALS(T_absentSubscriberReason_vals), 0,
9300 "AbsentSubscriberParam/absentSubscriberReason", HFILL }},
9301 { &hf_gsm_map_ccbs_Busy,
9302 { "ccbs-Busy", "gsm_map.ccbs_Busy",
9303 FT_NONE, BASE_NONE, NULL, 0,
9304 "BusySubscriberParam/ccbs-Busy", HFILL }},
9305 { &hf_gsm_map_callBarringCause,
9306 { "callBarringCause", "gsm_map.callBarringCause",
9307 FT_UINT32, BASE_DEC, VALS(CallBarringCause_vals), 0,
9309 { &hf_gsm_map_extensibleCallBarredParam,
9310 { "extensibleCallBarredParam", "gsm_map.extensibleCallBarredParam",
9311 FT_NONE, BASE_NONE, NULL, 0,
9312 "CallBarredParam/extensibleCallBarredParam", HFILL }},
9313 { &hf_gsm_map_unauthorisedMessageOriginator,
9314 { "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator",
9315 FT_NONE, BASE_NONE, NULL, 0,
9316 "CallBarredParam/extensibleCallBarredParam/unauthorisedMessageOriginator", HFILL }},
9317 { &hf_gsm_map_cug_RejectCause,
9318 { "cug-RejectCause", "gsm_map.cug_RejectCause",
9319 FT_UINT32, BASE_DEC, VALS(T_cug_RejectCause_vals), 0,
9320 "Cug-RejectParam/cug-RejectCause", HFILL }},
9321 { &hf_gsm_map_gprsConnectionSuspended,
9322 { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
9323 FT_NONE, BASE_NONE, NULL, 0,
9324 "SubBusyForMT-SMS-Param/gprsConnectionSuspended", HFILL }},
9325 { &hf_gsm_map_sm_EnumeratedDeliveryFailureCause,
9326 { "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause",
9327 FT_UINT32, BASE_DEC, VALS(T_sm_EnumeratedDeliveryFailureCause_vals), 0,
9328 "Sm-DeliveryFailureCause/sm-EnumeratedDeliveryFailureCause", HFILL }},
9329 { &hf_gsm_map_diagnosticInfo,
9330 { "diagnosticInfo", "gsm_map.diagnosticInfo",
9331 FT_BYTES, BASE_HEX, NULL, 0,
9332 "Sm-DeliveryFailureCause/diagnosticInfo", HFILL }},
9333 { &hf_gsm_map_unauthorizedLCSClient_Diagnostic,
9334 { "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic",
9335 FT_UINT32, BASE_DEC, VALS(T_unauthorizedLCSClient_Diagnostic_vals), 0,
9336 "UnauthorizedLCSClient-Param/unauthorizedLCSClient-Diagnostic", HFILL }},
9337 { &hf_gsm_map_positionMethodFailure_Diagnostic,
9338 { "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic",
9339 FT_UINT32, BASE_DEC, VALS(T_positionMethodFailure_Diagnostic_vals), 0,
9340 "PositionMethodFailure-Param/positionMethodFailure-Diagnostic", HFILL }},
9341 { &hf_gsm_map_privateExtensionList,
9342 { "privateExtensionList", "gsm_map.privateExtensionList",
9343 FT_UINT32, BASE_DEC, NULL, 0,
9344 "ExtensionContainer/privateExtensionList", HFILL }},
9345 { &hf_gsm_map_pcsExtensions,
9346 { "pcsExtensions", "gsm_map.pcsExtensions",
9347 FT_NONE, BASE_NONE, NULL, 0,
9348 "ExtensionContainer/pcsExtensions", HFILL }},
9349 { &hf_gsm_map_SupportedCamelPhases_phase1,
9350 { "phase1", "gsm_map.phase1",
9351 FT_BOOLEAN, 8, NULL, 0x80,
9353 { &hf_gsm_map_SupportedCamelPhases_phase2,
9354 { "phase2", "gsm_map.phase2",
9355 FT_BOOLEAN, 8, NULL, 0x40,
9357 { &hf_gsm_map_Odb_GeneralData_allOGCallsBarred,
9358 { "allOGCallsBarred", "gsm_map.allOGCallsBarred",
9359 FT_BOOLEAN, 8, NULL, 0x80,
9361 { &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred,
9362 { "internationalOGCallsBarred", "gsm_map.internationalOGCallsBarred",
9363 FT_BOOLEAN, 8, NULL, 0x40,
9365 { &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred,
9366 { "internationalOGCallsNotToHPLMNCountryBarred", "gsm_map.internationalOGCallsNotToHPLMNCountryBarred",
9367 FT_BOOLEAN, 8, NULL, 0x20,
9369 { &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred,
9370 { "premiumRateInformationOGCallsBarred", "gsm_map.premiumRateInformationOGCallsBarred",
9371 FT_BOOLEAN, 8, NULL, 0x10,
9373 { &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred,
9374 { "premiumRateEntertainementOGCallsBarred", "gsm_map.premiumRateEntertainementOGCallsBarred",
9375 FT_BOOLEAN, 8, NULL, 0x08,
9377 { &hf_gsm_map_Odb_GeneralData_ssAccessBarred,
9378 { "ssAccessBarred", "gsm_map.ssAccessBarred",
9379 FT_BOOLEAN, 8, NULL, 0x04,
9381 { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred,
9382 { "interzonalOGCallsBarred", "gsm_map.interzonalOGCallsBarred",
9383 FT_BOOLEAN, 8, NULL, 0x02,
9385 { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred,
9386 { "interzonalOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsNotToHPLMNCountryBarred",
9387 FT_BOOLEAN, 8, NULL, 0x01,
9389 { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred,
9390 { "interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred",
9391 FT_BOOLEAN, 8, NULL, 0x80,
9393 { &hf_gsm_map_Odb_GeneralData_allECTBarred,
9394 { "allECTBarred", "gsm_map.allECTBarred",
9395 FT_BOOLEAN, 8, NULL, 0x40,
9397 { &hf_gsm_map_Odb_GeneralData_chargeableECTBarred,
9398 { "chargeableECTBarred", "gsm_map.chargeableECTBarred",
9399 FT_BOOLEAN, 8, NULL, 0x20,
9401 { &hf_gsm_map_Odb_GeneralData_internationalECTBarred,
9402 { "internationalECTBarred", "gsm_map.internationalECTBarred",
9403 FT_BOOLEAN, 8, NULL, 0x10,
9405 { &hf_gsm_map_Odb_GeneralData_interzonalECTBarred,
9406 { "interzonalECTBarred", "gsm_map.interzonalECTBarred",
9407 FT_BOOLEAN, 8, NULL, 0x08,
9409 { &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred,
9410 { "doublyChargeableECTBarred", "gsm_map.doublyChargeableECTBarred",
9411 FT_BOOLEAN, 8, NULL, 0x04,
9413 { &hf_gsm_map_Odb_GeneralData_multipleECTBarred,
9414 { "multipleECTBarred", "gsm_map.multipleECTBarred",
9415 FT_BOOLEAN, 8, NULL, 0x02,
9417 { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1,
9418 { "plmnSpecificBarringType1", "gsm_map.plmnSpecificBarringType1",
9419 FT_BOOLEAN, 8, NULL, 0x80,
9421 { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2,
9422 { "plmnSpecificBarringType2", "gsm_map.plmnSpecificBarringType2",
9423 FT_BOOLEAN, 8, NULL, 0x40,
9425 { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3,
9426 { "plmnSpecificBarringType3", "gsm_map.plmnSpecificBarringType3",
9427 FT_BOOLEAN, 8, NULL, 0x20,
9429 { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4,
9430 { "plmnSpecificBarringType4", "gsm_map.plmnSpecificBarringType4",
9431 FT_BOOLEAN, 8, NULL, 0x10,
9433 { &hf_gsm_map_ServiceIndicator_clirInvoked,
9434 { "clirInvoked", "gsm_map.clirInvoked",
9435 FT_BOOLEAN, 8, NULL, 0x80,
9437 { &hf_gsm_map_ServiceIndicator_camelInvoked,
9438 { "camelInvoked", "gsm_map.camelInvoked",
9439 FT_BOOLEAN, 8, NULL, 0x40,
9441 { &hf_gsm_map_T_mw_Status_scAddressNotIncluded,
9442 { "scAddressNotIncluded", "gsm_map.scAddressNotIncluded",
9443 FT_BOOLEAN, 8, NULL, 0x80,
9445 { &hf_gsm_map_T_mw_Status_mnrfSet,
9446 { "mnrfSet", "gsm_map.mnrfSet",
9447 FT_BOOLEAN, 8, NULL, 0x40,
9449 { &hf_gsm_map_T_mw_Status_mcefSet,
9450 { "mcefSet", "gsm_map.mcefSet",
9451 FT_BOOLEAN, 8, NULL, 0x20,
9453 { &hf_gsm_map_T_mw_Status_mnrgSet,
9454 { "mnrgSet", "gsm_map.mnrgSet",
9455 FT_BOOLEAN, 8, NULL, 0x10,
9458 /*--- End of included file: packet-gsm_map-hfarr.c ---*/
9462 /* List of subtrees */
9463 static gint *ett[] = {
9465 &ett_gsm_map_InvokeId,
9466 &ett_gsm_map_InvokePDU,
9467 &ett_gsm_map_ReturnResultPDU,
9468 &ett_gsm_map_ReturnResult_result,
9469 &ett_gsm_map_GSMMAPPDU,
9471 /*--- Included file: packet-gsm_map-ettarr.c ---*/
9473 &ett_gsm_map_Bss_APDU,
9474 &ett_gsm_map_SupportedCamelPhases,
9475 &ett_gsm_map_Vlr_Capability,
9476 &ett_gsm_map_UpdateLocationArg,
9477 &ett_gsm_map_UpdateLocationRes,
9478 &ett_gsm_map_PrivateExtensionList,
9479 &ett_gsm_map_PrivateExtension,
9480 &ett_gsm_map_PcsExtensions,
9481 &ett_gsm_map_CancelLocationArg,
9482 &ett_gsm_map_T_identity,
9483 &ett_gsm_map_T_imsi_WithLMSI,
9484 &ett_gsm_map_CancelLocationRes,
9485 &ett_gsm_map_PurgeMS_Arg,
9486 &ett_gsm_map_PurgeMS_Res,
9487 &ett_gsm_map_SendIdentificationRes,
9488 &ett_gsm_map_T_authenticationSetList,
9489 &ett_gsm_map_T_authenticationSetList_item,
9490 &ett_gsm_map_PrepareHO_Arg,
9491 &ett_gsm_map_PrepareHO_Res,
9492 &ett_gsm_map_PrepareSubsequentHO_Arg,
9493 &ett_gsm_map_SendAuthenticationInfoArg,
9494 &ett_gsm_map_T_re_synchronisationInfo,
9495 &ett_gsm_map_SendAuthenticationInfoRes,
9496 &ett_gsm_map_SendAuthenticationInfoRes_item,
9497 &ett_gsm_map_BasicService,
9498 &ett_gsm_map_BasicServiceGroupList,
9499 &ett_gsm_map_Odb_GeneralData,
9500 &ett_gsm_map_Odb_HPLMN_Data,
9501 &ett_gsm_map_BcsmCamelTDPData,
9502 &ett_gsm_map_BcsmCamelTDPDataList,
9504 &ett_gsm_map_InsertSubscriberDataArg,
9505 &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5,
9506 &ett_gsm_map_SEQUNCE_OF_Teleservice,
9507 &ett_gsm_map_T_provisionedSS,
9508 &ett_gsm_map_T_provisionedSS_item,
9509 &ett_gsm_map_T_cug_Info,
9510 &ett_gsm_map_T_cug_SubscriptionList,
9511 &ett_gsm_map_T_cug_SubscriptionList_item,
9512 &ett_gsm_map_T_cug_FeatureList,
9513 &ett_gsm_map_T_cug_FeatureList_item,
9514 &ett_gsm_map_T_ss_Data2,
9515 &ett_gsm_map_T_emlpp_Info,
9516 &ett_gsm_map_T_odb_Data,
9517 &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2,
9518 &ett_gsm_map_T_vbsSubscriptionData,
9519 &ett_gsm_map_T_vbsSubscriptionData_item,
9520 &ett_gsm_map_T_vgcsSubscriptionData,
9521 &ett_gsm_map_T_vgcsSubscriptionData_item,
9522 &ett_gsm_map_T_vlrCamelSubscriptionInfo,
9523 &ett_gsm_map_T_ss_CSI,
9524 &ett_gsm_map_T_ss_CamelData,
9525 &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1,
9526 &ett_gsm_map_T_gprsSubscriptionData,
9527 &ett_gsm_map_T_gprsDataList,
9528 &ett_gsm_map_T_gprsDataList_item,
9529 &ett_gsm_map_T_lsaInformation,
9530 &ett_gsm_map_T_lsaDataList,
9531 &ett_gsm_map_T_lsaDataList_item,
9532 &ett_gsm_map_T_lcsInformation,
9533 &ett_gsm_map_T_gmlc_List,
9534 &ett_gsm_map_T_lcs_PrivacyExceptionList,
9535 &ett_gsm_map_T_lcs_PrivacyExceptionList_item,
9536 &ett_gsm_map_T_externalClientList,
9537 &ett_gsm_map_T_externalClientList_item,
9538 &ett_gsm_map_T_clientIdentity,
9539 &ett_gsm_map_T_plmnClientList,
9540 &ett_gsm_map_T_molr_List,
9541 &ett_gsm_map_T_molr_List_item,
9542 &ett_gsm_map_InsertSubscriberDataRes,
9543 &ett_gsm_map_CallBarringInfo,
9544 &ett_gsm_map_T_callBarringFeatureList,
9545 &ett_gsm_map_T_callBarringFeatureList_item,
9546 &ett_gsm_map_ForwardingFeatureList,
9547 &ett_gsm_map_DestinationNumberCriteria,
9548 &ett_gsm_map_T_destinationNumberList,
9549 &ett_gsm_map_SEQUNCE_OF_INTEGER_1_15,
9550 &ett_gsm_map_ForwardingInfo,
9551 &ett_gsm_map_SEQUNCE_OF_ForwardingFeatureList,
9552 &ett_gsm_map_Naea_PreferredCI,
9553 &ett_gsm_map_O_BcsmCamelTDP_CriteriaList,
9554 &ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
9555 &ett_gsm_map_Ss_SubscriptionOption,
9556 &ett_gsm_map_DeleteSubscriberDataArg,
9557 &ett_gsm_map_T_gprsSubscriptionDataWithdraw,
9558 &ett_gsm_map_SEQUNCE_OF_INTEGER_1_50,
9559 &ett_gsm_map_T_lsaInformationWithdraw,
9560 &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3,
9561 &ett_gsm_map_DeleteSubscriberDataRes,
9562 &ett_gsm_map_ResetArg,
9563 &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8,
9564 &ett_gsm_map_RestoreDataArg,
9565 &ett_gsm_map_RestoreDataRes,
9566 &ett_gsm_map_ActivateTraceModeArg,
9567 &ett_gsm_map_ActivateTraceModeRes,
9568 &ett_gsm_map_DeactivateTraceModeArg,
9569 &ett_gsm_map_DeactivateTraceModeRes,
9570 &ett_gsm_map_SendRoutingInfoArg,
9571 &ett_gsm_map_T_camelInfo,
9572 &ett_gsm_map_SendRoutingInfoRes,
9573 &ett_gsm_map_T_extendedRoutingInfo,
9574 &ett_gsm_map_T_routingInfo,
9575 &ett_gsm_map_T_camelRoutingInfo,
9576 &ett_gsm_map_T_gmscCamelSubscriptionInfo,
9577 &ett_gsm_map_T_t_CSI,
9578 &ett_gsm_map_T_ccbs_Indicators,
9579 &ett_gsm_map_SubscriberState,
9580 &ett_gsm_map_LocationInformation,
9581 &ett_gsm_map_T_cellIdOrLAI,
9582 &ett_gsm_map_SubscriberInfo,
9583 &ett_gsm_map_AdditionalSignalInfo,
9584 &ett_gsm_map_Cug_CheckInfo,
9585 &ett_gsm_map_ForwardingData,
9586 &ett_gsm_map_ProvideRoamingNumberArg,
9587 &ett_gsm_map_ProvideRoamingNumberRes,
9588 &ett_gsm_map_ResumeCallHandlingArg,
9589 &ett_gsm_map_T_uu_Data,
9590 &ett_gsm_map_ResumeCallHandlingRes,
9591 &ett_gsm_map_ProvideSIWFSNumberArg,
9592 &ett_gsm_map_ProvideSIWFSNumberRes,
9593 &ett_gsm_map_SIWFSSignallingModifyArg,
9594 &ett_gsm_map_SIWFSSignallingModifyRes,
9595 &ett_gsm_map_SetReportingStateArg,
9596 &ett_gsm_map_SetReportingStateRes,
9597 &ett_gsm_map_StatusReportArg,
9598 &ett_gsm_map_T_eventReportData,
9599 &ett_gsm_map_T_callReportdata,
9600 &ett_gsm_map_StatusReportRes,
9601 &ett_gsm_map_RemoteUserFreeArg,
9602 &ett_gsm_map_RemoteUserFreeRes,
9603 &ett_gsm_map_Ss_Data,
9604 &ett_gsm_map_RegisterSS_Arg,
9605 &ett_gsm_map_Ss_Info,
9606 &ett_gsm_map_Ccbs_Feature,
9607 &ett_gsm_map_Ss_ForBS,
9608 &ett_gsm_map_InterrogateSS_Res,
9609 &ett_gsm_map_T_genericServiceInfo,
9610 &ett_gsm_map_T_ccbs_FeatureList,
9611 &ett_gsm_map_T_ccbs_FeatureList_item,
9612 &ett_gsm_map_Ussd_Arg,
9613 &ett_gsm_map_Ussd_Res,
9614 &ett_gsm_map_ServiceIndicator,
9615 &ett_gsm_map_RegisterCC_EntryArg,
9616 &ett_gsm_map_T_ccbs_Data,
9617 &ett_gsm_map_RegisterCC_EntryRes,
9618 &ett_gsm_map_EraseCC_EntryArg,
9619 &ett_gsm_map_EraseCC_EntryRes,
9620 &ett_gsm_map_RoutingInfoForSMArg,
9621 &ett_gsm_map_RoutingInfoForSMRes,
9622 &ett_gsm_map_T_locationInfoWithLMSI,
9623 &ett_gsm_map_T_additional_Number,
9624 &ett_gsm_map_Mo_forwardSM_Arg,
9625 &ett_gsm_map_Mo_forwardSM_Res,
9626 &ett_gsm_map_Sm_RP_OA,
9627 &ett_gsm_map_Sm_RP_DA,
9628 &ett_gsm_map_Mt_forwardSM_Arg,
9629 &ett_gsm_map_Mt_forwardSM_Res,
9630 &ett_gsm_map_ReportSM_DeliveryStatusArg,
9631 &ett_gsm_map_ReportSM_DeliveryStatusRes,
9632 &ett_gsm_map_InformServiceCentreArg,
9633 &ett_gsm_map_T_mw_Status,
9634 &ett_gsm_map_AlertServiceCentreArg,
9635 &ett_gsm_map_ReadyForSM_Arg,
9636 &ett_gsm_map_ReadyForSM_Res,
9637 &ett_gsm_map_ProvideSubscriberInfoArg,
9638 &ett_gsm_map_ProvideSubscriberInfoRes,
9639 &ett_gsm_map_RequestedInfo,
9640 &ett_gsm_map_AnyTimeInterrogationArg,
9641 &ett_gsm_map_T_subscriberIdentity,
9642 &ett_gsm_map_AnyTimeInterrogationRes,
9643 &ett_gsm_map_Ss_InvocationNotificationArg,
9644 &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20,
9645 &ett_gsm_map_Ss_InvocationNotificationRes,
9646 &ett_gsm_map_PrepareGroupCallArg,
9647 &ett_gsm_map_PrepareGroupCallRes,
9648 &ett_gsm_map_SendGroupCallEndSignalArg,
9649 &ett_gsm_map_SendGroupCallEndSignalRes,
9650 &ett_gsm_map_ProcessGroupCallSignallingArg,
9651 &ett_gsm_map_ForwardGroupCallSignallingArg,
9652 &ett_gsm_map_UpdateGprsLocationArg,
9653 &ett_gsm_map_T_sgsn_Capability,
9654 &ett_gsm_map_UpdateGprsLocationRes,
9655 &ett_gsm_map_SendRoutingInfoForGprsArg,
9656 &ett_gsm_map_SendRoutingInfoForGprsRes,
9657 &ett_gsm_map_FailureReportArg,
9658 &ett_gsm_map_FailureReportRes,
9659 &ett_gsm_map_NoteMsPresentForGprsArg,
9660 &ett_gsm_map_NoteMsPresentForGprsRes,
9661 &ett_gsm_map_LcsClientExternalID,
9662 &ett_gsm_map_LcsClientName,
9663 &ett_gsm_map_Lcs_ClientID,
9664 &ett_gsm_map_LcsLocationInfo,
9665 &ett_gsm_map_ProvideSubscriberLocation_Arg,
9666 &ett_gsm_map_T_locationType,
9667 &ett_gsm_map_T_lcs_QoS,
9668 &ett_gsm_map_T_responseTime,
9669 &ett_gsm_map_ProvideSubscriberLocation_Res,
9670 &ett_gsm_map_TargetMS,
9671 &ett_gsm_map_RoutingInfoForLCS_Arg,
9672 &ett_gsm_map_RoutingInfoForLCS_Res,
9673 &ett_gsm_map_SubscriberLocationReport_Arg,
9674 &ett_gsm_map_SubscriberLocationReport_Res,
9675 &ett_gsm_map_SystemFailureParam,
9676 &ett_gsm_map_T_extensibleSystemFailureParam,
9677 &ett_gsm_map_DataMissingParam,
9678 &ett_gsm_map_UnexpectedDataParam,
9679 &ett_gsm_map_FacilityNotSupParam,
9680 &ett_gsm_map_IncompatibleTerminalParam,
9681 &ett_gsm_map_ResourceLimitationParam,
9682 &ett_gsm_map_UnknownSubscriberParam,
9683 &ett_gsm_map_NumberChangedParam,
9684 &ett_gsm_map_UnidentifiedSubParam,
9685 &ett_gsm_map_RoamingNotAllowedParam,
9686 &ett_gsm_map_IllegalSubscriberParam,
9687 &ett_gsm_map_IllegalEquipmentParam,
9688 &ett_gsm_map_BearerServNotProvParam,
9689 &ett_gsm_map_TeleservNotProvParam,
9690 &ett_gsm_map_TracingBufferFullParam,
9691 &ett_gsm_map_NoRoamingNbParam,
9692 &ett_gsm_map_AbsentSubscriberParam,
9693 &ett_gsm_map_BusySubscriberParam,
9694 &ett_gsm_map_NoSubscriberReplyParam,
9695 &ett_gsm_map_CallBarredParam,
9696 &ett_gsm_map_T_extensibleCallBarredParam,
9697 &ett_gsm_map_ForwardingFailedParam,
9698 &ett_gsm_map_Or_NotAllowedParam,
9699 &ett_gsm_map_ForwardingViolationParam,
9700 &ett_gsm_map_Cug_RejectParam,
9701 &ett_gsm_map_Ati_NotAllowedParam,
9702 &ett_gsm_map_NoGroupCallNbParam,
9703 &ett_gsm_map_Ss_IncompatibilityCause,
9704 &ett_gsm_map_ShortTermDenialParam,
9705 &ett_gsm_map_LongTermDenialParam,
9706 &ett_gsm_map_SubBusyForMT_SMS_Param,
9707 &ett_gsm_map_Sm_DeliveryFailureCause,
9708 &ett_gsm_map_MessageWaitListFullParam,
9709 &ett_gsm_map_AbsentSubscriberSM_Param,
9710 &ett_gsm_map_UnauthorizedRequestingNetwork_Param,
9711 &ett_gsm_map_UnauthorizedLCSClient_Param,
9712 &ett_gsm_map_PositionMethodFailure_Param,
9713 &ett_gsm_map_UnknownOrUnreachableLCSClient_Param,
9714 &ett_gsm_map_ExtensionContainer,
9716 /*--- End of included file: packet-gsm_map-ettarr.c ---*/
9720 /* Register protocol */
9721 proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
9722 /*XXX register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);*/
9723 /* Register fields and subtrees */
9724 proto_register_field_array(proto_gsm_map, hf, array_length(hf));
9725 proto_register_subtree_array(ett, array_length(ett));
9727 sms_dissector_table =
9728 register_dissector_table("gsm_map.sms_tpdu", "GSM SMS TPDU",
9729 FT_UINT8, BASE_DEC);
9731 gsm_map_tap = register_tap("gsm_map");
9736 /*--- proto_reg_handoff_gsm_map ---------------------------------------*/
9737 void proto_reg_handoff_gsm_map(void) {
9738 dissector_handle_t map_handle;
9740 map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
9741 dissector_add("tcap.itu_ssn", 6, map_handle);
9742 dissector_add("tcap.itu_ssn", 7, map_handle);
9743 dissector_add("tcap.itu_ssn", 8, map_handle);
9744 dissector_add("tcap.itu_ssn", 9, map_handle);