/* Do not modify this file. */
-/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-gsm_map.c */
-/* ../../tools/asn2eth.py -X -b -k -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */
+/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
+/* .\packet-gsm_map.c */
+/* ../../tools/asn2wrs.py -b -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */
/* Input file: packet-gsm_map-template.c */
+#line 1 "packet-gsm_map-template.c"
/* packet-gsm_map-template.c
* Routines for GSM MobileApplication packet dissection
- * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2004 - 2006 , Anders Broman <anders.broman [AT] ericsson.com>
+ * Based on the dissector by:
+ * Felix Fei <felix.fei [AT] utstar.com>
+ * and Michael Lum <mlum [AT] telostech.com>
*
* $Id$
*
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* References: ETSI TS 129 002
+ * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7)
*/
#ifdef HAVE_CONFIG_H
#endif
#include <glib.h>
+#include <math.h>
#include <epan/packet.h>
+#include <epan/prefs.h>
#include <epan/conversation.h>
#include <epan/tap.h>
+#include <epan/emem.h>
+#include <epan/oid_resolv.h>
+#include "epan/expert.h"
#include <stdio.h>
#include <string.h>
+#include <epan/asn1.h>
#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-q931.h"
#include "packet-gsm_map.h"
-
-#define PNAME "GSM_MobileAPplication"
+#include "packet-gsm_a.h"
+#include "packet-tcap.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
+#include "packet-smpp.h"
+#include "packet-gsm_sms.h"
+#include "packet-ranap.h"
+
+#define PNAME "GSM Mobile Application"
#define PSNAME "GSM_MAP"
#define PFNAME "gsm_map"
/* Initialize the protocol and registered fields */
int proto_gsm_map = -1;
-static int hf_gsm_map_invokeCmd = -1; /* Opcode */
-static int hf_gsm_map_invokeid = -1; /* INTEGER */
-static int hf_gsm_map_absent = -1; /* NULL */
-static int hf_gsm_map_invokeId = -1; /* InvokeId */
-static int hf_gsm_map_invoke = -1; /* InvokePDU */
-static int hf_gsm_map_returnResult = -1; /* InvokePDU */
-static int hf_gsm_map_returnResult_result = -1;
-static int hf_gsm_map_getPassword = -1;
-static int hf_gsm_map_currentPassword = -1;
-/*--- Included file: packet-gsm_map-hf.c ---*/
+static int hf_gsm_map_SendAuthenticationInfoArg = -1;
+static int hf_gsm_map_SendAuthenticationInfoRes = -1;
+static int hf_gsm_mapSendEndSignal = -1;
+static int hf_gsm_map_getPassword = -1;
+static int hf_gsm_map_CheckIMEIArg = -1;
+static int hf_gsm_map_currentPassword = -1;
+static int hf_gsm_map_extension = -1;
+static int hf_gsm_map_nature_of_number = -1;
+static int hf_gsm_map_number_plan = -1;
+static int hf_gsm_map_isdn_address_digits = -1;
+static int hf_gsm_map_address_digits = -1;
+static int hf_gsm_map_servicecentreaddress_digits = -1;
+static int hf_gsm_map_imsi_digits = -1;
+static int hf_gsm_map_Ss_Status_unused = -1;
+static int hf_gsm_map_Ss_Status_q_bit = -1;
+static int hf_gsm_map_Ss_Status_p_bit = -1;
+static int hf_gsm_map_Ss_Status_r_bit = -1;
+static int hf_gsm_map_Ss_Status_a_bit = -1;
+static int hf_gsm_map_notification_to_forwarding_party = -1;
+static int hf_gsm_map_redirecting_presentation = -1;
+static int hf_gsm_map_notification_to_calling_party = -1;
+static int hf_gsm_map_forwarding_reason = -1;
+static int hf_gsm_map_pdp_type_org = -1;
+static int hf_gsm_map_etsi_pdp_type_number = -1;
+static int hf_gsm_map_ietf_pdp_type_number = -1;
+static int hf_gsm_map_ext_qos_subscribed_pri = -1;
+
+static int hf_gsm_map_qos_traffic_cls = -1;
+static int hf_gsm_map_qos_del_order = -1;
+static int hf_gsm_map_qos_del_of_err_sdu = -1;
+static int hf_gsm_map_qos_ber = -1;
+static int hf_gsm_map_qos_sdu_err_rat = -1;
+static int hf_gsm_map_qos_traff_hdl_pri = -1;
+static int hf_gsm_map_qos_max_sdu = -1;
+static int hf_gsm_map_max_brate_ulink = -1;
+static int hf_gsm_map_max_brate_dlink = -1;
+static int hf_gsm_map_qos_transfer_delay = -1;
+static int hf_gsm_map_guaranteed_max_brate_ulink = -1;
+static int hf_gsm_map_guaranteed_max_brate_dlink = -1;
+static int hf_gsm_map_GSNAddress_IPv4 = -1;
+static int hf_gsm_map_GSNAddress_IPv6 = -1;
+static int hf_geo_loc_type_of_shape = -1;
+static int hf_geo_loc_sign_of_lat = -1;
+static int hf_geo_loc_deg_of_lat =-1;
+static int hf_geo_loc_deg_of_long =-1;
+static int hf_geo_loc_uncertainty_code = -1;
+static int hf_geo_loc_uncertainty_semi_major = -1;
+static int hf_geo_loc_uncertainty_semi_minor = -1;
+static int hf_geo_loc_orientation_of_major_axis = -1;
+static int hf_geo_loc_uncertainty_altitude = -1;
+static int hf_geo_loc_confidence = -1;
+static int hf_geo_loc_no_of_points = -1;
+static int hf_geo_loc_D = -1;
+static int hf_geo_loc_altitude = -1;
+static int hf_geo_loc_inner_radius = -1;
+static int hf_geo_loc_uncertainty_radius = -1;
+static int hf_geo_loc_offset_angle = -1;
+static int hf_geo_loc_included_angle = -1;
+static int hf_gsm_map_ranap_service_Handover = -1;
+static int hf_gsm_mapIntegrityProtectionInformation = -1;
+static int hf_gsm_mapEncryptionInformation = -1;
+static int hf_gsm_map_PlmnContainer_PDU = -1;
+/*--- Included file: packet-gsm_map-hf.c ---*/
+#line 1 "packet-gsm_map-hf.c"
+static int hf_gsm_map_Component_PDU = -1; /* Component */
+static int hf_gsm_map_invoke = -1; /* Invoke */
+static int hf_gsm_map_returnResultLast = -1; /* ReturnResult */
+static int hf_gsm_map_returnError = -1; /* ReturnError */
+static int hf_gsm_map_reject = -1; /* Reject */
+static int hf_gsm_map_returnResultNotLast = -1; /* ReturnResult */
+static int hf_gsm_map_invokeID = -1; /* InvokeIdType */
+static int hf_gsm_map_linkedID = -1; /* InvokeIdType */
+static int hf_gsm_map_opCode = -1; /* OPERATION */
+static int hf_gsm_map_invokeparameter = -1; /* InvokeParameter */
+static int hf_gsm_map_resultretres = -1; /* T_resultretres */
+static int hf_gsm_map_returnparameter = -1; /* ReturnResultParameter */
+static int hf_gsm_map_returnErrorCode = -1; /* ERROR */
+static int hf_gsm_map_parameter = -1; /* ReturnErrorParameter */
+static int hf_gsm_map_invokeIDRej = -1; /* T_invokeIDRej */
+static int hf_gsm_map_derivable = -1; /* InvokeIdType */
+static int hf_gsm_map_not_derivable = -1; /* NULL */
+static int hf_gsm_map_problem = -1; /* T_problem */
+static int hf_gsm_map_generalProblem = -1; /* GeneralProblem */
+static int hf_gsm_map_invokeProblem = -1; /* InvokeProblem */
+static int hf_gsm_map_returnResultProblem = -1; /* ReturnResultProblem */
+static int hf_gsm_map_returnErrorProblem = -1; /* ReturnErrorProblem */
+static int hf_gsm_map_operationLocalvalue = -1; /* OperationLocalvalue */
+static int hf_gsm_map_globalValue = -1; /* OBJECT_IDENTIFIER */
+static int hf_gsm_map_localErrorcode = -1; /* LocalErrorcode */
static int hf_gsm_map_protocolId = -1; /* ProtocolId */
-static int hf_gsm_map_signalInfo = -1; /* OCTET_STRING_SIZE_1_200 */
+static int hf_gsm_map_signalInfo = -1; /* SignalInfo */
static int hf_gsm_map_extensionContainer = -1; /* ExtensionContainer */
+static int hf_gsm_map_imsi = -1; /* IMSI */
+static int hf_gsm_map_msc_Number = -1; /* ISDN_AddressString */
+static int hf_gsm_map_vlr_Number = -1; /* ISDN_AddressString */
+static int hf_gsm_map_lmsi = -1; /* LMSI */
+static int hf_gsm_map_vlr_Capability = -1; /* VLR_Capability */
+static int hf_gsm_map_informPreviousNetworkEntity = -1; /* NULL */
+static int hf_gsm_map_cs_LCS_NotSupportedByUE = -1; /* NULL */
+static int hf_gsm_map_v_gmlc_Address = -1; /* GSN_Address */
+static int hf_gsm_map_add_info = -1; /* ADD_Info */
+static int hf_gsm_map_hlr_Number = -1; /* ISDN_AddressString */
+static int hf_gsm_map_add_Capability = -1; /* NULL */
static int hf_gsm_map_supportedCamelPhases = -1; /* SupportedCamelPhases */
static int hf_gsm_map_solsaSupportIndicator = -1; /* NULL */
-static int hf_gsm_map_imsi = -1; /* Imsi */
-static int hf_gsm_map_msc_Number = -1; /* Msc_Number */
-static int hf_gsm_map_vlr_Number = -1; /* Vlr_Number */
-static int hf_gsm_map_lmsi = -1; /* Lmsi */
-static int hf_gsm_map_vlr_Capability = -1; /* Vlr_Capability */
-static int hf_gsm_map_hlr_Number = -1; /* Hlr_Number */
+static int hf_gsm_map_istSupportIndicator = -1; /* IST_SupportIndicator */
+static int hf_gsm_map_superChargerSupportedInServingNetworkEntity = -1; /* SuperChargerInfo */
+static int hf_gsm_map_longFTN_Supported = -1; /* NULL */
+static int hf_gsm_map_supportedLCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */
+static int hf_gsm_map_offeredCamel4CSIs = -1; /* OfferedCamel4CSIs */
+static int hf_gsm_map_supportedRAT_TypesIndicator = -1; /* SupportedRAT_Types */
+static int hf_gsm_map_sendSubscriberData = -1; /* NULL */
+static int hf_gsm_map_subscriberDataStored = -1; /* AgeIndicator */
+static int hf_gsm_map_imeisv = -1; /* IMEI */
+static int hf_gsm_map_skipSubscriberDataUpdate = -1; /* NULL */
static int hf_gsm_map_PrivateExtensionList_item = -1; /* PrivateExtension */
-static int hf_gsm_map_identity = -1; /* T_identity */
-static int hf_gsm_map_imsi_WithLMSI = -1; /* T_imsi_WithLMSI */
+static int hf_gsm_map_extId = -1; /* OBJECT_IDENTIFIER */
+static int hf_gsm_map_extType = -1; /* T_extType */
+static int hf_gsm_map_privateExtensionList = -1; /* PrivateExtensionList */
+static int hf_gsm_map_slr_Arg_PCS_Extensions = -1; /* SLR_Arg_PCS_Extensions */
+static int hf_gsm_map_na_ESRK_Request = -1; /* NULL */
+static int hf_gsm_map_identity = -1; /* Identity */
static int hf_gsm_map_cancellationType = -1; /* CancellationType */
-static int hf_gsm_map_sgsn_Number = -1; /* Sgsn_Number */
+static int hf_gsm_map_imsi_WithLMSI = -1; /* IMSI_WithLMSI */
+static int hf_gsm_map_sgsn_Number = -1; /* ISDN_AddressString */
static int hf_gsm_map_freezeTMSI = -1; /* NULL */
static int hf_gsm_map_freezeP_TMSI = -1; /* NULL */
-static int hf_gsm_map_authenticationSetList = -1; /* T_authenticationSetList */
-static int hf_gsm_map_authenticationSetList_item = -1; /* T_authenticationSetList_item */
-static int hf_gsm_map_rand = -1; /* OCTET_STRING_SIZE_16 */
-static int hf_gsm_map_sres = -1; /* OCTET_STRING_SIZE_4 */
-static int hf_gsm_map_kc = -1; /* OCTET_STRING_SIZE_8 */
-static int hf_gsm_map_targetCellId = -1; /* OCTET_STRING_SIZE_5_7 */
+static int hf_gsm_map_tmsi = -1; /* TMSI */
+static int hf_gsm_map_numberOfRequestedVectors = -1; /* NumberOfRequestedVectors */
+static int hf_gsm_map_segmentationProhibited = -1; /* NULL */
+static int hf_gsm_map_previous_LAI = -1; /* LAIFixedLength */
+static int hf_gsm_map_hopCounter = -1; /* HopCounter */
+static int hf_gsm_map_authenticationSetList = -1; /* AuthenticationSetList */
+static int hf_gsm_map_currentSecurityContext = -1; /* CurrentSecurityContext */
+static int hf_gsm_map_tripletList = -1; /* TripletList */
+static int hf_gsm_map_quintupletList = -1; /* QuintupletList */
+static int hf_gsm_map_TripletList_item = -1; /* AuthenticationTriplet */
+static int hf_gsm_map_QuintupletList_item = -1; /* AuthenticationQuintuplet */
+static int hf_gsm_map_rand = -1; /* RAND */
+static int hf_gsm_map_sres = -1; /* SRES */
+static int hf_gsm_map_kc = -1; /* Kc */
+static int hf_gsm_map_xres = -1; /* XRES */
+static int hf_gsm_map_ck = -1; /* CK */
+static int hf_gsm_map_ik = -1; /* IK */
+static int hf_gsm_map_autn = -1; /* AUTN */
+static int hf_gsm_map_gsm_SecurityContextData = -1; /* GSM_SecurityContextData */
+static int hf_gsm_map_umts_SecurityContextData = -1; /* UMTS_SecurityContextData */
+static int hf_gsm_map_cksn = -1; /* Cksn */
+static int hf_gsm_map_ksi = -1; /* KSI */
+static int hf_gsm_map_targetCellId = -1; /* GlobalCellId */
static int hf_gsm_map_ho_NumberNotRequired = -1; /* NULL */
static int hf_gsm_map_bss_APDU = -1; /* Bss_APDU */
-static int hf_gsm_map_handoverNumber = -1; /* T_handoverNumber */
-static int hf_gsm_map_targetMSC_Number = -1; /* T_targetMSC_Number */
-static int hf_gsm_map_numberOfRequestedVectors = -1; /* INTEGER_1_5 */
-static int hf_gsm_map_segmentationProhibited = -1; /* NULL */
+static int hf_gsm_map_targetRNCId = -1; /* RNCId */
+static int hf_gsm_map_an_APDU = -1; /* AccessNetworkSignalInfo */
+static int hf_gsm_map_multipleBearerRequested = -1; /* NULL */
+static int hf_gsm_map_integrityProtectionInfo = -1; /* IntegrityProtectionInformation */
+static int hf_gsm_map_encryptionInfo = -1; /* EncryptionInformation */
+static int hf_gsm_map_radioResourceInformation = -1; /* RadioResourceInformation */
+static int hf_gsm_map_allowedGSM_Algorithms = -1; /* AllowedGSM_Algorithms */
+static int hf_gsm_map_allowedUMTS_Algorithms = -1; /* AllowedUMTS_Algorithms */
+static int hf_gsm_map_radioResourceList = -1; /* RadioResourceList */
+static int hf_gsm_map_rab_Id = -1; /* RAB_Id */
+static int hf_gsm_map_bssmap_ServiceHandover = -1; /* BSSMAP_ServiceHandover */
+static int hf_gsm_map_ranap_ServiceHandover = -1; /* RANAP_ServiceHandover */
+static int hf_gsm_map_bssmap_ServiceHandoverList = -1; /* BSSMAP_ServiceHandoverList */
+static int hf_gsm_map_asciCallReference = -1; /* ASCI_CallReference */
+static int hf_gsm_map_geran_classmark = -1; /* GERAN_Classmark */
+static int hf_gsm_map_iuCurrentlyUsedCodec = -1; /* Codec */
+static int hf_gsm_map_iuSupportedCodecsList = -1; /* SupportedCodecsList */
+static int hf_gsm_map_rab_ConfigurationIndicator = -1; /* NULL */
+static int hf_gsm_map_uesbi_Iu = -1; /* UESBI_Iu */
+static int hf_gsm_map_alternativeChannelType = -1; /* RadioResourceInformation */
+static int hf_gsm_map_tracePropagationList = -1; /* TracePropagationList */
+static int hf_gsm_map_BSSMAP_ServiceHandoverList_item = -1; /* BSSMAP_ServiceHandoverInfo */
+static int hf_gsm_map_RadioResourceList_item = -1; /* RadioResource */
+static int hf_gsm_map_handoverNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_relocationNumberList = -1; /* RelocationNumberList */
+static int hf_gsm_map_multicallBearerInfo = -1; /* MulticallBearerInfo */
+static int hf_gsm_map_multipleBearerNotSupported = -1; /* NULL */
+static int hf_gsm_map_selectedUMTS_Algorithms = -1; /* SelectedUMTS_Algorithms */
+static int hf_gsm_map_chosenRadioResourceInformation = -1; /* ChosenRadioResourceInformation */
+static int hf_gsm_map_iuSelectedCodec = -1; /* Codec */
+static int hf_gsm_map_iuAvailableCodecsList = -1; /* CodecList */
+static int hf_gsm_map_integrityProtectionAlgorithm = -1; /* ChosenIntegrityProtectionAlgorithm */
+static int hf_gsm_map_encryptionAlgorithm = -1; /* ChosenEncryptionAlgorithm */
+static int hf_gsm_map_chosenChannelInfo = -1; /* ChosenChannelInfo */
+static int hf_gsm_map_chosenSpeechVersion = -1; /* ChosenSpeechVersion */
+static int hf_gsm_map_RelocationNumberList_item = -1; /* RelocationNumber */
+static int hf_gsm_map_selectedGSM_Algorithm = -1; /* SelectedGSM_Algorithm */
+static int hf_gsm_map_selectedRab_Id = -1; /* RAB_Id */
+static int hf_gsm_map_iUSelectedCodec = -1; /* Codec */
+static int hf_gsm_map_utranCodecList = -1; /* CodecList */
+static int hf_gsm_map_geranCodecList = -1; /* CodecList */
+static int hf_gsm_map_codec1 = -1; /* Codec */
+static int hf_gsm_map_codec2 = -1; /* Codec */
+static int hf_gsm_map_codec3 = -1; /* Codec */
+static int hf_gsm_map_codec4 = -1; /* Codec */
+static int hf_gsm_map_codec5 = -1; /* Codec */
+static int hf_gsm_map_codec6 = -1; /* Codec */
+static int hf_gsm_map_codec7 = -1; /* Codec */
+static int hf_gsm_map_codec8 = -1; /* Codec */
+static int hf_gsm_map_keyStatus = -1; /* KeyStatus */
+static int hf_gsm_map_currentlyUsedCodec = -1; /* Codec */
+static int hf_gsm_map_integrityProtectionAlgorithms = -1; /* PermittedIntegrityProtectionAlgorithms */
+static int hf_gsm_map_encryptionAlgorithms = -1; /* PermittedEncryptionAlgorithms */
+static int hf_gsm_map_targetMSC_Number = -1; /* ISDN_AddressString */
static int hf_gsm_map_immediateResponsePreferred = -1; /* NULL */
-static int hf_gsm_map_re_synchronisationInfo = -1; /* T_re_synchronisationInfo */
-static int hf_gsm_map_auts = -1; /* OCTET_STRING_SIZE_14 */
-static int hf_gsm_map_requestingNodeType = -1; /* T_requestingNodeType */
-static int hf_gsm_map_requestingPLMN_Id = -1; /* OCTET_STRING_SIZE_3 */
+static int hf_gsm_map_re_synchronisationInfo = -1; /* Re_synchronisationInfo */
+static int hf_gsm_map_requestingNodeType = -1; /* RequestingNodeType */
+static int hf_gsm_map_requestingPLMN_Id = -1; /* PLMN_Id */
static int hf_gsm_map_SendAuthenticationInfoRes_item = -1; /* SendAuthenticationInfoRes_item */
-static int hf_gsm_map_bearerService = -1; /* OCTET_STRING */
-static int hf_gsm_map_teleservice = -1; /* Teleservice */
-static int hf_gsm_map_BasicServiceGroupList_item = -1; /* BasicService */
-static int hf_gsm_map_bcsmTriggerDetectionPoint = -1; /* BcsmTriggerDetectionPoint */
+static int hf_gsm_map_auts = -1; /* AUTS */
+static int hf_gsm_map_imei = -1; /* IMEI */
+static int hf_gsm_map_requestedEquipmentInfo = -1; /* RequestedEquipmentInfo */
+static int hf_gsm_map_equipmentStatus = -1; /* EquipmentStatus */
+static int hf_gsm_map_bmuef = -1; /* UESBI_Iu */
+static int hf_gsm_map_uesbi_IuA = -1; /* UESBI_IuA */
+static int hf_gsm_map_uesbi_IuB = -1; /* UESBI_IuB */
+static int hf_gsm_map_BasicServiceGroupList_item = -1; /* BasicServiceCode */
+static int hf_gsm_map_o_BcsmCamelTDPDataList = -1; /* O_BcsmCamelTDPDataList */
+static int hf_gsm_map_camelCapabilityHandling = -1; /* CamelCapabilityHandling */
+static int hf_gsm_map_notificationToCSE = -1; /* NULL */
+static int hf_gsm_map_csiActive = -1; /* NULL */
+static int hf_gsm_map_O_BcsmCamelTDPDataList_item = -1; /* O_BcsmCamelTDPData */
+static int hf_gsm_map_o_BcsmTriggerDetectionPoint = -1; /* O_BcsmTriggerDetectionPoint */
static int hf_gsm_map_serviceKey = -1; /* ServiceKey */
-static int hf_gsm_map_gsmSCFAddress = -1; /* GsmSCF_Address */
+static int hf_gsm_map_gsmSCF_Address = -1; /* ISDN_AddressString */
static int hf_gsm_map_defaultCallHandling = -1; /* DefaultCallHandling */
-static int hf_gsm_map_BcsmCamelTDPDataList_item = -1; /* BcsmCamelTDPData */
-static int hf_gsm_map_o_BcsmCamelTDPDataList = -1; /* BcsmCamelTDPDataList */
-static int hf_gsm_map_camelCapabilityHandling = -1; /* INTEGER_1_16 */
-static int hf_gsm_map_msisdn = -1; /* Msisdn */
-static int hf_gsm_map_category = -1; /* OCTET_STRING_SIZE_1 */
+static int hf_gsm_map_msisdn = -1; /* ISDN_AddressString */
+static int hf_gsm_map_category = -1; /* Category */
static int hf_gsm_map_subscriberStatus = -1; /* SubscriberStatus */
-static int hf_gsm_map_bearerServiceList = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1_5 */
-static int hf_gsm_map_bearerServiceList_item = -1; /* OCTET_STRING_SIZE_1_5 */
-static int hf_gsm_map_teleserviceList = -1; /* SEQUNCE_OF_Teleservice */
-static int hf_gsm_map_teleserviceList_item = -1; /* Teleservice */
-static int hf_gsm_map_provisionedSS = -1; /* T_provisionedSS */
-static int hf_gsm_map_provisionedSS_item = -1; /* T_provisionedSS_item */
-static int hf_gsm_map_forwardingInfo = -1; /* ForwardingInfo */
-static int hf_gsm_map_callBarringInfo = -1; /* CallBarringInfo */
-static int hf_gsm_map_cug_Info = -1; /* T_cug_Info */
-static int hf_gsm_map_cug_SubscriptionList = -1; /* T_cug_SubscriptionList */
-static int hf_gsm_map_cug_SubscriptionList_item = -1; /* T_cug_SubscriptionList_item */
-static int hf_gsm_map_cug_Index = -1; /* INTEGER_0_32767 */
-static int hf_gsm_map_cug_Interlock = -1; /* OCTET_STRING_SIZE_4 */
-static int hf_gsm_map_intraCUG_Options = -1; /* IntraCUG_Options */
-static int hf_gsm_map_basicServiceGroupList = -1; /* BasicServiceGroupList */
-static int hf_gsm_map_cug_FeatureList = -1; /* T_cug_FeatureList */
-static int hf_gsm_map_cug_FeatureList_item = -1; /* T_cug_FeatureList_item */
-static int hf_gsm_map_basicService = -1; /* BasicService */
-static int hf_gsm_map_preferentialCUG_Indicator = -1; /* INTEGER_0_32767 */
-static int hf_gsm_map_interCUG_Restrictions = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_ss_Data2 = -1; /* T_ss_Data2 */
-static int hf_gsm_map_ss_Code = -1; /* Ss_Code */
-static int hf_gsm_map_ss_Status = -1; /* Ss_Status */
-static int hf_gsm_map_ss_SubscriptionOption = -1; /* Ss_SubscriptionOption */
-static int hf_gsm_map_emlpp_Info = -1; /* T_emlpp_Info */
-static int hf_gsm_map_maximumentitledPriority = -1; /* INTEGER_0_15 */
-static int hf_gsm_map_defaultPriority = -1; /* INTEGER_0_15 */
-static int hf_gsm_map_odb_Data = -1; /* T_odb_Data */
-static int hf_gsm_map_odb_GeneralData = -1; /* Odb_GeneralData */
-static int hf_gsm_map_odb_HPLMN_Data = -1; /* Odb_HPLMN_Data */
+static int hf_gsm_map_bearerserviceList = -1; /* BearerServiceList */
+static int hf_gsm_map_teleserviceList = -1; /* TeleserviceList */
+static int hf_gsm_map_provisionedSS = -1; /* Ext_SS_InfoList */
+static int hf_gsm_map_odb_Data = -1; /* ODB_Data */
static int hf_gsm_map_roamingRestrictionDueToUnsupportedFeature = -1; /* NULL */
-static int hf_gsm_map_regionalSubscriptionData = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_2 */
-static int hf_gsm_map_regionalSubscriptionData_item = -1; /* OCTET_STRING_SIZE_2 */
-static int hf_gsm_map_vbsSubscriptionData = -1; /* T_vbsSubscriptionData */
-static int hf_gsm_map_vbsSubscriptionData_item = -1; /* T_vbsSubscriptionData_item */
-static int hf_gsm_map_groupid = -1; /* OCTET_STRING_SIZE_3 */
-static int hf_gsm_map_broadcastInitEntitlement = -1; /* NULL */
-static int hf_gsm_map_vgcsSubscriptionData = -1; /* T_vgcsSubscriptionData */
-static int hf_gsm_map_vgcsSubscriptionData_item = -1; /* T_vgcsSubscriptionData_item */
-static int hf_gsm_map_groupId = -1; /* OCTET_STRING_SIZE_3 */
-static int hf_gsm_map_vlrCamelSubscriptionInfo = -1; /* T_vlrCamelSubscriptionInfo */
-static int hf_gsm_map_o_CSI = -1; /* O_CSI */
-static int hf_gsm_map_ss_CSI = -1; /* T_ss_CSI */
-static int hf_gsm_map_ss_CamelData = -1; /* T_ss_CamelData */
-static int hf_gsm_map_ss_EventList = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_ss_EventList_item = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_gsmSCF_Address = -1; /* GsmSCF_Address */
-static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDP_CriteriaList */
-static int hf_gsm_map_tif_CSI = -1; /* NULL */
-static int hf_gsm_map_naea_PreferredCI = -1; /* Naea_PreferredCI */
-static int hf_gsm_map_gprsSubscriptionData = -1; /* T_gprsSubscriptionData */
-static int hf_gsm_map_completeDataListIncluded = -1; /* NULL */
-static int hf_gsm_map_gprsDataList = -1; /* T_gprsDataList */
-static int hf_gsm_map_gprsDataList_item = -1; /* T_gprsDataList_item */
-static int hf_gsm_map_pdp_ContextId = -1; /* INTEGER_1_50 */
-static int hf_gsm_map_pdp_Type = -1; /* OCTET_STRING_SIZE_2 */
-static int hf_gsm_map_pdp_Address = -1; /* OCTET_STRING_SIZE_1_16 */
-static int hf_gsm_map_qos_Subscribed = -1; /* OCTET_STRING_SIZE_3 */
-static int hf_gsm_map_vplmnAddressAllowed = -1; /* NULL */
-static int hf_gsm_map_apn = -1; /* OCTET_STRING_SIZE_2_63 */
+static int hf_gsm_map_regionalSubscriptionData = -1; /* ZoneCodeList */
+static int hf_gsm_map_vbsSubscriptionData = -1; /* VBSDataList */
+static int hf_gsm_map_vgcsSubscriptionData = -1; /* VGCSDataList */
+static int hf_gsm_map_vlrCamelSubscriptionInfo = -1; /* VlrCamelSubscriptionInfo */
+static int hf_gsm_map_naea_PreferredCI = -1; /* NAEA_PreferredCI */
+static int hf_gsm_map_gprsSubscriptionData = -1; /* GPRSSubscriptionData */
static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature = -1; /* NULL */
-static int hf_gsm_map_networkAccessMode = -1; /* T_networkAccessMode */
-static int hf_gsm_map_lsaInformation = -1; /* T_lsaInformation */
-static int hf_gsm_map_lsaOnlyAccessIndicator = -1; /* T_lsaOnlyAccessIndicator */
-static int hf_gsm_map_lsaDataList = -1; /* T_lsaDataList */
-static int hf_gsm_map_lsaDataList_item = -1; /* T_lsaDataList_item */
-static int hf_gsm_map_lsaIdentity = -1; /* OCTET_STRING_SIZE_3 */
-static int hf_gsm_map_lsaAttributes = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_lsaActiveModeIndicator = -1; /* NULL */
+static int hf_gsm_map_networkAccessMode = -1; /* NetworkAccessMode */
+static int hf_gsm_map_lsaInformation = -1; /* LSAInformation */
static int hf_gsm_map_lmu_Indicator = -1; /* NULL */
-static int hf_gsm_map_lcsInformation = -1; /* T_lcsInformation */
-static int hf_gsm_map_gmlc_List = -1; /* T_gmlc_List */
-static int hf_gsm_map_gmlc_List_item = -1; /* T_gmlc_List_item */
-static int hf_gsm_map_lcs_PrivacyExceptionList = -1; /* T_lcs_PrivacyExceptionList */
-static int hf_gsm_map_lcs_PrivacyExceptionList_item = -1; /* T_lcs_PrivacyExceptionList_item */
-static int hf_gsm_map_notificationToMSUser = -1; /* NotificationToMSUser */
-static int hf_gsm_map_externalClientList = -1; /* T_externalClientList */
-static int hf_gsm_map_externalClientList_item = -1; /* T_externalClientList_item */
-static int hf_gsm_map_clientIdentity = -1; /* T_clientIdentity */
-static int hf_gsm_map_externalAddress = -1; /* OCTET_STRING_SIZE_1_20 */
-static int hf_gsm_map_gmlc_Restriction = -1; /* T_gmlc_Restriction */
-static int hf_gsm_map_plmnClientList = -1; /* T_plmnClientList */
-static int hf_gsm_map_plmnClientList_item = -1; /* T_plmnClientList_item */
-static int hf_gsm_map_molr_List = -1; /* T_molr_List */
-static int hf_gsm_map_molr_List_item = -1; /* T_molr_List_item */
-static int hf_gsm_map_ss_List = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_ss_List_item = -1; /* OCTET_STRING_SIZE_1 */
+static int hf_gsm_map_lcsInformation = -1; /* LCSInformation */
+static int hf_gsm_map_istAlertTimer = -1; /* IST_AlertTimerValue */
+static int hf_gsm_map_superChargerSupportedInHLR = -1; /* AgeIndicator */
+static int hf_gsm_map_mc_SS_Info = -1; /* MC_SS_Info */
+static int hf_gsm_map_cs_AllocationRetentionPriority = -1; /* CS_AllocationRetentionPriority */
+static int hf_gsm_map_sgsn_CAMEL_SubscriptionInfo = -1; /* SGSN_CAMEL_SubscriptionInfo */
+static int hf_gsm_map_chargingCharacteristics = -1; /* ChargingCharacteristics */
+static int hf_gsm_map_accessRestrictionData = -1; /* AccessRestrictionData */
+static int hf_gsm_map_gmlc_List = -1; /* GMLC_List */
+static int hf_gsm_map_lcs_PrivacyExceptionList = -1; /* LCS_PrivacyExceptionList */
+static int hf_gsm_map_molr_List = -1; /* MOLR_List */
+static int hf_gsm_map_add_lcs_PrivacyExceptionList = -1; /* LCS_PrivacyExceptionList */
+static int hf_gsm_map_GMLC_List_item = -1; /* ISDN_AddressString */
+static int hf_gsm_map_GPRSDataList_item = -1; /* PDP_Context */
+static int hf_gsm_map_pdp_ContextId = -1; /* ContextId */
+static int hf_gsm_map_pdp_Type = -1; /* PDP_Type */
+static int hf_gsm_map_pdp_Address = -1; /* PDP_Address */
+static int hf_gsm_map_qos_Subscribed = -1; /* QoS_Subscribed */
+static int hf_gsm_map_vplmnAddressAllowed = -1; /* NULL */
+static int hf_gsm_map_apn = -1; /* APN */
+static int hf_gsm_map_ext_QoS_Subscribed = -1; /* Ext_QoS_Subscribed */
+static int hf_gsm_map_pdp_ChargingCharacteristics = -1; /* ChargingCharacteristics */
+static int hf_gsm_map_ext2_QoS_Subscribed = -1; /* Ext2_QoS_Subscribed */
+static int hf_gsm_map_completeDataListIncluded = -1; /* NULL */
+static int hf_gsm_map_gprsDataList = -1; /* GPRSDataList */
+static int hf_gsm_map_gprs_CSI = -1; /* GPRS_CSI */
+static int hf_gsm_map_mo_sms_CSI = -1; /* SMS_CSI */
+static int hf_gsm_map_mt_sms_CSI = -1; /* SMS_CSI */
+static int hf_gsm_map_mt_smsCAMELTDP_CriteriaList = -1; /* MT_smsCAMELTDP_CriteriaList */
+static int hf_gsm_map_mg_csi = -1; /* MG_CSI */
+static int hf_gsm_map_gprs_CamelTDPDataList = -1; /* GPRS_CamelTDPDataList */
+static int hf_gsm_map_csi_Active = -1; /* NULL */
+static int hf_gsm_map_GPRS_CamelTDPDataList_item = -1; /* GPRS_CamelTDPData */
+static int hf_gsm_map_gprs_TriggerDetectionPoint = -1; /* GPRS_TriggerDetectionPoint */
+static int hf_gsm_map_defaultSessionHandling = -1; /* DefaultGPRS_Handling */
+static int hf_gsm_map_LSADataList_item = -1; /* LSAData */
+static int hf_gsm_map_lsaIdentity = -1; /* LSAIdentity */
+static int hf_gsm_map_lsaAttributes = -1; /* LSAAttributes */
+static int hf_gsm_map_lsaActiveModeIndicator = -1; /* NULL */
+static int hf_gsm_map_lsaOnlyAccessIndicator = -1; /* LSAOnlyAccessIndicator */
+static int hf_gsm_map_lsaDataList = -1; /* LSADataList */
+static int hf_gsm_map_bearerServiceList = -1; /* BearerServiceList */
+static int hf_gsm_map_ss_List = -1; /* SS_List */
+static int hf_gsm_map_odb_GeneralData = -1; /* ODB_GeneralData */
static int hf_gsm_map_regionalSubscriptionResponse = -1; /* RegionalSubscriptionResponse */
-static int hf_gsm_map_callBarringFeatureList = -1; /* T_callBarringFeatureList */
-static int hf_gsm_map_callBarringFeatureList_item = -1; /* T_callBarringFeatureList_item */
-static int hf_gsm_map_forwardedToNumber = -1; /* ForwardedToNumber */
-static int hf_gsm_map_forwardedToSubaddress = -1; /* ForwardedToSubaddress */
-static int hf_gsm_map_forwardingOptions = -1; /* ForwardingOptions */
-static int hf_gsm_map_noReplyConditionTime = -1; /* INTEGER */
-static int hf_gsm_map_matchType = -1; /* MatchType */
-static int hf_gsm_map_destinationNumberList = -1; /* T_destinationNumberList */
-static int hf_gsm_map_destinationNumberList_item = -1; /* T_destinationNumberList_item */
-static int hf_gsm_map_destinationNumberLengthList = -1; /* SEQUNCE_OF_INTEGER_1_15 */
-static int hf_gsm_map_destinationNumberLengthList_item = -1; /* INTEGER_1_15 */
-static int hf_gsm_map_forwardingFeatureList = -1; /* SEQUNCE_OF_ForwardingFeatureList */
-static int hf_gsm_map_forwardingFeatureList_item = -1; /* ForwardingFeatureList */
-static int hf_gsm_map_naea_PreferredCIC = -1; /* OCTET_STRING_SIZE_3 */
-static int hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1; /* O_BcsmCamelTDP_CriteriaList_item */
-static int hf_gsm_map_o_BcsmTriggerDetectionPoint = -1; /* BcsmTriggerDetectionPoint */
-static int hf_gsm_map_destinationNumberCriteria = -1; /* DestinationNumberCriteria */
-static int hf_gsm_map_basicServiceCriteria = -1; /* BasicServiceGroupList */
-static int hf_gsm_map_callTypeCriteria = -1; /* CallTypeCriteria */
-static int hf_gsm_map_cliRestrictionOption = -1; /* CliRestrictionOption */
-static int hf_gsm_map_overrideCategory = -1; /* OverrideCategory */
-static int hf_gsm_map_basicServiceList = -1; /* BasicServiceGroupList */
-static int hf_gsm_map_regionalSubscriptionIdentifier = -1; /* OCTET_STRING_SIZE_2 */
+static int hf_gsm_map_basicServiceList = -1; /* BasicServiceList */
+static int hf_gsm_map_regionalSubscriptionIdentifier = -1; /* ZoneCode */
static int hf_gsm_map_vbsGroupIndication = -1; /* NULL */
static int hf_gsm_map_vgcsGroupIndication = -1; /* NULL */
static int hf_gsm_map_camelSubscriptionInfoWithdraw = -1; /* NULL */
-static int hf_gsm_map_gprsSubscriptionDataWithdraw = -1; /* T_gprsSubscriptionDataWithdraw */
-static int hf_gsm_map_allGPRSData = -1; /* NULL */
-static int hf_gsm_map_contextIdList = -1; /* SEQUNCE_OF_INTEGER_1_50 */
-static int hf_gsm_map_contextIdList_item = -1; /* INTEGER_1_50 */
+static int hf_gsm_map_gprsSubscriptionDataWithdraw = -1; /* GPRSSubscriptionDataWithdraw */
static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1; /* NULL */
-static int hf_gsm_map_lsaInformationWithdraw = -1; /* T_lsaInformationWithdraw */
-static int hf_gsm_map_allLSAData = -1; /* NULL */
-static int hf_gsm_map_lsaIdentityList = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_3 */
-static int hf_gsm_map_lsaIdentityList_item = -1; /* OCTET_STRING_SIZE_3 */
+static int hf_gsm_map_lsaInformationWithdraw = -1; /* LSAInformationWithdraw */
static int hf_gsm_map_gmlc_ListWithdraw = -1; /* NULL */
-static int hf_gsm_map_hlr_List = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_3_8 */
-static int hf_gsm_map_hlr_List_item = -1; /* OCTET_STRING_SIZE_3_8 */
+static int hf_gsm_map_istInformationWithdraw = -1; /* NULL */
+static int hf_gsm_map_specificCSI_Withdraw = -1; /* SpecificCSI_Withdraw */
+static int hf_gsm_map_chargingCharacteristicsWithdraw = -1; /* NULL */
+static int hf_gsm_map_allGPRSData = -1; /* NULL */
+static int hf_gsm_map_contextIdList = -1; /* ContextIdList */
+static int hf_gsm_map_ContextIdList_item = -1; /* ContextId */
+static int hf_gsm_map_allLSAData = -1; /* NULL */
+static int hf_gsm_map_lsaIdentityList = -1; /* LSAIdentityList */
+static int hf_gsm_map_LSAIdentityList_item = -1; /* LSAIdentity */
+static int hf_gsm_map_BasicServiceList_item = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_o_CSI = -1; /* O_CSI */
+static int hf_gsm_map_ss_CSI = -1; /* SS_CSI */
+static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */
+static int hf_gsm_map_tif_CSI = -1; /* NULL */
+static int hf_gsm_map_m_CSI = -1; /* M_CSI */
+static int hf_gsm_map_vt_CSI = -1; /* T_CSI */
+static int hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */
+static int hf_gsm_map_d_CSI = -1; /* D_CSI */
+static int hf_gsm_map_MT_smsCAMELTDP_CriteriaList_item = -1; /* MT_smsCAMELTDP_Criteria */
+static int hf_gsm_map_sms_TriggerDetectionPoint = -1; /* SMS_TriggerDetectionPoint */
+static int hf_gsm_map_tpdu_TypeCriterion = -1; /* TPDU_TypeCriterion */
+static int hf_gsm_map_TPDU_TypeCriterion_item = -1; /* MT_SMS_TPDU_Type */
+static int hf_gsm_map_dp_AnalysedInfoCriteriaList = -1; /* DP_AnalysedInfoCriteriaList */
+static int hf_gsm_map_DP_AnalysedInfoCriteriaList_item = -1; /* DP_AnalysedInfoCriterium */
+static int hf_gsm_map_dialledNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_ss_CamelData = -1; /* SS_CamelData */
+static int hf_gsm_map_ss_EventList = -1; /* SS_EventList */
+static int hf_gsm_map_mobilityTriggers = -1; /* MobilityTriggers */
+static int hf_gsm_map_BearerServiceList_item = -1; /* Ext_BearerServiceCode */
+static int hf_gsm_map_TeleserviceList_item = -1; /* Ext_TeleserviceCode */
+static int hf_gsm_map_Ext_SS_InfoList_item = -1; /* Ext_SS_Info */
+static int hf_gsm_map_ext_forwardingInfo = -1; /* Ext_ForwInfo */
+static int hf_gsm_map_ext_callBarringInfo = -1; /* Ext_CallBarInfo */
+static int hf_gsm_map_cug_Info = -1; /* CUG_Info */
+static int hf_gsm_map_ext_ss_Data = -1; /* Ext_SS_Data */
+static int hf_gsm_map_emlpp_Info = -1; /* EMLPP_Info */
+static int hf_gsm_map_ss_Code = -1; /* SS_Code */
+static int hf_gsm_map_ext_forwardingFeatureList = -1; /* Ext_ForwFeatureList */
+static int hf_gsm_map_Ext_ForwFeatureList_item = -1; /* Ext_ForwFeature */
+static int hf_gsm_map_ext_basicService = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_ext_ss_Status = -1; /* Ext_SS_Status */
+static int hf_gsm_map_forwardedToNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_forwardedToSubaddress = -1; /* ISDN_SubaddressString */
+static int hf_gsm_map_ext_forwardingOptions = -1; /* T_ext_forwardingOptions */
+static int hf_gsm_map_ext_noReplyConditionTime = -1; /* Ext_NoRepCondTime */
+static int hf_gsm_map_longForwardedToNumber = -1; /* FTN_AddressString */
+static int hf_gsm_map_ext_callBarringFeatureList = -1; /* Ext_CallBarFeatureList */
+static int hf_gsm_map_Ext_CallBarFeatureList_item = -1; /* Ext_CallBarringFeature */
+static int hf_gsm_map_ZoneCodeList_item = -1; /* ZoneCode */
+static int hf_gsm_map_maximumentitledPriority = -1; /* EMLPP_Priority */
+static int hf_gsm_map_defaultPriority = -1; /* EMLPP_Priority */
+static int hf_gsm_map_cug_SubscriptionList = -1; /* CUG_SubscriptionList */
+static int hf_gsm_map_cug_FeatureList = -1; /* CUG_FeatureList */
+static int hf_gsm_map_CUG_SubscriptionList_item = -1; /* CUG_Subscription */
+static int hf_gsm_map_cug_Index = -1; /* CUG_Index */
+static int hf_gsm_map_cug_Interlock = -1; /* CUG_Interlock */
+static int hf_gsm_map_intraCUG_Options = -1; /* IntraCUG_Options */
+static int hf_gsm_map_basicServiceGroupList = -1; /* Ext_BasicServiceGroupList */
+static int hf_gsm_map_CUG_FeatureList_item = -1; /* CUG_Feature */
+static int hf_gsm_map_Ext_BasicServiceGroupList_item = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_preferentialCUG_Indicator = -1; /* CUG_Index */
+static int hf_gsm_map_interCUG_Restrictions = -1; /* InterCUG_Restrictions */
+static int hf_gsm_map_ss_SubscriptionOption = -1; /* SS_SubscriptionOption */
+static int hf_gsm_map_LCS_PrivacyExceptionList_item = -1; /* LCS_PrivacyClass */
+static int hf_gsm_map_notificationToMSUser = -1; /* NotificationToMSUser */
+static int hf_gsm_map_externalClientList = -1; /* ExternalClientList */
+static int hf_gsm_map_plmnClientList = -1; /* PLMNClientList */
+static int hf_gsm_map_ext_externalClientList = -1; /* Ext_ExternalClientList */
+static int hf_gsm_map_serviceTypeList = -1; /* ServiceTypeList */
+static int hf_gsm_map_ExternalClientList_item = -1; /* ExternalClient */
+static int hf_gsm_map_PLMNClientList_item = -1; /* LCSClientInternalID */
+static int hf_gsm_map_Ext_ExternalClientList_item = -1; /* ExternalClient */
+static int hf_gsm_map_clientIdentity = -1; /* LCSClientExternalID */
+static int hf_gsm_map_gmlc_Restriction = -1; /* GMLC_Restriction */
+static int hf_gsm_map_ServiceTypeList_item = -1; /* ServiceType */
+static int hf_gsm_map_serviceTypeIdentity = -1; /* LCSServiceTypeID */
+static int hf_gsm_map_MOLR_List_item = -1; /* MOLR_Class */
+static int hf_gsm_map_CallBarringFeatureList_item = -1; /* CallBarringFeature */
+static int hf_gsm_map_basicService = -1; /* BasicServiceCode */
+static int hf_gsm_map_ss_Status = -1; /* SS_Status */
+static int hf_gsm_map_ForwardingFeatureList_item = -1; /* ForwardingFeature */
+static int hf_gsm_map_forwardingOptions = -1; /* ForwardingOptions */
+static int hf_gsm_map_noReplyConditionTime = -1; /* NoReplyConditionTime */
+static int hf_gsm_map_matchType = -1; /* MatchType */
+static int hf_gsm_map_destinationNumberList = -1; /* DestinationNumberList */
+static int hf_gsm_map_destinationNumberLengthList = -1; /* DestinationNumberLengthList */
+static int hf_gsm_map_DestinationNumberList_item = -1; /* ISDN_AddressString */
+static int hf_gsm_map_DestinationNumberLengthList_item = -1; /* INTEGER_1_15 */
+static int hf_gsm_map_forwardingFeatureList = -1; /* ForwardingFeatureList */
+static int hf_gsm_map_callBarringFeatureList = -1; /* CallBarringFeatureList */
+static int hf_gsm_map_nbrSB = -1; /* MaxMC_Bearers */
+static int hf_gsm_map_nbrUser = -1; /* MC_Bearers */
+static int hf_gsm_map_hlr_List = -1; /* HLR_List */
static int hf_gsm_map_msNotReachable = -1; /* NULL */
-static int hf_gsm_map_traceReference = -1; /* OCTET_STRING_SIZE_1_2 */
-static int hf_gsm_map_traceType = -1; /* INTEGER_0_255 */
-static int hf_gsm_map_omc_Id = -1; /* OCTET_STRING_SIZE_1_20 */
-static int hf_gsm_map_cug_CheckInfo = -1; /* Cug_CheckInfo */
-static int hf_gsm_map_numberOfForwarding = -1; /* INTEGER_1_5 */
-static int hf_gsm_map_interrogationType = -1; /* T_interrogationType */
+static int hf_gsm_map_VBSDataList_item = -1; /* VoiceBroadcastData */
+static int hf_gsm_map_VGCSDataList_item = -1; /* VoiceGroupCallData */
+static int hf_gsm_map_groupId = -1; /* GroupId */
+static int hf_gsm_map_groupid = -1; /* GroupId */
+static int hf_gsm_map_broadcastInitEntitlement = -1; /* NULL */
+static int hf_gsm_map_additionalSubscriptions = -1; /* AdditionalSubscriptions */
+static int hf_gsm_map_additionalInfo = -1; /* AdditionalInfo */
+static int hf_gsm_map_traceReference = -1; /* TraceReference */
+static int hf_gsm_map_traceType = -1; /* TraceType */
+static int hf_gsm_map_omc_Id = -1; /* AddressString */
+static int hf_gsm_map_traceReference2 = -1; /* TraceReference2 */
+static int hf_gsm_map_traceDepthList = -1; /* TraceDepthList */
+static int hf_gsm_map_traceNE_TypeList = -1; /* TraceNE_TypeList */
+static int hf_gsm_map_traceInterfaceList = -1; /* TraceInterfaceList */
+static int hf_gsm_map_traceEventList = -1; /* TraceEventList */
+static int hf_gsm_map_msc_s_TraceDepth = -1; /* TraceDepth */
+static int hf_gsm_map_mgw_TraceDepth = -1; /* TraceDepth */
+static int hf_gsm_map_sgsn_TraceDepth = -1; /* TraceDepth */
+static int hf_gsm_map_ggsn_TraceDepth = -1; /* TraceDepth */
+static int hf_gsm_map_rnc_TraceDepth = -1; /* TraceDepth */
+static int hf_gsm_map_bmsc_TraceDepth = -1; /* TraceDepth */
+static int hf_gsm_map_msc_s_IList = -1; /* MSC_S_InterfaceList */
+static int hf_gsm_map_mgw_IList = -1; /* MGW_InterfaceList */
+static int hf_gsm_map_sgsn_IList = -1; /* SGSN_InterfaceList */
+static int hf_gsm_map_ggsn_IList = -1; /* GGSN_InterfaceList */
+static int hf_gsm_map_rnc_IList = -1; /* RNC_InterfaceList */
+static int hf_gsm_map_bmsc_IList = -1; /* BMSC_InterfaceList */
+static int hf_gsm_map_msc_s_EList = -1; /* MSC_S_EventList */
+static int hf_gsm_map_mgw_EList = -1; /* MGW_EventList */
+static int hf_gsm_map_sgsn_EList = -1; /* SGSN_EventList */
+static int hf_gsm_map_ggsn_EList = -1; /* GGSN_EventList */
+static int hf_gsm_map_bmsc_EList = -1; /* BMSC_EventList */
+static int hf_gsm_map_traceRecordingSessionReference = -1; /* TraceRecordingSessionReference */
+static int hf_gsm_map_rnc_InterfaceList = -1; /* RNC_InterfaceList */
+static int hf_gsm_map_msc_s_InterfaceList = -1; /* MSC_S_InterfaceList */
+static int hf_gsm_map_msc_s_EventList = -1; /* MSC_S_EventList */
+static int hf_gsm_map_mgw_InterfaceList = -1; /* MGW_InterfaceList */
+static int hf_gsm_map_mgw_EventList = -1; /* MGW_EventList */
+static int hf_gsm_map_traceSupportIndicator = -1; /* NULL */
+static int hf_gsm_map_cug_CheckInfo = -1; /* CUG_CheckInfo */
+static int hf_gsm_map_numberOfForwarding = -1; /* NumberOfForwarding */
+static int hf_gsm_map_interrogationType = -1; /* InterrogationType */
static int hf_gsm_map_or_Interrogation = -1; /* NULL */
-static int hf_gsm_map_or_Capability = -1; /* INTEGER_1_127 */
-static int hf_gsm_map_gmsc_Address = -1; /* Gmsc_Address */
-static int hf_gsm_map_callReferenceNumber = -1; /* OCTET_STRING_SIZE_1_8 */
-static int hf_gsm_map_forwardingReason = -1; /* T_forwardingReason */
-static int hf_gsm_map_basicServiceGroup = -1; /* BasicService */
-static int hf_gsm_map_networkSignalInfo = -1; /* Bss_APDU */
-static int hf_gsm_map_camelInfo = -1; /* T_camelInfo */
-static int hf_gsm_map_suppress_T_CSI = -1; /* NULL */
-static int hf_gsm_map_suppressionOfAnnouncement = -1; /* NULL */
-static int hf_gsm_map_alertingPattern = -1; /* OCTET_STRING_SIZE_1 */
+static int hf_gsm_map_or_Capability = -1; /* OR_Phase */
+static int hf_gsm_map_gmsc_OrGsmSCF_Address = -1; /* ISDN_AddressString */
+static int hf_gsm_map_callReferenceNumber = -1; /* CallReferenceNumber */
+static int hf_gsm_map_forwardingReason = -1; /* ForwardingReason */
+static int hf_gsm_map_ext_basicServiceGroup = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_networkSignalInfo = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_camelInfo = -1; /* CamelInfo */
+static int hf_gsm_map_suppressionOfAnnouncement = -1; /* SuppressionOfAnnouncement */
+static int hf_gsm_map_alertingPattern = -1; /* AlertingPattern */
static int hf_gsm_map_ccbs_Call = -1; /* NULL */
-static int hf_gsm_map_supportedCCBS_Phase = -1; /* INTEGER_1_127 */
-static int hf_gsm_map_additionalSignalInfo = -1; /* AdditionalSignalInfo */
-static int hf_gsm_map_extendedRoutingInfo = -1; /* T_extendedRoutingInfo */
-static int hf_gsm_map_routingInfo = -1; /* T_routingInfo */
-static int hf_gsm_map_roamingNumber = -1; /* RoamingNumber */
-static int hf_gsm_map_forwardingData = -1; /* ForwardingData */
-static int hf_gsm_map_camelRoutingInfo = -1; /* T_camelRoutingInfo */
-static int hf_gsm_map_gmscCamelSubscriptionInfo = -1; /* T_gmscCamelSubscriptionInfo */
-static int hf_gsm_map_t_CSI = -1; /* T_t_CSI */
-static int hf_gsm_map_t_BcsmCamelTDPDataList = -1; /* BcsmCamelTDPDataList */
+static int hf_gsm_map_supportedCCBS_Phase = -1; /* SupportedCCBS_Phase */
+static int hf_gsm_map_additionalSignalInfo = -1; /* Ext_ExternalSignalInfo */
+static int hf_gsm_map_pre_pagingSupported = -1; /* NULL */
+static int hf_gsm_map_callDiversionTreatmentIndicator = -1; /* CallDiversionTreatmentIndicator */
+static int hf_gsm_map_suppress_VT_CSI = -1; /* NULL */
+static int hf_gsm_map_suppressIncomingCallBarring = -1; /* NULL */
+static int hf_gsm_map_gsmSCF_InitiatedCall = -1; /* NULL */
+static int hf_gsm_map_basicServiceGroup2 = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_networkSignalInfo2 = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_extendedRoutingInfo = -1; /* ExtendedRoutingInfo */
static int hf_gsm_map_cugSubscriptionFlag = -1; /* NULL */
static int hf_gsm_map_subscriberInfo = -1; /* SubscriberInfo */
static int hf_gsm_map_forwardingInterrogationRequired = -1; /* NULL */
-static int hf_gsm_map_vmsc_Address = -1; /* T_vmsc_Address */
-static int hf_gsm_map_ccbs_Indicators = -1; /* T_ccbs_Indicators */
+static int hf_gsm_map_vmsc_Address = -1; /* ISDN_AddressString */
+static int hf_gsm_map_ccbs_Indicators = -1; /* CCBS_Indicators */
+static int hf_gsm_map_numberPortabilityStatus = -1; /* NumberPortabilityStatus */
+static int hf_gsm_map_supportedCamelPhasesInVMSC = -1; /* SupportedCamelPhases */
+static int hf_gsm_map_offeredCamel4CSIsInVMSC = -1; /* OfferedCamel4CSIs */
+static int hf_gsm_map_routingInfo2 = -1; /* RoutingInfo */
+static int hf_gsm_map_ss_List2 = -1; /* SS_List */
+static int hf_gsm_map_basicService2 = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_allowedServices = -1; /* AllowedServices */
+static int hf_gsm_map_unavailabilityCause = -1; /* UnavailabilityCause */
+static int hf_gsm_map_releaseResourcesSupported = -1; /* NULL */
+static int hf_gsm_map_gsm_BearerCapability = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_ext_ProtocolId = -1; /* Ext_ProtocolId */
+static int hf_gsm_map_accessNetworkProtocolId = -1; /* AccessNetworkProtocolId */
+static int hf_gsm_map_longsignalInfo = -1; /* LongSignalInfo */
+static int hf_gsm_map_suppress_T_CSI = -1; /* NULL */
+static int hf_gsm_map_HLR_List_item = -1; /* HLR_Id */
+static int hf_gsm_map_SS_List_item = -1; /* SS_Code */
+static int hf_gsm_map_naea_PreferredCIC = -1; /* NAEA_CIC */
+static int hf_gsm_map_externalAddress = -1; /* ISDN_AddressString */
+static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */
+static int hf_gsm_map_laiFixedLength = -1; /* LAIFixedLength */
static int hf_gsm_map_ccbs_Possible = -1; /* NULL */
static int hf_gsm_map_keepCCBS_CallIndicator = -1; /* NULL */
-static int hf_gsm_map_numberPortabilityStatus = -1; /* T_numberPortabilityStatus */
+static int hf_gsm_map_roamingNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_forwardingData = -1; /* ForwardingData */
+static int hf_gsm_map_routingInfo = -1; /* RoutingInfo */
+static int hf_gsm_map_camelRoutingInfo = -1; /* CamelRoutingInfo */
+static int hf_gsm_map_gmscCamelSubscriptionInfo = -1; /* GmscCamelSubscriptionInfo */
+static int hf_gsm_map_t_CSI = -1; /* T_CSI */
+static int hf_gsm_map_d_csi = -1; /* D_CSI */
+static int hf_gsm_map_ageOfLocationInformation = -1; /* AgeOfLocationInformation */
+static int hf_gsm_map_geographicalInformation = -1; /* GeographicalInformation */
+static int hf_gsm_map_vlr_number = -1; /* ISDN_AddressString */
+static int hf_gsm_map_locationNumber = -1; /* LocationNumber */
+static int hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */
+static int hf_gsm_map_selectedLSA_Id = -1; /* LSAIdentity */
+static int hf_gsm_map_geodeticInformation = -1; /* GeodeticInformation */
+static int hf_gsm_map_currentLocationRetrieved = -1; /* NULL */
+static int hf_gsm_map_sai_Present = -1; /* NULL */
+static int hf_gsm_map_routeingAreaIdentity = -1; /* RAIdentity */
+static int hf_gsm_map_selectedLSAIdentity = -1; /* LSAIdentity */
static int hf_gsm_map_assumedIdle = -1; /* NULL */
static int hf_gsm_map_camelBusy = -1; /* NULL */
+static int hf_gsm_map_netDetNotReachable = -1; /* NotReachableReason */
static int hf_gsm_map_notProvidedFromVLR = -1; /* NULL */
-static int hf_gsm_map_ageOfLocationInformation = -1; /* INTEGER_0_32767 */
-static int hf_gsm_map_geographicalInformation = -1; /* OCTET_STRING_SIZE_8 */
-static int hf_gsm_map_vlr_number = -1; /* Vlr_Number */
-static int hf_gsm_map_locationNumber = -1; /* OCTET_STRING_SIZE_2_10 */
-static int hf_gsm_map_cellIdOrLAI = -1; /* T_cellIdOrLAI */
-static int hf_gsm_map_cellIdFixedLength = -1; /* OCTET_STRING_SIZE_7 */
-static int hf_gsm_map_laiFixedLength = -1; /* OCTET_STRING_SIZE_5 */
-static int hf_gsm_map_locationInformation = -1; /* LocationInformation */
-static int hf_gsm_map_subscriberState = -1; /* SubscriberState */
-static int hf_gsm_map_ext_ProtocolId = -1; /* T_ext_ProtocolId */
+static int hf_gsm_map_notProvidedFromSGSN = -1; /* NULL */
+static int hf_gsm_map_ps_Detached = -1; /* NULL */
+static int hf_gsm_map_ps_AttachedNotReachableForPaging = -1; /* NULL */
+static int hf_gsm_map_ps_AttachedReachableForPaging = -1; /* NULL */
+static int hf_gsm_map_ps_PDP_ActiveNotReachableForPaging = -1; /* PDP_ContextInfoList */
+static int hf_gsm_map_ps_PDP_ActiveReachableForPaging = -1; /* PDP_ContextInfoList */
+static int hf_gsm_map_PDP_ContextInfoList_item = -1; /* PDP_ContextInfo */
+static int hf_gsm_map_pdp_ContextIdentifier = -1; /* ContextId */
+static int hf_gsm_map_pdp_ContextActive = -1; /* NULL */
+static int hf_gsm_map_apn_Subscribed = -1; /* APN */
+static int hf_gsm_map_apn_InUse = -1; /* APN */
+static int hf_gsm_map_nsapi = -1; /* NSAPI */
+static int hf_gsm_map_transactionId = -1; /* TransactionId */
+static int hf_gsm_map_teid_ForGnAndGp = -1; /* TEID */
+static int hf_gsm_map_teid_ForIu = -1; /* TEID */
+static int hf_gsm_map_ggsn_Address = -1; /* GSN_Address */
+static int hf_gsm_map_ext_qos_Subscribed = -1; /* Ext_QoS_Subscribed */
+static int hf_gsm_map_qos_Requested = -1; /* Ext_QoS_Subscribed */
+static int hf_gsm_map_qos_Negotiated = -1; /* Ext_QoS_Subscribed */
+static int hf_gsm_map_chargingId = -1; /* GPRSChargingID */
+static int hf_gsm_map_rnc_Address = -1; /* GSN_Address */
+static int hf_gsm_map_qos2_Subscribed = -1; /* Ext2_QoS_Subscribed */
+static int hf_gsm_map_qos2_Requested = -1; /* Ext2_QoS_Subscribed */
+static int hf_gsm_map_qos2_Negotiated = -1; /* Ext2_QoS_Subscribed */
static int hf_gsm_map_cug_OutgoingAccess = -1; /* NULL */
-static int hf_gsm_map_gsm_BearerCapability = -1; /* Bss_APDU */
-static int hf_gsm_map_supportedCamelPhasesInGMSC = -1; /* SupportedCamelPhases */
+static int hf_gsm_map_gmsc_Address = -1; /* ISDN_AddressString */
+static int hf_gsm_map_supportedCamelPhasesInInterrogatingNode = -1; /* SupportedCamelPhases */
static int hf_gsm_map_orNotSupportedInGMSC = -1; /* NULL */
-static int hf_gsm_map_uu_Data = -1; /* T_uu_Data */
-static int hf_gsm_map_uuIndicator = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_uui = -1; /* OCTET_STRING_SIZE_1_131 */
-static int hf_gsm_map_uusCFInteraction = -1; /* NULL */
+static int hf_gsm_map_offeredCamel4CSIsInInterrogatingNode = -1; /* OfferedCamel4CSIs */
+static int hf_gsm_map_uu_Data = -1; /* UU_Data */
static int hf_gsm_map_allInformationSent = -1; /* NULL */
-static int hf_gsm_map_isdn_BearerCapability = -1; /* Bss_APDU */
-static int hf_gsm_map_call_Direction = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_b_Subscriber_Address = -1; /* T_b_Subscriber_Address */
-static int hf_gsm_map_chosenChannel = -1; /* Bss_APDU */
-static int hf_gsm_map_lowerLayerCompatibility = -1; /* Bss_APDU */
-static int hf_gsm_map_highLayerCompatibility = -1; /* Bss_APDU */
-static int hf_gsm_map_sIWFSNumber = -1; /* T_sIWFSNumber */
-static int hf_gsm_map_channelType = -1; /* Bss_APDU */
-static int hf_gsm_map_ccbs_Monitoring = -1; /* Ccbs_Monitoring */
-static int hf_gsm_map_ccbs_SubscriberStatus = -1; /* Ccbs_SubscriberStatus */
-static int hf_gsm_map_eventReportData = -1; /* T_eventReportData */
-static int hf_gsm_map_callReportdata = -1; /* T_callReportdata */
+static int hf_gsm_map_o_BcsmCamelTDPCriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */
+static int hf_gsm_map_uuIndicator = -1; /* UUIndicator */
+static int hf_gsm_map_uui = -1; /* UUI */
+static int hf_gsm_map_uusCFInteraction = -1; /* NULL */
+static int hf_gsm_map_isdn_BearerCapability = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_call_Direction = -1; /* CallDirection */
+static int hf_gsm_map_b_Subscriber_Address = -1; /* ISDN_AddressString */
+static int hf_gsm_map_chosenChannel = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_lowerLayerCompatibility = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_highLayerCompatibility = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_sIWFSNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_channelType = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_ccbs_Monitoring = -1; /* ReportingState */
+static int hf_gsm_map_ccbs_SubscriberStatus = -1; /* CCBS_SubscriberStatus */
+static int hf_gsm_map_eventReportData = -1; /* EventReportData */
+static int hf_gsm_map_callReportdata = -1; /* CallReportData */
static int hf_gsm_map_monitoringMode = -1; /* MonitoringMode */
static int hf_gsm_map_callOutcome = -1; /* CallOutcome */
-static int hf_gsm_map_callInfo = -1; /* Bss_APDU */
-static int hf_gsm_map_ccbs_Feature = -1; /* Ccbs_Feature */
-static int hf_gsm_map_translatedB_Number = -1; /* TranslatedB_Number */
+static int hf_gsm_map_callTerminationIndicator = -1; /* CallTerminationIndicator */
+static int hf_gsm_map_msrn = -1; /* ISDN_AddressString */
+static int hf_gsm_map_callInfo = -1; /* ExternalSignalInfo */
+static int hf_gsm_map_ccbs_Feature = -1; /* CCBS_Feature */
+static int hf_gsm_map_translatedB_Number = -1; /* ISDN_AddressString */
static int hf_gsm_map_replaceB_Number = -1; /* NULL */
static int hf_gsm_map_ruf_Outcome = -1; /* Ruf_Outcome */
-static int hf_gsm_map_ss_Data = -1; /* Ss_Data */
-static int hf_gsm_map_ccbs_Index = -1; /* INTEGER_1_5 */
-static int hf_gsm_map_b_subscriberNumber = -1; /* B_subscriberNumber */
-static int hf_gsm_map_b_subscriberSubaddress = -1; /* OCTET_STRING_SIZE_1_21 */
-static int hf_gsm_map_genericServiceInfo = -1; /* T_genericServiceInfo */
-static int hf_gsm_map_maximumEntitledPriority = -1; /* INTEGER_0_15 */
-static int hf_gsm_map_ccbs_FeatureList = -1; /* T_ccbs_FeatureList */
-static int hf_gsm_map_ccbs_FeatureList_item = -1; /* T_ccbs_FeatureList_item */
-static int hf_gsm_map_ussd_DataCodingScheme = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_ussd_String = -1; /* OCTET_STRING_SIZE_1_160 */
-static int hf_gsm_map_ccbs_Data = -1; /* T_ccbs_Data */
+static int hf_gsm_map_ext_basicServiceGroupList = -1; /* BasicServiceGroupList */
+static int hf_gsm_map_cliRestrictionOption = -1; /* CliRestrictionOption */
+static int hf_gsm_map_overrideCategory = -1; /* OverrideCategory */
+static int hf_gsm_map_forwardedToNumber_addr = -1; /* AddressString */
+static int hf_gsm_map_forwardingInfo = -1; /* ForwardingInfo */
+static int hf_gsm_map_callBarringInfo = -1; /* CallBarringInfo */
+static int hf_gsm_map_ss_Data = -1; /* SS_Data */
+static int hf_gsm_map_genericServiceInfo = -1; /* GenericServiceInfo */
+static int hf_gsm_map_ussd_DataCodingScheme = -1; /* USSD_DataCodingScheme */
+static int hf_gsm_map_ussd_String = -1; /* USSD_String */
+static int hf_gsm_map_failureCause = -1; /* FailureCause */
+static int hf_gsm_map_re_attempt = -1; /* BOOLEAN */
+static int hf_gsm_map_accessType = -1; /* AccessType */
+static int hf_gsm_map_ccbs_Data = -1; /* CCBS_Data */
static int hf_gsm_map_serviceIndicator = -1; /* ServiceIndicator */
+static int hf_gsm_map_ccbs_Index = -1; /* CCBS_Index */
static int hf_gsm_map_sm_RP_PRI = -1; /* BOOLEAN */
-static int hf_gsm_map_serviceCentreAddress = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_gsm_map_serviceCentreAddress = -1; /* ServiceCentreAddress */
static int hf_gsm_map_gprsSupportIndicator = -1; /* NULL */
-static int hf_gsm_map_sm_RP_MTI = -1; /* INTEGER_0_10 */
-static int hf_gsm_map_sm_RP_SMEA = -1; /* OCTET_STRING_SIZE_1_12 */
-static int hf_gsm_map_locationInfoWithLMSI = -1; /* T_locationInfoWithLMSI */
-static int hf_gsm_map_networkNode_Number = -1; /* T_networkNode_Number */
+static int hf_gsm_map_sm_RP_MTI = -1; /* SM_RP_MTI */
+static int hf_gsm_map_sm_RP_SMEA = -1; /* SM_RP_SMEA */
+static int hf_gsm_map_locationInfoWithLMSI = -1; /* LocationInfoWithLMSI */
+static int hf_gsm_map_networkNode_Number = -1; /* ISDN_AddressString */
static int hf_gsm_map_gprsNodeIndicator = -1; /* NULL */
-static int hf_gsm_map_additional_Number = -1; /* T_additional_Number */
+static int hf_gsm_map_additional_Number = -1; /* Additional_Number */
static int hf_gsm_map_sm_RP_DA = -1; /* Sm_RP_DA */
static int hf_gsm_map_sm_RP_OA = -1; /* Sm_RP_OA */
-static int hf_gsm_map_sm_RP_UI = -1; /* OCTET_STRING_SIZE_1_200 */
-static int hf_gsm_map_serviceCentreAddressOA = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_gsm_map_sm_RP_UI = -1; /* Sm_RP_UI */
+static int hf_gsm_map_serviceCentreAddressOA = -1; /* ServiceCentreAddress */
static int hf_gsm_map_noSM_RP_OA = -1; /* NULL */
-static int hf_gsm_map_serviceCentreAddressDA = -1; /* OCTET_STRING_SIZE_1_20 */
+static int hf_gsm_map_serviceCentreAddressDA = -1; /* ServiceCentreAddress */
static int hf_gsm_map_noSM_RP_DA = -1; /* NULL */
static int hf_gsm_map_moreMessagesToSend = -1; /* NULL */
static int hf_gsm_map_sm_DeliveryOutcome = -1; /* Sm_DeliveryOutcome */
-static int hf_gsm_map_absentSubscriberDiagnosticSM = -1; /* INTEGER_0_255 */
+static int hf_gsm_map_absentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */
static int hf_gsm_map_deliveryOutcomeIndicator = -1; /* NULL */
static int hf_gsm_map_additionalSM_DeliveryOutcome = -1; /* Sm_DeliveryOutcome */
-static int hf_gsm_map_additionalAbsentSubscriberDiagnosticSM = -1; /* INTEGER_0_255 */
-static int hf_gsm_map_storedMSISDN = -1; /* StoredMSISDN */
-static int hf_gsm_map_mw_Status = -1; /* T_mw_Status */
-static int hf_gsm_map_alertReason = -1; /* T_alertReason */
+static int hf_gsm_map_additionalAbsentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */
+static int hf_gsm_map_storedMSISDN = -1; /* ISDN_AddressString */
+static int hf_gsm_map_mw_Status = -1; /* MW_Status */
+static int hf_gsm_map_alertReason = -1; /* AlertReason */
static int hf_gsm_map_alertReasonIndicator = -1; /* NULL */
+static int hf_gsm_map_dispatcherList = -1; /* DispatcherList */
+static int hf_gsm_map_ongoingCall = -1; /* NULL */
+static int hf_gsm_map_DispatcherList_item = -1; /* ISDN_AddressString */
static int hf_gsm_map_requestedInfo = -1; /* RequestedInfo */
-static int hf_gsm_map_locationInformationFlag = -1; /* NULL */
-static int hf_gsm_map_subscriberStateFlag = -1; /* NULL */
-static int hf_gsm_map_subscriberIdentity = -1; /* T_subscriberIdentity */
-static int hf_gsm_map_ss_Event = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_ss_EventSpecification = -1; /* SEQUNCE_OF_OCTET_STRING_SIZE_1_20 */
-static int hf_gsm_map_ss_EventSpecification_item = -1; /* OCTET_STRING_SIZE_1_20 */
-static int hf_gsm_map_asciCallReference = -1; /* OCTET_STRING_SIZE_1_8 */
-static int hf_gsm_map_codec_Info = -1; /* OCTET_STRING_SIZE_5_10 */
-static int hf_gsm_map_cipheringAlgorithm = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_groupKeyNumber = -1; /* INTEGER_0_15 */
-static int hf_gsm_map_groupKey = -1; /* OCTET_STRING_SIZE_8 */
-static int hf_gsm_map_priority = -1; /* INTEGER_0_15 */
+static int hf_gsm_map_locationInformation = -1; /* LocationInformation */
+static int hf_gsm_map_subscriberState = -1; /* SubscriberState */
+static int hf_gsm_map_locationInformationGPRS = -1; /* LocationInformationGPRS */
+static int hf_gsm_map_ps_SubscriberState = -1; /* PS_SubscriberState */
+static int hf_gsm_map_ms_Classmark2 = -1; /* MS_Classmark2 */
+static int hf_gsm_map_gprs_MS_Class = -1; /* GPRSMSClass */
+static int hf_gsm_map_mnpInfoRes = -1; /* MNPInfoRes */
+static int hf_gsm_map_routeingNumber = -1; /* RouteingNumber */
+static int hf_gsm_map_mSNetworkCapability = -1; /* MSNetworkCapability */
+static int hf_gsm_map_mSRadioAccessCapability = -1; /* MSRadioAccessCapability */
+static int hf_gsm_map_locationInformation_flg = -1; /* NULL */
+static int hf_gsm_map_subscriberState_flg = -1; /* NULL */
+static int hf_gsm_map_currentLocation = -1; /* NULL */
+static int hf_gsm_map_requestedDomain = -1; /* DomainType */
+static int hf_gsm_map_imei_flg = -1; /* NULL */
+static int hf_gsm_map_ms_classmark = -1; /* NULL */
+static int hf_gsm_map_mnpRequestedInfo = -1; /* NULL */
+static int hf_gsm_map_subscriberIdentity = -1; /* SubscriberIdentity */
+static int hf_gsm_map_requestedSubscriptionInfo = -1; /* RequestedSubscriptionInfo */
+static int hf_gsm_map_callForwardingData = -1; /* CallForwardingData */
+static int hf_gsm_map_callBarringData = -1; /* CallBarringData */
+static int hf_gsm_map_odb_Info = -1; /* ODB_Info */
+static int hf_gsm_map_camel_SubscriptionInfo = -1; /* CAMEL_SubscriptionInfo */
+static int hf_gsm_map_supportedVLR_CAMEL_Phases = -1; /* SupportedCamelPhases */
+static int hf_gsm_map_supportedSGSN_CAMEL_Phases = -1; /* SupportedCamelPhases */
+static int hf_gsm_map_offeredCamel4CSIsInVLR = -1; /* OfferedCamel4CSIs */
+static int hf_gsm_map_offeredCamel4CSIsInSGSN = -1; /* OfferedCamel4CSIs */
+static int hf_gsm_map_msisdn_BS_List = -1; /* MSISDN_BS_List */
+static int hf_gsm_map_requestedSS_Info = -1; /* SS_ForBS_Code */
+static int hf_gsm_map_odb = -1; /* NULL */
+static int hf_gsm_map_requestedCAMEL_SubscriptionInfo = -1; /* RequestedCAMEL_SubscriptionInfo */
+static int hf_gsm_map_supportedVLR_CAMEL_Phases_flg = -1; /* NULL */
+static int hf_gsm_map_supportedSGSN_CAMEL_Phases_flg = -1; /* NULL */
+static int hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo = -1; /* AdditionalRequestedCAMEL_SubscriptionInfo */
+static int hf_gsm_map_msisdn_BS_List_flag = -1; /* NULL */
+static int hf_gsm_map_MSISDN_BS_List_item = -1; /* MSISDN_BS */
+static int hf_gsm_map_password = -1; /* Password */
+static int hf_gsm_map_wrongPasswordAttemptsCounter = -1; /* WrongPasswordAttemptsCounter */
+static int hf_gsm_map_bearerService = -1; /* BearerServiceCode */
+static int hf_gsm_map_teleservice_code = -1; /* TeleserviceCode */
+static int hf_gsm_map_O_BcsmCamelTDPCriteriaList_item = -1; /* O_BcsmCamelTDP_Criteria */
+static int hf_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList_item = -1; /* T_BCSM_CAMEL_TDP_Criteria */
+static int hf_gsm_map_destinationNumberCriteria = -1; /* DestinationNumberCriteria */
+static int hf_gsm_map_basicServiceCriteria = -1; /* BasicServiceCriteria */
+static int hf_gsm_map_callTypeCriteria = -1; /* CallTypeCriteria */
+static int hf_gsm_map_o_CauseValueCriteria = -1; /* O_CauseValueCriteria */
+static int hf_gsm_map_t_BCSM_TriggerDetectionPoint = -1; /* T_BcsmTriggerDetectionPoint */
+static int hf_gsm_map_t_CauseValueCriteria = -1; /* T_CauseValueCriteria */
+static int hf_gsm_map_maximumEntitledPriority = -1; /* EMLPP_Priority */
+static int hf_gsm_map_ccbs_FeatureList = -1; /* CCBS_FeatureList */
+static int hf_gsm_map_nbrSN = -1; /* MC_Bearers */
+static int hf_gsm_map_CCBS_FeatureList_item = -1; /* CCBS_Feature */
+static int hf_gsm_map_b_subscriberNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_b_subscriberSubaddress = -1; /* ISDN_SubaddressString */
+static int hf_gsm_map_basicServiceGroup = -1; /* BasicServiceCode */
+static int hf_gsm_map_T_CauseValueCriteria_item = -1; /* CauseValue */
+static int hf_gsm_map_O_CauseValueCriteria_item = -1; /* CauseValue */
+static int hf_gsm_map_BasicServiceCriteria_item = -1; /* Ext_BasicServiceCode */
+static int hf_gsm_map_modificationRequestFor_CF_Info = -1; /* ModificationRequestFor_CF_Info */
+static int hf_gsm_map_modificationRequestFor_CB_Info = -1; /* ModificationRequestFor_CB_Info */
+static int hf_gsm_map_modificationRequestFor_CSI = -1; /* ModificationRequestFor_CSI */
+static int hf_gsm_map_modificationRequestFor_ODB_data = -1; /* ModificationRequestFor_ODB_data */
+static int hf_gsm_map_ss_InfoFor_CSE = -1; /* Ext_SS_InfoFor_CSE */
+static int hf_gsm_map_modifyNotificationToCSE = -1; /* ModificationInstruction */
+static int hf_gsm_map_odb_data = -1; /* ODB_Data */
+static int hf_gsm_map_requestedCamel_SubscriptionInfo = -1; /* RequestedCAMEL_SubscriptionInfo */
+static int hf_gsm_map_modifyCSI_State = -1; /* ModificationInstruction */
+static int hf_gsm_map_forwardingInfoFor_CSE = -1; /* Ext_ForwardingInfoFor_CSE */
+static int hf_gsm_map_callBarringInfoFor_CSE = -1; /* Ext_CallBarringInfoFor_CSE */
+static int hf_gsm_map_eventMet = -1; /* MM_Code */
+static int hf_gsm_map_supportedCAMELPhases = -1; /* SupportedCamelPhases */
+static int hf_gsm_map_offeredCamel4Functionalities = -1; /* OfferedCamel4Functionalities */
+static int hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */
+static int hf_gsm_map_tif_CSI_NotificationToCSE = -1; /* NULL */
+static int hf_gsm_map_specificCSIDeletedList = -1; /* SpecificCSI_Withdraw */
+static int hf_gsm_map_o_IM_CSI = -1; /* O_CSI */
+static int hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */
+static int hf_gsm_map_d_IM_CSI = -1; /* D_CSI */
+static int hf_gsm_map_vt_IM_CSI = -1; /* T_CSI */
+static int hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */
+static int hf_gsm_map_ext_BearerService = -1; /* Ext_BearerServiceCode */
+static int hf_gsm_map_ext_Teleservice = -1; /* Ext_TeleserviceCode */
+static int hf_gsm_map_odb_HPLMN_Data = -1; /* ODB_HPLMN_Data */
+static int hf_gsm_map_SS_EventList_item = -1; /* SS_Code */
+static int hf_gsm_map_t_BcsmCamelTDPDataList = -1; /* T_BcsmCamelTDPDataList */
+static int hf_gsm_map_T_BcsmCamelTDPDataList_item = -1; /* T_BcsmCamelTDPData */
+static int hf_gsm_map_t_BcsmTriggerDetectionPoint = -1; /* T_BcsmTriggerDetectionPoint */
+static int hf_gsm_map_sms_CAMEL_TDP_DataList = -1; /* SMS_CAMEL_TDP_DataList */
+static int hf_gsm_map_SMS_CAMEL_TDP_DataList_item = -1; /* SMS_CAMEL_TDP_Data */
+static int hf_gsm_map_defaultSMS_Handling = -1; /* DefaultSMS_Handling */
+static int hf_gsm_map_MobilityTriggers_item = -1; /* MM_Code */
+static int hf_gsm_map_ss_Event = -1; /* SS_Code */
+static int hf_gsm_map_ss_EventSpecification = -1; /* SS_EventSpecification */
+static int hf_gsm_map_ccbs_RequestState = -1; /* CCBS_RequestState */
+static int hf_gsm_map_SS_EventSpecification_item = -1; /* AddressString */
+static int hf_gsm_map_ext_teleservice = -1; /* Ext_TeleserviceCode */
+static int hf_gsm_map_codec_Info = -1; /* CODEC_Info */
+static int hf_gsm_map_cipheringAlgorithm = -1; /* CipheringAlgorithm */
+static int hf_gsm_map_groupKeyNumber_Vk_Id = -1; /* GroupKeyNumber */
+static int hf_gsm_map_groupKey = -1; /* Kc */
+static int hf_gsm_map_priority = -1; /* EMLPP_Priority */
static int hf_gsm_map_uplinkFree = -1; /* NULL */
-static int hf_gsm_map_groupCallNumber = -1; /* T_groupCallNumber */
+static int hf_gsm_map_vstk = -1; /* VSTK */
+static int hf_gsm_map_vstk_rand = -1; /* VSTK_RAND */
+static int hf_gsm_map_groupCallNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_talkerPriority = -1; /* TalkerPriority */
static int hf_gsm_map_uplinkRequest = -1; /* NULL */
static int hf_gsm_map_uplinkReleaseIndication = -1; /* NULL */
static int hf_gsm_map_releaseGroupCall = -1; /* NULL */
+static int hf_gsm_map_emergencyModeResetCommandFlag = -1; /* NULL */
+static int hf_gsm_map_downlinkAttached = -1; /* NULL */
+static int hf_gsm_map_uplinkAttached = -1; /* NULL */
+static int hf_gsm_map_dualCommunication = -1; /* NULL */
+static int hf_gsm_map_callOriginator = -1; /* NULL */
+static int hf_gsm_map_groupRequestedInfo = -1; /* GroupRequestedInfo */
+static int hf_gsm_map_cellId = -1; /* GlobalCellId */
+static int hf_gsm_map_anchorMSC_Address = -1; /* ISDN_AddressString */
static int hf_gsm_map_uplinkRequestAck = -1; /* NULL */
static int hf_gsm_map_uplinkRejectCommand = -1; /* NULL */
static int hf_gsm_map_uplinkSeizedCommand = -1; /* NULL */
static int hf_gsm_map_uplinkReleaseCommand = -1; /* NULL */
-static int hf_gsm_map_sgsn_Address = -1; /* OCTET_STRING_SIZE_5_17 */
-static int hf_gsm_map_sgsn_Capability = -1; /* T_sgsn_Capability */
-static int hf_gsm_map_ggsn_Address = -1; /* Ggsn_Address */
-static int hf_gsm_map_ggsn_Number = -1; /* Ggsn_Number */
-static int hf_gsm_map_mobileNotReachableReason = -1; /* INTEGER_0_255 */
-static int hf_gsm_map_dataCodingScheme = -1; /* OCTET_STRING */
-static int hf_gsm_map_nameString = -1; /* OCTET_STRING */
-static int hf_gsm_map_lcsClientType = -1; /* LcsClientType */
-static int hf_gsm_map_lcsClientExternalID = -1; /* LcsClientExternalID */
-static int hf_gsm_map_lcsClientDialedByMS = -1; /* OCTET_STRING */
-static int hf_gsm_map_lcsClientInternalID = -1; /* LcsClientInternalID */
-static int hf_gsm_map_lcsClientName = -1; /* LcsClientName */
-static int hf_gsm_map_locationType = -1; /* T_locationType */
-static int hf_gsm_map_locationEstimateType = -1; /* T_locationEstimateType */
-static int hf_gsm_map_mlc_Number = -1; /* T_mlc_Number */
-static int hf_gsm_map_lcs_ClientID = -1; /* Lcs_ClientID */
+static int hf_gsm_map_stateAttributes = -1; /* StateAttributes */
+static int hf_gsm_map_sgsn_Address = -1; /* GSN_Address */
+static int hf_gsm_map_sgsn_Capability = -1; /* SGSN_Capability */
+static int hf_gsm_map_ps_LCS_NotSupportedByUE = -1; /* NULL */
+static int hf_gsm_map_gprsEnhancementsSupportIndicator = -1; /* NULL */
+static int hf_gsm_map_smsCallBarringSupportIndicator = -1; /* NULL */
+static int hf_gsm_map_ggsn_Number = -1; /* ISDN_AddressString */
+static int hf_gsm_map_mobileNotReachableReason = -1; /* AbsentSubscriberDiagnosticSM */
+static int hf_gsm_map_locationType = -1; /* LocationType */
+static int hf_gsm_map_mlc_Number = -1; /* ISDN_AddressString */
+static int hf_gsm_map_lcs_ClientID = -1; /* LCS_ClientID */
static int hf_gsm_map_privacyOverride = -1; /* NULL */
-static int hf_gsm_map_imei = -1; /* Imei */
-static int hf_gsm_map_lcs_Priority = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_lcs_QoS = -1; /* T_lcs_QoS */
-static int hf_gsm_map_horizontal_accuracy = -1; /* OCTET_STRING_SIZE_1 */
+static int hf_gsm_map_lcs_Priority = -1; /* LCS_Priority */
+static int hf_gsm_map_lcs_QoS = -1; /* LCS_QoS */
+static int hf_gsm_map_supportedGADShapes = -1; /* SupportedGADShapes */
+static int hf_gsm_map_lcs_ReferenceNumber = -1; /* LCS_ReferenceNumber */
+static int hf_gsm_map_lcsServiceTypeID = -1; /* LCSServiceTypeID */
+static int hf_gsm_map_lcsCodeword = -1; /* LCSCodeword */
+static int hf_gsm_map_lcs_PrivacyCheck = -1; /* LCS_PrivacyCheck */
+static int hf_gsm_map_areaEventInfo = -1; /* AreaEventInfo */
+static int hf_gsm_map_h_gmlc_Address = -1; /* GSN_Address */
+static int hf_gsm_map_mo_lrShortCircuitIndicator = -1; /* NULL */
+static int hf_gsm_map_periodicLDRInfo = -1; /* PeriodicLDRInfo */
+static int hf_gsm_map_reportingPLMNList = -1; /* ReportingPLMNList */
+static int hf_gsm_map_locationEstimateType = -1; /* LocationEstimateType */
+static int hf_gsm_map_deferredLocationEventType = -1; /* DeferredLocationEventType */
+static int hf_gsm_map_lcsClientType = -1; /* LCSClientType */
+static int hf_gsm_map_lcsClientExternalID = -1; /* LCSClientExternalID */
+static int hf_gsm_map_lcsClientDialedByMS = -1; /* AddressString */
+static int hf_gsm_map_lcsClientInternalID = -1; /* LCSClientInternalID */
+static int hf_gsm_map_lcsClientName = -1; /* LCSClientName */
+static int hf_gsm_map_lcsAPN = -1; /* APN */
+static int hf_gsm_map_lcsRequestorID = -1; /* LCSRequestorID */
+static int hf_gsm_map_dataCodingScheme = -1; /* USSD_DataCodingScheme */
+static int hf_gsm_map_nameString = -1; /* NameString */
+static int hf_gsm_map_lcs_FormatIndicator = -1; /* LCS_FormatIndicator */
+static int hf_gsm_map_requestorIDString = -1; /* RequestorIDString */
+static int hf_gsm_map_horizontal_accuracy = -1; /* Horizontal_Accuracy */
static int hf_gsm_map_verticalCoordinateRequest = -1; /* NULL */
-static int hf_gsm_map_vertical_accuracy = -1; /* OCTET_STRING_SIZE_1 */
-static int hf_gsm_map_responseTime = -1; /* T_responseTime */
-static int hf_gsm_map_responseTimeCategory = -1; /* T_responseTimeCategory */
-static int hf_gsm_map_locationEstimate = -1; /* OCTET_STRING_SIZE_1_20 */
-static int hf_gsm_map_ageOfLocationEstimate = -1; /* INTEGER_0_32767 */
-static int hf_gsm_map_mlcNumber = -1; /* T_mlcNumber */
-static int hf_gsm_map_targetMS = -1; /* TargetMS */
-static int hf_gsm_map_lcsLocationInfo = -1; /* LcsLocationInfo */
-static int hf_gsm_map_lcs_Event = -1; /* Lcs_Event */
-static int hf_gsm_map_na_ESRD = -1; /* T_na_ESRD */
-static int hf_gsm_map_na_ESRK = -1; /* T_na_ESRK */
+static int hf_gsm_map_vertical_accuracy = -1; /* Vertical_Accuracy */
+static int hf_gsm_map_responseTime = -1; /* ResponseTime */
+static int hf_gsm_map_velocityRequest = -1; /* NULL */
+static int hf_gsm_map_responseTimeCategory = -1; /* ResponseTimeCategory */
+static int hf_gsm_map_lcsCodewordString = -1; /* LCSCodewordString */
+static int hf_gsm_map_callSessionUnrelated = -1; /* PrivacyCheckRelatedAction */
+static int hf_gsm_map_callSessionRelated = -1; /* PrivacyCheckRelatedAction */
+static int hf_gsm_map_areaDefinition = -1; /* AreaDefinition */
+static int hf_gsm_map_occurrenceInfo = -1; /* OccurrenceInfo */
+static int hf_gsm_map_intervalTime = -1; /* IntervalTime */
+static int hf_gsm_map_areaList = -1; /* AreaList */
+static int hf_gsm_map_AreaList_item = -1; /* Area */
+static int hf_gsm_map_areaType = -1; /* AreaType */
+static int hf_gsm_map_areaIdentification = -1; /* AreaIdentification */
+static int hf_gsm_map_reportingAmount = -1; /* ReportingAmount */
+static int hf_gsm_map_reportingInterval = -1; /* ReportingInterval */
+static int hf_gsm_map_plmn_ListPrioritized = -1; /* NULL */
+static int hf_gsm_map_plmn_List = -1; /* PLMNList */
+static int hf_gsm_map_PLMNList_item = -1; /* ReportingPLMN */
+static int hf_gsm_map_plmn_Id = -1; /* PLMN_Id */
+static int hf_gsm_map_ran_Technology = -1; /* RAN_Technology */
+static int hf_gsm_map_ran_PeriodicLocationSupport = -1; /* NULL */
+static int hf_gsm_map_locationEstimate = -1; /* Ext_GeographicalInformation */
+static int hf_gsm_map_ageOfLocationEstimate = -1; /* AgeOfLocationInformation */
+static int hf_gsm_map_add_LocationEstimate = -1; /* Add_GeographicalInformation */
+static int hf_gsm_map_deferredmt_lrResponseIndicator = -1; /* NULL */
+static int hf_gsm_map_geranPositioningData = -1; /* PositioningDataInformation */
+static int hf_gsm_map_utranPositioningData = -1; /* UtranPositioningDataInfo */
+static int hf_gsm_map_cellIdOrSai = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */
+static int hf_gsm_map_accuracyFulfilmentIndicator = -1; /* AccuracyFulfilmentIndicator */
+static int hf_gsm_map_velocityEstimate = -1; /* VelocityEstimate */
+static int hf_gsm_map_mlcNumber = -1; /* ISDN_AddressString */
+static int hf_gsm_map_targetMS = -1; /* SubscriberIdentity */
+static int hf_gsm_map_lcsLocationInfo = -1; /* LCSLocationInfo */
+static int hf_gsm_map_ppr_Address = -1; /* GSN_Address */
+static int hf_gsm_map_additional_v_gmlc_Address = -1; /* GSN_Address */
+static int hf_gsm_map_additional_LCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */
+static int hf_gsm_map_lcs_Event = -1; /* LCS_Event */
+static int hf_gsm_map_na_ESRD = -1; /* ISDN_AddressString */
+static int hf_gsm_map_na_ESRK = -1; /* ISDN_AddressString */
+static int hf_gsm_map_slr_ArgExtensionContainer = -1; /* SLR_ArgExtensionContainer */
+static int hf_gsm_map_deferredmt_lrData = -1; /* Deferredmt_lrData */
+static int hf_gsm_map_pseudonymIndicator = -1; /* NULL */
+static int hf_gsm_map_sequenceNumber = -1; /* SequenceNumber */
+static int hf_gsm_map_terminationCause = -1; /* TerminationCause */
+static int hf_gsm_map_securityHeader = -1; /* SecurityHeader */
+static int hf_gsm_map_protectedPayload = -1; /* ProtectedPayload */
+static int hf_gsm_map_securityParametersIndex = -1; /* SecurityParametersIndex */
+static int hf_gsm_map_originalComponentIdentifier = -1; /* OriginalComponentIdentifier */
+static int hf_gsm_map_initialisationVector = -1; /* InitialisationVector */
+static int hf_gsm_map_operationCode = -1; /* OperationCode */
+static int hf_gsm_map_errorCode = -1; /* ErrorCode */
+static int hf_gsm_map_userInfo = -1; /* NULL */
+static int hf_gsm_map_localValue = -1; /* INTEGER */
+static int hf_gsm_map_operatorSS_Code = -1; /* T_operatorSS_Code */
+static int hf_gsm_map_operatorSS_Code_item = -1; /* OCTET_STRING_SIZE_1 */
static int hf_gsm_map_networkResource = -1; /* NetworkResource */
-static int hf_gsm_map_extensibleSystemFailureParam = -1; /* T_extensibleSystemFailureParam */
-static int hf_gsm_map_unknownSubscriberDiagnostic = -1; /* T_unknownSubscriberDiagnostic */
-static int hf_gsm_map_roamingNotAllowedCause = -1; /* T_roamingNotAllowedCause */
-static int hf_gsm_map_absentSubscriberReason = -1; /* T_absentSubscriberReason */
+static int hf_gsm_map_extensibleSystemFailureParam = -1; /* ExtensibleSystemFailureParam */
+static int hf_gsm_map_additionalNetworkResource = -1; /* AdditionalNetworkResource */
+static int hf_gsm_map_shapeOfLocationEstimateNotSupported = -1; /* NULL */
+static int hf_gsm_map_neededLcsCapabilityNotSupportedInServingNode = -1; /* NULL */
+static int hf_gsm_map_unknownSubscriberDiagnostic = -1; /* UnknownSubscriberDiagnostic */
+static int hf_gsm_map_roamingNotAllowedCause = -1; /* RoamingNotAllowedCause */
+static int hf_gsm_map_additionalRoamingNotAllowedCause = -1; /* AdditionalRoamingNotAllowedCause */
+static int hf_gsm_map_absentSubscriberReason = -1; /* AbsentSubscriberReason */
static int hf_gsm_map_ccbs_Busy = -1; /* NULL */
+static int hf_gsm_map_gprsConnectionSuspended = -1; /* NULL */
static int hf_gsm_map_callBarringCause = -1; /* CallBarringCause */
-static int hf_gsm_map_extensibleCallBarredParam = -1; /* T_extensibleCallBarredParam */
+static int hf_gsm_map_extensibleCallBarredParam = -1; /* ExtensibleCallBarredParam */
static int hf_gsm_map_unauthorisedMessageOriginator = -1; /* NULL */
-static int hf_gsm_map_cug_RejectCause = -1; /* T_cug_RejectCause */
-static int hf_gsm_map_gprsConnectionSuspended = -1; /* NULL */
-static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1; /* T_sm_EnumeratedDeliveryFailureCause */
-static int hf_gsm_map_diagnosticInfo = -1; /* OCTET_STRING_SIZE_1_200 */
-static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1; /* T_unauthorizedLCSClient_Diagnostic */
-static int hf_gsm_map_positionMethodFailure_Diagnostic = -1; /* T_positionMethodFailure_Diagnostic */
-static int hf_gsm_map_privateExtensionList = -1; /* PrivateExtensionList */
+static int hf_gsm_map_cug_RejectCause = -1; /* CUG_RejectCause */
+static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1; /* SM_EnumeratedDeliveryFailureCause */
+static int hf_gsm_map_diagnosticInfo = -1; /* SignalInfo */
+static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1; /* UnauthorizedLCSClient_Diagnostic */
+static int hf_gsm_map_positionMethodFailure_Diagnostic = -1; /* PositionMethodFailure_Diagnostic */
static int hf_gsm_map_pcsExtensions = -1; /* PcsExtensions */
/* named bits */
static int hf_gsm_map_SupportedCamelPhases_phase1 = -1;
static int hf_gsm_map_SupportedCamelPhases_phase2 = -1;
-static int hf_gsm_map_Odb_GeneralData_allOGCallsBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_ssAccessBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_allECTBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_chargeableECTBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_internationalECTBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_interzonalECTBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred = -1;
-static int hf_gsm_map_Odb_GeneralData_multipleECTBarred = -1;
-static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1 = -1;
-static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2 = -1;
-static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3 = -1;
-static int hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4 = -1;
-static int hf_gsm_map_ServiceIndicator_clirInvoked = -1;
-static int hf_gsm_map_ServiceIndicator_camelInvoked = -1;
-static int hf_gsm_map_T_mw_Status_scAddressNotIncluded = -1;
-static int hf_gsm_map_T_mw_Status_mnrfSet = -1;
-static int hf_gsm_map_T_mw_Status_mcefSet = -1;
-static int hf_gsm_map_T_mw_Status_mnrgSet = -1;
+static int hf_gsm_map_SupportedCamelPhases_phase3 = -1;
+static int hf_gsm_map_SupportedCamelPhases_phase4 = -1;
+static int hf_gsm_map_SupportedRAT_Types_utran = -1;
+static int hf_gsm_map_SupportedRAT_Types_geran = -1;
+static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1;
+static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1;
+static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1;
+static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1;
+static int hf_gsm_map_RequestedEquipmentInfo_equipmentStatus = -1;
+static int hf_gsm_map_RequestedEquipmentInfo_bmuef = -1;
+static int hf_gsm_map_ODB_GeneralData_allOG_CallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_interzonalOGCallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_ss_AccessBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_allECT_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_chargeableECT_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_internationalECT_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_interzonalECT_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_doublyChargeableECT_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_multipleECT_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_allPacketOrientedServicesBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_allIC_CallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1;
+static int hf_gsm_map_ODB_GeneralData_registrationAllCF_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_registrationInterzonalCF_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1;
+static int hf_gsm_map_ODB_GeneralData_registrationInternationalCF_Barred = -1;
+static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1;
+static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1;
+static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1;
+static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1;
+static int hf_gsm_map_AccessRestrictionData_utranNotAllowed = -1;
+static int hf_gsm_map_AccessRestrictionData_geranNotAllowed = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_o_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_ss_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_tif_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_d_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_vt_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_mo_sms_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_m_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_gprs_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_t_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_mt_sms_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_mg_csi = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_o_IM_CSI = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_d_IM_CSI = -1;
+static int hf_gsm_map_SpecificCSI_Withdraw_vt_IM_CSI = -1;
+static int hf_gsm_map_AdditionalSubscriptions_privilegedUplinkRequest = -1;
+static int hf_gsm_map_AdditionalSubscriptions_emergencyUplinkRequest = -1;
+static int hf_gsm_map_AdditionalSubscriptions_emergencyReset = -1;
+static int hf_gsm_map_TraceNE_TypeList_msc_s = -1;
+static int hf_gsm_map_TraceNE_TypeList_mgw = -1;
+static int hf_gsm_map_TraceNE_TypeList_sgsn = -1;
+static int hf_gsm_map_TraceNE_TypeList_ggsn = -1;
+static int hf_gsm_map_TraceNE_TypeList_rnc = -1;
+static int hf_gsm_map_TraceNE_TypeList_bm_sc = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_a = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_iu = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_mc = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_map_g = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_map_b = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_map_e = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_map_f = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_cap = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_map_d = -1;
+static int hf_gsm_map_MSC_S_InterfaceList_map_c = -1;
+static int hf_gsm_map_MGW_InterfaceList_mc = -1;
+static int hf_gsm_map_MGW_InterfaceList_nb_up = -1;
+static int hf_gsm_map_MGW_InterfaceList_iu_up = -1;
+static int hf_gsm_map_SGSN_InterfaceList_gb = -1;
+static int hf_gsm_map_SGSN_InterfaceList_iu = -1;
+static int hf_gsm_map_SGSN_InterfaceList_gn = -1;
+static int hf_gsm_map_SGSN_InterfaceList_map_gr = -1;
+static int hf_gsm_map_SGSN_InterfaceList_map_gd = -1;
+static int hf_gsm_map_SGSN_InterfaceList_map_gf = -1;
+static int hf_gsm_map_SGSN_InterfaceList_gs = -1;
+static int hf_gsm_map_SGSN_InterfaceList_ge = -1;
+static int hf_gsm_map_GGSN_InterfaceList_gn = -1;
+static int hf_gsm_map_GGSN_InterfaceList_gi = -1;
+static int hf_gsm_map_GGSN_InterfaceList_gmb = -1;
+static int hf_gsm_map_RNC_InterfaceList_iu = -1;
+static int hf_gsm_map_RNC_InterfaceList_iur = -1;
+static int hf_gsm_map_RNC_InterfaceList_iub = -1;
+static int hf_gsm_map_RNC_InterfaceList_uu = -1;
+static int hf_gsm_map_BMSC_InterfaceList_gmb = -1;
+static int hf_gsm_map_MSC_S_EventList_mo_mtCall = -1;
+static int hf_gsm_map_MSC_S_EventList_mo_mt_sms = -1;
+static int hf_gsm_map_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1;
+static int hf_gsm_map_MSC_S_EventList_handovers = -1;
+static int hf_gsm_map_MSC_S_EventList_ss = -1;
+static int hf_gsm_map_MGW_EventList_context = -1;
+static int hf_gsm_map_SGSN_EventList_pdpContext = -1;
+static int hf_gsm_map_SGSN_EventList_mo_mt_sms = -1;
+static int hf_gsm_map_SGSN_EventList_rau_gprsAttach_gprsDetach = -1;
+static int hf_gsm_map_SGSN_EventList_mbmsContext = -1;
+static int hf_gsm_map_GGSN_EventList_pdpContext = -1;
+static int hf_gsm_map_GGSN_EventList_mbmsContext = -1;
+static int hf_gsm_map_BMSC_EventList_mbmsMulticastServiceActivation = -1;
+static int hf_gsm_map_AllowedServices_firstServiceAllowed = -1;
+static int hf_gsm_map_AllowedServices_secondServiceAllowed = -1;
+static int hf_gsm_map_ServiceIndicator_clir_invoked = -1;
+static int hf_gsm_map_ServiceIndicator_camel_invoked = -1;
+static int hf_gsm_map_MW_Status_sc_AddressNotIncluded = -1;
+static int hf_gsm_map_MW_Status_mnrf_Set = -1;
+static int hf_gsm_map_MW_Status_mcef_Set = -1;
+static int hf_gsm_map_MW_Status_mnrg_Set = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_o_csi = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_d_csi = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_vt_csi = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_t_csi = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_mt_sms_csi = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_mg_csi = -1;
+static int hf_gsm_map_OfferedCamel4CSIs_psi_enhancements = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_splitLeg = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_moveLeg = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_disconnectLeg = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_entityReleased = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_dfc_WithArgument = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_playTone = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_dtmf_MidCall = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_chargingIndicator = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_alertingDP = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_locationAtAlerting = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_changeOfPositionDP = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_or_Interactions = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_warningToneEnhancements = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_cf_Enhancements = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_serviceChangeDP = -1;
+static int hf_gsm_map_OfferedCamel4Functionalities_collectInformation = -1;
+static int hf_gsm_map_DeferredLocationEventType_msAvailable = -1;
+static int hf_gsm_map_DeferredLocationEventType_enteringIntoArea = -1;
+static int hf_gsm_map_DeferredLocationEventType_leavingFromArea = -1;
+static int hf_gsm_map_DeferredLocationEventType_beingInsideArea = -1;
+static int hf_gsm_map_DeferredLocationEventType_periodicLDR = -1;
+static int hf_gsm_map_SupportedGADShapes_ellipsoidPoint = -1;
+static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1;
+static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1;
+static int hf_gsm_map_SupportedGADShapes_polygon = -1;
+static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitude = -1;
+static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1;
+static int hf_gsm_map_SupportedGADShapes_ellipsoidArc = -1;
/*--- End of included file: packet-gsm_map-hf.c ---*/
-
+#line 131 "packet-gsm_map-template.c"
/* Initialize the subtree pointers */
static gint ett_gsm_map = -1;
static gint ett_gsm_map_InvokeId = -1;
static gint ett_gsm_map_InvokePDU = -1;
static gint ett_gsm_map_ReturnResultPDU = -1;
+static gint ett_gsm_map_ReturnErrorPDU = -1;
static gint ett_gsm_map_ReturnResult_result = -1;
+static gint ett_gsm_map_ReturnError_result = -1;
static gint ett_gsm_map_GSMMAPPDU = -1;
-static int gsm_map_tap = -1;
+static gint ett_gsm_map_ext_qos_subscribed = -1;
+static gint ett_gsm_map_pdptypenumber = -1;
+static gint ett_gsm_map_RAIdentity = -1;
+static gint ett_gsm_map_LAIFixedLength = -1;
+static gint ett_gsm_map_isdn_address_string = -1;
+static gint ett_gsm_map_geo_desc = -1;
+static gint ett_gsm_map_LongSignalInfo = -1;
+static gint ett_gsm_map_RadioResourceInformation =-1;
-/*--- Included file: packet-gsm_map-ett.c ---*/
+/*--- Included file: packet-gsm_map-ett.c ---*/
+#line 1 "packet-gsm_map-ett.c"
+static gint ett_gsm_map_Component = -1;
+static gint ett_gsm_map_Invoke = -1;
+static gint ett_gsm_map_ReturnResult = -1;
+static gint ett_gsm_map_T_resultretres = -1;
+static gint ett_gsm_map_ReturnError = -1;
+static gint ett_gsm_map_Reject = -1;
+static gint ett_gsm_map_T_invokeIDRej = -1;
+static gint ett_gsm_map_T_problem = -1;
+static gint ett_gsm_map_OPERATION = -1;
+static gint ett_gsm_map_ERROR = -1;
static gint ett_gsm_map_Bss_APDU = -1;
static gint ett_gsm_map_SupportedCamelPhases = -1;
-static gint ett_gsm_map_Vlr_Capability = -1;
static gint ett_gsm_map_UpdateLocationArg = -1;
static gint ett_gsm_map_UpdateLocationRes = -1;
+static gint ett_gsm_map_VLR_Capability = -1;
+static gint ett_gsm_map_SupportedRAT_Types = -1;
+static gint ett_gsm_map_SuperChargerInfo = -1;
+static gint ett_gsm_map_SupportedLCS_CapabilitySets = -1;
+static gint ett_gsm_map_ADD_Info = -1;
static gint ett_gsm_map_PrivateExtensionList = -1;
static gint ett_gsm_map_PrivateExtension = -1;
+static gint ett_gsm_map_SLR_ArgExtensionContainer = -1;
static gint ett_gsm_map_PcsExtensions = -1;
+static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1;
static gint ett_gsm_map_CancelLocationArg = -1;
-static gint ett_gsm_map_T_identity = -1;
-static gint ett_gsm_map_T_imsi_WithLMSI = -1;
+static gint ett_gsm_map_CancelLocationArgV2 = -1;
static gint ett_gsm_map_CancelLocationRes = -1;
-static gint ett_gsm_map_PurgeMS_Arg = -1;
-static gint ett_gsm_map_PurgeMS_Res = -1;
+static gint ett_gsm_map_PurgeMSArg = -1;
+static gint ett_gsm_map_PurgeMSArgV2 = -1;
+static gint ett_gsm_map_PurgeMSRes = -1;
+static gint ett_gsm_map_SendIdentificationArg = -1;
static gint ett_gsm_map_SendIdentificationRes = -1;
-static gint ett_gsm_map_T_authenticationSetList = -1;
-static gint ett_gsm_map_T_authenticationSetList_item = -1;
+static gint ett_gsm_map_SendIdentificationResV2 = -1;
+static gint ett_gsm_map_AuthenticationSetList = -1;
+static gint ett_gsm_map_TripletList = -1;
+static gint ett_gsm_map_QuintupletList = -1;
+static gint ett_gsm_map_AuthenticationTriplet = -1;
+static gint ett_gsm_map_AuthenticationQuintuplet = -1;
+static gint ett_gsm_map_CurrentSecurityContext = -1;
+static gint ett_gsm_map_GSM_SecurityContextData = -1;
+static gint ett_gsm_map_UMTS_SecurityContextData = -1;
static gint ett_gsm_map_PrepareHO_Arg = -1;
+static gint ett_gsm_map_PrepareHO_ArgV3 = -1;
+static gint ett_gsm_map_BSSMAP_ServiceHandoverList = -1;
+static gint ett_gsm_map_BSSMAP_ServiceHandoverInfo = -1;
+static gint ett_gsm_map_RadioResourceList = -1;
+static gint ett_gsm_map_RadioResource = -1;
static gint ett_gsm_map_PrepareHO_Res = -1;
-static gint ett_gsm_map_PrepareSubsequentHO_Arg = -1;
-static gint ett_gsm_map_SendAuthenticationInfoArg = -1;
-static gint ett_gsm_map_T_re_synchronisationInfo = -1;
+static gint ett_gsm_map_PrepareHO_ResV3 = -1;
+static gint ett_gsm_map_SelectedUMTS_Algorithms = -1;
+static gint ett_gsm_map_ChosenRadioResourceInformation = -1;
+static gint ett_gsm_map_SendEndSignalArgV3 = -1;
+static gint ett_gsm_map_SendEndSignalRes = -1;
+static gint ett_gsm_map_RelocationNumberList = -1;
+static gint ett_gsm_map_RelocationNumber = -1;
+static gint ett_gsm_map_ProcessAccessSignallingArgV3 = -1;
+static gint ett_gsm_map_SupportedCodecsList = -1;
+static gint ett_gsm_map_CodecList = -1;
+static gint ett_gsm_map_ForwardAccessSignallingArgV3 = -1;
+static gint ett_gsm_map_AllowedUMTS_Algorithms = -1;
+static gint ett_gsm_map_PrepareSubsequentHOArg = -1;
+static gint ett_gsm_map_PrepareSubsequentHOArgV3 = -1;
+static gint ett_gsm_map_PrepareSubsequentHOResV3 = -1;
+static gint ett_gsm_map_SendAuthenticationInfoArgV2 = -1;
static gint ett_gsm_map_SendAuthenticationInfoRes = -1;
static gint ett_gsm_map_SendAuthenticationInfoRes_item = -1;
-static gint ett_gsm_map_BasicService = -1;
+static gint ett_gsm_map_SendAuthenticationInfoResV3 = -1;
+static gint ett_gsm_map_Re_synchronisationInfo = -1;
+static gint ett_gsm_map_CheckIMEIArgV3 = -1;
+static gint ett_gsm_map_CheckIMEIRes = -1;
+static gint ett_gsm_map_RequestedEquipmentInfo = -1;
+static gint ett_gsm_map_UESBI_Iu = -1;
static gint ett_gsm_map_BasicServiceGroupList = -1;
-static gint ett_gsm_map_Odb_GeneralData = -1;
-static gint ett_gsm_map_Odb_HPLMN_Data = -1;
-static gint ett_gsm_map_BcsmCamelTDPData = -1;
-static gint ett_gsm_map_BcsmCamelTDPDataList = -1;
+static gint ett_gsm_map_ODB_GeneralData = -1;
+static gint ett_gsm_map_ODB_HPLMN_Data = -1;
static gint ett_gsm_map_O_CSI = -1;
+static gint ett_gsm_map_O_BcsmCamelTDPDataList = -1;
+static gint ett_gsm_map_O_BcsmCamelTDPData = -1;
static gint ett_gsm_map_InsertSubscriberDataArg = -1;
-static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5 = -1;
-static gint ett_gsm_map_SEQUNCE_OF_Teleservice = -1;
-static gint ett_gsm_map_T_provisionedSS = -1;
-static gint ett_gsm_map_T_provisionedSS_item = -1;
-static gint ett_gsm_map_T_cug_Info = -1;
-static gint ett_gsm_map_T_cug_SubscriptionList = -1;
-static gint ett_gsm_map_T_cug_SubscriptionList_item = -1;
-static gint ett_gsm_map_T_cug_FeatureList = -1;
-static gint ett_gsm_map_T_cug_FeatureList_item = -1;
-static gint ett_gsm_map_T_ss_Data2 = -1;
-static gint ett_gsm_map_T_emlpp_Info = -1;
-static gint ett_gsm_map_T_odb_Data = -1;
-static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2 = -1;
-static gint ett_gsm_map_T_vbsSubscriptionData = -1;
-static gint ett_gsm_map_T_vbsSubscriptionData_item = -1;
-static gint ett_gsm_map_T_vgcsSubscriptionData = -1;
-static gint ett_gsm_map_T_vgcsSubscriptionData_item = -1;
-static gint ett_gsm_map_T_vlrCamelSubscriptionInfo = -1;
-static gint ett_gsm_map_T_ss_CSI = -1;
-static gint ett_gsm_map_T_ss_CamelData = -1;
-static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1 = -1;
-static gint ett_gsm_map_T_gprsSubscriptionData = -1;
-static gint ett_gsm_map_T_gprsDataList = -1;
-static gint ett_gsm_map_T_gprsDataList_item = -1;
-static gint ett_gsm_map_T_lsaInformation = -1;
-static gint ett_gsm_map_T_lsaDataList = -1;
-static gint ett_gsm_map_T_lsaDataList_item = -1;
-static gint ett_gsm_map_T_lcsInformation = -1;
-static gint ett_gsm_map_T_gmlc_List = -1;
-static gint ett_gsm_map_T_lcs_PrivacyExceptionList = -1;
-static gint ett_gsm_map_T_lcs_PrivacyExceptionList_item = -1;
-static gint ett_gsm_map_T_externalClientList = -1;
-static gint ett_gsm_map_T_externalClientList_item = -1;
-static gint ett_gsm_map_T_clientIdentity = -1;
-static gint ett_gsm_map_T_plmnClientList = -1;
-static gint ett_gsm_map_T_molr_List = -1;
-static gint ett_gsm_map_T_molr_List_item = -1;
+static gint ett_gsm_map_AccessRestrictionData = -1;
+static gint ett_gsm_map_LCSInformation = -1;
+static gint ett_gsm_map_GMLC_List = -1;
+static gint ett_gsm_map_GPRSDataList = -1;
+static gint ett_gsm_map_PDP_Context = -1;
+static gint ett_gsm_map_GPRSSubscriptionData = -1;
+static gint ett_gsm_map_SGSN_CAMEL_SubscriptionInfo = -1;
+static gint ett_gsm_map_GPRS_CSI = -1;
+static gint ett_gsm_map_GPRS_CamelTDPDataList = -1;
+static gint ett_gsm_map_GPRS_CamelTDPData = -1;
+static gint ett_gsm_map_LSADataList = -1;
+static gint ett_gsm_map_LSAData = -1;
+static gint ett_gsm_map_LSAInformation = -1;
static gint ett_gsm_map_InsertSubscriberDataRes = -1;
-static gint ett_gsm_map_CallBarringInfo = -1;
-static gint ett_gsm_map_T_callBarringFeatureList = -1;
-static gint ett_gsm_map_T_callBarringFeatureList_item = -1;
+static gint ett_gsm_map_DeleteSubscriberDataArg = -1;
+static gint ett_gsm_map_DeleteSubscriberDataRes = -1;
+static gint ett_gsm_map_SpecificCSI_Withdraw = -1;
+static gint ett_gsm_map_GPRSSubscriptionDataWithdraw = -1;
+static gint ett_gsm_map_ContextIdList = -1;
+static gint ett_gsm_map_LSAInformationWithdraw = -1;
+static gint ett_gsm_map_LSAIdentityList = -1;
+static gint ett_gsm_map_BasicServiceList = -1;
+static gint ett_gsm_map_VlrCamelSubscriptionInfo = -1;
+static gint ett_gsm_map_MT_smsCAMELTDP_CriteriaList = -1;
+static gint ett_gsm_map_MT_smsCAMELTDP_Criteria = -1;
+static gint ett_gsm_map_TPDU_TypeCriterion = -1;
+static gint ett_gsm_map_D_CSI = -1;
+static gint ett_gsm_map_DP_AnalysedInfoCriteriaList = -1;
+static gint ett_gsm_map_DP_AnalysedInfoCriterium = -1;
+static gint ett_gsm_map_SS_CSI = -1;
+static gint ett_gsm_map_SS_CamelData = -1;
+static gint ett_gsm_map_MG_CSI = -1;
+static gint ett_gsm_map_BearerServiceList = -1;
+static gint ett_gsm_map_TeleserviceList = -1;
+static gint ett_gsm_map_Ext_SS_InfoList = -1;
+static gint ett_gsm_map_Ext_SS_Info = -1;
+static gint ett_gsm_map_Ext_ForwInfo = -1;
+static gint ett_gsm_map_Ext_ForwFeatureList = -1;
+static gint ett_gsm_map_Ext_ForwFeature = -1;
+static gint ett_gsm_map_Ext_CallBarInfo = -1;
+static gint ett_gsm_map_Ext_CallBarFeatureList = -1;
+static gint ett_gsm_map_Ext_CallBarringFeature = -1;
+static gint ett_gsm_map_ZoneCodeList = -1;
+static gint ett_gsm_map_EMLPP_Info = -1;
+static gint ett_gsm_map_CUG_Info = -1;
+static gint ett_gsm_map_CUG_SubscriptionList = -1;
+static gint ett_gsm_map_CUG_Subscription = -1;
+static gint ett_gsm_map_CUG_FeatureList = -1;
+static gint ett_gsm_map_Ext_BasicServiceGroupList = -1;
+static gint ett_gsm_map_CUG_Feature = -1;
+static gint ett_gsm_map_Ext_SS_Data = -1;
+static gint ett_gsm_map_LCS_PrivacyExceptionList = -1;
+static gint ett_gsm_map_LCS_PrivacyClass = -1;
+static gint ett_gsm_map_ExternalClientList = -1;
+static gint ett_gsm_map_PLMNClientList = -1;
+static gint ett_gsm_map_Ext_ExternalClientList = -1;
+static gint ett_gsm_map_ExternalClient = -1;
+static gint ett_gsm_map_ServiceTypeList = -1;
+static gint ett_gsm_map_ServiceType = -1;
+static gint ett_gsm_map_MOLR_List = -1;
+static gint ett_gsm_map_MOLR_Class = -1;
+static gint ett_gsm_map_CallBarringFeatureList = -1;
+static gint ett_gsm_map_CallBarringFeature = -1;
static gint ett_gsm_map_ForwardingFeatureList = -1;
+static gint ett_gsm_map_ForwardingFeature = -1;
static gint ett_gsm_map_DestinationNumberCriteria = -1;
-static gint ett_gsm_map_T_destinationNumberList = -1;
-static gint ett_gsm_map_SEQUNCE_OF_INTEGER_1_15 = -1;
+static gint ett_gsm_map_DestinationNumberList = -1;
+static gint ett_gsm_map_DestinationNumberLengthList = -1;
static gint ett_gsm_map_ForwardingInfo = -1;
-static gint ett_gsm_map_SEQUNCE_OF_ForwardingFeatureList = -1;
-static gint ett_gsm_map_Naea_PreferredCI = -1;
-static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList = -1;
-static gint ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item = -1;
-static gint ett_gsm_map_Ss_SubscriptionOption = -1;
-static gint ett_gsm_map_DeleteSubscriberDataArg = -1;
-static gint ett_gsm_map_T_gprsSubscriptionDataWithdraw = -1;
-static gint ett_gsm_map_SEQUNCE_OF_INTEGER_1_50 = -1;
-static gint ett_gsm_map_T_lsaInformationWithdraw = -1;
-static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3 = -1;
-static gint ett_gsm_map_DeleteSubscriberDataRes = -1;
+static gint ett_gsm_map_CallBarringInfo = -1;
+static gint ett_gsm_map_MC_SS_Info = -1;
static gint ett_gsm_map_ResetArg = -1;
-static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8 = -1;
static gint ett_gsm_map_RestoreDataArg = -1;
static gint ett_gsm_map_RestoreDataRes = -1;
+static gint ett_gsm_map_VBSDataList = -1;
+static gint ett_gsm_map_VGCSDataList = -1;
+static gint ett_gsm_map_VoiceGroupCallData = -1;
+static gint ett_gsm_map_VoiceBroadcastData = -1;
+static gint ett_gsm_map_AdditionalSubscriptions = -1;
static gint ett_gsm_map_ActivateTraceModeArg = -1;
+static gint ett_gsm_map_TraceDepthList = -1;
+static gint ett_gsm_map_TraceNE_TypeList = -1;
+static gint ett_gsm_map_TraceInterfaceList = -1;
+static gint ett_gsm_map_MSC_S_InterfaceList = -1;
+static gint ett_gsm_map_MGW_InterfaceList = -1;
+static gint ett_gsm_map_SGSN_InterfaceList = -1;
+static gint ett_gsm_map_GGSN_InterfaceList = -1;
+static gint ett_gsm_map_RNC_InterfaceList = -1;
+static gint ett_gsm_map_BMSC_InterfaceList = -1;
+static gint ett_gsm_map_TraceEventList = -1;
+static gint ett_gsm_map_MSC_S_EventList = -1;
+static gint ett_gsm_map_MGW_EventList = -1;
+static gint ett_gsm_map_SGSN_EventList = -1;
+static gint ett_gsm_map_GGSN_EventList = -1;
+static gint ett_gsm_map_BMSC_EventList = -1;
+static gint ett_gsm_map_TracePropagationList = -1;
static gint ett_gsm_map_ActivateTraceModeRes = -1;
static gint ett_gsm_map_DeactivateTraceModeArg = -1;
static gint ett_gsm_map_DeactivateTraceModeRes = -1;
static gint ett_gsm_map_SendRoutingInfoArg = -1;
-static gint ett_gsm_map_T_camelInfo = -1;
static gint ett_gsm_map_SendRoutingInfoRes = -1;
-static gint ett_gsm_map_T_extendedRoutingInfo = -1;
-static gint ett_gsm_map_T_routingInfo = -1;
-static gint ett_gsm_map_T_camelRoutingInfo = -1;
-static gint ett_gsm_map_T_gmscCamelSubscriptionInfo = -1;
-static gint ett_gsm_map_T_t_CSI = -1;
-static gint ett_gsm_map_T_ccbs_Indicators = -1;
-static gint ett_gsm_map_SubscriberState = -1;
+static gint ett_gsm_map_ExternalSignalInfo = -1;
+static gint ett_gsm_map_Ext_ExternalSignalInfo = -1;
+static gint ett_gsm_map_AccessNetworkSignalInfo = -1;
+static gint ett_gsm_map_CamelInfo = -1;
+static gint ett_gsm_map_Identity = -1;
+static gint ett_gsm_map_IMSI_WithLMSI = -1;
+static gint ett_gsm_map_HLR_List = -1;
+static gint ett_gsm_map_SS_List = -1;
+static gint ett_gsm_map_NAEA_PreferredCI = -1;
+static gint ett_gsm_map_SubscriberIdentity = -1;
+static gint ett_gsm_map_LCSClientExternalID = -1;
+static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1;
+static gint ett_gsm_map_AllowedServices = -1;
+static gint ett_gsm_map_CCBS_Indicators = -1;
+static gint ett_gsm_map_RoutingInfo = -1;
+static gint ett_gsm_map_ExtendedRoutingInfo = -1;
+static gint ett_gsm_map_CamelRoutingInfo = -1;
+static gint ett_gsm_map_GmscCamelSubscriptionInfo = -1;
static gint ett_gsm_map_LocationInformation = -1;
-static gint ett_gsm_map_T_cellIdOrLAI = -1;
-static gint ett_gsm_map_SubscriberInfo = -1;
-static gint ett_gsm_map_AdditionalSignalInfo = -1;
-static gint ett_gsm_map_Cug_CheckInfo = -1;
+static gint ett_gsm_map_LocationInformationGPRS = -1;
+static gint ett_gsm_map_SubscriberState = -1;
+static gint ett_gsm_map_PS_SubscriberState = -1;
+static gint ett_gsm_map_PDP_ContextInfoList = -1;
+static gint ett_gsm_map_PDP_ContextInfo = -1;
+static gint ett_gsm_map_CUG_CheckInfo = -1;
static gint ett_gsm_map_ForwardingData = -1;
static gint ett_gsm_map_ProvideRoamingNumberArg = -1;
static gint ett_gsm_map_ProvideRoamingNumberRes = -1;
static gint ett_gsm_map_ResumeCallHandlingArg = -1;
-static gint ett_gsm_map_T_uu_Data = -1;
static gint ett_gsm_map_ResumeCallHandlingRes = -1;
+static gint ett_gsm_map_UU_Data = -1;
static gint ett_gsm_map_ProvideSIWFSNumberArg = -1;
static gint ett_gsm_map_ProvideSIWFSNumberRes = -1;
static gint ett_gsm_map_SIWFSSignallingModifyArg = -1;
static gint ett_gsm_map_SetReportingStateArg = -1;
static gint ett_gsm_map_SetReportingStateRes = -1;
static gint ett_gsm_map_StatusReportArg = -1;
-static gint ett_gsm_map_T_eventReportData = -1;
-static gint ett_gsm_map_T_callReportdata = -1;
static gint ett_gsm_map_StatusReportRes = -1;
+static gint ett_gsm_map_EventReportData = -1;
+static gint ett_gsm_map_CallReportData = -1;
+static gint ett_gsm_map_IST_AlertArg = -1;
+static gint ett_gsm_map_IST_AlertRes = -1;
+static gint ett_gsm_map_IST_CommandArg = -1;
+static gint ett_gsm_map_IST_CommandRes = -1;
+static gint ett_gsm_map_ReleaseResourcesArg = -1;
+static gint ett_gsm_map_ReleaseResourcesRes = -1;
static gint ett_gsm_map_RemoteUserFreeArg = -1;
static gint ett_gsm_map_RemoteUserFreeRes = -1;
-static gint ett_gsm_map_Ss_Data = -1;
+static gint ett_gsm_map_SS_Data = -1;
+static gint ett_gsm_map_SS_SubscriptionOption = -1;
static gint ett_gsm_map_RegisterSS_Arg = -1;
-static gint ett_gsm_map_Ss_Info = -1;
-static gint ett_gsm_map_Ccbs_Feature = -1;
-static gint ett_gsm_map_Ss_ForBS = -1;
+static gint ett_gsm_map_SS_Info = -1;
static gint ett_gsm_map_InterrogateSS_Res = -1;
-static gint ett_gsm_map_T_genericServiceInfo = -1;
-static gint ett_gsm_map_T_ccbs_FeatureList = -1;
-static gint ett_gsm_map_T_ccbs_FeatureList_item = -1;
static gint ett_gsm_map_Ussd_Arg = -1;
static gint ett_gsm_map_Ussd_Res = -1;
-static gint ett_gsm_map_ServiceIndicator = -1;
+static gint ett_gsm_map_AuthenticationFailureReportArg = -1;
+static gint ett_gsm_map_AuthenticationFailureReportRes = -1;
static gint ett_gsm_map_RegisterCC_EntryArg = -1;
-static gint ett_gsm_map_T_ccbs_Data = -1;
static gint ett_gsm_map_RegisterCC_EntryRes = -1;
+static gint ett_gsm_map_CCBS_Data = -1;
+static gint ett_gsm_map_ServiceIndicator = -1;
static gint ett_gsm_map_EraseCC_EntryArg = -1;
static gint ett_gsm_map_EraseCC_EntryRes = -1;
static gint ett_gsm_map_RoutingInfoForSMArg = -1;
-static gint ett_gsm_map_RoutingInfoForSMRes = -1;
-static gint ett_gsm_map_T_locationInfoWithLMSI = -1;
-static gint ett_gsm_map_T_additional_Number = -1;
+static gint ett_gsm_map_RoutingInfoForSM_Res = -1;
+static gint ett_gsm_map_LocationInfoWithLMSI = -1;
+static gint ett_gsm_map_Additional_Number = -1;
static gint ett_gsm_map_Mo_forwardSM_Arg = -1;
static gint ett_gsm_map_Mo_forwardSM_Res = -1;
static gint ett_gsm_map_Sm_RP_OA = -1;
static gint ett_gsm_map_Sm_RP_DA = -1;
static gint ett_gsm_map_Mt_forwardSM_Arg = -1;
static gint ett_gsm_map_Mt_forwardSM_Res = -1;
+static gint ett_gsm_map_ForwardSM_Arg = -1;
static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1;
static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1;
static gint ett_gsm_map_InformServiceCentreArg = -1;
-static gint ett_gsm_map_T_mw_Status = -1;
+static gint ett_gsm_map_MW_Status = -1;
static gint ett_gsm_map_AlertServiceCentreArg = -1;
static gint ett_gsm_map_ReadyForSM_Arg = -1;
static gint ett_gsm_map_ReadyForSM_Res = -1;
+static gint ett_gsm_map_Mt_ForwardSM_VGCS_Arg = -1;
+static gint ett_gsm_map_Mt_ForwardSM_VGCS_Res = -1;
+static gint ett_gsm_map_DispatcherList = -1;
static gint ett_gsm_map_ProvideSubscriberInfoArg = -1;
static gint ett_gsm_map_ProvideSubscriberInfoRes = -1;
+static gint ett_gsm_map_SubscriberInfo = -1;
+static gint ett_gsm_map_MNPInfoRes = -1;
+static gint ett_gsm_map_GPRSMSClass = -1;
static gint ett_gsm_map_RequestedInfo = -1;
static gint ett_gsm_map_AnyTimeInterrogationArg = -1;
-static gint ett_gsm_map_T_subscriberIdentity = -1;
static gint ett_gsm_map_AnyTimeInterrogationRes = -1;
+static gint ett_gsm_map_AnyTimeSubscriptionInterrogationArg = -1;
+static gint ett_gsm_map_AnyTimeSubscriptionInterrogationRes = -1;
+static gint ett_gsm_map_RequestedSubscriptionInfo = -1;
+static gint ett_gsm_map_MSISDN_BS_List = -1;
+static gint ett_gsm_map_MSISDN_BS = -1;
+static gint ett_gsm_map_CallForwardingData = -1;
+static gint ett_gsm_map_CallBarringData = -1;
+static gint ett_gsm_map_BasicServiceCode = -1;
+static gint ett_gsm_map_O_BcsmCamelTDPCriteriaList = -1;
+static gint ett_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList = -1;
+static gint ett_gsm_map_O_BcsmCamelTDP_Criteria = -1;
+static gint ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria = -1;
+static gint ett_gsm_map_OfferedCamel4CSIs = -1;
+static gint ett_gsm_map_OfferedCamel4Functionalities = -1;
+static gint ett_gsm_map_SS_ForBS_Code = -1;
+static gint ett_gsm_map_GenericServiceInfo = -1;
+static gint ett_gsm_map_CCBS_FeatureList = -1;
+static gint ett_gsm_map_CCBS_Feature = -1;
+static gint ett_gsm_map_T_CauseValueCriteria = -1;
+static gint ett_gsm_map_O_CauseValueCriteria = -1;
+static gint ett_gsm_map_BasicServiceCriteria = -1;
+static gint ett_gsm_map_AnyTimeModificationArg = -1;
+static gint ett_gsm_map_AnyTimeModificationRes = -1;
+static gint ett_gsm_map_ModificationRequestFor_CF_Info = -1;
+static gint ett_gsm_map_ModificationRequestFor_CB_Info = -1;
+static gint ett_gsm_map_ModificationRequestFor_ODB_data = -1;
+static gint ett_gsm_map_ModificationRequestFor_CSI = -1;
+static gint ett_gsm_map_Ext_SS_InfoFor_CSE = -1;
+static gint ett_gsm_map_NoteSubscriberDataModifiedArg = -1;
+static gint ett_gsm_map_NoteSubscriberDataModifiedRes = -1;
+static gint ett_gsm_map_NoteMM_EventArg = -1;
+static gint ett_gsm_map_NoteMM_EventRes = -1;
+static gint ett_gsm_map_CAMEL_SubscriptionInfo = -1;
+static gint ett_gsm_map_Ext_ForwardingInfoFor_CSE = -1;
+static gint ett_gsm_map_Ext_BasicServiceCode = -1;
+static gint ett_gsm_map_Ext_CallBarringInfoFor_CSE = -1;
+static gint ett_gsm_map_ODB_Info = -1;
+static gint ett_gsm_map_ODB_Data = -1;
+static gint ett_gsm_map_M_CSI = -1;
+static gint ett_gsm_map_SS_EventList = -1;
+static gint ett_gsm_map_T_CSI = -1;
+static gint ett_gsm_map_T_BcsmCamelTDPDataList = -1;
+static gint ett_gsm_map_T_BcsmCamelTDPData = -1;
+static gint ett_gsm_map_SMS_CSI = -1;
+static gint ett_gsm_map_SMS_CAMEL_TDP_DataList = -1;
+static gint ett_gsm_map_SMS_CAMEL_TDP_Data = -1;
+static gint ett_gsm_map_MobilityTriggers = -1;
static gint ett_gsm_map_Ss_InvocationNotificationArg = -1;
-static gint ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20 = -1;
+static gint ett_gsm_map_SS_EventSpecification = -1;
static gint ett_gsm_map_Ss_InvocationNotificationRes = -1;
static gint ett_gsm_map_PrepareGroupCallArg = -1;
static gint ett_gsm_map_PrepareGroupCallRes = -1;
static gint ett_gsm_map_SendGroupCallEndSignalArg = -1;
static gint ett_gsm_map_SendGroupCallEndSignalRes = -1;
static gint ett_gsm_map_ProcessGroupCallSignallingArg = -1;
+static gint ett_gsm_map_StateAttributes = -1;
+static gint ett_gsm_map_SendGroupCallInfoArg = -1;
+static gint ett_gsm_map_SendGroupCallInfoRes = -1;
static gint ett_gsm_map_ForwardGroupCallSignallingArg = -1;
static gint ett_gsm_map_UpdateGprsLocationArg = -1;
-static gint ett_gsm_map_T_sgsn_Capability = -1;
static gint ett_gsm_map_UpdateGprsLocationRes = -1;
+static gint ett_gsm_map_SGSN_Capability = -1;
static gint ett_gsm_map_SendRoutingInfoForGprsArg = -1;
static gint ett_gsm_map_SendRoutingInfoForGprsRes = -1;
static gint ett_gsm_map_FailureReportArg = -1;
static gint ett_gsm_map_FailureReportRes = -1;
static gint ett_gsm_map_NoteMsPresentForGprsArg = -1;
static gint ett_gsm_map_NoteMsPresentForGprsRes = -1;
-static gint ett_gsm_map_LcsClientExternalID = -1;
-static gint ett_gsm_map_LcsClientName = -1;
-static gint ett_gsm_map_Lcs_ClientID = -1;
-static gint ett_gsm_map_LcsLocationInfo = -1;
static gint ett_gsm_map_ProvideSubscriberLocation_Arg = -1;
-static gint ett_gsm_map_T_locationType = -1;
-static gint ett_gsm_map_T_lcs_QoS = -1;
-static gint ett_gsm_map_T_responseTime = -1;
+static gint ett_gsm_map_LocationType = -1;
+static gint ett_gsm_map_DeferredLocationEventType = -1;
+static gint ett_gsm_map_LCS_ClientID = -1;
+static gint ett_gsm_map_LCSClientName = -1;
+static gint ett_gsm_map_LCSRequestorID = -1;
+static gint ett_gsm_map_LCS_QoS = -1;
+static gint ett_gsm_map_ResponseTime = -1;
+static gint ett_gsm_map_SupportedGADShapes = -1;
+static gint ett_gsm_map_LCSCodeword = -1;
+static gint ett_gsm_map_LCS_PrivacyCheck = -1;
+static gint ett_gsm_map_AreaEventInfo = -1;
+static gint ett_gsm_map_AreaDefinition = -1;
+static gint ett_gsm_map_AreaList = -1;
+static gint ett_gsm_map_Area = -1;
+static gint ett_gsm_map_PeriodicLDRInfo = -1;
+static gint ett_gsm_map_ReportingPLMNList = -1;
+static gint ett_gsm_map_PLMNList = -1;
+static gint ett_gsm_map_ReportingPLMN = -1;
static gint ett_gsm_map_ProvideSubscriberLocation_Res = -1;
-static gint ett_gsm_map_TargetMS = -1;
static gint ett_gsm_map_RoutingInfoForLCS_Arg = -1;
static gint ett_gsm_map_RoutingInfoForLCS_Res = -1;
+static gint ett_gsm_map_LCSLocationInfo = -1;
static gint ett_gsm_map_SubscriberLocationReport_Arg = -1;
+static gint ett_gsm_map_Deferredmt_lrData = -1;
static gint ett_gsm_map_SubscriberLocationReport_Res = -1;
+static gint ett_gsm_map_SecureTransportArg = -1;
+static gint ett_gsm_map_SecureTransportRes = -1;
+static gint ett_gsm_map_SecurityHeader = -1;
+static gint ett_gsm_map_OriginalComponentIdentifier = -1;
+static gint ett_gsm_map_OperationCode = -1;
+static gint ett_gsm_map_ErrorCode = -1;
+static gint ett_gsm_map_PlmnContainer = -1;
+static gint ett_gsm_map_T_operatorSS_Code = -1;
static gint ett_gsm_map_SystemFailureParam = -1;
-static gint ett_gsm_map_T_extensibleSystemFailureParam = -1;
+static gint ett_gsm_map_ExtensibleSystemFailureParam = -1;
static gint ett_gsm_map_DataMissingParam = -1;
static gint ett_gsm_map_UnexpectedDataParam = -1;
static gint ett_gsm_map_FacilityNotSupParam = -1;
static gint ett_gsm_map_AbsentSubscriberParam = -1;
static gint ett_gsm_map_BusySubscriberParam = -1;
static gint ett_gsm_map_NoSubscriberReplyParam = -1;
-static gint ett_gsm_map_CallBarredParam = -1;
-static gint ett_gsm_map_T_extensibleCallBarredParam = -1;
+static gint ett_gsm_map_ForwardingViolationParam = -1;
static gint ett_gsm_map_ForwardingFailedParam = -1;
+static gint ett_gsm_map_ATI_NotAllowedParam = -1;
+static gint ett_gsm_map_ATSI_NotAllowedParam = -1;
+static gint ett_gsm_map_ATM_NotAllowedParam = -1;
+static gint ett_gsm_map_IllegalSS_OperationParam = -1;
+static gint ett_gsm_map_SS_NotAvailableParam = -1;
+static gint ett_gsm_map_SS_SubscriptionViolationParam = -1;
+static gint ett_gsm_map_InformationNotAvailableParam = -1;
+static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
+static gint ett_gsm_map_CallBarredParam = -1;
+static gint ett_gsm_map_ExtensibleCallBarredParam = -1;
+static gint ett_gsm_map_CUG_RejectParam = -1;
static gint ett_gsm_map_Or_NotAllowedParam = -1;
-static gint ett_gsm_map_ForwardingViolationParam = -1;
-static gint ett_gsm_map_Cug_RejectParam = -1;
-static gint ett_gsm_map_Ati_NotAllowedParam = -1;
static gint ett_gsm_map_NoGroupCallNbParam = -1;
-static gint ett_gsm_map_Ss_IncompatibilityCause = -1;
+static gint ett_gsm_map_SS_IncompatibilityCause = -1;
static gint ett_gsm_map_ShortTermDenialParam = -1;
static gint ett_gsm_map_LongTermDenialParam = -1;
-static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1;
-static gint ett_gsm_map_Sm_DeliveryFailureCause = -1;
+static gint ett_gsm_map_SM_DeliveryFailureCause = -1;
static gint ett_gsm_map_MessageWaitListFullParam = -1;
static gint ett_gsm_map_AbsentSubscriberSM_Param = -1;
static gint ett_gsm_map_UnauthorizedRequestingNetwork_Param = -1;
static gint ett_gsm_map_UnauthorizedLCSClient_Param = -1;
static gint ett_gsm_map_PositionMethodFailure_Param = -1;
static gint ett_gsm_map_UnknownOrUnreachableLCSClient_Param = -1;
+static gint ett_gsm_map_MM_EventNotSupported_Param = -1;
+static gint ett_gsm_map_TargetCellOutsideGCA_Param = -1;
+static gint ett_gsm_map_OngoingGroupCallParam = -1;
+static gint ett_gsm_map_SecureTransportErrorParam = -1;
static gint ett_gsm_map_ExtensionContainer = -1;
/*--- End of included file: packet-gsm_map-ett.c ---*/
-
+#line 151 "packet-gsm_map-template.c"
static dissector_table_t sms_dissector_table; /* SMS TPDU */
+static dissector_handle_t data_handle;
+static dissector_handle_t ranap_handle;
+static dissector_handle_t map_handle;
-static int dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
+/* Preferenc settings default */
+#define MAX_SSN 254
+static range_t *global_ssn_range;
+static range_t *ssn_range;
+/* Global variables */
+static guint32 opcode=0;
+static guint32 errorCode;
+static proto_tree *top_tree;
+static int application_context_version;
+guint protocolId;
+guint AccessNetworkProtocolId;
+const char *obj_id = NULL;
+static int gsm_map_tap = -1;
-/*--- Included file: packet-gsm_map-fn.c ---*/
+/* Forward declarations */
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
+const gchar* gsm_map_opr_code(guint32 val);
-/*--- Fields for imported types ---*/
+/* Value strings */
+const value_string gsm_map_PDP_Type_Organisation_vals[] = {
+ { 0, "ETSI" },
+ { 1, "IETF" },
+ { 0, NULL }
+};
+const value_string gsm_map_ietf_defined_pdp_vals[] = {
+ { 0x21, "IPv4 Address" },
+ { 0x57, "IPv6 Address" },
+ { 0, NULL }
+};
-static const value_string ProtocolId_vals[] = {
- { 1, "gsm-0408" },
- { 2, "gsm-0806" },
- { 3, "gsm-BSSMAP" },
- { 4, "ets-300102-1" },
+const value_string gsm_map_etsi_defined_pdp_vals[] = {
+ { 1, "PPP" },
{ 0, NULL }
};
+char * unpack_digits(tvbuff_t *tvb, int offset){
-static int
-dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+ int length;
+ guint8 octet;
+ int i=0;
+ char *digit_str;
+
+ length = tvb_length(tvb);
+ if (length < offset)
+ return "";
+ digit_str = ep_alloc((length - offset)*2+1);
+
+ while ( offset < length ){
+
+ octet = tvb_get_guint8(tvb,offset);
+ digit_str[i] = ((octet & 0x0f) + '0');
+ i++;
+
+ /*
+ * unpack second value in byte
+ */
+ octet = octet >> 4;
+
+ if (octet == 0x0f) /* odd number bytes - hit filler */
+ break;
+
+ digit_str[i] = ((octet & 0x0f) + '0');
+ i++;
+ offset++;
+
+ }
+ digit_str[i]= '\0';
+ return digit_str;
+}
+
+/* returns value in kb/s */
+static guint
+gsm_map_calc_bitrate(guint8 value){
+
+ guint8 granularity;
+ guint returnvalue;
+
+ if (value == 0xff)
+ return 0;
+
+ granularity = value >> 6;
+ returnvalue = value & 0x7f;
+ switch (granularity){
+ case 0:
+ break;
+ case 1:
+ returnvalue = ((returnvalue - 0x40) << 3)+64;
+ break;
+ case 2:
+ returnvalue = (returnvalue << 6)+576;
+ break;
+ case 3:
+ returnvalue = (returnvalue << 6)+576;
+ break;
+ }
+ return returnvalue;
+
+}
+
+static void
+dissect_gsm_map_ext_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_){
+ int offset = 0;
+ proto_item *item;
+ proto_tree *subtree;
+ guint8 octet;
+ guint16 value;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_ext_qos_subscribed);
+ /* OCTET 1:
+ Allocation/Retention Priority (This octet encodes each priority level defined in
+ 23.107 as the binary value of the priority level, declaration in 29.060)
+ Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets
+ 6-13.
+ */
+ /* Allocation/Retention Priority */
+ proto_tree_add_item(subtree, hf_gsm_map_ext_qos_subscribed_pri, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* Quality of Service Octets 6-13.( Octet 2 - 9 Here) */
+
+ /* Traffic class, octet 6 (see 3GPP TS 23.107) Bits 8 7 6 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_traffic_cls, tvb, offset, 1, FALSE);
+ /* Delivery order, octet 6 (see 3GPP TS 23.107) Bits 5 4 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_del_order, tvb, offset, 1, FALSE);
+ /* Delivery of erroneous SDUs, octet 6 (see 3GPP TS 23.107) Bits 3 2 1 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_del_of_err_sdu, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */
+ octet = tvb_get_guint8(tvb,offset);
+ switch (octet){
+ case 0:
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum SDU size/Reserved");
+ break;
+ case 0x93:
+ value = 1502;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ case 0x98:
+ value = 1510;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ case 0x99:
+ value = 1532;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ break;
+ default:
+ if (octet<0x97){
+ value = octet * 10;
+ proto_tree_add_uint(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, value);
+ }else{
+ proto_tree_add_text(subtree, tvb, offset, 1, "Maximum SDU size value 0x%x not defined in TS 24.008",octet);
+ }
+ }
+ offset++;
+
+ /* Maximum bit rate for uplink, octet 8 */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for uplink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+ /* Maximum bit rate for downlink, octet 9 (see 3GPP TS 23.107) */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Maximum bit rate for downlink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+ /* Residual Bit Error Rate (BER), octet 10 (see 3GPP TS 23.107) Bits 8 7 6 5 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_ber, tvb, offset, 1, FALSE);
+ /* SDU error ratio, octet 10 (see 3GPP TS 23.107) */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_sdu_err_rat, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* Transfer delay, octet 11 (See 3GPP TS 23.107) Bits 8 7 6 5 4 3 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_transfer_delay, tvb, offset, 1, FALSE);
+ /* Traffic handling priority, octet 11 (see 3GPP TS 23.107) Bits 2 1 */
+ proto_tree_add_item(subtree, hf_gsm_map_qos_traff_hdl_pri, tvb, offset, 1, FALSE);
+ offset++;
+
+ /* Guaranteed bit rate for uplink, octet 12 (See 3GPP TS 23.107)
+ Coding is identical to that of Maximum bit rate for uplink.
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for uplink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
+ offset++;
+
+ /* Guaranteed bit rate for downlink, octet 13(See 3GPP TS 23.107)
+ Coding is identical to that of Maximum bit rate for uplink.
+ */
+ octet = tvb_get_guint8(tvb,offset);
+ if (octet == 0 ){
+ proto_tree_add_text(subtree, tvb, offset, 1, "Subscribed Guaranteed bit rate for downlink/Reserved" );
+ }else{
+ proto_tree_add_uint(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, gsm_map_calc_bitrate(octet));
+ }
- return offset;
}
-static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_protocolId);
+
+#define ELLIPSOID_POINT 0
+
+
+/* TS 23 032 Table 2a: Coding of Type of Shape */
+static const value_string type_of_shape_vals[] = {
+ { ELLIPSOID_POINT, "Ellipsoid Point"},
+ { 1, "Ellipsoid point with uncertainty Circle"},
+ { 3, "Ellipsoid point with uncertainty Ellipse"},
+ { 5, "Polygon"},
+ { 8, "Ellipsoid point with altitude"},
+ { 9, "Ellipsoid point with altitude and uncertainty Ellipsoid"},
+ { 10, "Ellipsoid Arc"},
+ { 0, NULL }
+};
+
+/* 3GPP TS 23.032 7.3.1 */
+static const value_string sign_of_latitude_vals[] = {
+ { 0, "North"},
+ { 1, "South"},
+ { 0, NULL }
+};
+
+static const value_string dir_of_alt_vals[] = {
+ { 0, "Altitude expresses height"},
+ { 1, "Altitude expresses depth"},
+ { 0, NULL }
+};
+
+
+void
+dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree){
+
+ proto_item *lat_item, *long_item, *major_item, *minor_item, *alt_item;
+ /*proto_tree *subtree; */
+
+ guint8 type_of_shape;
+ guint8 no_of_points;
+ int offset = 0;
+ int length;
+ guint8 value;
+ guint32 value32;
+
+ /*subtree = proto_item_add_subtree(item, ett_gsm_map_geo_desc);*/
+
+ length = tvb_reported_length_remaining(tvb,0);
+ /* Geographical Location
+ * The Location Estimate field is composed of 1 or more octets with an internal structure
+ * according to section 7 in [23.032].
+ */
+ proto_tree_add_item(tree, hf_geo_loc_type_of_shape, tvb, 0, 1, FALSE);
+ if (length<2)
+ return;
+ type_of_shape = tvb_get_guint8(tvb,offset)>>4;
+ switch (type_of_shape){
+ case ELLIPSOID_POINT: /* Ellipsoid Point */
+ case 2: /* Ellipsoid Point with uncertainty Circle */
+ case 3: /* Ellipsoid Point with uncertainty Ellipse */
+ case 8: /* Ellipsoid Point with Altitude */
+ case 9: /* Ellipsoid Point with altitude and uncertainty ellipsoid */
+ case 10: /* Ellipsoid Arc */
+ offset++;
+ if (length<4)
+ return;
+ proto_tree_add_item(tree, hf_geo_loc_sign_of_lat, tvb, offset, 1, FALSE);
+
+ value32 = tvb_get_ntoh24(tvb,offset)&0x7fffff;
+ /* convert degrees (X/0x7fffff) * 90 = degrees */
+ lat_item = proto_tree_add_item(tree, hf_geo_loc_deg_of_lat, tvb, offset, 3, FALSE);
+ proto_item_append_text(lat_item,"(%.5f degrees)", (((double)value32/8388607) * 90));
+ if (length<7)
+ return;
+ offset = offset + 3;
+ value32 = tvb_get_ntoh24(tvb,offset)&0x7fffff;
+ long_item = proto_tree_add_item(tree, hf_geo_loc_deg_of_long, tvb, offset, 3, FALSE);
+ /* (X/0xffffff) *360 = degrees */
+ proto_item_append_text(long_item,"(%.5f degrees)", (((double)value32/16777215) * 360));
+ offset = offset + 3;
+ if(type_of_shape==2){
+ /* Ellipsoid Point with uncertainty Circle */
+ if (length<8)
+ return;
+ /* Uncertainty code */
+ proto_tree_add_item(tree, hf_geo_loc_uncertainty_code, tvb, offset, 1, FALSE);
+ }else if(type_of_shape==3){
+ /* Ellipsoid Point with uncertainty Ellipse */
+ /* Uncertainty semi-major octet 10
+ * To convert to metres 10*(((1.1)^X)-1)
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ major_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_major, tvb, offset, 1, FALSE);
+ proto_item_append_text(major_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
+ offset++;
+ /* Uncertainty semi-minor Octet 11
+ * To convert to metres 10*(((1.1)^X)-1)
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ minor_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_minor, tvb, offset, 1, FALSE);
+ proto_item_append_text(minor_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
+ offset++;
+ /* Orientation of major axis octet 12
+ * allowed value from 0-179 to convert
+ * to actual degrees multiply by 2.
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ proto_tree_add_uint(tree, hf_geo_loc_orientation_of_major_axis, tvb, offset, 1, value*2);
+ offset++;
+ /* Confidence */
+ proto_tree_add_item(tree, hf_geo_loc_confidence, tvb, offset, 1, FALSE);
+ }else if(type_of_shape==8){
+ /* Ellipsoid Point with Altitude */
+ /*D: Direction of Altitude */
+ proto_tree_add_item(tree, hf_geo_loc_D, tvb, offset, 1, FALSE);
+ /* Altitude */
+ proto_tree_add_item(tree, hf_geo_loc_altitude, tvb, offset, 2, FALSE);
+ }else if(type_of_shape==9){
+ /* Ellipsoid Point with altitude and uncertainty ellipsoid */
+ /*D: Direction of Altitude octet 8,9 */
+ proto_tree_add_item(tree, hf_geo_loc_D, tvb, offset, 1, FALSE);
+ /* Altitude Octet 8,9*/
+ proto_tree_add_item(tree, hf_geo_loc_altitude, tvb, offset, 2, FALSE);
+ offset = offset +2;
+ /* Uncertainty semi-major octet 10
+ * To convert to metres 10*(((1.1)^X)-1)
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ major_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_major, tvb, offset, 1, FALSE);
+ proto_item_append_text(major_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
+ offset++;
+ /* Uncertainty semi-minor Octet 11
+ * To convert to metres 10*(((1.1)^X)-1)
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ minor_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_semi_minor, tvb, offset, 1, FALSE);
+ proto_item_append_text(minor_item,"(%.1f m)", 10 * (pow(1.1, (double)value) - 1));
+ offset++;
+ /* Orientation of major axis octet 12
+ * allowed value from 0-179 to convert
+ * to actual degrees multiply by 2.
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ proto_tree_add_uint(tree, hf_geo_loc_orientation_of_major_axis, tvb, offset, 1, value*2);
+ offset++;
+ /* Uncertainty Altitude 13
+ * to convert to metres 45*(((1.025)^X)-1)
+ */
+ value = tvb_get_guint8(tvb,offset)&0x7f;
+ alt_item = proto_tree_add_item(tree, hf_geo_loc_uncertainty_altitude, tvb, offset, 1, FALSE);
+ proto_item_append_text(alt_item,"(%.1f m)", 45 * (pow(1.025, (double)value) - 1));
+ offset++;
+ /* Confidence octet 14
+ */
+ proto_tree_add_item(tree, hf_geo_loc_confidence, tvb, offset, 1, FALSE);
+ }else if(type_of_shape==10){
+ /* Ellipsoid Arc */
+ offset++;
+ /* Inner radius */
+ proto_tree_add_item(tree, hf_geo_loc_inner_radius, tvb, offset, 2, FALSE);
+ offset= offset +2;
+ /* Uncertainty radius */
+ proto_tree_add_item(tree, hf_geo_loc_uncertainty_radius, tvb, offset, 1, FALSE);
+ offset++;
+ /* Offset angle */
+ proto_tree_add_item(tree, hf_geo_loc_offset_angle, tvb, offset, 1, FALSE);
+ offset++;
+ /* Included angle */
+ proto_tree_add_item(tree, hf_geo_loc_included_angle, tvb, offset, 1, FALSE);
+ offset++;
+ /* Confidence */
+ proto_tree_add_item(tree, hf_geo_loc_confidence, tvb, offset, 1, FALSE);
+ }
+
+ break;
+ case 5: /* Polygon */
+ /* Number of points */
+ no_of_points = tvb_get_guint8(tvb,offset)&0x0f;
+ proto_tree_add_item(tree, hf_geo_loc_no_of_points, tvb, offset, 1, FALSE);
+ /*
+ while ( no_of_points > 0){
+ offset++;
+
+ no_of_points--;
+ }
+ */
+ break;
+ default:
+ break;
+ }
+
}
+/*--- Included file: packet-gsm_map-fn.c ---*/
+#line 1 "packet-gsm_map-fn.c"
+/*--- Fields for imported types ---*/
+
+
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_signalInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_signalInfo);
+static int dissect_invokeID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InvokeIdType(FALSE, tvb, offset, actx, tree, hf_gsm_map_invokeID);
}
-static int dissect_sm_RP_UI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_UI);
+static int dissect_linkedID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InvokeIdType(TRUE, tvb, offset, actx, tree, hf_gsm_map_linkedID);
}
-static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_200(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_diagnosticInfo);
+static int dissect_derivable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InvokeIdType(FALSE, tvb, offset, actx, tree, hf_gsm_map_derivable);
}
-static const ber_sequence PrivateExtension_sequence[] = {
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_GSMMAPOperationLocalvalue_vals[] = {
+ { 2, "updateLocation" },
+ { 3, "cancelLocation" },
+ { 4, "provideRoamingNumber" },
+ { 5, "noteSubscriberDataModified" },
+ { 6, "resumeCallHandling" },
+ { 7, "insertSubscriberData" },
+ { 8, "deleteSubscriberData" },
+ { 9, "sendParameters" },
+ { 10, "registerSS" },
+ { 11, "eraseSS" },
+ { 12, "activateSS" },
+ { 13, "deactivateSS" },
+ { 14, "interrogateSS" },
+ { 15, "authenticationFailureReport" },
+ { 17, "registerPassword" },
+ { 18, "getPassword" },
+ { 19, "processUnstructuredSS-Data" },
+ { 20, "releaseResources" },
+ { 21, "mt-ForwardSM-VGCS" },
+ { 22, "sendRoutingInfo" },
+ { 23, "updateGprsLocation" },
+ { 24, "sendRoutingInfoForGprs" },
+ { 25, "failureReport" },
+ { 26, "noteMsPresentForGprs" },
+ { 28, "performHandover" },
+ { 29, "sendEndSignal" },
+ { 30, "performSubsequentHandover" },
+ { 31, "provideSIWFSNumber" },
+ { 32, "sIWFSSignallingModify" },
+ { 33, "processAccessSignalling" },
+ { 34, "forwardAccessSignalling" },
+ { 35, "noteInternalHandover" },
+ { 37, "reset" },
+ { 38, "forwardCheckSS" },
+ { 39, "prepareGroupCall" },
+ { 40, "sendGroupCallEndSignal" },
+ { 41, "processGroupCallSignalling" },
+ { 42, "forwardGroupCallSignalling" },
+ { 43, "checkIMEI" },
+ { 44, "mt-forwardSM" },
+ { 45, "sendRoutingInfoForSM" },
+ { 46, "mo-forwardSM" },
+ { 47, "reportSM-DeliveryStatus" },
+ { 48, "noteSubscriberPresent" },
+ { 49, "alertServiceCentreWithoutResult" },
+ { 50, "activateTraceMode" },
+ { 51, "deactivateTraceMode" },
+ { 52, "traceSubscriberActivity" },
+ { 54, "beginSubscriberActivity" },
+ { 55, "sendIdentification" },
+ { 56, "sendAuthenticationInfo" },
+ { 57, "restoreData" },
+ { 58, "sendIMSI" },
+ { 59, "processUnstructuredSS-Request" },
+ { 60, "unstructuredSS-Request" },
+ { 61, "unstructuredSS-Notify" },
+ { 62, "anyTimeSubscriptionInterrogation" },
+ { 63, "informServiceCentre" },
+ { 64, "alertServiceCentre" },
+ { 65, "anyTimeModification" },
+ { 66, "readyForSM" },
+ { 67, "purgeMS" },
+ { 68, "prepareHandover" },
+ { 69, "prepareSubsequentHandover" },
+ { 70, "provideSubscriberInfo" },
+ { 71, "anyTimeInterrogation" },
+ { 72, "ss-InvocationNotification" },
+ { 73, "setReportingState" },
+ { 74, "statusReport" },
+ { 75, "remoteUserFree" },
+ { 76, "registerCC-Entry" },
+ { 77, "eraseCC-Entry" },
+ { 78, "secureTransportClass1" },
+ { 79, "secureTransportClass2" },
+ { 80, "secureTransportClass3" },
+ { 81, "secureTransportClass4" },
+ { 83, "provideSubscriberLocation" },
+ { 84, "sendGroupCallInfo" },
+ { 85, "sendRoutingInfoForLCS" },
+ { 86, "subscriberLocationReport" },
+ { 87, "ist-Alert" },
+ { 88, "ist-Command" },
+ { 89, "noteMM-Event" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
+dissect_gsm_map_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 142 "gsmmap.cnf"
+
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ &opcode);
+
+ if (check_col(actx->pinfo->cinfo, COL_INFO)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
+ }
+
+
return offset;
}
-static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_PrivateExtensionList_item);
-}
-static const ber_sequence PrivateExtensionList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
-};
+
static int
-dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
+dissect_gsm_map_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
-static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privateExtensionList);
+static int dissect_operationLocalvalue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OperationLocalvalue(FALSE, tvb, offset, actx, tree, hf_gsm_map_operationLocalvalue);
}
-static const ber_sequence PcsExtensions_sequence[] = {
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
+dissect_gsm_map_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index, &obj_id);
return offset;
}
-static int dissect_pcsExtensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pcsExtensions);
+static int dissect_globalValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_gsm_map_globalValue);
+}
+static int dissect_extId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_gsm_map_extId);
}
-static const ber_sequence ExtensionContainer_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_OPERATION_vals[] = {
+ { 0, "localValue" },
+ { 1, "globalValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t OPERATION_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_operationLocalvalue },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 0, 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
+dissect_gsm_map_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ OPERATION_choice, hf_index, ett_gsm_map_OPERATION,
+ NULL);
return offset;
}
-static int dissect_extensionContainer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
+static int dissect_opCode(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OPERATION(FALSE, tvb, offset, actx, tree, hf_gsm_map_opCode);
+}
+
+
+
+static int
+dissect_gsm_map_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 129 "gsmmap.cnf"
+ offset = dissect_invokeData(tree, tvb, offset, actx);
+
+
+
+ return offset;
}
-static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_extensionContainer);
+static int dissect_invokeparameter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InvokeParameter(FALSE, tvb, offset, actx, tree, hf_gsm_map_invokeparameter);
}
-static const ber_sequence Bss_APDU_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t Invoke_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_invokeparameter },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
+dissect_gsm_map_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Invoke_sequence, hf_index, ett_gsm_map_Invoke);
return offset;
}
-static int dissect_bss_APDU(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bss_APDU);
-}
-static int dissect_networkSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkSignalInfo);
-}
-static int dissect_gsm_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsm_BearerCapability);
-}
-static int dissect_isdn_BearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_isdn_BearerCapability);
-}
-static int dissect_chosenChannel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_chosenChannel);
+static int dissect_invoke_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Invoke(TRUE, tvb, offset, actx, tree, hf_gsm_map_invoke);
}
-static int dissect_lowerLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lowerLayerCompatibility);
+
+
+
+static int
+dissect_gsm_map_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 132 "gsmmap.cnf"
+ offset = dissect_returnResultData(tree, tvb, offset, actx);
+
+
+
+ return offset;
}
-static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_highLayerCompatibility);
+static int dissect_returnparameter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnResultParameter(FALSE, tvb, offset, actx, tree, hf_gsm_map_returnparameter);
}
-static int dissect_channelType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_channelType);
+
+
+static const ber_sequence_t T_resultretres_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_returnparameter },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ T_resultretres_sequence, hf_index, ett_gsm_map_T_resultretres);
+
+ return offset;
}
-static int dissect_callInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Bss_APDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callInfo);
+static int dissect_resultretres(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_resultretres(FALSE, tvb, offset, actx, tree, hf_gsm_map_resultretres);
}
-static const asn_namedbit SupportedCamelPhases_bits[] = {
- { 0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, NULL, NULL },
- { 1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, NULL, NULL },
- { 0, NULL, 0, 0, NULL, NULL }
+
+static const ber_sequence_t ReturnResult_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_resultretres },
+ { 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
- SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
- NULL);
+dissect_gsm_map_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReturnResult_sequence, hf_index, ett_gsm_map_ReturnResult);
+
+ return offset;
+}
+static int dissect_returnResultLast_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnResult(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnResultLast);
+}
+static int dissect_returnResultNotLast_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnResult(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnResultNotLast);
+}
+
+
+const value_string gsm_map_GSMMAPLocalErrorcode_vals[] = {
+ { 34, "systemFailure" },
+ { 35, "dataMissing" },
+ { 36, "unexpectedDataValue" },
+ { 21, "facilityNotSupported" },
+ { 28, "incompatibleTerminal" },
+ { 51, "resourceLimitation" },
+ { 1, "unknownSubscriber" },
+ { 44, "numberChanged" },
+ { 3, "unknownMSC" },
+ { 5, "unidentifiedSubscriber" },
+ { 7, "unknownEquipment" },
+ { 8, "roamingNotAllowed" },
+ { 9, "illegalSubscriber" },
+ { 12, "illegalEquipment" },
+ { 10, "bearerServiceNotProvisioned" },
+ { 11, "teleserviceNotProvisioned" },
+ { 25, "noHandoverNumberAvailable" },
+ { 26, "subsequentHandoverFailure" },
+ { 42, "targetCellOutsideGroupCallArea" },
+ { 40, "tracingBufferFull" },
+ { 39, "noRoamingNumberAvailable" },
+ { 27, "absentSubscriber" },
+ { 45, "busySubscriber" },
+ { 46, "noSubscriberReply" },
+ { 13, "callBarred" },
+ { 14, "forwardingViolation" },
+ { 47, "forwardingFailed" },
+ { 15, "cug-Reject" },
+ { 48, "or-NotAllowed" },
+ { 49, "ati-NotAllowed" },
+ { 60, "atsi-NotAllowed" },
+ { 61, "atm-NotAllowed" },
+ { 62, "informationNotAvailabl" },
+ { 16, "illegalSS-Operation" },
+ { 17, "ss-ErrorStatus" },
+ { 18, "ss-NotAvailable" },
+ { 19, "ss-SubscriptionViolatio" },
+ { 20, "ss-Incompatibility" },
+ { 71, "unknownAlphabe" },
+ { 72, "ussd-Busy" },
+ { 37, "pw-RegistrationFailur" },
+ { 38, "negativePW-Check" },
+ { 43, "numberOfPW-AttemptsViolation" },
+ { 29, "shortTermDenial" },
+ { 30, "longTermDenial" },
+ { 31, "subscriberBusyForMT-SMS" },
+ { 32, "sm-DeliveryFailure" },
+ { 33, "messageWaitingListFull" },
+ { 6, "absentSubscriberSM" },
+ { 50, "noGroupCallNumberAvailable" },
+ { 52, "unauthorizedRequestingNetwork" },
+ { 53, "unauthorizedLCSClient" },
+ { 54, "positionMethodFailure" },
+ { 58, "unknownOrUnreachableLCSClient" },
+ { 59, "mm-EventNotSupported" },
+ { 4, "secureTransportError" },
+ { 0, NULL }
+};
+
+
+int
+dissect_gsm_map_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ &errorCode);
return offset;
}
-static int dissect_supportedCamelPhases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
-}
-static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhases);
+
+
+
+static int
+dissect_gsm_map_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
}
-static int dissect_supportedCamelPhasesInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCamelPhasesInGMSC);
+static int dissect_localErrorcode(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocalErrorcode(FALSE, tvb, offset, actx, tree, hf_gsm_map_localErrorcode);
}
+static const value_string gsm_map_ERROR_vals[] = {
+ { 0, "localValue" },
+ { 1, "globalValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ERROR_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localErrorcode },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 0, 0, 0, 0, NULL }
+};
+
static int
-dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- { proto_item *ti_tmp;
- ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
- proto_item_append_text(ti_tmp, ": NULL");
- }
+dissect_gsm_map_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ ERROR_choice, hf_index, ett_gsm_map_ERROR,
+ NULL);
return offset;
}
-static int dissect_solsaSupportIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
+static int dissect_returnErrorCode(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ERROR(FALSE, tvb, offset, actx, tree, hf_gsm_map_returnErrorCode);
}
-static int dissect_solsaSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_solsaSupportIndicator);
+
+
+
+static int
+dissect_gsm_map_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 135 "gsmmap.cnf"
+ offset = dissect_returnErrorData(tree, tvb, offset, actx);
+
+
+
+ return offset;
}
-static int dissect_freezeTMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeTMSI);
+static int dissect_parameter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnErrorParameter(FALSE, tvb, offset, actx, tree, hf_gsm_map_parameter);
}
-static int dissect_freezeP_TMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_freezeP_TMSI);
+
+
+static const ber_sequence_t ReturnError_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnErrorCode },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReturnError_sequence, hf_index, ett_gsm_map_ReturnError);
+
+ return offset;
}
-static int dissect_ho_NumberNotRequired(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ho_NumberNotRequired);
+static int dissect_returnError_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnError(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnError);
}
-static int dissect_segmentationProhibited(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_segmentationProhibited);
+
+
+
+static int
+dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
}
-static int dissect_immediateResponsePreferred_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_immediateResponsePreferred);
+static int dissect_not_derivable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_not_derivable);
}
-static int dissect_roamingRestrictionDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictionDueToUnsupportedFeature);
+static int dissect_informPreviousNetworkEntity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_informPreviousNetworkEntity);
}
-static int dissect_broadcastInitEntitlement(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_broadcastInitEntitlement);
+static int dissect_cs_LCS_NotSupportedByUE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_cs_LCS_NotSupportedByUE);
}
-static int dissect_tif_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_tif_CSI);
+static int dissect_add_Capability(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_add_Capability);
}
-static int dissect_completeDataListIncluded(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_completeDataListIncluded);
+static int dissect_solsaSupportIndicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_solsaSupportIndicator);
}
-static int dissect_vplmnAddressAllowed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vplmnAddressAllowed);
+static int dissect_solsaSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_solsaSupportIndicator);
}
-static int dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature);
+static int dissect_longFTN_Supported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_longFTN_Supported);
}
-static int dissect_lsaActiveModeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaActiveModeIndicator);
+static int dissect_sendSubscriberData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_sendSubscriberData);
}
-static int dissect_lmu_Indicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmu_Indicator);
+static int dissect_skipSubscriberDataUpdate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_skipSubscriberDataUpdate);
}
-static int dissect_vbsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsGroupIndication);
+static int dissect_na_ESRK_Request_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_na_ESRK_Request);
}
-static int dissect_vgcsGroupIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsGroupIndication);
+static int dissect_freezeTMSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_freezeTMSI);
}
-static int dissect_camelSubscriptionInfoWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelSubscriptionInfoWithdraw);
+static int dissect_freezeP_TMSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_freezeP_TMSI);
}
-static int dissect_allGPRSData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allGPRSData);
+static int dissect_segmentationProhibited(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_segmentationProhibited);
}
-static int dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature);
+static int dissect_ho_NumberNotRequired(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_ho_NumberNotRequired);
}
-static int dissect_allLSAData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_allLSAData);
+static int dissect_multipleBearerRequested_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_multipleBearerRequested);
}
-static int dissect_gmlc_ListWithdraw_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_ListWithdraw);
+static int dissect_rab_ConfigurationIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_rab_ConfigurationIndicator);
}
-static int dissect_msNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msNotReachable);
+static int dissect_multipleBearerNotSupported(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_multipleBearerNotSupported);
}
-static int dissect_or_Interrogation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Interrogation);
+static int dissect_immediateResponsePreferred_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_immediateResponsePreferred);
}
-static int dissect_suppress_T_CSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_suppress_T_CSI);
+static int dissect_notificationToCSE(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_notificationToCSE);
}
-static int dissect_suppressionOfAnnouncement_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_suppressionOfAnnouncement);
+static int dissect_notificationToCSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_notificationToCSE);
}
-static int dissect_ccbs_Call_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Call);
+static int dissect_csiActive_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_csiActive);
}
-static int dissect_cugSubscriptionFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cugSubscriptionFlag);
+static int dissect_roamingRestrictionDueToUnsupportedFeature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_roamingRestrictionDueToUnsupportedFeature);
}
-static int dissect_forwardingInterrogationRequired_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInterrogationRequired);
+static int dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature);
}
-static int dissect_ccbs_Possible_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Possible);
+static int dissect_lmu_Indicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_lmu_Indicator);
}
-static int dissect_keepCCBS_CallIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_keepCCBS_CallIndicator);
+static int dissect_vplmnAddressAllowed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_vplmnAddressAllowed);
}
-static int dissect_assumedIdle_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_assumedIdle);
+static int dissect_completeDataListIncluded(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_completeDataListIncluded);
}
-static int dissect_camelBusy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelBusy);
+static int dissect_csi_Active_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_csi_Active);
}
-static int dissect_notProvidedFromVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notProvidedFromVLR);
+static int dissect_lsaActiveModeIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaActiveModeIndicator);
}
-static int dissect_cug_OutgoingAccess(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_OutgoingAccess);
+static int dissect_vbsGroupIndication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_vbsGroupIndication);
}
-static int dissect_orNotSupportedInGMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_orNotSupportedInGMSC);
+static int dissect_vgcsGroupIndication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_vgcsGroupIndication);
}
-static int dissect_uusCFInteraction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uusCFInteraction);
+static int dissect_camelSubscriptionInfoWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelSubscriptionInfoWithdraw);
}
-static int dissect_allInformationSent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_allInformationSent);
+static int dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature);
}
-static int dissect_replaceB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_replaceB_Number);
+static int dissect_gmlc_ListWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmlc_ListWithdraw);
}
-static int dissect_gprsSupportIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSupportIndicator);
+static int dissect_istInformationWithdraw(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_istInformationWithdraw);
}
-static int dissect_gprsNodeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsNodeIndicator);
+static int dissect_istInformationWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_istInformationWithdraw);
}
-static int dissect_noSM_RP_OA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_OA);
+static int dissect_chargingCharacteristicsWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_chargingCharacteristicsWithdraw);
}
-static int dissect_noSM_RP_DA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noSM_RP_DA);
+static int dissect_allGPRSData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_allGPRSData);
}
-static int dissect_moreMessagesToSend(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_moreMessagesToSend);
+static int dissect_allLSAData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_allLSAData);
}
-static int dissect_deliveryOutcomeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_deliveryOutcomeIndicator);
+static int dissect_tif_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_tif_CSI);
}
-static int dissect_alertReasonIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReasonIndicator);
+static int dissect_msNotReachable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_msNotReachable);
}
-static int dissect_locationInformationFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformationFlag);
+static int dissect_broadcastInitEntitlement(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_broadcastInitEntitlement);
}
-static int dissect_subscriberStateFlag_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStateFlag);
+static int dissect_traceSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceSupportIndicator);
}
-static int dissect_uplinkFree_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkFree);
+static int dissect_or_Interrogation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_or_Interrogation);
}
-static int dissect_uplinkRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequest);
+static int dissect_ccbs_Call_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Call);
}
-static int dissect_uplinkReleaseIndication_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseIndication);
+static int dissect_pre_pagingSupported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_pre_pagingSupported);
}
-static int dissect_releaseGroupCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_releaseGroupCall);
+static int dissect_suppress_VT_CSI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_suppress_VT_CSI);
}
-static int dissect_uplinkRequestAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRequestAck);
+static int dissect_suppress_VT_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_suppress_VT_CSI);
}
-static int dissect_uplinkRejectCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkRejectCommand);
+static int dissect_suppressIncomingCallBarring(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_suppressIncomingCallBarring);
}
-static int dissect_uplinkSeizedCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkSeizedCommand);
+static int dissect_gsmSCF_InitiatedCall(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_gsmSCF_InitiatedCall);
}
-static int dissect_uplinkReleaseCommand_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uplinkReleaseCommand);
+static int dissect_cugSubscriptionFlag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_cugSubscriptionFlag);
}
-static int dissect_privacyOverride_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_privacyOverride);
+static int dissect_forwardingInterrogationRequired_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingInterrogationRequired);
}
-static int dissect_verticalCoordinateRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_verticalCoordinateRequest);
+static int dissect_releaseResourcesSupported(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_releaseResourcesSupported);
}
-static int dissect_ccbs_Busy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Busy);
+static int dissect_releaseResourcesSupported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_releaseResourcesSupported);
}
-static int dissect_unauthorisedMessageOriginator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorisedMessageOriginator);
+static int dissect_suppress_T_CSI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_suppress_T_CSI);
}
-static int dissect_gprsConnectionSuspended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsConnectionSuspended);
+static int dissect_ccbs_Possible_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Possible);
}
-
-static const ber_sequence Vlr_Capability_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_solsaSupportIndicator_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Vlr_Capability_sequence, hf_index, ett_gsm_map_Vlr_Capability);
-
- return offset;
+static int dissect_keepCCBS_CallIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_keepCCBS_CallIndicator);
}
-static int dissect_vlr_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Vlr_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Capability);
+static int dissect_currentLocationRetrieved(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentLocationRetrieved);
}
-
-
-static int
-dissect_gsm_map_Imsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
+static int dissect_currentLocationRetrieved_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentLocationRetrieved);
}
-static int dissect_imsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
+static int dissect_sai_Present(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_sai_Present);
}
-static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Imsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imsi);
+static int dissect_sai_Present_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_sai_Present);
}
-
-
-static int
-dissect_gsm_map_Lmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
+static int dissect_assumedIdle_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_assumedIdle);
}
-static int dissect_lmsi(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Lmsi(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
+static int dissect_camelBusy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelBusy);
}
-static int dissect_lmsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Lmsi(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lmsi);
+static int dissect_notProvidedFromVLR_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_notProvidedFromVLR);
}
-
-
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
+static int dissect_notProvidedFromSGSN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_notProvidedFromSGSN);
}
-static int dissect_msc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Msc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
+static int dissect_ps_Detached_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_Detached);
}
-static int dissect_msc_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Msc_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msc_Number);
+static int dissect_ps_AttachedNotReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_AttachedNotReachableForPaging);
}
-
-
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
+static int dissect_ps_AttachedReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_AttachedReachableForPaging);
}
-static int dissect_vlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Vlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
+static int dissect_pdp_ContextActive_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_ContextActive);
}
-static int dissect_vlr_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_Number);
+static int dissect_cug_OutgoingAccess(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_OutgoingAccess);
}
-static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Vlr_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlr_number);
+static int dissect_orNotSupportedInGMSC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_orNotSupportedInGMSC);
+}
+static int dissect_allInformationSent(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_allInformationSent);
+}
+static int dissect_allInformationSent_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_allInformationSent);
+}
+static int dissect_uusCFInteraction_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uusCFInteraction);
+}
+static int dissect_replaceB_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_replaceB_Number);
+}
+static int dissect_gprsSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsSupportIndicator);
+}
+static int dissect_gprsNodeIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsNodeIndicator);
+}
+static int dissect_noSM_RP_OA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_noSM_RP_OA);
+}
+static int dissect_noSM_RP_DA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_noSM_RP_DA);
+}
+static int dissect_moreMessagesToSend(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_moreMessagesToSend);
+}
+static int dissect_deliveryOutcomeIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_deliveryOutcomeIndicator);
+}
+static int dissect_alertReasonIndicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_alertReasonIndicator);
+}
+static int dissect_ongoingCall(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_ongoingCall);
+}
+static int dissect_locationInformation_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInformation_flg);
+}
+static int dissect_subscriberState_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberState_flg);
+}
+static int dissect_currentLocation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentLocation);
+}
+static int dissect_imei_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_imei_flg);
+}
+static int dissect_ms_classmark_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ms_classmark);
+}
+static int dissect_mnpRequestedInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_mnpRequestedInfo);
+}
+static int dissect_odb_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb);
+}
+static int dissect_supportedVLR_CAMEL_Phases_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedVLR_CAMEL_Phases_flg);
+}
+static int dissect_supportedSGSN_CAMEL_Phases_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases_flg);
+}
+static int dissect_msisdn_BS_List_flag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_msisdn_BS_List_flag);
+}
+static int dissect_tif_CSI_NotificationToCSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_tif_CSI_NotificationToCSE);
+}
+static int dissect_uplinkFree_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkFree);
+}
+static int dissect_uplinkRequest_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkRequest);
+}
+static int dissect_uplinkReleaseIndication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkReleaseIndication);
+}
+static int dissect_releaseGroupCall_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_releaseGroupCall);
+}
+static int dissect_emergencyModeResetCommandFlag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_emergencyModeResetCommandFlag);
+}
+static int dissect_downlinkAttached_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_downlinkAttached);
+}
+static int dissect_uplinkAttached_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkAttached);
+}
+static int dissect_dualCommunication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_dualCommunication);
+}
+static int dissect_callOriginator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_callOriginator);
+}
+static int dissect_uplinkRequestAck_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkRequestAck);
+}
+static int dissect_uplinkRejectCommand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkRejectCommand);
+}
+static int dissect_uplinkSeizedCommand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkSeizedCommand);
+}
+static int dissect_uplinkReleaseCommand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkReleaseCommand);
+}
+static int dissect_ps_LCS_NotSupportedByUE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_LCS_NotSupportedByUE);
+}
+static int dissect_gprsEnhancementsSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsEnhancementsSupportIndicator);
+}
+static int dissect_smsCallBarringSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_smsCallBarringSupportIndicator);
+}
+static int dissect_privacyOverride_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_privacyOverride);
+}
+static int dissect_mo_lrShortCircuitIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_mo_lrShortCircuitIndicator);
+}
+static int dissect_verticalCoordinateRequest_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_verticalCoordinateRequest);
+}
+static int dissect_velocityRequest_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_velocityRequest);
+}
+static int dissect_plmn_ListPrioritized_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmn_ListPrioritized);
+}
+static int dissect_ran_PeriodicLocationSupport_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ran_PeriodicLocationSupport);
+}
+static int dissect_deferredmt_lrResponseIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_deferredmt_lrResponseIndicator);
+}
+static int dissect_pseudonymIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_pseudonymIndicator);
+}
+static int dissect_userInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_userInfo);
+}
+static int dissect_shapeOfLocationEstimateNotSupported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_shapeOfLocationEstimateNotSupported);
+}
+static int dissect_neededLcsCapabilityNotSupportedInServingNode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_neededLcsCapabilityNotSupportedInServingNode);
+}
+static int dissect_ccbs_Busy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Busy);
+}
+static int dissect_gprsConnectionSuspended(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_gprsConnectionSuspended);
+}
+static int dissect_unauthorisedMessageOriginator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_unauthorisedMessageOriginator);
}
-static const ber_sequence UpdateLocationArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_vlr_Number },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
- return offset;
-}
+static const value_string gsm_map_T_invokeIDRej_vals[] = {
+ { 0, "derivable" },
+ { 1, "not-derivable" },
+ { 0, NULL }
+};
+static const ber_choice_t T_invokeIDRej_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_derivable },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_not_derivable },
+ { 0, 0, 0, 0, NULL }
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ T_invokeIDRej_choice, hf_index, ett_gsm_map_T_invokeIDRej,
+ NULL);
return offset;
}
-static int dissect_hlr_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Hlr_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_Number);
+static int dissect_invokeIDRej(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_invokeIDRej(FALSE, tvb, offset, actx, tree, hf_gsm_map_invokeIDRej);
}
-static const ber_sequence UpdateLocationRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_GeneralProblem_vals[] = {
+ { 0, "unrecognizedComponent" },
+ { 1, "mistypedComponent" },
+ { 2, "badlyStructuredComponent" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
+dissect_gsm_map_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_generalProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GeneralProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_generalProblem);
+}
+
+
+static const value_string gsm_map_InvokeProblem_vals[] = {
+ { 0, "duplicateInvokeID" },
+ { 1, "unrecognizedOperation" },
+ { 2, "mistypedParameter" },
+ { 3, "resourceLimitation" },
+ { 4, "initiatingRelease" },
+ { 5, "unrecognizedLinkedID" },
+ { 6, "linkedResponseUnexpected" },
+ { 7, "unexpectedLinkedOperation" },
+ { 0, NULL }
+};
static int
-dissect_gsm_map_Teleservice(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_teleservice(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
-}
-static int dissect_teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleservice);
-}
-static int dissect_teleserviceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Teleservice(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList_item);
+static int dissect_invokeProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InvokeProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_invokeProblem);
}
-static const value_string CancellationType_vals[] = {
- { 0, "updateProcedure" },
- { 1, "subscriptionWithdraw" },
+static const value_string gsm_map_ReturnResultProblem_vals[] = {
+ { 0, "unrecognizedInvokeID" },
+ { 1, "returnResultUnexpected" },
+ { 2, "mistypedParameter" },
{ 0, NULL }
};
static int
-dissect_gsm_map_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_cancellationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_CancellationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cancellationType);
+static int dissect_returnResultProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnResultProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnResultProblem);
}
-static const ber_sequence T_imsi_WithLMSI_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_ReturnErrorProblem_vals[] = {
+ { 0, "unrecognizedInvokeID" },
+ { 1, "returnErrorUnexpected" },
+ { 2, "unrecognizedError" },
+ { 3, "unexpectedError" },
+ { 4, "mistypedParameter" },
+ { 0, NULL }
};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_imsi_WithLMSI_sequence, hf_index, ett_gsm_map_T_imsi_WithLMSI);
+dissect_gsm_map_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_imsi_WithLMSI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_imsi_WithLMSI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_imsi_WithLMSI);
+static int dissect_returnErrorProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReturnErrorProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnErrorProblem);
}
-static const value_string T_identity_vals[] = {
- { 0, "imsi" },
- { 1, "imsi-WithLMSI" },
+static const value_string gsm_map_T_problem_vals[] = {
+ { 0, "generalProblem" },
+ { 1, "invokeProblem" },
+ { 2, "returnResultProblem" },
+ { 3, "returnErrorProblem" },
{ 0, NULL }
};
-static const ber_choice T_identity_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
+static const ber_choice_t T_problem_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
{ 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_identity_choice, hf_index, ett_gsm_map_T_identity);
+dissect_gsm_map_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ T_problem_choice, hf_index, ett_gsm_map_T_problem,
+ NULL);
return offset;
}
-static int dissect_identity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_identity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_identity);
+static int dissect_problem(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_problem(FALSE, tvb, offset, actx, tree, hf_gsm_map_problem);
}
-static const ber_sequence CancelLocationArg_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
-
- return offset;
-}
-static const ber_sequence CancelLocationRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+static const ber_sequence_t Reject_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeIDRej },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problem },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
+dissect_gsm_map_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Reject_sequence, hf_index, ett_gsm_map_Reject);
return offset;
}
+static int dissect_reject_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Reject(TRUE, tvb, offset, actx, tree, hf_gsm_map_reject);
+}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-static int dissect_sgsn_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Sgsn_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
-}
-static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Sgsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Number);
-}
+static const value_string gsm_map_Component_vals[] = {
+ { 1, "invoke" },
+ { 2, "returnResultLast" },
+ { 3, "returnError" },
+ { 4, "reject" },
+ { 7, "returnResultNotLast" },
+ { 0, NULL }
+};
-static const ber_sequence PurgeMS_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+static const ber_choice_t Component_choice[] = {
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultLast_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
+ { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_returnResultNotLast_impl },
+ { 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PurgeMS_Arg_sequence, hf_index, ett_gsm_map_PurgeMS_Arg);
+dissect_gsm_map_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Component_choice, hf_index, ett_gsm_map_Component,
+ NULL);
return offset;
}
-static const ber_sequence PurgeMS_Res_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_ProtocolId_vals[] = {
+ { 1, "gsm-0408" },
+ { 2, "gsm-0806" },
+ { 3, "gsm-BSSMAP" },
+ { 4, "ets-300102-1" },
+ { 0, NULL }
};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PurgeMS_Res_sequence, hf_index, ett_gsm_map_PurgeMS_Res);
+dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ &protocolId);
return offset;
}
+static int dissect_protocolId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, actx, tree, hf_gsm_map_protocolId);
+}
+
static int
-dissect_gsm_map_Tmsi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 366 "gsmmap.cnf"
- return offset;
-}
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ guint8 length;
+ tvbuff_t *next_tvb;
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
- return offset;
-}
-static int dissect_rand(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_16(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_rand);
+
+ if (!parameter_tvb)
+ return offset;
+ switch (protocolId){
+ /* gsm-0408 */
+ case 1:
+ break;
+ /* gsm-0806 */
+ case 2:
+ break;
+ /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/
+ case 3:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
+ dissect_bssmap(next_tvb, actx->pinfo, tree);
+ }
+ break;
+ /* ets-300102-1 (~Q.931 ) */
+ case 4:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 4 )
+ dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree);
+ break;
+ default:
+ break;
}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
return offset;
}
-static int dissect_sres(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sres);
+static int dissect_signalInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_signalInfo);
}
-static int dissect_cug_Interlock(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_4(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Interlock);
+static int dissect_diagnosticInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_diagnosticInfo);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 520 "gsmmap.cnf"
+
+
+ proto_tree_add_text(tree, tvb, offset, -1, "Extension Data");
+ if (obj_id){
+ offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree);
+ }else{
+ call_dissector(data_handle, tvb, actx->pinfo, tree);
+ offset = tvb_length_remaining(tvb,offset);
+ }
+
+
+
return offset;
}
-static int dissect_kc(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_kc);
-}
-static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_geographicalInformation);
-}
-static int dissect_groupKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKey);
+static int dissect_extType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_extType(FALSE, tvb, offset, actx, tree, hf_gsm_map_extType);
}
-static const ber_sequence T_authenticationSetList_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
+
+static const ber_sequence_t PrivateExtension_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId },
+ { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extType },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_authenticationSetList_item_sequence, hf_index, ett_gsm_map_T_authenticationSetList_item);
+dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension);
return offset;
}
-static int dissect_authenticationSetList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_authenticationSetList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList_item);
+static int dissect_PrivateExtensionList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, actx, tree, hf_gsm_map_PrivateExtensionList_item);
}
-static const ber_sequence T_authenticationSetList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_authenticationSetList_item },
+
+static const ber_sequence_t PrivateExtensionList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_authenticationSetList_sequence_of, hf_index, ett_gsm_map_T_authenticationSetList);
+dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList);
return offset;
}
-static int dissect_authenticationSetList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_authenticationSetList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_authenticationSetList);
+static int dissect_privateExtensionList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, actx, tree, hf_gsm_map_privateExtensionList);
}
-static const ber_sequence SendIdentificationRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_authenticationSetList },
+
+static const ber_sequence_t PcsExtensions_sequence[] = {
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
+dissect_gsm_map_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions);
return offset;
}
+static int dissect_pcsExtensions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, actx, tree, hf_gsm_map_pcsExtensions);
+}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+static const ber_sequence_t ExtensionContainer_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer);
return offset;
}
-static int dissect_targetCellId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_5_7(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetCellId);
+static int dissect_extensionContainer(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, actx, tree, hf_gsm_map_extensionContainer);
+}
+static int dissect_extensionContainer_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, actx, tree, hf_gsm_map_extensionContainer);
}
-static const ber_sequence PrepareHO_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
+
+static const ber_sequence_t Bss_APDU_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
+dissect_gsm_map_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU);
return offset;
}
+static int dissect_bss_APDU(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, actx, tree, hf_gsm_map_bss_APDU);
+}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+static const asn_namedbit SupportedCamelPhases_bits[] = {
+ { 0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
+ { 1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
+ { 2, &hf_gsm_map_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
+ { 3, &hf_gsm_map_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+int
+dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases,
NULL);
return offset;
}
-static int dissect_handoverNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_handoverNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_handoverNumber);
+static int dissect_supportedCamelPhases(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhases);
+}
+static int dissect_supportedCamelPhases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhases);
+}
+static int dissect_supportedCamelPhasesInVMSC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhasesInVMSC);
+}
+static int dissect_supportedCamelPhasesInInterrogatingNode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhasesInInterrogatingNode);
+}
+static int dissect_supportedVLR_CAMEL_Phases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedVLR_CAMEL_Phases);
+}
+static int dissect_supportedSGSN_CAMEL_Phases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases);
+}
+static int dissect_supportedCAMELPhases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCAMELPhases);
}
-static const ber_sequence PrepareHO_Res_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
- { 0, 0, 0, NULL }
-};
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
- return offset;
-}
+int
+dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 176 "gsmmap.cnf"
+ tvbuff_t *parameter_tvb;
+ char *digit_str;
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
- return offset;
-}
-static int dissect_targetMSC_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_targetMSC_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMSC_Number);
-}
-static const ber_sequence PrepareSubsequentHO_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
- { 0, 0, 0, NULL }
-};
+ if (!parameter_tvb)
+ return offset;
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PrepareSubsequentHO_Arg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHO_Arg);
+ digit_str = unpack_digits(parameter_tvb, 0);
- return offset;
-}
+ proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str);
+
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
-static int dissect_numberOfRequestedVectors(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfRequestedVectors);
+static int dissect_imsi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi);
}
-static int dissect_numberOfForwarding_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberOfForwarding);
-}
-static int dissect_ccbs_Index_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Index);
+static int dissect_imsi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_imsi);
}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
- return offset;
-}
-static int dissect_auts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_14(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_auts);
-}
+int
+dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 223 "gsmmap.cnf"
-static const ber_sequence T_re_synchronisationInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts },
- { 0, 0, 0, NULL }
-};
+ tvbuff_t *parameter_tvb;
+ char *digit_str;
+ guint8 octet;
+ guint8 na;
+ guint8 np;
+ proto_item *item;
+ proto_tree *subtree;
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_re_synchronisationInfo_sequence, hf_index, ett_gsm_map_T_re_synchronisationInfo);
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
- return offset;
-}
-static int dissect_re_synchronisationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_re_synchronisationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_re_synchronisationInfo);
-}
+ if (!parameter_tvb)
+ return offset;
-static const value_string T_requestingNodeType_vals[] = {
- { 0, "vlr" },
- { 1, "sgsn" },
- { 0, NULL }
-};
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_isdn_address_string);
+ proto_tree_add_item(subtree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(subtree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(subtree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+ digit_str = unpack_digits(parameter_tvb, 1);
+
+ proto_tree_add_string(subtree, hf_gsm_map_isdn_address_digits, parameter_tvb, 1, -1, digit_str);
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+ na = (octet & 0x70)>>4;
+ np = octet & 0x0f;
+ if ((na == 1) && (np==1))/*International Number & E164*/
+ dissect_e164_cc(parameter_tvb, subtree, 1, TRUE);
+
+ actx->pinfo->p2p_dir = P2P_DIR_RECV;
- return offset;
-}
-static int dissect_requestingNodeType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_requestingNodeType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingNodeType);
-}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
return offset;
}
-static int dissect_requestingPLMN_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestingPLMN_Id);
+static int dissect_msc_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msc_Number);
}
-static int dissect_groupid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupid);
+static int dissect_msc_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_Number);
}
-static int dissect_groupId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupId);
+static int dissect_vlr_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_vlr_Number);
}
-static int dissect_qos_Subscribed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_qos_Subscribed);
+static int dissect_vlr_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlr_Number);
}
-static int dissect_lsaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentity);
+static int dissect_hlr_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_hlr_Number);
}
-static int dissect_naea_PreferredCIC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCIC);
+static int dissect_sgsn_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Number);
}
-static int dissect_lsaIdentityList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList_item);
+static int dissect_sgsn_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Number);
}
-
-static const ber_sequence SendAuthenticationInfoArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immediateResponsePreferred_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_synchronisationInfo },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingNodeType_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingPLMN_Id_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArg);
-
- return offset;
+static int dissect_handoverNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_handoverNumber);
}
-
-static const ber_sequence SendAuthenticationInfoRes_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
- { 0, 0, 0, NULL }
-};
-
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
-
- return offset;
+static int dissect_handoverNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_handoverNumber);
}
-static int dissect_SendAuthenticationInfoRes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SendAuthenticationInfoRes_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_SendAuthenticationInfoRes_item);
+static int dissect_targetMSC_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_targetMSC_Number);
}
-
-static const ber_sequence SendAuthenticationInfoRes_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SendAuthenticationInfoRes_item },
-};
-
-static int
-dissect_gsm_map_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SendAuthenticationInfoRes_sequence_of, hf_index, ett_gsm_map_SendAuthenticationInfoRes);
-
- return offset;
+static int dissect_targetMSC_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetMSC_Number);
}
-
-
-static int
-dissect_gsm_map_Imei(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
+static int dissect_gsmSCF_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_gsmSCF_Address);
}
-static int dissect_imei_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Imei(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_imei);
+static int dissect_gsmSCF_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_gsmSCF_Address);
}
-
-
-static int
-dissect_gsm_map_CheckIMEIArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_gsm_map_Imei(implicit_tag, tvb, offset, pinfo, tree, hf_index);
-
- return offset;
+static int dissect_msisdn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
+}
+static int dissect_msisdn_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
+}
+static int dissect_GMLC_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_GMLC_List_item);
+}
+static int dissect_dialledNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_dialledNumber);
+}
+static int dissect_forwardedToNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardedToNumber);
+}
+static int dissect_DestinationNumberList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_DestinationNumberList_item);
+}
+static int dissect_gmsc_OrGsmSCF_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmsc_OrGsmSCF_Address);
+}
+static int dissect_vmsc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_vmsc_Address);
+}
+static int dissect_externalAddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_externalAddress);
+}
+static int dissect_roamingNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_roamingNumber);
+}
+static int dissect_vlr_number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlr_number);
+}
+static int dissect_gmsc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmsc_Address);
+}
+static int dissect_b_Subscriber_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_b_Subscriber_Address);
+}
+static int dissect_sIWFSNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_sIWFSNumber);
+}
+static int dissect_msrn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msrn);
+}
+static int dissect_translatedB_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_translatedB_Number);
+}
+static int dissect_translatedB_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_translatedB_Number);
+}
+static int dissect_networkNode_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_networkNode_Number);
+}
+static int dissect_networkNode_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkNode_Number);
+}
+static int dissect_storedMSISDN(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_storedMSISDN);
+}
+static int dissect_DispatcherList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_DispatcherList_item);
+}
+static int dissect_b_subscriberNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_b_subscriberNumber);
+}
+static int dissect_groupCallNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupCallNumber);
+}
+static int dissect_anchorMSC_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_anchorMSC_Address);
+}
+static int dissect_ggsn_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_Number);
+}
+static int dissect_mlc_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_mlc_Number);
+}
+static int dissect_mlcNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_mlcNumber);
+}
+static int dissect_na_ESRD_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_na_ESRD);
+}
+static int dissect_na_ESRK_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_na_ESRK);
}
-static const value_string EquipmentStatus_vals[] = {
- { 0, "whiteListed" },
- { 1, "blackListed" },
- { 2, "greyListed" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_lmsi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_lmsi);
+}
+static int dissect_lmsi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_lmsi);
+}
-static const value_string OverrideCategory_vals[] = {
- { 0, "overrideEnabled" },
- { 1, "overrideDisabled" },
+static const value_string gsm_map_IST_SupportIndicator_vals[] = {
+ { 0, "basicISTSupported" },
+ { 1, "istCommandSupported" },
{ 0, NULL }
};
static int
-dissect_gsm_map_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_IST_SupportIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_overrideCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OverrideCategory(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_overrideCategory);
+static int dissect_istSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IST_SupportIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_istSupportIndicator);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_AgeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_bearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerService);
-}
-static int dissect_dataCodingScheme_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_dataCodingScheme);
-}
-static int dissect_nameString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_nameString);
+static int dissect_subscriberDataStored_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AgeIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberDataStored);
}
-static int dissect_lcsClientDialedByMS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientDialedByMS);
+static int dissect_superChargerSupportedInHLR_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AgeIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_superChargerSupportedInHLR);
}
-static const value_string BasicService_vals[] = {
- { 2, "bearerService" },
- { 3, "teleservice" },
+static const value_string gsm_map_SuperChargerInfo_vals[] = {
+ { 0, "sendSubscriberData" },
+ { 1, "subscriberDataStored" },
{ 0, NULL }
};
-static const ber_choice BasicService_choice[] = {
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_bearerService_impl },
- { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_teleservice_impl },
+static const ber_choice_t SuperChargerInfo_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendSubscriberData_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_subscriberDataStored_impl },
{ 0, 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_BasicService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- BasicService_choice, hf_index, ett_gsm_map_BasicService);
+dissect_gsm_map_SuperChargerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SuperChargerInfo_choice, hf_index, ett_gsm_map_SuperChargerInfo,
+ NULL);
return offset;
}
-static int dissect_BasicServiceGroupList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BasicServiceGroupList_item);
-}
-static int dissect_basicService(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicService);
+static int dissect_superChargerSupportedInServingNetworkEntity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SuperChargerInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity);
}
-static int dissect_basicServiceGroup(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicService(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroup);
+static int dissect_superChargerSupportedInServingNetworkEntity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SuperChargerInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity);
}
-static const ber_sequence BasicServiceGroupList_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
+
+static const asn_namedbit SupportedLCS_CapabilitySets_bits[] = {
+ { 0, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL },
+ { 1, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL },
+ { 2, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL },
+ { 3, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-dissect_gsm_map_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_BasicServiceGroupList);
+dissect_gsm_map_SupportedLCS_CapabilitySets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_SupportedLCS_CapabilitySets,
+ NULL);
return offset;
}
-static int dissect_basicServiceGroupList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicServiceGroupList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
-}
-static int dissect_basicServiceGroupList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceGroupList);
+static int dissect_supportedLCS_CapabilitySets_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedLCS_CapabilitySets(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedLCS_CapabilitySets);
}
-static int dissect_basicServiceCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceCriteria);
-}
-static int dissect_basicServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_basicServiceList);
+static int dissect_additional_LCS_CapabilitySets_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedLCS_CapabilitySets(TRUE, tvb, offset, actx, tree, hf_gsm_map_additional_LCS_CapabilitySets);
}
-static const value_string IntraCUG_Options_vals[] = {
- { 0, "noCUG-Restrictions" },
- { 1, "cugIC-CallBarred" },
- { 2, "cugOG-CallBarred" },
- { 0, NULL }
+static const asn_namedbit OfferedCamel4CSIs_bits[] = {
+ { 0, &hf_gsm_map_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL },
+ { 1, &hf_gsm_map_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL },
+ { 2, &hf_gsm_map_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL },
+ { 3, &hf_gsm_map_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL },
+ { 4, &hf_gsm_map_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
+ { 5, &hf_gsm_map_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL },
+ { 6, &hf_gsm_map_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_OfferedCamel4CSIs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_OfferedCamel4CSIs,
+ NULL);
return offset;
}
-static int dissect_intraCUG_Options(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_IntraCUG_Options(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_intraCUG_Options);
+static int dissect_offeredCamel4CSIs_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIs);
+}
+static int dissect_offeredCamel4CSIsInVMSC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInVMSC);
+}
+static int dissect_offeredCamel4CSIsInInterrogatingNode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInInterrogatingNode);
+}
+static int dissect_offeredCamel4CSIsInVLR_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInVLR);
+}
+static int dissect_offeredCamel4CSIsInSGSN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInSGSN);
}
-static const asn_namedbit Odb_GeneralData_bits[] = {
- { 0, &hf_gsm_map_Odb_GeneralData_allOGCallsBarred, -1, -1, NULL, NULL },
- { 1, &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred, -1, -1, NULL, NULL },
- { 2, &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
- { 3, &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, NULL, NULL },
- { 4, &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, NULL, NULL },
- { 5, &hf_gsm_map_Odb_GeneralData_ssAccessBarred, -1, -1, NULL, NULL },
- { 6, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred, -1, -1, NULL, NULL },
- { 7, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
- { 8, &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred, -1, -1, NULL, NULL },
- { 9, &hf_gsm_map_Odb_GeneralData_allECTBarred, -1, -1, NULL, NULL },
- { 10, &hf_gsm_map_Odb_GeneralData_chargeableECTBarred, -1, -1, NULL, NULL },
- { 11, &hf_gsm_map_Odb_GeneralData_internationalECTBarred, -1, -1, NULL, NULL },
- { 12, &hf_gsm_map_Odb_GeneralData_interzonalECTBarred, -1, -1, NULL, NULL },
- { 13, &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred, -1, -1, NULL, NULL },
- { 14, &hf_gsm_map_Odb_GeneralData_multipleECTBarred, -1, -1, NULL, NULL },
+
+static const asn_namedbit SupportedRAT_Types_bits[] = {
+ { 0, &hf_gsm_map_SupportedRAT_Types_utran, -1, -1, "utran", NULL },
+ { 1, &hf_gsm_map_SupportedRAT_Types_geran, -1, -1, "geran", NULL },
{ 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
- Odb_GeneralData_bits, hf_index, ett_gsm_map_Odb_GeneralData,
- NULL);
+dissect_gsm_map_SupportedRAT_Types(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SupportedRAT_Types_bits, hf_index, ett_gsm_map_SupportedRAT_Types,
+ NULL);
return offset;
}
-static int dissect_odb_GeneralData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Odb_GeneralData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
-}
-static int dissect_odb_GeneralData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Odb_GeneralData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_GeneralData);
+static int dissect_supportedRAT_TypesIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedRAT_Types(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedRAT_TypesIndicator);
}
-static const asn_namedbit Odb_HPLMN_Data_bits[] = {
- { 0, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1, -1, -1, NULL, NULL },
- { 1, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2, -1, -1, NULL, NULL },
- { 2, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3, -1, -1, NULL, NULL },
- { 3, &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4, -1, -1, NULL, NULL },
- { 0, NULL, 0, 0, NULL, NULL }
+
+static const ber_sequence_t VLR_Capability_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_solsaSupportIndicator_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istSupportIndicator_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_superChargerSupportedInServingNetworkEntity },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedRAT_TypesIndicator_impl },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
- Odb_HPLMN_Data_bits, hf_index, ett_gsm_map_Odb_HPLMN_Data,
- NULL);
+dissect_gsm_map_VLR_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ VLR_Capability_sequence, hf_index, ett_gsm_map_VLR_Capability);
return offset;
}
-static int dissect_odb_HPLMN_Data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Odb_HPLMN_Data(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_odb_HPLMN_Data);
+static int dissect_vlr_Capability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VLR_Capability(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlr_Capability);
}
-static const value_string SubscriberStatus_vals[] = {
- { 0, "serviceGranted" },
- { 1, "operatorDeterminedBarring" },
- { 0, NULL }
-};
+int
+dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 604 "gsmmap.cnf"
-static int
-dissect_gsm_map_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ proto_item *item;
+ proto_tree *subtree;
- return offset;
-}
-static int dissect_subscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberStatus);
-}
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
-static const value_string BcsmTriggerDetectionPoint_vals[] = {
- { 2, "collectedInfo" },
- { 12, "termAttemptAuthorized" },
- { 0, NULL }
-};
+ if (!parameter_tvb)
+ return offset;
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_pdptypenumber);
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+ switch(octet){
+ case 0x04: /* IPv4 */
+ proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
+ break;
+ case 0x50: /* IPv4 */
+ proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE);
+ break;
+ default:
+ break;
+ }
-static int
-dissect_gsm_map_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
-static int dissect_bcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bcsmTriggerDetectionPoint);
+static int dissect_v_gmlc_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_v_gmlc_Address);
+}
+static int dissect_v_gmlc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_v_gmlc_Address);
+}
+static int dissect_ggsn_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_Address);
+}
+static int dissect_rnc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_Address);
+}
+static int dissect_sgsn_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Address);
}
-static int dissect_o_BcsmTriggerDetectionPoint(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BcsmTriggerDetectionPoint(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint);
+static int dissect_sgsn_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Address);
+}
+static int dissect_h_gmlc_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_h_gmlc_Address);
+}
+static int dissect_h_gmlc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_h_gmlc_Address);
+}
+static int dissect_ppr_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_ppr_Address);
+}
+static int dissect_additional_v_gmlc_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_additional_v_gmlc_Address);
}
static int
-dissect_gsm_map_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_serviceKey(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ServiceKey(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceKey);
-}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+
+int
+dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
-static int dissect_gsmSCFAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCFAddress);
+static int dissect_imeisv_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IMEI(TRUE, tvb, offset, actx, tree, hf_gsm_map_imeisv);
}
-static int dissect_gsmSCF_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_GsmSCF_Address(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
+static int dissect_imei(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IMEI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imei);
}
-static int dissect_gsmSCF_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_GsmSCF_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gsmSCF_Address);
+static int dissect_imei_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IMEI(TRUE, tvb, offset, actx, tree, hf_gsm_map_imei);
}
-static const value_string DefaultCallHandling_vals[] = {
- { 0, "continueCall" },
- { 1, "releaseCall" },
- { 0, NULL }
+static const ber_sequence_t ADD_Info_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imeisv_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_skipSubscriberDataUpdate_impl },
+ { 0, 0, 0, NULL }
};
-
static int
-dissect_gsm_map_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_ADD_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ADD_Info_sequence, hf_index, ett_gsm_map_ADD_Info);
return offset;
}
-static int dissect_defaultCallHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultCallHandling);
+static int dissect_add_info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ADD_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_add_info);
}
-static const ber_sequence BcsmCamelTDPData_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_bcsmTriggerDetectionPoint },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCFAddress_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t UpdateLocationArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_vlr_Number },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_informPreviousNetworkEntity_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cs_LCS_NotSupportedByUE_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_v_gmlc_Address_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_info_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_BcsmCamelTDPData);
+dissect_gsm_map_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg);
return offset;
}
-static int dissect_BcsmCamelTDPDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BcsmCamelTDPData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_BcsmCamelTDPDataList_item);
-}
-static const ber_sequence BcsmCamelTDPDataList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BcsmCamelTDPDataList_item },
+
+static const ber_sequence_t UpdateLocationRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_add_Capability },
+ { 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_BcsmCamelTDPDataList);
+dissect_gsm_map_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes);
return offset;
}
-static int dissect_o_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDPDataList);
-}
-static int dissect_t_BcsmCamelTDPDataList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BcsmCamelTDPDataList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_t_BcsmCamelTDPDataList);
-}
+static const ber_sequence_t SLR_Arg_PCS_Extensions_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_Request_impl },
+ { 0, 0, 0, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SLR_Arg_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions);
return offset;
}
-static int dissect_camelCapabilityHandling_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelCapabilityHandling);
+static int dissect_slr_Arg_PCS_Extensions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SLR_Arg_PCS_Extensions(TRUE, tvb, offset, actx, tree, hf_gsm_map_slr_Arg_PCS_Extensions);
}
-static const ber_sequence O_CSI_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
+
+static const ber_sequence_t SLR_ArgExtensionContainer_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_slr_Arg_PCS_Extensions_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
+dissect_gsm_map_SLR_ArgExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer);
return offset;
}
-static int dissect_o_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_O_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_CSI);
+static int dissect_slr_ArgExtensionContainer_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SLR_ArgExtensionContainer(TRUE, tvb, offset, actx, tree, hf_gsm_map_slr_ArgExtensionContainer);
}
+static const ber_sequence_t IMSI_WithLMSI_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi },
+ { 0, 0, 0, NULL }
+};
+
static int
-dissect_gsm_map_Msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_IMSI_WithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI);
return offset;
}
-static int dissect_msisdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
-}
-static int dissect_msisdn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Msisdn(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_msisdn);
+static int dissect_imsi_WithLMSI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IMSI_WithLMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi_WithLMSI);
}
+static const value_string gsm_map_Identity_vals[] = {
+ { 0, "imsi" },
+ { 1, "imsi-WithLMSI" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Identity_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
+ { 0, 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Identity_choice, hf_index, ett_gsm_map_Identity,
+ NULL);
return offset;
}
-static int dissect_category_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_category);
-}
-static int dissect_interCUG_Restrictions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_interCUG_Restrictions);
-}
-static int dissect_ss_EventList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList_item);
-}
-static int dissect_lsaAttributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaAttributes);
-}
-static int dissect_ss_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List_item);
-}
-static int dissect_alertingPattern(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
-}
-static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_alertingPattern);
-}
-static int dissect_uuIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uuIndicator);
-}
-static int dissect_call_Direction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_call_Direction);
-}
-static int dissect_ussd_DataCodingScheme(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_DataCodingScheme);
-}
-static int dissect_ss_Event_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Event);
-}
-static int dissect_cipheringAlgorithm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cipheringAlgorithm);
-}
-static int dissect_lcs_Priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Priority);
-}
-static int dissect_horizontal_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_horizontal_accuracy);
-}
-static int dissect_vertical_accuracy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vertical_accuracy);
+static int dissect_identity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Identity(FALSE, tvb, offset, actx, tree, hf_gsm_map_identity);
}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+static const value_string gsm_map_CancellationType_vals[] = {
+ { 0, "updateProcedure" },
+ { 1, "subscriptionWithdraw" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_bearerServiceList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_5(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList_item);
+static int dissect_cancellationType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CancellationType(FALSE, tvb, offset, actx, tree, hf_gsm_map_cancellationType);
}
-static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_1_5_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bearerServiceList_item },
+
+static const ber_sequence_t CancelLocationArg_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_OCTET_STRING_SIZE_1_5_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5);
+dissect_gsm_map_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg);
return offset;
}
-static int dissect_bearerServiceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_bearerServiceList);
-}
-static const ber_sequence SEQUNCE_OF_Teleservice_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleserviceList_item },
+
+static const value_string gsm_map_CancelLocationArgV2_vals[] = {
+ { 0, "imsi" },
+ { 1, "imsi-WithLMSI" },
+ { 0, NULL }
+};
+
+static const ber_choice_t CancelLocationArgV2_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI },
+ { 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_Teleservice_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_Teleservice);
+dissect_gsm_map_CancelLocationArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ CancelLocationArgV2_choice, hf_index, ett_gsm_map_CancelLocationArgV2,
+ NULL);
return offset;
}
-static int dissect_teleserviceList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_Teleservice(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_teleserviceList);
-}
+static const ber_sequence_t CancelLocationRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes);
return offset;
}
-static int dissect_ss_Code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
-}
-static int dissect_ss_Code_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ss_Code(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
-}
+static const ber_sequence_t PurgeMSArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_PurgeMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PurgeMSArg_sequence, hf_index, ett_gsm_map_PurgeMSArg);
return offset;
}
-static int dissect_ss_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ss_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
-}
-static int dissect_ss_Status_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ss_Status(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Status);
-}
+static const ber_sequence_t PurgeMSArgV2_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_vlr_Number },
+ { 0, 0, 0, NULL }
+};
+
static int
-dissect_gsm_map_ForwardedToNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_PurgeMSArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PurgeMSArgV2_sequence, hf_index, ett_gsm_map_PurgeMSArgV2);
return offset;
}
-static int dissect_forwardedToNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardedToNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToNumber);
-}
+static const ber_sequence_t PurgeMSRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
static int
-dissect_gsm_map_ForwardedToSubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_PurgeMSRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PurgeMSRes_sequence, hf_index, ett_gsm_map_PurgeMSRes);
return offset;
}
-static int dissect_forwardedToSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardedToSubaddress(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardedToSubaddress);
-}
+
static int
-dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_TMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_forwardingOptions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardingOptions(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingOptions);
+static int dissect_tmsi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_tmsi);
+}
+static int dissect_tmsi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_tmsi);
}
static int
-dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_NumberOfRequestedVectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_noReplyConditionTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_noReplyConditionTime);
+static int dissect_numberOfRequestedVectors(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NumberOfRequestedVectors(FALSE, tvb, offset, actx, tree, hf_gsm_map_numberOfRequestedVectors);
}
-static const ber_sequence ForwardingFeatureList_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_gsm_map_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ForwardingFeatureList_sequence, hf_index, ett_gsm_map_ForwardingFeatureList);
- return offset;
-}
-static int dissect_forwardingFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList_item);
-}
+int
+dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 652 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ proto_item *item;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_LAIFixedLength);
+ dissect_e212_mcc_mnc(parameter_tvb, subtree, 0);
-static const ber_sequence SEQUNCE_OF_ForwardingFeatureList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList_item },
-};
-static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_ForwardingFeatureList);
return offset;
}
-static int dissect_forwardingFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_ForwardingFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList);
+static int dissect_previous_LAI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, actx, tree, hf_gsm_map_previous_LAI);
}
-static int dissect_forwardingFeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_ForwardingFeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingFeatureList);
+static int dissect_laiFixedLength_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, actx, tree, hf_gsm_map_laiFixedLength);
}
-static const ber_sequence ForwardingInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
+dissect_gsm_map_HopCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_forwardingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingInfo);
+static int dissect_hopCounter_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_HopCounter(TRUE, tvb, offset, actx, tree, hf_gsm_map_hopCounter);
}
-static const ber_sequence T_callBarringFeatureList_item_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
+
+static const ber_sequence_t SendIdentificationArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_tmsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msc_Number },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_previous_LAI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_hopCounter_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_callBarringFeatureList_item_sequence, hf_index, ett_gsm_map_T_callBarringFeatureList_item);
+dissect_gsm_map_SendIdentificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendIdentificationArg_sequence, hf_index, ett_gsm_map_SendIdentificationArg);
return offset;
}
-static int dissect_callBarringFeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_callBarringFeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringFeatureList_item);
-}
-static const ber_sequence T_callBarringFeatureList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_callBarringFeatureList_sequence_of, hf_index, ett_gsm_map_T_callBarringFeatureList);
+dissect_gsm_map_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_callBarringFeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_callBarringFeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringFeatureList);
+static int dissect_rand(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RAND(FALSE, tvb, offset, actx, tree, hf_gsm_map_rand);
}
-static const ber_sequence CallBarringInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
+dissect_gsm_map_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_callBarringInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_CallBarringInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringInfo);
+static int dissect_sres(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SRES(FALSE, tvb, offset, actx, tree, hf_gsm_map_sres);
}
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_cug_Index(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Index);
+static int dissect_kc(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Kc(FALSE, tvb, offset, actx, tree, hf_gsm_map_kc);
}
-static int dissect_preferentialCUG_Indicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_preferentialCUG_Indicator);
+static int dissect_kc_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Kc(TRUE, tvb, offset, actx, tree, hf_gsm_map_kc);
}
-static int dissect_ageOfLocationInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_32767(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationInformation);
-}
-static int dissect_ageOfLocationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ageOfLocationEstimate);
+static int dissect_groupKey_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Kc(TRUE, tvb, offset, actx, tree, hf_gsm_map_groupKey);
}
-static const ber_sequence T_cug_SubscriptionList_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intraCUG_Options },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t AuthenticationTriplet_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_cug_SubscriptionList_item_sequence, hf_index, ett_gsm_map_T_cug_SubscriptionList_item);
+dissect_gsm_map_AuthenticationTriplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AuthenticationTriplet_sequence, hf_index, ett_gsm_map_AuthenticationTriplet);
return offset;
}
-static int dissect_cug_SubscriptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_SubscriptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList_item);
+static int dissect_TripletList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AuthenticationTriplet(FALSE, tvb, offset, actx, tree, hf_gsm_map_TripletList_item);
}
-static const ber_sequence T_cug_SubscriptionList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList_item },
-};
-
-static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_cug_SubscriptionList_sequence_of, hf_index, ett_gsm_map_T_cug_SubscriptionList);
-
- return offset;
-}
-static int dissect_cug_SubscriptionList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_SubscriptionList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_SubscriptionList);
-}
-static const ber_sequence T_cug_FeatureList_item_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+static const ber_sequence_t TripletList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_TripletList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_cug_FeatureList_item_sequence, hf_index, ett_gsm_map_T_cug_FeatureList_item);
+dissect_gsm_map_TripletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ TripletList_sequence_of, hf_index, ett_gsm_map_TripletList);
return offset;
}
-static int dissect_cug_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList_item);
+static int dissect_tripletList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TripletList(FALSE, tvb, offset, actx, tree, hf_gsm_map_tripletList);
+}
+static int dissect_tripletList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TripletList(TRUE, tvb, offset, actx, tree, hf_gsm_map_tripletList);
}
-static const ber_sequence T_cug_FeatureList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_cug_FeatureList_sequence_of, hf_index, ett_gsm_map_T_cug_FeatureList);
+dissect_gsm_map_XRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_cug_FeatureList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_FeatureList(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_FeatureList);
+static int dissect_xres(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_XRES(FALSE, tvb, offset, actx, tree, hf_gsm_map_xres);
}
-static const ber_sequence T_cug_Info_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_cug_Info_sequence, hf_index, ett_gsm_map_T_cug_Info);
+dissect_gsm_map_CK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_cug_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_Info);
+static int dissect_ck(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CK(FALSE, tvb, offset, actx, tree, hf_gsm_map_ck);
}
-static const value_string CliRestrictionOption_vals[] = {
- { 0, "permanent" },
- { 1, "temporaryDefaultRestricted" },
- { 2, "temporaryDefaultAllowed" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_IK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_cliRestrictionOption_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_CliRestrictionOption(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cliRestrictionOption);
+static int dissect_ik(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IK(FALSE, tvb, offset, actx, tree, hf_gsm_map_ik);
}
-static const value_string Ss_SubscriptionOption_vals[] = {
- { 2, "cliRestrictionOption" },
- { 1, "overrideCategory" },
- { 0, NULL }
-};
-
-static const ber_choice Ss_SubscriptionOption_choice[] = {
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_overrideCategory_impl },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- Ss_SubscriptionOption_choice, hf_index, ett_gsm_map_Ss_SubscriptionOption);
+dissect_gsm_map_AUTN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ss_SubscriptionOption(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ss_SubscriptionOption(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_SubscriptionOption);
+static int dissect_autn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AUTN(FALSE, tvb, offset, actx, tree, hf_gsm_map_autn);
}
-static const ber_sequence T_ss_Data2_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t AuthenticationQuintuplet_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_xres },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_autn },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_ss_Data2_sequence, hf_index, ett_gsm_map_T_ss_Data2);
+dissect_gsm_map_AuthenticationQuintuplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_AuthenticationQuintuplet);
return offset;
}
-static int dissect_ss_Data2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ss_Data2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data2);
+static int dissect_QuintupletList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AuthenticationQuintuplet(FALSE, tvb, offset, actx, tree, hf_gsm_map_QuintupletList_item);
}
-
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
-
- return offset;
-}
-static int dissect_maximumentitledPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_maximumentitledPriority);
-}
-static int dissect_defaultPriority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
-}
-static int dissect_defaultPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_defaultPriority);
-}
-static int dissect_maximumEntitledPriority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_maximumEntitledPriority);
-}
-static int dissect_groupKeyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_groupKeyNumber);
-}
-static int dissect_priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_priority);
-}
-
-static const ber_sequence T_emlpp_Info_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+static const ber_sequence_t QuintupletList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_QuintupletList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_emlpp_Info_sequence, hf_index, ett_gsm_map_T_emlpp_Info);
+dissect_gsm_map_QuintupletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ QuintupletList_sequence_of, hf_index, ett_gsm_map_QuintupletList);
return offset;
}
-static int dissect_emlpp_Info_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_emlpp_Info(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_emlpp_Info);
+static int dissect_quintupletList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_QuintupletList(TRUE, tvb, offset, actx, tree, hf_gsm_map_quintupletList);
}
-static const value_string T_provisionedSS_item_vals[] = {
- { 0, "forwardingInfo" },
- { 1, "callBarringInfo" },
- { 2, "cug-Info" },
- { 3, "ss-Data2" },
- { 4, "emlpp-Info" },
+static const value_string gsm_map_AuthenticationSetList_vals[] = {
+ { 0, "tripletList" },
+ { 1, "quintupletList" },
{ 0, NULL }
};
-static const ber_choice T_provisionedSS_item_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cug_Info_impl },
- { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data2_impl },
- { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_emlpp_Info_impl },
+static const ber_choice_t AuthenticationSetList_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tripletList_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_quintupletList_impl },
{ 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_provisionedSS_item_choice, hf_index, ett_gsm_map_T_provisionedSS_item);
+dissect_gsm_map_AuthenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ AuthenticationSetList_choice, hf_index, ett_gsm_map_AuthenticationSetList,
+ NULL);
return offset;
}
-static int dissect_provisionedSS_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_provisionedSS_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS_item);
+static int dissect_authenticationSetList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AuthenticationSetList(FALSE, tvb, offset, actx, tree, hf_gsm_map_authenticationSetList);
}
-static const ber_sequence T_provisionedSS_sequence_of[1] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_provisionedSS_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_provisionedSS_sequence_of, hf_index, ett_gsm_map_T_provisionedSS);
+dissect_gsm_map_Cksn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_provisionedSS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_provisionedSS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_provisionedSS);
+static int dissect_cksn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Cksn(FALSE, tvb, offset, actx, tree, hf_gsm_map_cksn);
+}
+static int dissect_cksn_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Cksn(TRUE, tvb, offset, actx, tree, hf_gsm_map_cksn);
}
-static const ber_sequence T_odb_Data_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData },
- { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t GSM_SecurityContextData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cksn },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_odb_Data_sequence, hf_index, ett_gsm_map_T_odb_Data);
+dissect_gsm_map_GSM_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_GSM_SecurityContextData);
return offset;
}
-static int dissect_odb_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_odb_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_odb_Data);
+static int dissect_gsm_SecurityContextData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GSM_SecurityContextData(TRUE, tvb, offset, actx, tree, hf_gsm_map_gsm_SecurityContextData);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_KSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_regionalSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_2(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData_item);
-}
-static int dissect_pdp_Type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Type);
-}
-static int dissect_regionalSubscriptionIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionIdentifier);
+static int dissect_ksi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_KSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ksi);
}
-static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_2_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_regionalSubscriptionData_item },
+
+static const ber_sequence_t UMTS_SecurityContextData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ksi },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_OCTET_STRING_SIZE_2_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2);
+dissect_gsm_map_UMTS_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_UMTS_SecurityContextData);
return offset;
}
-static int dissect_regionalSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionData);
+static int dissect_umts_SecurityContextData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UMTS_SecurityContextData(TRUE, tvb, offset, actx, tree, hf_gsm_map_umts_SecurityContextData);
}
-static const ber_sequence T_vbsSubscriptionData_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_CurrentSecurityContext_vals[] = {
+ { 0, "gsm-SecurityContextData" },
+ { 1, "umts-SecurityContextData" },
+ { 0, NULL }
+};
+
+static const ber_choice_t CurrentSecurityContext_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_SecurityContextData_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_umts_SecurityContextData_impl },
+ { 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_vbsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vbsSubscriptionData_item);
+dissect_gsm_map_CurrentSecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ CurrentSecurityContext_choice, hf_index, ett_gsm_map_CurrentSecurityContext,
+ NULL);
return offset;
}
-static int dissect_vbsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_vbsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData_item);
+static int dissect_currentSecurityContext_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CurrentSecurityContext(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentSecurityContext);
}
-static const ber_sequence T_vbsSubscriptionData_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vbsSubscriptionData_item },
+
+static const ber_sequence_t SendIdentificationRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_currentSecurityContext_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_vbsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vbsSubscriptionData);
+dissect_gsm_map_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes);
return offset;
}
-static int dissect_vbsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_vbsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vbsSubscriptionData);
-}
-static const ber_sequence T_vgcsSubscriptionData_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t SendIdentificationResV2_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_tripletList },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_vgcsSubscriptionData_item_sequence, hf_index, ett_gsm_map_T_vgcsSubscriptionData_item);
+dissect_gsm_map_SendIdentificationResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendIdentificationResV2_sequence, hf_index, ett_gsm_map_SendIdentificationResV2);
return offset;
}
-static int dissect_vgcsSubscriptionData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_vgcsSubscriptionData_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData_item);
-}
-static const ber_sequence T_vgcsSubscriptionData_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_vgcsSubscriptionData_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_vgcsSubscriptionData_sequence_of, hf_index, ett_gsm_map_T_vgcsSubscriptionData);
+dissect_gsm_map_AUTS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_vgcsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_vgcsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vgcsSubscriptionData);
+static int dissect_auts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AUTS(FALSE, tvb, offset, actx, tree, hf_gsm_map_auts);
}
-static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_1_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_OCTET_STRING_SIZE_1_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1);
+dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ss_EventList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventList);
+static int dissect_targetCellId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GlobalCellId(FALSE, tvb, offset, actx, tree, hf_gsm_map_targetCellId);
+}
+static int dissect_targetCellId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GlobalCellId(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetCellId);
}
-static int dissect_ss_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_List);
+static int dissect_cellId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GlobalCellId(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellId);
}
-static const ber_sequence T_ss_CamelData_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t PrepareHO_Arg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_ss_CamelData_sequence, hf_index, ett_gsm_map_T_ss_CamelData);
+dissect_gsm_map_PrepareHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg);
return offset;
}
-static int dissect_ss_CamelData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ss_CamelData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CamelData);
-}
-static const ber_sequence T_ss_CSI_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_ss_CSI_sequence, hf_index, ett_gsm_map_T_ss_CSI);
+dissect_gsm_map_RNCId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ss_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ss_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_CSI);
+static int dissect_targetRNCId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RNCId(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetRNCId);
}
-static const value_string MatchType_vals[] = {
- { 0, "inhibiting" },
- { 1, "enabling" },
+static const value_string gsm_map_AccessNetworkProtocolId_vals[] = {
+ { 1, "ts3G-48006" },
+ { 2, "ts3G-25413" },
{ 0, NULL }
};
static int
-dissect_gsm_map_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_AccessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ &AccessNetworkProtocolId);
return offset;
}
-static int dissect_matchType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_MatchType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_matchType);
+static int dissect_accessNetworkProtocolId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AccessNetworkProtocolId(FALSE, tvb, offset, actx, tree, hf_gsm_map_accessNetworkProtocolId);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 410 "gsmmap.cnf"
- return offset;
-}
-static int dissect_destinationNumberList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_destinationNumberList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList_item);
-}
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ guint8 length;
+ tvbuff_t *next_tvb;
+ proto_item *item;
+ proto_tree *subtree;
-static const ber_sequence T_destinationNumberList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_destinationNumberList_item },
-};
-static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_destinationNumberList_sequence_of, hf_index, ett_gsm_map_T_destinationNumberList);
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
- return offset;
-}
-static int dissect_destinationNumberList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_destinationNumberList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberList);
-}
+ if (!parameter_tvb)
+ return offset;
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_LongSignalInfo);
+
+ switch (AccessNetworkProtocolId){
+ /* ts3G-48006 */
+ case 1:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ /* gsm-BSSMAP? */
+ next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
+ dissect_bssmap(next_tvb, actx->pinfo, tree);
+ }
+ break;
+ /* ts3G-25413 */
+ case 2:
+ call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree);
+ break;
+ default:
+ break;
+
+ }
+
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
-static int dissect_destinationNumberLengthList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_15(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList_item);
+static int dissect_longsignalInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LongSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_longsignalInfo);
}
-static const ber_sequence SEQUNCE_OF_INTEGER_1_15_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_destinationNumberLengthList_item },
+
+static const ber_sequence_t AccessNetworkSignalInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_accessNetworkProtocolId },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_longsignalInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_INTEGER_1_15_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_INTEGER_1_15);
+dissect_gsm_map_AccessNetworkSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo);
return offset;
}
-static int dissect_destinationNumberLengthList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_INTEGER_1_15(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberLengthList);
+static int dissect_an_APDU(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AccessNetworkSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_an_APDU);
+}
+static int dissect_an_APDU_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AccessNetworkSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_an_APDU);
}
-static const ber_sequence DestinationNumberCriteria_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberLengthList_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
+dissect_gsm_map_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 695 "gsmmap.cnf"
+ tvbuff_t *parameter_tvb;
+ asn1_ctx_t asn1_ctx;
- return offset;
-}
-static int dissect_destinationNumberCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_DestinationNumberCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_destinationNumberCriteria);
-}
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
-static const value_string CallTypeCriteria_vals[] = {
- { 0, "forwarded" },
- { 1, "notForwarded" },
- { 0, NULL }
-};
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_mapIntegrityProtectionInformation);
-static int
-dissect_gsm_map_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
-static int dissect_callTypeCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_CallTypeCriteria(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callTypeCriteria);
+static int dissect_integrityProtectionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IntegrityProtectionInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_integrityProtectionInfo);
}
-static const ber_sequence O_BcsmCamelTDP_CriteriaList_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- O_BcsmCamelTDP_CriteriaList_item_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
+dissect_gsm_map_EncryptionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 707 "gsmmap.cnf"
+ tvbuff_t *parameter_tvb;
+ asn1_ctx_t asn1_ctx;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_mapEncryptionInformation);
+
+
return offset;
}
-static int dissect_O_BcsmCamelTDP_CriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item);
+static int dissect_encryptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EncryptionInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_encryptionInfo);
}
-static const ber_sequence O_BcsmCamelTDP_CriteriaList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDP_CriteriaList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- O_BcsmCamelTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDP_CriteriaList);
+dissect_gsm_map_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 669 "gsmmap.cnf"
+ tvbuff_t *parameter_tvb;
+ proto_item *item;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_RadioResourceInformation);
+ be_chan_type(tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
+
+
return offset;
}
-static int dissect_o_BcsmCamelTDP_CriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_O_BcsmCamelTDP_CriteriaList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList);
+static int dissect_radioResourceInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RadioResourceInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_radioResourceInformation);
+}
+static int dissect_radioResourceInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RadioResourceInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_radioResourceInformation);
+}
+static int dissect_alternativeChannelType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RadioResourceInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_alternativeChannelType);
}
-static const ber_sequence T_vlrCamelSubscriptionInfo_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_vlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_vlrCamelSubscriptionInfo);
+dissect_gsm_map_AllowedGSM_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_vlrCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_vlrCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vlrCamelSubscriptionInfo);
+static int dissect_allowedGSM_Algorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AllowedGSM_Algorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_allowedGSM_Algorithms);
}
-static const ber_sequence Naea_PreferredCI_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Naea_PreferredCI_sequence, hf_index, ett_gsm_map_Naea_PreferredCI);
+dissect_gsm_map_PermittedIntegrityProtectionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_naea_PreferredCI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Naea_PreferredCI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_naea_PreferredCI);
+static int dissect_integrityProtectionAlgorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PermittedIntegrityProtectionAlgorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_integrityProtectionAlgorithms);
}
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_PermittedEncryptionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_pdp_ContextId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_ContextId);
-}
-static int dissect_contextIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList_item);
+static int dissect_encryptionAlgorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PermittedEncryptionAlgorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_encryptionAlgorithms);
}
+static const ber_sequence_t AllowedUMTS_Algorithms_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithms_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithms_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_AllowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_AllowedUMTS_Algorithms);
return offset;
}
-static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_16(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_pdp_Address);
+static int dissect_allowedUMTS_Algorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AllowedUMTS_Algorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_allowedUMTS_Algorithms);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_RAB_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_apn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_2_63(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_apn);
+static int dissect_rab_Id(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RAB_Id(FALSE, tvb, offset, actx, tree, hf_gsm_map_rab_Id);
+}
+static int dissect_rab_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RAB_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_rab_Id);
+}
+static int dissect_selectedRab_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RAB_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedRab_Id);
}
-static const ber_sequence T_gprsDataList_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId },
- { BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
- { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
- { BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
- { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vplmnAddressAllowed_impl },
- { BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_apn_impl },
- { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t RadioResource_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_radioResourceInformation },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_gprsDataList_item_sequence, hf_index, ett_gsm_map_T_gprsDataList_item);
+dissect_gsm_map_RadioResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RadioResource_sequence, hf_index, ett_gsm_map_RadioResource);
return offset;
}
-static int dissect_gprsDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gprsDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList_item);
+static int dissect_RadioResourceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RadioResource(FALSE, tvb, offset, actx, tree, hf_gsm_map_RadioResourceList_item);
}
-static const ber_sequence T_gprsDataList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprsDataList_item },
+
+static const ber_sequence_t RadioResourceList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RadioResourceList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_gprsDataList_sequence_of, hf_index, ett_gsm_map_T_gprsDataList);
+dissect_gsm_map_RadioResourceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ RadioResourceList_sequence_of, hf_index, ett_gsm_map_RadioResourceList);
return offset;
}
-static int dissect_gprsDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gprsDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsDataList);
+static int dissect_radioResourceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RadioResourceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_radioResourceList);
}
-static const ber_sequence T_gprsSubscriptionData_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_gprsSubscriptionData_sequence, hf_index, ett_gsm_map_T_gprsSubscriptionData);
+dissect_gsm_map_BSSMAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_gprsSubscriptionData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gprsSubscriptionData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionData);
+static int dissect_bssmap_ServiceHandover(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BSSMAP_ServiceHandover(FALSE, tvb, offset, actx, tree, hf_gsm_map_bssmap_ServiceHandover);
+}
+static int dissect_bssmap_ServiceHandover_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BSSMAP_ServiceHandover(TRUE, tvb, offset, actx, tree, hf_gsm_map_bssmap_ServiceHandover);
}
-static const value_string T_networkAccessMode_vals[] = {
- { 0, "bothMSCAndSGSN" },
- { 1, "onlyMSC" },
- { 2, "onlySGSN" },
- { 0, NULL }
-};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_RANAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 683 "gsmmap.cnf"
+ tvbuff_t *parameter_tvb;
+ asn1_ctx_t asn1_ctx;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo);
+ dissect_ranap_Service_Handover(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_ranap_service_Handover);
+
+
return offset;
}
-static int dissect_networkAccessMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_networkAccessMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkAccessMode);
+static int dissect_ranap_ServiceHandover_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RANAP_ServiceHandover(TRUE, tvb, offset, actx, tree, hf_gsm_map_ranap_ServiceHandover);
}
-static const value_string T_lsaOnlyAccessIndicator_vals[] = {
- { 0, "accessOutsideLSAsAllowed" },
- { 1, "accessOutsideLSAsRestricted" },
- { 0, NULL }
+static const ber_sequence_t BSSMAP_ServiceHandoverInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandover },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
+ { 0, 0, 0, NULL }
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_BSSMAP_ServiceHandoverInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_BSSMAP_ServiceHandoverInfo);
return offset;
}
-static int dissect_lsaOnlyAccessIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lsaOnlyAccessIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaOnlyAccessIndicator);
+static int dissect_BSSMAP_ServiceHandoverList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BSSMAP_ServiceHandoverInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_BSSMAP_ServiceHandoverList_item);
}
-static const ber_sequence T_lsaDataList_item_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaActiveModeIndicator_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t BSSMAP_ServiceHandoverList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BSSMAP_ServiceHandoverList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_lsaDataList_item_sequence, hf_index, ett_gsm_map_T_lsaDataList_item);
+dissect_gsm_map_BSSMAP_ServiceHandoverList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_BSSMAP_ServiceHandoverList);
return offset;
}
-static int dissect_lsaDataList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lsaDataList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList_item);
+static int dissect_bssmap_ServiceHandoverList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BSSMAP_ServiceHandoverList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bssmap_ServiceHandoverList);
}
-static const ber_sequence T_lsaDataList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaDataList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_lsaDataList_sequence_of, hf_index, ett_gsm_map_T_lsaDataList);
+dissect_gsm_map_ASCI_CallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
-static int dissect_lsaDataList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lsaDataList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaDataList);
+static int dissect_asciCallReference(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ASCI_CallReference(FALSE, tvb, offset, actx, tree, hf_gsm_map_asciCallReference);
+}
+static int dissect_asciCallReference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ASCI_CallReference(TRUE, tvb, offset, actx, tree, hf_gsm_map_asciCallReference);
}
-static const ber_sequence T_lsaInformation_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaDataList_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_lsaInformation_sequence, hf_index, ett_gsm_map_T_lsaInformation);
+dissect_gsm_map_GERAN_Classmark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_lsaInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lsaInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformation);
+static int dissect_geran_classmark_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GERAN_Classmark(TRUE, tvb, offset, actx, tree, hf_gsm_map_geran_classmark);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_Codec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_gmlc_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gmlc_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List_item);
+static int dissect_iuCurrentlyUsedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuCurrentlyUsedCodec);
+}
+static int dissect_iuSelectedCodec(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(FALSE, tvb, offset, actx, tree, hf_gsm_map_iuSelectedCodec);
+}
+static int dissect_iuSelectedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuSelectedCodec);
+}
+static int dissect_iUSelectedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_iUSelectedCodec);
+}
+static int dissect_codec1_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec1);
+}
+static int dissect_codec2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec2);
+}
+static int dissect_codec3_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec3);
+}
+static int dissect_codec4_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec4);
+}
+static int dissect_codec5_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec5);
+}
+static int dissect_codec6_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec6);
+}
+static int dissect_codec7_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec7);
+}
+static int dissect_codec8_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec8);
+}
+static int dissect_currentlyUsedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentlyUsedCodec);
}
-static const ber_sequence T_gmlc_List_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gmlc_List_item },
+
+static const ber_sequence_t CodecList_sequence[] = {
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_gmlc_List_sequence_of, hf_index, ett_gsm_map_T_gmlc_List);
+dissect_gsm_map_CodecList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CodecList_sequence, hf_index, ett_gsm_map_CodecList);
return offset;
}
-static int dissect_gmlc_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gmlc_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_List);
+static int dissect_iuAvailableCodecsList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CodecList(FALSE, tvb, offset, actx, tree, hf_gsm_map_iuAvailableCodecsList);
+}
+static int dissect_iuAvailableCodecsList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CodecList(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuAvailableCodecsList);
+}
+static int dissect_utranCodecList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CodecList(TRUE, tvb, offset, actx, tree, hf_gsm_map_utranCodecList);
+}
+static int dissect_geranCodecList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CodecList(TRUE, tvb, offset, actx, tree, hf_gsm_map_geranCodecList);
}
-static const value_string NotificationToMSUser_vals[] = {
- { 0, "notifyLocationAllowed" },
- { 1, "notifyAndVerify-LocationAllowedIfNoResponse" },
- { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
- { 0, NULL }
+static const ber_sequence_t SupportedCodecsList_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranCodecList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranCodecList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
};
-
static int
-dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SupportedCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SupportedCodecsList_sequence, hf_index, ett_gsm_map_SupportedCodecsList);
return offset;
}
-static int dissect_notificationToMSUser_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_notificationToMSUser);
+static int dissect_iuSupportedCodecsList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCodecsList(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuSupportedCodecsList);
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+dissect_gsm_map_UESBI_IuA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ NULL, hf_index, -1,
NULL);
return offset;
}
-static int dissect_externalAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalAddress);
-}
-static int dissect_omc_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_omc_Id);
-}
-static int dissect_serviceCentreAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
-}
-static int dissect_serviceCentreAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddress);
-}
-static int dissect_serviceCentreAddressOA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressOA);
+static int dissect_uesbi_IuA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UESBI_IuA(TRUE, tvb, offset, actx, tree, hf_gsm_map_uesbi_IuA);
}
-static int dissect_serviceCentreAddressDA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceCentreAddressDA);
-}
-static int dissect_ss_EventSpecification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification_item);
-}
-static int dissect_locationEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
+
+
+
+static int
+dissect_gsm_map_UESBI_IuB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ NULL, hf_index, -1,
+ NULL);
+
+ return offset;
}
-static int dissect_locationEstimate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimate);
+static int dissect_uesbi_IuB_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UESBI_IuB(TRUE, tvb, offset, actx, tree, hf_gsm_map_uesbi_IuB);
}
-static const ber_sequence T_clientIdentity_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t UESBI_Iu_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuA_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuB_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_clientIdentity_sequence, hf_index, ett_gsm_map_T_clientIdentity);
+dissect_gsm_map_UESBI_Iu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UESBI_Iu_sequence, hf_index, ett_gsm_map_UESBI_Iu);
return offset;
}
-static int dissect_clientIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_clientIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_clientIdentity);
+static int dissect_uesbi_Iu_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UESBI_Iu(TRUE, tvb, offset, actx, tree, hf_gsm_map_uesbi_Iu);
+}
+static int dissect_bmuef(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UESBI_Iu(FALSE, tvb, offset, actx, tree, hf_gsm_map_bmuef);
}
-static const value_string T_gmlc_Restriction_vals[] = {
- { 0, "gmlc-List" },
- { 1, "home-Country" },
- { 0, NULL }
-};
+
+static int
+dissect_gsm_map_TraceReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_traceReference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceReference(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceReference);
+}
+
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_TraceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_gmlc_Restriction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gmlc_Restriction(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmlc_Restriction);
+static int dissect_traceType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceType(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceType);
}
-static const ber_sequence T_externalClientList_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_externalClientList_item_sequence, hf_index, ett_gsm_map_T_externalClientList_item);
+dissect_gsm_map_TraceReference2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_externalClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_externalClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList_item);
+static int dissect_traceReference2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceReference2(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceReference2);
}
-static const ber_sequence T_externalClientList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_externalClientList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_externalClientList_sequence_of, hf_index, ett_gsm_map_T_externalClientList);
+dissect_gsm_map_TraceRecordingSessionReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_externalClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_externalClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_externalClientList);
+static int dissect_traceRecordingSessionReference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceRecordingSessionReference(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceRecordingSessionReference);
}
-static const value_string T_plmnClientList_item_vals[] = {
- { 0, "broadcastService" },
- { 1, "o-andM-HPLMN" },
- { 2, "o-andM-VPLMN" },
- { 3, "anonymousLocation" },
- { 4, "targetMSsubscribedService" },
+static const value_string gsm_map_TraceDepth_vals[] = {
+ { 0, "minimum" },
+ { 1, "medium" },
+ { 2, "maximum" },
{ 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_TraceDepth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_plmnClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_plmnClientList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList_item);
+static int dissect_msc_s_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_TraceDepth);
+}
+static int dissect_mgw_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_TraceDepth);
+}
+static int dissect_sgsn_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_TraceDepth);
}
+static int dissect_ggsn_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_TraceDepth);
+}
+static int dissect_rnc_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_TraceDepth);
+}
+static int dissect_bmsc_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_bmsc_TraceDepth);
+}
+
-static const ber_sequence T_plmnClientList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_plmnClientList_item },
+static const asn_namedbit RNC_InterfaceList_bits[] = {
+ { 0, &hf_gsm_map_RNC_InterfaceList_iu, -1, -1, "iu", NULL },
+ { 1, &hf_gsm_map_RNC_InterfaceList_iur, -1, -1, "iur", NULL },
+ { 2, &hf_gsm_map_RNC_InterfaceList_iub, -1, -1, "iub", NULL },
+ { 3, &hf_gsm_map_RNC_InterfaceList_uu, -1, -1, "uu", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_plmnClientList_sequence_of, hf_index, ett_gsm_map_T_plmnClientList);
+dissect_gsm_map_RNC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ RNC_InterfaceList_bits, hf_index, ett_gsm_map_RNC_InterfaceList,
+ NULL);
return offset;
}
-static int dissect_plmnClientList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_plmnClientList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_plmnClientList);
+static int dissect_rnc_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RNC_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_IList);
+}
+static int dissect_rnc_InterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RNC_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_InterfaceList);
}
-static const ber_sequence T_lcs_PrivacyExceptionList_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalClientList_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmnClientList_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit MSC_S_InterfaceList_bits[] = {
+ { 0, &hf_gsm_map_MSC_S_InterfaceList_a, -1, -1, "a", NULL },
+ { 1, &hf_gsm_map_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL },
+ { 2, &hf_gsm_map_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL },
+ { 3, &hf_gsm_map_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL },
+ { 4, &hf_gsm_map_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL },
+ { 5, &hf_gsm_map_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL },
+ { 6, &hf_gsm_map_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL },
+ { 7, &hf_gsm_map_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL },
+ { 8, &hf_gsm_map_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL },
+ { 9, &hf_gsm_map_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_lcs_PrivacyExceptionList_item_sequence, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList_item);
+dissect_gsm_map_MSC_S_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_MSC_S_InterfaceList,
+ NULL);
return offset;
}
-static int dissect_lcs_PrivacyExceptionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lcs_PrivacyExceptionList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList_item);
+static int dissect_msc_s_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSC_S_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_IList);
+}
+static int dissect_msc_s_InterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSC_S_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_InterfaceList);
}
-static const ber_sequence T_lcs_PrivacyExceptionList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_PrivacyExceptionList_item },
+
+static const asn_namedbit MSC_S_EventList_bits[] = {
+ { 0, &hf_gsm_map_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL },
+ { 1, &hf_gsm_map_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
+ { 2, &hf_gsm_map_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL },
+ { 3, &hf_gsm_map_MSC_S_EventList_handovers, -1, -1, "handovers", NULL },
+ { 4, &hf_gsm_map_MSC_S_EventList_ss, -1, -1, "ss", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_lcs_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_T_lcs_PrivacyExceptionList);
+dissect_gsm_map_MSC_S_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ MSC_S_EventList_bits, hf_index, ett_gsm_map_MSC_S_EventList,
+ NULL);
return offset;
}
-static int dissect_lcs_PrivacyExceptionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lcs_PrivacyExceptionList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_PrivacyExceptionList);
+static int dissect_msc_s_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSC_S_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_EList);
+}
+static int dissect_msc_s_EventList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSC_S_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_EventList);
}
-static const ber_sequence T_molr_List_item_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit MGW_InterfaceList_bits[] = {
+ { 0, &hf_gsm_map_MGW_InterfaceList_mc, -1, -1, "mc", NULL },
+ { 1, &hf_gsm_map_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL },
+ { 2, &hf_gsm_map_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_molr_List_item_sequence, hf_index, ett_gsm_map_T_molr_List_item);
+dissect_gsm_map_MGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ MGW_InterfaceList_bits, hf_index, ett_gsm_map_MGW_InterfaceList,
+ NULL);
return offset;
}
-static int dissect_molr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_molr_List_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List_item);
+static int dissect_mgw_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MGW_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_IList);
+}
+static int dissect_mgw_InterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MGW_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_InterfaceList);
}
-static const ber_sequence T_molr_List_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_molr_List_item },
+
+static const asn_namedbit MGW_EventList_bits[] = {
+ { 0, &hf_gsm_map_MGW_EventList_context, -1, -1, "context", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_molr_List_sequence_of, hf_index, ett_gsm_map_T_molr_List);
+dissect_gsm_map_MGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ MGW_EventList_bits, hf_index, ett_gsm_map_MGW_EventList,
+ NULL);
return offset;
}
-static int dissect_molr_List_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_molr_List(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_molr_List);
+static int dissect_mgw_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MGW_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_EList);
+}
+static int dissect_mgw_EventList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MGW_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_EventList);
}
-static const ber_sequence T_lcsInformation_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_molr_List_impl },
+
+static const ber_sequence_t TracePropagationList_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceType_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference2_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceRecordingSessionReference_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_TraceDepth_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_InterfaceList_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_TraceDepth_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_InterfaceList_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_EventList_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_TraceDepth_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_InterfaceList_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_EventList_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_lcsInformation_sequence, hf_index, ett_gsm_map_T_lcsInformation);
+dissect_gsm_map_TracePropagationList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TracePropagationList_sequence, hf_index, ett_gsm_map_TracePropagationList);
return offset;
}
-static int dissect_lcsInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lcsInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsInformation);
+static int dissect_tracePropagationList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TracePropagationList(TRUE, tvb, offset, actx, tree, hf_gsm_map_tracePropagationList);
}
-static const ber_sequence InsertSubscriberDataArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStatus_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provisionedSS_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Data_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionData_impl },
- { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsSubscriptionData_impl },
- { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsSubscriptionData_impl },
- { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlrCamelSubscriptionInfo_impl },
- { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
- { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSubscriptionData_impl },
- { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl },
- { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkAccessMode_impl },
- { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaInformation_impl },
- { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmu_Indicator_impl },
- { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsInformation_impl },
+
+static const ber_sequence_t PrepareHO_ArgV3_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetRNCId_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multipleBearerRequested_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionInfo_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionInfo_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceInformation_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedGSM_Algorithms_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedUMTS_Algorithms_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceList_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_Id_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandover_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ranap_ServiceHandover_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandoverList_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asciCallReference_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geran_classmark_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuCurrentlyUsedCodec_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSupportedCodecsList_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_Iu_impl },
+ { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imeisv_impl },
+ { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alternativeChannelType_impl },
+ { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tracePropagationList_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
+dissect_gsm_map_PrepareHO_ArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareHO_ArgV3_sequence, hf_index, ett_gsm_map_PrepareHO_ArgV3);
return offset;
}
-static const value_string RegionalSubscriptionResponse_vals[] = {
- { 0, "networkNodeAreaRestricted" },
- { 1, "tooManyZoneCodes" },
- { 2, "zoneCodesConflict" },
- { 3, "regionalSubscNotSupported" },
- { 0, NULL }
+static const ber_sequence_t PrepareHO_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
+ { 0, 0, 0, NULL }
};
-
static int
-dissect_gsm_map_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_PrepareHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res);
return offset;
}
-static int dissect_regionalSubscriptionResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_regionalSubscriptionResponse);
-}
-static const ber_sequence InsertSubscriberDataRes_sequence[] = {
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_GeneralData_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t RelocationNumber_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_handoverNumber },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
+dissect_gsm_map_RelocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RelocationNumber_sequence, hf_index, ett_gsm_map_RelocationNumber);
return offset;
}
+static int dissect_RelocationNumberList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RelocationNumber(FALSE, tvb, offset, actx, tree, hf_gsm_map_RelocationNumberList_item);
+}
-static const ber_sequence SEQUNCE_OF_INTEGER_1_50_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_contextIdList_item },
+
+static const ber_sequence_t RelocationNumberList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RelocationNumberList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_INTEGER_1_50_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_INTEGER_1_50);
+dissect_gsm_map_RelocationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ RelocationNumberList_sequence_of, hf_index, ett_gsm_map_RelocationNumberList);
return offset;
}
-static int dissect_contextIdList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_INTEGER_1_50(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_contextIdList);
+static int dissect_relocationNumberList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RelocationNumberList(TRUE, tvb, offset, actx, tree, hf_gsm_map_relocationNumberList);
}
-static const value_string T_gprsSubscriptionDataWithdraw_vals[] = {
- { 0, "allGPRSData" },
- { 1, "contextIdList" },
- { 0, NULL }
-};
-
-static const ber_choice T_gprsSubscriptionDataWithdraw_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allGPRSData },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextIdList },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_gprsSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_T_gprsSubscriptionDataWithdraw);
+dissect_gsm_map_MulticallBearerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_gprsSubscriptionDataWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gprsSubscriptionDataWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_gprsSubscriptionDataWithdraw);
+static int dissect_multicallBearerInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MulticallBearerInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_multicallBearerInfo);
}
-static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_3_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_OCTET_STRING_SIZE_3_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3);
+dissect_gsm_map_ChosenIntegrityProtectionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_lsaIdentityList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaIdentityList);
+static int dissect_integrityProtectionAlgorithm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChosenIntegrityProtectionAlgorithm(TRUE, tvb, offset, actx, tree, hf_gsm_map_integrityProtectionAlgorithm);
}
-static const value_string T_lsaInformationWithdraw_vals[] = {
- { 0, "allLSAData" },
- { 1, "lsaIdentityList" },
- { 0, NULL }
-};
-
-static const ber_choice T_lsaInformationWithdraw_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allLSAData },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_lsaInformationWithdraw_choice, hf_index, ett_gsm_map_T_lsaInformationWithdraw);
+dissect_gsm_map_ChosenEncryptionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_lsaInformationWithdraw(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lsaInformationWithdraw(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lsaInformationWithdraw);
+static int dissect_encryptionAlgorithm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChosenEncryptionAlgorithm(TRUE, tvb, offset, actx, tree, hf_gsm_map_encryptionAlgorithm);
}
-static const ber_sequence DeleteSubscriberDataArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionIdentifier_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsGroupIndication_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsGroupIndication_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelSubscriptionInfoWithdraw_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_gprsSubscriptionDataWithdraw },
- { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl },
- { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_lsaInformationWithdraw },
- { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_ListWithdraw_impl },
+
+static const ber_sequence_t SelectedUMTS_Algorithms_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithm_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithm_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
+dissect_gsm_map_SelectedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_SelectedUMTS_Algorithms);
return offset;
}
+static int dissect_selectedUMTS_Algorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SelectedUMTS_Algorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedUMTS_Algorithms);
+}
+
-static const ber_sequence DeleteSubscriberDataRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
+dissect_gsm_map_ChosenChannelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_chosenChannelInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChosenChannelInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenChannelInfo);
+}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_ChosenSpeechVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_hlr_List_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_3_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List_item);
+static int dissect_chosenSpeechVersion_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChosenSpeechVersion(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenSpeechVersion);
}
-static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_3_8_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_List_item },
+
+static const ber_sequence_t ChosenRadioResourceInformation_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannelInfo_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenSpeechVersion_impl },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_OCTET_STRING_SIZE_3_8_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8);
+dissect_gsm_map_ChosenRadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ChosenRadioResourceInformation);
return offset;
}
-static int dissect_hlr_List(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_hlr_List);
+static int dissect_chosenRadioResourceInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChosenRadioResourceInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenRadioResourceInformation);
}
-static const ber_sequence ResetArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List },
+
+static const ber_sequence_t PrepareHO_ResV3_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_handoverNumber_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_relocationNumberList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multicallBearerInfo_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_multipleBearerNotSupported },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenRadioResourceInformation_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_iuSelectedCodec },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_iuAvailableCodecsList },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
+dissect_gsm_map_PrepareHO_ResV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareHO_ResV3_sequence, hf_index, ett_gsm_map_PrepareHO_ResV3);
return offset;
}
-static const ber_sequence RestoreDataArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
+
+static const ber_sequence_t SendEndSignalArgV3_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
+dissect_gsm_map_SendEndSignalArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendEndSignalArgV3_sequence, hf_index, ett_gsm_map_SendEndSignalArgV3);
return offset;
}
-static const ber_sequence RestoreDataRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t SendEndSignalRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
+dissect_gsm_map_SendEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendEndSignalRes_sequence, hf_index, ett_gsm_map_SendEndSignalRes);
return offset;
}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_SelectedGSM_Algorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_traceReference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceReference);
+static int dissect_selectedGSM_Algorithm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SelectedGSM_Algorithm(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedGSM_Algorithm);
}
+static const ber_sequence_t ProcessAccessSignallingArgV3_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedGSM_Algorithm_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenRadioResourceInformation_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedRab_Id_impl },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iUSelectedCodec_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuAvailableCodecsList_impl },
+ { 0, 0, 0, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_ProcessAccessSignallingArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProcessAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ProcessAccessSignallingArgV3);
return offset;
}
-static int dissect_traceType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_traceType);
-}
-static int dissect_absentSubscriberDiagnosticSM(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_255(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
-}
-static int dissect_absentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
-}
-static int dissect_additionalAbsentSubscriberDiagnosticSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalAbsentSubscriberDiagnosticSM);
+
+
+static const value_string gsm_map_KeyStatus_vals[] = {
+ { 0, "old" },
+ { 1, "new" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_KeyStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
}
-static int dissect_mobileNotReachableReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mobileNotReachableReason);
+static int dissect_keyStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_KeyStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_keyStatus);
}
-static const ber_sequence ActivateTraceModeArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_traceType_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_omc_Id_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t ForwardAccessSignallingArgV3_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionInfo_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionInfo_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keyStatus_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedGSM_Algorithms_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedUMTS_Algorithms_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceInformation_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceList_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandover_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ranap_ServiceHandover_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandoverList_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentlyUsedCodec_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSupportedCodecsList_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSelectedCodec_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alternativeChannelType_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tracePropagationList_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
+dissect_gsm_map_ForwardAccessSignallingArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ForwardAccessSignallingArgV3);
return offset;
}
-static const ber_sequence ActivateTraceModeRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t PrepareSubsequentHOArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bss_APDU },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
+dissect_gsm_map_PrepareSubsequentHOArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareSubsequentHOArg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArg);
return offset;
}
-static const ber_sequence DeactivateTraceModeArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t PrepareSubsequentHOArgV3_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_targetMSC_Number_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetRNCId_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedRab_Id_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geran_classmark_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
+dissect_gsm_map_PrepareSubsequentHOArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareSubsequentHOArgV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArgV3);
return offset;
}
-static const ber_sequence DeactivateTraceModeRes_sequence[] = {
+
+static const ber_sequence_t PrepareSubsequentHOResV3_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU },
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
+dissect_gsm_map_PrepareSubsequentHOResV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareSubsequentHOResV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOResV3);
return offset;
}
-static const ber_sequence Cug_CheckInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+
+static int
+dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Re_synchronisationInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Cug_CheckInfo_sequence, hf_index, ett_gsm_map_Cug_CheckInfo);
+dissect_gsm_map_Re_synchronisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_Re_synchronisationInfo);
return offset;
}
-static int dissect_cug_CheckInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Cug_CheckInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cug_CheckInfo);
+static int dissect_re_synchronisationInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Re_synchronisationInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_re_synchronisationInfo);
}
-static const value_string T_interrogationType_vals[] = {
- { 0, "basicCall" },
- { 1, "forwarding" },
+static const value_string gsm_map_RequestingNodeType_vals[] = {
+ { 0, "vlr" },
+ { 1, "sgsn" },
+ { 2, "s-cscf" },
+ { 3, "bsf" },
+ { 4, "gan-aaa-server" },
+ { 5, "wlan-aaa-server" },
{ 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_RequestingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_interrogationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_interrogationType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_interrogationType);
+static int dissect_requestingNodeType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestingNodeType(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestingNodeType);
}
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_or_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_or_Capability);
+static int dissect_requestingPLMN_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PLMN_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestingPLMN_Id);
}
-static int dissect_supportedCCBS_Phase_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_supportedCCBS_Phase);
+static int dissect_plmn_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PLMN_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmn_Id);
}
+static const ber_sequence_t SendAuthenticationInfoArgV2_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immediateResponsePreferred_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_synchronisationInfo },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingNodeType_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingPLMN_Id_impl },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_SendAuthenticationInfoArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendAuthenticationInfoArgV2_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArgV2);
return offset;
}
-static int dissect_gmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Gmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmsc_Address);
-}
+static const ber_sequence_t SendAuthenticationInfoRes_item_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_SendAuthenticationInfoRes_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item);
return offset;
}
-static int dissect_callReferenceNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReferenceNumber);
-}
-static int dissect_asciCallReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_8(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_asciCallReference);
+static int dissect_SendAuthenticationInfoRes_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SendAuthenticationInfoRes_item(FALSE, tvb, offset, actx, tree, hf_gsm_map_SendAuthenticationInfoRes_item);
}
-static const value_string T_forwardingReason_vals[] = {
- { 0, "notReachable" },
- { 1, "busy" },
- { 2, "noReply" },
- { 0, NULL }
+static const ber_sequence_t SendAuthenticationInfoRes_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SendAuthenticationInfoRes_item },
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SendAuthenticationInfoRes_sequence_of, hf_index, ett_gsm_map_SendAuthenticationInfoRes);
return offset;
}
-static int dissect_forwardingReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_forwardingReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingReason);
-}
-static const ber_sequence T_camelInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI },
+
+static const ber_sequence_t SendAuthenticationInfoResV3_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_camelInfo_sequence, hf_index, ett_gsm_map_T_camelInfo);
+dissect_gsm_map_SendAuthenticationInfoResV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendAuthenticationInfoResV3_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoResV3);
return offset;
}
-static int dissect_camelInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_camelInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelInfo);
-}
-static const value_string T_ext_ProtocolId_vals[] = {
- { 1, "ets-300356" },
- { 0, NULL }
+static const asn_namedbit RequestedEquipmentInfo_bits[] = {
+ { 0, &hf_gsm_map_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL },
+ { 1, &hf_gsm_map_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_RequestedEquipmentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_RequestedEquipmentInfo,
+ NULL);
return offset;
}
-static int dissect_ext_ProtocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ext_ProtocolId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ext_ProtocolId);
+static int dissect_requestedEquipmentInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestedEquipmentInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_requestedEquipmentInfo);
}
-static const ber_sequence AdditionalSignalInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
+
+static const ber_sequence_t CheckIMEIArgV3_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imei },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_requestedEquipmentInfo },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_AdditionalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- AdditionalSignalInfo_sequence, hf_index, ett_gsm_map_AdditionalSignalInfo);
+dissect_gsm_map_CheckIMEIArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CheckIMEIArgV3_sequence, hf_index, ett_gsm_map_CheckIMEIArgV3);
return offset;
}
-static int dissect_additionalSignalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_AdditionalSignalInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSignalInfo);
-}
-
-static const ber_sequence SendRoutingInfoArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfForwarding_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_interrogationType_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Capability_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingReason_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
- { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelInfo_impl },
- { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
- { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
- { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
- { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCCBS_Phase_impl },
- { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_gsm_map_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
- return offset;
-}
+static const value_string gsm_map_EquipmentStatus_vals[] = {
+ { 0, "whiteListed" },
+ { 1, "blackListed" },
+ { 2, "greyListed" },
+ { 0, NULL }
+};
static int
-dissect_gsm_map_RoamingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_roamingNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_RoamingNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNumber);
+static int dissect_equipmentStatus(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, actx, tree, hf_gsm_map_equipmentStatus);
}
-static const ber_sequence ForwardingData_sequence[] = {
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t CheckIMEIRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_equipmentStatus },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bmuef },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
+dissect_gsm_map_CheckIMEIRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CheckIMEIRes_sequence, hf_index, ett_gsm_map_CheckIMEIRes);
return offset;
}
-static int dissect_forwardingData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardingData(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
-}
-static int dissect_forwardingData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ForwardingData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_forwardingData);
-}
-static const value_string T_routingInfo_vals[] = {
- { 0, "roamingNumber" },
- { 1, "forwardingData" },
+static const value_string gsm_map_OverrideCategory_vals[] = {
+ { 0, "overrideEnabled" },
+ { 1, "overrideDisabled" },
{ 0, NULL }
};
-static const ber_choice T_routingInfo_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingData },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_routingInfo_choice, hf_index, ett_gsm_map_T_routingInfo);
+dissect_gsm_map_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_routingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_routingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_routingInfo);
+static int dissect_overrideCategory_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OverrideCategory(TRUE, tvb, offset, actx, tree, hf_gsm_map_overrideCategory);
}
-static const ber_sequence T_t_CSI_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_t_CSI_sequence, hf_index, ett_gsm_map_T_t_CSI);
-
- return offset;
-}
-static int dissect_t_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_t_CSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_t_CSI);
-}
-static const ber_sequence T_gmscCamelSubscriptionInfo_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
- { 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_gmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_T_gmscCamelSubscriptionInfo);
+dissect_gsm_map_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_gmscCamelSubscriptionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_gmscCamelSubscriptionInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_gmscCamelSubscriptionInfo);
+static int dissect_bearerService_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BearerServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_bearerService);
}
-static const ber_sequence T_camelRoutingInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData },
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_camelRoutingInfo_sequence, hf_index, ett_gsm_map_T_camelRoutingInfo);
+dissect_gsm_map_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_camelRoutingInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_camelRoutingInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_camelRoutingInfo);
+static int dissect_teleservice_code_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TeleserviceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_teleservice_code);
}
-static const value_string T_extendedRoutingInfo_vals[] = {
- { 0, "routingInfo" },
- { 1, "camelRoutingInfo" },
+static const value_string gsm_map_BasicServiceCode_vals[] = {
+ { 2, "bearerService" },
+ { 3, "teleservice" },
{ 0, NULL }
};
-static const ber_choice T_extendedRoutingInfo_choice[] = {
- { 0, BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
- { 1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl },
+static const ber_choice_t BasicServiceCode_choice[] = {
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_bearerService_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_teleservice_code_impl },
{ 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_extendedRoutingInfo_choice, hf_index, ett_gsm_map_T_extendedRoutingInfo);
+dissect_gsm_map_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode,
+ NULL);
return offset;
}
-static int dissect_extendedRoutingInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_extendedRoutingInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extendedRoutingInfo);
+static int dissect_BasicServiceGroupList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BasicServiceGroupList_item);
+}
+static int dissect_basicService(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_basicService);
}
+static int dissect_basicServiceGroup_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceGroup);
+}
+
+static const ber_sequence_t BasicServiceGroupList_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item },
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_BasicServiceGroupList);
return offset;
}
-static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationNumber);
+static int dissect_ext_basicServiceGroupList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceGroupList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroupList);
}
+static int dissect_ext_basicServiceGroupList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroupList);
+}
+
+static const asn_namedbit ODB_GeneralData_bits[] = {
+ { 0, &hf_gsm_map_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL },
+ { 1, &hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL },
+ { 2, &hf_gsm_map_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL },
+ { 6, &hf_gsm_map_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL },
+ { 7, &hf_gsm_map_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL },
+ { 8, &hf_gsm_map_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL },
+ { 3, &hf_gsm_map_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL },
+ { 4, &hf_gsm_map_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL },
+ { 5, &hf_gsm_map_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL },
+ { 9, &hf_gsm_map_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL },
+ { 10, &hf_gsm_map_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL },
+ { 11, &hf_gsm_map_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL },
+ { 12, &hf_gsm_map_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL },
+ { 13, &hf_gsm_map_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL },
+ { 14, &hf_gsm_map_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL },
+ { 15, &hf_gsm_map_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL },
+ { 16, &hf_gsm_map_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL },
+ { 17, &hf_gsm_map_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL },
+ { 18, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL },
+ { 19, &hf_gsm_map_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL },
+ { 20, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL },
+ { 21, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL },
+ { 22, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL },
+ { 23, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL },
+ { 24, &hf_gsm_map_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL },
+ { 25, &hf_gsm_map_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL },
+ { 26, &hf_gsm_map_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL },
+ { 27, &hf_gsm_map_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL },
+ { 28, &hf_gsm_map_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+dissect_gsm_map_ODB_GeneralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ ODB_GeneralData_bits, hf_index, ett_gsm_map_ODB_GeneralData,
NULL);
return offset;
}
-static int dissect_cellIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_7(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdFixedLength);
+static int dissect_odb_GeneralData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_GeneralData(FALSE, tvb, offset, actx, tree, hf_gsm_map_odb_GeneralData);
}
+static int dissect_odb_GeneralData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_GeneralData(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_GeneralData);
+}
+
+static const asn_namedbit ODB_HPLMN_Data_bits[] = {
+ { 0, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL },
+ { 1, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL },
+ { 2, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL },
+ { 3, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+dissect_gsm_map_ODB_HPLMN_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ODB_HPLMN_Data,
NULL);
return offset;
}
-static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_5(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_laiFixedLength);
+static int dissect_odb_HPLMN_Data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_HPLMN_Data(FALSE, tvb, offset, actx, tree, hf_gsm_map_odb_HPLMN_Data);
}
-static const value_string T_cellIdOrLAI_vals[] = {
- { 0, "cellIdFixedLength" },
- { 1, "laiFixedLength" },
+static const value_string gsm_map_SubscriberStatus_vals[] = {
+ { 0, "serviceGranted" },
+ { 1, "operatorDeterminedBarring" },
{ 0, NULL }
};
-static const ber_choice T_cellIdOrLAI_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellIdFixedLength_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_cellIdOrLAI_choice, hf_index, ett_gsm_map_T_cellIdOrLAI);
+dissect_gsm_map_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_cellIdOrLAI(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cellIdOrLAI(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cellIdOrLAI);
+static int dissect_subscriberStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberStatus);
}
-static const ber_sequence LocationInformation_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_cellIdOrLAI },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
+dissect_gsm_map_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInformation);
+static int dissect_serviceKey(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceKey(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceKey);
+}
+static int dissect_serviceKey_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceKey(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceKey);
}
-static const value_string SubscriberState_vals[] = {
- { 0, "assumedIdle" },
- { 1, "camelBusy" },
- { 2, "notProvidedFromVLR" },
+static const value_string gsm_map_O_BcsmTriggerDetectionPoint_vals[] = {
+ { 2, "collectedInfo" },
+ { 4, "routeSelectFailure" },
{ 0, NULL }
};
-static const ber_choice SubscriberState_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl },
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl },
- { 0, 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState);
+dissect_gsm_map_O_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SubscriberState(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberState);
+static int dissect_o_BcsmTriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmTriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint);
}
-static const ber_sequence SubscriberInfo_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_DefaultCallHandling_vals[] = {
+ { 0, "continueCall" },
+ { 1, "releaseCall" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
+dissect_gsm_map_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_subscriberInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SubscriberInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
+static int dissect_defaultCallHandling(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DefaultCallHandling(FALSE, tvb, offset, actx, tree, hf_gsm_map_defaultCallHandling);
}
-static int dissect_subscriberInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberInfo);
+static int dissect_defaultCallHandling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultCallHandling);
}
+static const ber_sequence_t O_BcsmCamelTDPData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_O_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDPData);
return offset;
}
-static int dissect_vmsc_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_vmsc_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_vmsc_Address);
+static int dissect_O_BcsmCamelTDPDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmCamelTDPData(FALSE, tvb, offset, actx, tree, hf_gsm_map_O_BcsmCamelTDPDataList_item);
}
-static const ber_sequence T_ccbs_Indicators_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t O_BcsmCamelTDPDataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDPDataList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_ccbs_Indicators_sequence, hf_index, ett_gsm_map_T_ccbs_Indicators);
+dissect_gsm_map_O_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDPDataList);
return offset;
}
-static int dissect_ccbs_Indicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ccbs_Indicators(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Indicators);
+static int dissect_o_BcsmCamelTDPDataList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmCamelTDPDataList(FALSE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmCamelTDPDataList);
}
-static const value_string T_numberPortabilityStatus_vals[] = {
- { 0, "notKnownToBePorted" },
- { 1, "ownNumberPortedOut" },
- { 2, "foreignNumberPortedToForeignNetwork" },
- { 0, NULL }
-};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_CamelCapabilityHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_numberPortabilityStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_numberPortabilityStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_numberPortabilityStatus);
+static int dissect_camelCapabilityHandling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CamelCapabilityHandling(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelCapabilityHandling);
}
-static const ber_sequence SendRoutingInfoRes_sequence[] = {
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { -1/*choice*/ , -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInterrogationRequired_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vmsc_Address_impl },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
- { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Indicators_impl },
- { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
+
+static const ber_sequence_t O_CSI_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csiActive_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
+dissect_gsm_map_O_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ O_CSI_sequence, hf_index, ett_gsm_map_O_CSI);
return offset;
}
+static int dissect_o_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_CSI);
+}
+static int dissect_o_IM_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_IM_CSI);
+}
-static const value_string NetDetNotReachable_vals[] = {
- { 0, "msPurged" },
- { 1, "imsiDetached" },
- { 2, "restrictedArea" },
- { 3, "notRegistered" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_NetDetNotReachable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_category_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Category(TRUE, tvb, offset, actx, tree, hf_gsm_map_category);
+}
+
-static const ber_sequence ProvideRoamingNumberArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
- { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
- { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
- { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInGMSC_impl },
- { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
- { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_orNotSupportedInGMSC_impl },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
+dissect_gsm_map_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_BearerServiceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BearerServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BearerServiceList_item);
+}
+static int dissect_ext_BearerService_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BearerServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_BearerService);
+}
-static const ber_sequence ProvideRoamingNumberRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t BearerServiceList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_BearerServiceList_item },
};
static int
-dissect_gsm_map_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
+dissect_gsm_map_BearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ BearerServiceList_sequence_of, hf_index, ett_gsm_map_BearerServiceList);
return offset;
}
+static int dissect_bearerserviceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BearerServiceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bearerserviceList);
+}
+static int dissect_bearerServiceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BearerServiceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bearerServiceList);
+}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_uui_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_131(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uui);
+static int dissect_TeleserviceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_TeleserviceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_TeleserviceList_item);
+}
+static int dissect_ext_Teleservice_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_TeleserviceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_Teleservice);
+}
+static int dissect_ext_teleservice(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_TeleserviceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_teleservice);
}
-static const ber_sequence T_uu_Data_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uusCFInteraction_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t TeleserviceList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_TeleserviceList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_uu_Data_sequence, hf_index, ett_gsm_map_T_uu_Data);
+dissect_gsm_map_TeleserviceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ TeleserviceList_sequence_of, hf_index, ett_gsm_map_TeleserviceList);
return offset;
}
-static int dissect_uu_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_uu_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_uu_Data);
+static int dissect_teleserviceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TeleserviceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_teleserviceList);
}
-static const ber_sequence ResumeCallHandlingArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingData_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl },
- { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allInformationSent_impl },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_gsm_map_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
+
+int
+dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_ss_Code(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
+}
+static int dissect_ss_Code_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
+}
+static int dissect_SS_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_SS_List_item);
+}
+static int dissect_SS_EventList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_SS_EventList_item);
+}
+static int dissect_ss_Event_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Event);
+}
-static const ber_sequence ResumeCallHandlingRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+const value_string gsm_map_Ext_BasicServiceCode_vals[] = {
+ { 2, "ext-BearerService" },
+ { 3, "ext-Teleservice" },
+ { 0, NULL }
};
-static int
-dissect_gsm_map_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
+static const ber_choice_t Ext_BasicServiceCode_choice[] = {
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode,
+ NULL);
return offset;
}
+static int dissect_BasicServiceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BasicServiceList_item);
+}
+static int dissect_ext_basicService(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_basicService);
+}
+static int dissect_ext_basicService_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_basicService);
+}
+static int dissect_Ext_BasicServiceGroupList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_BasicServiceGroupList_item);
+}
+static int dissect_ext_basicServiceGroup(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroup);
+}
+static int dissect_ext_basicServiceGroup_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroup);
+}
+static int dissect_basicServiceGroup2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceGroup2);
+}
+static int dissect_basicService2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicService2);
+}
+static int dissect_BasicServiceCriteria_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BasicServiceCriteria_item);
+}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 328 "gsmmap.cnf"
+ /* Note Ext-SS-Status can have more than one byte */
- return offset;
-}
-static int dissect_b_Subscriber_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_b_Subscriber_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_Subscriber_Address);
-}
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
-static const ber_sequence ProvideSIWFSNumberArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_call_Direction_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_b_Subscriber_Address_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowerLayerCompatibility_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
-static int
-dissect_gsm_map_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
- return offset;
-}
+ if (!parameter_tvb)
+ return offset;
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+
+ proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
+ if ((octet & 0x01)== 1)
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
+
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
+
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
return offset;
}
-static int dissect_sIWFSNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_sIWFSNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sIWFSNumber);
+static int dissect_ext_ss_Status(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_ss_Status);
+}
+static int dissect_ext_ss_Status_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_SS_Status(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_ss_Status);
}
-static const ber_sequence ProvideSIWFSNumberRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_gsm_map_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
+
+int
+dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_forwardedToSubaddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_SubaddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardedToSubaddress);
+}
+static int dissect_b_subscriberSubaddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ISDN_SubaddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_b_subscriberSubaddress);
+}
+
-static const ber_sequence SIWFSSignallingModifyArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
+dissect_gsm_map_Ext_ForwOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static const ber_sequence SIWFSSignallingModifyRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
+dissect_gsm_map_T_ext_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+#line 539 "gsmmap.cnf"
+
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
+
return offset;
}
+static int dissect_ext_forwardingOptions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_ext_forwardingOptions(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingOptions);
+}
-static const value_string Ccbs_Monitoring_vals[] = {
- { 0, "stopMonitoring" },
- { 1, "startMonitoring" },
- { 0, NULL }
-};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_Ext_NoRepCondTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ccbs_Monitoring_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ccbs_Monitoring(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Monitoring);
+static int dissect_ext_noReplyConditionTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_NoRepCondTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_noReplyConditionTime);
}
-static const ber_sequence SetReportingStateArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Monitoring_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_gsm_map_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
- return offset;
-}
+int
+dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 264 "gsmmap.cnf"
+ tvbuff_t *parameter_tvb;
+ char *digit_str;
+ guint8 octet;
+ guint8 na;
+ guint8 np;
+ proto_item *item;
+ proto_tree *subtree;
-static const value_string Ccbs_SubscriberStatus_vals[] = {
- { 0, "ccbsNotIdle" },
- { 1, "ccbsIdle" },
- { 2, "ccbsNotReachable" },
- { 0, NULL }
-};
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_isdn_address_string);
+
+ proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
+
+ digit_str = unpack_digits(parameter_tvb, 1);
+
+ proto_tree_add_string(tree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str);
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+ na = (octet & 0x70)>>4;
+ np = octet & 0x0f;
+ if ((na == 1) && (np==1))/*International Number & E164*/
+ dissect_e164_cc(parameter_tvb, subtree, 1, TRUE);
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
-static int dissect_ccbs_SubscriberStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ccbs_SubscriberStatus(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_SubscriberStatus);
+static int dissect_omc_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_omc_Id);
+}
+static int dissect_forwardedToNumber_addr_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardedToNumber_addr);
+}
+static int dissect_SS_EventSpecification_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_SS_EventSpecification_item);
+}
+static int dissect_lcsClientDialedByMS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientDialedByMS);
}
-static const ber_sequence SetReportingStateRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
+dissect_gsm_map_FTN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
+static int dissect_longForwardedToNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_FTN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_longForwardedToNumber);
+}
-static const value_string MonitoringMode_vals[] = {
- { 0, "a-side" },
- { 1, "b-side" },
- { 0, NULL }
+static const ber_sequence_t Ext_ForwFeature_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_forwardingOptions_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_noReplyConditionTime_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl },
+ { 0, 0, 0, NULL }
};
-
static int
-dissect_gsm_map_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_Ext_ForwFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_ForwFeature_sequence, hf_index, ett_gsm_map_Ext_ForwFeature);
return offset;
}
-static int dissect_monitoringMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_MonitoringMode(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_monitoringMode);
+static int dissect_Ext_ForwFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ForwFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_ForwFeatureList_item);
}
-static const value_string CallOutcome_vals[] = {
- { 0, "success" },
- { 1, "failure" },
- { 2, "busy" },
- { 0, NULL }
+static const ber_sequence_t Ext_ForwFeatureList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Ext_ForwFeatureList_item },
};
-
static int
-dissect_gsm_map_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_Ext_ForwFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_Ext_ForwFeatureList);
return offset;
}
-static int dissect_callOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callOutcome);
+static int dissect_ext_forwardingFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ForwFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingFeatureList);
+}
+static int dissect_ext_forwardingFeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ForwFeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingFeatureList);
}
-static const ber_sequence T_eventReportData_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t Ext_ForwInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_forwardingFeatureList },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_eventReportData_sequence, hf_index, ett_gsm_map_T_eventReportData);
+dissect_gsm_map_Ext_ForwInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_ForwInfo_sequence, hf_index, ett_gsm_map_Ext_ForwInfo);
return offset;
}
-static int dissect_eventReportData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_eventReportData(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_eventReportData);
+static int dissect_ext_forwardingInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ForwInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingInfo);
}
-static const ber_sequence T_callReportdata_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t Ext_CallBarringFeature_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_callReportdata_sequence, hf_index, ett_gsm_map_T_callReportdata);
+dissect_gsm_map_Ext_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_Ext_CallBarringFeature);
return offset;
}
-static int dissect_callReportdata_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_callReportdata(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_callReportdata);
+static int dissect_Ext_CallBarFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_CallBarringFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_CallBarFeatureList_item);
}
-static const ber_sequence StatusReportArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReportdata_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t Ext_CallBarFeatureList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Ext_CallBarFeatureList_item },
};
static int
-dissect_gsm_map_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
+dissect_gsm_map_Ext_CallBarFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_Ext_CallBarFeatureList);
return offset;
}
+static int dissect_ext_callBarringFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_CallBarFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_callBarringFeatureList);
+}
+static int dissect_ext_callBarringFeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_CallBarFeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_callBarringFeatureList);
+}
-static const ber_sequence StatusReportRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t Ext_CallBarInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_callBarringFeatureList },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
+dissect_gsm_map_Ext_CallBarInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_Ext_CallBarInfo);
return offset;
}
+static int dissect_ext_callBarringInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_CallBarInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_callBarringInfo);
+}
-static const value_string Ruf_Outcome_vals[] = {
- { 0, "accepted" },
- { 1, "rejected" },
- { 2, "noResponseFromFreeMS" },
- { 3, "noResponseFromBusyMS" },
- { 4, "udubFromFreeMS" },
- { 5, "udubFromBusyMS" },
- { 0, NULL }
-};
-
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+int
+dissect_gsm_map_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ruf_Outcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ruf_Outcome);
+static int dissect_cug_Index(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_Index(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_Index);
+}
+static int dissect_preferentialCUG_Indicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_Index(FALSE, tvb, offset, actx, tree, hf_gsm_map_preferentialCUG_Indicator);
}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+
+int
+dissect_gsm_map_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_b_subscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_B_subscriberNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberNumber);
+static int dissect_cug_Interlock(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_Interlock(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_Interlock);
}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+static const value_string gsm_map_IntraCUG_Options_vals[] = {
+ { 0, "noCUG-Restrictions" },
+ { 1, "cugIC-CallBarred" },
+ { 2, "cugOG-CallBarred" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_IntraCUG_Options(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_b_subscriberSubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_21(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_b_subscriberSubaddress);
+static int dissect_intraCUG_Options(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IntraCUG_Options(FALSE, tvb, offset, actx, tree, hf_gsm_map_intraCUG_Options);
}
-static const ber_sequence Ccbs_Feature_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t Ext_BasicServiceGroupList_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_BasicServiceGroupList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ccbs_Feature_sequence, hf_index, ett_gsm_map_Ccbs_Feature);
+dissect_gsm_map_Ext_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_Ext_BasicServiceGroupList);
return offset;
}
-static int dissect_ccbs_Feature_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ccbs_Feature(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Feature);
+static int dissect_basicServiceGroupList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_BasicServiceGroupList(FALSE, tvb, offset, actx, tree, hf_gsm_map_basicServiceGroupList);
}
+static const ber_sequence_t CUG_Subscription_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intraCUG_Options },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_CUG_Subscription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CUG_Subscription_sequence, hf_index, ett_gsm_map_CUG_Subscription);
return offset;
}
-static int dissect_translatedB_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_TranslatedB_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_translatedB_Number);
+static int dissect_CUG_SubscriptionList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_Subscription(FALSE, tvb, offset, actx, tree, hf_gsm_map_CUG_SubscriptionList_item);
}
-static const ber_sequence RemoteUserFreeArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replaceB_Number_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t CUG_SubscriptionList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CUG_SubscriptionList_item },
};
static int
-dissect_gsm_map_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
+dissect_gsm_map_CUG_SubscriptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_CUG_SubscriptionList);
return offset;
}
+static int dissect_cug_SubscriptionList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_SubscriptionList(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_SubscriptionList);
+}
-static const ber_sequence RemoteUserFreeRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+
+static int
+dissect_gsm_map_InterCUG_Restrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_interCUG_Restrictions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InterCUG_Restrictions(FALSE, tvb, offset, actx, tree, hf_gsm_map_interCUG_Restrictions);
+}
+
+
+static const ber_sequence_t CUG_Feature_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
+dissect_gsm_map_CUG_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CUG_Feature_sequence, hf_index, ett_gsm_map_CUG_Feature);
return offset;
}
+static int dissect_CUG_FeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_Feature(FALSE, tvb, offset, actx, tree, hf_gsm_map_CUG_FeatureList_item);
+}
-static const ber_sequence Ss_Data_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t CUG_FeatureList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CUG_FeatureList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ss_Data_sequence, hf_index, ett_gsm_map_Ss_Data);
+dissect_gsm_map_CUG_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_CUG_FeatureList);
return offset;
}
-static int dissect_ss_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ss_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Data);
+static int dissect_cug_FeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_FeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_FeatureList);
}
-static const ber_sequence RegisterSS_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
+
+static const ber_sequence_t CUG_Info_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
+int
+dissect_gsm_map_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CUG_Info_sequence, hf_index, ett_gsm_map_CUG_Info);
return offset;
}
+static int dissect_cug_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_cug_Info);
+}
-static const value_string Ss_Info_vals[] = {
- { 0, "forwardingInfo" },
- { 1, "callBarringInfo" },
- { 3, "ss-Data" },
+static const value_string gsm_map_CliRestrictionOption_vals[] = {
+ { 0, "permanent" },
+ { 1, "temporaryDefaultRestricted" },
+ { 2, "temporaryDefaultAllowed" },
{ 0, NULL }
};
-static const ber_choice Ss_Info_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
- { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- Ss_Info_choice, hf_index, ett_gsm_map_Ss_Info);
+dissect_gsm_map_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_cliRestrictionOption(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CliRestrictionOption(FALSE, tvb, offset, actx, tree, hf_gsm_map_cliRestrictionOption);
+}
+static int dissect_cliRestrictionOption_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CliRestrictionOption(TRUE, tvb, offset, actx, tree, hf_gsm_map_cliRestrictionOption);
+}
-static const ber_sequence Ss_ForBS_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_SS_SubscriptionOption_vals[] = {
+ { 2, "cliRestrictionOption" },
+ { 1, "overrideCategory" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SS_SubscriptionOption_choice[] = {
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_overrideCategory_impl },
+ { 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ss_ForBS_sequence, hf_index, ett_gsm_map_Ss_ForBS);
+dissect_gsm_map_SS_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SS_SubscriptionOption_choice, hf_index, ett_gsm_map_SS_SubscriptionOption,
+ NULL);
return offset;
}
+static int dissect_ss_SubscriptionOption(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_SubscriptionOption(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SubscriptionOption);
+}
-static const ber_sequence T_ccbs_FeatureList_item_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup },
+
+static const ber_sequence_t Ext_SS_Data_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_ccbs_FeatureList_item_sequence, hf_index, ett_gsm_map_T_ccbs_FeatureList_item);
+dissect_gsm_map_Ext_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_SS_Data_sequence, hf_index, ett_gsm_map_Ext_SS_Data);
return offset;
}
-static int dissect_ccbs_FeatureList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ccbs_FeatureList_item(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList_item);
+static int dissect_ext_ss_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_SS_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_ss_Data);
}
-static const ber_sequence T_ccbs_FeatureList_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ccbs_FeatureList_item },
-};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- T_ccbs_FeatureList_sequence_of, hf_index, ett_gsm_map_T_ccbs_FeatureList);
+dissect_gsm_map_EMLPP_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ccbs_FeatureList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ccbs_FeatureList(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_FeatureList);
+static int dissect_maximumentitledPriority(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EMLPP_Priority(FALSE, tvb, offset, actx, tree, hf_gsm_map_maximumentitledPriority);
+}
+static int dissect_defaultPriority(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EMLPP_Priority(FALSE, tvb, offset, actx, tree, hf_gsm_map_defaultPriority);
+}
+static int dissect_defaultPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultPriority);
+}
+static int dissect_maximumEntitledPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_maximumEntitledPriority);
+}
+static int dissect_priority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_priority);
}
-static const ber_sequence T_genericServiceInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumEntitledPriority_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_FeatureList_impl },
+
+static const ber_sequence_t EMLPP_Info_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_genericServiceInfo_sequence, hf_index, ett_gsm_map_T_genericServiceInfo);
+dissect_gsm_map_EMLPP_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info);
return offset;
}
-static int dissect_genericServiceInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_genericServiceInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_genericServiceInfo);
+static int dissect_emlpp_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EMLPP_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_emlpp_Info);
}
-static const value_string InterrogateSS_Res_vals[] = {
- { 0, "ss-Status" },
- { 2, "basicServiceGroupList" },
- { 3, "forwardingFeatureList" },
- { 4, "genericServiceInfo" },
+static const value_string gsm_map_Ext_SS_Info_vals[] = {
+ { 0, "forwardingInfo" },
+ { 1, "callBarringInfo" },
+ { 2, "cug-Info" },
+ { 3, "ss-Data" },
+ { 4, "emlpp-Info" },
{ 0, NULL }
};
-static const ber_choice InterrogateSS_Res_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_basicServiceGroupList_impl },
- { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_forwardingFeatureList_impl },
- { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_genericServiceInfo_impl },
+static const ber_choice_t Ext_SS_Info_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ext_forwardingInfo_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_callBarringInfo_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cug_Info_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_ss_Data_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_emlpp_Info_impl },
{ 0, 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res);
+dissect_gsm_map_Ext_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Ext_SS_Info_choice, hf_index, ett_gsm_map_Ext_SS_Info,
+ NULL);
return offset;
}
+static int dissect_Ext_SS_InfoList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_SS_Info(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_SS_InfoList_item);
+}
+
+static const ber_sequence_t Ext_SS_InfoList_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_SS_InfoList_item },
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_Ext_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_Ext_SS_InfoList);
return offset;
}
-static int dissect_ussd_String(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_160(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ussd_String);
+static int dissect_provisionedSS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_SS_InfoList(TRUE, tvb, offset, actx, tree, hf_gsm_map_provisionedSS);
}
-static const ber_sequence Ussd_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertingPattern },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+
+static const ber_sequence_t ODB_Data_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
+dissect_gsm_map_ODB_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ODB_Data_sequence, hf_index, ett_gsm_map_ODB_Data);
return offset;
}
+static int dissect_odb_Data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_Data(FALSE, tvb, offset, actx, tree, hf_gsm_map_odb_Data);
+}
+static int dissect_odb_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_Data);
+}
+static int dissect_odb_data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_data);
+}
+
-static const ber_sequence Ussd_Res_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
- { 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
+dissect_gsm_map_ZoneCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_regionalSubscriptionIdentifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ZoneCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_regionalSubscriptionIdentifier);
+}
+static int dissect_ZoneCodeList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ZoneCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ZoneCodeList_item);
+}
+static const ber_sequence_t ZoneCodeList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ZoneCodeList_item },
+};
+
static int
-dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
- pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_ZoneCodeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ZoneCodeList);
return offset;
}
+static int dissect_regionalSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ZoneCodeList(TRUE, tvb, offset, actx, tree, hf_gsm_map_regionalSubscriptionData);
+}
-static const value_string GetPasswordArg_vals[] = {
- { 0, "enterPW" },
- { 1, "enterNewPW" },
- { 2, "enterNewPW-Again" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
+static int dissect_groupId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GroupId(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupId);
+}
+static int dissect_groupid(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GroupId(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupid);
+}
+static const asn_namedbit AdditionalSubscriptions_bits[] = {
+ { 0, &hf_gsm_map_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL },
+ { 1, &hf_gsm_map_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL },
+ { 2, &hf_gsm_map_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
static int
-dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
- pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_AdditionalSubscriptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ AdditionalSubscriptions_bits, hf_index, ett_gsm_map_AdditionalSubscriptions,
+ NULL);
return offset;
}
+static int dissect_additionalSubscriptions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalSubscriptions(FALSE, tvb, offset, actx, tree, hf_gsm_map_additionalSubscriptions);
+}
+static int dissect_additionalSubscriptions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalSubscriptions(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalSubscriptions);
+}
+
-static const asn_namedbit ServiceIndicator_bits[] = {
- { 0, &hf_gsm_map_ServiceIndicator_clirInvoked, -1, -1, NULL, NULL },
- { 1, &hf_gsm_map_ServiceIndicator_camelInvoked, -1, -1, NULL, NULL },
- { 0, NULL, 0, 0, NULL, NULL }
-};
static int
-dissect_gsm_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
- ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
- NULL);
+dissect_gsm_map_AdditionalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ NULL, hf_index, -1,
+ NULL);
return offset;
}
-static int dissect_serviceIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_ServiceIndicator(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_serviceIndicator);
+static int dissect_additionalInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalInfo);
}
-static const ber_sequence T_ccbs_Data_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceIndicator_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
+
+static const ber_sequence_t VoiceBroadcastData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_additionalSubscriptions },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_ccbs_Data_sequence, hf_index, ett_gsm_map_T_ccbs_Data);
+dissect_gsm_map_VoiceBroadcastData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ VoiceBroadcastData_sequence, hf_index, ett_gsm_map_VoiceBroadcastData);
return offset;
}
-static int dissect_ccbs_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_ccbs_Data(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ccbs_Data);
+static int dissect_VBSDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VoiceBroadcastData(FALSE, tvb, offset, actx, tree, hf_gsm_map_VBSDataList_item);
}
-static const ber_sequence RegisterCC_EntryArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t VBSDataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_VBSDataList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
+dissect_gsm_map_VBSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ VBSDataList_sequence_of, hf_index, ett_gsm_map_VBSDataList);
return offset;
}
+static int dissect_vbsSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VBSDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vbsSubscriptionData);
+}
-static const ber_sequence RegisterCC_EntryRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
+
+static const ber_sequence_t VoiceGroupCallData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
+dissect_gsm_map_VoiceGroupCallData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ VoiceGroupCallData_sequence, hf_index, ett_gsm_map_VoiceGroupCallData);
return offset;
}
+static int dissect_VGCSDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VoiceGroupCallData(FALSE, tvb, offset, actx, tree, hf_gsm_map_VGCSDataList_item);
+}
-static const ber_sequence EraseCC_EntryArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t VGCSDataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_VGCSDataList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
+dissect_gsm_map_VGCSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ VGCSDataList_sequence_of, hf_index, ett_gsm_map_VGCSDataList);
return offset;
}
+static int dissect_vgcsSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VGCSDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vgcsSubscriptionData);
+}
-static const ber_sequence EraseCC_EntryRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t SS_EventList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_SS_EventList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
+dissect_gsm_map_SS_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SS_EventList_sequence_of, hf_index, ett_gsm_map_SS_EventList);
return offset;
}
+static int dissect_ss_EventList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_EventList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_EventList);
+}
+static const ber_sequence_t SS_CamelData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
static int
-dissect_gsm_map_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index);
+dissect_gsm_map_SS_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_CamelData_sequence, hf_index, ett_gsm_map_SS_CamelData);
return offset;
}
-static int dissect_sm_RP_PRI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_PRI);
+static int dissect_ss_CamelData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_CamelData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_CamelData);
}
+static const ber_sequence_t SS_CSI_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
+ { 0, 0, 0, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_CSI_sequence, hf_index, ett_gsm_map_SS_CSI);
return offset;
}
-static int dissect_sm_RP_MTI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_INTEGER_0_10(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_MTI);
+static int dissect_ss_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_CSI);
}
+static const value_string gsm_map_MatchType_vals[] = {
+ { 0, "inhibiting" },
+ { 1, "enabling" },
+ { 0, NULL }
+};
+
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_sm_RP_SMEA_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_1_12(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_SMEA);
+static int dissect_matchType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MatchType(TRUE, tvb, offset, actx, tree, hf_gsm_map_matchType);
}
-static const ber_sequence RoutingInfoForSMArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddress_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_MTI_impl },
- { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_SMEA_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t DestinationNumberList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DestinationNumberList_item },
};
static int
-dissect_gsm_map_RoutingInfoForSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
+dissect_gsm_map_DestinationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ DestinationNumberList_sequence_of, hf_index, ett_gsm_map_DestinationNumberList);
return offset;
}
+static int dissect_destinationNumberList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DestinationNumberList(TRUE, tvb, offset, actx, tree, hf_gsm_map_destinationNumberList);
+}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_networkNode_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_networkNode_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_networkNode_Number);
+static int dissect_DestinationNumberLengthList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_INTEGER_1_15(FALSE, tvb, offset, actx, tree, hf_gsm_map_DestinationNumberLengthList_item);
}
-static const value_string T_additional_Number_vals[] = {
- { 0, "msc-Number" },
- { 1, "sgsn-Number" },
- { 0, NULL }
-};
-
-static const ber_choice T_additional_Number_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
- { 0, 0, 0, 0, NULL }
+static const ber_sequence_t DestinationNumberLengthList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_DestinationNumberLengthList_item },
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_additional_Number_choice, hf_index, ett_gsm_map_T_additional_Number);
+dissect_gsm_map_DestinationNumberLengthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_DestinationNumberLengthList);
return offset;
}
-static int dissect_additional_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_additional_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_additional_Number);
+static int dissect_destinationNumberLengthList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DestinationNumberLengthList(TRUE, tvb, offset, actx, tree, hf_gsm_map_destinationNumberLengthList);
}
-static const ber_sequence T_locationInfoWithLMSI_sequence[] = {
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_additional_Number },
+
+static const ber_sequence_t DestinationNumberCriteria_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberLengthList_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_locationInfoWithLMSI_sequence, hf_index, ett_gsm_map_T_locationInfoWithLMSI);
+dissect_gsm_map_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria);
return offset;
}
-static int dissect_locationInfoWithLMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_locationInfoWithLMSI(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationInfoWithLMSI);
+static int dissect_destinationNumberCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DestinationNumberCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_destinationNumberCriteria);
}
-static const ber_sequence RoutingInfoForSMRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t BasicServiceCriteria_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceCriteria_item },
};
static int
-dissect_gsm_map_RoutingInfoForSMRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RoutingInfoForSMRes_sequence, hf_index, ett_gsm_map_RoutingInfoForSMRes);
+dissect_gsm_map_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_BasicServiceCriteria);
return offset;
}
+static int dissect_basicServiceCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceCriteria);
+}
-static const value_string Sm_RP_DA_vals[] = {
- { 0, "imsi" },
- { 1, "lmsi" },
- { 4, "serviceCentreAddressDA" },
- { 5, "noSM-RP-DA" },
+static const value_string gsm_map_CallTypeCriteria_vals[] = {
+ { 0, "forwarded" },
+ { 1, "notForwarded" },
{ 0, NULL }
};
-static const ber_choice Sm_RP_DA_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
- { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressDA_impl },
- { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_DA_impl },
- { 0, 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA);
+dissect_gsm_map_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_sm_RP_DA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Sm_RP_DA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_DA);
+static int dissect_callTypeCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallTypeCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_callTypeCriteria);
}
-static const value_string Sm_RP_OA_vals[] = {
- { 2, "msisdn" },
- { 4, "serviceCentreAddressOA" },
- { 5, "noSM-RP-OA" },
- { 0, NULL }
-};
-static const ber_choice Sm_RP_OA_choice[] = {
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressOA_impl },
- { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_OA_impl },
- { 0, 0, 0, 0, NULL }
+static int
+dissect_gsm_map_CauseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_T_CauseValueCriteria_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CauseValue(FALSE, tvb, offset, actx, tree, hf_gsm_map_T_CauseValueCriteria_item);
+}
+static int dissect_O_CauseValueCriteria_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CauseValue(FALSE, tvb, offset, actx, tree, hf_gsm_map_O_CauseValueCriteria_item);
+}
+
+
+static const ber_sequence_t O_CauseValueCriteria_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_O_CauseValueCriteria_item },
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA);
+dissect_gsm_map_O_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_O_CauseValueCriteria);
return offset;
}
-static int dissect_sm_RP_OA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Sm_RP_OA(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_RP_OA);
+static int dissect_o_CauseValueCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_CauseValueCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_CauseValueCriteria);
}
-static const ber_sequence Mo_forwardSM_Arg_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
+
+static const ber_sequence_t O_BcsmCamelTDP_Criteria_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CauseValueCriteria_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
+dissect_gsm_map_O_BcsmCamelTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_Criteria);
return offset;
}
+static int dissect_O_BcsmCamelTDPCriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmCamelTDP_Criteria(FALSE, tvb, offset, actx, tree, hf_gsm_map_O_BcsmCamelTDPCriteriaList_item);
+}
-static const ber_sequence Mo_forwardSM_Res_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t O_BcsmCamelTDPCriteriaList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDPCriteriaList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
+dissect_gsm_map_O_BcsmCamelTDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDPCriteriaList);
return offset;
}
+static int dissect_o_BcsmCamelTDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmCamelTDPCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList);
+}
+static int dissect_o_BcsmCamelTDPCriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmCamelTDPCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmCamelTDPCriteriaList);
+}
+static int dissect_o_IM_BcsmCamelTDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_O_BcsmCamelTDPCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList);
+}
+
-static const ber_sequence Mt_forwardSM_Arg_sequence[] = {
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
+dissect_gsm_map_MM_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_eventMet_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MM_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_eventMet);
+}
+static int dissect_MobilityTriggers_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MM_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_MobilityTriggers_item);
+}
-static const ber_sequence Mt_forwardSM_Res_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t MobilityTriggers_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_MobilityTriggers_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
+dissect_gsm_map_MobilityTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ MobilityTriggers_sequence_of, hf_index, ett_gsm_map_MobilityTriggers);
return offset;
}
+static int dissect_mobilityTriggers(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MobilityTriggers(FALSE, tvb, offset, actx, tree, hf_gsm_map_mobilityTriggers);
+}
+
+static const ber_sequence_t M_CSI_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
+ { 0, 0, 0, NULL }
+};
static int
-dissect_gsm_map_StoredMSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_gsm_map_Msisdn(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+dissect_gsm_map_M_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ M_CSI_sequence, hf_index, ett_gsm_map_M_CSI);
return offset;
}
-static int dissect_storedMSISDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_StoredMSISDN(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_storedMSISDN);
+static int dissect_m_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_M_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_m_CSI);
}
-static const value_string Sm_DeliveryOutcome_vals[] = {
- { 0, "memoryCapacityExceeded" },
- { 1, "absentSubscriber" },
- { 2, "successfulTransfer" },
+static const value_string gsm_map_SMS_TriggerDetectionPoint_vals[] = {
+ { 1, "sms-CollectedInfo" },
+ { 2, "sms-DeliveryRequest" },
{ 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SMS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_sm_DeliveryOutcome(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Sm_DeliveryOutcome(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_DeliveryOutcome);
+static int dissect_sms_TriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SMS_TriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_sms_TriggerDetectionPoint);
}
-static int dissect_additionalSM_DeliveryOutcome_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Sm_DeliveryOutcome(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_additionalSM_DeliveryOutcome);
+static int dissect_sms_TriggerDetectionPoint_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SMS_TriggerDetectionPoint(TRUE, tvb, offset, actx, tree, hf_gsm_map_sms_TriggerDetectionPoint);
}
-static const ber_sequence ReportSM_DeliveryStatusArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_DeliveryOutcome },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberDiagnosticSM_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deliveryOutcomeIndicator_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSM_DeliveryOutcome_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_DefaultSMS_Handling_vals[] = {
+ { 0, "continueTransaction" },
+ { 1, "releaseTransaction" },
+ { 0, NULL }
};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
+dissect_gsm_map_DefaultSMS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_defaultSMS_Handling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DefaultSMS_Handling(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultSMS_Handling);
+}
-static const ber_sequence ReportSM_DeliveryStatusRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t SMS_CAMEL_TDP_Data_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sms_TriggerDetectionPoint_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
+ { BER_CLASS_CON, 2, 0, dissect_gsmSCF_Address },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSMS_Handling_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
+dissect_gsm_map_SMS_CAMEL_TDP_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_SMS_CAMEL_TDP_Data);
return offset;
}
+static int dissect_SMS_CAMEL_TDP_DataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SMS_CAMEL_TDP_Data(FALSE, tvb, offset, actx, tree, hf_gsm_map_SMS_CAMEL_TDP_DataList_item);
+}
-static const asn_namedbit T_mw_Status_bits[] = {
- { 0, &hf_gsm_map_T_mw_Status_scAddressNotIncluded, -1, -1, NULL, NULL },
- { 1, &hf_gsm_map_T_mw_Status_mnrfSet, -1, -1, NULL, NULL },
- { 2, &hf_gsm_map_T_mw_Status_mcefSet, -1, -1, NULL, NULL },
- { 3, &hf_gsm_map_T_mw_Status_mnrgSet, -1, -1, NULL, NULL },
- { 0, NULL, 0, 0, NULL, NULL }
+
+static const ber_sequence_t SMS_CAMEL_TDP_DataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SMS_CAMEL_TDP_DataList_item },
};
static int
-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_) {
- offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
- T_mw_Status_bits, hf_index, ett_gsm_map_T_mw_Status,
- NULL);
+dissect_gsm_map_SMS_CAMEL_TDP_DataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_SMS_CAMEL_TDP_DataList);
return offset;
}
-static int dissect_mw_Status(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_mw_Status(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mw_Status);
+static int dissect_sms_CAMEL_TDP_DataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SMS_CAMEL_TDP_DataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_sms_CAMEL_TDP_DataList);
}
-static const ber_sequence InformServiceCentreArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
- { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t SMS_CSI_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
+dissect_gsm_map_SMS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SMS_CSI_sequence, hf_index, ett_gsm_map_SMS_CSI);
return offset;
}
+static int dissect_mo_sms_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SMS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_mo_sms_CSI);
+}
+static int dissect_mt_sms_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SMS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_mt_sms_CSI);
+}
-static const ber_sequence AlertServiceCentreArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_T_BcsmTriggerDetectionPoint_vals[] = {
+ { 12, "termAttemptAuthorized" },
+ { 13, "tBusy" },
+ { 14, "tNoAnswer" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
+dissect_gsm_map_T_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_t_BCSM_TriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BcsmTriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_t_BCSM_TriggerDetectionPoint);
+}
+static int dissect_t_BcsmTriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BcsmTriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_t_BcsmTriggerDetectionPoint);
+}
-static const value_string T_alertReason_vals[] = {
- { 0, "msPresent" },
- { 1, "memoryAvailable" },
- { 0, NULL }
+static const ber_sequence_t T_BcsmCamelTDPData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BcsmTriggerDetectionPoint },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_T_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_T_BcsmCamelTDPData);
return offset;
}
-static int dissect_alertReason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_alertReason(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_alertReason);
+static int dissect_T_BcsmCamelTDPDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BcsmCamelTDPData(FALSE, tvb, offset, actx, tree, hf_gsm_map_T_BcsmCamelTDPDataList_item);
}
-static const ber_sequence ReadyForSM_Arg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertReasonIndicator },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t T_BcsmCamelTDPDataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_T_BcsmCamelTDPDataList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
+dissect_gsm_map_T_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_T_BcsmCamelTDPDataList);
return offset;
}
+static int dissect_t_BcsmCamelTDPDataList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BcsmCamelTDPDataList(FALSE, tvb, offset, actx, tree, hf_gsm_map_t_BcsmCamelTDPDataList);
+}
+
-static const ber_sequence ReadyForSM_Res_sequence[] = {
+static const ber_sequence_t T_CSI_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
+dissect_gsm_map_T_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ T_CSI_sequence, hf_index, ett_gsm_map_T_CSI);
return offset;
}
+static int dissect_vt_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_CSI);
+}
+static int dissect_t_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_t_CSI);
+}
+static int dissect_vt_IM_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_IM_CSI);
+}
-static const ber_sequence RequestedInfo_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationFlag_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStateFlag_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t T_CauseValueCriteria_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_T_CauseValueCriteria_item },
};
static int
-dissect_gsm_map_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
+dissect_gsm_map_T_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_T_CauseValueCriteria);
return offset;
}
-static int dissect_requestedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_requestedInfo);
+static int dissect_t_CauseValueCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_CauseValueCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_t_CauseValueCriteria);
}
-static const ber_sequence ProvideSubscriberInfoArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t T_BCSM_CAMEL_TDP_Criteria_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
+dissect_gsm_map_T_BCSM_CAMEL_TDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria);
return offset;
}
+static int dissect_T_BCSM_CAMEL_TDP_CriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BCSM_CAMEL_TDP_Criteria(FALSE, tvb, offset, actx, tree, hf_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList_item);
+}
-static const ber_sequence ProvideSubscriberInfoRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_T_BCSM_CAMEL_TDP_CriteriaList_item },
};
static int
-dissect_gsm_map_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
+dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList);
return offset;
}
+static int dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList);
+}
+static int dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList);
+}
+static int dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList);
+}
-static const value_string T_subscriberIdentity_vals[] = {
- { 0, "imsi" },
- { 1, "msisdn" },
- { 0, NULL }
-};
-
-static const ber_choice T_subscriberIdentity_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { 0, 0, 0, 0, NULL }
+static const ber_sequence_t DP_AnalysedInfoCriterium_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dialledNumber },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_defaultCallHandling },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- T_subscriberIdentity_choice, hf_index, ett_gsm_map_T_subscriberIdentity);
+dissect_gsm_map_DP_AnalysedInfoCriterium(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_DP_AnalysedInfoCriterium);
return offset;
}
-static int dissect_subscriberIdentity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_subscriberIdentity(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_subscriberIdentity);
+static int dissect_DP_AnalysedInfoCriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DP_AnalysedInfoCriterium(FALSE, tvb, offset, actx, tree, hf_gsm_map_DP_AnalysedInfoCriteriaList_item);
}
-static const ber_sequence AnyTimeInterrogationArg_sequence[] = {
- { BER_CLASS_CON, 0, 0, dissect_subscriberIdentity },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t DP_AnalysedInfoCriteriaList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_DP_AnalysedInfoCriteriaList_item },
};
static int
-dissect_gsm_map_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
+dissect_gsm_map_DP_AnalysedInfoCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_DP_AnalysedInfoCriteriaList);
return offset;
}
+static int dissect_dp_AnalysedInfoCriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DP_AnalysedInfoCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_dp_AnalysedInfoCriteriaList);
+}
-static const ber_sequence AnyTimeInterrogationRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t D_CSI_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
+dissect_gsm_map_D_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ D_CSI_sequence, hf_index, ett_gsm_map_D_CSI);
return offset;
}
+static int dissect_d_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_D_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_d_CSI);
+}
+static int dissect_d_csi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_D_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_d_csi);
+}
+static int dissect_d_IM_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_D_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_d_IM_CSI);
+}
+
-static const ber_sequence SEQUNCE_OF_OCTET_STRING_SIZE_1_20_sequence_of[1] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_EventSpecification_item },
+static const value_string gsm_map_MT_SMS_TPDU_Type_vals[] = {
+ { 0, "sms-DELIVER" },
+ { 1, "sms-SUBMIT-REPORT" },
+ { 2, "sms-STATUS-REPORT" },
+ { 0, NULL }
};
+
static int
-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_) {
- offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
- SEQUNCE_OF_OCTET_STRING_SIZE_1_20_sequence_of, hf_index, ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20);
+dissect_gsm_map_MT_SMS_TPDU_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ss_EventSpecification_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ss_EventSpecification);
+static int dissect_TPDU_TypeCriterion_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MT_SMS_TPDU_Type(FALSE, tvb, offset, actx, tree, hf_gsm_map_TPDU_TypeCriterion_item);
}
-static const ber_sequence Ss_InvocationNotificationArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ss_Event_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_EventSpecification_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t TPDU_TypeCriterion_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_TPDU_TypeCriterion_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
+dissect_gsm_map_TPDU_TypeCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_TPDU_TypeCriterion);
return offset;
}
+static int dissect_tpdu_TypeCriterion_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TPDU_TypeCriterion(TRUE, tvb, offset, actx, tree, hf_gsm_map_tpdu_TypeCriterion);
+}
-static const ber_sequence Ss_InvocationNotificationRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t MT_smsCAMELTDP_Criteria_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sms_TriggerDetectionPoint },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tpdu_TypeCriterion_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
+dissect_gsm_map_MT_smsCAMELTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_MT_smsCAMELTDP_Criteria);
return offset;
}
+static int dissect_MT_smsCAMELTDP_CriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MT_smsCAMELTDP_Criteria(FALSE, tvb, offset, actx, tree, hf_gsm_map_MT_smsCAMELTDP_CriteriaList_item);
+}
+
+static const ber_sequence_t MT_smsCAMELTDP_CriteriaList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_MT_smsCAMELTDP_CriteriaList_item },
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_MT_smsCAMELTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_MT_smsCAMELTDP_CriteriaList);
return offset;
}
-static int dissect_codec_Info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_5_10(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_codec_Info);
+static int dissect_mt_smsCAMELTDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MT_smsCAMELTDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList);
}
-static const ber_sequence PrepareGroupCallArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_teleservice },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_codec_Info },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cipheringAlgorithm },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKeyNumber_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKey_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkFree_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t VlrCamelSubscriptionInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_m_CSI_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_CSI_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_CSI_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
+dissect_gsm_map_VlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_VlrCamelSubscriptionInfo);
return offset;
}
+static int dissect_vlrCamelSubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VlrCamelSubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlrCamelSubscriptionInfo);
+}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_NAEA_CIC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_groupCallNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_groupCallNumber(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_groupCallNumber);
+static int dissect_naea_PreferredCIC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NAEA_CIC(TRUE, tvb, offset, actx, tree, hf_gsm_map_naea_PreferredCIC);
}
-static const ber_sequence PrepareGroupCallRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t NAEA_PreferredCI_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
+dissect_gsm_map_NAEA_PreferredCI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI);
return offset;
}
+static int dissect_naea_PreferredCI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NAEA_PreferredCI(TRUE, tvb, offset, actx, tree, hf_gsm_map_naea_PreferredCI);
+}
+
-static const ber_sequence SendGroupCallEndSignalArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
+dissect_gsm_map_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_pdp_ContextId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ContextId(FALSE, tvb, offset, actx, tree, hf_gsm_map_pdp_ContextId);
+}
+static int dissect_ContextIdList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ContextId(FALSE, tvb, offset, actx, tree, hf_gsm_map_ContextIdList_item);
+}
+static int dissect_pdp_ContextIdentifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ContextId(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_ContextIdentifier);
+}
+
-static const ber_sequence SendGroupCallEndSignalRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
+dissect_gsm_map_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 550 "gsmmap.cnf"
+ guint8 pdp_type_org;
+ tvbuff_t *parameter_tvb;
- return offset;
-}
-static const ber_sequence ProcessGroupCallSignallingArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseGroupCall_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+ proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE);
+ pdp_type_org = tvb_get_guint8(parameter_tvb,1);
+ switch (pdp_type_org){
+ case 0: /* ETSI */
+ proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE);
+ break;
+ case 1: /* IETF */
+ proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE);
+ break;
+ default:
+ break;
+ }
+
-static int
-dissect_gsm_map_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
return offset;
}
+static int dissect_pdp_Type_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PDP_Type(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_Type);
+}
+
-static const ber_sequence ForwardGroupCallSignallingArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRejectCommand_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkSeizedCommand_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseCommand_impl },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
+dissect_gsm_map_PDP_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_pdp_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PDP_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_Address);
+}
+
+
+
+int
+dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 576 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+ de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
return offset;
}
-static int dissect_sgsn_Address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_5_17(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
-}
-static int dissect_sgsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_OCTET_STRING_SIZE_5_17(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Address);
+static int dissect_qos_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos_Subscribed);
}
-static const ber_sequence T_sgsn_Capability_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_sgsn_Capability_sequence, hf_index, ett_gsm_map_T_sgsn_Capability);
+dissect_gsm_map_APN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_sgsn_Capability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_sgsn_Capability(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_sgsn_Capability);
+static int dissect_apn_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_apn);
+}
+static int dissect_apn_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_apn_Subscribed);
+}
+static int dissect_apn_InUse_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_apn_InUse);
+}
+static int dissect_lcsAPN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsAPN);
}
-static const ber_sequence UpdateGprsLocationArg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Address },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Capability_impl },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
- return offset;
-}
-static const ber_sequence UpdateGprsLocationRes_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
+int
+dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 590 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree);
+
-static int
-dissect_gsm_map_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
return offset;
}
+static int dissect_ext_QoS_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_QoS_Subscribed);
+}
+static int dissect_ext_qos_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_qos_Subscribed);
+}
+static int dissect_qos_Requested_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos_Requested);
+}
+static int dissect_qos_Negotiated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos_Negotiated);
+}
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ggsn_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ggsn_Address(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Address);
+static int dissect_chargingCharacteristics_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChargingCharacteristics(TRUE, tvb, offset, actx, tree, hf_gsm_map_chargingCharacteristics);
+}
+static int dissect_pdp_ChargingCharacteristics_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ChargingCharacteristics(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_ChargingCharacteristics);
}
-static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+
+int
+dissect_gsm_map_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_ggsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Ggsn_Number(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_ggsn_Number);
+static int dissect_ext2_QoS_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext2_QoS_Subscribed);
+}
+static int dissect_qos2_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos2_Subscribed);
+}
+static int dissect_qos2_Requested_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos2_Requested);
+}
+static int dissect_qos2_Negotiated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos2_Negotiated);
}
-static const ber_sequence SendRoutingInfoForGprsArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t PDP_Context_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId },
+ { BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vplmnAddressAllowed_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_apn_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_QoS_Subscribed_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ChargingCharacteristics_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext2_QoS_Subscribed_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
+dissect_gsm_map_PDP_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PDP_Context_sequence, hf_index, ett_gsm_map_PDP_Context);
return offset;
}
+static int dissect_GPRSDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PDP_Context(FALSE, tvb, offset, actx, tree, hf_gsm_map_GPRSDataList_item);
+}
-static const ber_sequence SendRoutingInfoForGprsRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mobileNotReachableReason_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t GPRSDataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GPRSDataList_item },
};
static int
-dissect_gsm_map_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
+dissect_gsm_map_GPRSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ GPRSDataList_sequence_of, hf_index, ett_gsm_map_GPRSDataList);
return offset;
}
+static int dissect_gprsDataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRSDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsDataList);
+}
-static const ber_sequence FailureReportArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t GPRSSubscriptionData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
+dissect_gsm_map_GPRSSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_GPRSSubscriptionData);
return offset;
}
+static int dissect_gprsSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRSSubscriptionData(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsSubscriptionData);
+}
-static const ber_sequence FailureReportRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_NetworkAccessMode_vals[] = {
+ { 0, "bothMSCAndSGSN" },
+ { 1, "onlyMSC" },
+ { 2, "onlySGSN" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
+dissect_gsm_map_NetworkAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_networkAccessMode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NetworkAccessMode(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkAccessMode);
+}
-static const ber_sequence NoteMsPresentForGprsArg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_LSAOnlyAccessIndicator_vals[] = {
+ { 0, "accessOutsideLSAsAllowed" },
+ { 1, "accessOutsideLSAsRestricted" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
+dissect_gsm_map_LSAOnlyAccessIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_lsaOnlyAccessIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAOnlyAccessIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaOnlyAccessIndicator);
+}
-static const ber_sequence NoteMsPresentForGprsRes_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_gsm_map_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
+
+int
+dissect_gsm_map_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_lsaIdentity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaIdentity);
+}
+static int dissect_LSAIdentityList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_LSAIdentityList_item);
+}
+static int dissect_selectedLSA_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedLSA_Id);
+}
+static int dissect_selectedLSAIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_selectedLSAIdentity);
+}
-static const value_string LcsClientType_vals[] = {
- { 0, "emergencyServices" },
- { 1, "valueAddedServices" },
- { 2, "plmnOperatorServices" },
- { 3, "lawfulInterceptServices" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_LcsClientType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_LSAAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_lcsClientType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LcsClientType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientType);
+static int dissect_lsaAttributes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAAttributes(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaAttributes);
}
-static const ber_sequence LcsClientExternalID_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t LSAData_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaActiveModeIndicator_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_LcsClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- LcsClientExternalID_sequence, hf_index, ett_gsm_map_LcsClientExternalID);
+dissect_gsm_map_LSAData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LSAData_sequence, hf_index, ett_gsm_map_LSAData);
return offset;
}
-static int dissect_lcsClientExternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LcsClientExternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientExternalID);
+static int dissect_LSADataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAData(FALSE, tvb, offset, actx, tree, hf_gsm_map_LSADataList_item);
}
-static const value_string LcsClientInternalID_vals[] = {
- { 0, "broadcastService" },
- { 1, "o-andM-HPLMN" },
- { 2, "o-andM-VPLMN" },
- { 3, "anonymousLocation" },
- { 4, "targetMSsubscribedService" },
- { 0, NULL }
+static const ber_sequence_t LSADataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_LSADataList_item },
};
-
static int
-dissect_gsm_map_LcsClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_LSADataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ LSADataList_sequence_of, hf_index, ett_gsm_map_LSADataList);
return offset;
}
-static int dissect_lcsClientInternalID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LcsClientInternalID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientInternalID);
+static int dissect_lsaDataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSADataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaDataList);
}
-static const ber_sequence LcsClientName_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl },
+
+static const ber_sequence_t LSAInformation_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaDataList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_LcsClientName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- LcsClientName_sequence, hf_index, ett_gsm_map_LcsClientName);
+dissect_gsm_map_LSAInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LSAInformation_sequence, hf_index, ett_gsm_map_LSAInformation);
return offset;
}
-static int dissect_lcsClientName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LcsClientName(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsClientName);
+static int dissect_lsaInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaInformation);
}
-static const ber_sequence Lcs_ClientID_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientDialedByMS_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientInternalID_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientName_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t GMLC_List_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_GMLC_List_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Lcs_ClientID_sequence, hf_index, ett_gsm_map_Lcs_ClientID);
+dissect_gsm_map_GMLC_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ GMLC_List_sequence_of, hf_index, ett_gsm_map_GMLC_List);
return offset;
}
-static int dissect_lcs_ClientID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Lcs_ClientID(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
-}
-static int dissect_lcs_ClientID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Lcs_ClientID(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_ClientID);
+static int dissect_gmlc_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GMLC_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmlc_List);
}
-static const value_string Lcs_Event_vals[] = {
- { 0, "emergencyCallOrigination" },
- { 1, "emergencyCallRelease" },
- { 2, "mo-lr" },
+const value_string gsm_map_NotificationToMSUser_vals[] = {
+ { 0, "notifyLocationAllowed" },
+ { 1, "notifyAndVerify-LocationAllowedIfNoResponse" },
+ { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" },
+ { 3, "locationNotAllowed" },
{ 0, NULL }
};
-static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+int
+dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_lcs_Event(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Lcs_Event(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_Event);
+static int dissect_notificationToMSUser_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, actx, tree, hf_gsm_map_notificationToMSUser);
}
-static const ber_sequence LcsLocationInfo_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msc_Number },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+
+static const ber_sequence_t LCSClientExternalID_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl },
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
-static int
-dissect_gsm_map_LcsLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- LcsLocationInfo_sequence, hf_index, ett_gsm_map_LcsLocationInfo);
+int
+dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID);
return offset;
}
-static int dissect_lcsLocationInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LcsLocationInfo(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
+static int dissect_clientIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSClientExternalID(FALSE, tvb, offset, actx, tree, hf_gsm_map_clientIdentity);
}
-static int dissect_lcsLocationInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_LcsLocationInfo(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcsLocationInfo);
+static int dissect_lcsClientExternalID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSClientExternalID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientExternalID);
}
-static const value_string T_locationEstimateType_vals[] = {
- { 0, "currentLocation" },
- { 1, "currentOrLastKnownLocation" },
- { 2, "initialLocation" },
+static const value_string gsm_map_GMLC_Restriction_vals[] = {
+ { 0, "gmlc-List" },
+ { 1, "home-Country" },
{ 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_GMLC_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_locationEstimateType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_locationEstimateType(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_locationEstimateType);
+static int dissect_gmlc_Restriction_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GMLC_Restriction(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmlc_Restriction);
}
-static const ber_sequence T_locationType_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl },
+
+static const ber_sequence_t ExternalClient_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_locationType_sequence, hf_index, ett_gsm_map_T_locationType);
+dissect_gsm_map_ExternalClient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ExternalClient_sequence, hf_index, ett_gsm_map_ExternalClient);
return offset;
}
-static int dissect_locationType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_locationType(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_locationType);
+static int dissect_ExternalClientList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalClient(FALSE, tvb, offset, actx, tree, hf_gsm_map_ExternalClientList_item);
}
+static int dissect_Ext_ExternalClientList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalClient(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_ExternalClientList_item);
+}
+
+static const ber_sequence_t ExternalClientList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ExternalClientList_item },
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ ExternalClientList_sequence_of, hf_index, ett_gsm_map_ExternalClientList);
return offset;
}
-static int dissect_mlc_Number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_mlc_Number(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_mlc_Number);
+static int dissect_externalClientList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalClientList(TRUE, tvb, offset, actx, tree, hf_gsm_map_externalClientList);
}
-static const value_string T_responseTimeCategory_vals[] = {
- { 0, "lowdelay" },
- { 1, "delaytolerant" },
+static const value_string gsm_map_LCSClientInternalID_vals[] = {
+ { 0, "broadcastService" },
+ { 1, "o-andM-HPLMN" },
+ { 2, "o-andM-VPLMN" },
+ { 3, "anonymousLocation" },
+ { 4, "targetMSsubscribedService" },
{ 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_LCSClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_responseTimeCategory(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_responseTimeCategory(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_responseTimeCategory);
+static int dissect_PLMNClientList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSClientInternalID(FALSE, tvb, offset, actx, tree, hf_gsm_map_PLMNClientList_item);
+}
+static int dissect_lcsClientInternalID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSClientInternalID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientInternalID);
}
-static const ber_sequence T_responseTime_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t PLMNClientList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_PLMNClientList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_responseTime_sequence, hf_index, ett_gsm_map_T_responseTime);
+dissect_gsm_map_PLMNClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ PLMNClientList_sequence_of, hf_index, ett_gsm_map_PLMNClientList);
return offset;
}
-static int dissect_responseTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_responseTime(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_responseTime);
+static int dissect_plmnClientList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PLMNClientList(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmnClientList);
}
-static const ber_sequence T_lcs_QoS_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vertical_accuracy_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseTime_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t Ext_ExternalClientList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Ext_ExternalClientList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_lcs_QoS_sequence, hf_index, ett_gsm_map_T_lcs_QoS);
+dissect_gsm_map_Ext_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_Ext_ExternalClientList);
return offset;
}
-static int dissect_lcs_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_lcs_QoS(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_lcs_QoS);
+static int dissect_ext_externalClientList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ExternalClientList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_externalClientList);
}
-static const ber_sequence ProvideSubscriberLocation_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ClientID_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privacyOverride_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_Priority_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_QoS_impl },
- { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
-static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
+
+int
+dissect_gsm_map_LCSServiceTypeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_serviceTypeIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSServiceTypeID(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceTypeIdentity);
+}
+static int dissect_lcsServiceTypeID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSServiceTypeID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsServiceTypeID);
+}
-static const ber_sequence ProvideSubscriberLocation_Res_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t ServiceType_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceTypeIdentity },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
+dissect_gsm_map_ServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ServiceType_sequence, hf_index, ett_gsm_map_ServiceType);
return offset;
}
+static int dissect_ServiceTypeList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceType(FALSE, tvb, offset, actx, tree, hf_gsm_map_ServiceTypeList_item);
+}
-static const value_string TargetMS_vals[] = {
- { 0, "imsi" },
- { 1, "msisdn" },
- { 0, NULL }
-};
-
-static const ber_choice TargetMS_choice[] = {
- { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { 0, 0, 0, 0, NULL }
+static const ber_sequence_t ServiceTypeList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ServiceTypeList_item },
};
static int
-dissect_gsm_map_TargetMS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- TargetMS_choice, hf_index, ett_gsm_map_TargetMS);
+dissect_gsm_map_ServiceTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ServiceTypeList);
return offset;
}
-static int dissect_targetMS(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_TargetMS(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_targetMS);
+static int dissect_serviceTypeList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceTypeList(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceTypeList);
}
+static const ber_sequence_t LCS_PrivacyClass_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_ss_Status },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalClientList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmnClientList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_externalClientList_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceTypeList_impl },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_LCS_PrivacyClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_LCS_PrivacyClass);
return offset;
}
-static int dissect_mlcNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_mlcNumber(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_mlcNumber);
+static int dissect_LCS_PrivacyExceptionList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_PrivacyClass(FALSE, tvb, offset, actx, tree, hf_gsm_map_LCS_PrivacyExceptionList_item);
}
-static const ber_sequence RoutingInfoForLCS_Arg_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t LCS_PrivacyExceptionList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_LCS_PrivacyExceptionList_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
+dissect_gsm_map_LCS_PrivacyExceptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_LCS_PrivacyExceptionList);
return offset;
}
+static int dissect_lcs_PrivacyExceptionList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_PrivacyExceptionList(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_PrivacyExceptionList);
+}
+static int dissect_add_lcs_PrivacyExceptionList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_PrivacyExceptionList(FALSE, tvb, offset, actx, tree, hf_gsm_map_add_lcs_PrivacyExceptionList);
+}
-static const ber_sequence RoutingInfoForLCS_Res_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
- { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsLocationInfo_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t MOLR_Class_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_ss_Status },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
+dissect_gsm_map_MOLR_Class(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MOLR_Class_sequence, hf_index, ett_gsm_map_MOLR_Class);
return offset;
}
+static int dissect_MOLR_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MOLR_Class(FALSE, tvb, offset, actx, tree, hf_gsm_map_MOLR_List_item);
+}
+
+static const ber_sequence_t MOLR_List_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_MOLR_List_item },
+};
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_MOLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ MOLR_List_sequence_of, hf_index, ett_gsm_map_MOLR_List);
return offset;
}
-static int dissect_na_ESRD_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_na_ESRD(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRD);
+static int dissect_molr_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MOLR_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_molr_List);
}
+static const ber_sequence_t LCSInformation_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_molr_List_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_add_lcs_PrivacyExceptionList },
+ { 0, 0, 0, NULL }
+};
+
static int
-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_) {
- offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
- NULL);
+dissect_gsm_map_LCSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCSInformation_sequence, hf_index, ett_gsm_map_LCSInformation);
return offset;
}
-static int dissect_na_ESRK_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_na_ESRK(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_na_ESRK);
+static int dissect_lcsInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsInformation);
}
-static const ber_sequence SubscriberLocationReport_Arg_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcsLocationInfo },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
- { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
- { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl },
- { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationEstimate_impl },
- { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
- { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
- { 0, 0, 0, NULL }
-};
+
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
+dissect_gsm_map_IST_AlertTimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_istAlertTimer_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IST_AlertTimerValue(TRUE, tvb, offset, actx, tree, hf_gsm_map_istAlertTimer);
+}
+
-static const ber_sequence SubscriberLocationReport_Res_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
+dissect_gsm_map_MaxMC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_nbrSB_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MaxMC_Bearers(TRUE, tvb, offset, actx, tree, hf_gsm_map_nbrSB);
+}
-static const value_string NetworkResource_vals[] = {
- { 0, "plmn" },
- { 1, "hlr" },
- { 2, "vlr" },
- { 3, "pvlr" },
- { 4, "controllingMSC" },
- { 5, "vmsc" },
- { 6, "eir" },
- { 7, "rss" },
- { 0, NULL }
-};
-
static int
-dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_MC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_networkResource(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_networkResource);
+static int dissect_nbrUser_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MC_Bearers(TRUE, tvb, offset, actx, tree, hf_gsm_map_nbrUser);
+}
+static int dissect_nbrSN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MC_Bearers(TRUE, tvb, offset, actx, tree, hf_gsm_map_nbrSN);
}
-static const ber_sequence T_extensibleSystemFailureParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t MC_SS_Info_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nbrSB_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_nbrUser_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_extensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_T_extensibleSystemFailureParam);
+dissect_gsm_map_MC_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info);
return offset;
}
-static int dissect_extensibleSystemFailureParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_extensibleSystemFailureParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleSystemFailureParam);
+static int dissect_mc_SS_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MC_SS_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_mc_SS_Info);
}
-static const value_string SystemFailureParam_vals[] = {
- { 0, "networkResource" },
- { 1, "extensibleSystemFailureParam" },
- { 0, NULL }
-};
-
-static const ber_choice SystemFailureParam_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_networkResource },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleSystemFailureParam },
- { 0, 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam);
+dissect_gsm_map_CS_AllocationRetentionPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_cs_AllocationRetentionPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CS_AllocationRetentionPriority(TRUE, tvb, offset, actx, tree, hf_gsm_map_cs_AllocationRetentionPriority);
+}
-static const ber_sequence DataMissingParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_GPRS_TriggerDetectionPoint_vals[] = {
+ { 1, "attach" },
+ { 2, "attachChangeOfPosition" },
+ { 11, "pdp-ContextEstablishment" },
+ { 12, "pdp-ContextEstablishmentAcknowledgement" },
+ { 14, "pdp-ContextChangeOfPosition" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
+dissect_gsm_map_GPRS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_gprs_TriggerDetectionPoint_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRS_TriggerDetectionPoint(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_TriggerDetectionPoint);
+}
-static const ber_sequence UnexpectedDataParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_DefaultGPRS_Handling_vals[] = {
+ { 0, "continueTransaction" },
+ { 1, "releaseTransaction" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
+dissect_gsm_map_DefaultGPRS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_defaultSessionHandling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DefaultGPRS_Handling(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultSessionHandling);
+}
-static const ber_sequence FacilityNotSupParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t GPRS_CamelTDPData_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprs_TriggerDetectionPoint_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSessionHandling_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
+dissect_gsm_map_GPRS_CamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_GPRS_CamelTDPData);
return offset;
}
+static int dissect_GPRS_CamelTDPDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRS_CamelTDPData(FALSE, tvb, offset, actx, tree, hf_gsm_map_GPRS_CamelTDPDataList_item);
+}
-static const ber_sequence IncompatibleTerminalParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t GPRS_CamelTDPDataList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GPRS_CamelTDPDataList_item },
};
static int
-dissect_gsm_map_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
+dissect_gsm_map_GPRS_CamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_GPRS_CamelTDPDataList);
return offset;
}
+static int dissect_gprs_CamelTDPDataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRS_CamelTDPDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_CamelTDPDataList);
+}
-static const ber_sequence ResourceLimitationParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t GPRS_CSI_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CamelTDPDataList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
+dissect_gsm_map_GPRS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GPRS_CSI_sequence, hf_index, ett_gsm_map_GPRS_CSI);
return offset;
}
+static int dissect_gprs_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_CSI);
+}
-static const value_string T_unknownSubscriberDiagnostic_vals[] = {
- { 0, "imsiUnknown" },
- { 1, "gprsSubscriptionUnknown" },
- { 0, NULL }
+static const ber_sequence_t MG_CSI_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl },
+ { 0, 0, 0, NULL }
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_MG_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MG_CSI_sequence, hf_index, ett_gsm_map_MG_CSI);
return offset;
}
-static int dissect_unknownSubscriberDiagnostic(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_unknownSubscriberDiagnostic(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_unknownSubscriberDiagnostic);
+static int dissect_mg_csi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MG_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_mg_csi);
}
-static const ber_sequence UnknownSubscriberParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic },
+
+static const ber_sequence_t SGSN_CAMEL_SubscriptionInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mg_csi_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
+dissect_gsm_map_SGSN_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_SGSN_CAMEL_SubscriptionInfo);
return offset;
}
+static int dissect_sgsn_CAMEL_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SGSN_CAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_CAMEL_SubscriptionInfo);
+}
-static const ber_sequence NumberChangedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit AccessRestrictionData_bits[] = {
+ { 0, &hf_gsm_map_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL },
+ { 1, &hf_gsm_map_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-dissect_gsm_map_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
+dissect_gsm_map_AccessRestrictionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ AccessRestrictionData_bits, hf_index, ett_gsm_map_AccessRestrictionData,
+ NULL);
return offset;
}
+static int dissect_accessRestrictionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AccessRestrictionData(TRUE, tvb, offset, actx, tree, hf_gsm_map_accessRestrictionData);
+}
-static const ber_sequence UnidentifiedSubParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t InsertSubscriberDataArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStatus_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerserviceList_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provisionedSS_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Data_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionData_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsSubscriptionData_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsSubscriptionData_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlrCamelSubscriptionInfo_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSubscriptionData_impl },
+ { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl },
+ { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkAccessMode_impl },
+ { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaInformation_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmu_Indicator_impl },
+ { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsInformation_impl },
+ { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl },
+ { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_superChargerSupportedInHLR_impl },
+ { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mc_SS_Info_impl },
+ { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cs_AllocationRetentionPriority_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_CAMEL_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessRestrictionData_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
+dissect_gsm_map_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg);
return offset;
}
-static const value_string T_roamingNotAllowedCause_vals[] = {
- { 0, "plmnRoamingNotAllowed" },
- { 3, "operatorDeterminedBarring" },
- { 0, NULL }
+static const ber_sequence_t SS_List_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_SS_List_item },
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SS_List_sequence_of, hf_index, ett_gsm_map_SS_List);
return offset;
}
-static int dissect_roamingNotAllowedCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_roamingNotAllowedCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_roamingNotAllowedCause);
+static int dissect_ss_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_List);
+}
+static int dissect_ss_List2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_List2);
}
-static const ber_sequence RoamingNotAllowedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const value_string gsm_map_RegionalSubscriptionResponse_vals[] = {
+ { 0, "networkNodeAreaRestricted" },
+ { 1, "tooManyZoneCodes" },
+ { 2, "zoneCodesConflict" },
+ { 3, "regionalSubscNotSupported" },
+ { 0, NULL }
};
+
static int
-dissect_gsm_map_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
+dissect_gsm_map_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_regionalSubscriptionResponse_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, actx, tree, hf_gsm_map_regionalSubscriptionResponse);
+}
-static const ber_sequence IllegalSubscriberParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t InsertSubscriberDataRes_sequence[] = {
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_GeneralData_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
+dissect_gsm_map_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes);
return offset;
}
-static const ber_sequence IllegalEquipmentParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t BasicServiceList_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceList_item },
};
static int
-dissect_gsm_map_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
+dissect_gsm_map_BasicServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ BasicServiceList_sequence_of, hf_index, ett_gsm_map_BasicServiceList);
return offset;
}
+static int dissect_basicServiceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BasicServiceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceList);
+}
-static const ber_sequence BearerServNotProvParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t ContextIdList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ContextIdList_item },
};
static int
-dissect_gsm_map_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
+dissect_gsm_map_ContextIdList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ ContextIdList_sequence_of, hf_index, ett_gsm_map_ContextIdList);
return offset;
}
+static int dissect_contextIdList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ContextIdList(FALSE, tvb, offset, actx, tree, hf_gsm_map_contextIdList);
+}
-static const ber_sequence TeleservNotProvParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
-
-static int
-dissect_gsm_map_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
- return offset;
-}
+static const value_string gsm_map_GPRSSubscriptionDataWithdraw_vals[] = {
+ { 0, "allGPRSData" },
+ { 1, "contextIdList" },
+ { 0, NULL }
+};
-static const ber_sequence TracingBufferFullParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+static const ber_choice_t GPRSSubscriptionDataWithdraw_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allGPRSData },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextIdList },
+ { 0, 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
+dissect_gsm_map_GPRSSubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_GPRSSubscriptionDataWithdraw,
+ NULL);
return offset;
}
+static int dissect_gprsSubscriptionDataWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRSSubscriptionDataWithdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsSubscriptionDataWithdraw);
+}
-static const ber_sequence NoRoamingNbParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t LSAIdentityList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_LSAIdentityList_item },
};
static int
-dissect_gsm_map_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
+dissect_gsm_map_LSAIdentityList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ LSAIdentityList_sequence_of, hf_index, ett_gsm_map_LSAIdentityList);
return offset;
}
+static int dissect_lsaIdentityList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAIdentityList(FALSE, tvb, offset, actx, tree, hf_gsm_map_lsaIdentityList);
+}
-static const value_string T_absentSubscriberReason_vals[] = {
- { 0, "imsiDetach" },
- { 1, "restrictedArea" },
- { 2, "noPageResponse" },
+static const value_string gsm_map_LSAInformationWithdraw_vals[] = {
+ { 0, "allLSAData" },
+ { 1, "lsaIdentityList" },
{ 0, NULL }
};
+static const ber_choice_t LSAInformationWithdraw_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allLSAData },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList },
+ { 0, 0, 0, 0, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_LSAInformationWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ LSAInformationWithdraw_choice, hf_index, ett_gsm_map_LSAInformationWithdraw,
+ NULL);
return offset;
}
-static int dissect_absentSubscriberReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_absentSubscriberReason(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_absentSubscriberReason);
+static int dissect_lsaInformationWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LSAInformationWithdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaInformationWithdraw);
}
-static const ber_sequence AbsentSubscriberParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit SpecificCSI_Withdraw_bits[] = {
+ { 0, &hf_gsm_map_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL },
+ { 1, &hf_gsm_map_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL },
+ { 2, &hf_gsm_map_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL },
+ { 3, &hf_gsm_map_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL },
+ { 4, &hf_gsm_map_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL },
+ { 5, &hf_gsm_map_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL },
+ { 6, &hf_gsm_map_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL },
+ { 7, &hf_gsm_map_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL },
+ { 8, &hf_gsm_map_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL },
+ { 9, &hf_gsm_map_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL },
+ { 10, &hf_gsm_map_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL },
+ { 11, &hf_gsm_map_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL },
+ { 12, &hf_gsm_map_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL },
+ { 13, &hf_gsm_map_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-dissect_gsm_map_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
+dissect_gsm_map_SpecificCSI_Withdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_SpecificCSI_Withdraw,
+ NULL);
return offset;
}
+static int dissect_specificCSI_Withdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SpecificCSI_Withdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_specificCSI_Withdraw);
+}
+static int dissect_specificCSIDeletedList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SpecificCSI_Withdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_specificCSIDeletedList);
+}
-static const ber_sequence BusySubscriberParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Busy_impl },
+
+static const ber_sequence_t DeleteSubscriberDataArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionIdentifier_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsGroupIndication_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsGroupIndication_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelSubscriptionInfoWithdraw_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprsSubscriptionDataWithdraw_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_lsaInformationWithdraw_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_ListWithdraw_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_istInformationWithdraw },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_specificCSI_Withdraw_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristicsWithdraw_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
+dissect_gsm_map_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg);
return offset;
}
-static const ber_sequence NoSubscriberReplyParam_sequence[] = {
+
+static const ber_sequence_t DeleteSubscriberDataRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
+dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes);
return offset;
}
-static const value_string CallBarringCause_vals[] = {
- { 0, "barringServiceActive" },
- { 1, "operatorBarring" },
- { 0, NULL }
-};
+
+int
+dissect_gsm_map_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 301 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ octet = tvb_get_guint8(parameter_tvb,0);
+
+ proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet);
+ if ((octet & 0x01)== 1)
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet);
+
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet);
+ proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet);
+
-static int
-dissect_gsm_map_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
return offset;
}
-static int dissect_callBarringCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_callBarringCause);
+static int dissect_ss_Status(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Status);
+}
+static int dissect_ss_Status_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Status(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Status);
}
-static const ber_sequence T_extensibleCallBarredParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl },
+
+static const ber_sequence_t CallBarringFeature_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- T_extensibleCallBarredParam_sequence, hf_index, ett_gsm_map_T_extensibleCallBarredParam);
+dissect_gsm_map_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallBarringFeature_sequence, hf_index, ett_gsm_map_CallBarringFeature);
return offset;
}
-static int dissect_extensibleCallBarredParam(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_extensibleCallBarredParam(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_extensibleCallBarredParam);
+static int dissect_CallBarringFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallBarringFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_CallBarringFeatureList_item);
}
-static const value_string CallBarredParam_vals[] = {
- { 0, "callBarringCause" },
- { 1, "extensibleCallBarredParam" },
- { 0, NULL }
-};
-
-static const ber_choice CallBarredParam_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleCallBarredParam },
- { 0, 0, 0, 0, NULL }
+static const ber_sequence_t CallBarringFeatureList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CallBarringFeatureList_item },
};
static int
-dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam);
+dissect_gsm_map_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_CallBarringFeatureList);
return offset;
}
+static int dissect_callBarringFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallBarringFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_callBarringFeatureList);
+}
+
-static const ber_sequence ForwardingFailedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
+dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+#line 533 "gsmmap.cnf"
+
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE);
return offset;
}
+static int dissect_forwardingOptions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingOptions(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingOptions);
+}
+
-static const ber_sequence Or_NotAllowedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
+dissect_gsm_map_NoReplyConditionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_noReplyConditionTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NoReplyConditionTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_noReplyConditionTime);
+}
-static const ber_sequence ForwardingViolationParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t ForwardingFeature_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
+dissect_gsm_map_ForwardingFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardingFeature_sequence, hf_index, ett_gsm_map_ForwardingFeature);
return offset;
}
+static int dissect_ForwardingFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_ForwardingFeatureList_item);
+}
-static const value_string T_cug_RejectCause_vals[] = {
- { 0, "incomingCallsBarredWithinCUG" },
- { 1, "subscriberNotMemberOfCUG" },
- { 5, "requestedBasicServiceViolatesCUG-Constraints" },
- { 7, "calledPartySS-InteractionViolation" },
- { 0, NULL }
+static const ber_sequence_t ForwardingFeatureList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ForwardingFeatureList_item },
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ForwardingFeatureList);
return offset;
}
-static int dissect_cug_RejectCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_cug_RejectCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_cug_RejectCause);
+static int dissect_forwardingFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_forwardingFeatureList);
+}
+static int dissect_forwardingFeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingFeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingFeatureList);
}
-static const ber_sequence Cug_RejectParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t ForwardingInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Cug_RejectParam_sequence, hf_index, ett_gsm_map_Cug_RejectParam);
+dissect_gsm_map_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo);
return offset;
}
+static int dissect_forwardingInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingInfo);
+}
-static const ber_sequence Ati_NotAllowedParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+
+static const ber_sequence_t CallBarringInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ati_NotAllowedParam_sequence, hf_index, ett_gsm_map_Ati_NotAllowedParam);
+dissect_gsm_map_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo);
return offset;
}
+static int dissect_callBarringInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallBarringInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_callBarringInfo);
+}
+
-static const ber_sequence NoGroupCallNbParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
+dissect_gsm_map_HLR_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
+static int dissect_HLR_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_HLR_Id(FALSE, tvb, offset, actx, tree, hf_gsm_map_HLR_List_item);
+}
-static const ber_sequence Ss_IncompatibilityCause_sequence[] = {
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
- { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
- { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
- { 0, 0, 0, NULL }
+
+static const ber_sequence_t HLR_List_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_HLR_List_item },
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Ss_IncompatibilityCause_sequence, hf_index, ett_gsm_map_Ss_IncompatibilityCause);
+dissect_gsm_map_HLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List);
return offset;
}
+static int dissect_hlr_List(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_HLR_List(FALSE, tvb, offset, actx, tree, hf_gsm_map_hlr_List);
+}
-static const value_string Pw_RegistrationFailureCause_vals[] = {
- { 0, "undetermined" },
- { 1, "invalidFormat" },
- { 2, "newPasswordsMismatch" },
- { 0, NULL }
+static const ber_sequence_t ResetArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List },
+ { 0, 0, 0, NULL }
};
-
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ResetArg_sequence, hf_index, ett_gsm_map_ResetArg);
return offset;
}
-static const ber_sequence ShortTermDenialParam_sequence[] = {
+
+static const ber_sequence_t RestoreDataArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
+dissect_gsm_map_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg);
return offset;
}
-static const ber_sequence LongTermDenialParam_sequence[] = {
+
+static const ber_sequence_t RestoreDataRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
+dissect_gsm_map_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes);
return offset;
}
-static const ber_sequence SubBusyForMT_SMS_Param_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
+
+static const ber_sequence_t TraceDepthList_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_TraceDepth_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_TraceDepth_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_TraceDepth_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_TraceDepth_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_TraceDepth_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bmsc_TraceDepth_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
+dissect_gsm_map_TraceDepthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TraceDepthList_sequence, hf_index, ett_gsm_map_TraceDepthList);
return offset;
}
+static int dissect_traceDepthList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceDepthList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceDepthList);
+}
-static const value_string T_sm_EnumeratedDeliveryFailureCause_vals[] = {
- { 0, "memoryCapacityExceeded" },
- { 1, "equipmentProtocolError" },
- { 2, "equipmentNotSM-Equipped" },
- { 3, "unknownServiceCentre" },
- { 4, "sc-Congestion" },
- { 5, "invalidSME-Address" },
- { 6, "subscriberNotSC-Subscriber" },
- { 0, NULL }
+static const asn_namedbit TraceNE_TypeList_bits[] = {
+ { 0, &hf_gsm_map_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL },
+ { 1, &hf_gsm_map_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL },
+ { 2, &hf_gsm_map_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL },
+ { 3, &hf_gsm_map_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL },
+ { 4, &hf_gsm_map_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL },
+ { 5, &hf_gsm_map_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
+static int
+dissect_gsm_map_TraceNE_TypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ TraceNE_TypeList_bits, hf_index, ett_gsm_map_TraceNE_TypeList,
+ NULL);
+
+ return offset;
+}
+static int dissect_traceNE_TypeList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceNE_TypeList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceNE_TypeList);
+}
+
+
+static const asn_namedbit SGSN_InterfaceList_bits[] = {
+ { 0, &hf_gsm_map_SGSN_InterfaceList_gb, -1, -1, "gb", NULL },
+ { 1, &hf_gsm_map_SGSN_InterfaceList_iu, -1, -1, "iu", NULL },
+ { 2, &hf_gsm_map_SGSN_InterfaceList_gn, -1, -1, "gn", NULL },
+ { 3, &hf_gsm_map_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL },
+ { 4, &hf_gsm_map_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL },
+ { 5, &hf_gsm_map_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL },
+ { 6, &hf_gsm_map_SGSN_InterfaceList_gs, -1, -1, "gs", NULL },
+ { 7, &hf_gsm_map_SGSN_InterfaceList_ge, -1, -1, "ge", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_SGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SGSN_InterfaceList_bits, hf_index, ett_gsm_map_SGSN_InterfaceList,
+ NULL);
return offset;
}
-static int dissect_sm_EnumeratedDeliveryFailureCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_sm_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
+static int dissect_sgsn_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SGSN_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_IList);
}
-static const ber_sequence Sm_DeliveryFailureCause_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause },
- { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit GGSN_InterfaceList_bits[] = {
+ { 0, &hf_gsm_map_GGSN_InterfaceList_gn, -1, -1, "gn", NULL },
+ { 1, &hf_gsm_map_GGSN_InterfaceList_gi, -1, -1, "gi", NULL },
+ { 2, &hf_gsm_map_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- Sm_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_Sm_DeliveryFailureCause);
+dissect_gsm_map_GGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ GGSN_InterfaceList_bits, hf_index, ett_gsm_map_GGSN_InterfaceList,
+ NULL);
return offset;
}
+static int dissect_ggsn_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GGSN_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_IList);
+}
-static const ber_sequence MessageWaitListFullParam_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit BMSC_InterfaceList_bits[] = {
+ { 0, &hf_gsm_map_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-dissect_gsm_map_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
+dissect_gsm_map_BMSC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ BMSC_InterfaceList_bits, hf_index, ett_gsm_map_BMSC_InterfaceList,
+ NULL);
return offset;
}
+static int dissect_bmsc_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BMSC_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bmsc_IList);
+}
-static const ber_sequence AbsentSubscriberSM_Param_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
+
+static const ber_sequence_t TraceInterfaceList_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_IList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_IList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_IList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_IList_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_IList_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bmsc_IList_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
+dissect_gsm_map_TraceInterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TraceInterfaceList_sequence, hf_index, ett_gsm_map_TraceInterfaceList);
return offset;
}
+static int dissect_traceInterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceInterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceInterfaceList);
+}
-static const ber_sequence UnauthorizedRequestingNetwork_Param_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
- { 0, 0, 0, NULL }
+
+static const asn_namedbit SGSN_EventList_bits[] = {
+ { 0, &hf_gsm_map_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
+ { 1, &hf_gsm_map_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL },
+ { 2, &hf_gsm_map_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL },
+ { 3, &hf_gsm_map_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
+dissect_gsm_map_SGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SGSN_EventList_bits, hf_index, ett_gsm_map_SGSN_EventList,
+ NULL);
return offset;
}
+static int dissect_sgsn_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SGSN_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_EList);
+}
-static const value_string T_unauthorizedLCSClient_Diagnostic_vals[] = {
- { 0, "noAdditionalInformation" },
- { 1, "clientNotInMSPrivacyExceptionList" },
- { 2, "callToClientNotSetup" },
- { 3, "privacyOverrideNotApplicable" },
- { 4, "disallowedByLocalRegulatoryRequirements" },
- { 0, NULL }
+static const asn_namedbit GGSN_EventList_bits[] = {
+ { 0, &hf_gsm_map_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL },
+ { 1, &hf_gsm_map_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
+static int
+dissect_gsm_map_GGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ GGSN_EventList_bits, hf_index, ett_gsm_map_GGSN_EventList,
+ NULL);
+
+ return offset;
+}
+static int dissect_ggsn_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GGSN_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_EList);
+}
+
+
+static const asn_namedbit BMSC_EventList_bits[] = {
+ { 0, &hf_gsm_map_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_BMSC_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ BMSC_EventList_bits, hf_index, ett_gsm_map_BMSC_EventList,
+ NULL);
return offset;
}
-static int dissect_unauthorizedLCSClient_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_unauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic);
+static int dissect_bmsc_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BMSC_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bmsc_EList);
}
-static const ber_sequence UnauthorizedLCSClient_Param_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t TraceEventList_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_EList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_EList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_EList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_EList_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bmsc_EList_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
+dissect_gsm_map_TraceEventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TraceEventList_sequence, hf_index, ett_gsm_map_TraceEventList);
return offset;
}
+static int dissect_traceEventList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TraceEventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceEventList);
+}
-static const value_string T_positionMethodFailure_Diagnostic_vals[] = {
- { 0, "congestion" },
- { 1, "insufficientResources" },
- { 2, "insufficientMeasurementData" },
- { 3, "inconsistentMeasurementData" },
- { 4, "locationProcedureNotCompleted" },
- { 5, "locationProcedureNotSupportedByTargetMS" },
- { 6, "qoSNotAttainable" },
- { 7, "positionMethodNotAvailableInNetwork" },
- { 8, "positionMethodNotAvailableInLocationArea" },
- { 0, NULL }
+static const ber_sequence_t ActivateTraceModeArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_traceType_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_omc_Id_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference2_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceDepthList_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceNE_TypeList_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceInterfaceList_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceEventList_impl },
+ { 0, 0, 0, NULL }
};
+static int
+dissect_gsm_map_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ActivateTraceModeRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceSupportIndicator_impl },
+ { 0, 0, 0, NULL }
+};
static int
-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_) {
- offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+dissect_gsm_map_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes);
return offset;
}
-static int dissect_positionMethodFailure_Diagnostic_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_T_positionMethodFailure_Diagnostic(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
+
+
+static const ber_sequence_t DeactivateTraceModeArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference2_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg);
+
+ return offset;
}
-static const ber_sequence PositionMethodFailure_Param_sequence[] = {
- { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
- { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+
+static const ber_sequence_t DeactivateTraceModeRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
+dissect_gsm_map_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes);
return offset;
}
-static const ber_sequence UnknownOrUnreachableLCSClient_Param_sequence[] = {
+
+static const ber_sequence_t CUG_CheckInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess },
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
{ 0, 0, 0, NULL }
};
static int
-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_) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
+dissect_gsm_map_CUG_CheckInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CUG_CheckInfo_sequence, hf_index, ett_gsm_map_CUG_CheckInfo);
return offset;
}
+static int dissect_cug_CheckInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_CheckInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_cug_CheckInfo);
+}
-/*--- End of included file: packet-gsm_map-fn.c ---*/
+static int
+dissect_gsm_map_NumberOfForwarding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
-/* Stuff included from the "old" packet-gsm_map.c for tapping purposes */
-static gchar *
-my_match_strval(guint32 val, const value_string *vs, gint *idx)
-{
- gint i = 0;
+ return offset;
+}
+static int dissect_numberOfForwarding_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NumberOfForwarding(TRUE, tvb, offset, actx, tree, hf_gsm_map_numberOfForwarding);
+}
- while (vs[i].strptr) {
- if (vs[i].value == val)
- {
- *idx = i;
- return(vs[i].strptr);
- }
- i++;
- }
+static const value_string gsm_map_InterrogationType_vals[] = {
+ { 0, "basicCall" },
+ { 1, "forwarding" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_InterrogationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
- *idx = -1;
- return(NULL);
+ return offset;
+}
+static int dissect_interrogationType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InterrogationType(TRUE, tvb, offset, actx, tree, hf_gsm_map_interrogationType);
}
-/* End includes from old" packet-gsm_map.c */
-const value_string gsm_map_opr_code_strings[] = {
- { 2, "updateLocation" },
- { 3, "cancelLocation" },
- { 4, "provideRoamingNumber" },
- { 6, "resumeCallHandling" },
- { 7, "insertSubscriberData" },
- { 8, "deleteSubscriberData" },
- { 9, "sendParameters" }, /* map-ac infoRetrieval (14) version1 (1)*/
- { 10, "registerSS" },
- { 11, "eraseSS" },
- { 12, "activateSS" },
- { 13, "deactivateSS" },
- { 14, "interrogateSS" },
- { 17, "registerPassword" },
- { 18, "getPassword" },
- { 19, "processUnstructuredSS-Data" }, /* map-ac networkFunctionalSs (18) version1 (1) */
- { 22, "sendRoutingInfo" },
- { 23, "updateGprsLocation" },
- { 24, "sendRoutingInfoForGprs" },
- { 25, "failureReport" },
- { 26, "noteMsPresentForGprs" },
- { 28, "performHandover" }, /* map-ac handoverControl (11) version1 (1)*/
- { 29, "sendEndSignal" },
- { 30, "performSubsequentHandover" }, /* map-ac handoverControl (11) version1 (1) */
- { 31, "provideSIWFSNumber" },
- { 32, "sIWFSSignallingModify" },
- { 33, "processAccessSignalling" },
- { 34, "forwardAccessSignalling" },
- { 35, "noteInternalHandover" }, /* map-ac handoverControl (11) version1 (1) */
- { 37, "reset" },
- { 38, "forwardCheckSS-Indication" },
- { 39, "prepareGroupCall" },
- { 40, "sendGroupCallEndSignal" },
- { 41, "processGroupCallSignalling" },
- { 42, "forwardGroupCallSignalling" },
- { 43, "checkIMEI" },
- { 44, "mt-forwardSM" },
- { 45, "sendRoutingInfoForSM" },
- { 46, "mo-forwardSM" },
- { 47, "reportSM-DeliveryStatus" },
- { 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
- { 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
- { 50, "activateTraceMode" },
- { 51, "deactivateTraceMode" },
- { 52, "traceSubscriberActivity" }, /* map-ac handoverControl (11) version1 (1) */
- { 54, "beginSubscriberActivity" }, /* map-ac networkFunctionalSs (18) version1 (1) */
- { 55, "sendIdentification" },
- { 56, "sendAuthenticationInfo" },
- { 57, "restoreData" },
- { 58, "sendIMSI" },
- { 59, "processUnstructuredSS-Request" },
- { 60, "unstructuredSS-Request" },
- { 61, "unstructuredSS-Notify" },
- { 63, "informServiceCentre" },
- { 64, "alertServiceCentre" },
- { 66, "readyForSM" },
- { 67, "purgeMS" },
- { 68, "prepareHandover" },
- { 69, "prepareSubsequentHandover" },
- { 70, "provideSubscriberInfo" },
- { 71, "anyTimeInterrogation" },
- { 72, "ss-InvocationNotification" },
- { 73, "setReportingState" },
- { 74, "statusReport" },
- { 75, "remoteUserFree" },
- { 76, "registerCC-Entry" },
- { 77, "eraseCC-Entry" },
- { 83, "provideSubscriberLocation" },
- { 85, "sendRoutingInfoForLCS" },
- { 86, "subscriberLocationReport" },
+
+
+static int
+dissect_gsm_map_OR_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_or_Capability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OR_Phase(TRUE, tvb, offset, actx, tree, hf_gsm_map_or_Capability);
+}
+
+
+
+static int
+dissect_gsm_map_CallReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_callReferenceNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallReferenceNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_callReferenceNumber);
+}
+
+
+static const value_string gsm_map_ForwardingReason_vals[] = {
+ { 0, "notReachable" },
+ { 1, "busy" },
+ { 2, "noReply" },
{ 0, NULL }
};
-static guint32 opcode=0;
static int
-dissect_gsm_map_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_integer_new(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
-
- if (check_col(pinfo->cinfo, COL_INFO)){
- col_set_str(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
- }
+dissect_gsm_map_ForwardingReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_forwardingReason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingReason(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingReason);
+}
-static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- switch(opcode){
- case 2: /*updateLocation*/
- offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 3: /*cancelLocation*/
- offset=dissect_gsm_map_CancelLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 4: /*provideRoamingNumber*/
- offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 6: /*resumeCallHandling*/
- offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 7: /*insertSubscriberData*/
- offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 8: /*deleteSubscriberData*/
- offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- /* TODO find out why this isn't in the ASN1 file
- case 9: sendParameters
- offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- */
- case 10: /*registerSS*/
- offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 11: /*eraseSS*/
- offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 12: /*activateSS*/
- offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 13: /*deactivateSS*/
- offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 14: /*interrogateSS*/
- offset=dissect_gsm_map_Ss_ForBS(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 17: /*registerPassword*/
- offset=dissect_gsm_map_Ss_Code(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
- break;
- case 18: /*getPassword*/
- offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_getPassword);
- break;
- case 22: /*sendRoutingInfo*/
- offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 23: /*updateGprsLocation*/
- offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 24: /*sendRoutingInfoForGprs*/
- offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 25: /*failureReport*/
- offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 26: /*noteMsPresentForGprs*/
- offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 29: /*sendEndSignal*/
- offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 31: /*provideSIWFSNumbe*/
- offset=dissect_gsm_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 32: /*sIWFSSignallingModify*/
- offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 33: /*processAccessSignalling*/
- offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 34: /*forwardAccessSignalling*/
- offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 37: /*reset*/
- offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 38: /*forwardCheckSS-Indication*/
- return offset;
- break;
- case 39: /*prepareGroupCall*/
- offset=dissect_gsm_map_PrepareGroupCallArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 40: /*sendGroupCallEndSignal*/
- dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 42: /*processGroupCallSignalling*/
- offset=dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 43: /*checkIMEI*/
- offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 44: /*mt-forwardSM*/
- offset=dissect_gsm_map_CheckIMEIArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 45: /*sendRoutingInfoForSM*/
- offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 46: /*mo-forwardSM*/
- offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 47: /*reportSM-DeliveryStatus*/
- offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 50: /*activateTraceMode*/
- offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 51: /*deactivateTraceMode*/
- offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 55: /*sendIdentification*/
- offset=dissect_gsm_map_Tmsi(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 56: /*sendAuthenticationInfo*/
- offset=dissect_gsm_map_SendAuthenticationInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 57: /*restoreData*/
- offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 58: /*sendIMSI*/
- offset=dissect_gsm_map_Msisdn(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 59: /*processUnstructuredSS-Request*/
- offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 60: /*unstructuredSS-Request*/
- offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 61: /*unstructuredSS-Notify*/
- offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 63: /*informServiceCentre*/
- offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 64: /*alertServiceCentre*/
- offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 66: /*readyForSM*/
- offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 67: /*purgeMS*/
- offset=dissect_gsm_map_PurgeMS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 68: /*prepareHandover*/
- offset=dissect_gsm_map_PrepareHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 69: /*prepareSubsequentHandover*/
- offset=dissect_gsm_map_PrepareSubsequentHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 70: /*provideSubscriberInfo*/
- offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 71: /*anyTimeInterrogation*/
- offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 72: /*ss-InvocationNotificatio*/
- offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 73: /*setReportingState*/
- offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 74: /*statusReport*/
- offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 75: /*remoteUserFree*/
- offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 76: /*registerCC-Entry*/
- offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 77: /*eraseCC-Entry*/
- offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 83: /*provideSubscriberLocation*/
- offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 85: /*sendRoutingInfoForLCS*/
- offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 86: /*subscriberLocationReport*/
- offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
- }
- return offset;
-}
+static const ber_sequence_t ExternalSignalInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo);
-static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- switch(opcode){
- case 2: /*updateLocation*/
- offset=dissect_gsm_map_UpdateLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 3: /*cancelLocation*/
- offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 4: /*provideRoamingNumber*/
- offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 6: /*resumeCallHandling*/
- offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 7: /*insertSubscriberData*/
- offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 8: /*deleteSubscriberData*/
- offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- /* TODO find out why this isn't in the ASN1 file
- case 9: sendParameters
- offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- */
- case 10: /*registerSS*/
- offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 11: /*eraseSS*/
- offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 12: /*activateSS*/
- offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 13: /*deactivateSS*/
- offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 14: /*interrogateSS*/
- offset=dissect_gsm_map_Ss_Info(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 17: /*registerPassword*/
- offset=dissect_gsm_map_NewPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_ss_Code);
- break;
- case 18: /*getPassword*/
- offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_currentPassword);
- break;
- case 22: /*sendRoutingInfo*/
- offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 23: /*updateGprsLocation*/
- offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 24: /*sendRoutingInfoForGprs*/
- offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 25: /*failureReport*/
- offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 26: /*noteMsPresentForGprs*/
- offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 29: /*sendEndSignal*/
- /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
- * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
- */
- offset=dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 31: /*provideSIWFSNumbe*/
- offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 32: /*provideSIWFSNumbe*/
- offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 39: /*prepareGroupCall*/
- offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 40: /*sendGroupCallEndSignal*/
- dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 43: /*checkIMEI*/
- offset=dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 45: /*sendRoutingInfoForSM*/
- offset=dissect_gsm_map_RoutingInfoForSMRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 46: /*mo-forwardSM*/
- offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 48: /*reportSM-DeliveryStatus*/
- offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 50: /*activateTraceMode*/
- offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 51: /*deactivateTraceMode*/
- offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 55: /*sendIdentification*/
- offset=dissect_gsm_map_SendIdentificationRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 57: /*restoreData*/
- offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 58: /*sendIMSI*/
- offset=dissect_gsm_map_Imsi(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 59: /*unstructuredSS-Request*/
- offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 60: /*unstructuredSS-Request*/
- offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 61: /*unstructuredSS-Notify*/
- /* TRUE ? */
- proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
- break;
- case 66: /*readyForSM*/
- offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 67: /*purgeMS*/
- offset=dissect_gsm_map_PurgeMS_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 68: /*prepareHandover*/
- offset=dissect_gsm_map_PrepareHO_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 69: /*prepareSubsequentHandover*/
- offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 70: /*provideSubscriberInfo*/
- offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 71: /*anyTimeInterrogation*/
- offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 72: /*ss-InvocationNotificatio*/
- offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 73: /*setReportingState*/
- offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 74: /*statusReport*/
- offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 75: /*remoteUserFree*/
- offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 76: /*registerCC-Entry*/
- offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 77: /*eraseCC-Entry*/
- offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 83: /*provideSubscriberLocation*/
- offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 85: /*sendRoutingInfoForLCS*/
- offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- case 86: /*subscriberLocationReport*/
- offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, pinfo, tree, -1);
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
- }
return offset;
}
-
-static int
-dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_Opcode(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeCmd);
+static int dissect_networkSignalInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_networkSignalInfo);
}
-
-static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_ber_integer_new(FALSE, pinfo, tree, tvb, offset, hf_gsm_map_invokeid, NULL);
+static int dissect_networkSignalInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkSignalInfo);
}
-
-
-static const value_string InvokeId_vals[] = {
- { 0, "invokeid" },
- { 1, "absent" },
- { 0, NULL }
-};
-
-static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_NULL(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_absent);
+static int dissect_networkSignalInfo2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkSignalInfo2);
+}
+static int dissect_gsm_BearerCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_gsm_BearerCapability);
+}
+static int dissect_isdn_BearerCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_isdn_BearerCapability);
+}
+static int dissect_chosenChannel_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenChannel);
+}
+static int dissect_lowerLayerCompatibility_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_lowerLayerCompatibility);
+}
+static int dissect_highLayerCompatibility_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_highLayerCompatibility);
+}
+static int dissect_channelType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_channelType);
+}
+static int dissect_callInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_callInfo);
+}
+static int dissect_callInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_callInfo);
}
-static const ber_choice InvokeId_choice[] = {
- { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
- { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
- { 0, 0, 0, 0, NULL }
+static const ber_sequence_t CamelInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl },
+ { 0, 0, 0, NULL }
};
static int
-dissect_gsm_map_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- InvokeId_choice, hf_index, ett_gsm_map_InvokeId);
+dissect_gsm_map_CamelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CamelInfo_sequence, hf_index, ett_gsm_map_CamelInfo);
return offset;
}
-static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_gsm_map_invokeId);
+static int dissect_camelInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CamelInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelInfo);
}
-static const ber_sequence InvokePDU_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
- { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
- { 0, 0, 0, NULL }
-};
+
static int
-dissect_gsm_map_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- InvokePDU_sequence, hf_index, ett_gsm_map_InvokePDU);
+dissect_gsm_map_SuppressionOfAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index);
return offset;
}
-static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_invoke);
+static int dissect_suppressionOfAnnouncement_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SuppressionOfAnnouncement(TRUE, tvb, offset, actx, tree, hf_gsm_map_suppressionOfAnnouncement);
}
-static const ber_sequence ReturnResult_result_sequence[] = {
- { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
- { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
- { 0, 0, 0, NULL }
-};
-static int
-dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
- ReturnResult_result_sequence, hf_gsm_map_returnResult_result, ett_gsm_map_ReturnResult_result);
+
+
+int
+dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static int dissect_alertingPattern(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AlertingPattern(FALSE, tvb, offset, actx, tree, hf_gsm_map_alertingPattern);
+}
+static int dissect_alertingPattern_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AlertingPattern(TRUE, tvb, offset, actx, tree, hf_gsm_map_alertingPattern);
+}
+
-static const ber_sequence ReturnResultPDU_sequence[] = {
- { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
- { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
- { 0, 0, 0, NULL }
-};
static int
-dissect_gsm_map_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
- ReturnResultPDU_sequence, hf_index, ett_gsm_map_ReturnResultPDU);
+dissect_gsm_map_SupportedCCBS_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
-static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_gsm_map_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_gsm_map_returnResult);
+static int dissect_supportedCCBS_Phase_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedCCBS_Phase(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCCBS_Phase);
}
-static const value_string GSMMAPPDU_vals[] = {
- { 1, "invoke" },
- { 2, "returnResult" },
- { 3, "returnError" },
- { 4, "reject" },
+
+static const value_string gsm_map_Ext_ProtocolId_vals[] = {
+ { 1, "ets-300356" },
{ 0, NULL }
};
-static const ber_choice GSMMAPPDU_choice[] = {
- { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
- { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
-#ifdef REMOVED
- { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
- { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
-#endif
- { 0, 0, 0, 0, NULL }
+
+static int
+dissect_gsm_map_Ext_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ext_ProtocolId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ProtocolId(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_ProtocolId);
+}
+
+
+static const ber_sequence_t Ext_ExternalSignalInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
};
-static guint8 gsmmap_pdu_type = 0;
-static guint8 gsm_map_pdu_size = 0;
+static int
+dissect_gsm_map_Ext_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo);
+
+ return offset;
+}
+static int dissect_additionalSignalInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalSignalInfo);
+}
+
+
static int
-dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+dissect_gsm_map_CallDiversionTreatmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
- gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
- /* Get the length and add 2 */
- gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+ return offset;
+}
+static int dissect_callDiversionTreatmentIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallDiversionTreatmentIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_callDiversionTreatmentIndicator);
+}
- offset = dissect_ber_choice(pinfo, tree, tvb, offset,
- GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU);
- if (check_col(pinfo->cinfo, COL_INFO)){
- col_prepend_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
- }
+static const ber_sequence_t SendRoutingInfoArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfForwarding_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_interrogationType_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Capability_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gmsc_OrGsmSCF_Address_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingReason_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicServiceGroup_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelInfo_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCCBS_Phase_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istSupportIndicator_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pre_pagingSupported_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callDiversionTreatmentIndicator_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_suppress_VT_CSI },
+ { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_suppressIncomingCallBarring },
+ { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_gsmSCF_InitiatedCall },
+ { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup2_impl },
+ { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo2_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg);
return offset;
}
+static const ber_sequence_t ForwardingData_sequence[] = {
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl },
+ { 0, 0, 0, NULL }
+};
+static int
+dissect_gsm_map_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData);
-static void
-dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
-{
- proto_item *item=NULL;
- proto_tree *tree=NULL;
- /* Used for gsm_map TAP */
- static gsm_map_tap_rec_t tap_rec;
- gint op_idx;
- gchar *str = NULL;
+ return offset;
+}
+static int dissect_forwardingData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingData(FALSE, tvb, offset, actx, tree, hf_gsm_map_forwardingData);
+}
+static int dissect_forwardingData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ForwardingData(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingData);
+}
- if (check_col(pinfo->cinfo, COL_PROTOCOL))
- {
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
- }
+static const value_string gsm_map_RoutingInfo_vals[] = {
+ { 0, "roamingNumber" },
+ { 1, "forwardingData" },
+ { 0, NULL }
+};
- /* create display subtree for the protocol */
- if(parent_tree){
- item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
- tree = proto_item_add_subtree(item, ett_gsm_map);
- }
+static const ber_choice_t RoutingInfo_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingData },
+ { 0, 0, 0, 0, NULL }
+};
- dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
- str = my_match_strval(opcode, gsm_map_opr_code_strings, &op_idx);
+static int
+dissect_gsm_map_RoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ RoutingInfo_choice, hf_index, ett_gsm_map_RoutingInfo,
+ NULL);
- tap_rec.invoke = FALSE;
- if ( gsmmap_pdu_type == 1 )
- tap_rec.invoke = TRUE;
- tap_rec.opr_code_idx = op_idx;
- tap_rec.size = gsm_map_pdu_size;
- tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
-
+ return offset;
+}
+static int dissect_routingInfo2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RoutingInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_routingInfo2);
+}
+static int dissect_routingInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RoutingInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_routingInfo);
+}
+
+
+static const ber_sequence_t GmscCamelSubscriptionInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_csi_impl },
+ { 0, 0, 0, NULL }
+};
+static int
+dissect_gsm_map_GmscCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_GmscCamelSubscriptionInfo);
+ return offset;
+}
+static int dissect_gmscCamelSubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GmscCamelSubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmscCamelSubscriptionInfo);
}
-static const value_string ssCode_vals[] = {
- { 0x00, "allSS - all SS" },
- { 0x10 ,"allLineIdentificationSS - all line identification SS" },
- { 0x11 ,"clip - calling line identification presentation" },
- { 0x12 ,"clir - calling line identification restriction" },
- { 0x13 ,"colp - connected line identification presentation" },
- { 0x14 ,"colr - connected line identification restriction" },
- { 0x15 ,"mci - malicious call identification" },
- { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
- { 0x19 ,"cnap - calling name presentation" },
- { 0x20 ,"allForwardingSS - all forwarding SS" },
- { 0x21 ,"cfu - call forwarding unconditional" },
- { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
- { 0x29 ,"cfb - call forwarding busy" },
- { 0x2a ,"cfnry - call forwarding on no reply" },
- { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
- { 0x24 ,"cd - call deflection" },
- { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
- { 0x31 ,"ect - explicit call transfer" },
- { 0x32 ,"mah - mobile access hunting" },
- { 0x40 ,"allCallCompletionSS - all Call completion SS" },
- { 0x41 ,"cw - call waiting" },
- { 0x42 ,"hold - call hold" },
- { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
- { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
- { 0x45 ,"mc - multicall" },
- { 0x50 ,"allMultiPartySS - all multiparty SS" },
- { 0x51 ,"multiPTY - multiparty" },
- { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
- { 0x61 ,"cug - closed user group" },
- { 0x70 ,"allChargingSS - all charging SS" },
- { 0x71 ,"aoci - advice of charge information" },
- { 0x72 ,"aocc - advice of charge charging" },
- { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
- { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
- { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
- { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
- { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
- { 0x91 ,"barringOfOutgoingCalls" },
- { 0x92 ,"baoc - barring of all outgoing calls" },
- { 0x93 ,"boic - barring of outgoing international calls" },
- { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
- { 0x99 ,"barringOfIncomingCalls" },
- { 0x9a ,"baic - barring of all incoming calls" },
- { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
- { 0xf0 ,"allPLMN-specificSS" },
- { 0xa0 ,"allCallPrioritySS - all call priority SS" },
- { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
- { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
- { 0xb1 ,"universal - allow location by any LCS client" },
- { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
- { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
- { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
- { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
- { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
- { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
- { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
- { 0xf1 ,"plmn-specificSS-1" },
- { 0xf2 ,"plmn-specificSS-2" },
- { 0xf3 ,"plmn-specificSS-3" },
- { 0xf4 ,"plmn-specificSS-4" },
- { 0xf5 ,"plmn-specificSS-5" },
- { 0xf6 ,"plmn-specificSS-6" },
- { 0xf7 ,"plmn-specificSS-7" },
- { 0xf8 ,"plmn-specificSS-8" },
- { 0xf9 ,"plmn-specificSS-9" },
- { 0xfa ,"plmn-specificSS-a" },
- { 0xfb ,"plmn-specificSS-b" },
- { 0xfc ,"plmn-specificSS-c" },
- { 0xfd ,"plmn-specificSS-d" },
- { 0xfe ,"plmn-specificSS-e" },
- { 0xff ,"plmn-specificSS-f" },
- { 0, NULL }
+static const ber_sequence_t CamelRoutingInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
};
-static const value_string Teleservice_vals[] = {
-{0x00, "allTeleservices" },
-{0x10, "allSpeechTransmissionServices" },
-{0x11, "telephony" },
-{0x12, "emergencyCalls" },
-{0x20, "allShortMessageServices" },
-{0x21, "shortMessageMT-PP" },
-{0x22, "shortMessageMO-PP" },
-{0x60, "allFacsimileTransmissionServices" },
-{0x61, "facsimileGroup3AndAlterSpeech" },
-{0x62, "automaticFacsimileGroup3" },
-{0x63, "facsimileGroup4" },
+static int
+dissect_gsm_map_CamelRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CamelRoutingInfo_sequence, hf_index, ett_gsm_map_CamelRoutingInfo);
-{0x70, "allDataTeleservices" },
-{0x80, "allTeleservices-ExeptSMS" },
+ return offset;
+}
+static int dissect_camelRoutingInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CamelRoutingInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelRoutingInfo);
+}
-{0x90, "allVoiceGroupCallServices" },
-{0x91, "voiceGroupCall" },
-{0x92, "voiceBroadcastCall" },
-{0xd0, "allPLMN-specificTS" },
-{0xd1, "plmn-specificTS-1" },
-{0xd2, "plmn-specificTS-2" },
-{0xd3, "plmn-specificTS-3" },
-{0xd4, "plmn-specificTS-4" },
-{0xd5, "plmn-specificTS-5" },
-{0xd6, "plmn-specificTS-6" },
-{0xd7, "plmn-specificTS-7" },
-{0xd8, "plmn-specificTS-8" },
-{0xd9, "plmn-specificTS-9" },
-{0xda, "plmn-specificTS-A" },
-{0xdb, "plmn-specificTS-B" },
-{0xdc, "plmn-specificTS-C" },
-{0xdd, "plmn-specificTS-D" },
-{0xde, "plmn-specificTS-E" },
-{0xdf, "plmn-specificTS-F" },
+static const value_string gsm_map_ExtendedRoutingInfo_vals[] = {
+ { 0, "routingInfo" },
+ { 1, "camelRoutingInfo" },
{ 0, NULL }
};
-/*--- proto_register_gsm_map -------------------------------------------*/
-void proto_register_gsm_map(void) {
+static const ber_choice_t ExtendedRoutingInfo_choice[] = {
+ { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo },
+ { 1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl },
+ { 0, 0, 0, 0, NULL }
+};
- /* List of fields */
- static hf_register_info hf[] = {
- { &hf_gsm_map_invokeCmd,
- { "invokeCmd", "gsm_map.invokeCmd",
- FT_UINT32, BASE_DEC, VALS(gsm_map_opr_code_strings), 0,
- "InvokePDU/invokeCmd", HFILL }},
- { &hf_gsm_map_invokeid,
- { "invokeid", "gsm_map.invokeid",
- FT_INT32, BASE_DEC, NULL, 0,
- "InvokeId/invokeid", HFILL }},
- { &hf_gsm_map_absent,
- { "absent", "gsm_map.absent",
- FT_NONE, BASE_NONE, NULL, 0,
- "InvokeId/absent", HFILL }},
- { &hf_gsm_map_invokeId,
- { "invokeId", "gsm_map.invokeId",
- FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
- "InvokePDU/invokeId", HFILL }},
- { &hf_gsm_map_currentPassword,
- { "currentPassword", "gsm_map.currentPassword",
- FT_STRING, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_invoke,
- { "invoke", "gsm_map.invoke",
- FT_NONE, BASE_NONE, NULL, 0,
- "GSMMAPPDU/invoke", HFILL }},
- { &hf_gsm_map_returnResult,
- { "returnResult", "gsm_map.returnResult",
- FT_NONE, BASE_NONE, NULL, 0,
- "GSMMAPPDU/returnResult", HFILL }},
- { &hf_gsm_map_getPassword,
- { "Password", "gsm_map.password",
- FT_UINT8, BASE_DEC, VALS(GetPasswordArg_vals), 0,
- "Password", HFILL }},
+static int
+dissect_gsm_map_ExtendedRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ExtendedRoutingInfo,
+ NULL);
+ return offset;
+}
+static int dissect_extendedRoutingInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExtendedRoutingInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_extendedRoutingInfo);
+}
-/*--- Included file: packet-gsm_map-hfarr.c ---*/
- { &hf_gsm_map_protocolId,
- { "protocolId", "gsm_map.protocolId",
- FT_UINT32, BASE_DEC, VALS(ProtocolId_vals), 0,
- "Bss-APDU/protocolId", HFILL }},
- { &hf_gsm_map_signalInfo,
- { "signalInfo", "gsm_map.signalInfo",
+int
+dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ageOfLocationInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AgeOfLocationInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_ageOfLocationInformation);
+}
+static int dissect_ageOfLocationEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AgeOfLocationInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_ageOfLocationEstimate);
+}
+
+
+
+int
+dissect_gsm_map_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_geographicalInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GeographicalInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_geographicalInformation);
+}
+static int dissect_geographicalInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GeographicalInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_geographicalInformation);
+}
+
+
+
+static int
+dissect_gsm_map_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_locationNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationNumber);
+}
+
+
+
+int
+dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength);
+}
+
+
+static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = {
+ { 0, "cellGlobalIdOrServiceAreaIdFixedLength" },
+ { 1, "laiFixedLength" },
+ { 0, NULL }
+};
+
+static const ber_choice_t CellGlobalIdOrServiceAreaIdOrLAI_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
+ NULL);
+
+ return offset;
+}
+static int dissect_cellGlobalIdOrServiceAreaIdOrLAI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(FALSE, tvb, offset, actx, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI);
+}
+static int dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI);
+}
+static int dissect_cellIdOrSai_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellIdOrSai);
+}
+
+
+
+static int
+dissect_gsm_map_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_geodeticInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GeodeticInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_geodeticInformation);
+}
+static int dissect_geodeticInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GeodeticInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_geodeticInformation);
+}
+
+
+static const ber_sequence_t LocationInformation_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSA_Id_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation);
+
+ return offset;
+}
+static int dissect_locationInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInformation);
+}
+
+
+static const value_string gsm_map_NotReachableReason_vals[] = {
+ { 0, "msPurged" },
+ { 1, "imsiDetached" },
+ { 2, "restrictedArea" },
+ { 3, "notRegistered" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_NotReachableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_netDetNotReachable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NotReachableReason(FALSE, tvb, offset, actx, tree, hf_gsm_map_netDetNotReachable);
+}
+
+
+const value_string gsm_map_SubscriberState_vals[] = {
+ { 0, "assumedIdle" },
+ { 1, "camelBusy" },
+ { 2, "netDetNotReachable" },
+ { 3, "notProvidedFromVLR" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SubscriberState_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl },
+ { 2, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable },
+ { 3, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState,
+ NULL);
+
+ return offset;
+}
+static int dissect_subscriberState(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberState(FALSE, tvb, offset, actx, tree, hf_gsm_map_subscriberState);
+}
+
+
+
+int
+dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 634 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ proto_item *item;
+ proto_tree *subtree;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+ item = get_ber_last_created_item();
+ subtree = proto_item_add_subtree(item, ett_gsm_map_RAIdentity);
+ de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
+
+
+
+ return offset;
+}
+static int dissect_routeingAreaIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RAIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_routeingAreaIdentity);
+}
+
+
+static const ber_sequence_t LocationInformationGPRS_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_cellGlobalIdOrServiceAreaIdOrLAI },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_routeingAreaIdentity },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_geographicalInformation },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_sgsn_Number },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_selectedLSAIdentity },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_extensionContainer },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_sai_Present },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_geodeticInformation },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_currentLocationRetrieved },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ageOfLocationInformation },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LocationInformationGPRS_sequence, hf_index, ett_gsm_map_LocationInformationGPRS);
+
+ return offset;
+}
+static int dissect_locationInformationGPRS(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationInformationGPRS(FALSE, tvb, offset, actx, tree, hf_gsm_map_locationInformationGPRS);
+}
+static int dissect_locationInformationGPRS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationInformationGPRS(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInformationGPRS);
+}
+
+
+
+static int
+dissect_gsm_map_NSAPI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_nsapi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NSAPI(TRUE, tvb, offset, actx, tree, hf_gsm_map_nsapi);
+}
+
+
+
+static int
+dissect_gsm_map_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_transactionId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TransactionId(TRUE, tvb, offset, actx, tree, hf_gsm_map_transactionId);
+}
+
+
+
+static int
+dissect_gsm_map_TEID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_teid_ForGnAndGp_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TEID(TRUE, tvb, offset, actx, tree, hf_gsm_map_teid_ForGnAndGp);
+}
+static int dissect_teid_ForIu_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TEID(TRUE, tvb, offset, actx, tree, hf_gsm_map_teid_ForIu);
+}
+
+
+
+int
+dissect_gsm_map_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_chargingId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRSChargingID(TRUE, tvb, offset, actx, tree, hf_gsm_map_chargingId);
+}
+
+
+static const ber_sequence_t PDP_ContextInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_Subscribed_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_InUse_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nsapi_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForGnAndGp_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForIu_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_qos_Subscribed_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Requested_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Negotiated_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingId_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_Address_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Subscribed_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Requested_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Negotiated_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PDP_ContextInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PDP_ContextInfo_sequence, hf_index, ett_gsm_map_PDP_ContextInfo);
+
+ return offset;
+}
+static int dissect_PDP_ContextInfoList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PDP_ContextInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_PDP_ContextInfoList_item);
+}
+
+
+static const ber_sequence_t PDP_ContextInfoList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PDP_ContextInfoList_item },
+};
+
+static int
+dissect_gsm_map_PDP_ContextInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_PDP_ContextInfoList);
+
+ return offset;
+}
+static int dissect_ps_PDP_ActiveNotReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PDP_ContextInfoList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_PDP_ActiveNotReachableForPaging);
+}
+static int dissect_ps_PDP_ActiveReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PDP_ContextInfoList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_PDP_ActiveReachableForPaging);
+}
+
+
+static const value_string gsm_map_PS_SubscriberState_vals[] = {
+ { 0, "notProvidedFromSGSN" },
+ { 1, "ps-Detached" },
+ { 2, "ps-AttachedNotReachableForPaging" },
+ { 3, "ps-AttachedReachableForPaging" },
+ { 4, "ps-PDP-ActiveNotReachableForPaging" },
+ { 5, "ps-PDP-ActiveReachableForPaging" },
+ { 6, "netDetNotReachable" },
+ { 0, NULL }
+};
+
+static const ber_choice_t PS_SubscriberState_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_notProvidedFromSGSN_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ps_Detached_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ps_AttachedNotReachableForPaging_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ps_AttachedReachableForPaging_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveNotReachableForPaging_impl },
+ { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveReachableForPaging_impl },
+ { 6, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PS_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ PS_SubscriberState_choice, hf_index, ett_gsm_map_PS_SubscriberState,
+ NULL);
+
+ return offset;
+}
+static int dissect_ps_SubscriberState_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PS_SubscriberState(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_SubscriberState);
+}
+
+
+
+int
+dissect_gsm_map_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ms_Classmark2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MS_Classmark2(TRUE, tvb, offset, actx, tree, hf_gsm_map_ms_Classmark2);
+}
+
+
+
+static int
+dissect_gsm_map_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_mSNetworkCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSNetworkCapability(TRUE, tvb, offset, actx, tree, hf_gsm_map_mSNetworkCapability);
+}
+
+
+
+static int
+dissect_gsm_map_MSRadioAccessCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_mSRadioAccessCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSRadioAccessCapability(TRUE, tvb, offset, actx, tree, hf_gsm_map_mSRadioAccessCapability);
+}
+
+
+static const ber_sequence_t GPRSMSClass_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mSNetworkCapability_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mSRadioAccessCapability_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_GPRSMSClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GPRSMSClass_sequence, hf_index, ett_gsm_map_GPRSMSClass);
+
+ return offset;
+}
+static int dissect_gprs_MS_Class_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GPRSMSClass(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_MS_Class);
+}
+
+
+
+static int
+dissect_gsm_map_RouteingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+static int dissect_routeingNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RouteingNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_routeingNumber);
+}
+
+
+static const value_string gsm_map_NumberPortabilityStatus_vals[] = {
+ { 0, "notKnownToBePorted" },
+ { 1, "ownNumberPortedOut" },
+ { 2, "foreignNumberPortedToForeignNetwork" },
+ { 4, "ownNumberNotPortedOut" },
+ { 5, "foreignNumberPortedIn" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_numberPortabilityStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NumberPortabilityStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_numberPortabilityStatus);
+}
+
+
+static const ber_sequence_t MNPInfoRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingNumber_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_MNPInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MNPInfoRes_sequence, hf_index, ett_gsm_map_MNPInfoRes);
+
+ return offset;
+}
+static int dissect_mnpInfoRes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MNPInfoRes(TRUE, tvb, offset, actx, tree, hf_gsm_map_mnpInfoRes);
+}
+
+
+static const ber_sequence_t SubscriberInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ps_SubscriberState_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_Classmark2_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_MS_Class_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mnpInfoRes_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo);
+
+ return offset;
+}
+static int dissect_subscriberInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_subscriberInfo);
+}
+static int dissect_subscriberInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberInfo);
+}
+
+
+static const ber_sequence_t CCBS_Indicators_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CCBS_Indicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CCBS_Indicators_sequence, hf_index, ett_gsm_map_CCBS_Indicators);
+
+ return offset;
+}
+static int dissect_ccbs_Indicators_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_Indicators(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Indicators);
+}
+
+
+static const asn_namedbit AllowedServices_bits[] = {
+ { 0, &hf_gsm_map_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL },
+ { 1, &hf_gsm_map_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_gsm_map_AllowedServices(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ AllowedServices_bits, hf_index, ett_gsm_map_AllowedServices,
+ NULL);
+
+ return offset;
+}
+static int dissect_allowedServices_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AllowedServices(TRUE, tvb, offset, actx, tree, hf_gsm_map_allowedServices);
+}
+
+
+static const value_string gsm_map_UnavailabilityCause_vals[] = {
+ { 1, "bearerServiceNotProvisioned" },
+ { 2, "teleserviceNotProvisioned" },
+ { 3, "absentSubscriber" },
+ { 4, "busySubscriber" },
+ { 5, "callBarred" },
+ { 6, "cug-Reject" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_UnavailabilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_unavailabilityCause_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UnavailabilityCause(TRUE, tvb, offset, actx, tree, hf_gsm_map_unavailabilityCause);
+}
+
+
+static const ber_sequence_t SendRoutingInfoRes_sequence[] = {
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInterrogationRequired_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vmsc_Address_impl },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Indicators_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInVMSC_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInVMSC_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_routingInfo2_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List2_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService2_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedServices_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unavailabilityCause_impl },
+ { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseResourcesSupported_impl },
+ { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_SubscriberIdentity_vals[] = {
+ { 0, "imsi" },
+ { 1, "msisdn" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SubscriberIdentity_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SubscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity,
+ NULL);
+
+ return offset;
+}
+static int dissect_subscriberIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_subscriberIdentity);
+}
+static int dissect_subscriberIdentity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberIdentity);
+}
+static int dissect_targetMS(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_targetMS);
+}
+static int dissect_targetMS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SubscriberIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetMS);
+}
+
+
+static const ber_sequence_t ProvideRoamingNumberArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInInterrogatingNode_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_orNotSupportedInGMSC_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pre_pagingSupported_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_VT_CSI_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInInterrogatingNode_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ProvideRoamingNumberRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_releaseResourcesSupported },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gsm_map_UUIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_uuIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UUIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_uuIndicator);
+}
+
+
+
+static int
+dissect_gsm_map_UUI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_uui_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UUI(TRUE, tvb, offset, actx, tree, hf_gsm_map_uui);
+}
+
+
+static const ber_sequence_t UU_Data_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uusCFInteraction_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UU_Data_sequence, hf_index, ett_gsm_map_UU_Data);
+
+ return offset;
+}
+static int dissect_uu_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UU_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_uu_Data);
+}
+
+
+static const ber_sequence_t ResumeCallHandlingArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ext_basicServiceGroup },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingData_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allInformationSent_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_csi_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDPCriteriaList_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup2_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ResumeCallHandlingRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gsm_map_CallDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_call_Direction_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallDirection(TRUE, tvb, offset, actx, tree, hf_gsm_map_call_Direction);
+}
+
+
+static const ber_sequence_t ProvideSIWFSNumberArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_call_Direction_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_b_Subscriber_Address_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowerLayerCompatibility_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ProvideSIWFSNumberRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SIWFSSignallingModifyArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SIWFSSignallingModifyRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_ReportingState_vals[] = {
+ { 0, "stopMonitoring" },
+ { 1, "startMonitoring" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_ReportingState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ccbs_Monitoring(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReportingState(FALSE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Monitoring);
+}
+
+
+static const ber_sequence_t SetReportingStateArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_imsi },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_lmsi },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_ccbs_Monitoring },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_CCBS_SubscriberStatus_vals[] = {
+ { 0, "ccbsNotIdle" },
+ { 1, "ccbsIdle" },
+ { 2, "ccbsNotReachable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CCBS_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ccbs_SubscriberStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_SubscriberStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_SubscriberStatus);
+}
+
+
+static const ber_sequence_t SetReportingStateRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EventReportData_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_EventReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EventReportData_sequence, hf_index, ett_gsm_map_EventReportData);
+
+ return offset;
+}
+static int dissect_eventReportData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_EventReportData(TRUE, tvb, offset, actx, tree, hf_gsm_map_eventReportData);
+}
+
+
+static const value_string gsm_map_MonitoringMode_vals[] = {
+ { 0, "a-side" },
+ { 1, "b-side" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_monitoringMode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MonitoringMode(TRUE, tvb, offset, actx, tree, hf_gsm_map_monitoringMode);
+}
+
+
+static const value_string gsm_map_CallOutcome_vals[] = {
+ { 0, "success" },
+ { 1, "failure" },
+ { 2, "busy" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_callOutcome_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, actx, tree, hf_gsm_map_callOutcome);
+}
+
+
+static const ber_sequence_t CallReportData_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CallReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallReportData_sequence, hf_index, ett_gsm_map_CallReportData);
+
+ return offset;
+}
+static int dissect_callReportdata_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallReportData(TRUE, tvb, offset, actx, tree, hf_gsm_map_callReportdata);
+}
+
+
+static const ber_sequence_t StatusReportArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReportdata_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t StatusReportRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_Ruf_Outcome_vals[] = {
+ { 0, "accepted" },
+ { 1, "rejected" },
+ { 2, "noResponseFromFreeMS" },
+ { 3, "noResponseFromBusyMS" },
+ { 4, "udubFromFreeMS" },
+ { 5, "udubFromBusyMS" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_Ruf_Outcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ruf_Outcome_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, actx, tree, hf_gsm_map_ruf_Outcome);
+}
+
+
+static const ber_sequence_t IST_AlertArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IST_AlertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IST_AlertArg_sequence, hf_index, ett_gsm_map_IST_AlertArg);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_CallTerminationIndicator_vals[] = {
+ { 0, "terminateCallActivityReferred" },
+ { 1, "terminateAllCallActivities" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CallTerminationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_callTerminationIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallTerminationIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_callTerminationIndicator);
+}
+
+
+static const ber_sequence_t IST_AlertRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istInformationWithdraw_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTerminationIndicator_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IST_AlertRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IST_AlertRes_sequence, hf_index, ett_gsm_map_IST_AlertRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IST_CommandArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IST_CommandArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IST_CommandArg_sequence, hf_index, ett_gsm_map_IST_CommandArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IST_CommandRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IST_CommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IST_CommandRes_sequence, hf_index, ett_gsm_map_IST_CommandRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReleaseResourcesArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msrn },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReleaseResourcesArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ReleaseResourcesArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReleaseResourcesRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReleaseResourcesRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ReleaseResourcesRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gsm_map_CCBS_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ccbs_Index_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_Index(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Index);
+}
+
+
+static const ber_sequence_t CCBS_Feature_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CCBS_Feature_sequence, hf_index, ett_gsm_map_CCBS_Feature);
+
+ return offset;
+}
+static int dissect_ccbs_Feature(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_Feature(FALSE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Feature);
+}
+static int dissect_ccbs_Feature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_Feature(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Feature);
+}
+static int dissect_CCBS_FeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_Feature(FALSE, tvb, offset, actx, tree, hf_gsm_map_CCBS_FeatureList_item);
+}
+
+
+static const ber_sequence_t RemoteUserFreeArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replaceB_Number_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RemoteUserFreeRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_Data_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ext_basicServiceGroupList },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_Data_sequence, hf_index, ett_gsm_map_SS_Data);
+
+ return offset;
+}
+static int dissect_ss_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Data);
+}
+
+
+static const ber_sequence_t RegisterSS_Arg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_addr_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg);
+
+ return offset;
+}
+
+
+const value_string gsm_map_SS_Info_vals[] = {
+ { 0, "forwardingInfo" },
+ { 1, "callBarringInfo" },
+ { 3, "ss-Data" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SS_Info_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SS_Info_choice, hf_index, ett_gsm_map_SS_Info,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CCBS_FeatureList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CCBS_FeatureList_item },
+};
+
+static int
+dissect_gsm_map_CCBS_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_CCBS_FeatureList);
+
+ return offset;
+}
+static int dissect_ccbs_FeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_FeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_FeatureList);
+}
+
+
+static const ber_sequence_t GenericServiceInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cliRestrictionOption },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumEntitledPriority_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_FeatureList_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrSB_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrSN_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_GenericServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ GenericServiceInfo_sequence, hf_index, ett_gsm_map_GenericServiceInfo);
+
+ return offset;
+}
+static int dissect_genericServiceInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GenericServiceInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_genericServiceInfo);
+}
+
+
+const value_string gsm_map_InterrogateSS_Res_vals[] = {
+ { 0, "ss-Status" },
+ { 2, "basicServiceGroupList" },
+ { 3, "forwardingFeatureList" },
+ { 4, "genericServiceInfo" },
+ { 0, NULL }
+};
+
+static const ber_choice_t InterrogateSS_Res_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_basicServiceGroupList_impl },
+ { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_forwardingFeatureList_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_genericServiceInfo_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res,
+ NULL);
+
+ return offset;
+}
+
+
+
+int
+dissect_gsm_map_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 453 "gsmmap.cnf"
+ /*The structure of the USSD-DataCodingScheme is defined by
+ * the Cell Broadcast Data Coding Scheme as described in
+ * TS 3GPP TS 23.038
+ * TODO: Should smpp_handle_dcs return encoding type? - like 7bit Alphabet
+ */
+ int CodingScheme_offset = 0;
+ tvbuff_t *parameter_tvb;
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+ smpp_handle_dcs(tree, parameter_tvb, &CodingScheme_offset);
+
+
+
+ return offset;
+}
+static int dissect_ussd_DataCodingScheme(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_USSD_DataCodingScheme(FALSE, tvb, offset, actx, tree, hf_gsm_map_ussd_DataCodingScheme);
+}
+static int dissect_dataCodingScheme_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_USSD_DataCodingScheme(TRUE, tvb, offset, actx, tree, hf_gsm_map_dataCodingScheme);
+}
+
+
+
+int
+dissect_gsm_map_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 475 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ int length;
+ guint8 out_len;
+ /* XXX - The maximum item label length is 240. Does this really need to be 1024?
+ * use ep_alloc ?
+ * TODO: Shouldent this function use USSD-DataCodingScheme to chose decoding method???
+ */
+ static unsigned char bigbuf[1024];
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+ if (!parameter_tvb)
+ return offset;
+
+ length = tvb_length_remaining(parameter_tvb,0);
+
+ out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(bigbuf),
+ tvb_get_ptr(parameter_tvb, 0, length), bigbuf);
+
+ bigbuf[out_len] = '\0';
+ gsm_sms_char_ascii_decode(bigbuf, bigbuf, out_len);
+ bigbuf[1023] = '\0';
+ proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", bigbuf);
+
+
+
+
+
+
+ return offset;
+}
+static int dissect_ussd_String(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_USSD_String(FALSE, tvb, offset, actx, tree, hf_gsm_map_ussd_String);
+}
+
+
+static const ber_sequence_t Ussd_Arg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertingPattern },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_Ussd_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Ussd_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_Ussd_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_FailureCause_vals[] = {
+ { 0, "wrongUserResponse" },
+ { 1, "wrongNetworkSignature" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_FailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_failureCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_FailureCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_failureCause);
+}
+
+
+
+static int
+dissect_gsm_map_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+static int dissect_re_attempt(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_gsm_map_re_attempt);
+}
+static int dissect_sm_RP_PRI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_BOOLEAN(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_PRI);
+}
+
+
+static const value_string gsm_map_AccessType_vals[] = {
+ { 0, "call" },
+ { 1, "emergencyCall" },
+ { 2, "locationUpdating" },
+ { 3, "supplementaryService" },
+ { 4, "shortMessage" },
+ { 5, "gprsAttach" },
+ { 6, "routingAreaUpdating" },
+ { 7, "serviceRequest" },
+ { 8, "pdpContextActivation" },
+ { 9, "pdpContextDeactivation" },
+ { 10, "gprsDetach" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AccessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_accessType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AccessType(FALSE, tvb, offset, actx, tree, hf_gsm_map_accessType);
+}
+
+
+static const ber_sequence_t AuthenticationFailureReportArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_failureCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_attempt },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_accessType },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_rand },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AuthenticationFailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AuthenticationFailureReportRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AuthenticationFailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportRes);
+
+ return offset;
+}
+
+
+
+int
+dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+ actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+const value_string gsm_map_GetPasswordArg_vals[] = {
+ { 0, "enterPW" },
+ { 1, "enterNewPW" },
+ { 2, "enterNewPW-Again" },
+ { 0, NULL }
+};
+
+
+int
+dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+int
+dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+ actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const asn_namedbit ServiceIndicator_bits[] = {
+ { 0, &hf_gsm_map_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL },
+ { 1, &hf_gsm_map_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_gsm_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator,
+ NULL);
+
+ return offset;
+}
+static int dissect_serviceIndicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceIndicator(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceIndicator);
+}
+
+
+static const ber_sequence_t CCBS_Data_sequence[] = {
+ { BER_CLASS_CON, 0, 0, dissect_ccbs_Feature },
+ { BER_CLASS_CON, 1, 0, dissect_translatedB_Number },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_serviceIndicator },
+ { BER_CLASS_CON, 3, 0, dissect_callInfo },
+ { BER_CLASS_CON, 4, 0, dissect_networkSignalInfo },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CCBS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CCBS_Data_sequence, hf_index, ett_gsm_map_CCBS_Data);
+
+ return offset;
+}
+static int dissect_ccbs_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Data);
+}
+
+
+static const ber_sequence_t RegisterCC_EntryArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RegisterCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RegisterCC_EntryRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EraseCC_EntryArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EraseCC_EntryRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gsm_map_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 198 "gsmmap.cnf"
+
+ tvbuff_t *parameter_tvb;
+ char *digit_str;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ ¶meter_tvb);
+
+
+ if (!parameter_tvb)
+ return offset;
+
+ proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
+ proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
+
+ digit_str = unpack_digits(parameter_tvb, 1);
+
+ proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str);
+ actx->pinfo->p2p_dir = P2P_DIR_SENT;
+
+
+
+ return offset;
+}
+static int dissect_serviceCentreAddress(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceCentreAddress(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddress);
+}
+static int dissect_serviceCentreAddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddress);
+}
+static int dissect_serviceCentreAddressOA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddressOA);
+}
+static int dissect_serviceCentreAddressDA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddressDA);
+}
+
+
+
+static int
+dissect_gsm_map_SM_RP_MTI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_sm_RP_MTI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SM_RP_MTI(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_MTI);
+}
+
+
+
+static int
+dissect_gsm_map_SM_RP_SMEA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_sm_RP_SMEA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SM_RP_SMEA(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_SMEA);
+}
+
+
+static const ber_sequence_t RoutingInfoForSMArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddress_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_MTI_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_SMEA_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RoutingInfoForSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_Additional_Number_vals[] = {
+ { 0, "msc-Number" },
+ { 1, "sgsn-Number" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Additional_Number_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Additional_Number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Additional_Number_choice, hf_index, ett_gsm_map_Additional_Number,
+ NULL);
+
+ return offset;
+}
+static int dissect_additional_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Additional_Number(TRUE, tvb, offset, actx, tree, hf_gsm_map_additional_Number);
+}
+
+
+static const ber_sequence_t LocationInfoWithLMSI_sequence[] = {
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_additional_Number_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_LocationInfoWithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_LocationInfoWithLMSI);
+
+ return offset;
+}
+static int dissect_locationInfoWithLMSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationInfoWithLMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInfoWithLMSI);
+}
+
+
+static const ber_sequence_t RoutingInfoForSM_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RoutingInfoForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForSM_Res);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_Sm_RP_DA_vals[] = {
+ { 0, "imsi" },
+ { 1, "lmsi" },
+ { 4, "serviceCentreAddressDA" },
+ { 5, "noSM-RP-DA" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Sm_RP_DA_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressDA_impl },
+ { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_DA_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Sm_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA,
+ NULL);
+
+ return offset;
+}
+static int dissect_sm_RP_DA(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Sm_RP_DA(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_DA);
+}
+
+
+static const value_string gsm_map_Sm_RP_OA_vals[] = {
+ { 2, "msisdn" },
+ { 4, "serviceCentreAddressOA" },
+ { 5, "noSM-RP-OA" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Sm_RP_OA_choice[] = {
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressOA_impl },
+ { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_OA_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Sm_RP_OA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA,
+ NULL);
+
+ return offset;
+}
+static int dissect_sm_RP_OA(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Sm_RP_OA(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_OA);
+}
+
+
+
+static int
+dissect_gsm_map_Sm_RP_UI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 157 "gsmmap.cnf"
+
+ tvbuff_t *tpdu_tvb;
+
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ &tpdu_tvb);
+
+
+ /*
+ * dissect the embedded TPDU message
+ */
+ if (!tpdu_tvb)
+ return offset;
+
+ dissector_try_port(sms_dissector_table, 0, tpdu_tvb, actx->pinfo, top_tree);
+
+
+ return offset;
+}
+static int dissect_sm_RP_UI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Sm_RP_UI(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_UI);
+}
+static int dissect_sm_RP_UI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Sm_RP_UI(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_UI);
+}
+
+
+static const ber_sequence_t Mo_forwardSM_Arg_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Mo_forwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Mo_forwardSM_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Mo_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Mt_forwardSM_Arg_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Mt_forwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Mt_forwardSM_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Mt_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ForwardSM_Arg_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardSM_Arg_sequence, hf_index, ett_gsm_map_ForwardSM_Arg);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_Sm_DeliveryOutcome_vals[] = {
+ { 0, "memoryCapacityExceeded" },
+ { 1, "absentSubscriber" },
+ { 2, "successfulTransfer" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_Sm_DeliveryOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_sm_DeliveryOutcome(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Sm_DeliveryOutcome(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_DeliveryOutcome);
+}
+static int dissect_additionalSM_DeliveryOutcome_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Sm_DeliveryOutcome(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalSM_DeliveryOutcome);
+}
+
+
+
+static int
+dissect_gsm_map_AbsentSubscriberDiagnosticSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_absentSubscriberDiagnosticSM(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AbsentSubscriberDiagnosticSM(FALSE, tvb, offset, actx, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
+}
+static int dissect_absentSubscriberDiagnosticSM_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, actx, tree, hf_gsm_map_absentSubscriberDiagnosticSM);
+}
+static int dissect_additionalAbsentSubscriberDiagnosticSM_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalAbsentSubscriberDiagnosticSM);
+}
+static int dissect_mobileNotReachableReason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, actx, tree, hf_gsm_map_mobileNotReachableReason);
+}
+
+
+static const ber_sequence_t ReportSM_DeliveryStatusArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_DeliveryOutcome },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberDiagnosticSM_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deliveryOutcomeIndicator_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSM_DeliveryOutcome_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReportSM_DeliveryStatusArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReportSM_DeliveryStatusRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReportSM_DeliveryStatusRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes);
+
+ return offset;
+}
+
+
+static const asn_namedbit MW_Status_bits[] = {
+ { 0, &hf_gsm_map_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL },
+ { 1, &hf_gsm_map_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL },
+ { 2, &hf_gsm_map_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL },
+ { 3, &hf_gsm_map_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_gsm_map_MW_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ MW_Status_bits, hf_index, ett_gsm_map_MW_Status,
+ NULL);
+
+ return offset;
+}
+static int dissect_mw_Status(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MW_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_mw_Status);
+}
+
+
+static const ber_sequence_t InformServiceCentreArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AlertServiceCentreArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_AlertReason_vals[] = {
+ { 0, "ms-Present" },
+ { 1, "memoryAvailable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AlertReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_alertReason(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AlertReason(FALSE, tvb, offset, actx, tree, hf_gsm_map_alertReason);
+}
+
+
+static const ber_sequence_t ReadyForSM_Arg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertReasonIndicator },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReadyForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ReadyForSM_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReadyForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Mt_ForwardSM_VGCS_Arg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Mt_ForwardSM_VGCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Mt_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_Mt_ForwardSM_VGCS_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t DispatcherList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DispatcherList_item },
+};
+
+static int
+dissect_gsm_map_DispatcherList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ DispatcherList_sequence_of, hf_index, ett_gsm_map_DispatcherList);
+
+ return offset;
+}
+static int dissect_dispatcherList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DispatcherList(TRUE, tvb, offset, actx, tree, hf_gsm_map_dispatcherList);
+}
+
+
+static const ber_sequence_t Mt_ForwardSM_VGCS_Res_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_UI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dispatcherList_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ongoingCall },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Mt_ForwardSM_VGCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Mt_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_Mt_ForwardSM_VGCS_Res);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_DomainType_vals[] = {
+ { 0, "cs-Domain" },
+ { 1, "ps-Domain" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_DomainType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_requestedDomain_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DomainType(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedDomain);
+}
+
+
+static const ber_sequence_t RequestedInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_flg_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberState_flg_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocation_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedDomain_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_flg_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_classmark_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mnpRequestedInfo_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo);
+
+ return offset;
+}
+static int dissect_requestedInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedInfo);
+}
+
+
+static const ber_sequence_t ProvideSubscriberInfoArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ProvideSubscriberInfoRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AnyTimeInterrogationArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AnyTimeInterrogationRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_ForBS_Code_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_ForBS_Code_sequence, hf_index, ett_gsm_map_SS_ForBS_Code);
+
+ return offset;
+}
+static int dissect_requestedSS_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_ForBS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedSS_Info);
+}
+
+
+static const value_string gsm_map_RequestedCAMEL_SubscriptionInfo_vals[] = {
+ { 0, "o-CSI" },
+ { 1, "t-CSI" },
+ { 2, "vt-CSI" },
+ { 3, "tif-CSI" },
+ { 4, "gprs-CSI" },
+ { 5, "mo-sms-CSI" },
+ { 6, "ss-CSI" },
+ { 7, "m-CSI" },
+ { 8, "d-csi" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_RequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_requestedCAMEL_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedCAMEL_SubscriptionInfo);
+}
+static int dissect_requestedCamel_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedCamel_SubscriptionInfo);
+}
+
+
+static const value_string gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = {
+ { 0, "mt-sms-CSI" },
+ { 1, "mg-csi" },
+ { 2, "o-IM-CSI" },
+ { 3, "d-IM-CSI" },
+ { 4, "vt-IM-CSI" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_additionalRequestedCAMEL_SubscriptionInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo);
+}
+static int dissect_additionalRequestedCAMEL_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo);
+}
+
+
+static const ber_sequence_t RequestedSubscriptionInfo_sequence[] = {
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedSS_Info_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedCAMEL_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_flg_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_flg_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRequestedCAMEL_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_BS_List_flag_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RequestedSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_RequestedSubscriptionInfo);
+
+ return offset;
+}
+static int dissect_requestedSubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestedSubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedSubscriptionInfo);
+}
+
+
+static const ber_sequence_t AnyTimeSubscriptionInterrogationArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedSubscriptionInfo_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CallForwardingData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_forwardingFeatureList },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CallForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallForwardingData_sequence, hf_index, ett_gsm_map_CallForwardingData);
+
+ return offset;
+}
+static int dissect_callForwardingData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallForwardingData(TRUE, tvb, offset, actx, tree, hf_gsm_map_callForwardingData);
+}
+
+
+
+static int
+dissect_gsm_map_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+ actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_password(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Password(FALSE, tvb, offset, actx, tree, hf_gsm_map_password);
+}
+static int dissect_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Password(TRUE, tvb, offset, actx, tree, hf_gsm_map_password);
+}
+
+
+
+static int
+dissect_gsm_map_WrongPasswordAttemptsCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_wrongPasswordAttemptsCounter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_WrongPasswordAttemptsCounter(FALSE, tvb, offset, actx, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
+}
+static int dissect_wrongPasswordAttemptsCounter_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_WrongPasswordAttemptsCounter(TRUE, tvb, offset, actx, tree, hf_gsm_map_wrongPasswordAttemptsCounter);
+}
+
+
+static const ber_sequence_t CallBarringData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_callBarringFeatureList },
+ { BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_password },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_wrongPasswordAttemptsCounter },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CallBarringData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CallBarringData_sequence, hf_index, ett_gsm_map_CallBarringData);
+
+ return offset;
+}
+static int dissect_callBarringData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallBarringData(TRUE, tvb, offset, actx, tree, hf_gsm_map_callBarringData);
+}
+
+
+static const ber_sequence_t ODB_Info_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_odb_Data },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ODB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ODB_Info_sequence, hf_index, ett_gsm_map_ODB_Info);
+
+ return offset;
+}
+static int dissect_odb_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ODB_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_Info);
+}
+
+
+static const ber_sequence_t CAMEL_SubscriptionInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_CSI_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_CSI_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_NotificationToCSE_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_m_CSI_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_specificCSIDeletedList_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mg_csi_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_CSI_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_BcsmCamelTDP_CriteriaList_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_IM_CSI_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_CSI_impl },
+ { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_CAMEL_SubscriptionInfo);
+
+ return offset;
+}
+static int dissect_camel_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_camel_SubscriptionInfo);
+}
+
+
+static const ber_sequence_t MSISDN_BS_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_MSISDN_BS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MSISDN_BS_sequence, hf_index, ett_gsm_map_MSISDN_BS);
+
+ return offset;
+}
+static int dissect_MSISDN_BS_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSISDN_BS(FALSE, tvb, offset, actx, tree, hf_gsm_map_MSISDN_BS_List_item);
+}
+
+
+static const ber_sequence_t MSISDN_BS_List_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_MSISDN_BS_List_item },
+};
+
+static int
+dissect_gsm_map_MSISDN_BS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_MSISDN_BS_List);
+
+ return offset;
+}
+static int dissect_msisdn_BS_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_MSISDN_BS_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_msisdn_BS_List);
+}
+
+
+static const ber_sequence_t AnyTimeSubscriptionInterrogationRes_sequence[] = {
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwardingData_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringData_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInVLR_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInSGSN_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_BS_List_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_GuidanceInfo_vals[] = {
+ { 0, "enterPW" },
+ { 1, "enterNewPW" },
+ { 2, "enterNewPW-Again" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_GuidanceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const asn_namedbit OfferedCamel4Functionalities_bits[] = {
+ { 0, &hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
+ { 1, &hf_gsm_map_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
+ { 2, &hf_gsm_map_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
+ { 3, &hf_gsm_map_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
+ { 4, &hf_gsm_map_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
+ { 5, &hf_gsm_map_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
+ { 6, &hf_gsm_map_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
+ { 7, &hf_gsm_map_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
+ { 8, &hf_gsm_map_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
+ { 9, &hf_gsm_map_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
+ { 10, &hf_gsm_map_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
+ { 11, &hf_gsm_map_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
+ { 12, &hf_gsm_map_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
+ { 13, &hf_gsm_map_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
+ { 14, &hf_gsm_map_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
+ { 15, &hf_gsm_map_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
+ { 16, &hf_gsm_map_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
+ { 17, &hf_gsm_map_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
+ { 18, &hf_gsm_map_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
+ { 19, &hf_gsm_map_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+int
+dissect_gsm_map_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_OfferedCamel4Functionalities,
+ NULL);
+
+ return offset;
+}
+static int dissect_offeredCamel4Functionalities(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OfferedCamel4Functionalities(FALSE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4Functionalities);
+}
+
+
+static const value_string gsm_map_ModificationInstruction_vals[] = {
+ { 0, "deactivate" },
+ { 1, "activate" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_ModificationInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_modifyNotificationToCSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ModificationInstruction(TRUE, tvb, offset, actx, tree, hf_gsm_map_modifyNotificationToCSE);
+}
+static int dissect_modifyCSI_State_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ModificationInstruction(TRUE, tvb, offset, actx, tree, hf_gsm_map_modifyCSI_State);
+}
+
+
+static const ber_sequence_t ModificationRequestFor_CF_Info_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_addr_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_noReplyConditionTime_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ModificationRequestFor_CF_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CF_Info);
+
+ return offset;
+}
+static int dissect_modificationRequestFor_CF_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ModificationRequestFor_CF_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_CF_Info);
+}
+
+
+static const ber_sequence_t ModificationRequestFor_CB_Info_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_password_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wrongPasswordAttemptsCounter_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ModificationRequestFor_CB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CB_Info);
+
+ return offset;
+}
+static int dissect_modificationRequestFor_CB_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ModificationRequestFor_CB_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_CB_Info);
+}
+
+
+static const ber_sequence_t ModificationRequestFor_CSI_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedCamel_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyCSI_State_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_additionalRequestedCAMEL_SubscriptionInfo },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ModificationRequestFor_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CSI);
+
+ return offset;
+}
+static int dissect_modificationRequestFor_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ModificationRequestFor_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_CSI);
+}
+
+
+static const ber_sequence_t ModificationRequestFor_ODB_data_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_data_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ModificationRequestFor_ODB_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ModificationRequestFor_ODB_data);
+
+ return offset;
+}
+static int dissect_modificationRequestFor_ODB_data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ModificationRequestFor_ODB_data(FALSE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_ODB_data);
+}
+
+
+static const ber_sequence_t AnyTimeModificationArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CF_Info_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CB_Info_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CSI_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_modificationRequestFor_ODB_data },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_AnyTimeModificationArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Ext_ForwardingInfoFor_CSE_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_forwardingFeatureList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Ext_ForwardingInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_ForwardingInfoFor_CSE);
+
+ return offset;
+}
+static int dissect_forwardingInfoFor_CSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_ForwardingInfoFor_CSE(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingInfoFor_CSE);
+}
+
+
+static const ber_sequence_t Ext_CallBarringInfoFor_CSE_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_callBarringFeatureList_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_password_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wrongPasswordAttemptsCounter_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Ext_CallBarringInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_CallBarringInfoFor_CSE);
+
+ return offset;
+}
+static int dissect_callBarringInfoFor_CSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_CallBarringInfoFor_CSE(TRUE, tvb, offset, actx, tree, hf_gsm_map_callBarringInfoFor_CSE);
+}
+
+
+static const value_string gsm_map_Ext_SS_InfoFor_CSE_vals[] = {
+ { 0, "forwardingInfoFor-CSE" },
+ { 1, "callBarringInfoFor-CSE" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Ext_SS_InfoFor_CSE_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfoFor_CSE_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfoFor_CSE_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Ext_SS_InfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_Ext_SS_InfoFor_CSE,
+ NULL);
+
+ return offset;
+}
+static int dissect_ss_InfoFor_CSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_SS_InfoFor_CSE(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_InfoFor_CSE);
+}
+
+
+static const ber_sequence_t AnyTimeModificationRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_InfoFor_CSE_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AnyTimeModificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_AnyTimeModificationRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoteSubscriberDataModifiedArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInfoFor_CSE_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringInfoFor_CSE_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_allInformationSent },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoteSubscriberDataModifiedArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoteSubscriberDataModifiedRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoteSubscriberDataModifiedRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoteMM_EventArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey },
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventMet_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCAMELPhases_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_locationInformationGPRS },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_offeredCamel4Functionalities },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoteMM_EventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoteMM_EventArg_sequence, hf_index, ett_gsm_map_NoteMM_EventArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoteMM_EventRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoteMM_EventRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoteMM_EventRes_sequence, hf_index, ett_gsm_map_NoteMM_EventRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_EventSpecification_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_SS_EventSpecification_item },
+};
+
+static int
+dissect_gsm_map_SS_EventSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_SS_EventSpecification);
+
+ return offset;
+}
+static int dissect_ss_EventSpecification_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SS_EventSpecification(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_EventSpecification);
+}
+
+
+static const value_string gsm_map_CCBS_RequestState_vals[] = {
+ { 0, "request" },
+ { 1, "recall" },
+ { 2, "active" },
+ { 3, "completed" },
+ { 4, "suspended" },
+ { 5, "frozen" },
+ { 6, "deleted" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CCBS_RequestState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ccbs_RequestState_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CCBS_RequestState(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_RequestState);
+}
+
+
+static const ber_sequence_t Ss_InvocationNotificationArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ss_Event_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_EventSpecification_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_RequestState_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Ss_InvocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Ss_InvocationNotificationRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Ss_InvocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gsm_map_CODEC_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_codec_Info(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CODEC_Info(FALSE, tvb, offset, actx, tree, hf_gsm_map_codec_Info);
+}
+
+
+
+static int
+dissect_gsm_map_CipheringAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_cipheringAlgorithm(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CipheringAlgorithm(FALSE, tvb, offset, actx, tree, hf_gsm_map_cipheringAlgorithm);
+}
+
+
+
+static int
+dissect_gsm_map_GroupKeyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_groupKeyNumber_Vk_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GroupKeyNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_groupKeyNumber_Vk_Id);
+}
+
+
+
+static int
+dissect_gsm_map_VSTK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_vstk_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VSTK(TRUE, tvb, offset, actx, tree, hf_gsm_map_vstk);
+}
+
+
+
+static int
+dissect_gsm_map_VSTK_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_vstk_rand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VSTK_RAND(TRUE, tvb, offset, actx, tree, hf_gsm_map_vstk_rand);
+}
+
+
+static const ber_sequence_t PrepareGroupCallArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_teleservice },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_codec_Info },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cipheringAlgorithm },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKeyNumber_Vk_Id_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKey_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkFree_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vstk_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vstk_rand_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t PrepareGroupCallRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_TalkerPriority_vals[] = {
+ { 0, "normal" },
+ { 1, "privileged" },
+ { 2, "emergency" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_TalkerPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_talkerPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TalkerPriority(TRUE, tvb, offset, actx, tree, hf_gsm_map_talkerPriority);
+}
+
+
+static const ber_sequence_t SendGroupCallEndSignalArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SendGroupCallEndSignalRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ProcessGroupCallSignallingArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseGroupCall_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_emergencyModeResetCommandFlag_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t StateAttributes_sequence[] = {
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_downlinkAttached_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkAttached_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dualCommunication_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOriginator_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_StateAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ StateAttributes_sequence, hf_index, ett_gsm_map_StateAttributes);
+
+ return offset;
+}
+static int dissect_stateAttributes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_StateAttributes(TRUE, tvb, offset, actx, tree, hf_gsm_map_stateAttributes);
+}
+
+
+static const value_string gsm_map_GroupRequestedInfo_vals[] = {
+ { 0, "anchorMSC-AddressAndASCI-CallReference" },
+ { 1, "imsiAndAdditionalInfoAndAdditionalSubscription" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_GroupRequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_groupRequestedInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_GroupRequestedInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupRequestedInfo);
+}
+
+
+static const ber_sequence_t SendGroupCallInfoArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_groupRequestedInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cellId_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tmsi_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cksn_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendGroupCallInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_SendGroupCallInfoArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SendGroupCallInfoRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_anchorMSC_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asciCallReference_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSubscriptions_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_kc_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendGroupCallInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_SendGroupCallInfoRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ForwardGroupCallSignallingArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRejectCommand_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkSeizedCommand_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseCommand_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_stateAttributes_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_emergencyModeResetCommandFlag_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_UI_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SGSN_Capability_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_superChargerSupportedInServingNetworkEntity_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsEnhancementsSupportIndicator_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_smsCallBarringSupportIndicator_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedRAT_TypesIndicator_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SGSN_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SGSN_Capability_sequence, hf_index, ett_gsm_map_SGSN_Capability);
+
+ return offset;
+}
+static int dissect_sgsn_Capability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SGSN_Capability(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Capability);
+}
+
+
+static const ber_sequence_t UpdateGprsLocationArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Address },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Capability_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_informPreviousNetworkEntity_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ps_LCS_NotSupportedByUE_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_v_gmlc_Address_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_info_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UpdateGprsLocationRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_add_Capability },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SendRoutingInfoForGprsArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SendRoutingInfoForGprsRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mobileNotReachableReason_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t FailureReportArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t FailureReportRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoteMsPresentForGprsArg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoteMsPresentForGprsRes_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_LocationEstimateType_vals[] = {
+ { 0, "currentLocation" },
+ { 1, "currentOrLastKnownLocation" },
+ { 2, "initialLocation" },
+ { 3, "activateDeferredLocation" },
+ { 4, "cancelDeferredLocation" },
+ { 5, "notificationVerificationOnly" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_LocationEstimateType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_locationEstimateType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationEstimateType(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationEstimateType);
+}
+
+
+static const asn_namedbit DeferredLocationEventType_bits[] = {
+ { 0, &hf_gsm_map_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL },
+ { 1, &hf_gsm_map_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL },
+ { 2, &hf_gsm_map_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL },
+ { 3, &hf_gsm_map_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL },
+ { 4, &hf_gsm_map_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+int
+dissect_gsm_map_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ DeferredLocationEventType_bits, hf_index, ett_gsm_map_DeferredLocationEventType,
+ NULL);
+
+ return offset;
+}
+static int dissect_deferredLocationEventType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DeferredLocationEventType(FALSE, tvb, offset, actx, tree, hf_gsm_map_deferredLocationEventType);
+}
+static int dissect_deferredLocationEventType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_DeferredLocationEventType(TRUE, tvb, offset, actx, tree, hf_gsm_map_deferredLocationEventType);
+}
+
+
+static const ber_sequence_t LocationType_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredLocationEventType_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_LocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LocationType_sequence, hf_index, ett_gsm_map_LocationType);
+
+ return offset;
+}
+static int dissect_locationType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LocationType(FALSE, tvb, offset, actx, tree, hf_gsm_map_locationType);
+}
+
+
+static const value_string gsm_map_LCSClientType_vals[] = {
+ { 0, "emergencyServices" },
+ { 1, "valueAddedServices" },
+ { 2, "plmnOperatorServices" },
+ { 3, "lawfulInterceptServices" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_LCSClientType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_lcsClientType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSClientType(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientType);
+}
+
+
+
+static int
+dissect_gsm_map_NameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+static int dissect_nameString_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NameString(TRUE, tvb, offset, actx, tree, hf_gsm_map_nameString);
+}
+
+
+static const value_string gsm_map_LCS_FormatIndicator_vals[] = {
+ { 0, "logicalName" },
+ { 1, "e-mailAddress" },
+ { 2, "msisdn" },
+ { 3, "url" },
+ { 4, "sipUrl" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_LCS_FormatIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_lcs_FormatIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_FormatIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_FormatIndicator);
+}
+
+
+static const ber_sequence_t LCSClientName_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_FormatIndicator_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCSClientName_sequence, hf_index, ett_gsm_map_LCSClientName);
+
+ return offset;
+}
+static int dissect_lcsClientName_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSClientName(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientName);
+}
+
+
+
+static int
+dissect_gsm_map_RequestorIDString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+static int dissect_requestorIDString_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RequestorIDString(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestorIDString);
+}
+
+
+static const ber_sequence_t LCSRequestorID_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestorIDString_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_FormatIndicator_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCSRequestorID_sequence, hf_index, ett_gsm_map_LCSRequestorID);
+
+ return offset;
+}
+static int dissect_lcsRequestorID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSRequestorID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsRequestorID);
+}
+
+
+static const ber_sequence_t LCS_ClientID_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientDialedByMS_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientInternalID_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientName_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsAPN_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsRequestorID_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_LCS_ClientID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCS_ClientID_sequence, hf_index, ett_gsm_map_LCS_ClientID);
+
+ return offset;
+}
+static int dissect_lcs_ClientID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_ClientID(FALSE, tvb, offset, actx, tree, hf_gsm_map_lcs_ClientID);
+}
+static int dissect_lcs_ClientID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_ClientID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_ClientID);
+}
+
+
+
+static int
+dissect_gsm_map_LCS_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_lcs_Priority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_Priority);
+}
+
+
+
+static int
+dissect_gsm_map_Horizontal_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_horizontal_accuracy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Horizontal_Accuracy(TRUE, tvb, offset, actx, tree, hf_gsm_map_horizontal_accuracy);
+}
+
+
+
+static int
+dissect_gsm_map_Vertical_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_vertical_accuracy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Vertical_Accuracy(TRUE, tvb, offset, actx, tree, hf_gsm_map_vertical_accuracy);
+}
+
+
+static const value_string gsm_map_ResponseTimeCategory_vals[] = {
+ { 0, "lowdelay" },
+ { 1, "delaytolerant" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_ResponseTimeCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_responseTimeCategory(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ResponseTimeCategory(FALSE, tvb, offset, actx, tree, hf_gsm_map_responseTimeCategory);
+}
+
+
+static const ber_sequence_t ResponseTime_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ResponseTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ResponseTime_sequence, hf_index, ett_gsm_map_ResponseTime);
+
+ return offset;
+}
+static int dissect_responseTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ResponseTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_responseTime);
+}
+
+
+static const ber_sequence_t LCS_QoS_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vertical_accuracy_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseTime_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_velocityRequest_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCS_QoS_sequence, hf_index, ett_gsm_map_LCS_QoS);
+
+ return offset;
+}
+static int dissect_lcs_QoS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_QoS(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_QoS);
+}
+
+
+static const asn_namedbit SupportedGADShapes_bits[] = {
+ { 0, &hf_gsm_map_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL },
+ { 1, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL },
+ { 2, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL },
+ { 3, &hf_gsm_map_SupportedGADShapes_polygon, -1, -1, "polygon", NULL },
+ { 4, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL },
+ { 5, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL },
+ { 6, &hf_gsm_map_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+int
+dissect_gsm_map_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx->pinfo, tree, tvb, offset,
+ SupportedGADShapes_bits, hf_index, ett_gsm_map_SupportedGADShapes,
+ NULL);
+
+ return offset;
+}
+static int dissect_supportedGADShapes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SupportedGADShapes(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedGADShapes);
+}
+
+
+
+int
+dissect_gsm_map_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_lcs_ReferenceNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_ReferenceNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_ReferenceNumber);
+}
+
+
+
+static int
+dissect_gsm_map_LCSCodewordString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+static int dissect_lcsCodewordString_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSCodewordString(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsCodewordString);
+}
+
+
+static const ber_sequence_t LCSCodeword_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsCodewordString_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCSCodeword_sequence, hf_index, ett_gsm_map_LCSCodeword);
+
+ return offset;
+}
+static int dissect_lcsCodeword_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSCodeword(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsCodeword);
+}
+
+
+static const value_string gsm_map_PrivacyCheckRelatedAction_vals[] = {
+ { 0, "allowedWithoutNotification" },
+ { 1, "allowedWithNotification" },
+ { 2, "allowedIfNoResponse" },
+ { 3, "restrictedIfNoResponse" },
+ { 4, "notAllowed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_PrivacyCheckRelatedAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_callSessionUnrelated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PrivacyCheckRelatedAction(TRUE, tvb, offset, actx, tree, hf_gsm_map_callSessionUnrelated);
+}
+static int dissect_callSessionRelated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PrivacyCheckRelatedAction(TRUE, tvb, offset, actx, tree, hf_gsm_map_callSessionRelated);
+}
+
+
+static const ber_sequence_t LCS_PrivacyCheck_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callSessionUnrelated_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSessionRelated_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_LCS_PrivacyCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_LCS_PrivacyCheck);
+
+ return offset;
+}
+static int dissect_lcs_PrivacyCheck_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_PrivacyCheck(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_PrivacyCheck);
+}
+
+
+static const value_string gsm_map_AreaType_vals[] = {
+ { 0, "countryCode" },
+ { 1, "plmnId" },
+ { 2, "locationAreaId" },
+ { 3, "routingAreaId" },
+ { 4, "cellGlobalId" },
+ { 5, "utranCellId" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AreaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_areaType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AreaType(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaType);
+}
+
+
+
+static int
+dissect_gsm_map_AreaIdentification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_areaIdentification_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AreaIdentification(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaIdentification);
+}
+
+
+static const ber_sequence_t Area_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaType_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_areaIdentification_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Area(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Area_sequence, hf_index, ett_gsm_map_Area);
+
+ return offset;
+}
+static int dissect_AreaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Area(FALSE, tvb, offset, actx, tree, hf_gsm_map_AreaList_item);
+}
+
+
+static const ber_sequence_t AreaList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AreaList_item },
+};
+
+static int
+dissect_gsm_map_AreaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ AreaList_sequence_of, hf_index, ett_gsm_map_AreaList);
+
+ return offset;
+}
+static int dissect_areaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AreaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaList);
+}
+
+
+static const ber_sequence_t AreaDefinition_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaList_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AreaDefinition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AreaDefinition_sequence, hf_index, ett_gsm_map_AreaDefinition);
+
+ return offset;
+}
+static int dissect_areaDefinition_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AreaDefinition(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaDefinition);
+}
+
+
+static const value_string gsm_map_OccurrenceInfo_vals[] = {
+ { 0, "oneTimeEvent" },
+ { 1, "multipleTimeEvent" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_OccurrenceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_occurrenceInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OccurrenceInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_occurrenceInfo);
+}
+
+
+
+static int
+dissect_gsm_map_IntervalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_intervalTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_IntervalTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_intervalTime);
+}
+
+
+static const ber_sequence_t AreaEventInfo_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaDefinition_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_occurrenceInfo_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_intervalTime_impl },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AreaEventInfo_sequence, hf_index, ett_gsm_map_AreaEventInfo);
+
+ return offset;
+}
+static int dissect_areaEventInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AreaEventInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaEventInfo);
+}
+
+
+
+static int
+dissect_gsm_map_ReportingAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_reportingAmount(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReportingAmount(FALSE, tvb, offset, actx, tree, hf_gsm_map_reportingAmount);
+}
+
+
+
+static int
+dissect_gsm_map_ReportingInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_reportingInterval(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReportingInterval(FALSE, tvb, offset, actx, tree, hf_gsm_map_reportingInterval);
+}
+
+
+static const ber_sequence_t PeriodicLDRInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reportingAmount },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reportingInterval },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PeriodicLDRInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_PeriodicLDRInfo);
+
+ return offset;
+}
+static int dissect_periodicLDRInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PeriodicLDRInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_periodicLDRInfo);
+}
+
+
+static const value_string gsm_map_RAN_Technology_vals[] = {
+ { 0, "gsm" },
+ { 1, "umts" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_RAN_Technology(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ran_Technology_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RAN_Technology(TRUE, tvb, offset, actx, tree, hf_gsm_map_ran_Technology);
+}
+
+
+static const ber_sequence_t ReportingPLMN_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_plmn_Id_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ran_Technology_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ran_PeriodicLocationSupport_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReportingPLMN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReportingPLMN_sequence, hf_index, ett_gsm_map_ReportingPLMN);
+
+ return offset;
+}
+static int dissect_PLMNList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReportingPLMN(FALSE, tvb, offset, actx, tree, hf_gsm_map_PLMNList_item);
+}
+
+
+static const ber_sequence_t PLMNList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PLMNList_item },
+};
+
+static int
+dissect_gsm_map_PLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ PLMNList_sequence_of, hf_index, ett_gsm_map_PLMNList);
+
+ return offset;
+}
+static int dissect_plmn_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PLMNList(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmn_List);
+}
+
+
+static const ber_sequence_t ReportingPLMNList_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmn_ListPrioritized_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_plmn_List_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ReportingPLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ReportingPLMNList_sequence, hf_index, ett_gsm_map_ReportingPLMNList);
+
+ return offset;
+}
+static int dissect_reportingPLMNList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ReportingPLMNList(TRUE, tvb, offset, actx, tree, hf_gsm_map_reportingPLMNList);
+}
+
+
+static const ber_sequence_t ProvideSubscriberLocation_Arg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ClientID_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privacyOverride_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_Priority_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_QoS_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedGADShapes_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ReferenceNumber_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsServiceTypeID_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsCodeword_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyCheck_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_areaEventInfo_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h_gmlc_Address_impl },
+ { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_periodicLDRInfo_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reportingPLMNList_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg);
+
+ return offset;
+}
+
+
+
+int
+dissect_gsm_map_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_locationEstimate(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_GeographicalInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_locationEstimate);
+}
+static int dissect_locationEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Ext_GeographicalInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationEstimate);
+}
+
+
+
+int
+dissect_gsm_map_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_add_LocationEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Add_GeographicalInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_add_LocationEstimate);
+}
+
+
+
+static int
+dissect_gsm_map_PositioningDataInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_geranPositioningData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PositioningDataInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_geranPositioningData);
+}
+
+
+
+static int
+dissect_gsm_map_UtranPositioningDataInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_utranPositioningData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UtranPositioningDataInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_utranPositioningData);
+}
+
+
+static const value_string gsm_map_AccuracyFulfilmentIndicator_vals[] = {
+ { 0, "requestedAccuracyFulfilled" },
+ { 1, "requestedAccuracyNotFulfilled" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AccuracyFulfilmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_accuracyFulfilmentIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AccuracyFulfilmentIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_accuracyFulfilmentIndicator);
+}
+
+
+
+static int
+dissect_gsm_map_VelocityEstimate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_velocityEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_VelocityEstimate(TRUE, tvb, offset, actx, tree, hf_gsm_map_velocityEstimate);
+}
+
+
+static const ber_sequence_t ProvideSubscriberLocation_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_LocationEstimate_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredmt_lrResponseIndicator_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranPositioningData_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranPositioningData_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellIdOrSai_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accuracyFulfilmentIndicator_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_velocityEstimate_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ProvideSubscriberLocation_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RoutingInfoForLCS_Arg_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_targetMS_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RoutingInfoForLCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t LCSLocationInfo_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_networkNode_Number },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_additional_Number_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additional_LCS_CapabilitySets_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_LCSLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LCSLocationInfo_sequence, hf_index, ett_gsm_map_LCSLocationInfo);
+
+ return offset;
+}
+static int dissect_lcsLocationInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSLocationInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_lcsLocationInfo);
+}
+static int dissect_lcsLocationInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCSLocationInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsLocationInfo);
+}
+
+
+static const ber_sequence_t RoutingInfoForLCS_Res_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS },
+ { BER_CLASS_CON, 1, 0, dissect_lcsLocationInfo },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_extensionContainer },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_v_gmlc_Address },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_h_gmlc_Address },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_ppr_Address },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_additional_v_gmlc_Address },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RoutingInfoForLCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_LCS_Event_vals[] = {
+ { 0, "emergencyCallOrigination" },
+ { 1, "emergencyCallRelease" },
+ { 2, "mo-lr" },
+ { 3, "deferredmt-lrResponse" },
+ { 4, "deferredmo-lrTTTPInitiation" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_LCS_Event(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_lcs_Event(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_LCS_Event(FALSE, tvb, offset, actx, tree, hf_gsm_map_lcs_Event);
+}
+
+
+static const value_string gsm_map_TerminationCause_vals[] = {
+ { 0, "normal" },
+ { 1, "errorundefined" },
+ { 2, "internalTimeout" },
+ { 3, "congestion" },
+ { 4, "mt-lrRestart" },
+ { 5, "privacyViolation" },
+ { 6, "shapeOfLocationEstimateNotSupported" },
+ { 7, "subscriberTermination" },
+ { 8, "uETermination" },
+ { 9, "networkTermination" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_terminationCause_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_TerminationCause(TRUE, tvb, offset, actx, tree, hf_gsm_map_terminationCause);
+}
+
+
+static const ber_sequence_t Deferredmt_lrData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_deferredLocationEventType },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminationCause_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsLocationInfo_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Deferredmt_lrData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Deferredmt_lrData_sequence, hf_index, ett_gsm_map_Deferredmt_lrData);
+
+ return offset;
+}
+static int dissect_deferredmt_lrData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_Deferredmt_lrData(TRUE, tvb, offset, actx, tree, hf_gsm_map_deferredmt_lrData);
+}
+
+
+
+static int
+dissect_gsm_map_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_sequenceNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SequenceNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_sequenceNumber);
+}
+
+
+static const ber_sequence_t SubscriberLocationReport_Arg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcsLocationInfo },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationEstimate_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl },
+ { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_slr_ArgExtensionContainer_impl },
+ { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_LocationEstimate_impl },
+ { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredmt_lrData_impl },
+ { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ReferenceNumber_impl },
+ { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranPositioningData_impl },
+ { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranPositioningData_impl },
+ { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellIdOrSai_impl },
+ { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h_gmlc_Address_impl },
+ { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsServiceTypeID_impl },
+ { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl },
+ { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pseudonymIndicator_impl },
+ { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_velocityEstimate_impl },
+ { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accuracyFulfilmentIndicator_impl },
+ { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sequenceNumber_impl },
+ { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_periodicLDRInfo_impl },
+ { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SubscriberLocationReport_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SubscriberLocationReport_Res_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h_gmlc_Address_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reportingPLMNList_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ReferenceNumber_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gsm_map_SecurityParametersIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_securityParametersIndex(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SecurityParametersIndex(FALSE, tvb, offset, actx, tree, hf_gsm_map_securityParametersIndex);
+}
+
+
+
+static int
+dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_localValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_INTEGER(FALSE, tvb, offset, actx, tree, hf_gsm_map_localValue);
+}
+
+
+static const value_string gsm_map_OperationCode_vals[] = {
+ { 0, "localValue" },
+ { 1, "globalValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t OperationCode_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ OperationCode_choice, hf_index, ett_gsm_map_OperationCode,
+ NULL);
+
+ return offset;
+}
+static int dissect_operationCode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OperationCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_operationCode);
+}
+
+
+static const value_string gsm_map_ErrorCode_vals[] = {
+ { 0, "localValue" },
+ { 1, "globalValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ErrorCode_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ ErrorCode_choice, hf_index, ett_gsm_map_ErrorCode,
+ NULL);
+
+ return offset;
+}
+static int dissect_errorCode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ErrorCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_errorCode);
+}
+
+
+static const value_string gsm_map_OriginalComponentIdentifier_vals[] = {
+ { 0, "operationCode" },
+ { 1, "errorCode" },
+ { 2, "userInfo" },
+ { 0, NULL }
+};
+
+static const ber_choice_t OriginalComponentIdentifier_choice[] = {
+ { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_operationCode_impl },
+ { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_errorCode_impl },
+ { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_userInfo_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_OriginalComponentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ OriginalComponentIdentifier_choice, hf_index, ett_gsm_map_OriginalComponentIdentifier,
+ NULL);
+
+ return offset;
+}
+static int dissect_originalComponentIdentifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OriginalComponentIdentifier(FALSE, tvb, offset, actx, tree, hf_gsm_map_originalComponentIdentifier);
+}
+
+
+
+static int
+dissect_gsm_map_InitialisationVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_initialisationVector(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_InitialisationVector(FALSE, tvb, offset, actx, tree, hf_gsm_map_initialisationVector);
+}
+
+
+static const ber_sequence_t SecurityHeader_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_securityParametersIndex },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_originalComponentIdentifier },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_initialisationVector },
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_gsm_map_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SecurityHeader_sequence, hf_index, ett_gsm_map_SecurityHeader);
+
+ return offset;
+}
+static int dissect_securityHeader(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SecurityHeader(FALSE, tvb, offset, actx, tree, hf_gsm_map_securityHeader);
+}
+
+
+
+int
+dissect_gsm_map_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_protectedPayload(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ProtectedPayload(FALSE, tvb, offset, actx, tree, hf_gsm_map_protectedPayload);
+}
+
+
+static const ber_sequence_t SecureTransportArg_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SecureTransportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SecureTransportArg_sequence, hf_index, ett_gsm_map_SecureTransportArg);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SecureTransportRes_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SecureTransportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SecureTransportRes_sequence, hf_index, ett_gsm_map_SecureTransportRes);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_NetworkResource_vals[] = {
+ { 0, "plmn" },
+ { 1, "hlr" },
+ { 2, "vlr" },
+ { 3, "pvlr" },
+ { 4, "controllingMSC" },
+ { 5, "vmsc" },
+ { 6, "eir" },
+ { 7, "rss" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_networkResource(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, actx, tree, hf_gsm_map_networkResource);
+}
+
+
+static const value_string gsm_map_AdditionalNetworkResource_vals[] = {
+ { 0, "sgsn" },
+ { 1, "ggsn" },
+ { 2, "gmlc" },
+ { 3, "gsmSCF" },
+ { 4, "nplr" },
+ { 5, "auc" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AdditionalNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_additionalNetworkResource_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalNetworkResource(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalNetworkResource);
+}
+
+
+
+static int
+dissect_gsm_map_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_operatorSS_Code_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, actx, tree, hf_gsm_map_operatorSS_Code_item);
+}
+
+
+static const ber_sequence_t T_operatorSS_Code_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_operatorSS_Code_item },
+};
+
+static int
+dissect_gsm_map_T_operatorSS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_operatorSS_Code_sequence_of, hf_index, ett_gsm_map_T_operatorSS_Code);
+
+ return offset;
+}
+static int dissect_operatorSS_Code_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_T_operatorSS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_operatorSS_Code);
+}
+
+
+static const ber_sequence_t PlmnContainer_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_operatorSS_Code_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PlmnContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PlmnContainer_sequence, hf_index, ett_gsm_map_PlmnContainer);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ExtensibleSystemFailureParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalNetworkResource_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ExtensibleSystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_ExtensibleSystemFailureParam);
+
+ return offset;
+}
+static int dissect_extensibleSystemFailureParam(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExtensibleSystemFailureParam(FALSE, tvb, offset, actx, tree, hf_gsm_map_extensibleSystemFailureParam);
+}
+
+
+static const value_string gsm_map_SystemFailureParam_vals[] = {
+ { 0, "networkResource" },
+ { 1, "extensibleSystemFailureParam" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SystemFailureParam_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_networkResource },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleSystemFailureParam },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t DataMissingParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UnexpectedDataParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t FacilityNotSupParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_shapeOfLocationEstimateNotSupported_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_neededLcsCapabilityNotSupportedInServingNode_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IncompatibleTerminalParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ResourceLimitationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_UnknownSubscriberDiagnostic_vals[] = {
+ { 0, "imsiUnknown" },
+ { 1, "gprsSubscriptionUnknown" },
+ { 2, "npdbMismatch" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_UnknownSubscriberDiagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_unknownSubscriberDiagnostic(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UnknownSubscriberDiagnostic(FALSE, tvb, offset, actx, tree, hf_gsm_map_unknownSubscriberDiagnostic);
+}
+
+
+static const ber_sequence_t UnknownSubscriberParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NumberChangedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UnidentifiedSubParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_RoamingNotAllowedCause_vals[] = {
+ { 0, "plmnRoamingNotAllowed" },
+ { 3, "operatorDeterminedBarring" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_RoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_roamingNotAllowedCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_RoamingNotAllowedCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_roamingNotAllowedCause);
+}
+
+
+static const value_string gsm_map_AdditionalRoamingNotAllowedCause_vals[] = {
+ { 0, "supportedRAT-TypesNotAllowed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AdditionalRoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_additionalRoamingNotAllowedCause_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AdditionalRoamingNotAllowedCause(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalRoamingNotAllowedCause);
+}
+
+
+static const ber_sequence_t RoamingNotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRoamingNotAllowedCause_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IllegalSubscriberParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IllegalEquipmentParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t BearerServNotProvParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TeleservNotProvParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TracingBufferFullParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoRoamingNbParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_AbsentSubscriberReason_vals[] = {
+ { 0, "imsiDetach" },
+ { 1, "restrictedArea" },
+ { 2, "noPageResponse" },
+ { 3, "purgedMS" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_AbsentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_absentSubscriberReason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_AbsentSubscriberReason(TRUE, tvb, offset, actx, tree, hf_gsm_map_absentSubscriberReason);
+}
+
+
+static const ber_sequence_t AbsentSubscriberParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t BusySubscriberParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Busy_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoSubscriberReplyParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ForwardingViolationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ForwardingFailedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ATI_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ATI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATI_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ATSI_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ATSI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATSI_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ATM_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ATM_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATM_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IllegalSS_OperationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_IllegalSS_OperationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_IllegalSS_OperationParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_NotAvailableParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SS_NotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_SS_NotAvailableParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_SubscriptionViolationParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SS_SubscriptionViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_SS_SubscriptionViolationParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t InformationNotAvailableParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_InformationNotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_InformationNotAvailableParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SubBusyForMT_SMS_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SubBusyForMT_SMS_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_CallBarringCause_vals[] = {
+ { 0, "barringServiceActive" },
+ { 1, "operatorBarring" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_callBarringCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_callBarringCause);
+}
+
+
+static const ber_sequence_t ExtensibleCallBarredParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ExtensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_ExtensibleCallBarredParam);
+
+ return offset;
+}
+static int dissect_extensibleCallBarredParam(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_ExtensibleCallBarredParam(FALSE, tvb, offset, actx, tree, hf_gsm_map_extensibleCallBarredParam);
+}
+
+
+static const value_string gsm_map_CallBarredParam_vals[] = {
+ { 0, "callBarringCause" },
+ { 1, "extensibleCallBarredParam" },
+ { 0, NULL }
+};
+
+static const ber_choice_t CallBarredParam_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_callBarringCause },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleCallBarredParam },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_CUG_RejectCause_vals[] = {
+ { 0, "incomingCallsBarredWithinCUG" },
+ { 1, "subscriberNotMemberOfCUG" },
+ { 5, "requestedBasicServiceViolatesCUG-Constraints" },
+ { 7, "calledPartySS-InteractionViolation" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_CUG_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_cug_RejectCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_CUG_RejectCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_RejectCause);
+}
+
+
+static const ber_sequence_t CUG_RejectParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_CUG_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ CUG_RejectParam_sequence, hf_index, ett_gsm_map_CUG_RejectParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Or_NotAllowedParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_Or_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t NoGroupCallNbParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SS_IncompatibilityCause_sequence[] = {
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SS_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_SS_IncompatibilityCause);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_PW_RegistrationFailureCause_vals[] = {
+ { 0, "undetermined" },
+ { 1, "invalidFormat" },
+ { 2, "newPasswordsMismatch" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_PW_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ShortTermDenialParam_sequence[] = {
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t LongTermDenialParam_sequence[] = {
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_SM_EnumeratedDeliveryFailureCause_vals[] = {
+ { 0, "memoryCapacityExceeded" },
+ { 1, "equipmentProtocolError" },
+ { 2, "equipmentNotSM-Equipped" },
+ { 3, "unknownServiceCentre" },
+ { 4, "sc-Congestion" },
+ { 5, "invalidSME-Address" },
+ { 6, "subscriberNotSC-Subscriber" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_SM_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_sm_EnumeratedDeliveryFailureCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_SM_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause);
+}
+
+
+static const ber_sequence_t SM_DeliveryFailureCause_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SM_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_SM_DeliveryFailureCause);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MessageWaitListFullParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AbsentSubscriberSM_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_AbsentSubscriberSM_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UnauthorizedRequestingNetwork_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UnauthorizedRequestingNetwork_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_UnauthorizedLCSClient_Diagnostic_vals[] = {
+ { 0, "noAdditionalInformation" },
+ { 1, "clientNotInMSPrivacyExceptionList" },
+ { 2, "callToClientNotSetup" },
+ { 3, "privacyOverrideNotApplicable" },
+ { 4, "disallowedByLocalRegulatoryRequirements" },
+ { 5, "unauthorizedPrivacyClass" },
+ { 6, "unauthorizedCallSessionUnrelatedExternalClient" },
+ { 7, "unauthorizedCallSessionRelatedExternalClient" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_UnauthorizedLCSClient_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_unauthorizedLCSClient_Diagnostic_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_UnauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, actx, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic);
+}
+
+
+static const ber_sequence_t UnauthorizedLCSClient_Param_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param);
+
+ return offset;
+}
+
+
+static const value_string gsm_map_PositionMethodFailure_Diagnostic_vals[] = {
+ { 0, "congestion" },
+ { 1, "insufficientResources" },
+ { 2, "insufficientMeasurementData" },
+ { 3, "inconsistentMeasurementData" },
+ { 4, "locationProcedureNotCompleted" },
+ { 5, "locationProcedureNotSupportedByTargetMS" },
+ { 6, "qoSNotAttainable" },
+ { 7, "positionMethodNotAvailableInNetwork" },
+ { 8, "positionMethodNotAvailableInLocationArea" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gsm_map_PositionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_positionMethodFailure_Diagnostic_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
+ return dissect_gsm_map_PositionMethodFailure_Diagnostic(TRUE, tvb, offset, actx, tree, hf_gsm_map_positionMethodFailure_Diagnostic);
+}
+
+
+static const ber_sequence_t PositionMethodFailure_Param_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t UnknownOrUnreachableLCSClient_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t MM_EventNotSupported_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_MM_EventNotSupported_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_MM_EventNotSupported_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TargetCellOutsideGCA_Param_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_TargetCellOutsideGCA_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_TargetCellOutsideGCA_Param);
+
+ return offset;
+}
+
+
+static const ber_sequence_t OngoingGroupCallParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_OngoingGroupCallParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_OngoingGroupCallParam);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SecureTransportErrorParam_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader },
+ { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gsm_map_SecureTransportErrorParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ SecureTransportErrorParam_sequence, hf_index, ett_gsm_map_SecureTransportErrorParam);
+
+ return offset;
+}
+
+/*--- PDUs ---*/
+
+static void dissect_Component_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_gsm_map_Component(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_Component_PDU);
+}
+
+
+/*--- End of included file: packet-gsm_map-fn.c ---*/
+#line 560 "packet-gsm_map-template.c"
+
+/* Specific translation for MAP V3 */
+const value_string gsm_map_V3_opr_code_strings[] = {
+ { 44, "mt-forwardSM" },
+ { 46, "mo-forwardSM" },
+ { 0, NULL }
+};
+/* Generic translation for MAP operation */
+const value_string gsm_map_opr_code_strings[] = {
+ { 2, "updateLocation" },
+ { 3, "cancelLocation" },
+ { 4, "provideRoamingNumber" },
+ { 5, "noteSubscriberDataModified" },
+ { 6, "resumeCallHandling" },
+ { 7, "insertSubscriberData" },
+ { 8, "deleteSubscriberData" },
+ { 9, "sendParameters" }, /* map-ac infoRetrieval (14) version1 (1)*/
+ { 10, "registerSS" },
+ { 11, "eraseSS" },
+ { 12, "activateSS" },
+ { 13, "deactivateSS" },
+ { 14, "interrogateSS" },
+ { 15, "authenticationFailureReport" },
+ { 17, "registerPassword" },
+ { 18, "getPassword" },
+ { 19, "processUnstructuredSS-Data" }, /* map-ac networkFunctionalSs (18) version1 (1) */
+ { 20, "releaseResources" },
+ { 21, "mtForwardSM-VGCS" },
+ { 22, "sendRoutingInfo" },
+ { 23, "updateGprsLocation" },
+ { 24, "sendRoutingInfoForGprs" },
+ { 25, "failureReport" },
+ { 26, "noteMsPresentForGprs" },
+ { 28, "performHandover" }, /* map-ac handoverControl (11) version1 (1)*/
+ { 29, "sendEndSignal" },
+ { 30, "performSubsequentHandover" }, /* map-ac handoverControl (11) version1 (1) */
+ { 31, "provideSIWFSNumber" },
+ { 32, "sIWFSSignallingModify" },
+ { 33, "processAccessSignalling" },
+ { 34, "forwardAccessSignalling" },
+ { 35, "noteInternalHandover" }, /* map-ac handoverControl (11) version1 (1) */
+ { 37, "reset" },
+ { 38, "forwardCheckSS-Indication" },
+ { 39, "prepareGroupCall" },
+ { 40, "sendGroupCallEndSignal" },
+ { 41, "processGroupCallSignalling" },
+ { 42, "forwardGroupCallSignalling" },
+ { 43, "checkIMEI" },
+ { 44, "forwardSM" },
+ { 45, "sendRoutingInfoForSM" },
+ { 46, "forwardSM" },
+ { 47, "reportSM-DeliveryStatus" },
+ { 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
+ { 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
+ { 50, "activateTraceMode" },
+ { 51, "deactivateTraceMode" },
+ { 52, "traceSubscriberActivity" }, /* map-ac handoverControl (11) version1 (1) */
+ { 54, "beginSubscriberActivity" }, /* map-ac networkFunctionalSs (18) version1 (1) */
+ { 55, "sendIdentification" },
+ { 56, "sendAuthenticationInfo" },
+ { 57, "restoreData" },
+ { 58, "sendIMSI" },
+ { 59, "processUnstructuredSS-Request" },
+ { 60, "unstructuredSS-Request" },
+ { 61, "unstructuredSS-Notify" },
+ { 62, "anyTimeSubscriptionInterrogation" },
+ { 63, "informServiceCentre" },
+ { 64, "alertServiceCentre" },
+ { 65, "anyTimeModification" },
+ { 66, "readyForSM" },
+ { 67, "purgeMS" },
+ { 68, "prepareHandover" },
+ { 69, "prepareSubsequentHandover" },
+ { 70, "provideSubscriberInfo" },
+ { 71, "anyTimeInterrogation" },
+ { 72, "ss-InvocationNotification" },
+ { 73, "setReportingState" },
+ { 74, "statusReport" },
+ { 75, "remoteUserFree" },
+ { 76, "registerCC-Entry" },
+ { 77, "eraseCC-Entry" },
+ { 78, "secureTransportClass1" },
+ { 79, "secureTransportClass2" },
+ { 80, "secureTransportClass3" },
+ { 81, "secureTransportClass4" },
+ { 83, "provideSubscriberLocation" },
+ { 84, "sendGroupCallInfo" },
+ { 85, "sendRoutingInfoForLCS" },
+ { 86, "subscriberLocationReport" },
+ { 87, "ist-Alert" },
+ { 88, "ist-Command" },
+ { 89, "noteMM-Event" },
+ { 0, NULL }
+};
+static const value_string gsm_map_err_code_string_vals[] = {
+ { 1, "Unknown Subscriber" },
+ { 3, "Unknown MSC" },
+ { 5, "Unidentified Subscriber" },
+ { 6, "Absent Subscriber SM" },
+ { 7, "Unknown Equipment" },
+ { 8, "Roaming Not Allowed" },
+ { 9, "Illegal Subscriber" },
+ { 10, "Bearer Service Not Provisioned" },
+ { 11, "Teleservice Not Provisioned" },
+ { 12, "Illegal Equipment" },
+ { 13, "Call Barred" },
+ { 14, "Forwarding Violation" },
+ { 15, "CUG Reject" },
+ { 16, "Illegal SS Operation" },
+ { 17, "SS Error Status" },
+ { 18, "SS Not Available" },
+ { 19, "SS Subscription Violation" },
+ { 20, "SS Incompatibility" },
+ { 21, "Facility Not Supported" },
+ { 25, "No Handover Number Available" },
+ { 26, "Subsequent Handover Failure" },
+ { 27, "Absent Subscriber" },
+ { 28, "Incompatible Terminal" },
+ { 29, "Short Term Denial" },
+ { 30, "Long Term Denial" },
+ { 31, "Subscriber Busy For MT SMS" },
+ { 32, "SM Delivery Failure" },
+ { 33, "Message Waiting List Full" },
+ { 34, "System Failure" },
+ { 35, "Data Missing" },
+ { 36, "Unexpected Data Value" },
+ { 37, "PW Registration Failure" },
+ { 38, "Negative PW Check" },
+ { 39, "No Roaming Number Available" },
+ { 40, "Tracing Buffer Full" },
+ { 42, "Target Cell Outside Group Call Area" },
+ { 43, "Number Of PW Attempts Violation" },
+ { 44, "Number Changed" },
+ { 45, "Busy Subscriber" },
+ { 46, "No Subscriber Reply" },
+ { 47, "Forwarding Failed" },
+ { 48, "OR Not Allowed" },
+ { 49, "ATI Not Allowed" },
+ { 50, "No Group Call Number Available" },
+ { 51, "Resource Limitation" },
+ { 52, "Unauthorized Requesting Network" },
+ { 53, "Unauthorized LCS Client" },
+ { 54, "Position Method Failure" },
+ { 58, "Unknown Or Unreachable LCS Client" },
+ { 59, "MM Event Not Supported" },
+ { 60, "ATSI Not Allowed" },
+ { 61, "ATM Not Allowed" },
+ { 62, "Information Not Available" },
+ { 71, "Unknown Alphabet" },
+ { 72, "USSD Busy" },
+ { 120, "Nbr Sb Exceeded" },
+ { 121, "Rejected By User" },
+ { 122, "Rejected By Network" },
+ { 123, "Deflection To Served Subscriber" },
+ { 124, "Special Service Code" },
+ { 125, "Invalid Deflected To Number" },
+ { 126, "Max Number Of MPTY Participants Exceeded" },
+ { 127, "Resources Not Available" },
+ { 0, NULL }
+};
+static const true_false_string gsm_map_extension_value = {
+ "No Extension",
+ "Extension"
+};
+static const value_string gsm_map_nature_of_number_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "International Number" },
+ { 0x02, "National Significant Number" },
+ { 0x03, "Network Specific Number" },
+ { 0x04, "Subscriber Number" },
+ { 0x05, "Reserved" },
+ { 0x06, "Abbreviated Number" },
+ { 0x07, "Reserved for extension" },
+ { 0, NULL }
+};
+static const value_string gsm_map_number_plan_values[] = {
+ { 0x00, "unknown" },
+ { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
+ { 0x02, "spare" },
+ { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
+ { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
+ { 0x05, "spare" },
+ { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
+ { 0x07, "spare" },
+ { 0x08, "National Numbering" },
+ { 0x09, "Private Numbering" },
+ { 0x0f, "Reserved for extension" },
+ { 0, NULL }
+};
+
+static const true_false_string gsm_map_Ss_Status_q_bit_values = {
+ "Quiescent",
+ "Operative"
+};
+static const true_false_string gsm_map_Ss_Status_p_values = {
+ "Provisioned",
+ "Not Provisioned"
+};
+static const true_false_string gsm_map_Ss_Status_r_values = {
+ "Registered",
+ "Not Registered"
+};
+static const true_false_string gsm_map_Ss_Status_a_values = {
+ "Active",
+ "not Active"
+};
+
+/*
+ * Translate the MAP operation code value to a text string
+ * Take into account the MAP version for ForwardSM
+ */
+const gchar* gsm_map_opr_code(guint32 val) {
+ switch (val) {
+ case 44: /*mt-forwardSM*/
+ case 46: /*mo-forwardSM*/
+ if (application_context_version == 3) {
+ return val_to_str(val, gsm_map_V3_opr_code_strings, "Unknown GSM-MAP (%%u)");
+ }
+ /* Else use the default map operation translation */
+ default:
+ return val_to_str(val, gsm_map_opr_code_strings, "Unknown GSM-MAP (%%u)");
+ break;
+ }
+}
+
+/* Prototype for a decoding function */
+typedef int (* dissect_function_t)( gboolean,
+ tvbuff_t *,
+ int ,
+ asn1_ctx_t *,
+ proto_tree *,
+ int);
+
+/*
+ * Dissect Multiple Choice Message
+ * This function is used to decode a message, when several encoding may be used.
+ * For exemple, in the last MAP version, the Cancel Location is defined like this:
+ * CancelLocationArg ::= [3] IMPLICIT SEQUENCE
+ * But in the previous MAP version, it was a CHOICE between a SEQUENCE and an IMSI
+ * As ASN1 encoders (or software) still uses the old encoding, this function allows
+ * the decoding of both versions.
+ * Moreover, some optimizations (or bad practice ?) in ASN1 encoder, removes the
+ * SEQUENCE tag, when only one parameter is present in the SEQUENCE.
+ * This explain why the function expects 3 parameters:
+ * - a [3] SEQUENCE corresponding the recent ASN1 MAP encoding
+ * - a SEQUENCE for old style
+ * - and a single parameter, for old version or optimizations
+ *
+ * The analyze of the first ASN1 tag, indicate what kind of decoding should be used,
+ * if the decoding function is provided (so not a NULL function)
+ */
+static int dissect_mc_message(tvbuff_t *tvb,
+ int offset,
+ asn1_ctx_t *actx,
+ proto_tree *tree,
+ gboolean implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_,
+ gboolean implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_,
+ gboolean implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ )
+{
+ guint8 octet;
+ gint8 bug_class;
+ gboolean bug_pc, bug_ind_field;
+ gint32 bug_tag;
+ guint32 bug_len;
+ proto_item *cause;
+
+ octet = tvb_get_guint8(tvb,0);
+ if ( (octet & 0xf) == 3) {
+ /* XXX asn2wrs can not yet handle tagged assignment yes so this
+ * XXX is some conformance file magic to work around that bug
+ */
+ offset = get_ber_identifier(tvb, offset, &bug_class, &bug_pc, &bug_tag);
+ offset = get_ber_length(tree, tvb, offset, &bug_len, &bug_ind_field);
+ if (sequence3 != NULL) {
+ offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3);
+ } else {
+ cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented [3] sequence, cannot decode");
+ proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
+ expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence");
+ }
+ } else if (octet == 0x30) {
+ if (sequence != NULL) {
+ offset= (sequence) (implicit_seq, tvb, offset, actx, tree, hf_index_seq);
+ } else {
+ cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence");
+ proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
+ expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence");
+ }
+ } else {
+ if (parameter != NULL) {
+ offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param);
+ } else {
+ cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented parameter");
+ proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR);
+ expert_add_info_format(actx->pinfo, cause, PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter");
+ }
+ }
+ return offset;
+}
+
+static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ proto_item *cause;
+
+ switch(opcode){
+ case 2: /*updateLocation*/
+ offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 3: /*cancelLocation*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_Identity, hf_gsm_map_identity,
+ FALSE, dissect_gsm_map_CancelLocationArgV2, -1,/*undefined*/
+ TRUE , dissect_gsm_map_CancelLocationArg, -1);
+ break;
+ case 4: /*provideRoamingNumber*/
+ offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 5: /*noteSubscriberDataModified*/
+ offset=dissect_gsm_map_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /*resumeCallHandling*/
+ offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 7: /*insertSubscriberData*/
+ offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /*deleteSubscriberData*/
+ offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* TODO find out why this isn't in the ASN1 file */
+ /* reserved sendParameters (9) */
+ case 10: /*registerSS*/
+ offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /*eraseSS*/
+ offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /*activateSS*/
+ offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /*deactivateSS*/
+ offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /*interrogateSS*/
+ offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /*authenticationFailureReport*/
+ offset=dissect_gsm_map_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* undefined 16 */
+ case 17: /*registerPassword*/
+ offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
+ break;
+ case 18: /*getPassword*/
+ offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword);
+ break;
+ /* reserved processUnstructuredSS-Data (19) */
+ case 20: /*releaseResources*/
+ offset=dissect_gsm_map_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 21: /*mt-ForwardSM-VGCS*/
+ offset=dissect_gsm_map_Mt_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /*sendRoutingInfo*/
+ offset=dissect_gsm_map_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 23: /*updateGprsLocation*/
+ offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 24: /*sendRoutingInfoForGprs*/
+ offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 25: /*failureReport*/
+ offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 26: /*noteMsPresentForGprs*/
+ offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* undefined 27 */
+ /* reserved performHandover (28) */
+ case 29: /*sendEndSignal*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_SendEndSignalArgV3, -1);
+ break;
+ /* reserved performSubsequentHandover (30) */
+ case 31: /*provideSIWFSNumber*/
+ offset=dissect_gsm_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 32: /*sIWFSSignallingModify*/
+ offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 33: /*processAccessSignalling*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ProcessAccessSignallingArgV3, -1);
+ break;
+ case 34: /*forwardAccessSignalling*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_Bss_APDU, -1,
+ TRUE , dissect_gsm_map_ForwardAccessSignallingArgV3, -1);
+ break;
+ /* reserved noteInternalHandover (35) */
+ /* undefined 36 */
+ case 37: /*reset*/
+ offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 38: /*forwardCheckSS-Indication*/
+ return offset;
+ break;
+ case 39: /*prepareGroupCall*/
+ offset=dissect_gsm_map_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 40: /*sendGroupCallEndSignal*/
+ dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 41: /*processGroupCallSignalling*/
+ dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 42: /*forwardGroupCallSignalling*/
+ offset=dissect_gsm_map_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 43: /*checkIMEI*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMEI, hf_gsm_map_imei,
+ FALSE, dissect_gsm_map_CheckIMEIArgV3, -1,
+ TRUE , NULL, -1); /* no [3] SEQUENCE */
+ break;
+ case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
+ if (application_context_version == 3)
+ offset=dissect_gsm_map_Mt_forwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ else {
+ offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 45: /*sendRoutingInfoForSM*/
+ offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
+ if (application_context_version == 3)
+ offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ else {
+ offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ }
+ break;
+ case 47: /*reportSM-DeliveryStatus*/
+ offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* reserved noteSubscriberPresent (48) */
+ /* reserved alertServiceCentreWithoutResult (49) */
+ case 50: /*activateTraceMode*/
+ offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 51: /*deactivateTraceMode*/
+ offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* reserved traceSubscriberActivity (52) */
+ /* undefined 53 */
+ /* reserved beginSubscriberActivity (54) */
+ case 55: /*sendIdentification*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi,
+ FALSE, dissect_gsm_map_SendIdentificationArg, -1,
+ TRUE, NULL, -1);
+ break;
+ case 56: /*sendAuthenticationInfo*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_SendAuthenticationInfoArgV2, -1,
+ TRUE, NULL, -1);
+ break;
+ case 57: /*restoreData*/
+ offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 58: /*sendIMSI*/
+ offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn);
+ break;
+ case 59: /*processUnstructuredSS-Request*/
+ offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 60: /*unstructuredSS-Request*/
+ offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 61: /*unstructuredSS-Notify*/
+ offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 62: /*AnyTimeSubscriptionInterrogation*/
+ offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 63: /*informServiceCentre*/
+ offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 64: /*alertServiceCentre*/
+ offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 65: /*AnyTimeModification*/
+ offset=dissect_gsm_map_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 66: /*readyForSM*/
+ offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 67: /*purgeMS*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_PurgeMSArgV2, -1, /*undefined*/
+ TRUE , dissect_gsm_map_PurgeMSArg, -1);
+ break;
+ case 68: /*prepareHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_PrepareHO_Arg, -1,
+ TRUE, dissect_gsm_map_PrepareHO_ArgV3, -1);
+ break;
+ case 69: /*prepareSubsequentHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, NULL, -1,
+ TRUE, dissect_gsm_map_PrepareSubsequentHOArg, -1);
+ break;
+ case 70: /*provideSubscriberInfo*/
+ offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 71: /*anyTimeInterrogation*/
+ offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 72: /*ss-InvocationNotificatio*/
+ offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 73: /*setReportingState*/
+ offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 74: /*statusReport*/
+ offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 75: /*remoteUserFree*/
+ offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 76: /*registerCC-Entry*/
+ offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 77: /*eraseCC-Entry*/
+ offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 78: /*secureTransportClass1*/
+ case 79: /*secureTransportClass1*/
+ case 80: /*secureTransportClass1*/
+ case 81: /*secureTransportClass1*/
+ offset=dissect_gsm_map_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* undefined 82 */
+ case 83: /*provideSubscriberLocation*/
+ offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 84: /*sendGroupCallInfo*/
+ offset=dissect_gsm_map_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 85: /*sendRoutingInfoForLCS*/
+ offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 86: /*subscriberLocationReport*/
+ offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 87: /*ist-Alert*/
+ offset=dissect_gsm_map_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 88: /*ist-Command*/
+ offset=dissect_gsm_map_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 89: /*noteMM-Event*/
+ offset=dissect_gsm_map_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ default:
+ cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
+ proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
+ expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
+ }
+ return offset;
+}
+
+
+static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+
+ proto_item *cause;
+
+ switch(opcode){
+ case 2: /*updateLocation*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_UpdateLocationRes, -1,
+ TRUE , NULL, -1);
+ break;
+ case 3: /*cancelLocation*/
+ offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 4: /*provideRoamingNumber*/
+ offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 5: /*noteSubscriberDataModified*/
+ offset=dissect_gsm_map_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /*resumeCallHandling*/
+ offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 7: /*insertSubscriberData*/
+ offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /*deleteSubscriberData*/
+ offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ /* TODO find out why this isn't in the ASN1 file
+ case 9: sendParameters
+ offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ */
+ case 10: /*registerSS*/
+ offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /*eraseSS*/
+ offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /*activateSS*/
+ offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /*deactivateSS*/
+ offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /*interrogateSS*/
+ offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /*authenticationFailureReport*/
+ offset=dissect_gsm_map_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 17: /*registerPassword*/
+ /* change hf_gsm_map_ss_Code to something with password */
+ offset=dissect_gsm_map_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code);
+ break;
+ case 18: /*getPassword*/
+ offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword);
+ break;
+ case 20: /*releaseResources*/
+ offset=dissect_gsm_map_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 21: /*mt-ForwardSM-VGCS*/
+ offset=dissect_gsm_map_Mt_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /*sendRoutingInfo*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, NULL, -1,
+ TRUE , dissect_gsm_map_SendRoutingInfoRes, -1);
+ break;
+ case 23: /*updateGprsLocation*/
+ offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 24: /*sendRoutingInfoForGprs*/
+ offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 25: /*failureReport*/
+ offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 26: /*noteMsPresentForGprs*/
+ offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 29: /*sendEndSignal*/
+ /* Taken from MAP-MobileServiceOperations{ 0 identified-organization (4) etsi (0) mobileDomain
+ * (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) version9 (9) }
+ */
+ offset=dissect_gsm_map_SendEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 31: /*provideSIWFSNumber*/
+ offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 32: /*provideSIWFSSignallingModify*/
+ offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 39: /*prepareGroupCall*/
+ offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 40: /*sendGroupCallEndSignal*/
+ dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 43: /*checkIMEI*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_EquipmentStatus, hf_gsm_map_equipmentStatus,
+ FALSE, dissect_gsm_map_CheckIMEIRes, -1,
+ TRUE, NULL, -1);
+ break;
+ case 44: /*mt-forwardSM*/
+ offset=dissect_gsm_map_Mt_forwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 45: /*sendRoutingInfoForSM*/
+ offset=dissect_gsm_map_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 46: /*mo-forwardSM*/
+ offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 47: /*reportSM-DeliveryStatus*/
+ offset=dissect_gsm_map_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 48: /*reportSM-DeliveryStatus*/
+ offset=dissect_gsm_map_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 50: /*activateTraceMode*/
+ offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 51: /*deactivateTraceMode*/
+ offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 55: /*sendIdentification */
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi,
+ FALSE, dissect_gsm_map_SendIdentificationResV2, -1,/*undefined*/
+ TRUE, dissect_gsm_map_SendIdentificationRes, -1);
+ break;
+ case 56: /*sendAuthenticationInfo*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_SendAuthenticationInfoRes, -1,
+ TRUE , dissect_gsm_map_SendAuthenticationInfoResV3, -1);
+ break;
+ case 57: /*restoreData*/
+ offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 58: /*sendIMSI*/
+ offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi);
+ break;
+ case 59: /*unstructuredSS-Request*/
+ offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 60: /*unstructuredSS-Request*/
+ offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 61: /*unstructuredSS-Notify*/
+ /* TRUE ? */
+ proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
+ break;
+ case 62: /*AnyTimeSubscriptionInterrogation*/
+ offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 64: /*alertServiceCentre*/
+ /* TRUE */
+ break;
+ case 65: /*AnyTimeModification*/
+ offset=dissect_gsm_map_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 66: /*readyForSM*/
+ offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 67: /*purgeMS*/
+ offset=dissect_gsm_map_PurgeMSRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 68: /*prepareHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, dissect_gsm_map_PrepareHO_Res, -1,
+ TRUE , dissect_gsm_map_PrepareHO_ResV3, -1);
+ break;
+ case 69: /*prepareSubsequentHandover*/
+ offset=dissect_mc_message(tvb, offset, actx, tree,
+ FALSE, NULL, -1,
+ FALSE, NULL, -1,
+ TRUE , dissect_gsm_map_PrepareSubsequentHOResV3, -1);
+ break;
+ case 70: /*provideSubscriberInfo*/
+ offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 71: /*anyTimeInterrogation*/
+ offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 72: /*ss-InvocationNotificatio*/
+ offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 73: /*setReportingState*/
+ offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 74: /*statusReport*/
+ offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 75: /*remoteUserFree*/
+ offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 76: /*registerCC-Entry*/
+ offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 77: /*eraseCC-Entry*/
+ offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 78: /*secureTransportClass1*/
+ case 79: /*secureTransportClass2*/
+ case 80: /*secureTransportClass3*/
+ case 81: /*secureTransportClass4*/
+ offset=dissect_gsm_map_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 83: /*provideSubscriberLocation*/
+ offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 84: /*sendGroupCallInfo*/
+ offset=dissect_gsm_map_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 85: /*sendRoutingInfoForLCS*/
+ offset=dissect_gsm_map_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 86: /*subscriberLocationReport*/
+ offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 87: /*ist-Alert*/
+ offset=dissect_gsm_map_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 88: /*ist-Command*/
+ offset=dissect_gsm_map_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 89: /*noteMM-Event*/
+ offset=dissect_gsm_map_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ default:
+ cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
+ proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
+ expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
+ }
+ return offset;
+}
+
+
+
+static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
+ proto_item *cause;
+
+ switch(errorCode){
+ case 1: /* UnknownSubscriberParam */
+ offset=dissect_gsm_map_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 4: /* SecureTransportErrorParam */
+ offset=dissect_gsm_map_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 5: /* UnidentifiedSubParam */
+ offset=dissect_gsm_map_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 6: /* AbsentSubscriberSM-Param */
+ offset=dissect_gsm_map_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 8: /* RoamingNotAllowedParam */
+ offset=dissect_gsm_map_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 9: /* IllegalSubscriberParam */
+ offset=dissect_gsm_map_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 10: /* BearerServNotProvParam */
+ offset=dissect_gsm_map_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 11: /* TeleservNotProvParam */
+ offset=dissect_gsm_map_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 12: /* IllegalEquipmentParam */
+ offset=dissect_gsm_map_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 13: /* CallBarredParam */
+ offset=dissect_gsm_map_CallBarredParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 14: /* ForwardingViolationParam */
+ offset=dissect_gsm_map_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 15: /* CUG-RejectParam */
+ offset=dissect_gsm_map_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 16: /* IllegalSS-OperationParam */
+ offset=dissect_gsm_map_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 17: /* SS-ErrorStatus */
+ offset=dissect_gsm_map_SS_Status(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 18: /* SS-NotAvailableParam */
+ offset=dissect_gsm_map_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 19: /* SS-SubscriptionViolationParam */
+ offset=dissect_gsm_map_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 20: /* SS-IncompatibilityCause */
+ offset=dissect_gsm_map_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 21: /* FacilityNotSupParam */
+ offset=dissect_gsm_map_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 22: /* OngoingGroupCallParam */
+ offset=dissect_gsm_map_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 27: /* AbsentSubscriberParam */
+ offset=dissect_gsm_map_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 28: /* IncompatibleTerminalParam */
+ offset=dissect_gsm_map_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 29: /* ShortTermDenialParam */
+ offset=dissect_gsm_map_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 30: /* LongTermDenialParam */
+ offset=dissect_gsm_map_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 31: /* SubBusyForMT-SMS-Param */
+ offset=dissect_gsm_map_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 32: /* SM-DeliveryFailureCause */
+ offset=dissect_gsm_map_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 33: /* MessageWaitListFullParam */
+ offset=dissect_gsm_map_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 34: /* SystemFailureParam */
+ offset=dissect_gsm_map_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 35: /* DataMissingParam */
+ offset=dissect_gsm_map_DataMissingParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 36: /* UnexpectedDataParam */
+ offset=dissect_gsm_map_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 37: /* PW-RegistrationFailureCause */
+ offset=dissect_gsm_map_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 39: /* NoRoamingNbParam */
+ offset=dissect_gsm_map_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 40: /* TracingBufferFullParam */
+ offset=dissect_gsm_map_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 42: /* TargetCellOutsideGCA-Param */
+ offset=dissect_gsm_map_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 44: /* NumberChangedParam */
+ offset=dissect_gsm_map_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 45: /* BusySubscriberParam */
+ offset=dissect_gsm_map_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 46: /* NoSubscriberReplyParam */
+ offset=dissect_gsm_map_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 47: /* ForwardingFailedParam */
+ offset=dissect_gsm_map_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 48: /* OR-NotAllowedParam */
+ offset=dissect_gsm_map_Or_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 49: /* ATI-NotAllowedParam */
+ offset=dissect_gsm_map_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 50: /* NoGroupCallNbParam */
+ offset=dissect_gsm_map_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 51: /* ResourceLimitationParam */
+ offset=dissect_gsm_map_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 52: /* UnauthorizedRequestingNetwork-Param */
+ offset=dissect_gsm_map_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 53: /* UnauthorizedLCSClient-Param */
+ offset=dissect_gsm_map_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 54: /* PositionMethodFailure-Param */
+ offset=dissect_gsm_map_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 58: /* UnknownOrUnreachableLCSClient-Param */
+ offset=dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 59: /* MM-EventNotSupported-Param */
+ offset=dissect_gsm_map_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 60: /* ATSI-NotAllowedParam */
+ offset=dissect_gsm_map_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 61: /* ATM-NotAllowedParam */
+ offset=dissect_gsm_map_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ case 62: /* InformationNotAvailableParam */
+ offset=dissect_gsm_map_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1);
+ break;
+ default:
+ cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
+ proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
+ expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",errorCode);
+ break;
+ }
+ return offset;
+}
+
+/* Private extension container for PLMN Data */
+static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) {
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container");
+ tree = proto_item_add_subtree(item, ett_gsm_map_PlmnContainer);
+ }
+ dissect_gsm_map_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_PlmnContainer_PDU);
+}
+
+
+static guint8 gsmmap_pdu_type = 0;
+static guint8 gsm_map_pdu_size = 0;
+
+static int
+dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) {
+
+ char *version_ptr;
+ struct tcap_private_t * p_private_tcap;
+
+ opcode = 0;
+ application_context_version = 0;
+ if (actx->pinfo->private_data != NULL){
+ p_private_tcap=actx->pinfo->private_data;
+ if (p_private_tcap->acv==TRUE ){
+ version_ptr = strrchr(p_private_tcap->oid,'.');
+ if (version_ptr)
+ application_context_version = atoi(version_ptr+1);
+ }
+ }
+
+ gsmmap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+ /* Get the length and add 2 */
+ gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+
+ if (check_col(actx->pinfo->cinfo, COL_INFO)){
+ col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_map_Component_vals, "Unknown GSM-MAP PDU (%u)"));
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " ");
+ }
+ offset = dissect_gsm_map_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_Component_PDU);
+ return offset;
+/*
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL);
+*/
+
+ return offset;
+}
+
+static void
+dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ /* Used for gsm_map TAP */
+ static gsm_map_tap_rec_t tap_rec;
+ gint op_idx;
+ asn1_ctx_t asn1_ctx;
+
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+
+ if (check_col(pinfo->cinfo, COL_PROTOCOL))
+ {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP");
+ }
+
+ top_tree = parent_tree;
+
+ /* create display subtree for the protocol */
+ if(parent_tree){
+ item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, FALSE);
+ tree = proto_item_add_subtree(item, ett_gsm_map);
+ }
+
+ dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+ match_strval_idx(opcode, gsm_map_opr_code_strings, &op_idx);
+
+ tap_rec.invoke = FALSE;
+ if ( gsmmap_pdu_type == 1 )
+ tap_rec.invoke = TRUE;
+ tap_rec.opr_code_idx = op_idx;
+ tap_rec.size = gsm_map_pdu_size;
+
+ tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
+}
+
+const value_string ssCode_vals[] = {
+ { 0x00, "allSS - all SS" },
+ { 0x10 ,"allLineIdentificationSS - all line identification SS" },
+ { 0x11 ,"clip - calling line identification presentation" },
+ { 0x12 ,"clir - calling line identification restriction" },
+ { 0x13 ,"colp - connected line identification presentation" },
+ { 0x14 ,"colr - connected line identification restriction" },
+ { 0x15 ,"mci - malicious call identification" },
+ { 0x18 ,"allNameIdentificationSS - all name indentification SS" },
+ { 0x19 ,"cnap - calling name presentation" },
+ { 0x20 ,"allForwardingSS - all forwarding SS" },
+ { 0x21 ,"cfu - call forwarding unconditional" },
+ { 0x28 ,"allCondForwardingSS - all conditional forwarding SS" },
+ { 0x29 ,"cfb - call forwarding busy" },
+ { 0x2a ,"cfnry - call forwarding on no reply" },
+ { 0x2b ,"cfnrc - call forwarding on mobile subscriber not reachable" },
+ { 0x24 ,"cd - call deflection" },
+ { 0x30 ,"allCallOfferingSS - all call offering SS includes also all forwarding SS" },
+ { 0x31 ,"ect - explicit call transfer" },
+ { 0x32 ,"mah - mobile access hunting" },
+ { 0x40 ,"allCallCompletionSS - all Call completion SS" },
+ { 0x41 ,"cw - call waiting" },
+ { 0x42 ,"hold - call hold" },
+ { 0x43 ,"ccbs-A - completion of call to busy subscribers, originating side" },
+ { 0x44 ,"ccbs-B - completion of call to busy subscribers, destination side" },
+ { 0x45 ,"mc - multicall" },
+ { 0x50 ,"allMultiPartySS - all multiparty SS" },
+ { 0x51 ,"multiPTY - multiparty" },
+ { 0x60 ,"allCommunityOfInterestSS - all community of interest SS" },
+ { 0x61 ,"cug - closed user group" },
+ { 0x70 ,"allChargingSS - all charging SS" },
+ { 0x71 ,"aoci - advice of charge information" },
+ { 0x72 ,"aocc - advice of charge charging" },
+ { 0x80 ,"allAdditionalInfoTransferSS - all additional information transfer SS" },
+ { 0x81 ,"uus1 - UUS1 user-to-user signalling" },
+ { 0x82 ,"uus2 - UUS2 user-to-user signalling" },
+ { 0x83 ,"uus3 - UUS3 user-to-user signalling" },
+ { 0x90 ,"allCallRestrictionSS - all Callrestriction SS" },
+ { 0x91 ,"barringOfOutgoingCalls" },
+ { 0x92 ,"baoc - barring of all outgoing calls" },
+ { 0x93 ,"boic - barring of outgoing international calls" },
+ { 0x94 ,"boicExHC - barring of outgoing international calls except those directed to the home PLMN" },
+ { 0x99 ,"barringOfIncomingCalls" },
+ { 0x9a ,"baic - barring of all incoming calls" },
+ { 0x9b ,"bicRoam - barring of incoming calls when roaming outside home PLMN Country" },
+ { 0xf0 ,"allPLMN-specificSS" },
+ { 0xa0 ,"allCallPrioritySS - all call priority SS" },
+ { 0xa1 ,"emlpp - enhanced Multilevel Precedence Pre-emption (EMLPP) service" },
+ { 0xb0 ,"allLCSPrivacyException - all LCS Privacy Exception Classes" },
+ { 0xb1 ,"universal - allow location by any LCS client" },
+ { 0xb2 ,"callrelated - allow location by any value added LCS client to which a call is established from the target MS" },
+ { 0xb3 ,"callunrelated - allow location by designated external value added LCS clients" },
+ { 0xb4 ,"plmnoperator - allow location by designated PLMN operator LCS clients" },
+ { 0xb5 ,"serviceType - allow location by LCS clients of a designated LCS service type" },
+ { 0xc0 ,"allMOLR-SS - all Mobile Originating Location Request Classes" },
+ { 0xc1 ,"basicSelfLocation - allow an MS to request its own location" },
+ { 0xc2 ,"autonomousSelfLocation - allow an MS to perform self location without interaction with the PLMN for a predetermined period of time" },
+ { 0xc3 ,"transferToThirdParty - allow an MS to request transfer of its location to another LCS client" },
+
+ { 0xf1 ,"plmn-specificSS-1" },
+ { 0xf2 ,"plmn-specificSS-2" },
+ { 0xf3 ,"plmn-specificSS-3" },
+ { 0xf4 ,"plmn-specificSS-4" },
+ { 0xf5 ,"plmn-specificSS-5" },
+ { 0xf6 ,"plmn-specificSS-6" },
+ { 0xf7 ,"plmn-specificSS-7" },
+ { 0xf8 ,"plmn-specificSS-8" },
+ { 0xf9 ,"plmn-specificSS-9" },
+ { 0xfa ,"plmn-specificSS-a" },
+ { 0xfb ,"plmn-specificSS-b" },
+ { 0xfc ,"plmn-specificSS-c" },
+ { 0xfd ,"plmn-specificSS-d" },
+ { 0xfe ,"plmn-specificSS-e" },
+ { 0xff ,"plmn-specificSS-f" },
+ { 0, NULL }
+};
+
+static const value_string Teleservice_vals[] = {
+{0x00, "allTeleservices" },
+{0x10, "allSpeechTransmissionServices" },
+{0x11, "telephony" },
+{0x12, "emergencyCalls" },
+{0x20, "allShortMessageServices" },
+{0x21, "shortMessageMT-PP" },
+{0x22, "shortMessageMO-PP" },
+{0x60, "allFacsimileTransmissionServices" },
+{0x61, "facsimileGroup3AndAlterSpeech" },
+{0x62, "automaticFacsimileGroup3" },
+{0x63, "facsimileGroup4" },
+
+{0x70, "allDataTeleservices" },
+{0x80, "allTeleservices-ExeptSMS" },
+
+{0x90, "allVoiceGroupCallServices" },
+{0x91, "voiceGroupCall" },
+{0x92, "voiceBroadcastCall" },
+
+{0xd0, "allPLMN-specificTS" },
+{0xd1, "plmn-specificTS-1" },
+{0xd2, "plmn-specificTS-2" },
+{0xd3, "plmn-specificTS-3" },
+{0xd4, "plmn-specificTS-4" },
+{0xd5, "plmn-specificTS-5" },
+{0xd6, "plmn-specificTS-6" },
+{0xd7, "plmn-specificTS-7" },
+{0xd8, "plmn-specificTS-8" },
+{0xd9, "plmn-specificTS-9" },
+{0xda, "plmn-specificTS-A" },
+{0xdb, "plmn-specificTS-B" },
+{0xdc, "plmn-specificTS-C" },
+{0xdd, "plmn-specificTS-D" },
+{0xde, "plmn-specificTS-E" },
+{0xdf, "plmn-specificTS-F" },
+ { 0, NULL }
+};
+
+static const value_string Bearerservice_vals[] = {
+{0x00, "allBearerServices" },
+{0x10, "allDataCDA-Services" },
+{0x11, "dataCDA-300bps" },
+{0x12, "dataCDA-1200bps" },
+{0x13, "dataCDA-1200-75bps" },
+{0x14, "dataCDA-2400bps" },
+{0x15, "dataCDA-4800bps" },
+{0x16, "dataCDA-9600bps" },
+{0x17, "general-dataCDA" },
+
+{0x18, "allDataCDS-Services" },
+{0x1A, "dataCDS-1200bps" },
+{0x1C, "dataCDS-2400bps" },
+{0x1D, "dataCDS-4800bps" },
+{0x1E, "dataCDS-9600bps" },
+{0x1F, "general-dataCDS" },
+
+{0x20, "allPadAccessCA-Services" },
+{0x21, "padAccessCA-300bps" },
+{0x22, "padAccessCA-1200bps" },
+{0x23, "padAccessCA-1200-75bps" },
+{0x24, "padAccessCA-2400bps" },
+{0x25, "padAccessCA-4800bps" },
+{0x26, "padAccessCA-9600bps" },
+{0x27, "general-padAccessCA" },
+
+{0x28, "allDataPDS-Services" },
+{0x2C, "dataPDS-2400bps" },
+{0x2D, "dataPDS-4800bps" },
+{0x2E, "dataPDS-9600bps" },
+{0x2F, "general-dataPDS" },
+
+{0x30, "allAlternateSpeech-DataCDA" },
+{0x38, "allAlternateSpeech-DataCDS" },
+{0x40, "allSpeechFollowedByDataCDA" },
+{0x48, "allSpeechFollowedByDataCDS" },
+
+{0x50, "allDataCircuitAsynchronous" },
+{0x60, "allAsynchronousServices" },
+{0x58, "allDataCircuitSynchronous" },
+{0x68, "allSynchronousServices" },
+
+{0xD0, "allPLMN-specificBS" },
+{0xD1, "plmn-specificBS-1" },
+{0xD2, "plmn-specificBS-2" },
+{0xD3, "plmn-specificBS-3" },
+{0xD4, "plmn-specificBS-4" },
+{0xD5, "plmn-specificBS-5" },
+{0xD6, "plmn-specificBS-6" },
+{0xD7, "plmn-specificBS-7" },
+{0xD8, "plmn-specificBS-8" },
+{0xD9, "plmn-specificBS-9" },
+{0xDA, "plmn-specificBS-A" },
+{0xDB, "plmn-specificBS-B" },
+{0xDC, "plmn-specificBS-C" },
+{0xDD, "plmn-specificBS-D" },
+{0xDE, "plmn-specificBS-E" },
+{0xDF, "plmn-specificBS-F" },
+
+{ 0, NULL }
+};
+
+/* ForwardingOptions
+
+-- bit 8: notification to forwarding party
+-- 0 no notification
+-- 1 notification
+*/
+static const true_false_string notification_value = {
+ "Notification",
+ "No notification"
+};
+/*
+-- bit 7: redirecting presentation
+-- 0 no presentation
+-- 1 presentation
+*/
+static const true_false_string redirecting_presentation_value = {
+ "Presentation",
+ "No presentationn"
+};
+/*
+-- bit 6: notification to calling party
+-- 0 no notification
+-- 1 notification
+*/
+/*
+-- bit 5: 0 (unused)
+-- bits 43: forwarding reason
+-- 00 ms not reachable
+-- 01 ms busy
+-- 10 no reply
+-- 11 unconditional when used in a SRI Result,
+-- or call deflection when used in a RCH Argument
+*/
+static const value_string forwarding_reason_values[] = {
+{0x0, "ms not reachable" },
+{0x1, "ms busy" },
+{0x2, "no reply" },
+{0x3, "unconditional when used in a SRI Result or call deflection when used in a RCH Argument" },
+{ 0, NULL }
+};
+/*
+-- bits 21: 00 (unused)
+*/
+
+static const value_string pdp_type_org_values[] = {
+{0x0, "ETSI" },
+{0x1, "IETF" },
+{0xf, "Empty PDP type" },
+{ 0, NULL }
+};
+
+static const value_string etsi_pdp_type_number_values[] = {
+{0x0, "Reserved, used in earlier version of this protocol" },
+{0x1, "PPP" },
+{ 0, NULL }
+};
+
+static const value_string ietf_pdp_type_number_values[] = {
+{0x21, "IPv4 Address" },
+{0x57, "IPv6 Address" },
+{ 0, NULL }
+};
+
+/*
+ChargingCharacteristics ::= OCTET STRING (SIZE (2))
+-- Octets are coded according to 3GPP TS 32.015.
+-- From 3GPP TS 32.015.
+--
+-- Descriptions for the bits of the flag set:
+--
+-- Bit 1: H (Hot billing) := '00000001'B
+-- Bit 2: F (Flat rate) := '00000010'B
+-- Bit 3: P (Prepaid service) := '00000100'B
+-- Bit 4: N (Normal billing) := '00001000'B
+-- Bit 5: - (Reserved, set to 0) := '00010000'B
+-- Bit 6: - (Reserved, set to 0) := '00100000'B
+-- Bit 7: - (Reserved, set to 0) := '01000000'B
+-- Bit 8: - (Reserved, set to 0) := '10000000'B
+*/
+static const value_string chargingcharacteristics_values[] = {
+{0x1, "H (Hot billing)" },
+{0x2, "F (Flat rate)" },
+{0x4, "P (Prepaid service)" },
+{0x8, "N (Normal billing)" },
+{ 0, NULL }
+};
+/*--- proto_reg_handoff_gsm_map ---------------------------------------*/
+static void range_delete_callback(guint32 ssn)
+{
+ if (ssn) {
+ delete_itu_tcap_subdissector(ssn, map_handle);
+ }
+}
+
+static void range_add_callback(guint32 ssn)
+{
+ if (ssn) {
+ add_itu_tcap_subdissector(ssn, map_handle);
+ }
+}
+
+void proto_reg_handoff_gsm_map(void) {
+
+ static int map_prefs_initialized = FALSE;
+ data_handle = find_dissector("data");
+ ranap_handle = find_dissector("ranap");
+
+ if (!map_prefs_initialized) {
+ map_prefs_initialized = TRUE;
+ map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)");
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version2(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) alerting(4) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) callControlTransfer(6) version4(4)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) callControlTransfer(6) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reporting(7) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) callCompletion(8) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) serviceTermination(9) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reset(10) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reset(10) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) sIWFSAllocation(12) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) equipmentMngt(13) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) equipmentMngt(13) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) equipmentMngt(13) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version1(1)" );
+ /* fallback to infoRetrieval(14) version1(1) and not interVlrInfoRetrieval(15) version1(1) */
+ /*register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version1(1)" );*/
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) tracing(17) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) tracing(17) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) tracing(17) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkFunctionalSs(18) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkFunctionalSs(18) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkUnstructuredSs(19) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgGateway(20) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgGateway(20) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgGateway(20) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMO-Relay(21) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMO-Relay(21) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) --shortMsgRelay--21 version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataModificationNotification(22) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgAlert(23) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgAlert(23) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) mwdMngt(24) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) mwdMngt(24) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) mwdMngt(24) version1(1)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMT-Relay(25) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMT-Relay(25) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) imsiRetrieval(26) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) msPurging(27) version2(2)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) msPurging(27) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberInfoEnquiry(28) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) anyTimeInfoEnquiry(29) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.31.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) groupCallControl(31) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) gprsLocationUpdate(32) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) gprsLocationInfoRetrieval(33) version4(4)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) gprsLocationInfoRetrieval(33) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) failureReport(34) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) gprsNotify(35) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) ss-InvocationNotification(36) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationSvcGateway(37) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationSvcEnquiry(38) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) authenticationFailureReport(39) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) secureTransportHandling(40) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) shortMsgMT-Relay-VGCS(41) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) mm-EventReporting(42) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) anyTimeInfoHandling(43) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) resourceManagement(44) version3(3)" );
+ register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) groupCallInfoRetrieval(45) version3(3)" );
+ /* Private extension container */
+ register_ber_oid_dissector("1.3.12.2.1006.53.2.1.3", dissect_gsm_mapext_PlmnContainer, proto_gsm_map,"iso(1) identified-organization(3) icd-ecma(12) membercompagny(2) alcatel(1006) amc(53) switch-infra-gsm-E10(2) E10-MAP-extension (1) PlmnContainer(3)" );
+ }
+ else {
+ range_foreach(ssn_range, range_delete_callback);
+ }
+
+ g_free(ssn_range);
+ ssn_range = range_copy(global_ssn_range);
+
+ range_foreach(ssn_range, range_add_callback);
+
+}
+
+/*--- proto_register_gsm_map -------------------------------------------*/
+void proto_register_gsm_map(void) {
+ module_t *gsm_map_module;
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+ { &hf_gsm_map_SendAuthenticationInfoArg,
+ { "SendAuthenticationInfoArg", "gsm_map.SendAuthenticationInfoArg",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "SendAuthenticationInfoArg", HFILL }},
+ { &hf_gsm_map_SendAuthenticationInfoRes,
+ { "SendAuthenticationInfoRes", "gsm_map.SendAuthenticationInfoRes",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "SendAuthenticationInfoRes", HFILL }},
+ { &hf_gsm_map_currentPassword,
+ { "currentPassword", "gsm_map.currentPassword",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gsm_mapSendEndSignal,
+ { "mapSendEndSignalArg", "gsm_map.mapsendendsignalarg",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "mapSendEndSignalArg", HFILL }},
+ { &hf_gsm_map_CheckIMEIArg,
+ { "gsm_CheckIMEIArg", "gsm_map.CheckIMEIArg",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "gsm_CheckIMEIArg", HFILL }},
+ { &hf_gsm_map_extension,
+ { "Extension", "gsm_map.extension",
+ FT_BOOLEAN, 8, TFS(&gsm_map_extension_value), 0x80,
+ "Extension", HFILL }},
+ { &hf_gsm_map_nature_of_number,
+ { "Nature of number", "gsm_map.nature_of_number",
+ FT_UINT8, BASE_HEX, VALS(gsm_map_nature_of_number_values), 0x70,
+ "Nature of number", HFILL }},
+ { &hf_gsm_map_number_plan,
+ { "Number plan", "gsm_map.number_plan",
+ FT_UINT8, BASE_HEX, VALS(gsm_map_number_plan_values), 0x0f,
+ "Number plan", HFILL }},
+ { &hf_gsm_map_isdn_address_digits,
+ { "ISDN Address digits", "gsm_map.isdn.address.digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ISDN Address digits", HFILL }},
+ { &hf_gsm_map_address_digits,
+ { "Address digits", "gsm_map.address.digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Address digits", HFILL }},
+ { &hf_gsm_map_servicecentreaddress_digits,
+ { "ServiceCentreAddress digits", "gsm_map.servicecentreaddress_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ServiceCentreAddress digits", HFILL }},
+ { &hf_gsm_map_imsi_digits,
+ { "Imsi digits", "gsm_map.imsi_digits",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Imsi digits", HFILL }},
+ { &hf_gsm_map_Ss_Status_unused,
+ { "Unused", "gsm_map.unused",
+ FT_UINT8, BASE_HEX, NULL, 0xf0,
+ "Unused", HFILL }},
+ { &hf_gsm_map_Ss_Status_q_bit,
+ { "Q bit", "gsm_map.ss_status_q_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_q_bit_values), 0x08,
+ "Q bit", HFILL }},
+ { &hf_gsm_map_Ss_Status_p_bit,
+ { "P bit", "gsm_map.ss_status_p_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_p_values), 0x04,
+ "P bit", HFILL }},
+ { &hf_gsm_map_Ss_Status_r_bit,
+ { "R bit", "gsm_map.ss_status_r_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_r_values), 0x02,
+ "R bit", HFILL }},
+ { &hf_gsm_map_Ss_Status_a_bit,
+ { "A bit", "gsm_map.ss_status_a_bit",
+ FT_BOOLEAN, 8, TFS(&gsm_map_Ss_Status_a_values), 0x01,
+ "A bit", HFILL }},
+ { &hf_gsm_map_notification_to_forwarding_party,
+ { "Notification to forwarding party", "gsm_map.notification_to_forwarding_party",
+ FT_BOOLEAN, 8, TFS(¬ification_value), 0x80,
+ "Notification to forwarding party", HFILL }},
+ { &hf_gsm_map_redirecting_presentation,
+ { "Redirecting presentation", "gsm_map.redirecting_presentation",
+ FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40,
+ "Redirecting presentation", HFILL }},
+ { &hf_gsm_map_notification_to_calling_party,
+ { "Notification to calling party", "gsm_map.notification_to_clling_party",
+ FT_BOOLEAN, 8, TFS(¬ification_value), 0x20,
+ "Notification to calling party", HFILL }},
+ { &hf_gsm_map_forwarding_reason,
+ { "Forwarding reason", "gsm_map.forwarding_reason",
+ FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c,
+ "forwarding reason", HFILL }},
+ { &hf_gsm_map_pdp_type_org,
+ { "PDP Type Organization", "gsm_map.pdp_type_org",
+ FT_UINT8, BASE_HEX, VALS(pdp_type_org_values), 0x0f,
+ "PDP Type Organization", HFILL }},
+ { &hf_gsm_map_etsi_pdp_type_number,
+ { "PDP Type Number", "gsm_map.pdp_type_org",
+ FT_UINT8, BASE_HEX, VALS(etsi_pdp_type_number_values), 0,
+ "ETSI PDP Type Number", HFILL }},
+ { &hf_gsm_map_ietf_pdp_type_number,
+ { "PDP Type Number", "gsm_map.ietf_pdp_type_number",
+ FT_UINT8, BASE_HEX, VALS(ietf_pdp_type_number_values), 0,
+ "IETF PDP Type Number", HFILL }},
+ { &hf_gsm_map_ext_qos_subscribed_pri,
+ { "Allocation/Retention priority", "gsm_map.ext_qos_subscribed_pri",
+ FT_UINT8, BASE_DEC, NULL, 0xff,
+ "Allocation/Retention priority", HFILL }},
+ { &hf_gsm_map_qos_traffic_cls,
+ { "Traffic class", "gsm_map.qos.traffic_cls",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0xe0,
+ "Traffic class", HFILL }},
+ { &hf_gsm_map_qos_del_order,
+ { "Delivery order", "gsm_map.qos.del_order",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traffic_cls_vals), 0x18,
+ "Delivery order", HFILL }},
+ { &hf_gsm_map_qos_del_of_err_sdu,
+ { "Delivery of erroneous SDUs", "gsm_map.qos.del_of_err_sdu",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_qos_del_of_err_sdu_vals), 0x03,
+ "Delivery of erroneous SDUs", HFILL }},
+ { &hf_gsm_map_qos_ber,
+ { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_qos_ber_vals), 0xf0,
+ "Residual Bit Error Rate (BER)", HFILL }},
+ { &hf_gsm_map_qos_sdu_err_rat,
+ { "SDU error ratio", "gsm_map.qos.sdu_err_rat",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_qos_sdu_err_rat_vals), 0x0f,
+ "SDU error ratio", HFILL }},
+ { &hf_gsm_map_qos_traff_hdl_pri,
+ { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri",
+ FT_UINT8, BASE_DEC, VALS(gsm_a_qos_traff_hdl_pri_vals), 0x03,
+ "Traffic handling priority", HFILL }},
+
+ { &hf_gsm_map_qos_max_sdu,
+ { "Maximum SDU size", "gsm_map.qos.max_sdu",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Maximum SDU size", HFILL }},
+ { &hf_gsm_map_max_brate_ulink,
+ { "Maximum bit rate for uplink in kbit/s", "gsm_map.qos.max_brate_ulink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Maximum bit rate for uplink", HFILL }},
+ { &hf_gsm_map_max_brate_dlink,
+ { "Maximum bit rate for downlink in kbit/s", "gsm_map.qos.max_brate_dlink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Maximum bit rate for downlink", HFILL }},
+ { &hf_gsm_map_qos_transfer_delay,
+ { "Transfer delay (Raw data see TS 24.008 for interpretation)", "gsm_map.qos.transfer_delay",
+ FT_UINT8, BASE_DEC, NULL, 0xfc,
+ "Transfer delay", HFILL }},
+ { &hf_gsm_map_guaranteed_max_brate_ulink,
+ { "Guaranteed bit rate for uplink in kbit/s", "gsm_map.qos.brate_ulink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Guaranteed bit rate for uplink", HFILL }},
+ { &hf_gsm_map_guaranteed_max_brate_dlink,
+ { "Guaranteed bit rate for downlink in kbit/s", "gsm_map.qos.brate_dlink",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Guaranteed bit rate for downlink", HFILL }},
+ { &hf_gsm_map_GSNAddress_IPv4,
+ { "GSN-Address IPv4", "gsm_map.gsnaddress_ipv4",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ "IPAddress IPv4", HFILL }},
+ { &hf_gsm_map_GSNAddress_IPv6,
+ { "GSN Address IPv6", "gsm_map.gsnaddress_ipv6",
+ FT_IPv4, BASE_NONE, NULL, 0,
+ "IPAddress IPv6", HFILL }},
+ { &hf_geo_loc_type_of_shape,
+ { "Location estimate","gad.location_estimate",
+ FT_UINT8,BASE_DEC, VALS(type_of_shape_vals), 0xf0,
+ "Location estimate", HFILL }
+ },
+ { &hf_geo_loc_sign_of_lat,
+ { "Sign of latitude","gad.sign_of_latitude",
+ FT_UINT8,BASE_DEC, VALS(sign_of_latitude_vals), 0x80,
+ "Sign of latitude", HFILL }
+ },
+ { &hf_geo_loc_deg_of_lat,
+ { "Degrees of latitude","gad.sign_of_latitude",
+ FT_UINT24,BASE_DEC, NULL, 0x7fffff,
+ "Degrees of latitude", HFILL }
+ },
+ { &hf_geo_loc_deg_of_long,
+ { "Degrees of longitude","gad.sign_of_longitude",
+ FT_UINT24,BASE_DEC, NULL, 0xffffff,
+ "Degrees of longitude", HFILL }
+ },
+ { &hf_geo_loc_uncertainty_code,
+ { "Uncertainty code","gad.uncertainty_code",
+ FT_UINT8,BASE_DEC, NULL, 0x7f,
+ "Uncertainty code", HFILL }
+ },
+ { &hf_geo_loc_uncertainty_semi_major,
+ { "Uncertainty semi-major","gad.uncertainty_semi_major",
+ FT_UINT8,BASE_DEC, NULL, 0x7f,
+ "Uncertainty semi-major", HFILL }
+ },
+ { &hf_geo_loc_uncertainty_semi_minor,
+ { "Uncertainty semi-minor","gad.uncertainty_semi_minor",
+ FT_UINT8,BASE_DEC, NULL, 0x7f,
+ "Uncertainty semi-minor", HFILL }
+ },
+ { &hf_geo_loc_orientation_of_major_axis,
+ { "Orientation of major axis","gad.orientation_of_major_axis",
+ FT_UINT8,BASE_DEC, NULL, 0x0,
+ "Orientation of major axis", HFILL }
+ },
+ { &hf_geo_loc_uncertainty_altitude,
+ { "Uncertainty Altitude","gad.uncertainty_altitude",
+ FT_UINT8,BASE_DEC, NULL, 0x7f,
+ "Uncertainty Altitude", HFILL }
+ },
+ { &hf_geo_loc_confidence,
+ { "Confidence(%)","gad.confidence",
+ FT_UINT8,BASE_DEC, NULL, 0x7f,
+ "Confidence(%)", HFILL }
+ },
+ { &hf_geo_loc_no_of_points,
+ { "Number of points","gad.no_of_points",
+ FT_UINT8,BASE_DEC, NULL, 0x0f,
+ "Number of points", HFILL }
+ },
+ { &hf_geo_loc_D,
+ { "D: Direction of Altitude","gad.D",
+ FT_UINT16,BASE_DEC, VALS(dir_of_alt_vals), 0x8000,
+ "D: Direction of Altitude", HFILL }
+ },
+ { &hf_geo_loc_altitude,
+ { "Altitude in meters","gad.altitude",
+ FT_UINT16,BASE_DEC, NULL, 0x7fff,
+ "Altitude", HFILL }
+ },
+ { &hf_geo_loc_inner_radius,
+ { "Inner radius","gad.altitude",
+ FT_UINT16,BASE_DEC, NULL, 0x0,
+ "Inner radius", HFILL }
+ },
+ { &hf_geo_loc_uncertainty_radius,
+ { "Uncertainty radius","gad.no_of_points",
+ FT_UINT8,BASE_DEC, NULL, 0x7f,
+ "Uncertainty radius", HFILL }
+ },
+ { &hf_geo_loc_offset_angle,
+ { "Offset angle","gad.offset_angle",
+ FT_UINT8,BASE_DEC, NULL, 0x0,
+ "Offset angle", HFILL }
+ },
+ { &hf_geo_loc_included_angle,
+ { "Included angle","gad.included_angle",
+ FT_UINT8,BASE_DEC, NULL, 0x0,
+ "Included angle", HFILL }
+ },
+
+ { &hf_gsm_map_ranap_service_Handover,
+ { "service-Handover", "gsm_map.ranap.service_Handover",
+ FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
+ "gsm_map.ranap.Service_Handover", HFILL }},
+ { &hf_gsm_mapIntegrityProtectionInformation,
+ { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ranap.IntegrityProtectionInformation", HFILL }},
+ { &hf_gsm_mapEncryptionInformation,
+ { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ranap.EncryptionInformation", HFILL }},
+ { &hf_gsm_map_PlmnContainer_PDU,
+ { "PlmnContainer", "gsm_map.PlmnContainer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.PlmnContainer", HFILL }},
+
+
+/*--- Included file: packet-gsm_map-hfarr.c ---*/
+#line 1 "packet-gsm_map-hfarr.c"
+ { &hf_gsm_map_Component_PDU,
+ { "Component", "gsm_map.Component",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Component_vals), 0,
+ "gsm_map.Component", HFILL }},
+ { &hf_gsm_map_invoke,
+ { "invoke", "gsm_map.invoke",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Invoke", HFILL }},
+ { &hf_gsm_map_returnResultLast,
+ { "returnResultLast", "gsm_map.returnResultLast",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ReturnResult", HFILL }},
+ { &hf_gsm_map_returnError,
+ { "returnError", "gsm_map.returnError",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ReturnError", HFILL }},
+ { &hf_gsm_map_reject,
+ { "reject", "gsm_map.reject",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Reject", HFILL }},
+ { &hf_gsm_map_returnResultNotLast,
+ { "returnResultNotLast", "gsm_map.returnResultNotLast",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ReturnResult", HFILL }},
+ { &hf_gsm_map_invokeID,
+ { "invokeID", "gsm_map.invokeID",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "gsm_map.InvokeIdType", HFILL }},
+ { &hf_gsm_map_linkedID,
+ { "linkedID", "gsm_map.linkedID",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "gsm_map.InvokeIdType", HFILL }},
+ { &hf_gsm_map_opCode,
+ { "opCode", "gsm_map.opCode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_OPERATION_vals), 0,
+ "gsm_map.OPERATION", HFILL }},
+ { &hf_gsm_map_invokeparameter,
+ { "invokeparameter", "gsm_map.invokeparameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.InvokeParameter", HFILL }},
+ { &hf_gsm_map_resultretres,
+ { "resultretres", "gsm_map.resultretres",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_resultretres", HFILL }},
+ { &hf_gsm_map_returnparameter,
+ { "returnparameter", "gsm_map.returnparameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ReturnResultParameter", HFILL }},
+ { &hf_gsm_map_returnErrorCode,
+ { "errorCode", "gsm_map.errorCode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ERROR_vals), 0,
+ "gsm_map.ERROR", HFILL }},
+ { &hf_gsm_map_parameter,
+ { "parameter", "gsm_map.parameter",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ReturnErrorParameter", HFILL }},
+ { &hf_gsm_map_invokeIDRej,
+ { "invokeIDRej", "gsm_map.invokeIDRej",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_T_invokeIDRej_vals), 0,
+ "gsm_map.T_invokeIDRej", HFILL }},
+ { &hf_gsm_map_derivable,
+ { "derivable", "gsm_map.derivable",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "gsm_map.InvokeIdType", HFILL }},
+ { &hf_gsm_map_not_derivable,
+ { "not-derivable", "gsm_map.not_derivable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_problem,
+ { "problem", "gsm_map.problem",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_T_problem_vals), 0,
+ "gsm_map.T_problem", HFILL }},
+ { &hf_gsm_map_generalProblem,
+ { "generalProblem", "gsm_map.generalProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_GeneralProblem_vals), 0,
+ "gsm_map.GeneralProblem", HFILL }},
+ { &hf_gsm_map_invokeProblem,
+ { "invokeProblem", "gsm_map.invokeProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_InvokeProblem_vals), 0,
+ "gsm_map.InvokeProblem", HFILL }},
+ { &hf_gsm_map_returnResultProblem,
+ { "returnResultProblem", "gsm_map.returnResultProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_ReturnResultProblem_vals), 0,
+ "gsm_map.ReturnResultProblem", HFILL }},
+ { &hf_gsm_map_returnErrorProblem,
+ { "returnErrorProblem", "gsm_map.returnErrorProblem",
+ FT_INT32, BASE_DEC, VALS(gsm_map_ReturnErrorProblem_vals), 0,
+ "gsm_map.ReturnErrorProblem", HFILL }},
+ { &hf_gsm_map_operationLocalvalue,
+ { "localValue", "gsm_map.localValue",
+ FT_INT32, BASE_DEC, VALS(gsm_map_GSMMAPOperationLocalvalue_vals), 0,
+ "gsm_map.OperationLocalvalue", HFILL }},
+ { &hf_gsm_map_globalValue,
+ { "globalValue", "gsm_map.globalValue",
+ FT_OID, BASE_NONE, NULL, 0,
+ "gsm_map.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_gsm_map_localErrorcode,
+ { "localValue", "gsm_map.localValue",
+ FT_INT32, BASE_DEC, VALS(gsm_map_GSMMAPLocalErrorcode_vals), 0,
+ "gsm_map.LocalErrorcode", HFILL }},
+ { &hf_gsm_map_protocolId,
+ { "protocolId", "gsm_map.protocolId",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0,
+ "gsm_map.ProtocolId", HFILL }},
+ { &hf_gsm_map_signalInfo,
+ { "signalInfo", "gsm_map.signalInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SignalInfo", HFILL }},
+ { &hf_gsm_map_extensionContainer,
+ { "extensionContainer", "gsm_map.extensionContainer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExtensionContainer", HFILL }},
+ { &hf_gsm_map_imsi,
+ { "imsi", "gsm_map.imsi",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.IMSI", HFILL }},
+ { &hf_gsm_map_msc_Number,
+ { "msc-Number", "gsm_map.msc_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_vlr_Number,
+ { "vlr-Number", "gsm_map.vlr_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_lmsi,
+ { "lmsi", "gsm_map.lmsi",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LMSI", HFILL }},
+ { &hf_gsm_map_vlr_Capability,
+ { "vlr-Capability", "gsm_map.vlr_Capability",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.VLR_Capability", HFILL }},
+ { &hf_gsm_map_informPreviousNetworkEntity,
+ { "informPreviousNetworkEntity", "gsm_map.informPreviousNetworkEntity",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_cs_LCS_NotSupportedByUE,
+ { "cs-LCS-NotSupportedByUE", "gsm_map.cs_LCS_NotSupportedByUE",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_v_gmlc_Address,
+ { "v-gmlc-Address", "gsm_map.v_gmlc_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_add_info,
+ { "add-info", "gsm_map.add_info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ADD_Info", HFILL }},
+ { &hf_gsm_map_hlr_Number,
+ { "hlr-Number", "gsm_map.hlr_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_add_Capability,
+ { "add-Capability", "gsm_map.add_Capability",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_supportedCamelPhases,
+ { "supportedCamelPhases", "gsm_map.supportedCamelPhases",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedCamelPhases", HFILL }},
+ { &hf_gsm_map_solsaSupportIndicator,
+ { "solsaSupportIndicator", "gsm_map.solsaSupportIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_istSupportIndicator,
+ { "istSupportIndicator", "gsm_map.istSupportIndicator",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_IST_SupportIndicator_vals), 0,
+ "gsm_map.IST_SupportIndicator", HFILL }},
+ { &hf_gsm_map_superChargerSupportedInServingNetworkEntity,
+ { "superChargerSupportedInServingNetworkEntity", "gsm_map.superChargerSupportedInServingNetworkEntity",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SuperChargerInfo_vals), 0,
+ "gsm_map.SuperChargerInfo", HFILL }},
+ { &hf_gsm_map_longFTN_Supported,
+ { "longFTN-Supported", "gsm_map.longFTN_Supported",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_supportedLCS_CapabilitySets,
+ { "supportedLCS-CapabilitySets", "gsm_map.supportedLCS_CapabilitySets",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedLCS_CapabilitySets", HFILL }},
+ { &hf_gsm_map_offeredCamel4CSIs,
+ { "offeredCamel4CSIs", "gsm_map.offeredCamel4CSIs",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.OfferedCamel4CSIs", HFILL }},
+ { &hf_gsm_map_supportedRAT_TypesIndicator,
+ { "supportedRAT-TypesIndicator", "gsm_map.supportedRAT_TypesIndicator",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedRAT_Types", HFILL }},
+ { &hf_gsm_map_sendSubscriberData,
+ { "sendSubscriberData", "gsm_map.sendSubscriberData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_subscriberDataStored,
+ { "subscriberDataStored", "gsm_map.subscriberDataStored",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AgeIndicator", HFILL }},
+ { &hf_gsm_map_imeisv,
+ { "imeisv", "gsm_map.imeisv",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.IMEI", HFILL }},
+ { &hf_gsm_map_skipSubscriberDataUpdate,
+ { "skipSubscriberDataUpdate", "gsm_map.skipSubscriberDataUpdate",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_PrivateExtensionList_item,
+ { "Item", "gsm_map.PrivateExtensionList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.PrivateExtension", HFILL }},
+ { &hf_gsm_map_extId,
+ { "extId", "gsm_map.extId",
+ FT_OID, BASE_NONE, NULL, 0,
+ "gsm_map.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_gsm_map_extType,
+ { "extType", "gsm_map.extType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_extType", HFILL }},
+ { &hf_gsm_map_privateExtensionList,
+ { "privateExtensionList", "gsm_map.privateExtensionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.PrivateExtensionList", HFILL }},
+ { &hf_gsm_map_slr_Arg_PCS_Extensions,
+ { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SLR_Arg_PCS_Extensions", HFILL }},
+ { &hf_gsm_map_na_ESRK_Request,
+ { "na-ESRK-Request", "gsm_map.na_ESRK_Request",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_identity,
+ { "identity", "gsm_map.identity",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0,
+ "gsm_map.Identity", HFILL }},
+ { &hf_gsm_map_cancellationType,
+ { "cancellationType", "gsm_map.cancellationType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CancellationType_vals), 0,
+ "gsm_map.CancellationType", HFILL }},
+ { &hf_gsm_map_imsi_WithLMSI,
+ { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.IMSI_WithLMSI", HFILL }},
+ { &hf_gsm_map_sgsn_Number,
+ { "sgsn-Number", "gsm_map.sgsn_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_freezeTMSI,
+ { "freezeTMSI", "gsm_map.freezeTMSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_freezeP_TMSI,
+ { "freezeP-TMSI", "gsm_map.freezeP_TMSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_tmsi,
+ { "tmsi", "gsm_map.tmsi",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TMSI", HFILL }},
+ { &hf_gsm_map_numberOfRequestedVectors,
+ { "numberOfRequestedVectors", "gsm_map.numberOfRequestedVectors",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.NumberOfRequestedVectors", HFILL }},
+ { &hf_gsm_map_segmentationProhibited,
+ { "segmentationProhibited", "gsm_map.segmentationProhibited",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_previous_LAI,
+ { "previous-LAI", "gsm_map.previous_LAI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LAIFixedLength", HFILL }},
+ { &hf_gsm_map_hopCounter,
+ { "hopCounter", "gsm_map.hopCounter",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.HopCounter", HFILL }},
+ { &hf_gsm_map_authenticationSetList,
+ { "authenticationSetList", "gsm_map.authenticationSetList",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AuthenticationSetList_vals), 0,
+ "gsm_map.AuthenticationSetList", HFILL }},
+ { &hf_gsm_map_currentSecurityContext,
+ { "currentSecurityContext", "gsm_map.currentSecurityContext",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CurrentSecurityContext_vals), 0,
+ "gsm_map.CurrentSecurityContext", HFILL }},
+ { &hf_gsm_map_tripletList,
+ { "tripletList", "gsm_map.tripletList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.TripletList", HFILL }},
+ { &hf_gsm_map_quintupletList,
+ { "quintupletList", "gsm_map.quintupletList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.QuintupletList", HFILL }},
+ { &hf_gsm_map_TripletList_item,
+ { "Item", "gsm_map.TripletList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.AuthenticationTriplet", HFILL }},
+ { &hf_gsm_map_QuintupletList_item,
+ { "Item", "gsm_map.QuintupletList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.AuthenticationQuintuplet", HFILL }},
+ { &hf_gsm_map_rand,
+ { "rand", "gsm_map.rand",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RAND", HFILL }},
+ { &hf_gsm_map_sres,
+ { "sres", "gsm_map.sres",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SRES", HFILL }},
+ { &hf_gsm_map_kc,
+ { "kc", "gsm_map.kc",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Kc", HFILL }},
+ { &hf_gsm_map_xres,
+ { "xres", "gsm_map.xres",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.XRES", HFILL }},
+ { &hf_gsm_map_ck,
+ { "ck", "gsm_map.ck",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CK", HFILL }},
+ { &hf_gsm_map_ik,
+ { "ik", "gsm_map.ik",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.IK", HFILL }},
+ { &hf_gsm_map_autn,
+ { "autn", "gsm_map.autn",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AUTN", HFILL }},
+ { &hf_gsm_map_gsm_SecurityContextData,
+ { "gsm-SecurityContextData", "gsm_map.gsm_SecurityContextData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GSM_SecurityContextData", HFILL }},
+ { &hf_gsm_map_umts_SecurityContextData,
+ { "umts-SecurityContextData", "gsm_map.umts_SecurityContextData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.UMTS_SecurityContextData", HFILL }},
+ { &hf_gsm_map_cksn,
+ { "cksn", "gsm_map.cksn",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Cksn", HFILL }},
+ { &hf_gsm_map_ksi,
+ { "ksi", "gsm_map.ksi",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.KSI", HFILL }},
+ { &hf_gsm_map_targetCellId,
+ { "targetCellId", "gsm_map.targetCellId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GlobalCellId", HFILL }},
+ { &hf_gsm_map_ho_NumberNotRequired,
+ { "ho-NumberNotRequired", "gsm_map.ho_NumberNotRequired",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_bss_APDU,
+ { "bss-APDU", "gsm_map.bss_APDU",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Bss_APDU", HFILL }},
+ { &hf_gsm_map_targetRNCId,
+ { "targetRNCId", "gsm_map.targetRNCId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RNCId", HFILL }},
+ { &hf_gsm_map_an_APDU,
+ { "an-APDU", "gsm_map.an_APDU",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.AccessNetworkSignalInfo", HFILL }},
+ { &hf_gsm_map_multipleBearerRequested,
+ { "multipleBearerRequested", "gsm_map.multipleBearerRequested",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_integrityProtectionInfo,
+ { "integrityProtectionInfo", "gsm_map.integrityProtectionInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.IntegrityProtectionInformation", HFILL }},
+ { &hf_gsm_map_encryptionInfo,
+ { "encryptionInfo", "gsm_map.encryptionInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.EncryptionInformation", HFILL }},
+ { &hf_gsm_map_radioResourceInformation,
+ { "radioResourceInformation", "gsm_map.radioResourceInformation",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RadioResourceInformation", HFILL }},
+ { &hf_gsm_map_allowedGSM_Algorithms,
+ { "allowedGSM-Algorithms", "gsm_map.allowedGSM_Algorithms",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AllowedGSM_Algorithms", HFILL }},
+ { &hf_gsm_map_allowedUMTS_Algorithms,
+ { "allowedUMTS-Algorithms", "gsm_map.allowedUMTS_Algorithms",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.AllowedUMTS_Algorithms", HFILL }},
+ { &hf_gsm_map_radioResourceList,
+ { "radioResourceList", "gsm_map.radioResourceList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.RadioResourceList", HFILL }},
+ { &hf_gsm_map_rab_Id,
+ { "rab-Id", "gsm_map.rab_Id",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.RAB_Id", HFILL }},
+ { &hf_gsm_map_bssmap_ServiceHandover,
+ { "bssmap-ServiceHandover", "gsm_map.bssmap_ServiceHandover",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.BSSMAP_ServiceHandover", HFILL }},
+ { &hf_gsm_map_ranap_ServiceHandover,
+ { "ranap-ServiceHandover", "gsm_map.ranap_ServiceHandover",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RANAP_ServiceHandover", HFILL }},
+ { &hf_gsm_map_bssmap_ServiceHandoverList,
+ { "bssmap-ServiceHandoverList", "gsm_map.bssmap_ServiceHandoverList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.BSSMAP_ServiceHandoverList", HFILL }},
+ { &hf_gsm_map_asciCallReference,
+ { "asciCallReference", "gsm_map.asciCallReference",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ASCI_CallReference", HFILL }},
+ { &hf_gsm_map_geran_classmark,
+ { "geran-classmark", "gsm_map.geran_classmark",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GERAN_Classmark", HFILL }},
+ { &hf_gsm_map_iuCurrentlyUsedCodec,
+ { "iuCurrentlyUsedCodec", "gsm_map.iuCurrentlyUsedCodec",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_iuSupportedCodecsList,
+ { "iuSupportedCodecsList", "gsm_map.iuSupportedCodecsList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SupportedCodecsList", HFILL }},
+ { &hf_gsm_map_rab_ConfigurationIndicator,
+ { "rab-ConfigurationIndicator", "gsm_map.rab_ConfigurationIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_uesbi_Iu,
+ { "uesbi-Iu", "gsm_map.uesbi_Iu",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.UESBI_Iu", HFILL }},
+ { &hf_gsm_map_alternativeChannelType,
+ { "alternativeChannelType", "gsm_map.alternativeChannelType",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RadioResourceInformation", HFILL }},
+ { &hf_gsm_map_tracePropagationList,
+ { "tracePropagationList", "gsm_map.tracePropagationList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.TracePropagationList", HFILL }},
+ { &hf_gsm_map_BSSMAP_ServiceHandoverList_item,
+ { "Item", "gsm_map.BSSMAP_ServiceHandoverList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.BSSMAP_ServiceHandoverInfo", HFILL }},
+ { &hf_gsm_map_RadioResourceList_item,
+ { "Item", "gsm_map.RadioResourceList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.RadioResource", HFILL }},
+ { &hf_gsm_map_handoverNumber,
+ { "handoverNumber", "gsm_map.handoverNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_relocationNumberList,
+ { "relocationNumberList", "gsm_map.relocationNumberList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.RelocationNumberList", HFILL }},
+ { &hf_gsm_map_multicallBearerInfo,
+ { "multicallBearerInfo", "gsm_map.multicallBearerInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MulticallBearerInfo", HFILL }},
+ { &hf_gsm_map_multipleBearerNotSupported,
+ { "multipleBearerNotSupported", "gsm_map.multipleBearerNotSupported",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_selectedUMTS_Algorithms,
+ { "selectedUMTS-Algorithms", "gsm_map.selectedUMTS_Algorithms",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SelectedUMTS_Algorithms", HFILL }},
+ { &hf_gsm_map_chosenRadioResourceInformation,
+ { "chosenRadioResourceInformation", "gsm_map.chosenRadioResourceInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ChosenRadioResourceInformation", HFILL }},
+ { &hf_gsm_map_iuSelectedCodec,
+ { "iuSelectedCodec", "gsm_map.iuSelectedCodec",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_iuAvailableCodecsList,
+ { "iuAvailableCodecsList", "gsm_map.iuAvailableCodecsList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CodecList", HFILL }},
+ { &hf_gsm_map_integrityProtectionAlgorithm,
+ { "integrityProtectionAlgorithm", "gsm_map.integrityProtectionAlgorithm",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ChosenIntegrityProtectionAlgorithm", HFILL }},
+ { &hf_gsm_map_encryptionAlgorithm,
+ { "encryptionAlgorithm", "gsm_map.encryptionAlgorithm",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ChosenEncryptionAlgorithm", HFILL }},
+ { &hf_gsm_map_chosenChannelInfo,
+ { "chosenChannelInfo", "gsm_map.chosenChannelInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ChosenChannelInfo", HFILL }},
+ { &hf_gsm_map_chosenSpeechVersion,
+ { "chosenSpeechVersion", "gsm_map.chosenSpeechVersion",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ChosenSpeechVersion", HFILL }},
+ { &hf_gsm_map_RelocationNumberList_item,
+ { "Item", "gsm_map.RelocationNumberList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.RelocationNumber", HFILL }},
+ { &hf_gsm_map_selectedGSM_Algorithm,
+ { "selectedGSM-Algorithm", "gsm_map.selectedGSM_Algorithm",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SelectedGSM_Algorithm", HFILL }},
+ { &hf_gsm_map_selectedRab_Id,
+ { "selectedRab-Id", "gsm_map.selectedRab_Id",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.RAB_Id", HFILL }},
+ { &hf_gsm_map_iUSelectedCodec,
+ { "iUSelectedCodec", "gsm_map.iUSelectedCodec",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_utranCodecList,
+ { "utranCodecList", "gsm_map.utranCodecList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CodecList", HFILL }},
+ { &hf_gsm_map_geranCodecList,
+ { "geranCodecList", "gsm_map.geranCodecList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CodecList", HFILL }},
+ { &hf_gsm_map_codec1,
+ { "codec1", "gsm_map.codec1",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec2,
+ { "codec2", "gsm_map.codec2",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec3,
+ { "codec3", "gsm_map.codec3",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec4,
+ { "codec4", "gsm_map.codec4",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec5,
+ { "codec5", "gsm_map.codec5",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec6,
+ { "codec6", "gsm_map.codec6",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec7,
+ { "codec7", "gsm_map.codec7",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_codec8,
+ { "codec8", "gsm_map.codec8",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_keyStatus,
+ { "keyStatus", "gsm_map.keyStatus",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_KeyStatus_vals), 0,
+ "gsm_map.KeyStatus", HFILL }},
+ { &hf_gsm_map_currentlyUsedCodec,
+ { "currentlyUsedCodec", "gsm_map.currentlyUsedCodec",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Codec", HFILL }},
+ { &hf_gsm_map_integrityProtectionAlgorithms,
+ { "integrityProtectionAlgorithms", "gsm_map.integrityProtectionAlgorithms",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.PermittedIntegrityProtectionAlgorithms", HFILL }},
+ { &hf_gsm_map_encryptionAlgorithms,
+ { "encryptionAlgorithms", "gsm_map.encryptionAlgorithms",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.PermittedEncryptionAlgorithms", HFILL }},
+ { &hf_gsm_map_targetMSC_Number,
+ { "targetMSC-Number", "gsm_map.targetMSC_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_immediateResponsePreferred,
+ { "immediateResponsePreferred", "gsm_map.immediateResponsePreferred",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_re_synchronisationInfo,
+ { "re-synchronisationInfo", "gsm_map.re_synchronisationInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Re_synchronisationInfo", HFILL }},
+ { &hf_gsm_map_requestingNodeType,
+ { "requestingNodeType", "gsm_map.requestingNodeType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RequestingNodeType_vals), 0,
+ "gsm_map.RequestingNodeType", HFILL }},
+ { &hf_gsm_map_requestingPLMN_Id,
+ { "requestingPLMN-Id", "gsm_map.requestingPLMN_Id",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.PLMN_Id", HFILL }},
+ { &hf_gsm_map_SendAuthenticationInfoRes_item,
+ { "Item", "gsm_map.SendAuthenticationInfoRes_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SendAuthenticationInfoRes_item", HFILL }},
+ { &hf_gsm_map_auts,
+ { "auts", "gsm_map.auts",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AUTS", HFILL }},
+ { &hf_gsm_map_imei,
+ { "imei", "gsm_map.imei",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.IMEI", HFILL }},
+ { &hf_gsm_map_requestedEquipmentInfo,
+ { "requestedEquipmentInfo", "gsm_map.requestedEquipmentInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RequestedEquipmentInfo", HFILL }},
+ { &hf_gsm_map_equipmentStatus,
+ { "equipmentStatus", "gsm_map.equipmentStatus",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_EquipmentStatus_vals), 0,
+ "gsm_map.EquipmentStatus", HFILL }},
+ { &hf_gsm_map_bmuef,
+ { "bmuef", "gsm_map.bmuef",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.UESBI_Iu", HFILL }},
+ { &hf_gsm_map_uesbi_IuA,
+ { "uesbi-IuA", "gsm_map.uesbi_IuA",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.UESBI_IuA", HFILL }},
+ { &hf_gsm_map_uesbi_IuB,
+ { "uesbi-IuB", "gsm_map.uesbi_IuB",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.UESBI_IuB", HFILL }},
+ { &hf_gsm_map_BasicServiceGroupList_item,
+ { "Item", "gsm_map.BasicServiceGroupList_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
+ "gsm_map.BasicServiceCode", HFILL }},
+ { &hf_gsm_map_o_BcsmCamelTDPDataList,
+ { "o-BcsmCamelTDPDataList", "gsm_map.o_BcsmCamelTDPDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.O_BcsmCamelTDPDataList", HFILL }},
+ { &hf_gsm_map_camelCapabilityHandling,
+ { "camelCapabilityHandling", "gsm_map.camelCapabilityHandling",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CamelCapabilityHandling", HFILL }},
+ { &hf_gsm_map_notificationToCSE,
+ { "notificationToCSE", "gsm_map.notificationToCSE",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_csiActive,
+ { "csiActive", "gsm_map.csiActive",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_O_BcsmCamelTDPDataList_item,
+ { "Item", "gsm_map.O_BcsmCamelTDPDataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.O_BcsmCamelTDPData", HFILL }},
+ { &hf_gsm_map_o_BcsmTriggerDetectionPoint,
+ { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_O_BcsmTriggerDetectionPoint_vals), 0,
+ "gsm_map.O_BcsmTriggerDetectionPoint", HFILL }},
+ { &hf_gsm_map_serviceKey,
+ { "serviceKey", "gsm_map.serviceKey",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ServiceKey", HFILL }},
+ { &hf_gsm_map_gsmSCF_Address,
+ { "gsmSCF-Address", "gsm_map.gsmSCF_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_defaultCallHandling,
+ { "defaultCallHandling", "gsm_map.defaultCallHandling",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultCallHandling_vals), 0,
+ "gsm_map.DefaultCallHandling", HFILL }},
+ { &hf_gsm_map_msisdn,
+ { "msisdn", "gsm_map.msisdn",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_category,
+ { "category", "gsm_map.category",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Category", HFILL }},
+ { &hf_gsm_map_subscriberStatus,
+ { "subscriberStatus", "gsm_map.subscriberStatus",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberStatus_vals), 0,
+ "gsm_map.SubscriberStatus", HFILL }},
+ { &hf_gsm_map_bearerserviceList,
+ { "bearerserviceList", "gsm_map.bearerserviceList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.BearerServiceList", HFILL }},
+ { &hf_gsm_map_teleserviceList,
+ { "teleserviceList", "gsm_map.teleserviceList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.TeleserviceList", HFILL }},
+ { &hf_gsm_map_provisionedSS,
+ { "provisionedSS", "gsm_map.provisionedSS",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.Ext_SS_InfoList", HFILL }},
+ { &hf_gsm_map_odb_Data,
+ { "odb-Data", "gsm_map.odb_Data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ODB_Data", HFILL }},
+ { &hf_gsm_map_roamingRestrictionDueToUnsupportedFeature,
+ { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.roamingRestrictionDueToUnsupportedFeature",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_regionalSubscriptionData,
+ { "regionalSubscriptionData", "gsm_map.regionalSubscriptionData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ZoneCodeList", HFILL }},
+ { &hf_gsm_map_vbsSubscriptionData,
+ { "vbsSubscriptionData", "gsm_map.vbsSubscriptionData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.VBSDataList", HFILL }},
+ { &hf_gsm_map_vgcsSubscriptionData,
+ { "vgcsSubscriptionData", "gsm_map.vgcsSubscriptionData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.VGCSDataList", HFILL }},
+ { &hf_gsm_map_vlrCamelSubscriptionInfo,
+ { "vlrCamelSubscriptionInfo", "gsm_map.vlrCamelSubscriptionInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.VlrCamelSubscriptionInfo", HFILL }},
+ { &hf_gsm_map_naea_PreferredCI,
+ { "naea-PreferredCI", "gsm_map.naea_PreferredCI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NAEA_PreferredCI", HFILL }},
+ { &hf_gsm_map_gprsSubscriptionData,
+ { "gprsSubscriptionData", "gsm_map.gprsSubscriptionData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GPRSSubscriptionData", HFILL }},
+ { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature,
+ { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsupportedFeature",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_networkAccessMode,
+ { "networkAccessMode", "gsm_map.networkAccessMode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkAccessMode_vals), 0,
+ "gsm_map.NetworkAccessMode", HFILL }},
+ { &hf_gsm_map_lsaInformation,
+ { "lsaInformation", "gsm_map.lsaInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LSAInformation", HFILL }},
+ { &hf_gsm_map_lmu_Indicator,
+ { "lmu-Indicator", "gsm_map.lmu_Indicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_lcsInformation,
+ { "lcsInformation", "gsm_map.lcsInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LCSInformation", HFILL }},
+ { &hf_gsm_map_istAlertTimer,
+ { "istAlertTimer", "gsm_map.istAlertTimer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.IST_AlertTimerValue", HFILL }},
+ { &hf_gsm_map_superChargerSupportedInHLR,
+ { "superChargerSupportedInHLR", "gsm_map.superChargerSupportedInHLR",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AgeIndicator", HFILL }},
+ { &hf_gsm_map_mc_SS_Info,
+ { "mc-SS-Info", "gsm_map.mc_SS_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.MC_SS_Info", HFILL }},
+ { &hf_gsm_map_cs_AllocationRetentionPriority,
+ { "cs-AllocationRetentionPriority", "gsm_map.cs_AllocationRetentionPriority",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CS_AllocationRetentionPriority", HFILL }},
+ { &hf_gsm_map_sgsn_CAMEL_SubscriptionInfo,
+ { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.sgsn_CAMEL_SubscriptionInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SGSN_CAMEL_SubscriptionInfo", HFILL }},
+ { &hf_gsm_map_chargingCharacteristics,
+ { "chargingCharacteristics", "gsm_map.chargingCharacteristics",
+ FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
+ "gsm_map.ChargingCharacteristics", HFILL }},
+ { &hf_gsm_map_accessRestrictionData,
+ { "accessRestrictionData", "gsm_map.accessRestrictionData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AccessRestrictionData", HFILL }},
+ { &hf_gsm_map_gmlc_List,
+ { "gmlc-List", "gsm_map.gmlc_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.GMLC_List", HFILL }},
+ { &hf_gsm_map_lcs_PrivacyExceptionList,
+ { "lcs-PrivacyExceptionList", "gsm_map.lcs_PrivacyExceptionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.LCS_PrivacyExceptionList", HFILL }},
+ { &hf_gsm_map_molr_List,
+ { "molr-List", "gsm_map.molr_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MOLR_List", HFILL }},
+ { &hf_gsm_map_add_lcs_PrivacyExceptionList,
+ { "add-lcs-PrivacyExceptionList", "gsm_map.add_lcs_PrivacyExceptionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.LCS_PrivacyExceptionList", HFILL }},
+ { &hf_gsm_map_GMLC_List_item,
+ { "Item", "gsm_map.GMLC_List_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_GPRSDataList_item,
+ { "Item", "gsm_map.GPRSDataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.PDP_Context", HFILL }},
+ { &hf_gsm_map_pdp_ContextId,
+ { "pdp-ContextId", "gsm_map.pdp_ContextId",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ContextId", HFILL }},
+ { &hf_gsm_map_pdp_Type,
+ { "pdp-Type", "gsm_map.pdp_Type",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.PDP_Type", HFILL }},
+ { &hf_gsm_map_pdp_Address,
+ { "pdp-Address", "gsm_map.pdp_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.PDP_Address", HFILL }},
+ { &hf_gsm_map_qos_Subscribed,
+ { "qos-Subscribed", "gsm_map.qos_Subscribed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_vplmnAddressAllowed,
+ { "vplmnAddressAllowed", "gsm_map.vplmnAddressAllowed",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_apn,
+ { "apn", "gsm_map.apn",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.APN", HFILL }},
+ { &hf_gsm_map_ext_QoS_Subscribed,
+ { "ext-QoS-Subscribed", "gsm_map.ext_QoS_Subscribed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_pdp_ChargingCharacteristics,
+ { "pdp-ChargingCharacteristics", "gsm_map.pdp_ChargingCharacteristics",
+ FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00,
+ "gsm_map.ChargingCharacteristics", HFILL }},
+ { &hf_gsm_map_ext2_QoS_Subscribed,
+ { "ext2-QoS-Subscribed", "gsm_map.ext2_QoS_Subscribed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext2_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_completeDataListIncluded,
+ { "completeDataListIncluded", "gsm_map.completeDataListIncluded",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gprsDataList,
+ { "gprsDataList", "gsm_map.gprsDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.GPRSDataList", HFILL }},
+ { &hf_gsm_map_gprs_CSI,
+ { "gprs-CSI", "gsm_map.gprs_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GPRS_CSI", HFILL }},
+ { &hf_gsm_map_mo_sms_CSI,
+ { "mo-sms-CSI", "gsm_map.mo_sms_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SMS_CSI", HFILL }},
+ { &hf_gsm_map_mt_sms_CSI,
+ { "mt-sms-CSI", "gsm_map.mt_sms_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SMS_CSI", HFILL }},
+ { &hf_gsm_map_mt_smsCAMELTDP_CriteriaList,
+ { "mt-smsCAMELTDP-CriteriaList", "gsm_map.mt_smsCAMELTDP_CriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MT_smsCAMELTDP_CriteriaList", HFILL }},
+ { &hf_gsm_map_mg_csi,
+ { "mg-csi", "gsm_map.mg_csi",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.MG_CSI", HFILL }},
+ { &hf_gsm_map_gprs_CamelTDPDataList,
+ { "gprs-CamelTDPDataList", "gsm_map.gprs_CamelTDPDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.GPRS_CamelTDPDataList", HFILL }},
+ { &hf_gsm_map_csi_Active,
+ { "csi-Active", "gsm_map.csi_Active",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_GPRS_CamelTDPDataList_item,
+ { "Item", "gsm_map.GPRS_CamelTDPDataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GPRS_CamelTDPData", HFILL }},
+ { &hf_gsm_map_gprs_TriggerDetectionPoint,
+ { "gprs-TriggerDetectionPoint", "gsm_map.gprs_TriggerDetectionPoint",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_GPRS_TriggerDetectionPoint_vals), 0,
+ "gsm_map.GPRS_TriggerDetectionPoint", HFILL }},
+ { &hf_gsm_map_defaultSessionHandling,
+ { "defaultSessionHandling", "gsm_map.defaultSessionHandling",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultGPRS_Handling_vals), 0,
+ "gsm_map.DefaultGPRS_Handling", HFILL }},
+ { &hf_gsm_map_LSADataList_item,
+ { "Item", "gsm_map.LSADataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LSAData", HFILL }},
+ { &hf_gsm_map_lsaIdentity,
+ { "lsaIdentity", "gsm_map.lsaIdentity",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LSAIdentity", HFILL }},
+ { &hf_gsm_map_lsaAttributes,
+ { "lsaAttributes", "gsm_map.lsaAttributes",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LSAAttributes", HFILL }},
+ { &hf_gsm_map_lsaActiveModeIndicator,
+ { "lsaActiveModeIndicator", "gsm_map.lsaActiveModeIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_lsaOnlyAccessIndicator,
+ { "lsaOnlyAccessIndicator", "gsm_map.lsaOnlyAccessIndicator",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LSAOnlyAccessIndicator_vals), 0,
+ "gsm_map.LSAOnlyAccessIndicator", HFILL }},
+ { &hf_gsm_map_lsaDataList,
+ { "lsaDataList", "gsm_map.lsaDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.LSADataList", HFILL }},
+ { &hf_gsm_map_bearerServiceList,
+ { "bearerServiceList", "gsm_map.bearerServiceList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.BearerServiceList", HFILL }},
+ { &hf_gsm_map_ss_List,
+ { "ss-List", "gsm_map.ss_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SS_List", HFILL }},
+ { &hf_gsm_map_odb_GeneralData,
+ { "odb-GeneralData", "gsm_map.odb_GeneralData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ODB_GeneralData", HFILL }},
+ { &hf_gsm_map_regionalSubscriptionResponse,
+ { "regionalSubscriptionResponse", "gsm_map.regionalSubscriptionResponse",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RegionalSubscriptionResponse_vals), 0,
+ "gsm_map.RegionalSubscriptionResponse", HFILL }},
+ { &hf_gsm_map_basicServiceList,
+ { "basicServiceList", "gsm_map.basicServiceList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.BasicServiceList", HFILL }},
+ { &hf_gsm_map_regionalSubscriptionIdentifier,
+ { "regionalSubscriptionIdentifier", "gsm_map.regionalSubscriptionIdentifier",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ZoneCode", HFILL }},
+ { &hf_gsm_map_vbsGroupIndication,
+ { "vbsGroupIndication", "gsm_map.vbsGroupIndication",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_vgcsGroupIndication,
+ { "vgcsGroupIndication", "gsm_map.vgcsGroupIndication",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_camelSubscriptionInfoWithdraw,
+ { "camelSubscriptionInfoWithdraw", "gsm_map.camelSubscriptionInfoWithdraw",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gprsSubscriptionDataWithdraw,
+ { "gprsSubscriptionDataWithdraw", "gsm_map.gprsSubscriptionDataWithdraw",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_GPRSSubscriptionDataWithdraw_vals), 0,
+ "gsm_map.GPRSSubscriptionDataWithdraw", HFILL }},
+ { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature,
+ { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsuppportedFeature",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_lsaInformationWithdraw,
+ { "lsaInformationWithdraw", "gsm_map.lsaInformationWithdraw",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LSAInformationWithdraw_vals), 0,
+ "gsm_map.LSAInformationWithdraw", HFILL }},
+ { &hf_gsm_map_gmlc_ListWithdraw,
+ { "gmlc-ListWithdraw", "gsm_map.gmlc_ListWithdraw",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_istInformationWithdraw,
+ { "istInformationWithdraw", "gsm_map.istInformationWithdraw",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_specificCSI_Withdraw,
+ { "specificCSI-Withdraw", "gsm_map.specificCSI_Withdraw",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SpecificCSI_Withdraw", HFILL }},
+ { &hf_gsm_map_chargingCharacteristicsWithdraw,
+ { "chargingCharacteristicsWithdraw", "gsm_map.chargingCharacteristicsWithdraw",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_allGPRSData,
+ { "allGPRSData", "gsm_map.allGPRSData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_contextIdList,
+ { "contextIdList", "gsm_map.contextIdList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ContextIdList", HFILL }},
+ { &hf_gsm_map_ContextIdList_item,
+ { "Item", "gsm_map.ContextIdList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ContextId", HFILL }},
+ { &hf_gsm_map_allLSAData,
+ { "allLSAData", "gsm_map.allLSAData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_lsaIdentityList,
+ { "lsaIdentityList", "gsm_map.lsaIdentityList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.LSAIdentityList", HFILL }},
+ { &hf_gsm_map_LSAIdentityList_item,
+ { "Item", "gsm_map.LSAIdentityList_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LSAIdentity", HFILL }},
+ { &hf_gsm_map_BasicServiceList_item,
+ { "Item", "gsm_map.BasicServiceList_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_o_CSI,
+ { "o-CSI", "gsm_map.o_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.O_CSI", HFILL }},
+ { &hf_gsm_map_ss_CSI,
+ { "ss-CSI", "gsm_map.ss_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SS_CSI", HFILL }},
+ { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList,
+ { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.O_BcsmCamelTDPCriteriaList", HFILL }},
+ { &hf_gsm_map_tif_CSI,
+ { "tif-CSI", "gsm_map.tif_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_m_CSI,
+ { "m-CSI", "gsm_map.m_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.M_CSI", HFILL }},
+ { &hf_gsm_map_vt_CSI,
+ { "vt-CSI", "gsm_map.vt_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_CSI", HFILL }},
+ { &hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList,
+ { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.t_BCSM_CAMEL_TDP_CriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
+ { &hf_gsm_map_d_CSI,
+ { "d-CSI", "gsm_map.d_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.D_CSI", HFILL }},
+ { &hf_gsm_map_MT_smsCAMELTDP_CriteriaList_item,
+ { "Item", "gsm_map.MT_smsCAMELTDP_CriteriaList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.MT_smsCAMELTDP_Criteria", HFILL }},
+ { &hf_gsm_map_sms_TriggerDetectionPoint,
+ { "sms-TriggerDetectionPoint", "gsm_map.sms_TriggerDetectionPoint",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SMS_TriggerDetectionPoint_vals), 0,
+ "gsm_map.SMS_TriggerDetectionPoint", HFILL }},
+ { &hf_gsm_map_tpdu_TypeCriterion,
+ { "tpdu-TypeCriterion", "gsm_map.tpdu_TypeCriterion",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.TPDU_TypeCriterion", HFILL }},
+ { &hf_gsm_map_TPDU_TypeCriterion_item,
+ { "Item", "gsm_map.TPDU_TypeCriterion_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_MT_SMS_TPDU_Type_vals), 0,
+ "gsm_map.MT_SMS_TPDU_Type", HFILL }},
+ { &hf_gsm_map_dp_AnalysedInfoCriteriaList,
+ { "dp-AnalysedInfoCriteriaList", "gsm_map.dp_AnalysedInfoCriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.DP_AnalysedInfoCriteriaList", HFILL }},
+ { &hf_gsm_map_DP_AnalysedInfoCriteriaList_item,
+ { "Item", "gsm_map.DP_AnalysedInfoCriteriaList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.DP_AnalysedInfoCriterium", HFILL }},
+ { &hf_gsm_map_dialledNumber,
+ { "dialledNumber", "gsm_map.dialledNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_ss_CamelData,
+ { "ss-CamelData", "gsm_map.ss_CamelData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SS_CamelData", HFILL }},
+ { &hf_gsm_map_ss_EventList,
+ { "ss-EventList", "gsm_map.ss_EventList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SS_EventList", HFILL }},
+ { &hf_gsm_map_mobilityTriggers,
+ { "mobilityTriggers", "gsm_map.mobilityTriggers",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MobilityTriggers", HFILL }},
+ { &hf_gsm_map_BearerServiceList_item,
+ { "Item", "gsm_map.BearerServiceList_item",
+ FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
+ "gsm_map.Ext_BearerServiceCode", HFILL }},
+ { &hf_gsm_map_TeleserviceList_item,
+ { "Item", "gsm_map.TeleserviceList_item",
+ FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
+ "gsm_map.Ext_TeleserviceCode", HFILL }},
+ { &hf_gsm_map_Ext_SS_InfoList_item,
+ { "Item", "gsm_map.Ext_SS_InfoList_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_SS_Info_vals), 0,
+ "gsm_map.Ext_SS_Info", HFILL }},
+ { &hf_gsm_map_ext_forwardingInfo,
+ { "forwardingInfo", "gsm_map.forwardingInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_ForwInfo", HFILL }},
+ { &hf_gsm_map_ext_callBarringInfo,
+ { "callBarringInfo", "gsm_map.callBarringInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_CallBarInfo", HFILL }},
+ { &hf_gsm_map_cug_Info,
+ { "cug-Info", "gsm_map.cug_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CUG_Info", HFILL }},
+ { &hf_gsm_map_ext_ss_Data,
+ { "ss-Data", "gsm_map.ss_Data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_SS_Data", HFILL }},
+ { &hf_gsm_map_emlpp_Info,
+ { "emlpp-Info", "gsm_map.emlpp_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.EMLPP_Info", HFILL }},
+ { &hf_gsm_map_ss_Code,
+ { "ss-Code", "gsm_map.ss_Code",
+ FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
+ "gsm_map.SS_Code", HFILL }},
+ { &hf_gsm_map_ext_forwardingFeatureList,
+ { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.Ext_ForwFeatureList", HFILL }},
+ { &hf_gsm_map_Ext_ForwFeatureList_item,
+ { "Item", "gsm_map.Ext_ForwFeatureList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_ForwFeature", HFILL }},
+ { &hf_gsm_map_ext_basicService,
+ { "basicService", "gsm_map.basicService",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_ext_ss_Status,
+ { "ss-Status", "gsm_map.ss_Status",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext_SS_Status", HFILL }},
+ { &hf_gsm_map_forwardedToNumber,
+ { "forwardedToNumber", "gsm_map.forwardedToNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_forwardedToSubaddress,
+ { "forwardedToSubaddress", "gsm_map.forwardedToSubaddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_SubaddressString", HFILL }},
+ { &hf_gsm_map_ext_forwardingOptions,
+ { "forwardingOptions", "gsm_map.forwardingOptions",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.T_ext_forwardingOptions", HFILL }},
+ { &hf_gsm_map_ext_noReplyConditionTime,
+ { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.Ext_NoRepCondTime", HFILL }},
+ { &hf_gsm_map_longForwardedToNumber,
+ { "longForwardedToNumber", "gsm_map.longForwardedToNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.FTN_AddressString", HFILL }},
+ { &hf_gsm_map_ext_callBarringFeatureList,
+ { "callBarringFeatureList", "gsm_map.callBarringFeatureList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.Ext_CallBarFeatureList", HFILL }},
+ { &hf_gsm_map_Ext_CallBarFeatureList_item,
+ { "Item", "gsm_map.Ext_CallBarFeatureList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_CallBarringFeature", HFILL }},
+ { &hf_gsm_map_ZoneCodeList_item,
+ { "Item", "gsm_map.ZoneCodeList_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ZoneCode", HFILL }},
+ { &hf_gsm_map_maximumentitledPriority,
+ { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.EMLPP_Priority", HFILL }},
+ { &hf_gsm_map_defaultPriority,
+ { "defaultPriority", "gsm_map.defaultPriority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.EMLPP_Priority", HFILL }},
+ { &hf_gsm_map_cug_SubscriptionList,
+ { "cug-SubscriptionList", "gsm_map.cug_SubscriptionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CUG_SubscriptionList", HFILL }},
+ { &hf_gsm_map_cug_FeatureList,
+ { "cug-FeatureList", "gsm_map.cug_FeatureList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CUG_FeatureList", HFILL }},
+ { &hf_gsm_map_CUG_SubscriptionList_item,
+ { "Item", "gsm_map.CUG_SubscriptionList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CUG_Subscription", HFILL }},
+ { &hf_gsm_map_cug_Index,
+ { "cug-Index", "gsm_map.cug_Index",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CUG_Index", HFILL }},
+ { &hf_gsm_map_cug_Interlock,
+ { "cug-Interlock", "gsm_map.cug_Interlock",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CUG_Interlock", HFILL }},
+ { &hf_gsm_map_intraCUG_Options,
+ { "intraCUG-Options", "gsm_map.intraCUG_Options",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_IntraCUG_Options_vals), 0,
+ "gsm_map.IntraCUG_Options", HFILL }},
+ { &hf_gsm_map_basicServiceGroupList,
+ { "basicServiceGroupList", "gsm_map.basicServiceGroupList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.Ext_BasicServiceGroupList", HFILL }},
+ { &hf_gsm_map_CUG_FeatureList_item,
+ { "Item", "gsm_map.CUG_FeatureList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CUG_Feature", HFILL }},
+ { &hf_gsm_map_Ext_BasicServiceGroupList_item,
+ { "Item", "gsm_map.Ext_BasicServiceGroupList_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_preferentialCUG_Indicator,
+ { "preferentialCUG-Indicator", "gsm_map.preferentialCUG_Indicator",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CUG_Index", HFILL }},
+ { &hf_gsm_map_interCUG_Restrictions,
+ { "interCUG-Restrictions", "gsm_map.interCUG_Restrictions",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.InterCUG_Restrictions", HFILL }},
+ { &hf_gsm_map_ss_SubscriptionOption,
+ { "ss-SubscriptionOption", "gsm_map.ss_SubscriptionOption",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SS_SubscriptionOption_vals), 0,
+ "gsm_map.SS_SubscriptionOption", HFILL }},
+ { &hf_gsm_map_LCS_PrivacyExceptionList_item,
+ { "Item", "gsm_map.LCS_PrivacyExceptionList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LCS_PrivacyClass", HFILL }},
+ { &hf_gsm_map_notificationToMSUser,
+ { "notificationToMSUser", "gsm_map.notificationToMSUser",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_NotificationToMSUser_vals), 0,
+ "gsm_map.NotificationToMSUser", HFILL }},
+ { &hf_gsm_map_externalClientList,
+ { "externalClientList", "gsm_map.externalClientList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ExternalClientList", HFILL }},
+ { &hf_gsm_map_plmnClientList,
+ { "plmnClientList", "gsm_map.plmnClientList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.PLMNClientList", HFILL }},
+ { &hf_gsm_map_ext_externalClientList,
+ { "ext-externalClientList", "gsm_map.ext_externalClientList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.Ext_ExternalClientList", HFILL }},
+ { &hf_gsm_map_serviceTypeList,
+ { "serviceTypeList", "gsm_map.serviceTypeList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ServiceTypeList", HFILL }},
+ { &hf_gsm_map_ExternalClientList_item,
+ { "Item", "gsm_map.ExternalClientList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalClient", HFILL }},
+ { &hf_gsm_map_PLMNClientList_item,
+ { "Item", "gsm_map.PLMNClientList_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
+ "gsm_map.LCSClientInternalID", HFILL }},
+ { &hf_gsm_map_Ext_ExternalClientList_item,
+ { "Item", "gsm_map.Ext_ExternalClientList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalClient", HFILL }},
+ { &hf_gsm_map_clientIdentity,
+ { "clientIdentity", "gsm_map.clientIdentity",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LCSClientExternalID", HFILL }},
+ { &hf_gsm_map_gmlc_Restriction,
+ { "gmlc-Restriction", "gsm_map.gmlc_Restriction",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_GMLC_Restriction_vals), 0,
+ "gsm_map.GMLC_Restriction", HFILL }},
+ { &hf_gsm_map_ServiceTypeList_item,
+ { "Item", "gsm_map.ServiceTypeList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ServiceType", HFILL }},
+ { &hf_gsm_map_serviceTypeIdentity,
+ { "serviceTypeIdentity", "gsm_map.serviceTypeIdentity",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.LCSServiceTypeID", HFILL }},
+ { &hf_gsm_map_MOLR_List_item,
+ { "Item", "gsm_map.MOLR_List_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.MOLR_Class", HFILL }},
+ { &hf_gsm_map_CallBarringFeatureList_item,
+ { "Item", "gsm_map.CallBarringFeatureList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CallBarringFeature", HFILL }},
+ { &hf_gsm_map_basicService,
+ { "basicService", "gsm_map.basicService",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
+ "gsm_map.BasicServiceCode", HFILL }},
+ { &hf_gsm_map_ss_Status,
+ { "ss-Status", "gsm_map.ss_Status",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SS_Status", HFILL }},
+ { &hf_gsm_map_ForwardingFeatureList_item,
+ { "Item", "gsm_map.ForwardingFeatureList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ForwardingFeature", HFILL }},
+ { &hf_gsm_map_forwardingOptions,
+ { "forwardingOptions", "gsm_map.forwardingOptions",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ForwardingOptions", HFILL }},
+ { &hf_gsm_map_noReplyConditionTime,
+ { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.NoReplyConditionTime", HFILL }},
+ { &hf_gsm_map_matchType,
+ { "matchType", "gsm_map.matchType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_MatchType_vals), 0,
+ "gsm_map.MatchType", HFILL }},
+ { &hf_gsm_map_destinationNumberList,
+ { "destinationNumberList", "gsm_map.destinationNumberList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.DestinationNumberList", HFILL }},
+ { &hf_gsm_map_destinationNumberLengthList,
+ { "destinationNumberLengthList", "gsm_map.destinationNumberLengthList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.DestinationNumberLengthList", HFILL }},
+ { &hf_gsm_map_DestinationNumberList_item,
+ { "Item", "gsm_map.DestinationNumberList_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_DestinationNumberLengthList_item,
+ { "Item", "gsm_map.DestinationNumberLengthList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.INTEGER_1_15", HFILL }},
+ { &hf_gsm_map_forwardingFeatureList,
+ { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ForwardingFeatureList", HFILL }},
+ { &hf_gsm_map_callBarringFeatureList,
+ { "callBarringFeatureList", "gsm_map.callBarringFeatureList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CallBarringFeatureList", HFILL }},
+ { &hf_gsm_map_nbrSB,
+ { "nbrSB", "gsm_map.nbrSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MaxMC_Bearers", HFILL }},
+ { &hf_gsm_map_nbrUser,
+ { "nbrUser", "gsm_map.nbrUser",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MC_Bearers", HFILL }},
+ { &hf_gsm_map_hlr_List,
+ { "hlr-List", "gsm_map.hlr_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.HLR_List", HFILL }},
+ { &hf_gsm_map_msNotReachable,
+ { "msNotReachable", "gsm_map.msNotReachable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_VBSDataList_item,
+ { "Item", "gsm_map.VBSDataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.VoiceBroadcastData", HFILL }},
+ { &hf_gsm_map_VGCSDataList_item,
+ { "Item", "gsm_map.VGCSDataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.VoiceGroupCallData", HFILL }},
+ { &hf_gsm_map_groupId,
+ { "groupId", "gsm_map.groupId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GroupId", HFILL }},
+ { &hf_gsm_map_groupid,
+ { "groupid", "gsm_map.groupid",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GroupId", HFILL }},
+ { &hf_gsm_map_broadcastInitEntitlement,
+ { "broadcastInitEntitlement", "gsm_map.broadcastInitEntitlement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_additionalSubscriptions,
+ { "additionalSubscriptions", "gsm_map.additionalSubscriptions",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AdditionalSubscriptions", HFILL }},
+ { &hf_gsm_map_additionalInfo,
+ { "additionalInfo", "gsm_map.additionalInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AdditionalInfo", HFILL }},
+ { &hf_gsm_map_traceReference,
+ { "traceReference", "gsm_map.traceReference",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TraceReference", HFILL }},
+ { &hf_gsm_map_traceType,
+ { "traceType", "gsm_map.traceType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.TraceType", HFILL }},
+ { &hf_gsm_map_omc_Id,
+ { "omc-Id", "gsm_map.omc_Id",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AddressString", HFILL }},
+ { &hf_gsm_map_traceReference2,
+ { "traceReference2", "gsm_map.traceReference2",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TraceReference2", HFILL }},
+ { &hf_gsm_map_traceDepthList,
+ { "traceDepthList", "gsm_map.traceDepthList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.TraceDepthList", HFILL }},
+ { &hf_gsm_map_traceNE_TypeList,
+ { "traceNE-TypeList", "gsm_map.traceNE_TypeList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TraceNE_TypeList", HFILL }},
+ { &hf_gsm_map_traceInterfaceList,
+ { "traceInterfaceList", "gsm_map.traceInterfaceList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.TraceInterfaceList", HFILL }},
+ { &hf_gsm_map_traceEventList,
+ { "traceEventList", "gsm_map.traceEventList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.TraceEventList", HFILL }},
+ { &hf_gsm_map_msc_s_TraceDepth,
+ { "msc-s-TraceDepth", "gsm_map.msc_s_TraceDepth",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0,
+ "gsm_map.TraceDepth", HFILL }},
+ { &hf_gsm_map_mgw_TraceDepth,
+ { "mgw-TraceDepth", "gsm_map.mgw_TraceDepth",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0,
+ "gsm_map.TraceDepth", HFILL }},
+ { &hf_gsm_map_sgsn_TraceDepth,
+ { "sgsn-TraceDepth", "gsm_map.sgsn_TraceDepth",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0,
+ "gsm_map.TraceDepth", HFILL }},
+ { &hf_gsm_map_ggsn_TraceDepth,
+ { "ggsn-TraceDepth", "gsm_map.ggsn_TraceDepth",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0,
+ "gsm_map.TraceDepth", HFILL }},
+ { &hf_gsm_map_rnc_TraceDepth,
+ { "rnc-TraceDepth", "gsm_map.rnc_TraceDepth",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0,
+ "gsm_map.TraceDepth", HFILL }},
+ { &hf_gsm_map_bmsc_TraceDepth,
+ { "bmsc-TraceDepth", "gsm_map.bmsc_TraceDepth",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0,
+ "gsm_map.TraceDepth", HFILL }},
+ { &hf_gsm_map_msc_s_IList,
+ { "msc-s-IList", "gsm_map.msc_s_IList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MSC_S_InterfaceList", HFILL }},
+ { &hf_gsm_map_mgw_IList,
+ { "mgw-IList", "gsm_map.mgw_IList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MGW_InterfaceList", HFILL }},
+ { &hf_gsm_map_sgsn_IList,
+ { "sgsn-IList", "gsm_map.sgsn_IList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SGSN_InterfaceList", HFILL }},
+ { &hf_gsm_map_ggsn_IList,
+ { "ggsn-IList", "gsm_map.ggsn_IList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GGSN_InterfaceList", HFILL }},
+ { &hf_gsm_map_rnc_IList,
+ { "rnc-IList", "gsm_map.rnc_IList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RNC_InterfaceList", HFILL }},
+ { &hf_gsm_map_bmsc_IList,
+ { "bmsc-IList", "gsm_map.bmsc_IList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.BMSC_InterfaceList", HFILL }},
+ { &hf_gsm_map_msc_s_EList,
+ { "msc-s-EList", "gsm_map.msc_s_EList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MSC_S_EventList", HFILL }},
+ { &hf_gsm_map_mgw_EList,
+ { "mgw-EList", "gsm_map.mgw_EList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MGW_EventList", HFILL }},
+ { &hf_gsm_map_sgsn_EList,
+ { "sgsn-EList", "gsm_map.sgsn_EList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SGSN_EventList", HFILL }},
+ { &hf_gsm_map_ggsn_EList,
+ { "ggsn-EList", "gsm_map.ggsn_EList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GGSN_EventList", HFILL }},
+ { &hf_gsm_map_bmsc_EList,
+ { "bmsc-EList", "gsm_map.bmsc_EList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.BMSC_EventList", HFILL }},
+ { &hf_gsm_map_traceRecordingSessionReference,
+ { "traceRecordingSessionReference", "gsm_map.traceRecordingSessionReference",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TraceRecordingSessionReference", HFILL }},
+ { &hf_gsm_map_rnc_InterfaceList,
+ { "rnc-InterfaceList", "gsm_map.rnc_InterfaceList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RNC_InterfaceList", HFILL }},
+ { &hf_gsm_map_msc_s_InterfaceList,
+ { "msc-s-InterfaceList", "gsm_map.msc_s_InterfaceList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MSC_S_InterfaceList", HFILL }},
+ { &hf_gsm_map_msc_s_EventList,
+ { "msc-s-EventList", "gsm_map.msc_s_EventList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MSC_S_EventList", HFILL }},
+ { &hf_gsm_map_mgw_InterfaceList,
+ { "mgw-InterfaceList", "gsm_map.mgw_InterfaceList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MGW_InterfaceList", HFILL }},
+ { &hf_gsm_map_mgw_EventList,
+ { "mgw-EventList", "gsm_map.mgw_EventList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MGW_EventList", HFILL }},
+ { &hf_gsm_map_traceSupportIndicator,
+ { "traceSupportIndicator", "gsm_map.traceSupportIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_cug_CheckInfo,
+ { "cug-CheckInfo", "gsm_map.cug_CheckInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CUG_CheckInfo", HFILL }},
+ { &hf_gsm_map_numberOfForwarding,
+ { "numberOfForwarding", "gsm_map.numberOfForwarding",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.NumberOfForwarding", HFILL }},
+ { &hf_gsm_map_interrogationType,
+ { "interrogationType", "gsm_map.interrogationType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_InterrogationType_vals), 0,
+ "gsm_map.InterrogationType", HFILL }},
+ { &hf_gsm_map_or_Interrogation,
+ { "or-Interrogation", "gsm_map.or_Interrogation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_or_Capability,
+ { "or-Capability", "gsm_map.or_Capability",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.OR_Phase", HFILL }},
+ { &hf_gsm_map_gmsc_OrGsmSCF_Address,
+ { "gmsc-OrGsmSCF-Address", "gsm_map.gmsc_OrGsmSCF_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_callReferenceNumber,
+ { "callReferenceNumber", "gsm_map.callReferenceNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CallReferenceNumber", HFILL }},
+ { &hf_gsm_map_forwardingReason,
+ { "forwardingReason", "gsm_map.forwardingReason",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ForwardingReason_vals), 0,
+ "gsm_map.ForwardingReason", HFILL }},
+ { &hf_gsm_map_ext_basicServiceGroup,
+ { "basicServiceGroup", "gsm_map.basicServiceGroup",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_networkSignalInfo,
+ { "networkSignalInfo", "gsm_map.networkSignalInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_camelInfo,
+ { "camelInfo", "gsm_map.camelInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CamelInfo", HFILL }},
+ { &hf_gsm_map_suppressionOfAnnouncement,
+ { "suppressionOfAnnouncement", "gsm_map.suppressionOfAnnouncement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SuppressionOfAnnouncement", HFILL }},
+ { &hf_gsm_map_alertingPattern,
+ { "alertingPattern", "gsm_map.alertingPattern",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AlertingPattern", HFILL }},
+ { &hf_gsm_map_ccbs_Call,
+ { "ccbs-Call", "gsm_map.ccbs_Call",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_supportedCCBS_Phase,
+ { "supportedCCBS-Phase", "gsm_map.supportedCCBS_Phase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SupportedCCBS_Phase", HFILL }},
+ { &hf_gsm_map_additionalSignalInfo,
+ { "additionalSignalInfo", "gsm_map.additionalSignalInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_pre_pagingSupported,
+ { "pre-pagingSupported", "gsm_map.pre_pagingSupported",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_callDiversionTreatmentIndicator,
+ { "callDiversionTreatmentIndicator", "gsm_map.callDiversionTreatmentIndicator",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CallDiversionTreatmentIndicator", HFILL }},
+ { &hf_gsm_map_suppress_VT_CSI,
+ { "suppress-VT-CSI", "gsm_map.suppress_VT_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_suppressIncomingCallBarring,
+ { "suppressIncomingCallBarring", "gsm_map.suppressIncomingCallBarring",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gsmSCF_InitiatedCall,
+ { "gsmSCF-InitiatedCall", "gsm_map.gsmSCF_InitiatedCall",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_basicServiceGroup2,
+ { "basicServiceGroup2", "gsm_map.basicServiceGroup2",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_networkSignalInfo2,
+ { "networkSignalInfo2", "gsm_map.networkSignalInfo2",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_extendedRoutingInfo,
+ { "extendedRoutingInfo", "gsm_map.extendedRoutingInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ExtendedRoutingInfo_vals), 0,
+ "gsm_map.ExtendedRoutingInfo", HFILL }},
+ { &hf_gsm_map_cugSubscriptionFlag,
+ { "cugSubscriptionFlag", "gsm_map.cugSubscriptionFlag",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_subscriberInfo,
+ { "subscriberInfo", "gsm_map.subscriberInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SubscriberInfo", HFILL }},
+ { &hf_gsm_map_forwardingInterrogationRequired,
+ { "forwardingInterrogationRequired", "gsm_map.forwardingInterrogationRequired",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_vmsc_Address,
+ { "vmsc-Address", "gsm_map.vmsc_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_ccbs_Indicators,
+ { "ccbs-Indicators", "gsm_map.ccbs_Indicators",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CCBS_Indicators", HFILL }},
+ { &hf_gsm_map_numberPortabilityStatus,
+ { "numberPortabilityStatus", "gsm_map.numberPortabilityStatus",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_NumberPortabilityStatus_vals), 0,
+ "gsm_map.NumberPortabilityStatus", HFILL }},
+ { &hf_gsm_map_supportedCamelPhasesInVMSC,
+ { "supportedCamelPhasesInVMSC", "gsm_map.supportedCamelPhasesInVMSC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedCamelPhases", HFILL }},
+ { &hf_gsm_map_offeredCamel4CSIsInVMSC,
+ { "offeredCamel4CSIsInVMSC", "gsm_map.offeredCamel4CSIsInVMSC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.OfferedCamel4CSIs", HFILL }},
+ { &hf_gsm_map_routingInfo2,
+ { "routingInfo2", "gsm_map.routingInfo2",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RoutingInfo_vals), 0,
+ "gsm_map.RoutingInfo", HFILL }},
+ { &hf_gsm_map_ss_List2,
+ { "ss-List2", "gsm_map.ss_List2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SS_List", HFILL }},
+ { &hf_gsm_map_basicService2,
+ { "basicService2", "gsm_map.basicService2",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_allowedServices,
+ { "allowedServices", "gsm_map.allowedServices",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AllowedServices", HFILL }},
+ { &hf_gsm_map_unavailabilityCause,
+ { "unavailabilityCause", "gsm_map.unavailabilityCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_UnavailabilityCause_vals), 0,
+ "gsm_map.UnavailabilityCause", HFILL }},
+ { &hf_gsm_map_releaseResourcesSupported,
+ { "releaseResourcesSupported", "gsm_map.releaseResourcesSupported",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gsm_BearerCapability,
+ { "gsm-BearerCapability", "gsm_map.gsm_BearerCapability",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_ext_ProtocolId,
+ { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0,
+ "gsm_map.Ext_ProtocolId", HFILL }},
+ { &hf_gsm_map_accessNetworkProtocolId,
+ { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0,
+ "gsm_map.AccessNetworkProtocolId", HFILL }},
+ { &hf_gsm_map_longsignalInfo,
+ { "signalInfo", "gsm_map.signalInfo",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LongSignalInfo", HFILL }},
+ { &hf_gsm_map_suppress_T_CSI,
+ { "suppress-T-CSI", "gsm_map.suppress_T_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_HLR_List_item,
+ { "Item", "gsm_map.HLR_List_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.HLR_Id", HFILL }},
+ { &hf_gsm_map_SS_List_item,
+ { "Item", "gsm_map.SS_List_item",
+ FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
+ "gsm_map.SS_Code", HFILL }},
+ { &hf_gsm_map_naea_PreferredCIC,
+ { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.NAEA_CIC", HFILL }},
+ { &hf_gsm_map_externalAddress,
+ { "externalAddress", "gsm_map.externalAddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength,
+ { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
+ { &hf_gsm_map_laiFixedLength,
+ { "laiFixedLength", "gsm_map.laiFixedLength",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LAIFixedLength", HFILL }},
+ { &hf_gsm_map_ccbs_Possible,
+ { "ccbs-Possible", "gsm_map.ccbs_Possible",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_keepCCBS_CallIndicator,
+ { "keepCCBS-CallIndicator", "gsm_map.keepCCBS_CallIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_roamingNumber,
+ { "roamingNumber", "gsm_map.roamingNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_forwardingData,
+ { "forwardingData", "gsm_map.forwardingData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ForwardingData", HFILL }},
+ { &hf_gsm_map_routingInfo,
+ { "routingInfo", "gsm_map.routingInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RoutingInfo_vals), 0,
+ "gsm_map.RoutingInfo", HFILL }},
+ { &hf_gsm_map_camelRoutingInfo,
+ { "camelRoutingInfo", "gsm_map.camelRoutingInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CamelRoutingInfo", HFILL }},
+ { &hf_gsm_map_gmscCamelSubscriptionInfo,
+ { "gmscCamelSubscriptionInfo", "gsm_map.gmscCamelSubscriptionInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GmscCamelSubscriptionInfo", HFILL }},
+ { &hf_gsm_map_t_CSI,
+ { "t-CSI", "gsm_map.t_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_CSI", HFILL }},
+ { &hf_gsm_map_d_csi,
+ { "d-csi", "gsm_map.d_csi",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.D_CSI", HFILL }},
+ { &hf_gsm_map_ageOfLocationInformation,
+ { "ageOfLocationInformation", "gsm_map.ageOfLocationInformation",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.AgeOfLocationInformation", HFILL }},
+ { &hf_gsm_map_geographicalInformation,
+ { "geographicalInformation", "gsm_map.geographicalInformation",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GeographicalInformation", HFILL }},
+ { &hf_gsm_map_vlr_number,
+ { "vlr-number", "gsm_map.vlr_number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_locationNumber,
+ { "locationNumber", "gsm_map.locationNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LocationNumber", HFILL }},
+ { &hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI,
+ { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.cellGlobalIdOrServiceAreaIdOrLAI",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
+ "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
+ { &hf_gsm_map_selectedLSA_Id,
+ { "selectedLSA-Id", "gsm_map.selectedLSA_Id",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LSAIdentity", HFILL }},
+ { &hf_gsm_map_geodeticInformation,
+ { "geodeticInformation", "gsm_map.geodeticInformation",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GeodeticInformation", HFILL }},
+ { &hf_gsm_map_currentLocationRetrieved,
+ { "currentLocationRetrieved", "gsm_map.currentLocationRetrieved",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_sai_Present,
+ { "sai-Present", "gsm_map.sai_Present",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_routeingAreaIdentity,
+ { "routeingAreaIdentity", "gsm_map.routeingAreaIdentity",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RAIdentity", HFILL }},
+ { &hf_gsm_map_selectedLSAIdentity,
+ { "selectedLSAIdentity", "gsm_map.selectedLSAIdentity",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.LSAIdentity", HFILL }},
+ { &hf_gsm_map_assumedIdle,
+ { "assumedIdle", "gsm_map.assumedIdle",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_camelBusy,
+ { "camelBusy", "gsm_map.camelBusy",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_netDetNotReachable,
+ { "netDetNotReachable", "gsm_map.netDetNotReachable",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_NotReachableReason_vals), 0,
+ "gsm_map.NotReachableReason", HFILL }},
+ { &hf_gsm_map_notProvidedFromVLR,
+ { "notProvidedFromVLR", "gsm_map.notProvidedFromVLR",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_notProvidedFromSGSN,
+ { "notProvidedFromSGSN", "gsm_map.notProvidedFromSGSN",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ps_Detached,
+ { "ps-Detached", "gsm_map.ps_Detached",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ps_AttachedNotReachableForPaging,
+ { "ps-AttachedNotReachableForPaging", "gsm_map.ps_AttachedNotReachableForPaging",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ps_AttachedReachableForPaging,
+ { "ps-AttachedReachableForPaging", "gsm_map.ps_AttachedReachableForPaging",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ps_PDP_ActiveNotReachableForPaging,
+ { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ps_PDP_ActiveNotReachableForPaging",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.PDP_ContextInfoList", HFILL }},
+ { &hf_gsm_map_ps_PDP_ActiveReachableForPaging,
+ { "ps-PDP-ActiveReachableForPaging", "gsm_map.ps_PDP_ActiveReachableForPaging",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.PDP_ContextInfoList", HFILL }},
+ { &hf_gsm_map_PDP_ContextInfoList_item,
+ { "Item", "gsm_map.PDP_ContextInfoList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.PDP_ContextInfo", HFILL }},
+ { &hf_gsm_map_pdp_ContextIdentifier,
+ { "pdp-ContextIdentifier", "gsm_map.pdp_ContextIdentifier",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ContextId", HFILL }},
+ { &hf_gsm_map_pdp_ContextActive,
+ { "pdp-ContextActive", "gsm_map.pdp_ContextActive",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_apn_Subscribed,
+ { "apn-Subscribed", "gsm_map.apn_Subscribed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.APN", HFILL }},
+ { &hf_gsm_map_apn_InUse,
+ { "apn-InUse", "gsm_map.apn_InUse",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.APN", HFILL }},
+ { &hf_gsm_map_nsapi,
+ { "nsapi", "gsm_map.nsapi",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.NSAPI", HFILL }},
+ { &hf_gsm_map_transactionId,
+ { "transactionId", "gsm_map.transactionId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TransactionId", HFILL }},
+ { &hf_gsm_map_teid_ForGnAndGp,
+ { "teid-ForGnAndGp", "gsm_map.teid_ForGnAndGp",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TEID", HFILL }},
+ { &hf_gsm_map_teid_ForIu,
+ { "teid-ForIu", "gsm_map.teid_ForIu",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.TEID", HFILL }},
+ { &hf_gsm_map_ggsn_Address,
+ { "ggsn-Address", "gsm_map.ggsn_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_ext_qos_Subscribed,
+ { "qos-Subscribed", "gsm_map.qos_Subscribed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_qos_Requested,
+ { "qos-Requested", "gsm_map.qos_Requested",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_qos_Negotiated,
+ { "qos-Negotiated", "gsm_map.qos_Negotiated",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_chargingId,
+ { "chargingId", "gsm_map.chargingId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GPRSChargingID", HFILL }},
+ { &hf_gsm_map_rnc_Address,
+ { "rnc-Address", "gsm_map.rnc_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_qos2_Subscribed,
+ { "qos2-Subscribed", "gsm_map.qos2_Subscribed",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext2_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_qos2_Requested,
+ { "qos2-Requested", "gsm_map.qos2_Requested",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext2_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_qos2_Negotiated,
+ { "qos2-Negotiated", "gsm_map.qos2_Negotiated",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext2_QoS_Subscribed", HFILL }},
+ { &hf_gsm_map_cug_OutgoingAccess,
+ { "cug-OutgoingAccess", "gsm_map.cug_OutgoingAccess",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gmsc_Address,
+ { "gmsc-Address", "gsm_map.gmsc_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_supportedCamelPhasesInInterrogatingNode,
+ { "supportedCamelPhasesInInterrogatingNode", "gsm_map.supportedCamelPhasesInInterrogatingNode",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedCamelPhases", HFILL }},
+ { &hf_gsm_map_orNotSupportedInGMSC,
+ { "orNotSupportedInGMSC", "gsm_map.orNotSupportedInGMSC",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_offeredCamel4CSIsInInterrogatingNode,
+ { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.offeredCamel4CSIsInInterrogatingNode",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.OfferedCamel4CSIs", HFILL }},
+ { &hf_gsm_map_uu_Data,
+ { "uu-Data", "gsm_map.uu_Data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.UU_Data", HFILL }},
+ { &hf_gsm_map_allInformationSent,
+ { "allInformationSent", "gsm_map.allInformationSent",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_o_BcsmCamelTDPCriteriaList,
+ { "o-BcsmCamelTDPCriteriaList", "gsm_map.o_BcsmCamelTDPCriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.O_BcsmCamelTDPCriteriaList", HFILL }},
+ { &hf_gsm_map_uuIndicator,
+ { "uuIndicator", "gsm_map.uuIndicator",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.UUIndicator", HFILL }},
+ { &hf_gsm_map_uui,
+ { "uui", "gsm_map.uui",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.UUI", HFILL }},
+ { &hf_gsm_map_uusCFInteraction,
+ { "uusCFInteraction", "gsm_map.uusCFInteraction",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_isdn_BearerCapability,
+ { "isdn-BearerCapability", "gsm_map.isdn_BearerCapability",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_call_Direction,
+ { "call-Direction", "gsm_map.call_Direction",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CallDirection", HFILL }},
+ { &hf_gsm_map_b_Subscriber_Address,
+ { "b-Subscriber-Address", "gsm_map.b_Subscriber_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_chosenChannel,
+ { "chosenChannel", "gsm_map.chosenChannel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_lowerLayerCompatibility,
+ { "lowerLayerCompatibility", "gsm_map.lowerLayerCompatibility",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_highLayerCompatibility,
+ { "highLayerCompatibility", "gsm_map.highLayerCompatibility",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_sIWFSNumber,
+ { "sIWFSNumber", "gsm_map.sIWFSNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_channelType,
+ { "channelType", "gsm_map.channelType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_ccbs_Monitoring,
+ { "ccbs-Monitoring", "gsm_map.ccbs_Monitoring",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ReportingState_vals), 0,
+ "gsm_map.ReportingState", HFILL }},
+ { &hf_gsm_map_ccbs_SubscriberStatus,
+ { "ccbs-SubscriberStatus", "gsm_map.ccbs_SubscriberStatus",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CCBS_SubscriberStatus_vals), 0,
+ "gsm_map.CCBS_SubscriberStatus", HFILL }},
+ { &hf_gsm_map_eventReportData,
+ { "eventReportData", "gsm_map.eventReportData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.EventReportData", HFILL }},
+ { &hf_gsm_map_callReportdata,
+ { "callReportdata", "gsm_map.callReportdata",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CallReportData", HFILL }},
+ { &hf_gsm_map_monitoringMode,
+ { "monitoringMode", "gsm_map.monitoringMode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_MonitoringMode_vals), 0,
+ "gsm_map.MonitoringMode", HFILL }},
+ { &hf_gsm_map_callOutcome,
+ { "callOutcome", "gsm_map.callOutcome",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CallOutcome_vals), 0,
+ "gsm_map.CallOutcome", HFILL }},
+ { &hf_gsm_map_callTerminationIndicator,
+ { "callTerminationIndicator", "gsm_map.callTerminationIndicator",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CallTerminationIndicator_vals), 0,
+ "gsm_map.CallTerminationIndicator", HFILL }},
+ { &hf_gsm_map_msrn,
+ { "msrn", "gsm_map.msrn",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_callInfo,
+ { "callInfo", "gsm_map.callInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ExternalSignalInfo", HFILL }},
+ { &hf_gsm_map_ccbs_Feature,
+ { "ccbs-Feature", "gsm_map.ccbs_Feature",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CCBS_Feature", HFILL }},
+ { &hf_gsm_map_translatedB_Number,
+ { "translatedB-Number", "gsm_map.translatedB_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_replaceB_Number,
+ { "replaceB-Number", "gsm_map.replaceB_Number",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ruf_Outcome,
+ { "ruf-Outcome", "gsm_map.ruf_Outcome",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ruf_Outcome_vals), 0,
+ "gsm_map.Ruf_Outcome", HFILL }},
+ { &hf_gsm_map_ext_basicServiceGroupList,
+ { "basicServiceGroupList", "gsm_map.basicServiceGroupList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.BasicServiceGroupList", HFILL }},
+ { &hf_gsm_map_cliRestrictionOption,
+ { "cliRestrictionOption", "gsm_map.cliRestrictionOption",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CliRestrictionOption_vals), 0,
+ "gsm_map.CliRestrictionOption", HFILL }},
+ { &hf_gsm_map_overrideCategory,
+ { "overrideCategory", "gsm_map.overrideCategory",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_OverrideCategory_vals), 0,
+ "gsm_map.OverrideCategory", HFILL }},
+ { &hf_gsm_map_forwardedToNumber_addr,
+ { "forwardedToNumber", "gsm_map.forwardedToNumber",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_extensionContainer,
- { "extensionContainer", "gsm_map.extensionContainer",
+ "gsm_map.AddressString", HFILL }},
+ { &hf_gsm_map_forwardingInfo,
+ { "forwardingInfo", "gsm_map.forwardingInfo",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_supportedCamelPhases,
- { "supportedCamelPhases", "gsm_map.supportedCamelPhases",
+ "gsm_map.ForwardingInfo", HFILL }},
+ { &hf_gsm_map_callBarringInfo,
+ { "callBarringInfo", "gsm_map.callBarringInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CallBarringInfo", HFILL }},
+ { &hf_gsm_map_ss_Data,
+ { "ss-Data", "gsm_map.ss_Data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SS_Data", HFILL }},
+ { &hf_gsm_map_genericServiceInfo,
+ { "genericServiceInfo", "gsm_map.genericServiceInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GenericServiceInfo", HFILL }},
+ { &hf_gsm_map_ussd_DataCodingScheme,
+ { "ussd-DataCodingScheme", "gsm_map.ussd_DataCodingScheme",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_solsaSupportIndicator,
- { "solsaSupportIndicator", "gsm_map.solsaSupportIndicator",
+ "gsm_map.USSD_DataCodingScheme", HFILL }},
+ { &hf_gsm_map_ussd_String,
+ { "ussd-String", "gsm_map.ussd_String",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.USSD_String", HFILL }},
+ { &hf_gsm_map_failureCause,
+ { "failureCause", "gsm_map.failureCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_FailureCause_vals), 0,
+ "gsm_map.FailureCause", HFILL }},
+ { &hf_gsm_map_re_attempt,
+ { "re-attempt", "gsm_map.re_attempt",
+ FT_BOOLEAN, 8, NULL, 0,
+ "gsm_map.BOOLEAN", HFILL }},
+ { &hf_gsm_map_accessType,
+ { "accessType", "gsm_map.accessType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AccessType_vals), 0,
+ "gsm_map.AccessType", HFILL }},
+ { &hf_gsm_map_ccbs_Data,
+ { "ccbs-Data", "gsm_map.ccbs_Data",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_imsi,
- { "imsi", "gsm_map.imsi",
+ "gsm_map.CCBS_Data", HFILL }},
+ { &hf_gsm_map_serviceIndicator,
+ { "serviceIndicator", "gsm_map.serviceIndicator",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_msc_Number,
- { "msc-Number", "gsm_map.msc_Number",
+ "gsm_map.ServiceIndicator", HFILL }},
+ { &hf_gsm_map_ccbs_Index,
+ { "ccbs-Index", "gsm_map.ccbs_Index",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CCBS_Index", HFILL }},
+ { &hf_gsm_map_sm_RP_PRI,
+ { "sm-RP-PRI", "gsm_map.sm_RP_PRI",
+ FT_BOOLEAN, 8, NULL, 0,
+ "gsm_map.BOOLEAN", HFILL }},
+ { &hf_gsm_map_serviceCentreAddress,
+ { "serviceCentreAddress", "gsm_map.serviceCentreAddress",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_vlr_Number,
- { "vlr-Number", "gsm_map.vlr_Number",
+ "gsm_map.ServiceCentreAddress", HFILL }},
+ { &hf_gsm_map_gprsSupportIndicator,
+ { "gprsSupportIndicator", "gsm_map.gprsSupportIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_sm_RP_MTI,
+ { "sm-RP-MTI", "gsm_map.sm_RP_MTI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SM_RP_MTI", HFILL }},
+ { &hf_gsm_map_sm_RP_SMEA,
+ { "sm-RP-SMEA", "gsm_map.sm_RP_SMEA",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_lmsi,
- { "lmsi", "gsm_map.lmsi",
+ "gsm_map.SM_RP_SMEA", HFILL }},
+ { &hf_gsm_map_locationInfoWithLMSI,
+ { "locationInfoWithLMSI", "gsm_map.locationInfoWithLMSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LocationInfoWithLMSI", HFILL }},
+ { &hf_gsm_map_networkNode_Number,
+ { "networkNode-Number", "gsm_map.networkNode_Number",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_gprsNodeIndicator,
+ { "gprsNodeIndicator", "gsm_map.gprsNodeIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_additional_Number,
+ { "additional-Number", "gsm_map.additional_Number",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Additional_Number_vals), 0,
+ "gsm_map.Additional_Number", HFILL }},
+ { &hf_gsm_map_sm_RP_DA,
+ { "sm-RP-DA", "gsm_map.sm_RP_DA",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_DA_vals), 0,
+ "gsm_map.Sm_RP_DA", HFILL }},
+ { &hf_gsm_map_sm_RP_OA,
+ { "sm-RP-OA", "gsm_map.sm_RP_OA",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_OA_vals), 0,
+ "gsm_map.Sm_RP_OA", HFILL }},
+ { &hf_gsm_map_sm_RP_UI,
+ { "sm-RP-UI", "gsm_map.sm_RP_UI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Sm_RP_UI", HFILL }},
+ { &hf_gsm_map_serviceCentreAddressOA,
+ { "serviceCentreAddressOA", "gsm_map.serviceCentreAddressOA",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ServiceCentreAddress", HFILL }},
+ { &hf_gsm_map_noSM_RP_OA,
+ { "noSM-RP-OA", "gsm_map.noSM_RP_OA",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_serviceCentreAddressDA,
+ { "serviceCentreAddressDA", "gsm_map.serviceCentreAddressDA",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ServiceCentreAddress", HFILL }},
+ { &hf_gsm_map_noSM_RP_DA,
+ { "noSM-RP-DA", "gsm_map.noSM_RP_DA",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_moreMessagesToSend,
+ { "moreMessagesToSend", "gsm_map.moreMessagesToSend",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_sm_DeliveryOutcome,
+ { "sm-DeliveryOutcome", "gsm_map.sm_DeliveryOutcome",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0,
+ "gsm_map.Sm_DeliveryOutcome", HFILL }},
+ { &hf_gsm_map_absentSubscriberDiagnosticSM,
+ { "absentSubscriberDiagnosticSM", "gsm_map.absentSubscriberDiagnosticSM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.AbsentSubscriberDiagnosticSM", HFILL }},
+ { &hf_gsm_map_deliveryOutcomeIndicator,
+ { "deliveryOutcomeIndicator", "gsm_map.deliveryOutcomeIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_additionalSM_DeliveryOutcome,
+ { "additionalSM-DeliveryOutcome", "gsm_map.additionalSM_DeliveryOutcome",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0,
+ "gsm_map.Sm_DeliveryOutcome", HFILL }},
+ { &hf_gsm_map_additionalAbsentSubscriberDiagnosticSM,
+ { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.additionalAbsentSubscriberDiagnosticSM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.AbsentSubscriberDiagnosticSM", HFILL }},
+ { &hf_gsm_map_storedMSISDN,
+ { "storedMSISDN", "gsm_map.storedMSISDN",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_mw_Status,
+ { "mw-Status", "gsm_map.mw_Status",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MW_Status", HFILL }},
+ { &hf_gsm_map_alertReason,
+ { "alertReason", "gsm_map.alertReason",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AlertReason_vals), 0,
+ "gsm_map.AlertReason", HFILL }},
+ { &hf_gsm_map_alertReasonIndicator,
+ { "alertReasonIndicator", "gsm_map.alertReasonIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_dispatcherList,
+ { "dispatcherList", "gsm_map.dispatcherList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.DispatcherList", HFILL }},
+ { &hf_gsm_map_ongoingCall,
+ { "ongoingCall", "gsm_map.ongoingCall",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_DispatcherList_item,
+ { "Item", "gsm_map.DispatcherList_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_requestedInfo,
+ { "requestedInfo", "gsm_map.requestedInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.RequestedInfo", HFILL }},
+ { &hf_gsm_map_locationInformation,
+ { "locationInformation", "gsm_map.locationInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LocationInformation", HFILL }},
+ { &hf_gsm_map_subscriberState,
+ { "subscriberState", "gsm_map.subscriberState",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberState_vals), 0,
+ "gsm_map.SubscriberState", HFILL }},
+ { &hf_gsm_map_locationInformationGPRS,
+ { "locationInformationGPRS", "gsm_map.locationInformationGPRS",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LocationInformationGPRS", HFILL }},
+ { &hf_gsm_map_ps_SubscriberState,
+ { "ps-SubscriberState", "gsm_map.ps_SubscriberState",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_PS_SubscriberState_vals), 0,
+ "gsm_map.PS_SubscriberState", HFILL }},
+ { &hf_gsm_map_ms_Classmark2,
+ { "ms-Classmark2", "gsm_map.ms_Classmark2",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MS_Classmark2", HFILL }},
+ { &hf_gsm_map_gprs_MS_Class,
+ { "gprs-MS-Class", "gsm_map.gprs_MS_Class",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.GPRSMSClass", HFILL }},
+ { &hf_gsm_map_mnpInfoRes,
+ { "mnpInfoRes", "gsm_map.mnpInfoRes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.MNPInfoRes", HFILL }},
+ { &hf_gsm_map_routeingNumber,
+ { "routeingNumber", "gsm_map.routeingNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RouteingNumber", HFILL }},
+ { &hf_gsm_map_mSNetworkCapability,
+ { "mSNetworkCapability", "gsm_map.mSNetworkCapability",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MSNetworkCapability", HFILL }},
+ { &hf_gsm_map_mSRadioAccessCapability,
+ { "mSRadioAccessCapability", "gsm_map.mSRadioAccessCapability",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MSRadioAccessCapability", HFILL }},
+ { &hf_gsm_map_locationInformation_flg,
+ { "locationInformation", "gsm_map.locationInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_subscriberState_flg,
+ { "subscriberState", "gsm_map.subscriberState",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_currentLocation,
+ { "currentLocation", "gsm_map.currentLocation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_requestedDomain,
+ { "requestedDomain", "gsm_map.requestedDomain",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_DomainType_vals), 0,
+ "gsm_map.DomainType", HFILL }},
+ { &hf_gsm_map_imei_flg,
+ { "imei", "gsm_map.imei",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ms_classmark,
+ { "ms-classmark", "gsm_map.ms_classmark",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_mnpRequestedInfo,
+ { "mnpRequestedInfo", "gsm_map.mnpRequestedInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_subscriberIdentity,
+ { "subscriberIdentity", "gsm_map.subscriberIdentity",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
+ "gsm_map.SubscriberIdentity", HFILL }},
+ { &hf_gsm_map_requestedSubscriptionInfo,
+ { "requestedSubscriptionInfo", "gsm_map.requestedSubscriptionInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.RequestedSubscriptionInfo", HFILL }},
+ { &hf_gsm_map_callForwardingData,
+ { "callForwardingData", "gsm_map.callForwardingData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CallForwardingData", HFILL }},
+ { &hf_gsm_map_callBarringData,
+ { "callBarringData", "gsm_map.callBarringData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CallBarringData", HFILL }},
+ { &hf_gsm_map_odb_Info,
+ { "odb-Info", "gsm_map.odb_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ODB_Info", HFILL }},
+ { &hf_gsm_map_camel_SubscriptionInfo,
+ { "camel-SubscriptionInfo", "gsm_map.camel_SubscriptionInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CAMEL_SubscriptionInfo", HFILL }},
+ { &hf_gsm_map_supportedVLR_CAMEL_Phases,
+ { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedCamelPhases", HFILL }},
+ { &hf_gsm_map_supportedSGSN_CAMEL_Phases,
+ { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedCamelPhases", HFILL }},
+ { &hf_gsm_map_offeredCamel4CSIsInVLR,
+ { "offeredCamel4CSIsInVLR", "gsm_map.offeredCamel4CSIsInVLR",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.OfferedCamel4CSIs", HFILL }},
+ { &hf_gsm_map_offeredCamel4CSIsInSGSN,
+ { "offeredCamel4CSIsInSGSN", "gsm_map.offeredCamel4CSIsInSGSN",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.OfferedCamel4CSIs", HFILL }},
+ { &hf_gsm_map_msisdn_BS_List,
+ { "msisdn-BS-List", "gsm_map.msisdn_BS_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MSISDN_BS_List", HFILL }},
+ { &hf_gsm_map_requestedSS_Info,
+ { "requestedSS-Info", "gsm_map.requestedSS_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SS_ForBS_Code", HFILL }},
+ { &hf_gsm_map_odb,
+ { "odb", "gsm_map.odb",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_requestedCAMEL_SubscriptionInfo,
+ { "requestedCAMEL-SubscriptionInfo", "gsm_map.requestedCAMEL_SubscriptionInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RequestedCAMEL_SubscriptionInfo_vals), 0,
+ "gsm_map.RequestedCAMEL_SubscriptionInfo", HFILL }},
+ { &hf_gsm_map_supportedVLR_CAMEL_Phases_flg,
+ { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_supportedSGSN_CAMEL_Phases_flg,
+ { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo,
+ { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.additionalRequestedCAMEL_SubscriptionInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0,
+ "gsm_map.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }},
+ { &hf_gsm_map_msisdn_BS_List_flag,
+ { "msisdn-BS-List-flag", "gsm_map.msisdn_BS_List_flag",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_MSISDN_BS_List_item,
+ { "Item", "gsm_map.MSISDN_BS_List_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.MSISDN_BS", HFILL }},
+ { &hf_gsm_map_password,
+ { "password", "gsm_map.password",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "gsm_map.Password", HFILL }},
+ { &hf_gsm_map_wrongPasswordAttemptsCounter,
+ { "wrongPasswordAttemptsCounter", "gsm_map.wrongPasswordAttemptsCounter",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.WrongPasswordAttemptsCounter", HFILL }},
+ { &hf_gsm_map_bearerService,
+ { "bearerService", "gsm_map.bearerService",
+ FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
+ "gsm_map.BearerServiceCode", HFILL }},
+ { &hf_gsm_map_teleservice_code,
+ { "teleservice", "gsm_map.teleservice",
+ FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
+ "gsm_map.TeleserviceCode", HFILL }},
+ { &hf_gsm_map_O_BcsmCamelTDPCriteriaList_item,
+ { "Item", "gsm_map.O_BcsmCamelTDPCriteriaList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.O_BcsmCamelTDP_Criteria", HFILL }},
+ { &hf_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList_item,
+ { "Item", "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_BCSM_CAMEL_TDP_Criteria", HFILL }},
+ { &hf_gsm_map_destinationNumberCriteria,
+ { "destinationNumberCriteria", "gsm_map.destinationNumberCriteria",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.DestinationNumberCriteria", HFILL }},
+ { &hf_gsm_map_basicServiceCriteria,
+ { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.BasicServiceCriteria", HFILL }},
+ { &hf_gsm_map_callTypeCriteria,
+ { "callTypeCriteria", "gsm_map.callTypeCriteria",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CallTypeCriteria_vals), 0,
+ "gsm_map.CallTypeCriteria", HFILL }},
+ { &hf_gsm_map_o_CauseValueCriteria,
+ { "o-CauseValueCriteria", "gsm_map.o_CauseValueCriteria",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.O_CauseValueCriteria", HFILL }},
+ { &hf_gsm_map_t_BCSM_TriggerDetectionPoint,
+ { "t-BCSM-TriggerDetectionPoint", "gsm_map.t_BCSM_TriggerDetectionPoint",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_T_BcsmTriggerDetectionPoint_vals), 0,
+ "gsm_map.T_BcsmTriggerDetectionPoint", HFILL }},
+ { &hf_gsm_map_t_CauseValueCriteria,
+ { "t-CauseValueCriteria", "gsm_map.t_CauseValueCriteria",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.T_CauseValueCriteria", HFILL }},
+ { &hf_gsm_map_maximumEntitledPriority,
+ { "maximumEntitledPriority", "gsm_map.maximumEntitledPriority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.EMLPP_Priority", HFILL }},
+ { &hf_gsm_map_ccbs_FeatureList,
+ { "ccbs-FeatureList", "gsm_map.ccbs_FeatureList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.CCBS_FeatureList", HFILL }},
+ { &hf_gsm_map_nbrSN,
+ { "nbrSN", "gsm_map.nbrSN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.MC_Bearers", HFILL }},
+ { &hf_gsm_map_CCBS_FeatureList_item,
+ { "Item", "gsm_map.CCBS_FeatureList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.CCBS_Feature", HFILL }},
+ { &hf_gsm_map_b_subscriberNumber,
+ { "b-subscriberNumber", "gsm_map.b_subscriberNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_b_subscriberSubaddress,
+ { "b-subscriberSubaddress", "gsm_map.b_subscriberSubaddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_SubaddressString", HFILL }},
+ { &hf_gsm_map_basicServiceGroup,
+ { "basicServiceGroup", "gsm_map.basicServiceGroup",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0,
+ "gsm_map.BasicServiceCode", HFILL }},
+ { &hf_gsm_map_T_CauseValueCriteria_item,
+ { "Item", "gsm_map.T_CauseValueCriteria_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CauseValue", HFILL }},
+ { &hf_gsm_map_O_CauseValueCriteria_item,
+ { "Item", "gsm_map.O_CauseValueCriteria_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CauseValue", HFILL }},
+ { &hf_gsm_map_BasicServiceCriteria_item,
+ { "Item", "gsm_map.BasicServiceCriteria_item",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
+ "gsm_map.Ext_BasicServiceCode", HFILL }},
+ { &hf_gsm_map_modificationRequestFor_CF_Info,
+ { "modificationRequestFor-CF-Info", "gsm_map.modificationRequestFor_CF_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ModificationRequestFor_CF_Info", HFILL }},
+ { &hf_gsm_map_modificationRequestFor_CB_Info,
+ { "modificationRequestFor-CB-Info", "gsm_map.modificationRequestFor_CB_Info",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ModificationRequestFor_CB_Info", HFILL }},
+ { &hf_gsm_map_modificationRequestFor_CSI,
+ { "modificationRequestFor-CSI", "gsm_map.modificationRequestFor_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ModificationRequestFor_CSI", HFILL }},
+ { &hf_gsm_map_modificationRequestFor_ODB_data,
+ { "modificationRequestFor-ODB-data", "gsm_map.modificationRequestFor_ODB_data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ModificationRequestFor_ODB_data", HFILL }},
+ { &hf_gsm_map_ss_InfoFor_CSE,
+ { "ss-InfoFor-CSE", "gsm_map.ss_InfoFor_CSE",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_SS_InfoFor_CSE_vals), 0,
+ "gsm_map.Ext_SS_InfoFor_CSE", HFILL }},
+ { &hf_gsm_map_modifyNotificationToCSE,
+ { "modifyNotificationToCSE", "gsm_map.modifyNotificationToCSE",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ModificationInstruction_vals), 0,
+ "gsm_map.ModificationInstruction", HFILL }},
+ { &hf_gsm_map_odb_data,
+ { "odb-data", "gsm_map.odb_data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ODB_Data", HFILL }},
+ { &hf_gsm_map_requestedCamel_SubscriptionInfo,
+ { "requestedCamel-SubscriptionInfo", "gsm_map.requestedCamel_SubscriptionInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RequestedCAMEL_SubscriptionInfo_vals), 0,
+ "gsm_map.RequestedCAMEL_SubscriptionInfo", HFILL }},
+ { &hf_gsm_map_modifyCSI_State,
+ { "modifyCSI-State", "gsm_map.modifyCSI_State",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ModificationInstruction_vals), 0,
+ "gsm_map.ModificationInstruction", HFILL }},
+ { &hf_gsm_map_forwardingInfoFor_CSE,
+ { "forwardingInfoFor-CSE", "gsm_map.forwardingInfoFor_CSE",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_ForwardingInfoFor_CSE", HFILL }},
+ { &hf_gsm_map_callBarringInfoFor_CSE,
+ { "callBarringInfoFor-CSE", "gsm_map.callBarringInfoFor_CSE",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.Ext_CallBarringInfoFor_CSE", HFILL }},
+ { &hf_gsm_map_eventMet,
+ { "eventMet", "gsm_map.eventMet",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MM_Code", HFILL }},
+ { &hf_gsm_map_supportedCAMELPhases,
+ { "supportedCAMELPhases", "gsm_map.supportedCAMELPhases",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedCamelPhases", HFILL }},
+ { &hf_gsm_map_offeredCamel4Functionalities,
+ { "offeredCamel4Functionalities", "gsm_map.offeredCamel4Functionalities",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.OfferedCamel4Functionalities", HFILL }},
+ { &hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList,
+ { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_BCSM_CAMEL_TDP_CriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
+ { &hf_gsm_map_tif_CSI_NotificationToCSE,
+ { "tif-CSI-NotificationToCSE", "gsm_map.tif_CSI_NotificationToCSE",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_specificCSIDeletedList,
+ { "specificCSIDeletedList", "gsm_map.specificCSIDeletedList",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SpecificCSI_Withdraw", HFILL }},
+ { &hf_gsm_map_o_IM_CSI,
+ { "o-IM-CSI", "gsm_map.o_IM_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.O_CSI", HFILL }},
+ { &hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList,
+ { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.o_IM_BcsmCamelTDP_CriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.O_BcsmCamelTDPCriteriaList", HFILL }},
+ { &hf_gsm_map_d_IM_CSI,
+ { "d-IM-CSI", "gsm_map.d_IM_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.D_CSI", HFILL }},
+ { &hf_gsm_map_vt_IM_CSI,
+ { "vt-IM-CSI", "gsm_map.vt_IM_CSI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_CSI", HFILL }},
+ { &hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList,
+ { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_IM_BCSM_CAMEL_TDP_CriteriaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }},
+ { &hf_gsm_map_ext_BearerService,
+ { "ext-BearerService", "gsm_map.ext_BearerService",
+ FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0,
+ "gsm_map.Ext_BearerServiceCode", HFILL }},
+ { &hf_gsm_map_ext_Teleservice,
+ { "ext-Teleservice", "gsm_map.ext_Teleservice",
+ FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
+ "gsm_map.Ext_TeleserviceCode", HFILL }},
+ { &hf_gsm_map_odb_HPLMN_Data,
+ { "odb-HPLMN-Data", "gsm_map.odb_HPLMN_Data",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ODB_HPLMN_Data", HFILL }},
+ { &hf_gsm_map_SS_EventList_item,
+ { "Item", "gsm_map.SS_EventList_item",
+ FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
+ "gsm_map.SS_Code", HFILL }},
+ { &hf_gsm_map_t_BcsmCamelTDPDataList,
+ { "t-BcsmCamelTDPDataList", "gsm_map.t_BcsmCamelTDPDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.T_BcsmCamelTDPDataList", HFILL }},
+ { &hf_gsm_map_T_BcsmCamelTDPDataList_item,
+ { "Item", "gsm_map.T_BcsmCamelTDPDataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.T_BcsmCamelTDPData", HFILL }},
+ { &hf_gsm_map_t_BcsmTriggerDetectionPoint,
+ { "t-BcsmTriggerDetectionPoint", "gsm_map.t_BcsmTriggerDetectionPoint",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_T_BcsmTriggerDetectionPoint_vals), 0,
+ "gsm_map.T_BcsmTriggerDetectionPoint", HFILL }},
+ { &hf_gsm_map_sms_CAMEL_TDP_DataList,
+ { "sms-CAMEL-TDP-DataList", "gsm_map.sms_CAMEL_TDP_DataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SMS_CAMEL_TDP_DataList", HFILL }},
+ { &hf_gsm_map_SMS_CAMEL_TDP_DataList_item,
+ { "Item", "gsm_map.SMS_CAMEL_TDP_DataList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.SMS_CAMEL_TDP_Data", HFILL }},
+ { &hf_gsm_map_defaultSMS_Handling,
+ { "defaultSMS-Handling", "gsm_map.defaultSMS_Handling",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultSMS_Handling_vals), 0,
+ "gsm_map.DefaultSMS_Handling", HFILL }},
+ { &hf_gsm_map_MobilityTriggers_item,
+ { "Item", "gsm_map.MobilityTriggers_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.MM_Code", HFILL }},
+ { &hf_gsm_map_ss_Event,
+ { "ss-Event", "gsm_map.ss_Event",
+ FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
+ "gsm_map.SS_Code", HFILL }},
+ { &hf_gsm_map_ss_EventSpecification,
+ { "ss-EventSpecification", "gsm_map.ss_EventSpecification",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.SS_EventSpecification", HFILL }},
+ { &hf_gsm_map_ccbs_RequestState,
+ { "ccbs-RequestState", "gsm_map.ccbs_RequestState",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CCBS_RequestState_vals), 0,
+ "gsm_map.CCBS_RequestState", HFILL }},
+ { &hf_gsm_map_SS_EventSpecification_item,
+ { "Item", "gsm_map.SS_EventSpecification_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.AddressString", HFILL }},
+ { &hf_gsm_map_ext_teleservice,
+ { "teleservice", "gsm_map.teleservice",
+ FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
+ "gsm_map.Ext_TeleserviceCode", HFILL }},
+ { &hf_gsm_map_codec_Info,
+ { "codec-Info", "gsm_map.codec_Info",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CODEC_Info", HFILL }},
+ { &hf_gsm_map_cipheringAlgorithm,
+ { "cipheringAlgorithm", "gsm_map.cipheringAlgorithm",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.CipheringAlgorithm", HFILL }},
+ { &hf_gsm_map_groupKeyNumber_Vk_Id,
+ { "groupKeyNumber-Vk-Id", "gsm_map.groupKeyNumber_Vk_Id",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.GroupKeyNumber", HFILL }},
+ { &hf_gsm_map_groupKey,
+ { "groupKey", "gsm_map.groupKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Kc", HFILL }},
+ { &hf_gsm_map_priority,
+ { "priority", "gsm_map.priority",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.EMLPP_Priority", HFILL }},
+ { &hf_gsm_map_uplinkFree,
+ { "uplinkFree", "gsm_map.uplinkFree",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_vstk,
+ { "vstk", "gsm_map.vstk",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.VSTK", HFILL }},
+ { &hf_gsm_map_vstk_rand,
+ { "vstk-rand", "gsm_map.vstk_rand",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.VSTK_RAND", HFILL }},
+ { &hf_gsm_map_groupCallNumber,
+ { "groupCallNumber", "gsm_map.groupCallNumber",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_vlr_Capability,
- { "vlr-Capability", "gsm_map.vlr_Capability",
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_talkerPriority,
+ { "talkerPriority", "gsm_map.talkerPriority",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TalkerPriority_vals), 0,
+ "gsm_map.TalkerPriority", HFILL }},
+ { &hf_gsm_map_uplinkRequest,
+ { "uplinkRequest", "gsm_map.uplinkRequest",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_hlr_Number,
- { "hlr-Number", "gsm_map.hlr_Number",
- FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_PrivateExtensionList_item,
- { "Item", "gsm_map.PrivateExtensionList_item",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_uplinkReleaseIndication,
+ { "uplinkReleaseIndication", "gsm_map.uplinkReleaseIndication",
FT_NONE, BASE_NONE, NULL, 0,
- "PrivateExtensionList/_item", HFILL }},
- { &hf_gsm_map_identity,
- { "identity", "gsm_map.identity",
- FT_UINT32, BASE_DEC, VALS(T_identity_vals), 0,
- "CancelLocationArg/identity", HFILL }},
- { &hf_gsm_map_imsi_WithLMSI,
- { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_releaseGroupCall,
+ { "releaseGroupCall", "gsm_map.releaseGroupCall",
FT_NONE, BASE_NONE, NULL, 0,
- "CancelLocationArg/identity/imsi-WithLMSI", HFILL }},
- { &hf_gsm_map_cancellationType,
- { "cancellationType", "gsm_map.cancellationType",
- FT_UINT32, BASE_DEC, VALS(CancellationType_vals), 0,
- "CancelLocationArg/cancellationType", HFILL }},
- { &hf_gsm_map_sgsn_Number,
- { "sgsn-Number", "gsm_map.sgsn_Number",
- FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_freezeTMSI,
- { "freezeTMSI", "gsm_map.freezeTMSI",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_emergencyModeResetCommandFlag,
+ { "emergencyModeResetCommandFlag", "gsm_map.emergencyModeResetCommandFlag",
FT_NONE, BASE_NONE, NULL, 0,
- "PurgeMS-Res/freezeTMSI", HFILL }},
- { &hf_gsm_map_freezeP_TMSI,
- { "freezeP-TMSI", "gsm_map.freezeP_TMSI",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_downlinkAttached,
+ { "downlinkAttached", "gsm_map.downlinkAttached",
FT_NONE, BASE_NONE, NULL, 0,
- "PurgeMS-Res/freezeP-TMSI", HFILL }},
- { &hf_gsm_map_authenticationSetList,
- { "authenticationSetList", "gsm_map.authenticationSetList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendIdentificationRes/authenticationSetList", HFILL }},
- { &hf_gsm_map_authenticationSetList_item,
- { "Item", "gsm_map.authenticationSetList_item",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_uplinkAttached,
+ { "uplinkAttached", "gsm_map.uplinkAttached",
FT_NONE, BASE_NONE, NULL, 0,
- "SendIdentificationRes/authenticationSetList/_item", HFILL }},
- { &hf_gsm_map_rand,
- { "rand", "gsm_map.rand",
- FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_sres,
- { "sres", "gsm_map.sres",
- FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_kc,
- { "kc", "gsm_map.kc",
- FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_targetCellId,
- { "targetCellId", "gsm_map.targetCellId",
- FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_ho_NumberNotRequired,
- { "ho-NumberNotRequired", "gsm_map.ho_NumberNotRequired",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_dualCommunication,
+ { "dualCommunication", "gsm_map.dualCommunication",
FT_NONE, BASE_NONE, NULL, 0,
- "PrepareHO-Arg/ho-NumberNotRequired", HFILL }},
- { &hf_gsm_map_bss_APDU,
- { "bss-APDU", "gsm_map.bss_APDU",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_callOriginator,
+ { "callOriginator", "gsm_map.callOriginator",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_handoverNumber,
- { "handoverNumber", "gsm_map.handoverNumber",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_groupRequestedInfo,
+ { "groupRequestedInfo", "gsm_map.groupRequestedInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_GroupRequestedInfo_vals), 0,
+ "gsm_map.GroupRequestedInfo", HFILL }},
+ { &hf_gsm_map_cellId,
+ { "cellId", "gsm_map.cellId",
FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareHO-Res/handoverNumber", HFILL }},
- { &hf_gsm_map_targetMSC_Number,
- { "targetMSC-Number", "gsm_map.targetMSC_Number",
+ "gsm_map.GlobalCellId", HFILL }},
+ { &hf_gsm_map_anchorMSC_Address,
+ { "anchorMSC-Address", "gsm_map.anchorMSC_Address",
FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareSubsequentHO-Arg/targetMSC-Number", HFILL }},
- { &hf_gsm_map_numberOfRequestedVectors,
- { "numberOfRequestedVectors", "gsm_map.numberOfRequestedVectors",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendAuthenticationInfoArg/numberOfRequestedVectors", HFILL }},
- { &hf_gsm_map_segmentationProhibited,
- { "segmentationProhibited", "gsm_map.segmentationProhibited",
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_uplinkRequestAck,
+ { "uplinkRequestAck", "gsm_map.uplinkRequestAck",
FT_NONE, BASE_NONE, NULL, 0,
- "SendAuthenticationInfoArg/segmentationProhibited", HFILL }},
- { &hf_gsm_map_immediateResponsePreferred,
- { "immediateResponsePreferred", "gsm_map.immediateResponsePreferred",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_uplinkRejectCommand,
+ { "uplinkRejectCommand", "gsm_map.uplinkRejectCommand",
FT_NONE, BASE_NONE, NULL, 0,
- "SendAuthenticationInfoArg/immediateResponsePreferred", HFILL }},
- { &hf_gsm_map_re_synchronisationInfo,
- { "re-synchronisationInfo", "gsm_map.re_synchronisationInfo",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_uplinkSeizedCommand,
+ { "uplinkSeizedCommand", "gsm_map.uplinkSeizedCommand",
FT_NONE, BASE_NONE, NULL, 0,
- "SendAuthenticationInfoArg/re-synchronisationInfo", HFILL }},
- { &hf_gsm_map_auts,
- { "auts", "gsm_map.auts",
- FT_BYTES, BASE_HEX, NULL, 0,
- "SendAuthenticationInfoArg/re-synchronisationInfo/auts", HFILL }},
- { &hf_gsm_map_requestingNodeType,
- { "requestingNodeType", "gsm_map.requestingNodeType",
- FT_UINT32, BASE_DEC, VALS(T_requestingNodeType_vals), 0,
- "SendAuthenticationInfoArg/requestingNodeType", HFILL }},
- { &hf_gsm_map_requestingPLMN_Id,
- { "requestingPLMN-Id", "gsm_map.requestingPLMN_Id",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_uplinkReleaseCommand,
+ { "uplinkReleaseCommand", "gsm_map.uplinkReleaseCommand",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_stateAttributes,
+ { "stateAttributes", "gsm_map.stateAttributes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.StateAttributes", HFILL }},
+ { &hf_gsm_map_sgsn_Address,
+ { "sgsn-Address", "gsm_map.sgsn_Address",
FT_BYTES, BASE_HEX, NULL, 0,
- "SendAuthenticationInfoArg/requestingPLMN-Id", HFILL }},
- { &hf_gsm_map_SendAuthenticationInfoRes_item,
- { "Item", "gsm_map.SendAuthenticationInfoRes_item",
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_sgsn_Capability,
+ { "sgsn-Capability", "gsm_map.sgsn_Capability",
FT_NONE, BASE_NONE, NULL, 0,
- "SendAuthenticationInfoRes/_item", HFILL }},
- { &hf_gsm_map_bearerService,
- { "bearerService", "gsm_map.bearerService",
+ "gsm_map.SGSN_Capability", HFILL }},
+ { &hf_gsm_map_ps_LCS_NotSupportedByUE,
+ { "ps-LCS-NotSupportedByUE", "gsm_map.ps_LCS_NotSupportedByUE",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gprsEnhancementsSupportIndicator,
+ { "gprsEnhancementsSupportIndicator", "gsm_map.gprsEnhancementsSupportIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_smsCallBarringSupportIndicator,
+ { "smsCallBarringSupportIndicator", "gsm_map.smsCallBarringSupportIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_ggsn_Number,
+ { "ggsn-Number", "gsm_map.ggsn_Number",
FT_BYTES, BASE_HEX, NULL, 0,
- "BasicService/bearerService", HFILL }},
- { &hf_gsm_map_teleservice,
- { "teleservice", "gsm_map.teleservice",
- FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
- "", HFILL }},
- { &hf_gsm_map_BasicServiceGroupList_item,
- { "Item", "gsm_map.BasicServiceGroupList_item",
- FT_UINT32, BASE_DEC, VALS(BasicService_vals), 0,
- "BasicServiceGroupList/_item", HFILL }},
- { &hf_gsm_map_bcsmTriggerDetectionPoint,
- { "bcsmTriggerDetectionPoint", "gsm_map.bcsmTriggerDetectionPoint",
- FT_UINT32, BASE_DEC, VALS(BcsmTriggerDetectionPoint_vals), 0,
- "BcsmCamelTDPData/bcsmTriggerDetectionPoint", HFILL }},
- { &hf_gsm_map_serviceKey,
- { "serviceKey", "gsm_map.serviceKey",
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_mobileNotReachableReason,
+ { "mobileNotReachableReason", "gsm_map.mobileNotReachableReason",
FT_UINT32, BASE_DEC, NULL, 0,
- "BcsmCamelTDPData/serviceKey", HFILL }},
- { &hf_gsm_map_gsmSCFAddress,
- { "gsmSCFAddress", "gsm_map.gsmSCFAddress",
+ "gsm_map.AbsentSubscriberDiagnosticSM", HFILL }},
+ { &hf_gsm_map_locationType,
+ { "locationType", "gsm_map.locationType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LocationType", HFILL }},
+ { &hf_gsm_map_mlc_Number,
+ { "mlc-Number", "gsm_map.mlc_Number",
FT_BYTES, BASE_HEX, NULL, 0,
- "BcsmCamelTDPData/gsmSCFAddress", HFILL }},
- { &hf_gsm_map_defaultCallHandling,
- { "defaultCallHandling", "gsm_map.defaultCallHandling",
- FT_UINT32, BASE_DEC, VALS(DefaultCallHandling_vals), 0,
- "BcsmCamelTDPData/defaultCallHandling", HFILL }},
- { &hf_gsm_map_BcsmCamelTDPDataList_item,
- { "Item", "gsm_map.BcsmCamelTDPDataList_item",
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_lcs_ClientID,
+ { "lcs-ClientID", "gsm_map.lcs_ClientID",
FT_NONE, BASE_NONE, NULL, 0,
- "BcsmCamelTDPDataList/_item", HFILL }},
- { &hf_gsm_map_o_BcsmCamelTDPDataList,
- { "o-BcsmCamelTDPDataList", "gsm_map.o_BcsmCamelTDPDataList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "O-CSI/o-BcsmCamelTDPDataList", HFILL }},
- { &hf_gsm_map_camelCapabilityHandling,
- { "camelCapabilityHandling", "gsm_map.camelCapabilityHandling",
- FT_UINT32, BASE_DEC, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_msisdn,
- { "msisdn", "gsm_map.msisdn",
+ "gsm_map.LCS_ClientID", HFILL }},
+ { &hf_gsm_map_privacyOverride,
+ { "privacyOverride", "gsm_map.privacyOverride",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_lcs_Priority,
+ { "lcs-Priority", "gsm_map.lcs_Priority",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_category,
- { "category", "gsm_map.category",
+ "gsm_map.LCS_Priority", HFILL }},
+ { &hf_gsm_map_lcs_QoS,
+ { "lcs-QoS", "gsm_map.lcs_QoS",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.LCS_QoS", HFILL }},
+ { &hf_gsm_map_supportedGADShapes,
+ { "supportedGADShapes", "gsm_map.supportedGADShapes",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/category", HFILL }},
- { &hf_gsm_map_subscriberStatus,
- { "subscriberStatus", "gsm_map.subscriberStatus",
- FT_UINT32, BASE_DEC, VALS(SubscriberStatus_vals), 0,
- "InsertSubscriberDataArg/subscriberStatus", HFILL }},
- { &hf_gsm_map_bearerServiceList,
- { "bearerServiceList", "gsm_map.bearerServiceList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_bearerServiceList_item,
- { "Item", "gsm_map.bearerServiceList_item",
+ "gsm_map.SupportedGADShapes", HFILL }},
+ { &hf_gsm_map_lcs_ReferenceNumber,
+ { "lcs-ReferenceNumber", "gsm_map.lcs_ReferenceNumber",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_teleserviceList,
- { "teleserviceList", "gsm_map.teleserviceList",
+ "gsm_map.LCS_ReferenceNumber", HFILL }},
+ { &hf_gsm_map_lcsServiceTypeID,
+ { "lcsServiceTypeID", "gsm_map.lcsServiceTypeID",
FT_UINT32, BASE_DEC, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_teleserviceList_item,
- { "Item", "gsm_map.teleserviceList_item",
- FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
- "", HFILL }},
- { &hf_gsm_map_provisionedSS,
- { "provisionedSS", "gsm_map.provisionedSS",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS", HFILL }},
- { &hf_gsm_map_provisionedSS_item,
- { "Item", "gsm_map.provisionedSS_item",
- FT_UINT32, BASE_DEC, VALS(T_provisionedSS_item_vals), 0,
- "InsertSubscriberDataArg/provisionedSS/_item", HFILL }},
- { &hf_gsm_map_forwardingInfo,
- { "forwardingInfo", "gsm_map.forwardingInfo",
+ "gsm_map.LCSServiceTypeID", HFILL }},
+ { &hf_gsm_map_lcsCodeword,
+ { "lcsCodeword", "gsm_map.lcsCodeword",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_callBarringInfo,
- { "callBarringInfo", "gsm_map.callBarringInfo",
- FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_cug_Info,
- { "cug-Info", "gsm_map.cug_Info",
+ "gsm_map.LCSCodeword", HFILL }},
+ { &hf_gsm_map_lcs_PrivacyCheck,
+ { "lcs-PrivacyCheck", "gsm_map.lcs_PrivacyCheck",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info", HFILL }},
- { &hf_gsm_map_cug_SubscriptionList,
- { "cug-SubscriptionList", "gsm_map.cug_SubscriptionList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList", HFILL }},
- { &hf_gsm_map_cug_SubscriptionList_item,
- { "Item", "gsm_map.cug_SubscriptionList_item",
+ "gsm_map.LCS_PrivacyCheck", HFILL }},
+ { &hf_gsm_map_areaEventInfo,
+ { "areaEventInfo", "gsm_map.areaEventInfo",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item", HFILL }},
- { &hf_gsm_map_cug_Index,
- { "cug-Index", "gsm_map.cug_Index",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/cug-Index", HFILL }},
- { &hf_gsm_map_cug_Interlock,
- { "cug-Interlock", "gsm_map.cug_Interlock",
+ "gsm_map.AreaEventInfo", HFILL }},
+ { &hf_gsm_map_h_gmlc_Address,
+ { "h-gmlc-Address", "gsm_map.h_gmlc_Address",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_intraCUG_Options,
- { "intraCUG-Options", "gsm_map.intraCUG_Options",
- FT_UINT32, BASE_DEC, VALS(IntraCUG_Options_vals), 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-SubscriptionList/_item/intraCUG-Options", HFILL }},
- { &hf_gsm_map_basicServiceGroupList,
- { "basicServiceGroupList", "gsm_map.basicServiceGroupList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_cug_FeatureList,
- { "cug-FeatureList", "gsm_map.cug_FeatureList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList", HFILL }},
- { &hf_gsm_map_cug_FeatureList_item,
- { "Item", "gsm_map.cug_FeatureList_item",
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_mo_lrShortCircuitIndicator,
+ { "mo-lrShortCircuitIndicator", "gsm_map.mo_lrShortCircuitIndicator",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item", HFILL }},
- { &hf_gsm_map_basicService,
- { "basicService", "gsm_map.basicService",
- FT_UINT32, BASE_DEC, VALS(BasicService_vals), 0,
- "", HFILL }},
- { &hf_gsm_map_preferentialCUG_Indicator,
- { "preferentialCUG-Indicator", "gsm_map.preferentialCUG_Indicator",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/preferentialCUG-Indicator", HFILL }},
- { &hf_gsm_map_interCUG_Restrictions,
- { "interCUG-Restrictions", "gsm_map.interCUG_Restrictions",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_periodicLDRInfo,
+ { "periodicLDRInfo", "gsm_map.periodicLDRInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.PeriodicLDRInfo", HFILL }},
+ { &hf_gsm_map_reportingPLMNList,
+ { "reportingPLMNList", "gsm_map.reportingPLMNList",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.ReportingPLMNList", HFILL }},
+ { &hf_gsm_map_locationEstimateType,
+ { "locationEstimateType", "gsm_map.locationEstimateType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LocationEstimateType_vals), 0,
+ "gsm_map.LocationEstimateType", HFILL }},
+ { &hf_gsm_map_deferredLocationEventType,
+ { "deferredLocationEventType", "gsm_map.deferredLocationEventType",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/cug-Info/cug-FeatureList/_item/interCUG-Restrictions", HFILL }},
- { &hf_gsm_map_ss_Data2,
- { "ss-Data2", "gsm_map.ss_Data2",
+ "gsm_map.DeferredLocationEventType", HFILL }},
+ { &hf_gsm_map_lcsClientType,
+ { "lcsClientType", "gsm_map.lcsClientType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientType_vals), 0,
+ "gsm_map.LCSClientType", HFILL }},
+ { &hf_gsm_map_lcsClientExternalID,
+ { "lcsClientExternalID", "gsm_map.lcsClientExternalID",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/ss-Data2", HFILL }},
- { &hf_gsm_map_ss_Code,
- { "ss-Code", "gsm_map.ss_Code",
- FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0,
- "", HFILL }},
- { &hf_gsm_map_ss_Status,
- { "ss-Status", "gsm_map.ss_Status",
+ "gsm_map.LCSClientExternalID", HFILL }},
+ { &hf_gsm_map_lcsClientDialedByMS,
+ { "lcsClientDialedByMS", "gsm_map.lcsClientDialedByMS",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_ss_SubscriptionOption,
- { "ss-SubscriptionOption", "gsm_map.ss_SubscriptionOption",
- FT_UINT32, BASE_DEC, VALS(Ss_SubscriptionOption_vals), 0,
- "", HFILL }},
- { &hf_gsm_map_emlpp_Info,
- { "emlpp-Info", "gsm_map.emlpp_Info",
+ "gsm_map.AddressString", HFILL }},
+ { &hf_gsm_map_lcsClientInternalID,
+ { "lcsClientInternalID", "gsm_map.lcsClientInternalID",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0,
+ "gsm_map.LCSClientInternalID", HFILL }},
+ { &hf_gsm_map_lcsClientName,
+ { "lcsClientName", "gsm_map.lcsClientName",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info", HFILL }},
- { &hf_gsm_map_maximumentitledPriority,
- { "maximumentitledPriority", "gsm_map.maximumentitledPriority",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/provisionedSS/_item/emlpp-Info/maximumentitledPriority", HFILL }},
- { &hf_gsm_map_defaultPriority,
- { "defaultPriority", "gsm_map.defaultPriority",
- FT_UINT32, BASE_DEC, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_odb_Data,
- { "odb-Data", "gsm_map.odb_Data",
+ "gsm_map.LCSClientName", HFILL }},
+ { &hf_gsm_map_lcsAPN,
+ { "lcsAPN", "gsm_map.lcsAPN",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.APN", HFILL }},
+ { &hf_gsm_map_lcsRequestorID,
+ { "lcsRequestorID", "gsm_map.lcsRequestorID",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/odb-Data", HFILL }},
- { &hf_gsm_map_odb_GeneralData,
- { "odb-GeneralData", "gsm_map.odb_GeneralData",
+ "gsm_map.LCSRequestorID", HFILL }},
+ { &hf_gsm_map_dataCodingScheme,
+ { "dataCodingScheme", "gsm_map.dataCodingScheme",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_odb_HPLMN_Data,
- { "odb-HPLMN-Data", "gsm_map.odb_HPLMN_Data",
+ "gsm_map.USSD_DataCodingScheme", HFILL }},
+ { &hf_gsm_map_nameString,
+ { "nameString", "gsm_map.nameString",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/odb-Data/odb-HPLMN-Data", HFILL }},
- { &hf_gsm_map_roamingRestrictionDueToUnsupportedFeature,
- { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.roamingRestrictionDueToUnsupportedFeature",
+ "gsm_map.NameString", HFILL }},
+ { &hf_gsm_map_lcs_FormatIndicator,
+ { "lcs-FormatIndicator", "gsm_map.lcs_FormatIndicator",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LCS_FormatIndicator_vals), 0,
+ "gsm_map.LCS_FormatIndicator", HFILL }},
+ { &hf_gsm_map_requestorIDString,
+ { "requestorIDString", "gsm_map.requestorIDString",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.RequestorIDString", HFILL }},
+ { &hf_gsm_map_horizontal_accuracy,
+ { "horizontal-accuracy", "gsm_map.horizontal_accuracy",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Horizontal_Accuracy", HFILL }},
+ { &hf_gsm_map_verticalCoordinateRequest,
+ { "verticalCoordinateRequest", "gsm_map.verticalCoordinateRequest",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_regionalSubscriptionData,
- { "regionalSubscriptionData", "gsm_map.regionalSubscriptionData",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/regionalSubscriptionData", HFILL }},
- { &hf_gsm_map_regionalSubscriptionData_item,
- { "Item", "gsm_map.regionalSubscriptionData_item",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_vertical_accuracy,
+ { "vertical-accuracy", "gsm_map.vertical_accuracy",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/regionalSubscriptionData/_item", HFILL }},
- { &hf_gsm_map_vbsSubscriptionData,
- { "vbsSubscriptionData", "gsm_map.vbsSubscriptionData",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/vbsSubscriptionData", HFILL }},
- { &hf_gsm_map_vbsSubscriptionData_item,
- { "Item", "gsm_map.vbsSubscriptionData_item",
+ "gsm_map.Vertical_Accuracy", HFILL }},
+ { &hf_gsm_map_responseTime,
+ { "responseTime", "gsm_map.responseTime",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vbsSubscriptionData/_item", HFILL }},
- { &hf_gsm_map_groupid,
- { "groupid", "gsm_map.groupid",
+ "gsm_map.ResponseTime", HFILL }},
+ { &hf_gsm_map_velocityRequest,
+ { "velocityRequest", "gsm_map.velocityRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_responseTimeCategory,
+ { "responseTimeCategory", "gsm_map.responseTimeCategory",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ResponseTimeCategory_vals), 0,
+ "gsm_map.ResponseTimeCategory", HFILL }},
+ { &hf_gsm_map_lcsCodewordString,
+ { "lcsCodewordString", "gsm_map.lcsCodewordString",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/vbsSubscriptionData/_item/groupid", HFILL }},
- { &hf_gsm_map_broadcastInitEntitlement,
- { "broadcastInitEntitlement", "gsm_map.broadcastInitEntitlement",
+ "gsm_map.LCSCodewordString", HFILL }},
+ { &hf_gsm_map_callSessionUnrelated,
+ { "callSessionUnrelated", "gsm_map.callSessionUnrelated",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_PrivacyCheckRelatedAction_vals), 0,
+ "gsm_map.PrivacyCheckRelatedAction", HFILL }},
+ { &hf_gsm_map_callSessionRelated,
+ { "callSessionRelated", "gsm_map.callSessionRelated",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_PrivacyCheckRelatedAction_vals), 0,
+ "gsm_map.PrivacyCheckRelatedAction", HFILL }},
+ { &hf_gsm_map_areaDefinition,
+ { "areaDefinition", "gsm_map.areaDefinition",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vbsSubscriptionData/_item/broadcastInitEntitlement", HFILL }},
- { &hf_gsm_map_vgcsSubscriptionData,
- { "vgcsSubscriptionData", "gsm_map.vgcsSubscriptionData",
+ "gsm_map.AreaDefinition", HFILL }},
+ { &hf_gsm_map_occurrenceInfo,
+ { "occurrenceInfo", "gsm_map.occurrenceInfo",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_OccurrenceInfo_vals), 0,
+ "gsm_map.OccurrenceInfo", HFILL }},
+ { &hf_gsm_map_intervalTime,
+ { "intervalTime", "gsm_map.intervalTime",
FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/vgcsSubscriptionData", HFILL }},
- { &hf_gsm_map_vgcsSubscriptionData_item,
- { "Item", "gsm_map.vgcsSubscriptionData_item",
+ "gsm_map.IntervalTime", HFILL }},
+ { &hf_gsm_map_areaList,
+ { "areaList", "gsm_map.areaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.AreaList", HFILL }},
+ { &hf_gsm_map_AreaList_item,
+ { "Item", "gsm_map.AreaList_item",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vgcsSubscriptionData/_item", HFILL }},
- { &hf_gsm_map_groupId,
- { "groupId", "gsm_map.groupId",
+ "gsm_map.Area", HFILL }},
+ { &hf_gsm_map_areaType,
+ { "areaType", "gsm_map.areaType",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AreaType_vals), 0,
+ "gsm_map.AreaType", HFILL }},
+ { &hf_gsm_map_areaIdentification,
+ { "areaIdentification", "gsm_map.areaIdentification",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/vgcsSubscriptionData/_item/groupId", HFILL }},
- { &hf_gsm_map_vlrCamelSubscriptionInfo,
- { "vlrCamelSubscriptionInfo", "gsm_map.vlrCamelSubscriptionInfo",
- FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vlrCamelSubscriptionInfo", HFILL }},
- { &hf_gsm_map_o_CSI,
- { "o-CSI", "gsm_map.o_CSI",
+ "gsm_map.AreaIdentification", HFILL }},
+ { &hf_gsm_map_reportingAmount,
+ { "reportingAmount", "gsm_map.reportingAmount",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ReportingAmount", HFILL }},
+ { &hf_gsm_map_reportingInterval,
+ { "reportingInterval", "gsm_map.reportingInterval",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.ReportingInterval", HFILL }},
+ { &hf_gsm_map_plmn_ListPrioritized,
+ { "plmn-ListPrioritized", "gsm_map.plmn_ListPrioritized",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_ss_CSI,
- { "ss-CSI", "gsm_map.ss_CSI",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_plmn_List,
+ { "plmn-List", "gsm_map.plmn_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.PLMNList", HFILL }},
+ { &hf_gsm_map_PLMNList_item,
+ { "Item", "gsm_map.PLMNList_item",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI", HFILL }},
- { &hf_gsm_map_ss_CamelData,
- { "ss-CamelData", "gsm_map.ss_CamelData",
+ "gsm_map.ReportingPLMN", HFILL }},
+ { &hf_gsm_map_plmn_Id,
+ { "plmn-Id", "gsm_map.plmn_Id",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.PLMN_Id", HFILL }},
+ { &hf_gsm_map_ran_Technology,
+ { "ran-Technology", "gsm_map.ran_Technology",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RAN_Technology_vals), 0,
+ "gsm_map.RAN_Technology", HFILL }},
+ { &hf_gsm_map_ran_PeriodicLocationSupport,
+ { "ran-PeriodicLocationSupport", "gsm_map.ran_PeriodicLocationSupport",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI/ss-CamelData", HFILL }},
- { &hf_gsm_map_ss_EventList,
- { "ss-EventList", "gsm_map.ss_EventList",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_locationEstimate,
+ { "locationEstimate", "gsm_map.locationEstimate",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.Ext_GeographicalInformation", HFILL }},
+ { &hf_gsm_map_ageOfLocationEstimate,
+ { "ageOfLocationEstimate", "gsm_map.ageOfLocationEstimate",
FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI/ss-CamelData/ss-EventList", HFILL }},
- { &hf_gsm_map_ss_EventList_item,
- { "Item", "gsm_map.ss_EventList_item",
+ "gsm_map.AgeOfLocationInformation", HFILL }},
+ { &hf_gsm_map_add_LocationEstimate,
+ { "add-LocationEstimate", "gsm_map.add_LocationEstimate",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/ss-CSI/ss-CamelData/ss-EventList/_item", HFILL }},
- { &hf_gsm_map_gsmSCF_Address,
- { "gsmSCF-Address", "gsm_map.gsmSCF_Address",
+ "gsm_map.Add_GeographicalInformation", HFILL }},
+ { &hf_gsm_map_deferredmt_lrResponseIndicator,
+ { "deferredmt-lrResponseIndicator", "gsm_map.deferredmt_lrResponseIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_geranPositioningData,
+ { "geranPositioningData", "gsm_map.geranPositioningData",
FT_BYTES, BASE_HEX, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList,
- { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_tif_CSI,
- { "tif-CSI", "gsm_map.tif_CSI",
+ "gsm_map.PositioningDataInformation", HFILL }},
+ { &hf_gsm_map_utranPositioningData,
+ { "utranPositioningData", "gsm_map.utranPositioningData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.UtranPositioningDataInfo", HFILL }},
+ { &hf_gsm_map_cellIdOrSai,
+ { "cellIdOrSai", "gsm_map.cellIdOrSai",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0,
+ "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
+ { &hf_gsm_map_accuracyFulfilmentIndicator,
+ { "accuracyFulfilmentIndicator", "gsm_map.accuracyFulfilmentIndicator",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AccuracyFulfilmentIndicator_vals), 0,
+ "gsm_map.AccuracyFulfilmentIndicator", HFILL }},
+ { &hf_gsm_map_velocityEstimate,
+ { "velocityEstimate", "gsm_map.velocityEstimate",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.VelocityEstimate", HFILL }},
+ { &hf_gsm_map_mlcNumber,
+ { "mlcNumber", "gsm_map.mlcNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_targetMS,
+ { "targetMS", "gsm_map.targetMS",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,
+ "gsm_map.SubscriberIdentity", HFILL }},
+ { &hf_gsm_map_lcsLocationInfo,
+ { "lcsLocationInfo", "gsm_map.lcsLocationInfo",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/vlrCamelSubscriptionInfo/tif-CSI", HFILL }},
- { &hf_gsm_map_naea_PreferredCI,
- { "naea-PreferredCI", "gsm_map.naea_PreferredCI",
+ "gsm_map.LCSLocationInfo", HFILL }},
+ { &hf_gsm_map_ppr_Address,
+ { "ppr-Address", "gsm_map.ppr_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_additional_v_gmlc_Address,
+ { "additional-v-gmlc-Address", "gsm_map.additional_v_gmlc_Address",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.GSN_Address", HFILL }},
+ { &hf_gsm_map_additional_LCS_CapabilitySets,
+ { "additional-LCS-CapabilitySets", "gsm_map.additional_LCS_CapabilitySets",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.SupportedLCS_CapabilitySets", HFILL }},
+ { &hf_gsm_map_lcs_Event,
+ { "lcs-Event", "gsm_map.lcs_Event",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_LCS_Event_vals), 0,
+ "gsm_map.LCS_Event", HFILL }},
+ { &hf_gsm_map_na_ESRD,
+ { "na-ESRD", "gsm_map.na_ESRD",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_na_ESRK,
+ { "na-ESRK", "gsm_map.na_ESRK",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "gsm_map.ISDN_AddressString", HFILL }},
+ { &hf_gsm_map_slr_ArgExtensionContainer,
+ { "slr-ArgExtensionContainer", "gsm_map.slr_ArgExtensionContainer",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_gprsSubscriptionData,
- { "gprsSubscriptionData", "gsm_map.gprsSubscriptionData",
+ "gsm_map.SLR_ArgExtensionContainer", HFILL }},
+ { &hf_gsm_map_deferredmt_lrData,
+ { "deferredmt-lrData", "gsm_map.deferredmt_lrData",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData", HFILL }},
- { &hf_gsm_map_completeDataListIncluded,
- { "completeDataListIncluded", "gsm_map.completeDataListIncluded",
+ "gsm_map.Deferredmt_lrData", HFILL }},
+ { &hf_gsm_map_pseudonymIndicator,
+ { "pseudonymIndicator", "gsm_map.pseudonymIndicator",
FT_NONE, BASE_NONE, NULL, 0,
- "", HFILL }},
- { &hf_gsm_map_gprsDataList,
- { "gprsDataList", "gsm_map.gprsDataList",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_sequenceNumber,
+ { "sequenceNumber", "gsm_map.sequenceNumber",
FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList", HFILL }},
- { &hf_gsm_map_gprsDataList_item,
- { "Item", "gsm_map.gprsDataList_item",
+ "gsm_map.SequenceNumber", HFILL }},
+ { &hf_gsm_map_terminationCause,
+ { "terminationCause", "gsm_map.terminationCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_TerminationCause_vals), 0,
+ "gsm_map.TerminationCause", HFILL }},
+ { &hf_gsm_map_securityHeader,
+ { "securityHeader", "gsm_map.securityHeader",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item", HFILL }},
- { &hf_gsm_map_pdp_ContextId,
- { "pdp-ContextId", "gsm_map.pdp_ContextId",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-ContextId", HFILL }},
- { &hf_gsm_map_pdp_Type,
- { "pdp-Type", "gsm_map.pdp_Type",
+ "gsm_map.SecurityHeader", HFILL }},
+ { &hf_gsm_map_protectedPayload,
+ { "protectedPayload", "gsm_map.protectedPayload",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-Type", HFILL }},
- { &hf_gsm_map_pdp_Address,
- { "pdp-Address", "gsm_map.pdp_Address",
+ "gsm_map.ProtectedPayload", HFILL }},
+ { &hf_gsm_map_securityParametersIndex,
+ { "securityParametersIndex", "gsm_map.securityParametersIndex",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/pdp-Address", HFILL }},
- { &hf_gsm_map_qos_Subscribed,
- { "qos-Subscribed", "gsm_map.qos_Subscribed",
+ "gsm_map.SecurityParametersIndex", HFILL }},
+ { &hf_gsm_map_originalComponentIdentifier,
+ { "originalComponentIdentifier", "gsm_map.originalComponentIdentifier",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_OriginalComponentIdentifier_vals), 0,
+ "gsm_map.OriginalComponentIdentifier", HFILL }},
+ { &hf_gsm_map_initialisationVector,
+ { "initialisationVector", "gsm_map.initialisationVector",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/qos-Subscribed", HFILL }},
- { &hf_gsm_map_vplmnAddressAllowed,
- { "vplmnAddressAllowed", "gsm_map.vplmnAddressAllowed",
+ "gsm_map.InitialisationVector", HFILL }},
+ { &hf_gsm_map_operationCode,
+ { "operationCode", "gsm_map.operationCode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_OperationCode_vals), 0,
+ "gsm_map.OperationCode", HFILL }},
+ { &hf_gsm_map_errorCode,
+ { "errorCode", "gsm_map.errorCode",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ErrorCode_vals), 0,
+ "gsm_map.ErrorCode", HFILL }},
+ { &hf_gsm_map_userInfo,
+ { "userInfo", "gsm_map.userInfo",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/vplmnAddressAllowed", HFILL }},
- { &hf_gsm_map_apn,
- { "apn", "gsm_map.apn",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_localValue,
+ { "localValue", "gsm_map.localValue",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "gsm_map.INTEGER", HFILL }},
+ { &hf_gsm_map_operatorSS_Code,
+ { "operatorSS-Code", "gsm_map.operatorSS_Code",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "gsm_map.T_operatorSS_Code", HFILL }},
+ { &hf_gsm_map_operatorSS_Code_item,
+ { "Item", "gsm_map.operatorSS_Code_item",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/gprsSubscriptionData/gprsDataList/_item/apn", HFILL }},
- { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature,
- { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsupportedFeature",
+ "gsm_map.OCTET_STRING_SIZE_1", HFILL }},
+ { &hf_gsm_map_networkResource,
+ { "networkResource", "gsm_map.networkResource",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0,
+ "gsm_map.NetworkResource", HFILL }},
+ { &hf_gsm_map_extensibleSystemFailureParam,
+ { "extensibleSystemFailureParam", "gsm_map.extensibleSystemFailureParam",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/roamingRestrictedInSgsnDueToUnsupportedFeature", HFILL }},
- { &hf_gsm_map_networkAccessMode,
- { "networkAccessMode", "gsm_map.networkAccessMode",
- FT_UINT32, BASE_DEC, VALS(T_networkAccessMode_vals), 0,
- "InsertSubscriberDataArg/networkAccessMode", HFILL }},
- { &hf_gsm_map_lsaInformation,
- { "lsaInformation", "gsm_map.lsaInformation",
+ "gsm_map.ExtensibleSystemFailureParam", HFILL }},
+ { &hf_gsm_map_additionalNetworkResource,
+ { "additionalNetworkResource", "gsm_map.additionalNetworkResource",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0,
+ "gsm_map.AdditionalNetworkResource", HFILL }},
+ { &hf_gsm_map_shapeOfLocationEstimateNotSupported,
+ { "shapeOfLocationEstimateNotSupported", "gsm_map.shapeOfLocationEstimateNotSupported",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lsaInformation", HFILL }},
- { &hf_gsm_map_lsaOnlyAccessIndicator,
- { "lsaOnlyAccessIndicator", "gsm_map.lsaOnlyAccessIndicator",
- FT_UINT32, BASE_DEC, VALS(T_lsaOnlyAccessIndicator_vals), 0,
- "InsertSubscriberDataArg/lsaInformation/lsaOnlyAccessIndicator", HFILL }},
- { &hf_gsm_map_lsaDataList,
- { "lsaDataList", "gsm_map.lsaDataList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/lsaInformation/lsaDataList", HFILL }},
- { &hf_gsm_map_lsaDataList_item,
- { "Item", "gsm_map.lsaDataList_item",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_neededLcsCapabilityNotSupportedInServingNode,
+ { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.neededLcsCapabilityNotSupportedInServingNode",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item", HFILL }},
- { &hf_gsm_map_lsaIdentity,
- { "lsaIdentity", "gsm_map.lsaIdentity",
- FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaIdentity", HFILL }},
- { &hf_gsm_map_lsaAttributes,
- { "lsaAttributes", "gsm_map.lsaAttributes",
- FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaAttributes", HFILL }},
- { &hf_gsm_map_lsaActiveModeIndicator,
- { "lsaActiveModeIndicator", "gsm_map.lsaActiveModeIndicator",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_unknownSubscriberDiagnostic,
+ { "unknownSubscriberDiagnostic", "gsm_map.unknownSubscriberDiagnostic",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_UnknownSubscriberDiagnostic_vals), 0,
+ "gsm_map.UnknownSubscriberDiagnostic", HFILL }},
+ { &hf_gsm_map_roamingNotAllowedCause,
+ { "roamingNotAllowedCause", "gsm_map.roamingNotAllowedCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_RoamingNotAllowedCause_vals), 0,
+ "gsm_map.RoamingNotAllowedCause", HFILL }},
+ { &hf_gsm_map_additionalRoamingNotAllowedCause,
+ { "additionalRoamingNotAllowedCause", "gsm_map.additionalRoamingNotAllowedCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalRoamingNotAllowedCause_vals), 0,
+ "gsm_map.AdditionalRoamingNotAllowedCause", HFILL }},
+ { &hf_gsm_map_absentSubscriberReason,
+ { "absentSubscriberReason", "gsm_map.absentSubscriberReason",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_AbsentSubscriberReason_vals), 0,
+ "gsm_map.AbsentSubscriberReason", HFILL }},
+ { &hf_gsm_map_ccbs_Busy,
+ { "ccbs-Busy", "gsm_map.ccbs_Busy",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lsaInformation/lsaDataList/_item/lsaActiveModeIndicator", HFILL }},
- { &hf_gsm_map_lmu_Indicator,
- { "lmu-Indicator", "gsm_map.lmu_Indicator",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_gprsConnectionSuspended,
+ { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lmu-Indicator", HFILL }},
- { &hf_gsm_map_lcsInformation,
- { "lcsInformation", "gsm_map.lcsInformation",
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_callBarringCause,
+ { "callBarringCause", "gsm_map.callBarringCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CallBarringCause_vals), 0,
+ "gsm_map.CallBarringCause", HFILL }},
+ { &hf_gsm_map_extensibleCallBarredParam,
+ { "extensibleCallBarredParam", "gsm_map.extensibleCallBarredParam",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation", HFILL }},
- { &hf_gsm_map_gmlc_List,
- { "gmlc-List", "gsm_map.gmlc_List",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/gmlc-List", HFILL }},
- { &hf_gsm_map_gmlc_List_item,
- { "Item", "gsm_map.gmlc_List_item",
+ "gsm_map.ExtensibleCallBarredParam", HFILL }},
+ { &hf_gsm_map_unauthorisedMessageOriginator,
+ { "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "gsm_map.NULL", HFILL }},
+ { &hf_gsm_map_cug_RejectCause,
+ { "cug-RejectCause", "gsm_map.cug_RejectCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_CUG_RejectCause_vals), 0,
+ "gsm_map.CUG_RejectCause", HFILL }},
+ { &hf_gsm_map_sm_EnumeratedDeliveryFailureCause,
+ { "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_SM_EnumeratedDeliveryFailureCause_vals), 0,
+ "gsm_map.SM_EnumeratedDeliveryFailureCause", HFILL }},
+ { &hf_gsm_map_diagnosticInfo,
+ { "diagnosticInfo", "gsm_map.diagnosticInfo",
FT_BYTES, BASE_HEX, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/gmlc-List/_item", HFILL }},
- { &hf_gsm_map_lcs_PrivacyExceptionList,
- { "lcs-PrivacyExceptionList", "gsm_map.lcs_PrivacyExceptionList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList", HFILL }},
- { &hf_gsm_map_lcs_PrivacyExceptionList_item,
- { "Item", "gsm_map.lcs_PrivacyExceptionList_item",
+ "gsm_map.SignalInfo", HFILL }},
+ { &hf_gsm_map_unauthorizedLCSClient_Diagnostic,
+ { "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_UnauthorizedLCSClient_Diagnostic_vals), 0,
+ "gsm_map.UnauthorizedLCSClient_Diagnostic", HFILL }},
+ { &hf_gsm_map_positionMethodFailure_Diagnostic,
+ { "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_PositionMethodFailure_Diagnostic_vals), 0,
+ "gsm_map.PositionMethodFailure_Diagnostic", HFILL }},
+ { &hf_gsm_map_pcsExtensions,
+ { "pcsExtensions", "gsm_map.pcsExtensions",
FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item", HFILL }},
- { &hf_gsm_map_notificationToMSUser,
- { "notificationToMSUser", "gsm_map.notificationToMSUser",
- FT_UINT32, BASE_DEC, VALS(NotificationToMSUser_vals), 0,
+ "gsm_map.PcsExtensions", HFILL }},
+ { &hf_gsm_map_SupportedCamelPhases_phase1,
+ { "phase1", "gsm_map.phase1",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_externalClientList,
- { "externalClientList", "gsm_map.externalClientList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList", HFILL }},
- { &hf_gsm_map_externalClientList_item,
- { "Item", "gsm_map.externalClientList_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item", HFILL }},
- { &hf_gsm_map_clientIdentity,
- { "clientIdentity", "gsm_map.clientIdentity",
- FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/clientIdentity", HFILL }},
- { &hf_gsm_map_externalAddress,
- { "externalAddress", "gsm_map.externalAddress",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SupportedCamelPhases_phase2,
+ { "phase2", "gsm_map.phase2",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_gmlc_Restriction,
- { "gmlc-Restriction", "gsm_map.gmlc_Restriction",
- FT_UINT32, BASE_DEC, VALS(T_gmlc_Restriction_vals), 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/externalClientList/_item/gmlc-Restriction", HFILL }},
- { &hf_gsm_map_plmnClientList,
- { "plmnClientList", "gsm_map.plmnClientList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList", HFILL }},
- { &hf_gsm_map_plmnClientList_item,
- { "Item", "gsm_map.plmnClientList_item",
- FT_UINT32, BASE_DEC, VALS(T_plmnClientList_item_vals), 0,
- "InsertSubscriberDataArg/lcsInformation/lcs-PrivacyExceptionList/_item/plmnClientList/_item", HFILL }},
- { &hf_gsm_map_molr_List,
- { "molr-List", "gsm_map.molr_List",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/molr-List", HFILL }},
- { &hf_gsm_map_molr_List_item,
- { "Item", "gsm_map.molr_List_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "InsertSubscriberDataArg/lcsInformation/molr-List/_item", HFILL }},
- { &hf_gsm_map_ss_List,
- { "ss-List", "gsm_map.ss_List",
- FT_UINT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_SupportedCamelPhases_phase3,
+ { "phase3", "gsm_map.phase3",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_ss_List_item,
- { "Item", "gsm_map.ss_List_item",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SupportedCamelPhases_phase4,
+ { "phase4", "gsm_map.phase4",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_regionalSubscriptionResponse,
- { "regionalSubscriptionResponse", "gsm_map.regionalSubscriptionResponse",
- FT_UINT32, BASE_DEC, VALS(RegionalSubscriptionResponse_vals), 0,
+ { &hf_gsm_map_SupportedRAT_Types_utran,
+ { "utran", "gsm_map.utran",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_callBarringFeatureList,
- { "callBarringFeatureList", "gsm_map.callBarringFeatureList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "CallBarringInfo/callBarringFeatureList", HFILL }},
- { &hf_gsm_map_callBarringFeatureList_item,
- { "Item", "gsm_map.callBarringFeatureList_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "CallBarringInfo/callBarringFeatureList/_item", HFILL }},
- { &hf_gsm_map_forwardedToNumber,
- { "forwardedToNumber", "gsm_map.forwardedToNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SupportedRAT_Types_geran,
+ { "geran", "gsm_map.geran",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1,
+ { "lcsCapabilitySet1", "gsm_map.lcsCapabilitySet1",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2,
+ { "lcsCapabilitySet2", "gsm_map.lcsCapabilitySet2",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet3,
+ { "lcsCapabilitySet3", "gsm_map.lcsCapabilitySet3",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet4,
+ { "lcsCapabilitySet4", "gsm_map.lcsCapabilitySet4",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_RequestedEquipmentInfo_equipmentStatus,
+ { "equipmentStatus", "gsm_map.equipmentStatus",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_RequestedEquipmentInfo_bmuef,
+ { "bmuef", "gsm_map.bmuef",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_allOG_CallsBarred,
+ { "allOG-CallsBarred", "gsm_map.allOG-CallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred,
+ { "internationalOGCallsBarred", "gsm_map.internationalOGCallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred,
+ { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.internationalOGCallsNotToHPLMN-CountryBarred",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_interzonalOGCallsBarred,
+ { "interzonalOGCallsBarred", "gsm_map.interzonalOGCallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred,
+ { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.interzonalOGCallsNotToHPLMN-CountryBarred",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred,
+ { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_premiumRateInformationOGCallsBarred,
+ { "premiumRateInformationOGCallsBarred", "gsm_map.premiumRateInformationOGCallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_premiumRateEntertainementOGCallsBarred,
+ { "premiumRateEntertainementOGCallsBarred", "gsm_map.premiumRateEntertainementOGCallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_ss_AccessBarred,
+ { "ss-AccessBarred", "gsm_map.ss-AccessBarred",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_allECT_Barred,
+ { "allECT-Barred", "gsm_map.allECT-Barred",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_chargeableECT_Barred,
+ { "chargeableECT-Barred", "gsm_map.chargeableECT-Barred",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_internationalECT_Barred,
+ { "internationalECT-Barred", "gsm_map.internationalECT-Barred",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_interzonalECT_Barred,
+ { "interzonalECT-Barred", "gsm_map.interzonalECT-Barred",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_doublyChargeableECT_Barred,
+ { "doublyChargeableECT-Barred", "gsm_map.doublyChargeableECT-Barred",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_multipleECT_Barred,
+ { "multipleECT-Barred", "gsm_map.multipleECT-Barred",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_allPacketOrientedServicesBarred,
+ { "allPacketOrientedServicesBarred", "gsm_map.allPacketOrientedServicesBarred",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred,
+ { "roamerAccessToHPLMN-AP-Barred", "gsm_map.roamerAccessToHPLMN-AP-Barred",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred,
+ { "roamerAccessToVPLMN-AP-Barred", "gsm_map.roamerAccessToVPLMN-AP-Barred",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred,
+ { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.roamingOutsidePLMNOG-CallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_allIC_CallsBarred,
+ { "allIC-CallsBarred", "gsm_map.allIC-CallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred,
+ { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.roamingOutsidePLMNIC-CallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred,
+ { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.roamingOutsidePLMNICountryIC-CallsBarred",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_Barred,
+ { "roamingOutsidePLMN-Barred", "gsm_map.roamingOutsidePLMN-Barred",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_CountryBarred,
+ { "roamingOutsidePLMN-CountryBarred", "gsm_map.roamingOutsidePLMN-CountryBarred",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_registrationAllCF_Barred,
+ { "registrationAllCF-Barred", "gsm_map.registrationAllCF-Barred",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_registrationCFNotToHPLMN_Barred,
+ { "registrationCFNotToHPLMN-Barred", "gsm_map.registrationCFNotToHPLMN-Barred",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_ODB_GeneralData_registrationInterzonalCF_Barred,
+ { "registrationInterzonalCF-Barred", "gsm_map.registrationInterzonalCF-Barred",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_forwardedToSubaddress,
- { "forwardedToSubaddress", "gsm_map.forwardedToSubaddress",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred,
+ { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.registrationInterzonalCFNotToHPLMN-Barred",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_forwardingOptions,
- { "forwardingOptions", "gsm_map.forwardingOptions",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_ODB_GeneralData_registrationInternationalCF_Barred,
+ { "registrationInternationalCF-Barred", "gsm_map.registrationInternationalCF-Barred",
+ FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_noReplyConditionTime,
- { "noReplyConditionTime", "gsm_map.noReplyConditionTime",
- FT_INT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1,
+ { "plmn-SpecificBarringType1", "gsm_map.plmn-SpecificBarringType1",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_matchType,
- { "matchType", "gsm_map.matchType",
- FT_UINT32, BASE_DEC, VALS(MatchType_vals), 0,
- "DestinationNumberCriteria/matchType", HFILL }},
- { &hf_gsm_map_destinationNumberList,
- { "destinationNumberList", "gsm_map.destinationNumberList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DestinationNumberCriteria/destinationNumberList", HFILL }},
- { &hf_gsm_map_destinationNumberList_item,
- { "Item", "gsm_map.destinationNumberList_item",
- FT_BYTES, BASE_HEX, NULL, 0,
- "DestinationNumberCriteria/destinationNumberList/_item", HFILL }},
- { &hf_gsm_map_destinationNumberLengthList,
- { "destinationNumberLengthList", "gsm_map.destinationNumberLengthList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DestinationNumberCriteria/destinationNumberLengthList", HFILL }},
- { &hf_gsm_map_destinationNumberLengthList_item,
- { "Item", "gsm_map.destinationNumberLengthList_item",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DestinationNumberCriteria/destinationNumberLengthList/_item", HFILL }},
- { &hf_gsm_map_forwardingFeatureList,
- { "forwardingFeatureList", "gsm_map.forwardingFeatureList",
- FT_UINT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2,
+ { "plmn-SpecificBarringType2", "gsm_map.plmn-SpecificBarringType2",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_forwardingFeatureList_item,
- { "Item", "gsm_map.forwardingFeatureList_item",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType3,
+ { "plmn-SpecificBarringType3", "gsm_map.plmn-SpecificBarringType3",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_naea_PreferredCIC,
- { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Naea-PreferredCI/naea-PreferredCIC", HFILL }},
- { &hf_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
- { "Item", "gsm_map.O_BcsmCamelTDP_CriteriaList_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "O-BcsmCamelTDP-CriteriaList/_item", HFILL }},
- { &hf_gsm_map_o_BcsmTriggerDetectionPoint,
- { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint",
- FT_UINT32, BASE_DEC, VALS(BcsmTriggerDetectionPoint_vals), 0,
- "O-BcsmCamelTDP-CriteriaList/_item/o-BcsmTriggerDetectionPoint", HFILL }},
- { &hf_gsm_map_destinationNumberCriteria,
- { "destinationNumberCriteria", "gsm_map.destinationNumberCriteria",
- FT_NONE, BASE_NONE, NULL, 0,
- "O-BcsmCamelTDP-CriteriaList/_item/destinationNumberCriteria", HFILL }},
- { &hf_gsm_map_basicServiceCriteria,
- { "basicServiceCriteria", "gsm_map.basicServiceCriteria",
- FT_UINT32, BASE_DEC, NULL, 0,
- "O-BcsmCamelTDP-CriteriaList/_item/basicServiceCriteria", HFILL }},
- { &hf_gsm_map_callTypeCriteria,
- { "callTypeCriteria", "gsm_map.callTypeCriteria",
- FT_UINT32, BASE_DEC, VALS(CallTypeCriteria_vals), 0,
- "O-BcsmCamelTDP-CriteriaList/_item/callTypeCriteria", HFILL }},
- { &hf_gsm_map_cliRestrictionOption,
- { "cliRestrictionOption", "gsm_map.cliRestrictionOption",
- FT_UINT32, BASE_DEC, VALS(CliRestrictionOption_vals), 0,
+ { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType4,
+ { "plmn-SpecificBarringType4", "gsm_map.plmn-SpecificBarringType4",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_overrideCategory,
- { "overrideCategory", "gsm_map.overrideCategory",
- FT_UINT32, BASE_DEC, VALS(OverrideCategory_vals), 0,
- "Ss-SubscriptionOption/overrideCategory", HFILL }},
- { &hf_gsm_map_basicServiceList,
- { "basicServiceList", "gsm_map.basicServiceList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DeleteSubscriberDataArg/basicServiceList", HFILL }},
- { &hf_gsm_map_regionalSubscriptionIdentifier,
- { "regionalSubscriptionIdentifier", "gsm_map.regionalSubscriptionIdentifier",
- FT_BYTES, BASE_HEX, NULL, 0,
- "DeleteSubscriberDataArg/regionalSubscriptionIdentifier", HFILL }},
- { &hf_gsm_map_vbsGroupIndication,
- { "vbsGroupIndication", "gsm_map.vbsGroupIndication",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/vbsGroupIndication", HFILL }},
- { &hf_gsm_map_vgcsGroupIndication,
- { "vgcsGroupIndication", "gsm_map.vgcsGroupIndication",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/vgcsGroupIndication", HFILL }},
- { &hf_gsm_map_camelSubscriptionInfoWithdraw,
- { "camelSubscriptionInfoWithdraw", "gsm_map.camelSubscriptionInfoWithdraw",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/camelSubscriptionInfoWithdraw", HFILL }},
- { &hf_gsm_map_gprsSubscriptionDataWithdraw,
- { "gprsSubscriptionDataWithdraw", "gsm_map.gprsSubscriptionDataWithdraw",
- FT_UINT32, BASE_DEC, VALS(T_gprsSubscriptionDataWithdraw_vals), 0,
- "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw", HFILL }},
- { &hf_gsm_map_allGPRSData,
- { "allGPRSData", "gsm_map.allGPRSData",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/allGPRSData", HFILL }},
- { &hf_gsm_map_contextIdList,
- { "contextIdList", "gsm_map.contextIdList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList", HFILL }},
- { &hf_gsm_map_contextIdList_item,
- { "Item", "gsm_map.contextIdList_item",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DeleteSubscriberDataArg/gprsSubscriptionDataWithdraw/contextIdList/_item", HFILL }},
- { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature,
- { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsuppportedFeature",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/roamingRestrictedInSgsnDueToUnsuppportedFeature", HFILL }},
- { &hf_gsm_map_lsaInformationWithdraw,
- { "lsaInformationWithdraw", "gsm_map.lsaInformationWithdraw",
- FT_UINT32, BASE_DEC, VALS(T_lsaInformationWithdraw_vals), 0,
- "DeleteSubscriberDataArg/lsaInformationWithdraw", HFILL }},
- { &hf_gsm_map_allLSAData,
- { "allLSAData", "gsm_map.allLSAData",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/lsaInformationWithdraw/allLSAData", HFILL }},
- { &hf_gsm_map_lsaIdentityList,
- { "lsaIdentityList", "gsm_map.lsaIdentityList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList", HFILL }},
- { &hf_gsm_map_lsaIdentityList_item,
- { "Item", "gsm_map.lsaIdentityList_item",
- FT_BYTES, BASE_HEX, NULL, 0,
- "DeleteSubscriberDataArg/lsaInformationWithdraw/lsaIdentityList/_item", HFILL }},
- { &hf_gsm_map_gmlc_ListWithdraw,
- { "gmlc-ListWithdraw", "gsm_map.gmlc_ListWithdraw",
- FT_NONE, BASE_NONE, NULL, 0,
- "DeleteSubscriberDataArg/gmlc-ListWithdraw", HFILL }},
- { &hf_gsm_map_hlr_List,
- { "hlr-List", "gsm_map.hlr_List",
- FT_UINT32, BASE_DEC, NULL, 0,
- "ResetArg/hlr-List", HFILL }},
- { &hf_gsm_map_hlr_List_item,
- { "Item", "gsm_map.hlr_List_item",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ResetArg/hlr-List/_item", HFILL }},
- { &hf_gsm_map_msNotReachable,
- { "msNotReachable", "gsm_map.msNotReachable",
- FT_NONE, BASE_NONE, NULL, 0,
- "RestoreDataRes/msNotReachable", HFILL }},
- { &hf_gsm_map_traceReference,
- { "traceReference", "gsm_map.traceReference",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_AccessRestrictionData_utranNotAllowed,
+ { "utranNotAllowed", "gsm_map.utranNotAllowed",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_traceType,
- { "traceType", "gsm_map.traceType",
- FT_UINT32, BASE_DEC, NULL, 0,
- "ActivateTraceModeArg/traceType", HFILL }},
- { &hf_gsm_map_omc_Id,
- { "omc-Id", "gsm_map.omc_Id",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ActivateTraceModeArg/omc-Id", HFILL }},
- { &hf_gsm_map_cug_CheckInfo,
- { "cug-CheckInfo", "gsm_map.cug_CheckInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_AccessRestrictionData_geranNotAllowed,
+ { "geranNotAllowed", "gsm_map.geranNotAllowed",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_numberOfForwarding,
- { "numberOfForwarding", "gsm_map.numberOfForwarding",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendRoutingInfoArg/numberOfForwarding", HFILL }},
- { &hf_gsm_map_interrogationType,
- { "interrogationType", "gsm_map.interrogationType",
- FT_UINT32, BASE_DEC, VALS(T_interrogationType_vals), 0,
- "SendRoutingInfoArg/interrogationType", HFILL }},
- { &hf_gsm_map_or_Interrogation,
- { "or-Interrogation", "gsm_map.or_Interrogation",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_o_csi,
+ { "o-csi", "gsm_map.o-csi",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_or_Capability,
- { "or-Capability", "gsm_map.or_Capability",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendRoutingInfoArg/or-Capability", HFILL }},
- { &hf_gsm_map_gmsc_Address,
- { "gmsc-Address", "gsm_map.gmsc_Address",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_ss_csi,
+ { "ss-csi", "gsm_map.ss-csi",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_callReferenceNumber,
- { "callReferenceNumber", "gsm_map.callReferenceNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_tif_csi,
+ { "tif-csi", "gsm_map.tif-csi",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_forwardingReason,
- { "forwardingReason", "gsm_map.forwardingReason",
- FT_UINT32, BASE_DEC, VALS(T_forwardingReason_vals), 0,
- "SendRoutingInfoArg/forwardingReason", HFILL }},
- { &hf_gsm_map_basicServiceGroup,
- { "basicServiceGroup", "gsm_map.basicServiceGroup",
- FT_UINT32, BASE_DEC, VALS(BasicService_vals), 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_d_csi,
+ { "d-csi", "gsm_map.d-csi",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_networkSignalInfo,
- { "networkSignalInfo", "gsm_map.networkSignalInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_vt_csi,
+ { "vt-csi", "gsm_map.vt-csi",
+ FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_camelInfo,
- { "camelInfo", "gsm_map.camelInfo",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoArg/camelInfo", HFILL }},
- { &hf_gsm_map_suppress_T_CSI,
- { "suppress-T-CSI", "gsm_map.suppress_T_CSI",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoArg/camelInfo/suppress-T-CSI", HFILL }},
- { &hf_gsm_map_suppressionOfAnnouncement,
- { "suppressionOfAnnouncement", "gsm_map.suppressionOfAnnouncement",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_mo_sms_csi,
+ { "mo-sms-csi", "gsm_map.mo-sms-csi",
+ FT_BOOLEAN, 8, NULL, 0x04,
"", HFILL }},
- { &hf_gsm_map_alertingPattern,
- { "alertingPattern", "gsm_map.alertingPattern",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_m_csi,
+ { "m-csi", "gsm_map.m-csi",
+ FT_BOOLEAN, 8, NULL, 0x02,
"", HFILL }},
- { &hf_gsm_map_ccbs_Call,
- { "ccbs-Call", "gsm_map.ccbs_Call",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_gprs_csi,
+ { "gprs-csi", "gsm_map.gprs-csi",
+ FT_BOOLEAN, 8, NULL, 0x01,
"", HFILL }},
- { &hf_gsm_map_supportedCCBS_Phase,
- { "supportedCCBS-Phase", "gsm_map.supportedCCBS_Phase",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendRoutingInfoArg/supportedCCBS-Phase", HFILL }},
- { &hf_gsm_map_additionalSignalInfo,
- { "additionalSignalInfo", "gsm_map.additionalSignalInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_t_csi,
+ { "t-csi", "gsm_map.t-csi",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_extendedRoutingInfo,
- { "extendedRoutingInfo", "gsm_map.extendedRoutingInfo",
- FT_UINT32, BASE_DEC, VALS(T_extendedRoutingInfo_vals), 0,
- "SendRoutingInfoRes/extendedRoutingInfo", HFILL }},
- { &hf_gsm_map_routingInfo,
- { "routingInfo", "gsm_map.routingInfo",
- FT_UINT32, BASE_DEC, VALS(T_routingInfo_vals), 0,
- "SendRoutingInfoRes/extendedRoutingInfo/routingInfo", HFILL }},
- { &hf_gsm_map_roamingNumber,
- { "roamingNumber", "gsm_map.roamingNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_mt_sms_csi,
+ { "mt-sms-csi", "gsm_map.mt-sms-csi",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_forwardingData,
- { "forwardingData", "gsm_map.forwardingData",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_mg_csi,
+ { "mg-csi", "gsm_map.mg-csi",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_camelRoutingInfo,
- { "camelRoutingInfo", "gsm_map.camelRoutingInfo",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo", HFILL }},
- { &hf_gsm_map_gmscCamelSubscriptionInfo,
- { "gmscCamelSubscriptionInfo", "gsm_map.gmscCamelSubscriptionInfo",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo", HFILL }},
- { &hf_gsm_map_t_CSI,
- { "t-CSI", "gsm_map.t_CSI",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo/t-CSI", HFILL }},
- { &hf_gsm_map_t_BcsmCamelTDPDataList,
- { "t-BcsmCamelTDPDataList", "gsm_map.t_BcsmCamelTDPDataList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendRoutingInfoRes/extendedRoutingInfo/camelRoutingInfo/gmscCamelSubscriptionInfo/t-CSI/t-BcsmCamelTDPDataList", HFILL }},
- { &hf_gsm_map_cugSubscriptionFlag,
- { "cugSubscriptionFlag", "gsm_map.cugSubscriptionFlag",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/cugSubscriptionFlag", HFILL }},
- { &hf_gsm_map_subscriberInfo,
- { "subscriberInfo", "gsm_map.subscriberInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_o_IM_CSI,
+ { "o-IM-CSI", "gsm_map.o-IM-CSI",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_forwardingInterrogationRequired,
- { "forwardingInterrogationRequired", "gsm_map.forwardingInterrogationRequired",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/forwardingInterrogationRequired", HFILL }},
- { &hf_gsm_map_vmsc_Address,
- { "vmsc-Address", "gsm_map.vmsc_Address",
- FT_BYTES, BASE_HEX, NULL, 0,
- "SendRoutingInfoRes/vmsc-Address", HFILL }},
- { &hf_gsm_map_ccbs_Indicators,
- { "ccbs-Indicators", "gsm_map.ccbs_Indicators",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/ccbs-Indicators", HFILL }},
- { &hf_gsm_map_ccbs_Possible,
- { "ccbs-Possible", "gsm_map.ccbs_Possible",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_d_IM_CSI,
+ { "d-IM-CSI", "gsm_map.d-IM-CSI",
+ FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_keepCCBS_CallIndicator,
- { "keepCCBS-CallIndicator", "gsm_map.keepCCBS_CallIndicator",
- FT_NONE, BASE_NONE, NULL, 0,
- "SendRoutingInfoRes/ccbs-Indicators/keepCCBS-CallIndicator", HFILL }},
- { &hf_gsm_map_numberPortabilityStatus,
- { "numberPortabilityStatus", "gsm_map.numberPortabilityStatus",
- FT_UINT32, BASE_DEC, VALS(T_numberPortabilityStatus_vals), 0,
- "SendRoutingInfoRes/numberPortabilityStatus", HFILL }},
- { &hf_gsm_map_assumedIdle,
- { "assumedIdle", "gsm_map.assumedIdle",
- FT_NONE, BASE_NONE, NULL, 0,
- "SubscriberState/assumedIdle", HFILL }},
- { &hf_gsm_map_camelBusy,
- { "camelBusy", "gsm_map.camelBusy",
- FT_NONE, BASE_NONE, NULL, 0,
- "SubscriberState/camelBusy", HFILL }},
- { &hf_gsm_map_notProvidedFromVLR,
- { "notProvidedFromVLR", "gsm_map.notProvidedFromVLR",
- FT_NONE, BASE_NONE, NULL, 0,
- "SubscriberState/notProvidedFromVLR", HFILL }},
- { &hf_gsm_map_ageOfLocationInformation,
- { "ageOfLocationInformation", "gsm_map.ageOfLocationInformation",
- FT_UINT32, BASE_DEC, NULL, 0,
- "LocationInformation/ageOfLocationInformation", HFILL }},
- { &hf_gsm_map_geographicalInformation,
- { "geographicalInformation", "gsm_map.geographicalInformation",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LocationInformation/geographicalInformation", HFILL }},
- { &hf_gsm_map_vlr_number,
- { "vlr-number", "gsm_map.vlr_number",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LocationInformation/vlr-number", HFILL }},
- { &hf_gsm_map_locationNumber,
- { "locationNumber", "gsm_map.locationNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LocationInformation/locationNumber", HFILL }},
- { &hf_gsm_map_cellIdOrLAI,
- { "cellIdOrLAI", "gsm_map.cellIdOrLAI",
- FT_UINT32, BASE_DEC, VALS(T_cellIdOrLAI_vals), 0,
- "LocationInformation/cellIdOrLAI", HFILL }},
- { &hf_gsm_map_cellIdFixedLength,
- { "cellIdFixedLength", "gsm_map.cellIdFixedLength",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LocationInformation/cellIdOrLAI/cellIdFixedLength", HFILL }},
- { &hf_gsm_map_laiFixedLength,
- { "laiFixedLength", "gsm_map.laiFixedLength",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LocationInformation/cellIdOrLAI/laiFixedLength", HFILL }},
- { &hf_gsm_map_locationInformation,
- { "locationInformation", "gsm_map.locationInformation",
- FT_NONE, BASE_NONE, NULL, 0,
- "SubscriberInfo/locationInformation", HFILL }},
- { &hf_gsm_map_subscriberState,
- { "subscriberState", "gsm_map.subscriberState",
- FT_UINT32, BASE_DEC, VALS(SubscriberState_vals), 0,
- "SubscriberInfo/subscriberState", HFILL }},
- { &hf_gsm_map_ext_ProtocolId,
- { "ext-ProtocolId", "gsm_map.ext_ProtocolId",
- FT_UINT32, BASE_DEC, VALS(T_ext_ProtocolId_vals), 0,
- "AdditionalSignalInfo/ext-ProtocolId", HFILL }},
- { &hf_gsm_map_cug_OutgoingAccess,
- { "cug-OutgoingAccess", "gsm_map.cug_OutgoingAccess",
- FT_NONE, BASE_NONE, NULL, 0,
- "Cug-CheckInfo/cug-OutgoingAccess", HFILL }},
- { &hf_gsm_map_gsm_BearerCapability,
- { "gsm-BearerCapability", "gsm_map.gsm_BearerCapability",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SpecificCSI_Withdraw_vt_IM_CSI,
+ { "vt-IM-CSI", "gsm_map.vt-IM-CSI",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_AdditionalSubscriptions_privilegedUplinkRequest,
+ { "privilegedUplinkRequest", "gsm_map.privilegedUplinkRequest",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_AdditionalSubscriptions_emergencyUplinkRequest,
+ { "emergencyUplinkRequest", "gsm_map.emergencyUplinkRequest",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_AdditionalSubscriptions_emergencyReset,
+ { "emergencyReset", "gsm_map.emergencyReset",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_supportedCamelPhasesInGMSC,
- { "supportedCamelPhasesInGMSC", "gsm_map.supportedCamelPhasesInGMSC",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideRoamingNumberArg/supportedCamelPhasesInGMSC", HFILL }},
- { &hf_gsm_map_orNotSupportedInGMSC,
- { "orNotSupportedInGMSC", "gsm_map.orNotSupportedInGMSC",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideRoamingNumberArg/orNotSupportedInGMSC", HFILL }},
- { &hf_gsm_map_uu_Data,
- { "uu-Data", "gsm_map.uu_Data",
- FT_NONE, BASE_NONE, NULL, 0,
- "ResumeCallHandlingArg/uu-Data", HFILL }},
- { &hf_gsm_map_uuIndicator,
- { "uuIndicator", "gsm_map.uuIndicator",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ResumeCallHandlingArg/uu-Data/uuIndicator", HFILL }},
- { &hf_gsm_map_uui,
- { "uui", "gsm_map.uui",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ResumeCallHandlingArg/uu-Data/uui", HFILL }},
- { &hf_gsm_map_uusCFInteraction,
- { "uusCFInteraction", "gsm_map.uusCFInteraction",
- FT_NONE, BASE_NONE, NULL, 0,
- "ResumeCallHandlingArg/uu-Data/uusCFInteraction", HFILL }},
- { &hf_gsm_map_allInformationSent,
- { "allInformationSent", "gsm_map.allInformationSent",
- FT_NONE, BASE_NONE, NULL, 0,
- "ResumeCallHandlingArg/allInformationSent", HFILL }},
- { &hf_gsm_map_isdn_BearerCapability,
- { "isdn-BearerCapability", "gsm_map.isdn_BearerCapability",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSIWFSNumberArg/isdn-BearerCapability", HFILL }},
- { &hf_gsm_map_call_Direction,
- { "call-Direction", "gsm_map.call_Direction",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSIWFSNumberArg/call-Direction", HFILL }},
- { &hf_gsm_map_b_Subscriber_Address,
- { "b-Subscriber-Address", "gsm_map.b_Subscriber_Address",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSIWFSNumberArg/b-Subscriber-Address", HFILL }},
- { &hf_gsm_map_chosenChannel,
- { "chosenChannel", "gsm_map.chosenChannel",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_TraceNE_TypeList_msc_s,
+ { "msc-s", "gsm_map.msc-s",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_lowerLayerCompatibility,
- { "lowerLayerCompatibility", "gsm_map.lowerLayerCompatibility",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSIWFSNumberArg/lowerLayerCompatibility", HFILL }},
- { &hf_gsm_map_highLayerCompatibility,
- { "highLayerCompatibility", "gsm_map.highLayerCompatibility",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSIWFSNumberArg/highLayerCompatibility", HFILL }},
- { &hf_gsm_map_sIWFSNumber,
- { "sIWFSNumber", "gsm_map.sIWFSNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSIWFSNumberRes/sIWFSNumber", HFILL }},
- { &hf_gsm_map_channelType,
- { "channelType", "gsm_map.channelType",
- FT_NONE, BASE_NONE, NULL, 0,
- "SIWFSSignallingModifyArg/channelType", HFILL }},
- { &hf_gsm_map_ccbs_Monitoring,
- { "ccbs-Monitoring", "gsm_map.ccbs_Monitoring",
- FT_UINT32, BASE_DEC, VALS(Ccbs_Monitoring_vals), 0,
- "SetReportingStateArg/ccbs-Monitoring", HFILL }},
- { &hf_gsm_map_ccbs_SubscriberStatus,
- { "ccbs-SubscriberStatus", "gsm_map.ccbs_SubscriberStatus",
- FT_UINT32, BASE_DEC, VALS(Ccbs_SubscriberStatus_vals), 0,
+ { &hf_gsm_map_TraceNE_TypeList_mgw,
+ { "mgw", "gsm_map.mgw",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_eventReportData,
- { "eventReportData", "gsm_map.eventReportData",
- FT_NONE, BASE_NONE, NULL, 0,
- "StatusReportArg/eventReportData", HFILL }},
- { &hf_gsm_map_callReportdata,
- { "callReportdata", "gsm_map.callReportdata",
- FT_NONE, BASE_NONE, NULL, 0,
- "StatusReportArg/callReportdata", HFILL }},
- { &hf_gsm_map_monitoringMode,
- { "monitoringMode", "gsm_map.monitoringMode",
- FT_UINT32, BASE_DEC, VALS(MonitoringMode_vals), 0,
- "StatusReportArg/callReportdata/monitoringMode", HFILL }},
- { &hf_gsm_map_callOutcome,
- { "callOutcome", "gsm_map.callOutcome",
- FT_UINT32, BASE_DEC, VALS(CallOutcome_vals), 0,
- "StatusReportArg/callReportdata/callOutcome", HFILL }},
- { &hf_gsm_map_callInfo,
- { "callInfo", "gsm_map.callInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_TraceNE_TypeList_sgsn,
+ { "sgsn", "gsm_map.sgsn",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_ccbs_Feature,
- { "ccbs-Feature", "gsm_map.ccbs_Feature",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_TraceNE_TypeList_ggsn,
+ { "ggsn", "gsm_map.ggsn",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_translatedB_Number,
- { "translatedB-Number", "gsm_map.translatedB_Number",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_TraceNE_TypeList_rnc,
+ { "rnc", "gsm_map.rnc",
+ FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_replaceB_Number,
- { "replaceB-Number", "gsm_map.replaceB_Number",
- FT_NONE, BASE_NONE, NULL, 0,
- "RemoteUserFreeArg/replaceB-Number", HFILL }},
- { &hf_gsm_map_ruf_Outcome,
- { "ruf-Outcome", "gsm_map.ruf_Outcome",
- FT_UINT32, BASE_DEC, VALS(Ruf_Outcome_vals), 0,
- "RemoteUserFreeRes/ruf-Outcome", HFILL }},
- { &hf_gsm_map_ss_Data,
- { "ss-Data", "gsm_map.ss_Data",
- FT_NONE, BASE_NONE, NULL, 0,
- "Ss-Info/ss-Data", HFILL }},
- { &hf_gsm_map_ccbs_Index,
- { "ccbs-Index", "gsm_map.ccbs_Index",
- FT_UINT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_TraceNE_TypeList_bm_sc,
+ { "bm-sc", "gsm_map.bm-sc",
+ FT_BOOLEAN, 8, NULL, 0x04,
"", HFILL }},
- { &hf_gsm_map_b_subscriberNumber,
- { "b-subscriberNumber", "gsm_map.b_subscriberNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_a,
+ { "a", "gsm_map.a",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_b_subscriberSubaddress,
- { "b-subscriberSubaddress", "gsm_map.b_subscriberSubaddress",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_iu,
+ { "iu", "gsm_map.iu",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_genericServiceInfo,
- { "genericServiceInfo", "gsm_map.genericServiceInfo",
- FT_NONE, BASE_NONE, NULL, 0,
- "InterrogateSS-Res/genericServiceInfo", HFILL }},
- { &hf_gsm_map_maximumEntitledPriority,
- { "maximumEntitledPriority", "gsm_map.maximumEntitledPriority",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InterrogateSS-Res/genericServiceInfo/maximumEntitledPriority", HFILL }},
- { &hf_gsm_map_ccbs_FeatureList,
- { "ccbs-FeatureList", "gsm_map.ccbs_FeatureList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList", HFILL }},
- { &hf_gsm_map_ccbs_FeatureList_item,
- { "Item", "gsm_map.ccbs_FeatureList_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "InterrogateSS-Res/genericServiceInfo/ccbs-FeatureList/_item", HFILL }},
- { &hf_gsm_map_ussd_DataCodingScheme,
- { "ussd-DataCodingScheme", "gsm_map.ussd_DataCodingScheme",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_mc,
+ { "mc", "gsm_map.mc",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_ussd_String,
- { "ussd-String", "gsm_map.ussd_String",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_map_g,
+ { "map-g", "gsm_map.map-g",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_ccbs_Data,
- { "ccbs-Data", "gsm_map.ccbs_Data",
- FT_NONE, BASE_NONE, NULL, 0,
- "RegisterCC-EntryArg/ccbs-Data", HFILL }},
- { &hf_gsm_map_serviceIndicator,
- { "serviceIndicator", "gsm_map.serviceIndicator",
- FT_BYTES, BASE_HEX, NULL, 0,
- "RegisterCC-EntryArg/ccbs-Data/serviceIndicator", HFILL }},
- { &hf_gsm_map_sm_RP_PRI,
- { "sm-RP-PRI", "gsm_map.sm_RP_PRI",
- FT_BOOLEAN, 8, NULL, 0,
- "RoutingInfoForSMArg/sm-RP-PRI", HFILL }},
- { &hf_gsm_map_serviceCentreAddress,
- { "serviceCentreAddress", "gsm_map.serviceCentreAddress",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_map_b,
+ { "map-b", "gsm_map.map-b",
+ FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_gprsSupportIndicator,
- { "gprsSupportIndicator", "gsm_map.gprsSupportIndicator",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_map_e,
+ { "map-e", "gsm_map.map-e",
+ FT_BOOLEAN, 8, NULL, 0x04,
"", HFILL }},
- { &hf_gsm_map_sm_RP_MTI,
- { "sm-RP-MTI", "gsm_map.sm_RP_MTI",
- FT_UINT32, BASE_DEC, NULL, 0,
- "RoutingInfoForSMArg/sm-RP-MTI", HFILL }},
- { &hf_gsm_map_sm_RP_SMEA,
- { "sm-RP-SMEA", "gsm_map.sm_RP_SMEA",
- FT_BYTES, BASE_HEX, NULL, 0,
- "RoutingInfoForSMArg/sm-RP-SMEA", HFILL }},
- { &hf_gsm_map_locationInfoWithLMSI,
- { "locationInfoWithLMSI", "gsm_map.locationInfoWithLMSI",
- FT_NONE, BASE_NONE, NULL, 0,
- "RoutingInfoForSMRes/locationInfoWithLMSI", HFILL }},
- { &hf_gsm_map_networkNode_Number,
- { "networkNode-Number", "gsm_map.networkNode_Number",
- FT_BYTES, BASE_HEX, NULL, 0,
- "RoutingInfoForSMRes/locationInfoWithLMSI/networkNode-Number", HFILL }},
- { &hf_gsm_map_gprsNodeIndicator,
- { "gprsNodeIndicator", "gsm_map.gprsNodeIndicator",
- FT_NONE, BASE_NONE, NULL, 0,
- "RoutingInfoForSMRes/locationInfoWithLMSI/gprsNodeIndicator", HFILL }},
- { &hf_gsm_map_additional_Number,
- { "additional-Number", "gsm_map.additional_Number",
- FT_UINT32, BASE_DEC, VALS(T_additional_Number_vals), 0,
- "RoutingInfoForSMRes/locationInfoWithLMSI/additional-Number", HFILL }},
- { &hf_gsm_map_sm_RP_DA,
- { "sm-RP-DA", "gsm_map.sm_RP_DA",
- FT_UINT32, BASE_DEC, VALS(Sm_RP_DA_vals), 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_map_f,
+ { "map-f", "gsm_map.map-f",
+ FT_BOOLEAN, 8, NULL, 0x02,
"", HFILL }},
- { &hf_gsm_map_sm_RP_OA,
- { "sm-RP-OA", "gsm_map.sm_RP_OA",
- FT_UINT32, BASE_DEC, VALS(Sm_RP_OA_vals), 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_cap,
+ { "cap", "gsm_map.cap",
+ FT_BOOLEAN, 8, NULL, 0x01,
"", HFILL }},
- { &hf_gsm_map_sm_RP_UI,
- { "sm-RP-UI", "gsm_map.sm_RP_UI",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_map_d,
+ { "map-d", "gsm_map.map-d",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_serviceCentreAddressOA,
- { "serviceCentreAddressOA", "gsm_map.serviceCentreAddressOA",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Sm-RP-OA/serviceCentreAddressOA", HFILL }},
- { &hf_gsm_map_noSM_RP_OA,
- { "noSM-RP-OA", "gsm_map.noSM_RP_OA",
- FT_NONE, BASE_NONE, NULL, 0,
- "Sm-RP-OA/noSM-RP-OA", HFILL }},
- { &hf_gsm_map_serviceCentreAddressDA,
- { "serviceCentreAddressDA", "gsm_map.serviceCentreAddressDA",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Sm-RP-DA/serviceCentreAddressDA", HFILL }},
- { &hf_gsm_map_noSM_RP_DA,
- { "noSM-RP-DA", "gsm_map.noSM_RP_DA",
- FT_NONE, BASE_NONE, NULL, 0,
- "Sm-RP-DA/noSM-RP-DA", HFILL }},
- { &hf_gsm_map_moreMessagesToSend,
- { "moreMessagesToSend", "gsm_map.moreMessagesToSend",
- FT_NONE, BASE_NONE, NULL, 0,
- "Mt-forwardSM-Arg/moreMessagesToSend", HFILL }},
- { &hf_gsm_map_sm_DeliveryOutcome,
- { "sm-DeliveryOutcome", "gsm_map.sm_DeliveryOutcome",
- FT_UINT32, BASE_DEC, VALS(Sm_DeliveryOutcome_vals), 0,
- "ReportSM-DeliveryStatusArg/sm-DeliveryOutcome", HFILL }},
- { &hf_gsm_map_absentSubscriberDiagnosticSM,
- { "absentSubscriberDiagnosticSM", "gsm_map.absentSubscriberDiagnosticSM",
- FT_UINT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_MSC_S_InterfaceList_map_c,
+ { "map-c", "gsm_map.map-c",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_deliveryOutcomeIndicator,
- { "deliveryOutcomeIndicator", "gsm_map.deliveryOutcomeIndicator",
- FT_NONE, BASE_NONE, NULL, 0,
- "ReportSM-DeliveryStatusArg/deliveryOutcomeIndicator", HFILL }},
- { &hf_gsm_map_additionalSM_DeliveryOutcome,
- { "additionalSM-DeliveryOutcome", "gsm_map.additionalSM_DeliveryOutcome",
- FT_UINT32, BASE_DEC, VALS(Sm_DeliveryOutcome_vals), 0,
- "ReportSM-DeliveryStatusArg/additionalSM-DeliveryOutcome", HFILL }},
- { &hf_gsm_map_additionalAbsentSubscriberDiagnosticSM,
- { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.additionalAbsentSubscriberDiagnosticSM",
- FT_UINT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_MGW_InterfaceList_mc,
+ { "mc", "gsm_map.mc",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_storedMSISDN,
- { "storedMSISDN", "gsm_map.storedMSISDN",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_MGW_InterfaceList_nb_up,
+ { "nb-up", "gsm_map.nb-up",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_mw_Status,
- { "mw-Status", "gsm_map.mw_Status",
- FT_BYTES, BASE_HEX, NULL, 0,
- "InformServiceCentreArg/mw-Status", HFILL }},
- { &hf_gsm_map_alertReason,
- { "alertReason", "gsm_map.alertReason",
- FT_UINT32, BASE_DEC, VALS(T_alertReason_vals), 0,
- "ReadyForSM-Arg/alertReason", HFILL }},
- { &hf_gsm_map_alertReasonIndicator,
- { "alertReasonIndicator", "gsm_map.alertReasonIndicator",
- FT_NONE, BASE_NONE, NULL, 0,
- "ReadyForSM-Arg/alertReasonIndicator", HFILL }},
- { &hf_gsm_map_requestedInfo,
- { "requestedInfo", "gsm_map.requestedInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_MGW_InterfaceList_iu_up,
+ { "iu-up", "gsm_map.iu-up",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_locationInformationFlag,
- { "locationInformation", "gsm_map.locationInformation",
- FT_NONE, BASE_NONE, NULL, 0,
- "RequestedInfo/locationInformation", HFILL }},
- { &hf_gsm_map_subscriberStateFlag,
- { "subscriberState", "gsm_map.subscriberState",
- FT_NONE, BASE_NONE, NULL, 0,
- "RequestedInfo/subscriberState", HFILL }},
- { &hf_gsm_map_subscriberIdentity,
- { "subscriberIdentity", "gsm_map.subscriberIdentity",
- FT_UINT32, BASE_DEC, VALS(T_subscriberIdentity_vals), 0,
- "AnyTimeInterrogationArg/subscriberIdentity", HFILL }},
- { &hf_gsm_map_ss_Event,
- { "ss-Event", "gsm_map.ss_Event",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Ss-InvocationNotificationArg/ss-Event", HFILL }},
- { &hf_gsm_map_ss_EventSpecification,
- { "ss-EventSpecification", "gsm_map.ss_EventSpecification",
- FT_UINT32, BASE_DEC, NULL, 0,
- "Ss-InvocationNotificationArg/ss-EventSpecification", HFILL }},
- { &hf_gsm_map_ss_EventSpecification_item,
- { "Item", "gsm_map.ss_EventSpecification_item",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Ss-InvocationNotificationArg/ss-EventSpecification/_item", HFILL }},
- { &hf_gsm_map_asciCallReference,
- { "asciCallReference", "gsm_map.asciCallReference",
- FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareGroupCallArg/asciCallReference", HFILL }},
- { &hf_gsm_map_codec_Info,
- { "codec-Info", "gsm_map.codec_Info",
- FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareGroupCallArg/codec-Info", HFILL }},
- { &hf_gsm_map_cipheringAlgorithm,
- { "cipheringAlgorithm", "gsm_map.cipheringAlgorithm",
- FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareGroupCallArg/cipheringAlgorithm", HFILL }},
- { &hf_gsm_map_groupKeyNumber,
- { "groupKeyNumber", "gsm_map.groupKeyNumber",
- FT_UINT32, BASE_DEC, NULL, 0,
- "PrepareGroupCallArg/groupKeyNumber", HFILL }},
- { &hf_gsm_map_groupKey,
- { "groupKey", "gsm_map.groupKey",
- FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareGroupCallArg/groupKey", HFILL }},
- { &hf_gsm_map_priority,
- { "priority", "gsm_map.priority",
- FT_UINT32, BASE_DEC, NULL, 0,
- "PrepareGroupCallArg/priority", HFILL }},
- { &hf_gsm_map_uplinkFree,
- { "uplinkFree", "gsm_map.uplinkFree",
- FT_NONE, BASE_NONE, NULL, 0,
- "PrepareGroupCallArg/uplinkFree", HFILL }},
- { &hf_gsm_map_groupCallNumber,
- { "groupCallNumber", "gsm_map.groupCallNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
- "PrepareGroupCallRes/groupCallNumber", HFILL }},
- { &hf_gsm_map_uplinkRequest,
- { "uplinkRequest", "gsm_map.uplinkRequest",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProcessGroupCallSignallingArg/uplinkRequest", HFILL }},
- { &hf_gsm_map_uplinkReleaseIndication,
- { "uplinkReleaseIndication", "gsm_map.uplinkReleaseIndication",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_SGSN_InterfaceList_gb,
+ { "gb", "gsm_map.gb",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_iu,
+ { "iu", "gsm_map.iu",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_gn,
+ { "gn", "gsm_map.gn",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_map_gr,
+ { "map-gr", "gsm_map.map-gr",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_map_gd,
+ { "map-gd", "gsm_map.map-gd",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_map_gf,
+ { "map-gf", "gsm_map.map-gf",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_gs,
+ { "gs", "gsm_map.gs",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_InterfaceList_ge,
+ { "ge", "gsm_map.ge",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_gsm_map_GGSN_InterfaceList_gn,
+ { "gn", "gsm_map.gn",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_releaseGroupCall,
- { "releaseGroupCall", "gsm_map.releaseGroupCall",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProcessGroupCallSignallingArg/releaseGroupCall", HFILL }},
- { &hf_gsm_map_uplinkRequestAck,
- { "uplinkRequestAck", "gsm_map.uplinkRequestAck",
- FT_NONE, BASE_NONE, NULL, 0,
- "ForwardGroupCallSignallingArg/uplinkRequestAck", HFILL }},
- { &hf_gsm_map_uplinkRejectCommand,
- { "uplinkRejectCommand", "gsm_map.uplinkRejectCommand",
- FT_NONE, BASE_NONE, NULL, 0,
- "ForwardGroupCallSignallingArg/uplinkRejectCommand", HFILL }},
- { &hf_gsm_map_uplinkSeizedCommand,
- { "uplinkSeizedCommand", "gsm_map.uplinkSeizedCommand",
- FT_NONE, BASE_NONE, NULL, 0,
- "ForwardGroupCallSignallingArg/uplinkSeizedCommand", HFILL }},
- { &hf_gsm_map_uplinkReleaseCommand,
- { "uplinkReleaseCommand", "gsm_map.uplinkReleaseCommand",
- FT_NONE, BASE_NONE, NULL, 0,
- "ForwardGroupCallSignallingArg/uplinkReleaseCommand", HFILL }},
- { &hf_gsm_map_sgsn_Address,
- { "sgsn-Address", "gsm_map.sgsn_Address",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_GGSN_InterfaceList_gi,
+ { "gi", "gsm_map.gi",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_sgsn_Capability,
- { "sgsn-Capability", "gsm_map.sgsn_Capability",
- FT_NONE, BASE_NONE, NULL, 0,
- "UpdateGprsLocationArg/sgsn-Capability", HFILL }},
- { &hf_gsm_map_ggsn_Address,
- { "ggsn-Address", "gsm_map.ggsn_Address",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_GGSN_InterfaceList_gmb,
+ { "gmb", "gsm_map.gmb",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_ggsn_Number,
- { "ggsn-Number", "gsm_map.ggsn_Number",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_RNC_InterfaceList_iu,
+ { "iu", "gsm_map.iu",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_mobileNotReachableReason,
- { "mobileNotReachableReason", "gsm_map.mobileNotReachableReason",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SendRoutingInfoForGprsRes/mobileNotReachableReason", HFILL }},
- { &hf_gsm_map_dataCodingScheme,
- { "dataCodingScheme", "gsm_map.dataCodingScheme",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LcsClientName/dataCodingScheme", HFILL }},
- { &hf_gsm_map_nameString,
- { "nameString", "gsm_map.nameString",
- FT_BYTES, BASE_HEX, NULL, 0,
- "LcsClientName/nameString", HFILL }},
- { &hf_gsm_map_lcsClientType,
- { "lcsClientType", "gsm_map.lcsClientType",
- FT_UINT32, BASE_DEC, VALS(LcsClientType_vals), 0,
- "Lcs-ClientID/lcsClientType", HFILL }},
- { &hf_gsm_map_lcsClientExternalID,
- { "lcsClientExternalID", "gsm_map.lcsClientExternalID",
- FT_NONE, BASE_NONE, NULL, 0,
- "Lcs-ClientID/lcsClientExternalID", HFILL }},
- { &hf_gsm_map_lcsClientDialedByMS,
- { "lcsClientDialedByMS", "gsm_map.lcsClientDialedByMS",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Lcs-ClientID/lcsClientDialedByMS", HFILL }},
- { &hf_gsm_map_lcsClientInternalID,
- { "lcsClientInternalID", "gsm_map.lcsClientInternalID",
- FT_UINT32, BASE_DEC, VALS(LcsClientInternalID_vals), 0,
- "Lcs-ClientID/lcsClientInternalID", HFILL }},
- { &hf_gsm_map_lcsClientName,
- { "lcsClientName", "gsm_map.lcsClientName",
- FT_NONE, BASE_NONE, NULL, 0,
- "Lcs-ClientID/lcsClientName", HFILL }},
- { &hf_gsm_map_locationType,
- { "locationType", "gsm_map.locationType",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSubscriberLocation-Arg/locationType", HFILL }},
- { &hf_gsm_map_locationEstimateType,
- { "locationEstimateType", "gsm_map.locationEstimateType",
- FT_UINT32, BASE_DEC, VALS(T_locationEstimateType_vals), 0,
- "ProvideSubscriberLocation-Arg/locationType/locationEstimateType", HFILL }},
- { &hf_gsm_map_mlc_Number,
- { "mlc-Number", "gsm_map.mlc_Number",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSubscriberLocation-Arg/mlc-Number", HFILL }},
- { &hf_gsm_map_lcs_ClientID,
- { "lcs-ClientID", "gsm_map.lcs_ClientID",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_RNC_InterfaceList_iur,
+ { "iur", "gsm_map.iur",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_privacyOverride,
- { "privacyOverride", "gsm_map.privacyOverride",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSubscriberLocation-Arg/privacyOverride", HFILL }},
- { &hf_gsm_map_imei,
- { "imei", "gsm_map.imei",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_RNC_InterfaceList_iub,
+ { "iub", "gsm_map.iub",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_lcs_Priority,
- { "lcs-Priority", "gsm_map.lcs_Priority",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSubscriberLocation-Arg/lcs-Priority", HFILL }},
- { &hf_gsm_map_lcs_QoS,
- { "lcs-QoS", "gsm_map.lcs_QoS",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSubscriberLocation-Arg/lcs-QoS", HFILL }},
- { &hf_gsm_map_horizontal_accuracy,
- { "horizontal-accuracy", "gsm_map.horizontal_accuracy",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSubscriberLocation-Arg/lcs-QoS/horizontal-accuracy", HFILL }},
- { &hf_gsm_map_verticalCoordinateRequest,
- { "verticalCoordinateRequest", "gsm_map.verticalCoordinateRequest",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSubscriberLocation-Arg/lcs-QoS/verticalCoordinateRequest", HFILL }},
- { &hf_gsm_map_vertical_accuracy,
- { "vertical-accuracy", "gsm_map.vertical_accuracy",
- FT_BYTES, BASE_HEX, NULL, 0,
- "ProvideSubscriberLocation-Arg/lcs-QoS/vertical-accuracy", HFILL }},
- { &hf_gsm_map_responseTime,
- { "responseTime", "gsm_map.responseTime",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime", HFILL }},
- { &hf_gsm_map_responseTimeCategory,
- { "responseTimeCategory", "gsm_map.responseTimeCategory",
- FT_UINT32, BASE_DEC, VALS(T_responseTimeCategory_vals), 0,
- "ProvideSubscriberLocation-Arg/lcs-QoS/responseTime/responseTimeCategory", HFILL }},
- { &hf_gsm_map_locationEstimate,
- { "locationEstimate", "gsm_map.locationEstimate",
- FT_BYTES, BASE_HEX, NULL, 0,
+ { &hf_gsm_map_RNC_InterfaceList_uu,
+ { "uu", "gsm_map.uu",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_ageOfLocationEstimate,
- { "ageOfLocationEstimate", "gsm_map.ageOfLocationEstimate",
- FT_UINT32, BASE_DEC, NULL, 0,
+ { &hf_gsm_map_BMSC_InterfaceList_gmb,
+ { "gmb", "gsm_map.gmb",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_mlcNumber,
- { "mlcNumber", "gsm_map.mlcNumber",
- FT_BYTES, BASE_HEX, NULL, 0,
- "RoutingInfoForLCS-Arg/mlcNumber", HFILL }},
- { &hf_gsm_map_targetMS,
- { "targetMS", "gsm_map.targetMS",
- FT_UINT32, BASE_DEC, VALS(TargetMS_vals), 0,
+ { &hf_gsm_map_MSC_S_EventList_mo_mtCall,
+ { "mo-mtCall", "gsm_map.mo-mtCall",
+ FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_lcsLocationInfo,
- { "lcsLocationInfo", "gsm_map.lcsLocationInfo",
- FT_NONE, BASE_NONE, NULL, 0,
+ { &hf_gsm_map_MSC_S_EventList_mo_mt_sms,
+ { "mo-mt-sms", "gsm_map.mo-mt-sms",
+ FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_lcs_Event,
- { "lcs-Event", "gsm_map.lcs_Event",
- FT_UINT32, BASE_DEC, VALS(Lcs_Event_vals), 0,
- "SubscriberLocationReport-Arg/lcs-Event", HFILL }},
- { &hf_gsm_map_na_ESRD,
- { "na-ESRD", "gsm_map.na_ESRD",
- FT_BYTES, BASE_HEX, NULL, 0,
- "SubscriberLocationReport-Arg/na-ESRD", HFILL }},
- { &hf_gsm_map_na_ESRK,
- { "na-ESRK", "gsm_map.na_ESRK",
- FT_BYTES, BASE_HEX, NULL, 0,
- "SubscriberLocationReport-Arg/na-ESRK", HFILL }},
- { &hf_gsm_map_networkResource,
- { "networkResource", "gsm_map.networkResource",
- FT_UINT32, BASE_DEC, VALS(NetworkResource_vals), 0,
+ { &hf_gsm_map_MSC_S_EventList_lu_imsiAttach_imsiDetach,
+ { "lu-imsiAttach-imsiDetach", "gsm_map.lu-imsiAttach-imsiDetach",
+ FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_extensibleSystemFailureParam,
- { "extensibleSystemFailureParam", "gsm_map.extensibleSystemFailureParam",
- FT_NONE, BASE_NONE, NULL, 0,
- "SystemFailureParam/extensibleSystemFailureParam", HFILL }},
- { &hf_gsm_map_unknownSubscriberDiagnostic,
- { "unknownSubscriberDiagnostic", "gsm_map.unknownSubscriberDiagnostic",
- FT_UINT32, BASE_DEC, VALS(T_unknownSubscriberDiagnostic_vals), 0,
- "UnknownSubscriberParam/unknownSubscriberDiagnostic", HFILL }},
- { &hf_gsm_map_roamingNotAllowedCause,
- { "roamingNotAllowedCause", "gsm_map.roamingNotAllowedCause",
- FT_UINT32, BASE_DEC, VALS(T_roamingNotAllowedCause_vals), 0,
- "RoamingNotAllowedParam/roamingNotAllowedCause", HFILL }},
- { &hf_gsm_map_absentSubscriberReason,
- { "absentSubscriberReason", "gsm_map.absentSubscriberReason",
- FT_UINT32, BASE_DEC, VALS(T_absentSubscriberReason_vals), 0,
- "AbsentSubscriberParam/absentSubscriberReason", HFILL }},
- { &hf_gsm_map_ccbs_Busy,
- { "ccbs-Busy", "gsm_map.ccbs_Busy",
- FT_NONE, BASE_NONE, NULL, 0,
- "BusySubscriberParam/ccbs-Busy", HFILL }},
- { &hf_gsm_map_callBarringCause,
- { "callBarringCause", "gsm_map.callBarringCause",
- FT_UINT32, BASE_DEC, VALS(CallBarringCause_vals), 0,
+ { &hf_gsm_map_MSC_S_EventList_handovers,
+ { "handovers", "gsm_map.handovers",
+ FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_extensibleCallBarredParam,
- { "extensibleCallBarredParam", "gsm_map.extensibleCallBarredParam",
- FT_NONE, BASE_NONE, NULL, 0,
- "CallBarredParam/extensibleCallBarredParam", HFILL }},
- { &hf_gsm_map_unauthorisedMessageOriginator,
- { "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator",
- FT_NONE, BASE_NONE, NULL, 0,
- "CallBarredParam/extensibleCallBarredParam/unauthorisedMessageOriginator", HFILL }},
- { &hf_gsm_map_cug_RejectCause,
- { "cug-RejectCause", "gsm_map.cug_RejectCause",
- FT_UINT32, BASE_DEC, VALS(T_cug_RejectCause_vals), 0,
- "Cug-RejectParam/cug-RejectCause", HFILL }},
- { &hf_gsm_map_gprsConnectionSuspended,
- { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended",
- FT_NONE, BASE_NONE, NULL, 0,
- "SubBusyForMT-SMS-Param/gprsConnectionSuspended", HFILL }},
- { &hf_gsm_map_sm_EnumeratedDeliveryFailureCause,
- { "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause",
- FT_UINT32, BASE_DEC, VALS(T_sm_EnumeratedDeliveryFailureCause_vals), 0,
- "Sm-DeliveryFailureCause/sm-EnumeratedDeliveryFailureCause", HFILL }},
- { &hf_gsm_map_diagnosticInfo,
- { "diagnosticInfo", "gsm_map.diagnosticInfo",
- FT_BYTES, BASE_HEX, NULL, 0,
- "Sm-DeliveryFailureCause/diagnosticInfo", HFILL }},
- { &hf_gsm_map_unauthorizedLCSClient_Diagnostic,
- { "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic",
- FT_UINT32, BASE_DEC, VALS(T_unauthorizedLCSClient_Diagnostic_vals), 0,
- "UnauthorizedLCSClient-Param/unauthorizedLCSClient-Diagnostic", HFILL }},
- { &hf_gsm_map_positionMethodFailure_Diagnostic,
- { "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic",
- FT_UINT32, BASE_DEC, VALS(T_positionMethodFailure_Diagnostic_vals), 0,
- "PositionMethodFailure-Param/positionMethodFailure-Diagnostic", HFILL }},
- { &hf_gsm_map_privateExtensionList,
- { "privateExtensionList", "gsm_map.privateExtensionList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "ExtensionContainer/privateExtensionList", HFILL }},
- { &hf_gsm_map_pcsExtensions,
- { "pcsExtensions", "gsm_map.pcsExtensions",
- FT_NONE, BASE_NONE, NULL, 0,
- "ExtensionContainer/pcsExtensions", HFILL }},
- { &hf_gsm_map_SupportedCamelPhases_phase1,
- { "phase1", "gsm_map.phase1",
+ { &hf_gsm_map_MSC_S_EventList_ss,
+ { "ss", "gsm_map.ss",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_MGW_EventList_context,
+ { "context", "gsm_map.context",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_SupportedCamelPhases_phase2,
- { "phase2", "gsm_map.phase2",
+ { &hf_gsm_map_SGSN_EventList_pdpContext,
+ { "pdpContext", "gsm_map.pdpContext",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_EventList_mo_mt_sms,
+ { "mo-mt-sms", "gsm_map.mo-mt-sms",
FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_allOGCallsBarred,
- { "allOGCallsBarred", "gsm_map.allOGCallsBarred",
+ { &hf_gsm_map_SGSN_EventList_rau_gprsAttach_gprsDetach,
+ { "rau-gprsAttach-gprsDetach", "gsm_map.rau-gprsAttach-gprsDetach",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_SGSN_EventList_mbmsContext,
+ { "mbmsContext", "gsm_map.mbmsContext",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_GGSN_EventList_pdpContext,
+ { "pdpContext", "gsm_map.pdpContext",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_internationalOGCallsBarred,
- { "internationalOGCallsBarred", "gsm_map.internationalOGCallsBarred",
+ { &hf_gsm_map_GGSN_EventList_mbmsContext,
+ { "mbmsContext", "gsm_map.mbmsContext",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_BMSC_EventList_mbmsMulticastServiceActivation,
+ { "mbmsMulticastServiceActivation", "gsm_map.mbmsMulticastServiceActivation",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_AllowedServices_firstServiceAllowed,
+ { "firstServiceAllowed", "gsm_map.firstServiceAllowed",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_AllowedServices_secondServiceAllowed,
+ { "secondServiceAllowed", "gsm_map.secondServiceAllowed",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_ServiceIndicator_clir_invoked,
+ { "clir-invoked", "gsm_map.clir-invoked",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_ServiceIndicator_camel_invoked,
+ { "camel-invoked", "gsm_map.camel-invoked",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_MW_Status_sc_AddressNotIncluded,
+ { "sc-AddressNotIncluded", "gsm_map.sc-AddressNotIncluded",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_MW_Status_mnrf_Set,
+ { "mnrf-Set", "gsm_map.mnrf-Set",
FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_internationalOGCallsNotToHPLMNCountryBarred,
- { "internationalOGCallsNotToHPLMNCountryBarred", "gsm_map.internationalOGCallsNotToHPLMNCountryBarred",
+ { &hf_gsm_map_MW_Status_mcef_Set,
+ { "mcef-Set", "gsm_map.mcef-Set",
FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_premiumRateInformationOGCallsBarred,
- { "premiumRateInformationOGCallsBarred", "gsm_map.premiumRateInformationOGCallsBarred",
+ { &hf_gsm_map_MW_Status_mnrg_Set,
+ { "mnrg-Set", "gsm_map.mnrg-Set",
FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_premiumRateEntertainementOGCallsBarred,
- { "premiumRateEntertainementOGCallsBarred", "gsm_map.premiumRateEntertainementOGCallsBarred",
+ { &hf_gsm_map_OfferedCamel4CSIs_o_csi,
+ { "o-csi", "gsm_map.o-csi",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4CSIs_d_csi,
+ { "d-csi", "gsm_map.d-csi",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4CSIs_vt_csi,
+ { "vt-csi", "gsm_map.vt-csi",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4CSIs_t_csi,
+ { "t-csi", "gsm_map.t-csi",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4CSIs_mt_sms_csi,
+ { "mt-sms-csi", "gsm_map.mt-sms-csi",
FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_ssAccessBarred,
- { "ssAccessBarred", "gsm_map.ssAccessBarred",
+ { &hf_gsm_map_OfferedCamel4CSIs_mg_csi,
+ { "mg-csi", "gsm_map.mg-csi",
FT_BOOLEAN, 8, NULL, 0x04,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsBarred,
- { "interzonalOGCallsBarred", "gsm_map.interzonalOGCallsBarred",
+ { &hf_gsm_map_OfferedCamel4CSIs_psi_enhancements,
+ { "psi-enhancements", "gsm_map.psi-enhancements",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt,
+ { "initiateCallAttempt", "gsm_map.initiateCallAttempt",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_splitLeg,
+ { "splitLeg", "gsm_map.splitLeg",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_moveLeg,
+ { "moveLeg", "gsm_map.moveLeg",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_disconnectLeg,
+ { "disconnectLeg", "gsm_map.disconnectLeg",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_entityReleased,
+ { "entityReleased", "gsm_map.entityReleased",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_dfc_WithArgument,
+ { "dfc-WithArgument", "gsm_map.dfc-WithArgument",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_playTone,
+ { "playTone", "gsm_map.playTone",
FT_BOOLEAN, 8, NULL, 0x02,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsNotToHPLMNCountryBarred,
- { "interzonalOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsNotToHPLMNCountryBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_dtmf_MidCall,
+ { "dtmf-MidCall", "gsm_map.dtmf-MidCall",
FT_BOOLEAN, 8, NULL, 0x01,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred,
- { "interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred", "gsm_map.interzonalOGCallsAndIntOGCallsNotToHPLMNCountryBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_chargingIndicator,
+ { "chargingIndicator", "gsm_map.chargingIndicator",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_allECTBarred,
- { "allECTBarred", "gsm_map.allECTBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_alertingDP,
+ { "alertingDP", "gsm_map.alertingDP",
FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_chargeableECTBarred,
- { "chargeableECTBarred", "gsm_map.chargeableECTBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_locationAtAlerting,
+ { "locationAtAlerting", "gsm_map.locationAtAlerting",
FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_internationalECTBarred,
- { "internationalECTBarred", "gsm_map.internationalECTBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_changeOfPositionDP,
+ { "changeOfPositionDP", "gsm_map.changeOfPositionDP",
FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_interzonalECTBarred,
- { "interzonalECTBarred", "gsm_map.interzonalECTBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_or_Interactions,
+ { "or-Interactions", "gsm_map.or-Interactions",
FT_BOOLEAN, 8, NULL, 0x08,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_doublyChargeableECTBarred,
- { "doublyChargeableECTBarred", "gsm_map.doublyChargeableECTBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_warningToneEnhancements,
+ { "warningToneEnhancements", "gsm_map.warningToneEnhancements",
FT_BOOLEAN, 8, NULL, 0x04,
"", HFILL }},
- { &hf_gsm_map_Odb_GeneralData_multipleECTBarred,
- { "multipleECTBarred", "gsm_map.multipleECTBarred",
+ { &hf_gsm_map_OfferedCamel4Functionalities_cf_Enhancements,
+ { "cf-Enhancements", "gsm_map.cf-Enhancements",
FT_BOOLEAN, 8, NULL, 0x02,
"", HFILL }},
- { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType1,
- { "plmnSpecificBarringType1", "gsm_map.plmnSpecificBarringType1",
+ { &hf_gsm_map_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
+ { "subscribedEnhancedDialledServices", "gsm_map.subscribedEnhancedDialledServices",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "", HFILL }},
+ { &hf_gsm_map_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
+ { "servingNetworkEnhancedDialledServices", "gsm_map.servingNetworkEnhancedDialledServices",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType2,
- { "plmnSpecificBarringType2", "gsm_map.plmnSpecificBarringType2",
+ { &hf_gsm_map_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
+ { "criteriaForChangeOfPositionDP", "gsm_map.criteriaForChangeOfPositionDP",
FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType3,
- { "plmnSpecificBarringType3", "gsm_map.plmnSpecificBarringType3",
+ { &hf_gsm_map_OfferedCamel4Functionalities_serviceChangeDP,
+ { "serviceChangeDP", "gsm_map.serviceChangeDP",
FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_Odb_HPLMN_Data_plmnSpecificBarringType4,
- { "plmnSpecificBarringType4", "gsm_map.plmnSpecificBarringType4",
+ { &hf_gsm_map_OfferedCamel4Functionalities_collectInformation,
+ { "collectInformation", "gsm_map.collectInformation",
FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
- { &hf_gsm_map_ServiceIndicator_clirInvoked,
- { "clirInvoked", "gsm_map.clirInvoked",
+ { &hf_gsm_map_DeferredLocationEventType_msAvailable,
+ { "msAvailable", "gsm_map.msAvailable",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_ServiceIndicator_camelInvoked,
- { "camelInvoked", "gsm_map.camelInvoked",
+ { &hf_gsm_map_DeferredLocationEventType_enteringIntoArea,
+ { "enteringIntoArea", "gsm_map.enteringIntoArea",
FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_T_mw_Status_scAddressNotIncluded,
- { "scAddressNotIncluded", "gsm_map.scAddressNotIncluded",
+ { &hf_gsm_map_DeferredLocationEventType_leavingFromArea,
+ { "leavingFromArea", "gsm_map.leavingFromArea",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+ { &hf_gsm_map_DeferredLocationEventType_beingInsideArea,
+ { "beingInsideArea", "gsm_map.beingInsideArea",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ "", HFILL }},
+ { &hf_gsm_map_DeferredLocationEventType_periodicLDR,
+ { "periodicLDR", "gsm_map.periodicLDR",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedGADShapes_ellipsoidPoint,
+ { "ellipsoidPoint", "gsm_map.ellipsoidPoint",
FT_BOOLEAN, 8, NULL, 0x80,
"", HFILL }},
- { &hf_gsm_map_T_mw_Status_mnrfSet,
- { "mnrfSet", "gsm_map.mnrfSet",
+ { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle,
+ { "ellipsoidPointWithUncertaintyCircle", "gsm_map.ellipsoidPointWithUncertaintyCircle",
FT_BOOLEAN, 8, NULL, 0x40,
"", HFILL }},
- { &hf_gsm_map_T_mw_Status_mcefSet,
- { "mcefSet", "gsm_map.mcefSet",
+ { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse,
+ { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.ellipsoidPointWithUncertaintyEllipse",
FT_BOOLEAN, 8, NULL, 0x20,
"", HFILL }},
- { &hf_gsm_map_T_mw_Status_mnrgSet,
- { "mnrgSet", "gsm_map.mnrgSet",
+ { &hf_gsm_map_SupportedGADShapes_polygon,
+ { "polygon", "gsm_map.polygon",
FT_BOOLEAN, 8, NULL, 0x10,
"", HFILL }},
+ { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitude,
+ { "ellipsoidPointWithAltitude", "gsm_map.ellipsoidPointWithAltitude",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid,
+ { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.ellipsoidPointWithAltitudeAndUncertaintyElipsoid",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ "", HFILL }},
+ { &hf_gsm_map_SupportedGADShapes_ellipsoidArc,
+ { "ellipsoidArc", "gsm_map.ellipsoidArc",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ "", HFILL }},
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
-
+#line 2287 "packet-gsm_map-template.c"
};
/* List of subtrees */
&ett_gsm_map_InvokeId,
&ett_gsm_map_InvokePDU,
&ett_gsm_map_ReturnResultPDU,
+ &ett_gsm_map_ReturnErrorPDU,
&ett_gsm_map_ReturnResult_result,
+ &ett_gsm_map_ReturnError_result,
&ett_gsm_map_GSMMAPPDU,
+ &ett_gsm_map_ext_qos_subscribed,
+ &ett_gsm_map_pdptypenumber,
+ &ett_gsm_map_RAIdentity,
+ &ett_gsm_map_LAIFixedLength,
+ &ett_gsm_map_isdn_address_string,
+ &ett_gsm_map_geo_desc,
+ &ett_gsm_map_LongSignalInfo,
+ &ett_gsm_map_RadioResourceInformation,
-/*--- Included file: packet-gsm_map-ettarr.c ---*/
+/*--- Included file: packet-gsm_map-ettarr.c ---*/
+#line 1 "packet-gsm_map-ettarr.c"
+ &ett_gsm_map_Component,
+ &ett_gsm_map_Invoke,
+ &ett_gsm_map_ReturnResult,
+ &ett_gsm_map_T_resultretres,
+ &ett_gsm_map_ReturnError,
+ &ett_gsm_map_Reject,
+ &ett_gsm_map_T_invokeIDRej,
+ &ett_gsm_map_T_problem,
+ &ett_gsm_map_OPERATION,
+ &ett_gsm_map_ERROR,
&ett_gsm_map_Bss_APDU,
&ett_gsm_map_SupportedCamelPhases,
- &ett_gsm_map_Vlr_Capability,
&ett_gsm_map_UpdateLocationArg,
&ett_gsm_map_UpdateLocationRes,
+ &ett_gsm_map_VLR_Capability,
+ &ett_gsm_map_SupportedRAT_Types,
+ &ett_gsm_map_SuperChargerInfo,
+ &ett_gsm_map_SupportedLCS_CapabilitySets,
+ &ett_gsm_map_ADD_Info,
&ett_gsm_map_PrivateExtensionList,
&ett_gsm_map_PrivateExtension,
+ &ett_gsm_map_SLR_ArgExtensionContainer,
&ett_gsm_map_PcsExtensions,
+ &ett_gsm_map_SLR_Arg_PCS_Extensions,
&ett_gsm_map_CancelLocationArg,
- &ett_gsm_map_T_identity,
- &ett_gsm_map_T_imsi_WithLMSI,
+ &ett_gsm_map_CancelLocationArgV2,
&ett_gsm_map_CancelLocationRes,
- &ett_gsm_map_PurgeMS_Arg,
- &ett_gsm_map_PurgeMS_Res,
+ &ett_gsm_map_PurgeMSArg,
+ &ett_gsm_map_PurgeMSArgV2,
+ &ett_gsm_map_PurgeMSRes,
+ &ett_gsm_map_SendIdentificationArg,
&ett_gsm_map_SendIdentificationRes,
- &ett_gsm_map_T_authenticationSetList,
- &ett_gsm_map_T_authenticationSetList_item,
+ &ett_gsm_map_SendIdentificationResV2,
+ &ett_gsm_map_AuthenticationSetList,
+ &ett_gsm_map_TripletList,
+ &ett_gsm_map_QuintupletList,
+ &ett_gsm_map_AuthenticationTriplet,
+ &ett_gsm_map_AuthenticationQuintuplet,
+ &ett_gsm_map_CurrentSecurityContext,
+ &ett_gsm_map_GSM_SecurityContextData,
+ &ett_gsm_map_UMTS_SecurityContextData,
&ett_gsm_map_PrepareHO_Arg,
+ &ett_gsm_map_PrepareHO_ArgV3,
+ &ett_gsm_map_BSSMAP_ServiceHandoverList,
+ &ett_gsm_map_BSSMAP_ServiceHandoverInfo,
+ &ett_gsm_map_RadioResourceList,
+ &ett_gsm_map_RadioResource,
&ett_gsm_map_PrepareHO_Res,
- &ett_gsm_map_PrepareSubsequentHO_Arg,
- &ett_gsm_map_SendAuthenticationInfoArg,
- &ett_gsm_map_T_re_synchronisationInfo,
+ &ett_gsm_map_PrepareHO_ResV3,
+ &ett_gsm_map_SelectedUMTS_Algorithms,
+ &ett_gsm_map_ChosenRadioResourceInformation,
+ &ett_gsm_map_SendEndSignalArgV3,
+ &ett_gsm_map_SendEndSignalRes,
+ &ett_gsm_map_RelocationNumberList,
+ &ett_gsm_map_RelocationNumber,
+ &ett_gsm_map_ProcessAccessSignallingArgV3,
+ &ett_gsm_map_SupportedCodecsList,
+ &ett_gsm_map_CodecList,
+ &ett_gsm_map_ForwardAccessSignallingArgV3,
+ &ett_gsm_map_AllowedUMTS_Algorithms,
+ &ett_gsm_map_PrepareSubsequentHOArg,
+ &ett_gsm_map_PrepareSubsequentHOArgV3,
+ &ett_gsm_map_PrepareSubsequentHOResV3,
+ &ett_gsm_map_SendAuthenticationInfoArgV2,
&ett_gsm_map_SendAuthenticationInfoRes,
&ett_gsm_map_SendAuthenticationInfoRes_item,
- &ett_gsm_map_BasicService,
+ &ett_gsm_map_SendAuthenticationInfoResV3,
+ &ett_gsm_map_Re_synchronisationInfo,
+ &ett_gsm_map_CheckIMEIArgV3,
+ &ett_gsm_map_CheckIMEIRes,
+ &ett_gsm_map_RequestedEquipmentInfo,
+ &ett_gsm_map_UESBI_Iu,
&ett_gsm_map_BasicServiceGroupList,
- &ett_gsm_map_Odb_GeneralData,
- &ett_gsm_map_Odb_HPLMN_Data,
- &ett_gsm_map_BcsmCamelTDPData,
- &ett_gsm_map_BcsmCamelTDPDataList,
+ &ett_gsm_map_ODB_GeneralData,
+ &ett_gsm_map_ODB_HPLMN_Data,
&ett_gsm_map_O_CSI,
+ &ett_gsm_map_O_BcsmCamelTDPDataList,
+ &ett_gsm_map_O_BcsmCamelTDPData,
&ett_gsm_map_InsertSubscriberDataArg,
- &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_5,
- &ett_gsm_map_SEQUNCE_OF_Teleservice,
- &ett_gsm_map_T_provisionedSS,
- &ett_gsm_map_T_provisionedSS_item,
- &ett_gsm_map_T_cug_Info,
- &ett_gsm_map_T_cug_SubscriptionList,
- &ett_gsm_map_T_cug_SubscriptionList_item,
- &ett_gsm_map_T_cug_FeatureList,
- &ett_gsm_map_T_cug_FeatureList_item,
- &ett_gsm_map_T_ss_Data2,
- &ett_gsm_map_T_emlpp_Info,
- &ett_gsm_map_T_odb_Data,
- &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_2,
- &ett_gsm_map_T_vbsSubscriptionData,
- &ett_gsm_map_T_vbsSubscriptionData_item,
- &ett_gsm_map_T_vgcsSubscriptionData,
- &ett_gsm_map_T_vgcsSubscriptionData_item,
- &ett_gsm_map_T_vlrCamelSubscriptionInfo,
- &ett_gsm_map_T_ss_CSI,
- &ett_gsm_map_T_ss_CamelData,
- &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1,
- &ett_gsm_map_T_gprsSubscriptionData,
- &ett_gsm_map_T_gprsDataList,
- &ett_gsm_map_T_gprsDataList_item,
- &ett_gsm_map_T_lsaInformation,
- &ett_gsm_map_T_lsaDataList,
- &ett_gsm_map_T_lsaDataList_item,
- &ett_gsm_map_T_lcsInformation,
- &ett_gsm_map_T_gmlc_List,
- &ett_gsm_map_T_lcs_PrivacyExceptionList,
- &ett_gsm_map_T_lcs_PrivacyExceptionList_item,
- &ett_gsm_map_T_externalClientList,
- &ett_gsm_map_T_externalClientList_item,
- &ett_gsm_map_T_clientIdentity,
- &ett_gsm_map_T_plmnClientList,
- &ett_gsm_map_T_molr_List,
- &ett_gsm_map_T_molr_List_item,
+ &ett_gsm_map_AccessRestrictionData,
+ &ett_gsm_map_LCSInformation,
+ &ett_gsm_map_GMLC_List,
+ &ett_gsm_map_GPRSDataList,
+ &ett_gsm_map_PDP_Context,
+ &ett_gsm_map_GPRSSubscriptionData,
+ &ett_gsm_map_SGSN_CAMEL_SubscriptionInfo,
+ &ett_gsm_map_GPRS_CSI,
+ &ett_gsm_map_GPRS_CamelTDPDataList,
+ &ett_gsm_map_GPRS_CamelTDPData,
+ &ett_gsm_map_LSADataList,
+ &ett_gsm_map_LSAData,
+ &ett_gsm_map_LSAInformation,
&ett_gsm_map_InsertSubscriberDataRes,
- &ett_gsm_map_CallBarringInfo,
- &ett_gsm_map_T_callBarringFeatureList,
- &ett_gsm_map_T_callBarringFeatureList_item,
+ &ett_gsm_map_DeleteSubscriberDataArg,
+ &ett_gsm_map_DeleteSubscriberDataRes,
+ &ett_gsm_map_SpecificCSI_Withdraw,
+ &ett_gsm_map_GPRSSubscriptionDataWithdraw,
+ &ett_gsm_map_ContextIdList,
+ &ett_gsm_map_LSAInformationWithdraw,
+ &ett_gsm_map_LSAIdentityList,
+ &ett_gsm_map_BasicServiceList,
+ &ett_gsm_map_VlrCamelSubscriptionInfo,
+ &ett_gsm_map_MT_smsCAMELTDP_CriteriaList,
+ &ett_gsm_map_MT_smsCAMELTDP_Criteria,
+ &ett_gsm_map_TPDU_TypeCriterion,
+ &ett_gsm_map_D_CSI,
+ &ett_gsm_map_DP_AnalysedInfoCriteriaList,
+ &ett_gsm_map_DP_AnalysedInfoCriterium,
+ &ett_gsm_map_SS_CSI,
+ &ett_gsm_map_SS_CamelData,
+ &ett_gsm_map_MG_CSI,
+ &ett_gsm_map_BearerServiceList,
+ &ett_gsm_map_TeleserviceList,
+ &ett_gsm_map_Ext_SS_InfoList,
+ &ett_gsm_map_Ext_SS_Info,
+ &ett_gsm_map_Ext_ForwInfo,
+ &ett_gsm_map_Ext_ForwFeatureList,
+ &ett_gsm_map_Ext_ForwFeature,
+ &ett_gsm_map_Ext_CallBarInfo,
+ &ett_gsm_map_Ext_CallBarFeatureList,
+ &ett_gsm_map_Ext_CallBarringFeature,
+ &ett_gsm_map_ZoneCodeList,
+ &ett_gsm_map_EMLPP_Info,
+ &ett_gsm_map_CUG_Info,
+ &ett_gsm_map_CUG_SubscriptionList,
+ &ett_gsm_map_CUG_Subscription,
+ &ett_gsm_map_CUG_FeatureList,
+ &ett_gsm_map_Ext_BasicServiceGroupList,
+ &ett_gsm_map_CUG_Feature,
+ &ett_gsm_map_Ext_SS_Data,
+ &ett_gsm_map_LCS_PrivacyExceptionList,
+ &ett_gsm_map_LCS_PrivacyClass,
+ &ett_gsm_map_ExternalClientList,
+ &ett_gsm_map_PLMNClientList,
+ &ett_gsm_map_Ext_ExternalClientList,
+ &ett_gsm_map_ExternalClient,
+ &ett_gsm_map_ServiceTypeList,
+ &ett_gsm_map_ServiceType,
+ &ett_gsm_map_MOLR_List,
+ &ett_gsm_map_MOLR_Class,
+ &ett_gsm_map_CallBarringFeatureList,
+ &ett_gsm_map_CallBarringFeature,
&ett_gsm_map_ForwardingFeatureList,
+ &ett_gsm_map_ForwardingFeature,
&ett_gsm_map_DestinationNumberCriteria,
- &ett_gsm_map_T_destinationNumberList,
- &ett_gsm_map_SEQUNCE_OF_INTEGER_1_15,
+ &ett_gsm_map_DestinationNumberList,
+ &ett_gsm_map_DestinationNumberLengthList,
&ett_gsm_map_ForwardingInfo,
- &ett_gsm_map_SEQUNCE_OF_ForwardingFeatureList,
- &ett_gsm_map_Naea_PreferredCI,
- &ett_gsm_map_O_BcsmCamelTDP_CriteriaList,
- &ett_gsm_map_O_BcsmCamelTDP_CriteriaList_item,
- &ett_gsm_map_Ss_SubscriptionOption,
- &ett_gsm_map_DeleteSubscriberDataArg,
- &ett_gsm_map_T_gprsSubscriptionDataWithdraw,
- &ett_gsm_map_SEQUNCE_OF_INTEGER_1_50,
- &ett_gsm_map_T_lsaInformationWithdraw,
- &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3,
- &ett_gsm_map_DeleteSubscriberDataRes,
+ &ett_gsm_map_CallBarringInfo,
+ &ett_gsm_map_MC_SS_Info,
&ett_gsm_map_ResetArg,
- &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_3_8,
&ett_gsm_map_RestoreDataArg,
&ett_gsm_map_RestoreDataRes,
+ &ett_gsm_map_VBSDataList,
+ &ett_gsm_map_VGCSDataList,
+ &ett_gsm_map_VoiceGroupCallData,
+ &ett_gsm_map_VoiceBroadcastData,
+ &ett_gsm_map_AdditionalSubscriptions,
&ett_gsm_map_ActivateTraceModeArg,
+ &ett_gsm_map_TraceDepthList,
+ &ett_gsm_map_TraceNE_TypeList,
+ &ett_gsm_map_TraceInterfaceList,
+ &ett_gsm_map_MSC_S_InterfaceList,
+ &ett_gsm_map_MGW_InterfaceList,
+ &ett_gsm_map_SGSN_InterfaceList,
+ &ett_gsm_map_GGSN_InterfaceList,
+ &ett_gsm_map_RNC_InterfaceList,
+ &ett_gsm_map_BMSC_InterfaceList,
+ &ett_gsm_map_TraceEventList,
+ &ett_gsm_map_MSC_S_EventList,
+ &ett_gsm_map_MGW_EventList,
+ &ett_gsm_map_SGSN_EventList,
+ &ett_gsm_map_GGSN_EventList,
+ &ett_gsm_map_BMSC_EventList,
+ &ett_gsm_map_TracePropagationList,
&ett_gsm_map_ActivateTraceModeRes,
&ett_gsm_map_DeactivateTraceModeArg,
&ett_gsm_map_DeactivateTraceModeRes,
&ett_gsm_map_SendRoutingInfoArg,
- &ett_gsm_map_T_camelInfo,
&ett_gsm_map_SendRoutingInfoRes,
- &ett_gsm_map_T_extendedRoutingInfo,
- &ett_gsm_map_T_routingInfo,
- &ett_gsm_map_T_camelRoutingInfo,
- &ett_gsm_map_T_gmscCamelSubscriptionInfo,
- &ett_gsm_map_T_t_CSI,
- &ett_gsm_map_T_ccbs_Indicators,
- &ett_gsm_map_SubscriberState,
+ &ett_gsm_map_ExternalSignalInfo,
+ &ett_gsm_map_Ext_ExternalSignalInfo,
+ &ett_gsm_map_AccessNetworkSignalInfo,
+ &ett_gsm_map_CamelInfo,
+ &ett_gsm_map_Identity,
+ &ett_gsm_map_IMSI_WithLMSI,
+ &ett_gsm_map_HLR_List,
+ &ett_gsm_map_SS_List,
+ &ett_gsm_map_NAEA_PreferredCI,
+ &ett_gsm_map_SubscriberIdentity,
+ &ett_gsm_map_LCSClientExternalID,
+ &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI,
+ &ett_gsm_map_AllowedServices,
+ &ett_gsm_map_CCBS_Indicators,
+ &ett_gsm_map_RoutingInfo,
+ &ett_gsm_map_ExtendedRoutingInfo,
+ &ett_gsm_map_CamelRoutingInfo,
+ &ett_gsm_map_GmscCamelSubscriptionInfo,
&ett_gsm_map_LocationInformation,
- &ett_gsm_map_T_cellIdOrLAI,
- &ett_gsm_map_SubscriberInfo,
- &ett_gsm_map_AdditionalSignalInfo,
- &ett_gsm_map_Cug_CheckInfo,
+ &ett_gsm_map_LocationInformationGPRS,
+ &ett_gsm_map_SubscriberState,
+ &ett_gsm_map_PS_SubscriberState,
+ &ett_gsm_map_PDP_ContextInfoList,
+ &ett_gsm_map_PDP_ContextInfo,
+ &ett_gsm_map_CUG_CheckInfo,
&ett_gsm_map_ForwardingData,
&ett_gsm_map_ProvideRoamingNumberArg,
&ett_gsm_map_ProvideRoamingNumberRes,
&ett_gsm_map_ResumeCallHandlingArg,
- &ett_gsm_map_T_uu_Data,
&ett_gsm_map_ResumeCallHandlingRes,
+ &ett_gsm_map_UU_Data,
&ett_gsm_map_ProvideSIWFSNumberArg,
&ett_gsm_map_ProvideSIWFSNumberRes,
&ett_gsm_map_SIWFSSignallingModifyArg,
&ett_gsm_map_SetReportingStateArg,
&ett_gsm_map_SetReportingStateRes,
&ett_gsm_map_StatusReportArg,
- &ett_gsm_map_T_eventReportData,
- &ett_gsm_map_T_callReportdata,
&ett_gsm_map_StatusReportRes,
+ &ett_gsm_map_EventReportData,
+ &ett_gsm_map_CallReportData,
+ &ett_gsm_map_IST_AlertArg,
+ &ett_gsm_map_IST_AlertRes,
+ &ett_gsm_map_IST_CommandArg,
+ &ett_gsm_map_IST_CommandRes,
+ &ett_gsm_map_ReleaseResourcesArg,
+ &ett_gsm_map_ReleaseResourcesRes,
&ett_gsm_map_RemoteUserFreeArg,
&ett_gsm_map_RemoteUserFreeRes,
- &ett_gsm_map_Ss_Data,
+ &ett_gsm_map_SS_Data,
+ &ett_gsm_map_SS_SubscriptionOption,
&ett_gsm_map_RegisterSS_Arg,
- &ett_gsm_map_Ss_Info,
- &ett_gsm_map_Ccbs_Feature,
- &ett_gsm_map_Ss_ForBS,
+ &ett_gsm_map_SS_Info,
&ett_gsm_map_InterrogateSS_Res,
- &ett_gsm_map_T_genericServiceInfo,
- &ett_gsm_map_T_ccbs_FeatureList,
- &ett_gsm_map_T_ccbs_FeatureList_item,
&ett_gsm_map_Ussd_Arg,
&ett_gsm_map_Ussd_Res,
- &ett_gsm_map_ServiceIndicator,
+ &ett_gsm_map_AuthenticationFailureReportArg,
+ &ett_gsm_map_AuthenticationFailureReportRes,
&ett_gsm_map_RegisterCC_EntryArg,
- &ett_gsm_map_T_ccbs_Data,
&ett_gsm_map_RegisterCC_EntryRes,
+ &ett_gsm_map_CCBS_Data,
+ &ett_gsm_map_ServiceIndicator,
&ett_gsm_map_EraseCC_EntryArg,
&ett_gsm_map_EraseCC_EntryRes,
&ett_gsm_map_RoutingInfoForSMArg,
- &ett_gsm_map_RoutingInfoForSMRes,
- &ett_gsm_map_T_locationInfoWithLMSI,
- &ett_gsm_map_T_additional_Number,
+ &ett_gsm_map_RoutingInfoForSM_Res,
+ &ett_gsm_map_LocationInfoWithLMSI,
+ &ett_gsm_map_Additional_Number,
&ett_gsm_map_Mo_forwardSM_Arg,
&ett_gsm_map_Mo_forwardSM_Res,
&ett_gsm_map_Sm_RP_OA,
&ett_gsm_map_Sm_RP_DA,
&ett_gsm_map_Mt_forwardSM_Arg,
&ett_gsm_map_Mt_forwardSM_Res,
+ &ett_gsm_map_ForwardSM_Arg,
&ett_gsm_map_ReportSM_DeliveryStatusArg,
&ett_gsm_map_ReportSM_DeliveryStatusRes,
&ett_gsm_map_InformServiceCentreArg,
- &ett_gsm_map_T_mw_Status,
+ &ett_gsm_map_MW_Status,
&ett_gsm_map_AlertServiceCentreArg,
&ett_gsm_map_ReadyForSM_Arg,
&ett_gsm_map_ReadyForSM_Res,
+ &ett_gsm_map_Mt_ForwardSM_VGCS_Arg,
+ &ett_gsm_map_Mt_ForwardSM_VGCS_Res,
+ &ett_gsm_map_DispatcherList,
&ett_gsm_map_ProvideSubscriberInfoArg,
&ett_gsm_map_ProvideSubscriberInfoRes,
+ &ett_gsm_map_SubscriberInfo,
+ &ett_gsm_map_MNPInfoRes,
+ &ett_gsm_map_GPRSMSClass,
&ett_gsm_map_RequestedInfo,
&ett_gsm_map_AnyTimeInterrogationArg,
- &ett_gsm_map_T_subscriberIdentity,
&ett_gsm_map_AnyTimeInterrogationRes,
+ &ett_gsm_map_AnyTimeSubscriptionInterrogationArg,
+ &ett_gsm_map_AnyTimeSubscriptionInterrogationRes,
+ &ett_gsm_map_RequestedSubscriptionInfo,
+ &ett_gsm_map_MSISDN_BS_List,
+ &ett_gsm_map_MSISDN_BS,
+ &ett_gsm_map_CallForwardingData,
+ &ett_gsm_map_CallBarringData,
+ &ett_gsm_map_BasicServiceCode,
+ &ett_gsm_map_O_BcsmCamelTDPCriteriaList,
+ &ett_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList,
+ &ett_gsm_map_O_BcsmCamelTDP_Criteria,
+ &ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria,
+ &ett_gsm_map_OfferedCamel4CSIs,
+ &ett_gsm_map_OfferedCamel4Functionalities,
+ &ett_gsm_map_SS_ForBS_Code,
+ &ett_gsm_map_GenericServiceInfo,
+ &ett_gsm_map_CCBS_FeatureList,
+ &ett_gsm_map_CCBS_Feature,
+ &ett_gsm_map_T_CauseValueCriteria,
+ &ett_gsm_map_O_CauseValueCriteria,
+ &ett_gsm_map_BasicServiceCriteria,
+ &ett_gsm_map_AnyTimeModificationArg,
+ &ett_gsm_map_AnyTimeModificationRes,
+ &ett_gsm_map_ModificationRequestFor_CF_Info,
+ &ett_gsm_map_ModificationRequestFor_CB_Info,
+ &ett_gsm_map_ModificationRequestFor_ODB_data,
+ &ett_gsm_map_ModificationRequestFor_CSI,
+ &ett_gsm_map_Ext_SS_InfoFor_CSE,
+ &ett_gsm_map_NoteSubscriberDataModifiedArg,
+ &ett_gsm_map_NoteSubscriberDataModifiedRes,
+ &ett_gsm_map_NoteMM_EventArg,
+ &ett_gsm_map_NoteMM_EventRes,
+ &ett_gsm_map_CAMEL_SubscriptionInfo,
+ &ett_gsm_map_Ext_ForwardingInfoFor_CSE,
+ &ett_gsm_map_Ext_BasicServiceCode,
+ &ett_gsm_map_Ext_CallBarringInfoFor_CSE,
+ &ett_gsm_map_ODB_Info,
+ &ett_gsm_map_ODB_Data,
+ &ett_gsm_map_M_CSI,
+ &ett_gsm_map_SS_EventList,
+ &ett_gsm_map_T_CSI,
+ &ett_gsm_map_T_BcsmCamelTDPDataList,
+ &ett_gsm_map_T_BcsmCamelTDPData,
+ &ett_gsm_map_SMS_CSI,
+ &ett_gsm_map_SMS_CAMEL_TDP_DataList,
+ &ett_gsm_map_SMS_CAMEL_TDP_Data,
+ &ett_gsm_map_MobilityTriggers,
&ett_gsm_map_Ss_InvocationNotificationArg,
- &ett_gsm_map_SEQUNCE_OF_OCTET_STRING_SIZE_1_20,
+ &ett_gsm_map_SS_EventSpecification,
&ett_gsm_map_Ss_InvocationNotificationRes,
&ett_gsm_map_PrepareGroupCallArg,
&ett_gsm_map_PrepareGroupCallRes,
&ett_gsm_map_SendGroupCallEndSignalArg,
&ett_gsm_map_SendGroupCallEndSignalRes,
&ett_gsm_map_ProcessGroupCallSignallingArg,
+ &ett_gsm_map_StateAttributes,
+ &ett_gsm_map_SendGroupCallInfoArg,
+ &ett_gsm_map_SendGroupCallInfoRes,
&ett_gsm_map_ForwardGroupCallSignallingArg,
&ett_gsm_map_UpdateGprsLocationArg,
- &ett_gsm_map_T_sgsn_Capability,
&ett_gsm_map_UpdateGprsLocationRes,
+ &ett_gsm_map_SGSN_Capability,
&ett_gsm_map_SendRoutingInfoForGprsArg,
&ett_gsm_map_SendRoutingInfoForGprsRes,
&ett_gsm_map_FailureReportArg,
&ett_gsm_map_FailureReportRes,
&ett_gsm_map_NoteMsPresentForGprsArg,
&ett_gsm_map_NoteMsPresentForGprsRes,
- &ett_gsm_map_LcsClientExternalID,
- &ett_gsm_map_LcsClientName,
- &ett_gsm_map_Lcs_ClientID,
- &ett_gsm_map_LcsLocationInfo,
&ett_gsm_map_ProvideSubscriberLocation_Arg,
- &ett_gsm_map_T_locationType,
- &ett_gsm_map_T_lcs_QoS,
- &ett_gsm_map_T_responseTime,
+ &ett_gsm_map_LocationType,
+ &ett_gsm_map_DeferredLocationEventType,
+ &ett_gsm_map_LCS_ClientID,
+ &ett_gsm_map_LCSClientName,
+ &ett_gsm_map_LCSRequestorID,
+ &ett_gsm_map_LCS_QoS,
+ &ett_gsm_map_ResponseTime,
+ &ett_gsm_map_SupportedGADShapes,
+ &ett_gsm_map_LCSCodeword,
+ &ett_gsm_map_LCS_PrivacyCheck,
+ &ett_gsm_map_AreaEventInfo,
+ &ett_gsm_map_AreaDefinition,
+ &ett_gsm_map_AreaList,
+ &ett_gsm_map_Area,
+ &ett_gsm_map_PeriodicLDRInfo,
+ &ett_gsm_map_ReportingPLMNList,
+ &ett_gsm_map_PLMNList,
+ &ett_gsm_map_ReportingPLMN,
&ett_gsm_map_ProvideSubscriberLocation_Res,
- &ett_gsm_map_TargetMS,
&ett_gsm_map_RoutingInfoForLCS_Arg,
&ett_gsm_map_RoutingInfoForLCS_Res,
+ &ett_gsm_map_LCSLocationInfo,
&ett_gsm_map_SubscriberLocationReport_Arg,
+ &ett_gsm_map_Deferredmt_lrData,
&ett_gsm_map_SubscriberLocationReport_Res,
+ &ett_gsm_map_SecureTransportArg,
+ &ett_gsm_map_SecureTransportRes,
+ &ett_gsm_map_SecurityHeader,
+ &ett_gsm_map_OriginalComponentIdentifier,
+ &ett_gsm_map_OperationCode,
+ &ett_gsm_map_ErrorCode,
+ &ett_gsm_map_PlmnContainer,
+ &ett_gsm_map_T_operatorSS_Code,
&ett_gsm_map_SystemFailureParam,
- &ett_gsm_map_T_extensibleSystemFailureParam,
+ &ett_gsm_map_ExtensibleSystemFailureParam,
&ett_gsm_map_DataMissingParam,
&ett_gsm_map_UnexpectedDataParam,
&ett_gsm_map_FacilityNotSupParam,
&ett_gsm_map_AbsentSubscriberParam,
&ett_gsm_map_BusySubscriberParam,
&ett_gsm_map_NoSubscriberReplyParam,
- &ett_gsm_map_CallBarredParam,
- &ett_gsm_map_T_extensibleCallBarredParam,
+ &ett_gsm_map_ForwardingViolationParam,
&ett_gsm_map_ForwardingFailedParam,
+ &ett_gsm_map_ATI_NotAllowedParam,
+ &ett_gsm_map_ATSI_NotAllowedParam,
+ &ett_gsm_map_ATM_NotAllowedParam,
+ &ett_gsm_map_IllegalSS_OperationParam,
+ &ett_gsm_map_SS_NotAvailableParam,
+ &ett_gsm_map_SS_SubscriptionViolationParam,
+ &ett_gsm_map_InformationNotAvailableParam,
+ &ett_gsm_map_SubBusyForMT_SMS_Param,
+ &ett_gsm_map_CallBarredParam,
+ &ett_gsm_map_ExtensibleCallBarredParam,
+ &ett_gsm_map_CUG_RejectParam,
&ett_gsm_map_Or_NotAllowedParam,
- &ett_gsm_map_ForwardingViolationParam,
- &ett_gsm_map_Cug_RejectParam,
- &ett_gsm_map_Ati_NotAllowedParam,
&ett_gsm_map_NoGroupCallNbParam,
- &ett_gsm_map_Ss_IncompatibilityCause,
+ &ett_gsm_map_SS_IncompatibilityCause,
&ett_gsm_map_ShortTermDenialParam,
&ett_gsm_map_LongTermDenialParam,
- &ett_gsm_map_SubBusyForMT_SMS_Param,
- &ett_gsm_map_Sm_DeliveryFailureCause,
+ &ett_gsm_map_SM_DeliveryFailureCause,
&ett_gsm_map_MessageWaitListFullParam,
&ett_gsm_map_AbsentSubscriberSM_Param,
&ett_gsm_map_UnauthorizedRequestingNetwork_Param,
&ett_gsm_map_UnauthorizedLCSClient_Param,
&ett_gsm_map_PositionMethodFailure_Param,
&ett_gsm_map_UnknownOrUnreachableLCSClient_Param,
+ &ett_gsm_map_MM_EventNotSupported_Param,
+ &ett_gsm_map_TargetCellOutsideGCA_Param,
+ &ett_gsm_map_OngoingGroupCallParam,
+ &ett_gsm_map_SecureTransportErrorParam,
&ett_gsm_map_ExtensionContainer,
/*--- End of included file: packet-gsm_map-ettarr.c ---*/
-
+#line 2309 "packet-gsm_map-template.c"
};
/* Register protocol */
proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME);
-/*XXX register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);*/
+
+ register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map);
+
/* Register fields and subtrees */
proto_register_field_array(proto_gsm_map, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- sms_dissector_table =
- register_dissector_table("gsm_map.sms_tpdu", "GSM SMS TPDU",
- FT_UINT8, BASE_DEC);
+ sms_dissector_table = register_dissector_table("gsm_map.sms_tpdu",
+ "GSM SMS TPDU", FT_UINT8,
+ BASE_DEC);
gsm_map_tap = register_tap("gsm_map");
-}
+/* #include "packet-gsm_map-dis-tab.c" */
+ add_oid_str_name("1.2.826.0.1249.58.1.0","iso(1) member-body(2) bsi(826) disc(0) ericsson(1249) gsmNetworkApplicationsDefinition(58) gsm-Map(1) gsm-Map-Ext(0)" );
+ add_oid_str_name("1.3.12.2.1107.3.66.1.2","accessTypeNotAllowed-id" );
+ /*add_oid_str_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" );
+ *
+ * Register our configuration options, particularly our ssn:s
+ * Set default SSNs
+ */
+ range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
+ ssn_range = range_empty();
-/*--- proto_reg_handoff_gsm_map ---------------------------------------*/
-void proto_reg_handoff_gsm_map(void) {
- dissector_handle_t map_handle;
+ gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map);
- map_handle = create_dissector_handle(dissect_gsm_map, proto_gsm_map);
- dissector_add("tcap.itu_ssn", 6, map_handle);
- dissector_add("tcap.itu_ssn", 7, map_handle);
- dissector_add("tcap.itu_ssn", 8, map_handle);
- dissector_add("tcap.itu_ssn", 9, map_handle);
+ prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs",
+ "TCAP Subsystem numbers used for GSM MAP",
+ &global_ssn_range, MAX_SSN);
}
+
+