/* Do not modify this file. Changes will be overwritten. */ /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ /* packet-gsm_map.c */ /* asn2wrs.py -b -L -c ./gsm_map.cnf -s ./packet-gsm_map-template -D . -O ../.. ../ros/Remote-Operations-Information-Objects.asn MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn MAP-ExtensionDataTypes.asn MAP-CommonDataTypes.asn MAP-SS-DataTypes.asn MAP-ER-DataTypes.asn MAP-SM-DataTypes.asn MAP-OM-DataTypes.asn MAP-MS-DataTypes.asn MAP-CH-DataTypes.asn MAP-LCS-DataTypes.asn MAP-GR-DataTypes.asn MAP-DialogueInformation.asn MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn MAP-Errors.asn MAP-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn Ericsson.asn Nokia.asn */ /* XXX see bug 1852: * * packet-gsm_map.c: There are 1174 display filter fields registered. Most are * prefixed appropriately as "gsm_map", but many others are prefixed as * "gsm_old", or even "gad", "gsm_ss", or with no prefix at all. I don't know * if the ones with "gsm_old" are simply obsolete display filter fields or if * they should be prefixed as "gsm_map.old." or what. Similar uncertainties * for the others. Someone more knowledgeable than I am with respect to this * dissector should provide a patch for it. */ /* packet-gsm_map-template.c * Routines for GSM MobileApplication packet dissection * including GSM SS. * Copyright 2004 - 2010 , Anders Broman * Based on the dissector by: * Felix Fei * and Michael Lum * * Wireshark - Network traffic analyzer * By Gerald Combs * Copyright 1998 Gerald Combs * * SPDX-License-Identifier: GPL-2.0-or-later * References GSM MAP: * ETSI TS 129 002 * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7) * Updated to ETSI TS 129 002 V8.4.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8) * References GSM SS * References: 3GPP TS 24.080 */ #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include "packet-ber.h" #include "packet-per.h" #include "packet-q931.h" #include "packet-gsm_map.h" #include "packet-gsm_a_common.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" #include "packet-isup.h" #define PNAME "GSM Mobile Application" #define PSNAME "GSM_MAP" #define PFNAME "gsm_map" void proto_register_gsm_map(void); void proto_reg_handoff_gsm_map(void); /* Initialize the protocol and registered fields */ static int proto_gsm_map; static int proto_gsm_map_dialogue; static int proto_gsm_map_ms; static int hf_gsm_map_old_Component_PDU; static int hf_gsm_map_getPassword; static int hf_gsm_map_currentPassword; static int hf_gsm_map_extension; static int hf_gsm_map_nature_of_number; static int hf_gsm_map_number_plan; static int hf_gsm_map_address_digits; static int hf_gsm_map_TBCD_digits; static int hf_gsm_map_Ss_Status_unused; static int hf_gsm_map_Ss_Status_q_bit; static int hf_gsm_map_Ss_Status_p_bit; static int hf_gsm_map_Ss_Status_r_bit; static int hf_gsm_map_Ss_Status_a_bit; static int hf_gsm_map_notification_to_forwarding_party; static int hf_gsm_map_redirecting_presentation; static int hf_gsm_map_notification_to_calling_party; static int hf_gsm_map_forwarding_reason; static int hf_gsm_map_pdp_type_org; static int hf_gsm_map_etsi_pdp_type_number; static int hf_gsm_map_ietf_pdp_type_number; static int hf_gsm_map_ext_qos_subscribed_pri; static int hf_gsm_map_qos_traffic_cls; static int hf_gsm_map_qos_del_order; static int hf_gsm_map_qos_del_of_err_sdu; static int hf_gsm_map_qos_ber; static int hf_gsm_map_qos_sdu_err_rat; static int hf_gsm_map_qos_traff_hdl_pri; static int hf_gsm_map_qos_max_sdu; static int hf_gsm_map_max_brate_ulink; static int hf_gsm_map_max_brate_dlink; static int hf_gsm_map_qos_transfer_delay; static int hf_gsm_map_guaranteed_max_brate_ulink; static int hf_gsm_map_guaranteed_max_brate_dlink; static int hf_gsm_map_GSNAddress_IPv4; static int hf_gsm_map_GSNAddress_IPv6; static int hf_gsm_map_ranap_service_Handover; static int hf_gsm_map_IntegrityProtectionInformation; static int hf_gsm_map_EncryptionInformation; static int hf_gsm_map_ss_SS_UserData; static int hf_gsm_map_cbs_coding_grp; static int hf_gsm_map_cbs_coding_grp0_lang; static int hf_gsm_map_cbs_coding_grp1_lang; static int hf_gsm_map_cbs_coding_grp2_lang; static int hf_gsm_map_cbs_coding_grp3_lang; static int hf_gsm_map_cbs_coding_grp4_7_comp; static int hf_gsm_map_cbs_coding_grp4_7_class_ind; static int hf_gsm_map_cbs_coding_grp4_7_char_set; static int hf_gsm_map_cbs_coding_grp4_7_class; static int hf_gsm_map_cbs_coding_grp15_mess_code; static int hf_gsm_map_cbs_coding_grp15_class; static int hf_gsm_map_ie_tag; static int hf_gsm_map_len; static int hf_gsm_map_disc_par; static int hf_gsm_map_dlci; static int hf_gsm_apn_str; static int hf_gsm_map_ericsson_locationInformation_rat; static int hf_gsm_map_ericsson_locationInformation_lac; static int hf_gsm_map_ericsson_locationInformation_ci; static int hf_gsm_map_ericsson_locationInformation_sac; static int hf_gsm_map_ussd_string; static int hf_gsm_map_spare_bits; static int hf_gsm_map_qos_signalling_ind; static int hf_gsm_map_qos_source_stat_desc; static int hf_gsm_map_qos_max_bitrate_upl_ext; static int hf_gsm_map_qos_max_bitrate_downl_ext; static int hf_gsm_map_qos_guar_bitrate_upl_ext; static int hf_gsm_map_qos_guar_bitrate_downl_ext; /* static int hf_gsm_map_qos_max_bitrate_upl_ext2; static int hf_gsm_map_qos_max_bitrate_downl_ext2; static int hf_gsm_map_qos_guar_bitrate_upl_ext2; static int hf_gsm_map_qos_guar_bitrate_downl_ext2; */ static int hf_gsm_map_earp_pci; static int hf_gsm_map_earp_pl; static int hf_gsm_map_earp_pvi; /* --- Module MAP-ExtensionDataTypes --- --- --- */ static int hf_gsm_map_privateExtensionList; /* PrivateExtensionList */ static int hf_gsm_map_pcs_Extensions; /* PCS_Extensions */ static int hf_gsm_map_slr_Arg_PCS_Extensions; /* SLR_Arg_PCS_Extensions */ static int hf_gsm_map_PrivateExtensionList_item; /* PrivateExtension */ static int hf_gsm_map_extId; /* T_extId */ static int hf_gsm_map_extType; /* T_extType */ static int hf_gsm_map_na_ESRK_Request; /* NULL */ /* --- Module MAP-CommonDataTypes --- --- --- */ static int hf_gsm_map_gsm_map_ISDN_AddressString_PDU; /* ISDN_AddressString */ static int hf_gsm_map_protocolId; /* ProtocolId */ static int hf_gsm_map_signalInfo; /* SignalInfo */ static int hf_gsm_map_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_ext_ProtocolId; /* Ext_ProtocolId */ static int hf_gsm_map_accessNetworkProtocolId; /* AccessNetworkProtocolId */ static int hf_gsm_map_signalInfo_01; /* LongSignalInfo */ static int hf_gsm_map_imsi; /* IMSI */ static int hf_gsm_map_imsi_WithLMSI; /* IMSI_WithLMSI */ static int hf_gsm_map_lmsi; /* LMSI */ static int hf_gsm_map_tmsi; /* TMSI */ static int hf_gsm_map_HLR_List_item; /* HLR_Id */ static int hf_gsm_map_naea_PreferredCIC; /* NAEA_CIC */ static int hf_gsm_map_msisdn; /* ISDN_AddressString */ static int hf_gsm_map_externalAddress; /* ISDN_AddressString */ static int hf_gsm_map_diameter_Name; /* DiameterIdentity */ static int hf_gsm_map_diameter_Realm; /* DiameterIdentity */ static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength; /* CellGlobalIdOrServiceAreaIdFixedLength */ static int hf_gsm_map_laiFixedLength; /* LAIFixedLength */ static int hf_gsm_map_bearerService; /* BearerServiceCode */ static int hf_gsm_map_teleservice; /* TeleserviceCode */ static int hf_gsm_map_ext_BearerService; /* Ext_BearerServiceCode */ static int hf_gsm_map_ext_Teleservice; /* Ext_TeleserviceCode */ static int hf_gsm_map_maximumentitledPriority; /* EMLPP_Priority */ static int hf_gsm_map_defaultPriority; /* EMLPP_Priority */ static int hf_gsm_map_ss_Code; /* SS_Code */ static int hf_gsm_map_ss_Status; /* Ext_SS_Status */ static int hf_gsm_map_nbrSB; /* MaxMC_Bearers */ static int hf_gsm_map_nbrUser; /* MC_Bearers */ /* --- Module MAP-SS-DataTypes --- --- --- */ static int hf_gsm_map_ss_ss_Code; /* SS_Code */ static int hf_gsm_map_ss_basicService; /* BasicServiceCode */ static int hf_gsm_map_ss_forwardedToNumber; /* AddressString */ static int hf_gsm_map_ss_forwardedToSubaddress; /* ISDN_SubaddressString */ static int hf_gsm_map_ss_noReplyConditionTime; /* NoReplyConditionTime */ static int hf_gsm_map_ss_defaultPriority; /* EMLPP_Priority */ static int hf_gsm_map_ss_nbrUser; /* MC_Bearers */ static int hf_gsm_map_ss_longFTN_Supported; /* NULL */ static int hf_gsm_map_ss_forwardingInfo; /* ForwardingInfo */ static int hf_gsm_map_ss_callBarringInfo; /* CallBarringInfo */ static int hf_gsm_map_ss_ss_Data; /* SS_Data */ static int hf_gsm_map_ss_forwardingFeatureList; /* ForwardingFeatureList */ static int hf_gsm_map_ss_ForwardingFeatureList_item; /* ForwardingFeature */ static int hf_gsm_map_ss_ss_Status; /* SS_Status */ static int hf_gsm_map_ss_forwardedToNumber_01; /* ISDN_AddressString */ static int hf_gsm_map_ss_forwardingOptions; /* ForwardingOptions */ static int hf_gsm_map_ss_longForwardedToNumber; /* FTN_AddressString */ static int hf_gsm_map_ss_callBarringFeatureList; /* CallBarringFeatureList */ static int hf_gsm_map_ss_CallBarringFeatureList_item; /* CallBarringFeature */ static int hf_gsm_map_ss_ss_SubscriptionOption; /* SS_SubscriptionOption */ static int hf_gsm_map_ss_basicServiceGroupList; /* BasicServiceGroupList */ static int hf_gsm_map_ss_cliRestrictionOption; /* CliRestrictionOption */ static int hf_gsm_map_ss_overrideCategory; /* OverrideCategory */ static int hf_gsm_map_ss_maximumEntitledPriority; /* EMLPP_Priority */ static int hf_gsm_map_ss_ccbs_FeatureList; /* CCBS_FeatureList */ static int hf_gsm_map_ss_nbrSB; /* MaxMC_Bearers */ static int hf_gsm_map_ss_nbrSN; /* MC_Bearers */ static int hf_gsm_map_ss_CCBS_FeatureList_item; /* CCBS_Feature */ static int hf_gsm_map_ss_ccbs_Index; /* CCBS_Index */ static int hf_gsm_map_ss_b_subscriberNumber; /* ISDN_AddressString */ static int hf_gsm_map_ss_b_subscriberSubaddress; /* ISDN_SubaddressString */ static int hf_gsm_map_ss_basicServiceGroup; /* BasicServiceCode */ static int hf_gsm_map_ss_genericServiceInfo; /* GenericServiceInfo */ static int hf_gsm_map_ss_ussd_DataCodingScheme; /* USSD_DataCodingScheme */ static int hf_gsm_map_ss_ussd_String; /* USSD_String */ static int hf_gsm_map_ss_alertingPattern; /* AlertingPattern */ static int hf_gsm_map_ss_msisdn; /* ISDN_AddressString */ static int hf_gsm_map_ss_SS_List_item; /* SS_Code */ static int hf_gsm_map_ss_BasicServiceGroupList_item; /* BasicServiceCode */ static int hf_gsm_map_ss_imsi; /* IMSI */ static int hf_gsm_map_ss_ss_Event; /* SS_Code */ static int hf_gsm_map_ss_ss_EventSpecification; /* SS_EventSpecification */ static int hf_gsm_map_ss_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_ss_ccbs_RequestState; /* CCBS_RequestState */ static int hf_gsm_map_ss_SS_EventSpecification_item; /* AddressString */ static int hf_gsm_map_ss_ccbs_Data; /* CCBS_Data */ static int hf_gsm_map_ss_ccbs_Feature; /* CCBS_Feature */ static int hf_gsm_map_ss_translatedB_Number; /* ISDN_AddressString */ static int hf_gsm_map_ss_serviceIndicator; /* ServiceIndicator */ static int hf_gsm_map_ss_callInfo; /* ExternalSignalInfo */ static int hf_gsm_map_ss_networkSignalInfo; /* ExternalSignalInfo */ /* named bits */ static int hf_gsm_map_ss_ServiceIndicator_clir_invoked; static int hf_gsm_map_ss_ServiceIndicator_camel_invoked; /* --- Module MAP-ER-DataTypes --- --- --- */ static int hf_gsm_map_er_roamingNotAllowedCause; /* RoamingNotAllowedCause */ static int hf_gsm_map_er_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_er_additionalRoamingNotAllowedCause; /* AdditionalRoamingNotAllowedCause */ static int hf_gsm_map_er_callBarringCause; /* CallBarringCause */ static int hf_gsm_map_er_extensibleCallBarredParam; /* ExtensibleCallBarredParam */ static int hf_gsm_map_er_unauthorisedMessageOriginator; /* NULL */ static int hf_gsm_map_er_anonymousCallRejection; /* NULL */ static int hf_gsm_map_er_cug_RejectCause; /* CUG_RejectCause */ static int hf_gsm_map_er_ss_Code; /* SS_Code */ static int hf_gsm_map_er_basicService; /* BasicServiceCode */ static int hf_gsm_map_er_ss_Status; /* SS_Status */ static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause; /* SM_EnumeratedDeliveryFailureCause */ static int hf_gsm_map_er_diagnosticInfo; /* SignalInfo */ static int hf_gsm_map_er_absentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_er_imsi; /* IMSI */ static int hf_gsm_map_er_requestedRetransmissionTime; /* Time */ static int hf_gsm_map_er_userIdentifierAlert; /* IMSI */ static int hf_gsm_map_er_networkResource; /* NetworkResource */ static int hf_gsm_map_er_extensibleSystemFailureParam; /* ExtensibleSystemFailureParam */ static int hf_gsm_map_er_additionalNetworkResource; /* AdditionalNetworkResource */ static int hf_gsm_map_er_failureCauseParam; /* FailureCauseParam */ static int hf_gsm_map_er_unexpectedSubscriber; /* NULL */ static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported; /* NULL */ static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode; /* NULL */ static int hf_gsm_map_er_unknownSubscriberDiagnostic; /* UnknownSubscriberDiagnostic */ static int hf_gsm_map_er_absentSubscriberReason; /* AbsentSubscriberReason */ static int hf_gsm_map_er_ccbs_Possible; /* NULL */ static int hf_gsm_map_er_ccbs_Busy; /* NULL */ static int hf_gsm_map_er_gprsConnectionSuspended; /* NULL */ static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic; /* UnauthorizedLCSClient_Diagnostic */ static int hf_gsm_map_er_positionMethodFailure_Diagnostic; /* PositionMethodFailure_Diagnostic */ /* --- Module MAP-SM-DataTypes --- --- --- */ static int hf_gsm_map_sm_msisdn; /* ISDN_AddressString */ static int hf_gsm_map_sm_sm_RP_PRI; /* BOOLEAN */ static int hf_gsm_map_sm_serviceCentreAddress; /* AddressString */ static int hf_gsm_map_sm_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_sm_gprsSupportIndicator; /* NULL */ static int hf_gsm_map_sm_sm_RP_MTI; /* SM_RP_MTI */ static int hf_gsm_map_sm_sm_RP_SMEA; /* SM_RP_SMEA */ static int hf_gsm_map_sm_sm_deliveryNotIntended; /* SM_DeliveryNotIntended */ static int hf_gsm_map_sm_ip_sm_gwGuidanceIndicator; /* NULL */ static int hf_gsm_map_sm_imsi; /* IMSI */ static int hf_gsm_map_sm_t4_Trigger_Indicator; /* NULL */ static int hf_gsm_map_sm_singleAttemptDelivery; /* NULL */ static int hf_gsm_map_sm_correlationID; /* CorrelationID */ static int hf_gsm_map_sm_smsf_supportIndicator; /* NULL */ static int hf_gsm_map_sm_locationInfoWithLMSI; /* LocationInfoWithLMSI */ static int hf_gsm_map_sm_ip_sm_gwGuidance; /* IP_SM_GW_Guidance */ static int hf_gsm_map_sm_minimumDeliveryTimeValue; /* SM_DeliveryTimerValue */ static int hf_gsm_map_sm_recommendedDeliveryTimeValue; /* SM_DeliveryTimerValue */ static int hf_gsm_map_sm_networkNode_Number; /* ISDN_AddressString */ static int hf_gsm_map_sm_lmsi; /* LMSI */ static int hf_gsm_map_sm_gprsNodeIndicator; /* NULL */ static int hf_gsm_map_sm_additional_Number; /* Additional_Number */ static int hf_gsm_map_sm_networkNodeDiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_additionalNetworkNodeDiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_thirdNumber; /* Additional_Number */ static int hf_gsm_map_sm_thirdNetworkNodeDiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_imsNodeIndicator; /* NULL */ static int hf_gsm_map_sm_smsf_3gpp_Number; /* ISDN_AddressString */ static int hf_gsm_map_sm_smsf_3gpp_DiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_smsf_non_3gpp_Number; /* ISDN_AddressString */ static int hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_smsf_3gpp_address_indicator; /* NULL */ static int hf_gsm_map_sm_smsf_non_3gpp_address_indicator; /* NULL */ static int hf_gsm_map_sm_msc_Number; /* ISDN_AddressString */ static int hf_gsm_map_sm_sgsn_Number; /* ISDN_AddressString */ static int hf_gsm_map_sm_sm_RP_DA; /* SM_RP_DA */ static int hf_gsm_map_sm_sm_RP_OA; /* SM_RP_OA */ static int hf_gsm_map_sm_sm_RP_UI; /* SignalInfo */ static int hf_gsm_map_sm_sm_DeliveryOutcome; /* SM_DeliveryOutcome */ static int hf_gsm_map_sm_moreMessagesToSend; /* NULL */ static int hf_gsm_map_sm_smDeliveryTimer; /* SM_DeliveryTimerValue */ static int hf_gsm_map_sm_smDeliveryStartTime; /* Time */ static int hf_gsm_map_sm_smsOverIP_OnlyIndicator; /* NULL */ static int hf_gsm_map_sm_maximumRetransmissionTime; /* Time */ static int hf_gsm_map_sm_smsGmscAddress; /* ISDN_AddressString */ static int hf_gsm_map_sm_smsGmscDiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_hlr_id; /* HLR_Id */ static int hf_gsm_map_sm_sip_uri_A; /* SIP_URI */ static int hf_gsm_map_sm_sip_uri_B; /* SIP_URI */ static int hf_gsm_map_sm_imsi_01; /* T_imsi */ static int hf_gsm_map_sm_lmsi_01; /* T_lmsi */ static int hf_gsm_map_sm_serviceCentreAddressDA; /* T_serviceCentreAddressDA */ static int hf_gsm_map_sm_noSM_RP_DA; /* T_noSM_RP_DA */ static int hf_gsm_map_sm_msisdn_01; /* T_msisdn */ static int hf_gsm_map_sm_serviceCentreAddressOA; /* T_serviceCentreAddressOA */ static int hf_gsm_map_sm_noSM_RP_OA; /* T_noSM_RP_OA */ static int hf_gsm_map_sm_absentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_deliveryOutcomeIndicator; /* NULL */ static int hf_gsm_map_sm_additionalSM_DeliveryOutcome; /* SM_DeliveryOutcome */ static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_ip_sm_gw_Indicator; /* NULL */ static int hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome; /* SM_DeliveryOutcome */ static int hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator; /* NULL */ static int hf_gsm_map_sm_smsf_3gpp_deliveryOutcome; /* SM_DeliveryOutcome */ static int hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator; /* NULL */ static int hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome; /* SM_DeliveryOutcome */ static int hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_storedMSISDN; /* ISDN_AddressString */ static int hf_gsm_map_sm_maximumUeAvailabilityTime; /* Time */ static int hf_gsm_map_sm_smsGmscAlertEvent; /* SmsGmsc_Alert_Event */ static int hf_gsm_map_sm_newSGSNNumber; /* ISDN_AddressString */ static int hf_gsm_map_sm_newSGSNDiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_newMMENumber; /* ISDN_AddressString */ static int hf_gsm_map_sm_newMMEDiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_sm_newMSCNumber; /* ISDN_AddressString */ static int hf_gsm_map_sm_mw_Status; /* MW_Status */ static int hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_sm_alertReason; /* AlertReason */ static int hf_gsm_map_sm_alertReasonIndicator; /* NULL */ static int hf_gsm_map_sm_additionalAlertReasonIndicator; /* NULL */ static int hf_gsm_map_sm_asciCallReference; /* ASCI_CallReference */ static int hf_gsm_map_sm_dispatcherList; /* DispatcherList */ static int hf_gsm_map_sm_ongoingCall; /* NULL */ static int hf_gsm_map_sm_additionalDispatcherList; /* AdditionalDispatcherList */ static int hf_gsm_map_sm_DispatcherList_item; /* ISDN_AddressString */ static int hf_gsm_map_sm_AdditionalDispatcherList_item; /* ISDN_AddressString */ /* named bits */ static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded; static int hf_gsm_map_sm_MW_Status_mnrf_Set; static int hf_gsm_map_sm_MW_Status_mcef_Set; static int hf_gsm_map_sm_MW_Status_mnrg_Set; static int hf_gsm_map_sm_MW_Status_mnr5g_Set; static int hf_gsm_map_sm_MW_Status_mnr5gn3g_Set; /* --- Module MAP-OM-DataTypes --- --- --- */ static int hf_gsm_map_om_imsi; /* IMSI */ static int hf_gsm_map_om_traceReference; /* TraceReference */ static int hf_gsm_map_om_traceType; /* TraceType */ static int hf_gsm_map_om_omc_Id; /* AddressString */ static int hf_gsm_map_om_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_om_traceReference2; /* TraceReference2 */ static int hf_gsm_map_om_traceDepthList; /* TraceDepthList */ static int hf_gsm_map_om_traceNE_TypeList; /* TraceNE_TypeList */ static int hf_gsm_map_om_traceInterfaceList; /* TraceInterfaceList */ static int hf_gsm_map_om_traceEventList; /* TraceEventList */ static int hf_gsm_map_om_traceCollectionEntity; /* GSN_Address */ static int hf_gsm_map_om_mdt_Configuration; /* MDT_Configuration */ static int hf_gsm_map_om_jobType; /* JobType */ static int hf_gsm_map_om_areaScope; /* AreaScope */ static int hf_gsm_map_om_listOfMeasurements; /* ListOfMeasurements */ static int hf_gsm_map_om_reportingTrigger; /* ReportingTrigger */ static int hf_gsm_map_om_reportInterval; /* ReportInterval */ static int hf_gsm_map_om_reportAmount; /* ReportAmount */ static int hf_gsm_map_om_eventThresholdRSRP; /* EventThresholdRSRP */ static int hf_gsm_map_om_eventThresholdRSRQ; /* EventThresholdRSRQ */ static int hf_gsm_map_om_loggingInterval; /* LoggingInterval */ static int hf_gsm_map_om_loggingDuration; /* LoggingDuration */ static int hf_gsm_map_om_measurementPeriodUMTS; /* PeriodUMTS */ static int hf_gsm_map_om_measurementPeriodLTE; /* PeriodLTE */ static int hf_gsm_map_om_collectionPeriodRRM_UMTS; /* PeriodUMTS */ static int hf_gsm_map_om_collectionPeriodRRM_LTE; /* PeriodLTE */ static int hf_gsm_map_om_positioningMethod; /* PositioningMethod */ static int hf_gsm_map_om_measurementQuantity; /* MeasurementQuantity */ static int hf_gsm_map_om_eventThreshold1F; /* EventThreshold1F */ static int hf_gsm_map_om_eventThreshold1I; /* EventThreshold1I */ static int hf_gsm_map_om_mdt_Allowed_PLMN_List; /* MDT_Allowed_PLMNId_List */ static int hf_gsm_map_om_MDT_Allowed_PLMNId_List_item; /* PLMN_Id */ static int hf_gsm_map_om_cgi_List; /* CGI_List */ static int hf_gsm_map_om_e_utran_cgi_List; /* E_UTRAN_CGI_List */ static int hf_gsm_map_om_routingAreaId_List; /* RoutingAreaId_List */ static int hf_gsm_map_om_locationAreaId_List; /* LocationAreaId_List */ static int hf_gsm_map_om_trackingAreaId_List; /* TrackingAreaId_List */ static int hf_gsm_map_om_CGI_List_item; /* GlobalCellId */ static int hf_gsm_map_om_E_UTRAN_CGI_List_item; /* E_UTRAN_CGI */ static int hf_gsm_map_om_RoutingAreaId_List_item; /* RAIdentity */ static int hf_gsm_map_om_LocationAreaId_List_item; /* LAIFixedLength */ static int hf_gsm_map_om_TrackingAreaId_List_item; /* TA_Id */ static int hf_gsm_map_om_msc_s_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_mgw_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_sgsn_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_ggsn_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_rnc_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_bmsc_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_mme_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_sgw_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_pgw_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_eNB_TraceDepth; /* TraceDepth */ static int hf_gsm_map_om_msc_s_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_mgw_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_sgsn_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_ggsn_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_rnc_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_bmsc_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_mme_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_sgw_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_pgw_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_eNB_TraceDepthExtension; /* TraceDepthExtension */ static int hf_gsm_map_om_msc_s_List; /* MSC_S_InterfaceList */ static int hf_gsm_map_om_mgw_List; /* MGW_InterfaceList */ static int hf_gsm_map_om_sgsn_List; /* SGSN_InterfaceList */ static int hf_gsm_map_om_ggsn_List; /* GGSN_InterfaceList */ static int hf_gsm_map_om_rnc_List; /* RNC_InterfaceList */ static int hf_gsm_map_om_bmsc_List; /* BMSC_InterfaceList */ static int hf_gsm_map_om_mme_List; /* MME_InterfaceList */ static int hf_gsm_map_om_sgw_List; /* SGW_InterfaceList */ static int hf_gsm_map_om_pgw_List; /* PGW_InterfaceList */ static int hf_gsm_map_om_eNB_List; /* ENB_InterfaceList */ static int hf_gsm_map_om_msc_s_List_01; /* MSC_S_EventList */ static int hf_gsm_map_om_mgw_List_01; /* MGW_EventList */ static int hf_gsm_map_om_sgsn_List_01; /* SGSN_EventList */ static int hf_gsm_map_om_ggsn_List_01; /* GGSN_EventList */ static int hf_gsm_map_om_bmsc_List_01; /* BMSC_EventList */ static int hf_gsm_map_om_mme_List_01; /* MME_EventList */ static int hf_gsm_map_om_sgw_List_01; /* SGW_EventList */ static int hf_gsm_map_om_pgw_List_01; /* PGW_EventList */ static int hf_gsm_map_om_traceRecordingSessionReference; /* TraceRecordingSessionReference */ static int hf_gsm_map_om_rnc_InterfaceList; /* RNC_InterfaceList */ static int hf_gsm_map_om_msc_s_InterfaceList; /* MSC_S_InterfaceList */ static int hf_gsm_map_om_msc_s_EventList; /* MSC_S_EventList */ static int hf_gsm_map_om_mgw_InterfaceList; /* MGW_InterfaceList */ static int hf_gsm_map_om_mgw_EventList; /* MGW_EventList */ static int hf_gsm_map_om_traceSupportIndicator; /* NULL */ /* named bits */ static int hf_gsm_map_om_TraceNE_TypeList_msc_s; static int hf_gsm_map_om_TraceNE_TypeList_mgw; static int hf_gsm_map_om_TraceNE_TypeList_sgsn; static int hf_gsm_map_om_TraceNE_TypeList_ggsn; static int hf_gsm_map_om_TraceNE_TypeList_rnc; static int hf_gsm_map_om_TraceNE_TypeList_bm_sc; static int hf_gsm_map_om_TraceNE_TypeList_mme; static int hf_gsm_map_om_TraceNE_TypeList_sgw; static int hf_gsm_map_om_TraceNE_TypeList_pgw; static int hf_gsm_map_om_TraceNE_TypeList_eNB; static int hf_gsm_map_om_MSC_S_InterfaceList_a; static int hf_gsm_map_om_MSC_S_InterfaceList_iu; static int hf_gsm_map_om_MSC_S_InterfaceList_mc; static int hf_gsm_map_om_MSC_S_InterfaceList_map_g; static int hf_gsm_map_om_MSC_S_InterfaceList_map_b; static int hf_gsm_map_om_MSC_S_InterfaceList_map_e; static int hf_gsm_map_om_MSC_S_InterfaceList_map_f; static int hf_gsm_map_om_MSC_S_InterfaceList_cap; static int hf_gsm_map_om_MSC_S_InterfaceList_map_d; static int hf_gsm_map_om_MSC_S_InterfaceList_map_c; static int hf_gsm_map_om_MGW_InterfaceList_mc; static int hf_gsm_map_om_MGW_InterfaceList_nb_up; static int hf_gsm_map_om_MGW_InterfaceList_iu_up; static int hf_gsm_map_om_SGSN_InterfaceList_gb; static int hf_gsm_map_om_SGSN_InterfaceList_iu; static int hf_gsm_map_om_SGSN_InterfaceList_gn; static int hf_gsm_map_om_SGSN_InterfaceList_map_gr; static int hf_gsm_map_om_SGSN_InterfaceList_map_gd; static int hf_gsm_map_om_SGSN_InterfaceList_map_gf; static int hf_gsm_map_om_SGSN_InterfaceList_gs; static int hf_gsm_map_om_SGSN_InterfaceList_ge; static int hf_gsm_map_om_SGSN_InterfaceList_s3; static int hf_gsm_map_om_SGSN_InterfaceList_s4; static int hf_gsm_map_om_SGSN_InterfaceList_s6d; static int hf_gsm_map_om_GGSN_InterfaceList_gn; static int hf_gsm_map_om_GGSN_InterfaceList_gi; static int hf_gsm_map_om_GGSN_InterfaceList_gmb; static int hf_gsm_map_om_RNC_InterfaceList_iu; static int hf_gsm_map_om_RNC_InterfaceList_iur; static int hf_gsm_map_om_RNC_InterfaceList_iub; static int hf_gsm_map_om_RNC_InterfaceList_uu; static int hf_gsm_map_om_BMSC_InterfaceList_gmb; static int hf_gsm_map_om_MME_InterfaceList_s1_mme; static int hf_gsm_map_om_MME_InterfaceList_s3; static int hf_gsm_map_om_MME_InterfaceList_s6a; static int hf_gsm_map_om_MME_InterfaceList_s10; static int hf_gsm_map_om_MME_InterfaceList_s11; static int hf_gsm_map_om_SGW_InterfaceList_s4; static int hf_gsm_map_om_SGW_InterfaceList_s5; static int hf_gsm_map_om_SGW_InterfaceList_s8b; static int hf_gsm_map_om_SGW_InterfaceList_s11; static int hf_gsm_map_om_SGW_InterfaceList_gxc; static int hf_gsm_map_om_PGW_InterfaceList_s2a; static int hf_gsm_map_om_PGW_InterfaceList_s2b; static int hf_gsm_map_om_PGW_InterfaceList_s2c; static int hf_gsm_map_om_PGW_InterfaceList_s5; static int hf_gsm_map_om_PGW_InterfaceList_s6b; static int hf_gsm_map_om_PGW_InterfaceList_gx; static int hf_gsm_map_om_PGW_InterfaceList_s8b; static int hf_gsm_map_om_PGW_InterfaceList_sgi; static int hf_gsm_map_om_ENB_InterfaceList_s1_mme; static int hf_gsm_map_om_ENB_InterfaceList_x2; static int hf_gsm_map_om_ENB_InterfaceList_uu; static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall; static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms; static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach; static int hf_gsm_map_om_MSC_S_EventList_handovers; static int hf_gsm_map_om_MSC_S_EventList_ss; static int hf_gsm_map_om_MGW_EventList_context; static int hf_gsm_map_om_SGSN_EventList_pdpContext; static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms; static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach; static int hf_gsm_map_om_SGSN_EventList_mbmsContext; static int hf_gsm_map_om_GGSN_EventList_pdpContext; static int hf_gsm_map_om_GGSN_EventList_mbmsContext; static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation; static int hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest; static int hf_gsm_map_om_MME_EventList_serviceRequestts; static int hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach; static int hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection; static int hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion; static int hf_gsm_map_om_MME_EventList_handover; static int hf_gsm_map_om_SGW_EventList_pdn_connectionCreation; static int hf_gsm_map_om_SGW_EventList_pdn_connectionTermination; static int hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion; static int hf_gsm_map_om_PGW_EventList_pdn_connectionCreation; static int hf_gsm_map_om_PGW_EventList_pdn_connectionTermination; static int hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion; /* --- Module MAP-MS-DataTypes --- --- --- */ static int hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU; /* SendAuthenticationInfoArg */ static int hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU; /* SendAuthenticationInfoRes */ static int hf_gsm_map_ms_imsi; /* IMSI */ static int hf_gsm_map_ms_msc_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_vlr_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_lmsi; /* LMSI */ static int hf_gsm_map_ms_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_ms_vlr_Capability; /* VLR_Capability */ static int hf_gsm_map_ms_informPreviousNetworkEntity; /* NULL */ static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE; /* NULL */ static int hf_gsm_map_ms_v_gmlc_Address; /* GSN_Address */ static int hf_gsm_map_ms_add_info; /* ADD_Info */ static int hf_gsm_map_ms_pagingArea; /* PagingArea */ static int hf_gsm_map_ms_skipSubscriberDataUpdate; /* NULL */ static int hf_gsm_map_ms_restorationIndicator; /* NULL */ static int hf_gsm_map_ms_eplmn_List; /* EPLMN_List */ static int hf_gsm_map_ms_mme_DiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_ms_supportedCamelPhases; /* SupportedCamelPhases */ static int hf_gsm_map_ms_solsaSupportIndicator; /* NULL */ static int hf_gsm_map_ms_istSupportIndicator; /* IST_SupportIndicator */ static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity; /* SuperChargerInfo */ static int hf_gsm_map_ms_longFTN_Supported; /* NULL */ static int hf_gsm_map_ms_supportedLCS_CapabilitySets; /* SupportedLCS_CapabilitySets */ static int hf_gsm_map_ms_offeredCamel4CSIs; /* OfferedCamel4CSIs */ static int hf_gsm_map_ms_supportedRAT_TypesIndicator; /* SupportedRAT_Types */ static int hf_gsm_map_ms_longGroupID_Supported; /* NULL */ static int hf_gsm_map_ms_mtRoamingForwardingSupported; /* NULL */ static int hf_gsm_map_ms_msisdn_lessOperation_Supported; /* NULL */ static int hf_gsm_map_ms_reset_ids_Supported; /* NULL */ static int hf_gsm_map_ms_sendSubscriberData; /* NULL */ static int hf_gsm_map_ms_subscriberDataStored; /* AgeIndicator */ static int hf_gsm_map_ms_hlr_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_add_Capability; /* NULL */ static int hf_gsm_map_ms_pagingArea_Capability; /* NULL */ static int hf_gsm_map_ms_imeisv; /* IMEI */ static int hf_gsm_map_ms_PagingArea_item; /* LocationArea */ static int hf_gsm_map_ms_laiFixedLength; /* LAIFixedLength */ static int hf_gsm_map_ms_lac; /* LAC */ static int hf_gsm_map_ms_identity; /* Identity */ static int hf_gsm_map_ms_cancellationType; /* CancellationType */ static int hf_gsm_map_ms_typeOfUpdate; /* TypeOfUpdate */ static int hf_gsm_map_ms_mtrf_SupportedAndAuthorized; /* NULL */ static int hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized; /* NULL */ static int hf_gsm_map_ms_newMSC_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_newVLR_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_new_lmsi; /* LMSI */ static int hf_gsm_map_ms_reattach_Required; /* NULL */ static int hf_gsm_map_ms_sgsn_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_locationInformation; /* LocationInformation */ static int hf_gsm_map_ms_locationInformationGPRS; /* LocationInformationGPRS */ static int hf_gsm_map_ms_locationInformationEPS; /* LocationInformationEPS */ static int hf_gsm_map_ms_freezeTMSI; /* NULL */ static int hf_gsm_map_ms_freezeP_TMSI; /* NULL */ static int hf_gsm_map_ms_freezeM_TMSI; /* NULL */ static int hf_gsm_map_ms_tmsi; /* TMSI */ static int hf_gsm_map_ms_numberOfRequestedVectors; /* NumberOfRequestedVectors */ static int hf_gsm_map_ms_segmentationProhibited; /* NULL */ static int hf_gsm_map_ms_previous_LAI; /* LAIFixedLength */ static int hf_gsm_map_ms_hopCounter; /* HopCounter */ static int hf_gsm_map_ms_authenticationSetList; /* AuthenticationSetList */ static int hf_gsm_map_ms_currentSecurityContext; /* CurrentSecurityContext */ static int hf_gsm_map_ms_lastUsedLtePLMN_Id; /* PLMN_Id */ static int hf_gsm_map_ms_mtCallPendingFlag; /* NULL */ static int hf_gsm_map_ms_tripletList; /* TripletList */ static int hf_gsm_map_ms_quintupletList; /* QuintupletList */ static int hf_gsm_map_ms_TripletList_item; /* AuthenticationTriplet */ static int hf_gsm_map_ms_QuintupletList_item; /* AuthenticationQuintuplet */ static int hf_gsm_map_ms_rand; /* RAND */ static int hf_gsm_map_ms_sres; /* SRES */ static int hf_gsm_map_ms_kc; /* Kc */ static int hf_gsm_map_ms_xres; /* XRES */ static int hf_gsm_map_ms_ck; /* CK */ static int hf_gsm_map_ms_ik; /* IK */ static int hf_gsm_map_ms_autn; /* AUTN */ static int hf_gsm_map_ms_gsm_SecurityContextData; /* GSM_SecurityContextData */ static int hf_gsm_map_ms_umts_SecurityContextData; /* UMTS_SecurityContextData */ static int hf_gsm_map_ms_cksn; /* Cksn */ static int hf_gsm_map_ms_ksi; /* KSI */ static int hf_gsm_map_ms_failureCause; /* FailureCause */ static int hf_gsm_map_ms_re_attempt; /* BOOLEAN */ static int hf_gsm_map_ms_accessType; /* AccessType */ static int hf_gsm_map_ms_sgsn_Address; /* GSN_Address */ static int hf_gsm_map_ms_sgsn_Capability; /* SGSN_Capability */ static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE; /* NULL */ static int hf_gsm_map_ms_eps_info; /* EPS_Info */ static int hf_gsm_map_ms_servingNodeTypeIndicator; /* NULL */ static int hf_gsm_map_ms_usedRAT_Type; /* Used_RAT_Type */ static int hf_gsm_map_ms_gprsSubscriptionDataNotNeeded; /* NULL */ static int hf_gsm_map_ms_nodeTypeIndicator; /* NULL */ static int hf_gsm_map_ms_areaRestricted; /* NULL */ static int hf_gsm_map_ms_ue_reachableIndicator; /* NULL */ static int hf_gsm_map_ms_epsSubscriptionDataNotNeeded; /* NULL */ static int hf_gsm_map_ms_ue_srvcc_Capability; /* UE_SRVCC_Capability */ static int hf_gsm_map_ms_mmeNumberforMTSMS; /* ISDN_AddressString */ static int hf_gsm_map_ms_smsRegisterRequest; /* SMSRegisterRequest */ static int hf_gsm_map_ms_sms_Only; /* NULL */ static int hf_gsm_map_ms_removalofMMERegistrationforSMS; /* NULL */ static int hf_gsm_map_ms_sgsn_Name; /* DiameterIdentity */ static int hf_gsm_map_ms_sgsn_Realm; /* DiameterIdentity */ static int hf_gsm_map_ms_lgd_supportIndicator; /* NULL */ static int hf_gsm_map_ms_adjacentPLMN_List; /* AdjacentPLMN_List */ static int hf_gsm_map_ms_pdn_gw_update; /* PDN_GW_Update */ static int hf_gsm_map_ms_isr_Information; /* ISR_Information */ static int hf_gsm_map_ms_apn; /* APN */ static int hf_gsm_map_ms_pdn_gw_Identity; /* PDN_GW_Identity */ static int hf_gsm_map_ms_contextId; /* ContextId */ static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator; /* NULL */ static int hf_gsm_map_ms_smsCallBarringSupportIndicator; /* NULL */ static int hf_gsm_map_ms_supportedFeatures; /* SupportedFeatures */ static int hf_gsm_map_ms_t_adsDataRetrieval; /* NULL */ static int hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions; /* BOOLEAN */ static int hf_gsm_map_ms_cancellationTypeInitialAttach; /* NULL */ static int hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions; /* NULL */ static int hf_gsm_map_ms_ext_SupportedFeatures; /* Ext_SupportedFeatures */ static int hf_gsm_map_ms_sgsn_mmeSeparationSupported; /* NULL */ static int hf_gsm_map_ms_mmeRegisteredforSMS; /* NULL */ static int hf_gsm_map_ms_EPLMN_List_item; /* PLMN_Id */ static int hf_gsm_map_ms_AdjacentPLMN_List_item; /* PLMN_Id */ static int hf_gsm_map_ms_an_APDU; /* AccessNetworkSignalInfo */ static int hf_gsm_map_ms_integrityProtectionInfo; /* IntegrityProtectionInformation */ static int hf_gsm_map_ms_encryptionInfo; /* EncryptionInformation */ static int hf_gsm_map_ms_keyStatus; /* KeyStatus */ static int hf_gsm_map_ms_allowedGSM_Algorithms; /* AllowedGSM_Algorithms */ static int hf_gsm_map_ms_allowedUMTS_Algorithms; /* AllowedUMTS_Algorithms */ static int hf_gsm_map_ms_radioResourceInformation; /* RadioResourceInformation */ static int hf_gsm_map_ms_radioResourceList; /* RadioResourceList */ static int hf_gsm_map_ms_bssmap_ServiceHandover; /* BSSMAP_ServiceHandover */ static int hf_gsm_map_ms_ranap_ServiceHandover; /* RANAP_ServiceHandover */ static int hf_gsm_map_ms_bssmap_ServiceHandoverList; /* BSSMAP_ServiceHandoverList */ static int hf_gsm_map_ms_currentlyUsedCodec; /* Codec */ static int hf_gsm_map_ms_iuSupportedCodecsList; /* SupportedCodecsList */ static int hf_gsm_map_ms_rab_ConfigurationIndicator; /* NULL */ static int hf_gsm_map_ms_iuSelectedCodec; /* Codec */ static int hf_gsm_map_ms_alternativeChannelType; /* RadioResourceInformation */ static int hf_gsm_map_ms_tracePropagationList; /* TracePropagationList */ static int hf_gsm_map_ms_aoipSupportedCodecsListAnchor; /* AoIPCodecsList */ static int hf_gsm_map_ms_aoipSelectedCodecTarget; /* AoIPCodec */ static int hf_gsm_map_ms_uesbi_Iu; /* UESBI_Iu */ static int hf_gsm_map_ms_integrityProtectionAlgorithms; /* PermittedIntegrityProtectionAlgorithms */ static int hf_gsm_map_ms_encryptionAlgorithms; /* PermittedEncryptionAlgorithms */ static int hf_gsm_map_ms_targetCellId; /* GlobalCellId */ static int hf_gsm_map_ms_ho_NumberNotRequired; /* NULL */ static int hf_gsm_map_ms_targetRNCId; /* RNCId */ static int hf_gsm_map_ms_multipleBearerRequested; /* NULL */ static int hf_gsm_map_ms_rab_Id; /* RAB_Id */ static int hf_gsm_map_ms_asciCallReference; /* ASCI_CallReference */ static int hf_gsm_map_ms_geran_classmark; /* GERAN_Classmark */ static int hf_gsm_map_ms_iuCurrentlyUsedCodec; /* Codec */ static int hf_gsm_map_ms_regionalSubscriptionData; /* ZoneCodeList */ static int hf_gsm_map_ms_lclsGlobalCallReference; /* LCLS_GlobalCallReference */ static int hf_gsm_map_ms_lcls_Negotiation; /* LCLS_Negotiation */ static int hf_gsm_map_ms_lcls_Configuration_Preference; /* LCLS_ConfigurationPreference */ static int hf_gsm_map_ms_csg_SubscriptionDataList; /* CSG_SubscriptionDataList */ static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item; /* BSSMAP_ServiceHandoverInfo */ static int hf_gsm_map_ms_RadioResourceList_item; /* RadioResource */ static int hf_gsm_map_ms_handoverNumber; /* ISDN_AddressString */ static int hf_gsm_map_ms_relocationNumberList; /* RelocationNumberList */ static int hf_gsm_map_ms_multicallBearerInfo; /* MulticallBearerInfo */ static int hf_gsm_map_ms_multipleBearerNotSupported; /* NULL */ static int hf_gsm_map_ms_selectedUMTS_Algorithms; /* SelectedUMTS_Algorithms */ static int hf_gsm_map_ms_chosenRadioResourceInformation; /* ChosenRadioResourceInformation */ static int hf_gsm_map_ms_iuAvailableCodecsList; /* CodecList */ static int hf_gsm_map_ms_aoipAvailableCodecsListMap; /* AoIPCodecsList */ static int hf_gsm_map_ms_integrityProtectionAlgorithm; /* ChosenIntegrityProtectionAlgorithm */ static int hf_gsm_map_ms_encryptionAlgorithm; /* ChosenEncryptionAlgorithm */ static int hf_gsm_map_ms_chosenChannelInfo; /* ChosenChannelInfo */ static int hf_gsm_map_ms_chosenSpeechVersion; /* ChosenSpeechVersion */ static int hf_gsm_map_ms_targetMSC_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_selectedRab_Id; /* RAB_Id */ static int hf_gsm_map_ms_selectedGSM_Algorithm; /* SelectedGSM_Algorithm */ static int hf_gsm_map_ms_iUSelectedCodec; /* Codec */ static int hf_gsm_map_ms_codec1; /* AoIPCodec */ static int hf_gsm_map_ms_codec2; /* AoIPCodec */ static int hf_gsm_map_ms_codec3; /* AoIPCodec */ static int hf_gsm_map_ms_codec4; /* AoIPCodec */ static int hf_gsm_map_ms_codec5; /* AoIPCodec */ static int hf_gsm_map_ms_codec6; /* AoIPCodec */ static int hf_gsm_map_ms_codec7; /* AoIPCodec */ static int hf_gsm_map_ms_codec8; /* AoIPCodec */ static int hf_gsm_map_ms_utranCodecList; /* CodecList */ static int hf_gsm_map_ms_geranCodecList; /* CodecList */ static int hf_gsm_map_ms_codec1_01; /* Codec */ static int hf_gsm_map_ms_codec2_01; /* Codec */ static int hf_gsm_map_ms_codec3_01; /* Codec */ static int hf_gsm_map_ms_codec4_01; /* Codec */ static int hf_gsm_map_ms_codec5_01; /* Codec */ static int hf_gsm_map_ms_codec6_01; /* Codec */ static int hf_gsm_map_ms_codec7_01; /* Codec */ static int hf_gsm_map_ms_codec8_01; /* Codec */ static int hf_gsm_map_ms_RelocationNumberList_item; /* RelocationNumber */ static int hf_gsm_map_ms_immediateResponsePreferred; /* NULL */ static int hf_gsm_map_ms_re_synchronisationInfo; /* Re_synchronisationInfo */ static int hf_gsm_map_ms_requestingNodeType; /* RequestingNodeType */ static int hf_gsm_map_ms_requestingPLMN_Id; /* PLMN_Id */ static int hf_gsm_map_ms_numberOfRequestedAdditional_Vectors; /* NumberOfRequestedVectors */ static int hf_gsm_map_ms_additionalVectorsAreForEPS; /* NULL */ static int hf_gsm_map_ms_ueUsageTypeRequestIndication; /* NULL */ static int hf_gsm_map_ms_auts; /* AUTS */ static int hf_gsm_map_ms_eps_AuthenticationSetList; /* EPS_AuthenticationSetList */ static int hf_gsm_map_ms_ueUsageType; /* UE_UsageType */ static int hf_gsm_map_ms_EPS_AuthenticationSetList_item; /* EPC_AV */ static int hf_gsm_map_ms_kasme; /* KASME */ static int hf_gsm_map_ms_imei; /* IMEI */ static int hf_gsm_map_ms_requestedEquipmentInfo; /* RequestedEquipmentInfo */ static int hf_gsm_map_ms_equipmentStatus; /* EquipmentStatus */ static int hf_gsm_map_ms_bmuef; /* UESBI_Iu */ static int hf_gsm_map_ms_uesbi_IuA; /* UESBI_IuA */ static int hf_gsm_map_ms_uesbi_IuB; /* UESBI_IuB */ static int hf_gsm_map_ms_EDRX_Cycle_Length_List_item; /* EDRX_Cycle_Length */ static int hf_gsm_map_ms_rat_Type; /* Used_RAT_Type */ static int hf_gsm_map_ms_eDRX_Cycle_Length_Value; /* EDRX_Cycle_Length_Value */ static int hf_gsm_map_ms_Reset_Id_List_item; /* Reset_Id */ static int hf_gsm_map_ms_IMSI_GroupIdList_item; /* IMSI_GroupId */ static int hf_gsm_map_ms_group_Service_Id; /* Group_Service_ID */ static int hf_gsm_map_ms_plmnId; /* PLMN_Id */ static int hf_gsm_map_ms_local_Group_ID; /* Local_GroupID */ static int hf_gsm_map_ms_CSG_SubscriptionDataList_item; /* CSG_SubscriptionData */ static int hf_gsm_map_ms_csg_Id; /* CSG_Id */ static int hf_gsm_map_ms_expirationDate; /* Time */ static int hf_gsm_map_ms_lipa_AllowedAPNList; /* LIPA_AllowedAPNList */ static int hf_gsm_map_ms_plmn_Id; /* PLMN_Id */ static int hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item; /* CSG_SubscriptionData */ static int hf_gsm_map_ms_LIPA_AllowedAPNList_item; /* APN */ static int hf_gsm_map_ms_apn_oi_Replacement; /* APN_OI_Replacement */ static int hf_gsm_map_ms_rfsp_id; /* RFSP_ID */ static int hf_gsm_map_ms_ambr; /* AMBR */ static int hf_gsm_map_ms_apn_ConfigurationProfile; /* APN_ConfigurationProfile */ static int hf_gsm_map_ms_stn_sr; /* ISDN_AddressString */ static int hf_gsm_map_ms_mps_CSPriority; /* NULL */ static int hf_gsm_map_ms_mps_EPSPriority; /* NULL */ static int hf_gsm_map_ms_subscribed_vsrvcc; /* NULL */ static int hf_gsm_map_ms_defaultContext; /* ContextId */ static int hf_gsm_map_ms_completeDataListIncluded; /* NULL */ static int hf_gsm_map_ms_epsDataList; /* EPS_DataList */ static int hf_gsm_map_ms_additionalDefaultContext; /* ContextId */ static int hf_gsm_map_ms_EPS_DataList_item; /* APN_Configuration */ static int hf_gsm_map_ms_pdn_Type; /* PDN_Type */ static int hf_gsm_map_ms_servedPartyIP_IPv4_Address; /* PDP_Address */ static int hf_gsm_map_ms_eps_qos_Subscribed; /* EPS_QoS_Subscribed */ static int hf_gsm_map_ms_pdn_gw_AllocationType; /* PDN_GW_AllocationType */ static int hf_gsm_map_ms_vplmnAddressAllowed; /* NULL */ static int hf_gsm_map_ms_chargingCharacteristics; /* ChargingCharacteristics */ static int hf_gsm_map_ms_specificAPNInfoList; /* SpecificAPNInfoList */ static int hf_gsm_map_ms_servedPartyIP_IPv6_Address; /* PDP_Address */ static int hf_gsm_map_ms_sipto_Permission; /* SIPTO_Permission */ static int hf_gsm_map_ms_lipa_Permission; /* LIPA_Permission */ static int hf_gsm_map_ms_restoration_Priority; /* Restoration_Priority */ static int hf_gsm_map_ms_sipto_local_network_Permission; /* SIPTO_Local_Network_Permission */ static int hf_gsm_map_ms_wlan_offloadability; /* WLAN_Offloadability */ static int hf_gsm_map_ms_non_IP_PDN_Type_Indicator; /* NULL */ static int hf_gsm_map_ms_nIDD_Mechanism; /* NIDD_Mechanism */ static int hf_gsm_map_ms_sCEF_ID; /* FQDN */ static int hf_gsm_map_ms_pdn_ConnectionContinuity; /* PDN_ConnectionContinuity */ static int hf_gsm_map_ms_qos_Class_Identifier; /* QoS_Class_Identifier */ static int hf_gsm_map_ms_allocation_Retention_Priority; /* Allocation_Retention_Priority */ static int hf_gsm_map_ms_max_RequestedBandwidth_UL; /* Bandwidth */ static int hf_gsm_map_ms_max_RequestedBandwidth_DL; /* Bandwidth */ static int hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL; /* BandwidthExt */ static int hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL; /* BandwidthExt */ static int hf_gsm_map_ms_SpecificAPNInfoList_item; /* SpecificAPNInfo */ static int hf_gsm_map_ms_priority_level; /* INTEGER */ static int hf_gsm_map_ms_pre_emption_capability; /* BOOLEAN */ static int hf_gsm_map_ms_pre_emption_vulnerability; /* BOOLEAN */ static int hf_gsm_map_ms_pdn_gw_ipv4_Address; /* PDP_Address */ static int hf_gsm_map_ms_pdn_gw_ipv6_Address; /* PDP_Address */ static int hf_gsm_map_ms_pdn_gw_name; /* FQDN */ static int hf_gsm_map_ms_wlan_offloadability_EUTRAN; /* WLAN_Offloadability_Indication */ static int hf_gsm_map_ms_wlan_offloadability_UTRAN; /* WLAN_Offloadability_Indication */ static int hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item; /* AdjacentAccessRestrictionData */ static int hf_gsm_map_ms_accessRestrictionData; /* AccessRestrictionData */ static int hf_gsm_map_ms_ext_AccessRestrictionData; /* Ext_AccessRestrictionData */ static int hf_gsm_map_ms_gmlc_List; /* GMLC_List */ static int hf_gsm_map_ms_lcs_PrivacyExceptionList; /* LCS_PrivacyExceptionList */ static int hf_gsm_map_ms_molr_List; /* MOLR_List */ static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList; /* LCS_PrivacyExceptionList */ static int hf_gsm_map_ms_GMLC_List_item; /* ISDN_AddressString */ static int hf_gsm_map_ms_GPRSDataList_item; /* PDP_Context */ static int hf_gsm_map_ms_pdp_ContextId; /* ContextId */ static int hf_gsm_map_ms_pdp_Type; /* PDP_Type */ static int hf_gsm_map_ms_pdp_Address; /* PDP_Address */ static int hf_gsm_map_ms_qos_Subscribed; /* QoS_Subscribed */ static int hf_gsm_map_ms_ext_QoS_Subscribed; /* Ext_QoS_Subscribed */ static int hf_gsm_map_ms_pdp_ChargingCharacteristics; /* ChargingCharacteristics */ static int hf_gsm_map_ms_ext2_QoS_Subscribed; /* Ext2_QoS_Subscribed */ static int hf_gsm_map_ms_ext3_QoS_Subscribed; /* Ext3_QoS_Subscribed */ static int hf_gsm_map_ms_ext4_QoS_Subscribed; /* Ext4_QoS_Subscribed */ static int hf_gsm_map_ms_ext_pdp_Type; /* Ext_PDP_Type */ static int hf_gsm_map_ms_ext_pdp_Address; /* PDP_Address */ static int hf_gsm_map_ms_gprsDataList; /* GPRSDataList */ static int hf_gsm_map_ms_gprs_CSI; /* GPRS_CSI */ static int hf_gsm_map_ms_mo_sms_CSI; /* SMS_CSI */ static int hf_gsm_map_ms_mt_sms_CSI; /* SMS_CSI */ static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList; /* MT_smsCAMELTDP_CriteriaList */ static int hf_gsm_map_ms_mg_csi; /* MG_CSI */ static int hf_gsm_map_ms_gprs_CamelTDPDataList; /* GPRS_CamelTDPDataList */ static int hf_gsm_map_ms_camelCapabilityHandling; /* CamelCapabilityHandling */ static int hf_gsm_map_ms_notificationToCSE; /* NULL */ static int hf_gsm_map_ms_csi_Active; /* NULL */ static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item; /* GPRS_CamelTDPData */ static int hf_gsm_map_ms_gprs_TriggerDetectionPoint; /* GPRS_TriggerDetectionPoint */ static int hf_gsm_map_ms_serviceKey; /* ServiceKey */ static int hf_gsm_map_ms_gsmSCF_Address; /* ISDN_AddressString */ static int hf_gsm_map_ms_defaultSessionHandling; /* DefaultGPRS_Handling */ static int hf_gsm_map_ms_LSADataList_item; /* LSAData */ static int hf_gsm_map_ms_lsaIdentity; /* LSAIdentity */ static int hf_gsm_map_ms_lsaAttributes; /* LSAAttributes */ static int hf_gsm_map_ms_lsaActiveModeIndicator; /* NULL */ static int hf_gsm_map_ms_lsaOnlyAccessIndicator; /* LSAOnlyAccessIndicator */ static int hf_gsm_map_ms_lsaDataList; /* LSADataList */ static int hf_gsm_map_ms_msisdn; /* ISDN_AddressString */ static int hf_gsm_map_ms_category; /* Category */ static int hf_gsm_map_ms_subscriberStatus; /* SubscriberStatus */ static int hf_gsm_map_ms_bearerServiceList; /* BearerServiceList */ static int hf_gsm_map_ms_teleserviceList; /* TeleserviceList */ static int hf_gsm_map_ms_provisionedSS; /* Ext_SS_InfoList */ static int hf_gsm_map_ms_odb_Data; /* ODB_Data */ static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature; /* NULL */ static int hf_gsm_map_ms_vbsSubscriptionData; /* VBSDataList */ static int hf_gsm_map_ms_vgcsSubscriptionData; /* VGCSDataList */ static int hf_gsm_map_ms_vlrCamelSubscriptionInfo; /* VlrCamelSubscriptionInfo */ static int hf_gsm_map_ms_BearerServiceList_item; /* Ext_BearerServiceCode */ static int hf_gsm_map_ms_TeleserviceList_item; /* Ext_TeleserviceCode */ static int hf_gsm_map_ms_odb_GeneralData; /* ODB_GeneralData */ static int hf_gsm_map_ms_odb_HPLMN_Data; /* ODB_HPLMN_Data */ static int hf_gsm_map_ms_Ext_SS_InfoList_item; /* Ext_SS_Info */ static int hf_gsm_map_ms_forwardingInfo; /* Ext_ForwInfo */ static int hf_gsm_map_ms_callBarringInfo; /* Ext_CallBarInfo */ static int hf_gsm_map_ms_cug_Info; /* CUG_Info */ static int hf_gsm_map_ms_ss_Data; /* Ext_SS_Data */ static int hf_gsm_map_ms_emlpp_Info; /* EMLPP_Info */ static int hf_gsm_map_ms_ss_Code; /* SS_Code */ static int hf_gsm_map_ms_forwardingFeatureList; /* Ext_ForwFeatureList */ static int hf_gsm_map_ms_Ext_ForwFeatureList_item; /* Ext_ForwFeature */ static int hf_gsm_map_ms_basicService; /* Ext_BasicServiceCode */ static int hf_gsm_map_ms_ss_Status; /* Ext_SS_Status */ static int hf_gsm_map_ms_forwardedToNumber; /* ISDN_AddressString */ static int hf_gsm_map_ms_forwardedToSubaddress; /* ISDN_SubaddressString */ static int hf_gsm_map_ms_forwardingOptions; /* T_forwardingOptions */ static int hf_gsm_map_ms_noReplyConditionTime; /* Ext_NoRepCondTime */ static int hf_gsm_map_ms_longForwardedToNumber; /* FTN_AddressString */ static int hf_gsm_map_ms_callBarringFeatureList; /* Ext_CallBarFeatureList */ static int hf_gsm_map_ms_Ext_CallBarFeatureList_item; /* Ext_CallBarringFeature */ static int hf_gsm_map_ms_cug_SubscriptionList; /* CUG_SubscriptionList */ static int hf_gsm_map_ms_cug_FeatureList; /* CUG_FeatureList */ static int hf_gsm_map_ms_CUG_SubscriptionList_item; /* CUG_Subscription */ static int hf_gsm_map_ms_cug_Index; /* CUG_Index */ static int hf_gsm_map_ms_cug_Interlock; /* CUG_Interlock */ static int hf_gsm_map_ms_intraCUG_Options; /* IntraCUG_Options */ static int hf_gsm_map_ms_basicServiceGroupList; /* Ext_BasicServiceGroupList */ static int hf_gsm_map_ms_CUG_FeatureList_item; /* CUG_Feature */ static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item; /* Ext_BasicServiceCode */ static int hf_gsm_map_ms_preferentialCUG_Indicator; /* CUG_Index */ static int hf_gsm_map_ms_interCUG_Restrictions; /* InterCUG_Restrictions */ static int hf_gsm_map_ms_ss_SubscriptionOption; /* SS_SubscriptionOption */ static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item; /* LCS_PrivacyClass */ static int hf_gsm_map_ms_notificationToMSUser; /* NotificationToMSUser */ static int hf_gsm_map_ms_externalClientList; /* ExternalClientList */ static int hf_gsm_map_ms_plmnClientList; /* PLMNClientList */ static int hf_gsm_map_ms_ext_externalClientList; /* Ext_ExternalClientList */ static int hf_gsm_map_ms_serviceTypeList; /* ServiceTypeList */ static int hf_gsm_map_ms_ExternalClientList_item; /* ExternalClient */ static int hf_gsm_map_ms_PLMNClientList_item; /* LCSClientInternalID */ static int hf_gsm_map_ms_Ext_ExternalClientList_item; /* ExternalClient */ static int hf_gsm_map_ms_clientIdentity; /* LCSClientExternalID */ static int hf_gsm_map_ms_gmlc_Restriction; /* GMLC_Restriction */ static int hf_gsm_map_ms_ServiceTypeList_item; /* ServiceType */ static int hf_gsm_map_ms_serviceTypeIdentity; /* LCSServiceTypeID */ static int hf_gsm_map_ms_MOLR_List_item; /* MOLR_Class */ static int hf_gsm_map_ms_ZoneCodeList_item; /* ZoneCode */ static int hf_gsm_map_ms_ss_List; /* SS_List */ static int hf_gsm_map_ms_regionalSubscriptionResponse; /* RegionalSubscriptionResponse */ static int hf_gsm_map_ms_basicServiceList; /* BasicServiceList */ static int hf_gsm_map_ms_regionalSubscriptionIdentifier; /* ZoneCode */ static int hf_gsm_map_ms_vbsGroupIndication; /* NULL */ static int hf_gsm_map_ms_vgcsGroupIndication; /* NULL */ static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw; /* NULL */ static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw; /* GPRSSubscriptionDataWithdraw */ static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature; /* NULL */ static int hf_gsm_map_ms_lsaInformationWithdraw; /* LSAInformationWithdraw */ static int hf_gsm_map_ms_gmlc_ListWithdraw; /* NULL */ static int hf_gsm_map_ms_istInformationWithdraw; /* NULL */ static int hf_gsm_map_ms_specificCSI_Withdraw; /* SpecificCSI_Withdraw */ static int hf_gsm_map_ms_chargingCharacteristicsWithdraw; /* NULL */ static int hf_gsm_map_ms_stn_srWithdraw; /* NULL */ static int hf_gsm_map_ms_epsSubscriptionDataWithdraw; /* EPS_SubscriptionDataWithdraw */ static int hf_gsm_map_ms_apn_oi_replacementWithdraw; /* NULL */ static int hf_gsm_map_ms_csg_SubscriptionDeleted; /* NULL */ static int hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw; /* NULL */ static int hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw; /* NULL */ static int hf_gsm_map_ms_subscribed_vsrvccWithdraw; /* NULL */ static int hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted; /* NULL */ static int hf_gsm_map_ms_additionalMSISDN_Withdraw; /* NULL */ static int hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw; /* NULL */ static int hf_gsm_map_ms_imsiGroupIdList_Withdraw; /* NULL */ static int hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw; /* NULL */ static int hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw; /* NULL */ static int hf_gsm_map_ms_ue_UsageTypeWithdraw; /* NULL */ static int hf_gsm_map_ms_reset_idsWithdraw; /* NULL */ static int hf_gsm_map_ms_iab_OperationWithdraw; /* NULL */ static int hf_gsm_map_ms_allGPRSData; /* NULL */ static int hf_gsm_map_ms_contextIdList; /* ContextIdList */ static int hf_gsm_map_ms_allEPS_Data; /* NULL */ static int hf_gsm_map_ms_ContextIdList_item; /* ContextId */ static int hf_gsm_map_ms_allLSAData; /* NULL */ static int hf_gsm_map_ms_lsaIdentityList; /* LSAIdentityList */ static int hf_gsm_map_ms_LSAIdentityList_item; /* LSAIdentity */ static int hf_gsm_map_ms_BasicServiceList_item; /* Ext_BasicServiceCode */ static int hf_gsm_map_ms_o_CSI; /* O_CSI */ static int hf_gsm_map_ms_ss_CSI; /* SS_CSI */ static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList; /* O_BcsmCamelTDPCriteriaList */ static int hf_gsm_map_ms_tif_CSI; /* NULL */ static int hf_gsm_map_ms_m_CSI; /* M_CSI */ static int hf_gsm_map_ms_vt_CSI; /* T_CSI */ static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */ static int hf_gsm_map_ms_d_CSI; /* D_CSI */ static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item; /* MT_smsCAMELTDP_Criteria */ static int hf_gsm_map_ms_sms_TriggerDetectionPoint; /* SMS_TriggerDetectionPoint */ static int hf_gsm_map_ms_tpdu_TypeCriterion; /* TPDU_TypeCriterion */ static int hf_gsm_map_ms_TPDU_TypeCriterion_item; /* MT_SMS_TPDU_Type */ static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList; /* DP_AnalysedInfoCriteriaList */ static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item; /* DP_AnalysedInfoCriterium */ static int hf_gsm_map_ms_dialledNumber; /* ISDN_AddressString */ static int hf_gsm_map_ms_defaultCallHandling; /* DefaultCallHandling */ static int hf_gsm_map_ms_ss_CamelData; /* SS_CamelData */ static int hf_gsm_map_ms_ss_EventList; /* SS_EventList */ static int hf_gsm_map_ms_SS_EventList_item; /* SS_Code */ static int hf_gsm_map_ms_o_BcsmCamelTDPDataList; /* O_BcsmCamelTDPDataList */ static int hf_gsm_map_ms_csiActive; /* NULL */ static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item; /* O_BcsmCamelTDPData */ static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint; /* O_BcsmTriggerDetectionPoint */ static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item; /* O_BcsmCamelTDP_Criteria */ static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item; /* T_BCSM_CAMEL_TDP_Criteria */ static int hf_gsm_map_ms_destinationNumberCriteria; /* DestinationNumberCriteria */ static int hf_gsm_map_ms_basicServiceCriteria; /* BasicServiceCriteria */ static int hf_gsm_map_ms_callTypeCriteria; /* CallTypeCriteria */ static int hf_gsm_map_ms_o_CauseValueCriteria; /* O_CauseValueCriteria */ static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint; /* T_BcsmTriggerDetectionPoint */ static int hf_gsm_map_ms_t_CauseValueCriteria; /* T_CauseValueCriteria */ static int hf_gsm_map_ms_matchType; /* MatchType */ static int hf_gsm_map_ms_destinationNumberList; /* DestinationNumberList */ static int hf_gsm_map_ms_destinationNumberLengthList; /* DestinationNumberLengthList */ static int hf_gsm_map_ms_DestinationNumberList_item; /* ISDN_AddressString */ static int hf_gsm_map_ms_DestinationNumberLengthList_item; /* INTEGER_1_maxNumOfISDN_AddressDigits */ static int hf_gsm_map_ms_BasicServiceCriteria_item; /* Ext_BasicServiceCode */ static int hf_gsm_map_ms_O_CauseValueCriteria_item; /* CauseValue */ static int hf_gsm_map_ms_T_CauseValueCriteria_item; /* CauseValue */ static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList; /* SMS_CAMEL_TDP_DataList */ static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item; /* SMS_CAMEL_TDP_Data */ static int hf_gsm_map_ms_defaultSMS_Handling; /* DefaultSMS_Handling */ static int hf_gsm_map_ms_mobilityTriggers; /* MobilityTriggers */ static int hf_gsm_map_ms_MobilityTriggers_item; /* MM_Code */ static int hf_gsm_map_ms_t_BcsmCamelTDPDataList; /* T_BcsmCamelTDPDataList */ static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item; /* T_BcsmCamelTDPData */ static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint; /* T_BcsmTriggerDetectionPoint */ static int hf_gsm_map_ms_ggsn_Address; /* GSN_Address */ static int hf_gsm_map_ms_ggsn_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_mobileNotReachableReason; /* AbsentSubscriberDiagnosticSM */ static int hf_gsm_map_ms_sendingNodenumber; /* SendingNode_Number */ static int hf_gsm_map_ms_hlr_List; /* HLR_List */ static int hf_gsm_map_ms_reset_Id_List; /* Reset_Id_List */ static int hf_gsm_map_ms_subscriptionData; /* InsertSubscriberDataArg */ static int hf_gsm_map_ms_subscriptionDataDeletion; /* DeleteSubscriberDataArg */ static int hf_gsm_map_ms_css_Number; /* ISDN_AddressString */ static int hf_gsm_map_ms_msNotReachable; /* NULL */ static int hf_gsm_map_ms_VBSDataList_item; /* VoiceBroadcastData */ static int hf_gsm_map_ms_VGCSDataList_item; /* VoiceGroupCallData */ static int hf_gsm_map_ms_groupId; /* GroupId */ static int hf_gsm_map_ms_additionalSubscriptions; /* AdditionalSubscriptions */ static int hf_gsm_map_ms_additionalInfo; /* AdditionalInfo */ static int hf_gsm_map_ms_longGroupId; /* Long_GroupId */ static int hf_gsm_map_ms_groupid; /* GroupId */ static int hf_gsm_map_ms_broadcastInitEntitlement; /* NULL */ static int hf_gsm_map_ms_requestedInfo; /* RequestedInfo */ static int hf_gsm_map_ms_callPriority; /* EMLPP_Priority */ static int hf_gsm_map_ms_subscriberInfo; /* SubscriberInfo */ static int hf_gsm_map_ms_subscriberState; /* SubscriberState */ static int hf_gsm_map_ms_ps_SubscriberState; /* PS_SubscriberState */ static int hf_gsm_map_ms_ms_Classmark2; /* MS_Classmark2 */ static int hf_gsm_map_ms_gprs_MS_Class; /* GPRSMSClass */ static int hf_gsm_map_ms_mnpInfoRes; /* MNPInfoRes */ static int hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication; /* IMS_VoiceOverPS_SessionsInd */ static int hf_gsm_map_ms_lastUE_ActivityTime; /* Time */ static int hf_gsm_map_ms_lastRAT_Type; /* Used_RAT_Type */ static int hf_gsm_map_ms_eps_SubscriberState; /* PS_SubscriberState */ static int hf_gsm_map_ms_timeZone; /* TimeZone */ static int hf_gsm_map_ms_daylightSavingTime; /* DaylightSavingTime */ static int hf_gsm_map_ms_locationInformation5GS; /* LocationInformation5GS */ static int hf_gsm_map_ms_routeingNumber; /* RouteingNumber */ static int hf_gsm_map_ms_numberPortabilityStatus; /* NumberPortabilityStatus */ static int hf_gsm_map_ms_mSNetworkCapability; /* MSNetworkCapability */ static int hf_gsm_map_ms_mSRadioAccessCapability; /* MSRadioAccessCapability */ static int hf_gsm_map_ms_locationInformation_01; /* NULL */ static int hf_gsm_map_ms_subscriberState_01; /* NULL */ static int hf_gsm_map_ms_currentLocation; /* NULL */ static int hf_gsm_map_ms_requestedDomain; /* DomainType */ static int hf_gsm_map_ms_imei_01; /* NULL */ static int hf_gsm_map_ms_ms_classmark; /* NULL */ static int hf_gsm_map_ms_mnpRequestedInfo; /* NULL */ static int hf_gsm_map_ms_locationInformationEPS_Supported; /* NULL */ static int hf_gsm_map_ms_t_adsData; /* NULL */ static int hf_gsm_map_ms_requestedNodes; /* RequestedNodes */ static int hf_gsm_map_ms_servingNodeIndication; /* NULL */ static int hf_gsm_map_ms_localTimeZoneRequest; /* NULL */ static int hf_gsm_map_ms_ageOfLocationInformation; /* AgeOfLocationInformation */ static int hf_gsm_map_ms_geographicalInformation; /* GeographicalInformation */ static int hf_gsm_map_ms_vlr_number; /* ISDN_AddressString */ static int hf_gsm_map_ms_locationNumber; /* LocationNumber */ static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI; /* CellGlobalIdOrServiceAreaIdOrLAI */ static int hf_gsm_map_ms_selectedLSA_Id; /* LSAIdentity */ static int hf_gsm_map_ms_geodeticInformation; /* GeodeticInformation */ static int hf_gsm_map_ms_currentLocationRetrieved; /* NULL */ static int hf_gsm_map_ms_sai_Present; /* NULL */ static int hf_gsm_map_ms_userCSGInformation; /* UserCSGInformation */ static int hf_gsm_map_ms_e_utranCellGlobalIdentity; /* E_UTRAN_CGI */ static int hf_gsm_map_ms_trackingAreaIdentity; /* TA_Id */ static int hf_gsm_map_ms_mme_Name; /* DiameterIdentity */ static int hf_gsm_map_ms_routeingAreaIdentity; /* RAIdentity */ static int hf_gsm_map_ms_selectedLSAIdentity; /* LSAIdentity */ static int hf_gsm_map_ms_nrCellGlobalIdentity; /* NR_CGI */ static int hf_gsm_map_ms_amf_address; /* FQDN */ static int hf_gsm_map_ms_vplmnId; /* PLMN_Id */ static int hf_gsm_map_ms_localtimeZone; /* TimeZone */ static int hf_gsm_map_ms_nrTrackingAreaIdentity; /* NR_TA_Id */ static int hf_gsm_map_ms_accessMode; /* OCTET_STRING_SIZE_1 */ static int hf_gsm_map_ms_cmi; /* OCTET_STRING_SIZE_1 */ static int hf_gsm_map_ms_assumedIdle; /* NULL */ static int hf_gsm_map_ms_camelBusy; /* NULL */ static int hf_gsm_map_ms_netDetNotReachable; /* NotReachableReason */ static int hf_gsm_map_ms_notProvidedFromVLR; /* NULL */ static int hf_gsm_map_ms_notProvidedFromSGSNorMME; /* NULL */ static int hf_gsm_map_ms_ps_Detached; /* NULL */ static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging; /* NULL */ static int hf_gsm_map_ms_ps_AttachedReachableForPaging; /* NULL */ static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging; /* PDP_ContextInfoList */ static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging; /* PDP_ContextInfoList */ static int hf_gsm_map_ms_PDP_ContextInfoList_item; /* PDP_ContextInfo */ static int hf_gsm_map_ms_pdp_ContextIdentifier; /* ContextId */ static int hf_gsm_map_ms_pdp_ContextActive; /* NULL */ static int hf_gsm_map_ms_apn_Subscribed; /* APN */ static int hf_gsm_map_ms_apn_InUse; /* APN */ static int hf_gsm_map_ms_nsapi; /* NSAPI */ static int hf_gsm_map_ms_transactionId; /* TransactionId */ static int hf_gsm_map_ms_teid_ForGnAndGp; /* TEID */ static int hf_gsm_map_ms_teid_ForIu; /* TEID */ static int hf_gsm_map_ms_qos_Subscribed_01; /* Ext_QoS_Subscribed */ static int hf_gsm_map_ms_qos_Requested; /* Ext_QoS_Subscribed */ static int hf_gsm_map_ms_qos_Negotiated; /* Ext_QoS_Subscribed */ static int hf_gsm_map_ms_chargingId; /* GPRSChargingID */ static int hf_gsm_map_ms_rnc_Address; /* GSN_Address */ static int hf_gsm_map_ms_qos2_Subscribed; /* Ext2_QoS_Subscribed */ static int hf_gsm_map_ms_qos2_Requested; /* Ext2_QoS_Subscribed */ static int hf_gsm_map_ms_qos2_Negotiated; /* Ext2_QoS_Subscribed */ static int hf_gsm_map_ms_qos3_Subscribed; /* Ext3_QoS_Subscribed */ static int hf_gsm_map_ms_qos3_Requested; /* Ext3_QoS_Subscribed */ static int hf_gsm_map_ms_qos3_Negotiated; /* Ext3_QoS_Subscribed */ static int hf_gsm_map_ms_qos4_Subscribed; /* Ext4_QoS_Subscribed */ static int hf_gsm_map_ms_qos4_Requested; /* Ext4_QoS_Subscribed */ static int hf_gsm_map_ms_qos4_Negotiated; /* Ext4_QoS_Subscribed */ static int hf_gsm_map_ms_subscriberIdentity; /* SubscriberIdentity */ static int hf_gsm_map_ms_requestedSubscriptionInfo; /* RequestedSubscriptionInfo */ static int hf_gsm_map_ms_callForwardingData; /* CallForwardingData */ static int hf_gsm_map_ms_callBarringData; /* CallBarringData */ static int hf_gsm_map_ms_odb_Info; /* ODB_Info */ static int hf_gsm_map_ms_camel_SubscriptionInfo; /* CAMEL_SubscriptionInfo */ static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases; /* SupportedCamelPhases */ static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases; /* SupportedCamelPhases */ static int hf_gsm_map_ms_offeredCamel4CSIsInVLR; /* OfferedCamel4CSIs */ static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN; /* OfferedCamel4CSIs */ static int hf_gsm_map_ms_msisdn_BS_List; /* MSISDN_BS_List */ static int hf_gsm_map_ms_cw_Data; /* CallWaitingData */ static int hf_gsm_map_ms_ch_Data; /* CallHoldData */ static int hf_gsm_map_ms_clip_Data; /* ClipData */ static int hf_gsm_map_ms_clir_Data; /* ClirData */ static int hf_gsm_map_ms_ect_data; /* EctData */ static int hf_gsm_map_ms_cwFeatureList; /* Ext_CwFeatureList */ static int hf_gsm_map_ms_Ext_CwFeatureList_item; /* Ext_CwFeature */ static int hf_gsm_map_ms_overrideCategory; /* OverrideCategory */ static int hf_gsm_map_ms_cliRestrictionOption; /* CliRestrictionOption */ static int hf_gsm_map_ms_requestedSS_Info; /* SS_ForBS_Code */ static int hf_gsm_map_ms_odb; /* NULL */ static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo; /* RequestedCAMEL_SubscriptionInfo */ static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01; /* NULL */ static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01; /* NULL */ static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo; /* AdditionalRequestedCAMEL_SubscriptionInfo */ static int hf_gsm_map_ms_msisdn_BS_List_01; /* NULL */ static int hf_gsm_map_ms_csg_SubscriptionDataRequested; /* NULL */ static int hf_gsm_map_ms_cw_Info; /* NULL */ static int hf_gsm_map_ms_clip_Info; /* NULL */ static int hf_gsm_map_ms_clir_Info; /* NULL */ static int hf_gsm_map_ms_hold_Info; /* NULL */ static int hf_gsm_map_ms_ect_Info; /* NULL */ static int hf_gsm_map_ms_MSISDN_BS_List_item; /* MSISDN_BS */ static int hf_gsm_map_ms_password; /* Password */ static int hf_gsm_map_ms_wrongPasswordAttemptsCounter; /* WrongPasswordAttemptsCounter */ static int hf_gsm_map_ms_t_CSI; /* T_CSI */ static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */ static int hf_gsm_map_ms_tif_CSI_NotificationToCSE; /* NULL */ static int hf_gsm_map_ms_specificCSIDeletedList; /* SpecificCSI_Withdraw */ static int hf_gsm_map_ms_o_IM_CSI; /* O_CSI */ static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList; /* O_BcsmCamelTDPCriteriaList */ static int hf_gsm_map_ms_d_IM_CSI; /* D_CSI */ static int hf_gsm_map_ms_vt_IM_CSI; /* T_CSI */ static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */ static int hf_gsm_map_ms_modificationRequestFor_CF_Info; /* ModificationRequestFor_CF_Info */ static int hf_gsm_map_ms_modificationRequestFor_CB_Info; /* ModificationRequestFor_CB_Info */ static int hf_gsm_map_ms_modificationRequestFor_CSI; /* ModificationRequestFor_CSI */ static int hf_gsm_map_ms_modificationRequestFor_ODB_data; /* ModificationRequestFor_ODB_data */ static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data; /* ModificationRequestFor_IP_SM_GW_Data */ static int hf_gsm_map_ms_activationRequestForUE_reachability; /* RequestedServingNode */ static int hf_gsm_map_ms_modificationRequestFor_CSG; /* ModificationRequestFor_CSG */ static int hf_gsm_map_ms_modificationRequestFor_CW_Data; /* ModificationRequestFor_CW_Info */ static int hf_gsm_map_ms_modificationRequestFor_CLIP_Data; /* ModificationRequestFor_CLIP_Info */ static int hf_gsm_map_ms_modificationRequestFor_CLIR_Data; /* ModificationRequestFor_CLIR_Info */ static int hf_gsm_map_ms_modificationRequestFor_HOLD_Data; /* ModificationRequestFor_CH_Info */ static int hf_gsm_map_ms_modificationRequestFor_ECT_Data; /* ModificationRequestFor_ECT_Info */ static int hf_gsm_map_ms_modifyNotificationToCSE; /* ModificationInstruction */ static int hf_gsm_map_ms_ss_InfoFor_CSE; /* Ext_SS_InfoFor_CSE */ static int hf_gsm_map_ms_serviceCentreAddress; /* AddressString */ static int hf_gsm_map_ms_forwardedToNumber_01; /* AddressString */ static int hf_gsm_map_ms_odb_data; /* ODB_Data */ static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo; /* RequestedCAMEL_SubscriptionInfo */ static int hf_gsm_map_ms_modifyCSI_State; /* ModificationInstruction */ static int hf_gsm_map_ms_modifyRegistrationStatus; /* ModificationInstruction */ static int hf_gsm_map_ms_ip_sm_gw_DiameterAddress; /* NetworkNodeDiameterAddress */ static int hf_gsm_map_ms_forwardingInfoFor_CSE; /* Ext_ForwardingInfoFor_CSE */ static int hf_gsm_map_ms_callBarringInfoFor_CSE; /* Ext_CallBarringInfoFor_CSE */ static int hf_gsm_map_ms_allInformationSent; /* NULL */ static int hf_gsm_map_ms_ue_reachable; /* ServingNode */ static int hf_gsm_map_ms_eventMet; /* MM_Code */ static int hf_gsm_map_ms_supportedCAMELPhases; /* SupportedCamelPhases */ static int hf_gsm_map_ms_offeredCamel4Functionalities; /* OfferedCamel4Functionalities */ static int hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator; /* NULL */ static int hf_gsm_map_ms_naea_PreferredCI; /* NAEA_PreferredCI */ static int hf_gsm_map_ms_gprsSubscriptionData; /* GPRSSubscriptionData */ static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature; /* NULL */ static int hf_gsm_map_ms_networkAccessMode; /* NetworkAccessMode */ static int hf_gsm_map_ms_lsaInformation; /* LSAInformation */ static int hf_gsm_map_ms_lmu_Indicator; /* NULL */ static int hf_gsm_map_ms_lcsInformation; /* LCSInformation */ static int hf_gsm_map_ms_istAlertTimer; /* IST_AlertTimerValue */ static int hf_gsm_map_ms_superChargerSupportedInHLR; /* AgeIndicator */ static int hf_gsm_map_ms_mc_SS_Info; /* MC_SS_Info */ static int hf_gsm_map_ms_cs_AllocationRetentionPriority; /* CS_AllocationRetentionPriority */ static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo; /* SGSN_CAMEL_SubscriptionInfo */ static int hf_gsm_map_ms_ics_Indicator; /* BOOLEAN */ static int hf_gsm_map_ms_eps_SubscriptionData; /* EPS_SubscriptionData */ static int hf_gsm_map_ms_ue_ReachabilityRequestIndicator; /* NULL */ static int hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer; /* SubscribedPeriodicRAUTAUtimer */ static int hf_gsm_map_ms_vplmnLIPAAllowed; /* NULL */ static int hf_gsm_map_ms_mdtUserConsent; /* BOOLEAN */ static int hf_gsm_map_ms_subscribedPeriodicLAUtimer; /* SubscribedPeriodicLAUtimer */ static int hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList; /* VPLMN_CSG_SubscriptionDataList */ static int hf_gsm_map_ms_additionalMSISDN; /* ISDN_AddressString */ static int hf_gsm_map_ms_psAndSMS_OnlyServiceProvision; /* NULL */ static int hf_gsm_map_ms_smsInSGSNAllowed; /* NULL */ static int hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator; /* NULL */ static int hf_gsm_map_ms_pcscf_Restoration_Request; /* NULL */ static int hf_gsm_map_ms_adjacentAccessRestrictionDataList; /* AdjacentAccessRestrictionDataList */ static int hf_gsm_map_ms_imsi_Group_Id_List; /* IMSI_GroupIdList */ static int hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator; /* NULL */ static int hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count; /* DL_Buffering_Suggested_Packet_Count */ static int hf_gsm_map_ms_eDRX_Cycle_Length_List; /* EDRX_Cycle_Length_List */ static int hf_gsm_map_ms_iab_Operation_Allowed_Indicator; /* NULL */ /* named bits */ static int hf_gsm_map_ms_SupportedRAT_Types_utran; static int hf_gsm_map_ms_SupportedRAT_Types_geran; static int hf_gsm_map_ms_SupportedRAT_Types_gan; static int hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution; static int hf_gsm_map_ms_SupportedRAT_Types_e_utran; static int hf_gsm_map_ms_SupportedRAT_Types_nb_iot; static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1; static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2; static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3; static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4; static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5; static int hf_gsm_map_ms_ISR_Information_updateLocation; static int hf_gsm_map_ms_ISR_Information_cancelSGSN; static int hf_gsm_map_ms_ISR_Information_initialAttachIndicator; static int hf_gsm_map_ms_SupportedFeatures_odb_all_apn; static int hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN; static int hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN; static int hf_gsm_map_ms_SupportedFeatures_odb_all_og; static int hf_gsm_map_ms_SupportedFeatures_odb_all_international_og; static int hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country; static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og; static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country; static int hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country; static int hf_gsm_map_ms_SupportedFeatures_regSub; static int hf_gsm_map_ms_SupportedFeatures_trace; static int hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep; static int hf_gsm_map_ms_SupportedFeatures_lcs_universal; static int hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated; static int hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated; static int hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator; static int hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType; static int hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS; static int hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation; static int hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation; static int hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty; static int hf_gsm_map_ms_SupportedFeatures_sm_mo_pp; static int hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls; static int hf_gsm_map_ms_SupportedFeatures_baoc; static int hf_gsm_map_ms_SupportedFeatures_boic; static int hf_gsm_map_ms_SupportedFeatures_boicExHC; static int hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval; static int hf_gsm_map_ms_SupportedFeatures_additionalMsisdn; static int hf_gsm_map_ms_SupportedFeatures_smsInMME; static int hf_gsm_map_ms_SupportedFeatures_smsInSGSN; static int hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification; static int hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval; static int hf_gsm_map_ms_SupportedFeatures_partialPurge; static int hf_gsm_map_ms_SupportedFeatures_gddInSGSN; static int hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability; static int hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration; static int hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks; static int hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs; static int hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs; static int hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT; static int hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT; static int hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit; static int hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit; static int hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator; static int hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator; static int hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator; static int hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator; static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus; static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef; static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed; static int hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed; static int hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed; static int hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed; static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred; static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred; static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred; static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred; static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred; static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred; static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred; static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred; static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred; static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred; static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred; static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred; static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred; static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred; static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred; static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred; static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred; static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred; static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred; static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred; static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred; static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1; static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2; static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3; static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4; static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi; static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI; static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI; static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI; static int hf_gsm_map_ms_SupportedCamelPhases_phase1; static int hf_gsm_map_ms_SupportedCamelPhases_phase2; static int hf_gsm_map_ms_SupportedCamelPhases_phase3; static int hf_gsm_map_ms_SupportedCamelPhases_phase4; static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi; static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi; static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi; static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi; static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi; static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi; static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements; static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt; static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg; static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg; static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg; static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased; static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument; static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone; static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall; static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator; static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP; static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting; static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP; static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions; static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements; static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements; static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices; static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices; static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP; static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP; static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation; static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest; static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest; static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset; static int hf_gsm_map_ms_RequestedNodes_mme; static int hf_gsm_map_ms_RequestedNodes_sgsn; static int hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn; static int hf_gsm_map_ms_ServingNode_mme; static int hf_gsm_map_ms_ServingNode_sgsn; /* --- Module MAP-CH-DataTypes --- --- --- */ static int hf_gsm_map_ch_cug_Interlock; /* CUG_Interlock */ static int hf_gsm_map_ch_cug_OutgoingAccess; /* NULL */ static int hf_gsm_map_ch_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_ch_msisdn; /* ISDN_AddressString */ static int hf_gsm_map_ch_cug_CheckInfo; /* CUG_CheckInfo */ static int hf_gsm_map_ch_numberOfForwarding; /* NumberOfForwarding */ static int hf_gsm_map_ch_interrogationType; /* InterrogationType */ static int hf_gsm_map_ch_or_Interrogation; /* NULL */ static int hf_gsm_map_ch_or_Capability; /* OR_Phase */ static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address; /* ISDN_AddressString */ static int hf_gsm_map_ch_callReferenceNumber; /* CallReferenceNumber */ static int hf_gsm_map_ch_forwardingReason; /* ForwardingReason */ static int hf_gsm_map_ch_basicServiceGroup; /* Ext_BasicServiceCode */ static int hf_gsm_map_ch_networkSignalInfo; /* ExternalSignalInfo */ static int hf_gsm_map_ch_camelInfo; /* CamelInfo */ static int hf_gsm_map_ch_suppressionOfAnnouncement; /* SuppressionOfAnnouncement */ static int hf_gsm_map_ch_alertingPattern; /* AlertingPattern */ static int hf_gsm_map_ch_ccbs_Call; /* NULL */ static int hf_gsm_map_ch_supportedCCBS_Phase; /* SupportedCCBS_Phase */ static int hf_gsm_map_ch_additionalSignalInfo; /* Ext_ExternalSignalInfo */ static int hf_gsm_map_ch_istSupportIndicator; /* IST_SupportIndicator */ static int hf_gsm_map_ch_pre_pagingSupported; /* NULL */ static int hf_gsm_map_ch_callDiversionTreatmentIndicator; /* CallDiversionTreatmentIndicator */ static int hf_gsm_map_ch_longFTN_Supported; /* NULL */ static int hf_gsm_map_ch_suppress_VT_CSI; /* NULL */ static int hf_gsm_map_ch_suppressIncomingCallBarring; /* NULL */ static int hf_gsm_map_ch_gsmSCF_InitiatedCall; /* NULL */ static int hf_gsm_map_ch_basicServiceGroup2; /* Ext_BasicServiceCode */ static int hf_gsm_map_ch_networkSignalInfo2; /* ExternalSignalInfo */ static int hf_gsm_map_ch_suppressMTSS; /* SuppressMTSS */ static int hf_gsm_map_ch_mtRoamingRetrySupported; /* NULL */ static int hf_gsm_map_ch_callPriority; /* EMLPP_Priority */ static int hf_gsm_map_ch_imsi; /* IMSI */ static int hf_gsm_map_ch_extendedRoutingInfo; /* ExtendedRoutingInfo */ static int hf_gsm_map_ch_cugSubscriptionFlag; /* NULL */ static int hf_gsm_map_ch_subscriberInfo; /* SubscriberInfo */ static int hf_gsm_map_ch_ss_List; /* SS_List */ static int hf_gsm_map_ch_basicService; /* Ext_BasicServiceCode */ static int hf_gsm_map_ch_forwardingInterrogationRequired; /* NULL */ static int hf_gsm_map_ch_vmsc_Address; /* ISDN_AddressString */ static int hf_gsm_map_ch_naea_PreferredCI; /* NAEA_PreferredCI */ static int hf_gsm_map_ch_ccbs_Indicators; /* CCBS_Indicators */ static int hf_gsm_map_ch_numberPortabilityStatus; /* NumberPortabilityStatus */ static int hf_gsm_map_ch_istAlertTimer; /* IST_AlertTimerValue */ static int hf_gsm_map_ch_supportedCamelPhasesInVMSC; /* SupportedCamelPhases */ static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC; /* OfferedCamel4CSIs */ static int hf_gsm_map_ch_routingInfo2; /* RoutingInfo */ static int hf_gsm_map_ch_ss_List2; /* SS_List */ static int hf_gsm_map_ch_basicService2; /* Ext_BasicServiceCode */ static int hf_gsm_map_ch_allowedServices; /* AllowedServices */ static int hf_gsm_map_ch_unavailabilityCause; /* UnavailabilityCause */ static int hf_gsm_map_ch_releaseResourcesSupported; /* NULL */ static int hf_gsm_map_ch_gsm_BearerCapability; /* ExternalSignalInfo */ static int hf_gsm_map_ch_ccbs_Possible; /* NULL */ static int hf_gsm_map_ch_keepCCBS_CallIndicator; /* NULL */ static int hf_gsm_map_ch_roamingNumber; /* ISDN_AddressString */ static int hf_gsm_map_ch_forwardingData; /* ForwardingData */ static int hf_gsm_map_ch_forwardedToNumber; /* ISDN_AddressString */ static int hf_gsm_map_ch_forwardedToSubaddress; /* ISDN_SubaddressString */ static int hf_gsm_map_ch_forwardingOptions; /* ForwardingOptions */ static int hf_gsm_map_ch_longForwardedToNumber; /* FTN_AddressString */ static int hf_gsm_map_ch_msc_Number; /* ISDN_AddressString */ static int hf_gsm_map_ch_lmsi; /* LMSI */ static int hf_gsm_map_ch_gmsc_Address; /* ISDN_AddressString */ static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode; /* SupportedCamelPhases */ static int hf_gsm_map_ch_orNotSupportedInGMSC; /* NULL */ static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode; /* OfferedCamel4CSIs */ static int hf_gsm_map_ch_pagingArea; /* PagingArea */ static int hf_gsm_map_ch_mtrf_Indicator; /* NULL */ static int hf_gsm_map_ch_oldMSC_Number; /* ISDN_AddressString */ static int hf_gsm_map_ch_lastUsedLtePLMN_Id; /* PLMN_Id */ static int hf_gsm_map_ch_o_CSI; /* O_CSI */ static int hf_gsm_map_ch_uu_Data; /* UU_Data */ static int hf_gsm_map_ch_allInformationSent; /* NULL */ static int hf_gsm_map_ch_d_csi; /* D_CSI */ static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList; /* O_BcsmCamelTDPCriteriaList */ static int hf_gsm_map_ch_mtRoamingRetry; /* NULL */ static int hf_gsm_map_ch_uuIndicator; /* UUIndicator */ static int hf_gsm_map_ch_uui; /* UUI */ static int hf_gsm_map_ch_uusCFInteraction; /* NULL */ static int hf_gsm_map_ch_supportedCamelPhases; /* SupportedCamelPhases */ static int hf_gsm_map_ch_suppress_T_CSI; /* NULL */ static int hf_gsm_map_ch_offeredCamel4CSIs; /* OfferedCamel4CSIs */ static int hf_gsm_map_ch_routingInfo; /* RoutingInfo */ static int hf_gsm_map_ch_camelRoutingInfo; /* CamelRoutingInfo */ static int hf_gsm_map_ch_gmscCamelSubscriptionInfo; /* GmscCamelSubscriptionInfo */ static int hf_gsm_map_ch_t_CSI; /* T_CSI */ static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList; /* O_BcsmCamelTDPCriteriaList */ static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList; /* T_BCSM_CAMEL_TDP_CriteriaList */ static int hf_gsm_map_ch_ccbs_Monitoring; /* ReportingState */ static int hf_gsm_map_ch_ccbs_SubscriberStatus; /* CCBS_SubscriberStatus */ static int hf_gsm_map_ch_eventReportData; /* EventReportData */ static int hf_gsm_map_ch_callReportdata; /* CallReportData */ static int hf_gsm_map_ch_monitoringMode; /* MonitoringMode */ static int hf_gsm_map_ch_callOutcome; /* CallOutcome */ static int hf_gsm_map_ch_callInfo; /* ExternalSignalInfo */ static int hf_gsm_map_ch_ccbs_Feature; /* CCBS_Feature */ static int hf_gsm_map_ch_translatedB_Number; /* ISDN_AddressString */ static int hf_gsm_map_ch_replaceB_Number; /* NULL */ static int hf_gsm_map_ch_ruf_Outcome; /* RUF_Outcome */ static int hf_gsm_map_ch_istInformationWithdraw; /* NULL */ static int hf_gsm_map_ch_callTerminationIndicator; /* CallTerminationIndicator */ static int hf_gsm_map_ch_msrn; /* ISDN_AddressString */ /* named bits */ static int hf_gsm_map_ch_SuppressMTSS_suppressCUG; static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS; static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed; static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed; /* --- Module MAP-LCS-DataTypes --- --- --- */ static int hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU; /* LCS_ClientID */ static int hf_gsm_map_lcs_mlcNumber; /* ISDN_AddressString */ static int hf_gsm_map_lcs_targetMS; /* SubscriberIdentity */ static int hf_gsm_map_lcs_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_lcs_lcsLocationInfo; /* LCSLocationInfo */ static int hf_gsm_map_lcs_v_gmlc_Address; /* GSN_Address */ static int hf_gsm_map_lcs_h_gmlc_Address; /* GSN_Address */ static int hf_gsm_map_lcs_ppr_Address; /* GSN_Address */ static int hf_gsm_map_lcs_additional_v_gmlc_Address; /* GSN_Address */ static int hf_gsm_map_lcs_networkNode_Number; /* ISDN_AddressString */ static int hf_gsm_map_lcs_lmsi; /* LMSI */ static int hf_gsm_map_lcs_gprsNodeIndicator; /* NULL */ static int hf_gsm_map_lcs_additional_Number; /* Additional_Number */ static int hf_gsm_map_lcs_supportedLCS_CapabilitySets; /* SupportedLCS_CapabilitySets */ static int hf_gsm_map_lcs_additional_LCS_CapabilitySets; /* SupportedLCS_CapabilitySets */ static int hf_gsm_map_lcs_mme_Name; /* DiameterIdentity */ static int hf_gsm_map_lcs_aaa_Server_Name; /* DiameterIdentity */ static int hf_gsm_map_lcs_sgsn_Name; /* DiameterIdentity */ static int hf_gsm_map_lcs_sgsn_Realm; /* DiameterIdentity */ static int hf_gsm_map_lcs_locationType; /* LocationType */ static int hf_gsm_map_lcs_mlc_Number; /* ISDN_AddressString */ static int hf_gsm_map_lcs_lcs_ClientID; /* LCS_ClientID */ static int hf_gsm_map_lcs_privacyOverride; /* NULL */ static int hf_gsm_map_lcs_imsi; /* IMSI */ static int hf_gsm_map_lcs_msisdn; /* ISDN_AddressString */ static int hf_gsm_map_lcs_imei; /* IMEI */ static int hf_gsm_map_lcs_lcs_Priority; /* LCS_Priority */ static int hf_gsm_map_lcs_lcs_QoS; /* LCS_QoS */ static int hf_gsm_map_lcs_supportedGADShapes; /* SupportedGADShapes */ static int hf_gsm_map_lcs_lcs_ReferenceNumber; /* LCS_ReferenceNumber */ static int hf_gsm_map_lcs_lcsServiceTypeID; /* LCSServiceTypeID */ static int hf_gsm_map_lcs_lcsCodeword; /* LCSCodeword */ static int hf_gsm_map_lcs_lcs_PrivacyCheck; /* LCS_PrivacyCheck */ static int hf_gsm_map_lcs_areaEventInfo; /* AreaEventInfo */ static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator; /* NULL */ static int hf_gsm_map_lcs_periodicLDRInfo; /* PeriodicLDRInfo */ static int hf_gsm_map_lcs_reportingPLMNList; /* ReportingPLMNList */ static int hf_gsm_map_lcs_locationEstimateType; /* LocationEstimateType */ static int hf_gsm_map_lcs_deferredLocationEventType; /* DeferredLocationEventType */ static int hf_gsm_map_lcs_lcsClientType; /* LCSClientType */ static int hf_gsm_map_lcs_lcsClientExternalID; /* LCSClientExternalID */ static int hf_gsm_map_lcs_lcsClientDialedByMS; /* AddressString */ static int hf_gsm_map_lcs_lcsClientInternalID; /* LCSClientInternalID */ static int hf_gsm_map_lcs_lcsClientName; /* LCSClientName */ static int hf_gsm_map_lcs_lcsAPN; /* APN */ static int hf_gsm_map_lcs_lcsRequestorID; /* LCSRequestorID */ static int hf_gsm_map_lcs_dataCodingScheme; /* USSD_DataCodingScheme */ static int hf_gsm_map_lcs_nameString; /* NameString */ static int hf_gsm_map_lcs_lcs_FormatIndicator; /* LCS_FormatIndicator */ static int hf_gsm_map_lcs_requestorIDString; /* RequestorIDString */ static int hf_gsm_map_lcs_horizontal_accuracy; /* Horizontal_Accuracy */ static int hf_gsm_map_lcs_verticalCoordinateRequest; /* NULL */ static int hf_gsm_map_lcs_vertical_accuracy; /* Vertical_Accuracy */ static int hf_gsm_map_lcs_responseTime; /* ResponseTime */ static int hf_gsm_map_lcs_velocityRequest; /* NULL */ static int hf_gsm_map_lcs_responseTimeCategory; /* ResponseTimeCategory */ static int hf_gsm_map_lcs_lcsCodewordString; /* LCSCodewordString */ static int hf_gsm_map_lcs_callSessionUnrelated; /* PrivacyCheckRelatedAction */ static int hf_gsm_map_lcs_callSessionRelated; /* PrivacyCheckRelatedAction */ static int hf_gsm_map_lcs_areaDefinition; /* AreaDefinition */ static int hf_gsm_map_lcs_occurrenceInfo; /* OccurrenceInfo */ static int hf_gsm_map_lcs_intervalTime; /* IntervalTime */ static int hf_gsm_map_lcs_areaList; /* AreaList */ static int hf_gsm_map_lcs_AreaList_item; /* Area */ static int hf_gsm_map_lcs_areaType; /* AreaType */ static int hf_gsm_map_lcs_areaIdentification; /* AreaIdentification */ static int hf_gsm_map_lcs_reportingAmount; /* ReportingAmount */ static int hf_gsm_map_lcs_reportingInterval; /* ReportingInterval */ static int hf_gsm_map_lcs_plmn_ListPrioritized; /* NULL */ static int hf_gsm_map_lcs_plmn_List; /* PLMNList */ static int hf_gsm_map_lcs_PLMNList_item; /* ReportingPLMN */ static int hf_gsm_map_lcs_plmn_Id; /* PLMN_Id */ static int hf_gsm_map_lcs_ran_Technology; /* RAN_Technology */ static int hf_gsm_map_lcs_ran_PeriodicLocationSupport; /* NULL */ static int hf_gsm_map_lcs_locationEstimate; /* Ext_GeographicalInformation */ static int hf_gsm_map_lcs_ageOfLocationEstimate; /* AgeOfLocationInformation */ static int hf_gsm_map_lcs_add_LocationEstimate; /* Add_GeographicalInformation */ static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator; /* NULL */ static int hf_gsm_map_lcs_geranPositioningData; /* PositioningDataInformation */ static int hf_gsm_map_lcs_utranPositioningData; /* UtranPositioningDataInfo */ static int hf_gsm_map_lcs_cellIdOrSai; /* CellGlobalIdOrServiceAreaIdOrLAI */ static int hf_gsm_map_lcs_sai_Present; /* NULL */ static int hf_gsm_map_lcs_accuracyFulfilmentIndicator; /* AccuracyFulfilmentIndicator */ static int hf_gsm_map_lcs_velocityEstimate; /* VelocityEstimate */ static int hf_gsm_map_lcs_geranGANSSpositioningData; /* GeranGANSSpositioningData */ static int hf_gsm_map_lcs_utranGANSSpositioningData; /* UtranGANSSpositioningData */ static int hf_gsm_map_lcs_targetServingNodeForHandover; /* ServingNodeAddress */ static int hf_gsm_map_lcs_utranAdditionalPositioningData; /* UtranAdditionalPositioningData */ static int hf_gsm_map_lcs_utranBaroPressureMeas; /* UtranBaroPressureMeas */ static int hf_gsm_map_lcs_utranCivicAddress; /* UtranCivicAddress */ static int hf_gsm_map_lcs_lcs_Event; /* LCS_Event */ static int hf_gsm_map_lcs_na_ESRD; /* ISDN_AddressString */ static int hf_gsm_map_lcs_na_ESRK; /* ISDN_AddressString */ static int hf_gsm_map_lcs_slr_ArgExtensionContainer; /* SLR_ArgExtensionContainer */ static int hf_gsm_map_lcs_deferredmt_lrData; /* Deferredmt_lrData */ static int hf_gsm_map_lcs_pseudonymIndicator; /* NULL */ static int hf_gsm_map_lcs_sequenceNumber; /* SequenceNumber */ static int hf_gsm_map_lcs_terminationCause; /* TerminationCause */ static int hf_gsm_map_lcs_msc_Number; /* ISDN_AddressString */ static int hf_gsm_map_lcs_sgsn_Number; /* ISDN_AddressString */ static int hf_gsm_map_lcs_mme_Number; /* DiameterIdentity */ /* named bits */ static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable; static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea; static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea; static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea; static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR; static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint; static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle; static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse; static int hf_gsm_map_lcs_SupportedGADShapes_polygon; static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude; static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid; static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc; /* --- Module MAP-GR-DataTypes --- --- --- */ static int hf_gsm_map_gr_teleservice; /* Ext_TeleserviceCode */ static int hf_gsm_map_gr_asciCallReference; /* ASCI_CallReference */ static int hf_gsm_map_gr_codec_Info; /* CODEC_Info */ static int hf_gsm_map_gr_cipheringAlgorithm; /* CipheringAlgorithm */ static int hf_gsm_map_gr_groupKeyNumber_Vk_Id; /* GroupKeyNumber */ static int hf_gsm_map_gr_groupKey; /* Kc */ static int hf_gsm_map_gr_priority; /* EMLPP_Priority */ static int hf_gsm_map_gr_uplinkFree; /* NULL */ static int hf_gsm_map_gr_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_gr_vstk; /* VSTK */ static int hf_gsm_map_gr_vstk_rand; /* VSTK_RAND */ static int hf_gsm_map_gr_talkerChannelParameter; /* NULL */ static int hf_gsm_map_gr_uplinkReplyIndicator; /* NULL */ static int hf_gsm_map_gr_groupCallNumber; /* ISDN_AddressString */ static int hf_gsm_map_gr_imsi; /* IMSI */ static int hf_gsm_map_gr_talkerPriority; /* TalkerPriority */ static int hf_gsm_map_gr_additionalInfo; /* AdditionalInfo */ static int hf_gsm_map_gr_uplinkRequestAck; /* NULL */ static int hf_gsm_map_gr_uplinkReleaseIndication; /* NULL */ static int hf_gsm_map_gr_uplinkRejectCommand; /* NULL */ static int hf_gsm_map_gr_uplinkSeizedCommand; /* NULL */ static int hf_gsm_map_gr_uplinkReleaseCommand; /* NULL */ static int hf_gsm_map_gr_stateAttributes; /* StateAttributes */ static int hf_gsm_map_gr_emergencyModeResetCommandFlag; /* NULL */ static int hf_gsm_map_gr_sm_RP_UI; /* SignalInfo */ static int hf_gsm_map_gr_an_APDU; /* AccessNetworkSignalInfo */ static int hf_gsm_map_gr_uplinkRequest; /* NULL */ static int hf_gsm_map_gr_releaseGroupCall; /* NULL */ static int hf_gsm_map_gr_downlinkAttached; /* NULL */ static int hf_gsm_map_gr_uplinkAttached; /* NULL */ static int hf_gsm_map_gr_dualCommunication; /* NULL */ static int hf_gsm_map_gr_callOriginator; /* NULL */ static int hf_gsm_map_gr_requestedInfo; /* RequestedInfo */ static int hf_gsm_map_gr_groupId; /* Long_GroupId */ static int hf_gsm_map_gr_cellId; /* GlobalCellId */ static int hf_gsm_map_gr_tmsi; /* TMSI */ static int hf_gsm_map_gr_cksn; /* Cksn */ static int hf_gsm_map_gr_anchorMSC_Address; /* ISDN_AddressString */ static int hf_gsm_map_gr_additionalSubscriptions; /* AdditionalSubscriptions */ static int hf_gsm_map_gr_kc; /* Kc */ /* --- Module MAP-DialogueInformation --- --- --- */ static int hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU; /* MAP_DialoguePDU */ static int hf_gsm_map_dialogue_map_open; /* MAP_OpenInfo */ static int hf_gsm_map_dialogue_map_accept; /* MAP_AcceptInfo */ static int hf_gsm_map_dialogue_map_close; /* MAP_CloseInfo */ static int hf_gsm_map_dialogue_map_refuse; /* MAP_RefuseInfo */ static int hf_gsm_map_dialogue_map_userAbort; /* MAP_UserAbortInfo */ static int hf_gsm_map_dialogue_map_providerAbort; /* MAP_ProviderAbortInfo */ static int hf_gsm_map_dialogue_destinationReference; /* AddressString */ static int hf_gsm_map_dialogue_originationReference; /* AddressString */ static int hf_gsm_map_dialogue_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_dialogue_reason; /* Reason */ static int hf_gsm_map_dialogue_alternativeApplicationContext; /* OBJECT_IDENTIFIER */ static int hf_gsm_map_dialogue_map_UserAbortChoice; /* MAP_UserAbortChoice */ static int hf_gsm_map_dialogue_userSpecificReason; /* NULL */ static int hf_gsm_map_dialogue_userResourceLimitation; /* NULL */ static int hf_gsm_map_dialogue_resourceUnavailable; /* ResourceUnavailableReason */ static int hf_gsm_map_dialogue_applicationProcedureCancellation; /* ProcedureCancellationReason */ static int hf_gsm_map_dialogue_map_ProviderAbortReason; /* MAP_ProviderAbortReason */ /* --- Module DummyMAP --- --- --- */ static int hf_gsm_old_invoke; /* Invoke */ static int hf_gsm_old_returnResultLast; /* ReturnResult */ static int hf_gsm_old_returnError; /* ReturnError */ static int hf_gsm_old_reject; /* Reject */ static int hf_gsm_old_returnResultNotLast; /* ReturnResult */ static int hf_gsm_old_invokeID; /* InvokeIdType */ static int hf_gsm_old_linkedID; /* InvokeIdType */ static int hf_gsm_old_opCode; /* MAP_OPERATION */ static int hf_gsm_old_invokeparameter; /* InvokeParameter */ static int hf_gsm_old_resultretres; /* T_resultretres */ static int hf_gsm_old_returnparameter; /* ReturnResultParameter */ static int hf_gsm_old_errorCode; /* MAP_ERROR */ static int hf_gsm_old_parameter; /* ReturnErrorParameter */ static int hf_gsm_old_invokeIDRej; /* T_invokeIDRej */ static int hf_gsm_old_derivable; /* InvokeIdType */ static int hf_gsm_old_not_derivable; /* NULL */ static int hf_gsm_old_problem; /* T_problem */ static int hf_gsm_old_generalProblem; /* GeneralProblem */ static int hf_gsm_old_invokeProblem; /* InvokeProblem */ static int hf_gsm_old_returnResultProblem; /* ReturnResultProblem */ static int hf_gsm_old_returnErrorProblem; /* ReturnErrorProblem */ static int hf_gsm_old_localValue; /* OperationLocalvalue */ static int hf_gsm_old_globalValue; /* OBJECT_IDENTIFIER */ static int hf_gsm_old_localValue_01; /* LocalErrorcode */ static int hf_gsm_old_protocolId; /* ProtocolId */ static int hf_gsm_old_signalInfo; /* SignalInfo */ static int hf_gsm_old_extensionContainer; /* ExtensionContainer */ static int hf_gsm_old_gsm_BearerCapability; /* ExternalSignalInfo */ static int hf_gsm_old_isdn_BearerCapability; /* ExternalSignalInfo */ static int hf_gsm_old_call_Direction; /* CallDirection */ static int hf_gsm_old_b_Subscriber_Address; /* ISDN_AddressString */ static int hf_gsm_old_chosenChannel; /* ExternalSignalInfo */ static int hf_gsm_old_lowerLayerCompatibility; /* ExternalSignalInfo */ static int hf_gsm_old_highLayerCompatibility; /* ExternalSignalInfo */ static int hf_gsm_old_sIWFSNumber; /* ISDN_AddressString */ static int hf_gsm_old_imsi; /* IMSI */ static int hf_gsm_old_vlr_Number; /* ISDN_AddressString */ static int hf_gsm_old_targetCellId; /* GlobalCellId */ static int hf_gsm_old_ho_NumberNotRequired; /* NULL */ static int hf_gsm_old_bss_APDU; /* Bss_APDU */ static int hf_gsm_old_handoverNumber; /* ISDN_AddressString */ static int hf_gsm_old_SendAuthenticationInfoResOld_item; /* SendAuthenticationInfoResOld_item */ static int hf_gsm_old_rand; /* RAND */ static int hf_gsm_old_sres; /* SRES */ static int hf_gsm_old_kc; /* Kc */ static int hf_gsm_old_tripletList; /* TripletListold */ static int hf_gsm_old_TripletListold_item; /* AuthenticationTriplet_v2 */ static int hf_gsm_old_channelType; /* ExternalSignalInfo */ static int hf_gsm_old_securityHeader; /* SecurityHeader */ static int hf_gsm_old_protectedPayload; /* ProtectedPayload */ static int hf_gsm_old_securityParametersIndex; /* SecurityParametersIndex */ static int hf_gsm_old_originalComponentIdentifier; /* OriginalComponentIdentifier */ static int hf_gsm_old_initialisationVector; /* InitialisationVector */ static int hf_gsm_old_operationCode; /* OperationCode */ static int hf_gsm_old_errorCode_01; /* ErrorCode */ static int hf_gsm_old_userInfo; /* NULL */ static int hf_gsm_old_localValue_02; /* INTEGER */ static int hf_gsm_old_msisdn; /* ISDN_AddressString */ static int hf_gsm_old_category; /* Category */ static int hf_gsm_old_basicService; /* BasicServiceCode */ static int hf_gsm_old_operatorSS_Code; /* T_operatorSS_Code */ static int hf_gsm_old_operatorSS_Code_item; /* OCTET_STRING_SIZE_1 */ static int hf_gsm_old_sm_RP_DA; /* SM_RP_DAold */ static int hf_gsm_old_sm_RP_OA; /* SM_RP_OAold */ static int hf_gsm_old_sm_RP_UI; /* SignalInfo */ static int hf_gsm_old_moreMessagesToSend; /* NULL */ static int hf_gsm_old_imsi_01; /* T_imsi */ static int hf_gsm_old_lmsi; /* T_lmsi */ static int hf_gsm_old_serviceCentreAddressDA; /* T_serviceCentreAddressDA */ static int hf_gsm_old_noSM_RP_DA; /* T_noSM_RP_DA */ static int hf_gsm_old_msisdn_01; /* T_msisdn */ static int hf_gsm_old_serviceCentreAddressOA; /* T_serviceCentreAddressOA */ static int hf_gsm_old_noSM_RP_OA; /* T_noSM_RP_OA */ static int hf_gsm_old_cug_CheckInfo; /* CUG_CheckInfo */ static int hf_gsm_old_numberOfForwarding; /* NumberOfForwarding */ static int hf_gsm_old_networkSignalInfo; /* ExternalSignalInfo */ static int hf_gsm_old_routingInfo; /* RoutingInfo */ static int hf_gsm_old_originatingEntityNumber; /* ISDN_AddressString */ static int hf_gsm_old_msisdn_02; /* AddressString */ static int hf_gsm_old_sm_RP_PRI; /* BOOLEAN */ static int hf_gsm_old_serviceCentreAddress; /* AddressString */ static int hf_gsm_old_cug_Interlock; /* CUG_Interlock */ static int hf_gsm_old_teleserviceCode; /* TeleserviceCode */ static int hf_gsm_old_locationInfoWithLMSI; /* LocationInfoWithLMSIv2 */ static int hf_gsm_old_mwd_Set; /* BOOLEAN */ static int hf_gsm_old_locationInfo; /* LocationInfo */ static int hf_gsm_old_lmsi_01; /* LMSI */ static int hf_gsm_old_roamingNumber; /* ISDN_AddressString */ static int hf_gsm_old_msc_Number; /* ISDN_AddressString */ static int hf_gsm_old_subscriberId; /* SubscriberId */ static int hf_gsm_old_requestParameterList; /* RequestParameterList */ static int hf_gsm_old_RequestParameterList_item; /* RequestParameter */ static int hf_gsm_old_authenticationSet; /* AuthenticationSetListOld */ static int hf_gsm_old_subscriberData; /* SubscriberData */ static int hf_gsm_old_ki; /* Ki */ static int hf_gsm_old_tripletList_01; /* TripletList */ static int hf_gsm_old_quintupletList; /* QuintupletList */ static int hf_gsm_old_SentParameterList_item; /* SentParameter */ static int hf_gsm_old_networkResource; /* NetworkResource */ static int hf_gsm_old_hlr_Number; /* ISDN_AddressString */ static int hf_gsm_old_hlr_List; /* HLR_List */ /* --- Module SS-DataTypes --- --- --- */ static int hf_gsm_ss_ss_Code; /* SS_Code */ static int hf_gsm_ss_ss_Status; /* SS_Status */ static int hf_gsm_ss_ss_Notification; /* SS_Notification */ static int hf_gsm_ss_callIsWaiting_Indicator; /* NULL */ static int hf_gsm_ss_callOnHold_Indicator; /* CallOnHold_Indicator */ static int hf_gsm_ss_mpty_Indicator; /* NULL */ static int hf_gsm_ss_cug_Index; /* CUG_Index */ static int hf_gsm_ss_clirSuppressionRejected; /* NULL */ static int hf_gsm_ss_ect_Indicator; /* ECT_Indicator */ static int hf_gsm_ss_nameIndicator; /* NameIndicator */ static int hf_gsm_ss_ccbs_Feature; /* CCBS_Feature */ static int hf_gsm_ss_alertingPattern; /* AlertingPattern */ static int hf_gsm_ss_multicall_Indicator; /* Multicall_Indicator */ static int hf_gsm_ss_chargingInformation; /* ChargingInformation */ static int hf_gsm_ss_e1; /* E1 */ static int hf_gsm_ss_e2; /* E2 */ static int hf_gsm_ss_e3; /* E3 */ static int hf_gsm_ss_e4; /* E4 */ static int hf_gsm_ss_e5; /* E5 */ static int hf_gsm_ss_e6; /* E6 */ static int hf_gsm_ss_e7; /* E7 */ static int hf_gsm_ss_suppressPrefCUG; /* NULL */ static int hf_gsm_ss_suppressOA; /* NULL */ static int hf_gsm_ss_ect_CallState; /* ECT_CallState */ static int hf_gsm_ss_rdn; /* RDN */ static int hf_gsm_ss_callingName; /* Name */ static int hf_gsm_ss_namePresentationAllowed; /* NameSet */ static int hf_gsm_ss_presentationRestricted; /* NULL */ static int hf_gsm_ss_nameUnavailable; /* NULL */ static int hf_gsm_ss_namePresentationRestricted; /* NameSet */ static int hf_gsm_ss_dataCodingScheme; /* USSD_DataCodingScheme */ static int hf_gsm_ss_lengthInCharacters; /* INTEGER */ static int hf_gsm_ss_nameString; /* USSD_String */ static int hf_gsm_ss_presentationAllowedAddress; /* RemotePartyNumber */ static int hf_gsm_ss_numberNotAvailableDueToInterworking; /* NULL */ static int hf_gsm_ss_presentationRestrictedAddress; /* RemotePartyNumber */ static int hf_gsm_ss_partyNumber; /* ISDN_AddressString */ static int hf_gsm_ss_partyNumberSubaddress; /* ISDN_SubaddressString */ static int hf_gsm_ss_deflectedToNumber; /* AddressString */ static int hf_gsm_ss_deflectedToSubaddress; /* ISDN_SubaddressString */ static int hf_gsm_ss_uUS_Service; /* UUS_Service */ static int hf_gsm_ss_uUS_Required; /* BOOLEAN */ static int hf_gsm_ss_notificationType; /* NotificationToMSUser */ static int hf_gsm_ss_locationType; /* LocationType */ static int hf_gsm_ss_lcsClientExternalID; /* LCSClientExternalID */ static int hf_gsm_ss_lcsClientName; /* LCSClientName */ static int hf_gsm_ss_lcsRequestorID; /* LCSRequestorID */ static int hf_gsm_ss_lcsCodeword; /* LCSCodeword */ static int hf_gsm_ss_lcsServiceTypeID; /* LCSServiceTypeID */ static int hf_gsm_ss_deferredLocationExt; /* DeferredLocationExt */ static int hf_gsm_ss_verificationResponse; /* VerificationResponse */ static int hf_gsm_ss_molr_Type; /* MOLR_Type */ static int hf_gsm_ss_locationMethod; /* LocationMethod */ static int hf_gsm_ss_lcs_QoS; /* LCS_QoS */ static int hf_gsm_ss_mlc_Number; /* ISDN_AddressString */ static int hf_gsm_ss_gpsAssistanceData; /* GPSAssistanceData */ static int hf_gsm_ss_supportedGADShapes; /* SupportedGADShapes */ static int hf_gsm_ss_ageOfLocationInfo; /* AgeOfLocationInformation */ static int hf_gsm_ss_pseudonymIndicator; /* NULL */ static int hf_gsm_ss_h_gmlc_address; /* GSN_Address */ static int hf_gsm_ss_locationEstimate; /* Ext_GeographicalInformation */ static int hf_gsm_ss_velocityEstimate; /* VelocityEstimate */ static int hf_gsm_ss_referenceNumber; /* LCS_ReferenceNumber */ static int hf_gsm_ss_periodicLDRInfo; /* PeriodicLDRInfo */ static int hf_gsm_ss_locationUpdateRequest; /* NULL */ static int hf_gsm_ss_sequenceNumber; /* SequenceNumber */ static int hf_gsm_ss_terminationCause; /* TerminationCause */ static int hf_gsm_ss_mo_lrShortCircuit; /* NULL */ static int hf_gsm_ss_ganssAssistanceData; /* GANSSAssistanceData */ static int hf_gsm_ss_multiplePositioningProtocolPDUs; /* MultiplePositioningProtocolPDUs */ static int hf_gsm_ss_locationInfo; /* Location_Info */ static int hf_gsm_ss_MultiplePositioningProtocolPDUs_item; /* PositioningProtocolPDU */ static int hf_gsm_ss_decipheringKeys; /* DecipheringKeys */ static int hf_gsm_ss_add_LocationEstimate; /* Add_GeographicalInformation */ static int hf_gsm_ss_reportingPLMNList; /* ReportingPLMNList */ static int hf_gsm_ss_deferredLocationEventType; /* DeferredLocationEventType */ static int hf_gsm_ss_areaEventInfo; /* AreaEventInfo */ static int hf_gsm_ss_qoS; /* LCS_QoS */ static int hf_gsm_ss_periodicLocation; /* PeriodicLocation */ static int hf_gsm_ss_areaEventReporting; /* AreaEventReporting */ static int hf_gsm_ss_motionEventReporting; /* MotionEventReporting */ static int hf_gsm_ss_areaList; /* AreaList */ static int hf_gsm_ss_occurrenceInfo; /* OccurrenceInfo */ static int hf_gsm_ss_intervalTime; /* IntervalTime */ static int hf_gsm_ss_maximumInterval; /* MaximumInterval */ static int hf_gsm_ss_samplingInterval; /* SamplingInterval */ static int hf_gsm_ss_duration; /* Duration */ static int hf_gsm_ss_AreaList_item; /* Area */ static int hf_gsm_ss_areaType; /* AreaType */ static int hf_gsm_ss_areaIdentification; /* AreaIdentification */ static int hf_gsm_ss_linearDistance; /* LinearDistance */ /* named bits */ static int hf_gsm_ss_DeferredLocationExt_motionEvent; static int hf_gsm_ss_Location_Info_locationEstimate; /* --- Module EricssonMAP --- --- --- */ static int hf_gsm_map_ericsson_imei; /* IMEI */ static int hf_gsm_map_ericsson_requestedEquipmentInfo; /* RequestedEquipmentInfo */ static int hf_gsm_map_ericsson_imsi; /* IMSI */ static int hf_gsm_map_ericsson_locationInformation; /* T_locationInformation */ static int hf_gsm_map_ericsson_extensionContainer; /* ExtensionContainer */ static int hf_gsm_map_ericsson_isdArgType; /* IsdArgType */ static int hf_gsm_map_ericsson_isdResType; /* IsdResType */ static int hf_gsm_map_ericsson_dsdArgType; /* DsdArgType */ static int hf_gsm_map_ericsson_sriArgType; /* SRIArgType */ static int hf_gsm_map_ericsson_sriResType; /* SRIResType */ static int hf_gsm_map_ericsson_prnArgType; /* PrnArgType */ static int hf_gsm_map_ericsson_ulArgType; /* UlArgType */ static int hf_gsm_map_ericsson_rdArgType; /* RdArgType */ static int hf_gsm_map_ericsson_saiArgType; /* SaiArgType */ static int hf_gsm_map_ericsson_saiResType; /* SaiResType */ static int hf_gsm_map_ericsson_atiArgType; /* AtiArgType */ static int hf_gsm_map_ericsson_atiResType; /* AtiResType */ static int hf_gsm_map_ericsson_extAtiArgType; /* ExtAtiArgType */ static int hf_gsm_map_ericsson_IsdArgType_item; /* IsdArgData */ static int hf_gsm_map_ericsson_privateFeatureCode; /* PrivateFeatureCode */ static int hf_gsm_map_ericsson_privateFeatureData; /* PrivateFeatureData */ static int hf_gsm_map_ericsson_subscriptionTypeInfo; /* SubscriptionTypeInfo */ static int hf_gsm_map_ericsson_oickInfo; /* OickInfo */ static int hf_gsm_map_ericsson_ss_Status; /* Ext_SS_Status */ static int hf_gsm_map_ericsson_inCategoryKey; /* INCategoryKey */ static int hf_gsm_map_ericsson_subscriptionType; /* SubscriptionType */ static int hf_gsm_map_ericsson_IsdResType_item; /* IsdResData */ static int hf_gsm_map_ericsson_supportedPrivateFeature; /* PrivateFeatureCode */ static int hf_gsm_map_ericsson_DsdArgType_item; /* DsdArgData */ static int hf_gsm_map_ericsson_privateFeatureWithdraw; /* PrivateFeatureCode */ static int hf_gsm_map_ericsson_SRIArgType_item; /* SriArgData */ static int hf_gsm_map_ericsson_extraNetworkInfo; /* ExtraSignalInfo */ static int hf_gsm_map_ericsson_SRIResType_item; /* SriResData */ static int hf_gsm_map_ericsson_PrnArgType_item; /* PrnArgData */ static int hf_gsm_map_ericsson_UlArgType_item; /* UlArgData */ static int hf_gsm_map_ericsson_privateFeatureUlArgData; /* PrivateFeatureUlArgData */ static int hf_gsm_map_ericsson_adc; /* IMEI */ static int hf_gsm_map_ericsson_protocolId; /* ExtraProtocolId */ static int hf_gsm_map_ericsson_signalInfo; /* SignalInfo */ static int hf_gsm_map_ericsson_msisdn; /* NULL */ static int hf_gsm_map_ericsson_noAuthenVectorsRequested; /* NULL */ static int hf_gsm_map_ericsson_msIsdn; /* ISDN_AddressString */ static int hf_gsm_map_ericsson_requestedInfoType; /* RequestedInfoType */ static int hf_gsm_map_ericsson_toBeDecided; /* NULL */ static int hf_gsm_map_ericsson_toBeDecidedOne; /* NULL */ static int hf_gsm_map_ericsson_sgsnNumber; /* NULL */ static int hf_gsm_map_ericsson_ExtAtiArgType_item; /* AtiArgData */ /* --- Module NokiaMAP-Extensions --- --- --- */ static int hf_NokiaMAP_Extensions_alsLineIndicator; /* NULL */ static int hf_NokiaMAP_Extensions_routingCategory; /* RoutingCategory */ static int hf_NokiaMAP_Extensions_serviceList; /* MAPserviceList */ static int hf_NokiaMAP_Extensions_serv_info_list; /* ServiceListWithInfo */ static int hf_NokiaMAP_Extensions_extRoutingCategory; /* ExtRoutingCategory */ static int hf_NokiaMAP_Extensions_ownMSISDN; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_mwd_Set; /* NULL */ static int hf_NokiaMAP_Extensions_ChargingAreaList_item; /* ChargingArea */ static int hf_NokiaMAP_Extensions_chargingAreaList; /* ChargingAreaList */ static int hf_NokiaMAP_Extensions_inTriggerKey; /* InTriggerKey */ static int hf_NokiaMAP_Extensions_pnpIndex; /* PnpIndex */ static int hf_NokiaMAP_Extensions_callRedirectionIndex; /* CallRedirectionIndex */ static int hf_NokiaMAP_Extensions_regionalChargingData; /* RegionalChargingData */ static int hf_NokiaMAP_Extensions_callForwardingOverride; /* NULL */ static int hf_NokiaMAP_Extensions_in_Capability; /* NULL */ static int hf_NokiaMAP_Extensions_callingCategory; /* CallingCategory */ static int hf_NokiaMAP_Extensions_internalServiceIndicator; /* InternalServiceIndicator */ static int hf_NokiaMAP_Extensions_srbtSupportIndicator; /* NULL */ static int hf_NokiaMAP_Extensions_gmscSupportIndicator; /* NULL */ static int hf_NokiaMAP_Extensions_protocolId; /* ExtraProtocolId */ static int hf_NokiaMAP_Extensions_signalInfo; /* SignalInfo */ static int hf_NokiaMAP_Extensions_cug_Interlock; /* CUG_Interlock */ static int hf_NokiaMAP_Extensions_cug_OutgoingAccess; /* BOOLEAN */ static int hf_NokiaMAP_Extensions_cug_CallInfo; /* CUG_CallInfo */ static int hf_NokiaMAP_Extensions_vlrNumber; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_activeSs; /* ActiveSS_List */ static int hf_NokiaMAP_Extensions_traceReference; /* TraceReference */ static int hf_NokiaMAP_Extensions_traceType; /* TraceType */ static int hf_NokiaMAP_Extensions_omc_Id; /* AddressString */ static int hf_NokiaMAP_Extensions_hotBilling; /* BOOLEAN */ static int hf_NokiaMAP_Extensions_cfoIsDone; /* BOOLEAN */ static int hf_NokiaMAP_Extensions_cfInCug; /* BOOLEAN */ static int hf_NokiaMAP_Extensions_basicService; /* BasicServiceCode */ static int hf_NokiaMAP_Extensions_category; /* Category */ static int hf_NokiaMAP_Extensions_nokia_CUG; /* Nokia_CUG_Data */ static int hf_NokiaMAP_Extensions_noBarrings; /* NULL */ static int hf_NokiaMAP_Extensions_odb_Data; /* ODB_Data */ static int hf_NokiaMAP_Extensions_fraudData; /* FraudData */ static int hf_NokiaMAP_Extensions_leaId; /* LeaId */ static int hf_NokiaMAP_Extensions_olcmInfoTable; /* OlcmInfoTable */ static int hf_NokiaMAP_Extensions_commonMSISDN; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_rgData; /* RgData */ static int hf_NokiaMAP_Extensions_olcmTraceReference; /* OlcmTraceReference */ static int hf_NokiaMAP_Extensions_noAnswerTimer; /* NoAnswerTimer */ static int hf_NokiaMAP_Extensions_memberList; /* MemberList */ static int hf_NokiaMAP_Extensions_alertingMethod; /* AlertingMethod */ static int hf_NokiaMAP_Extensions_userType; /* UserType */ static int hf_NokiaMAP_Extensions_divertedToNbr; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_memberOfSuppression; /* NULL */ static int hf_NokiaMAP_Extensions_ringbacktone; /* NULL */ static int hf_NokiaMAP_Extensions_MemberList_item; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_termination; /* OCTET_STRING_SIZE_1 */ static int hf_NokiaMAP_Extensions_OlcmInfoTable_item; /* OlcmInfo */ static int hf_NokiaMAP_Extensions_olcmActive; /* NULL */ static int hf_NokiaMAP_Extensions_moc; /* FraudData */ static int hf_NokiaMAP_Extensions_cf; /* FraudData */ static int hf_NokiaMAP_Extensions_ct; /* FraudData */ static int hf_NokiaMAP_Extensions_time; /* TimeLimit */ static int hf_NokiaMAP_Extensions_timeAction; /* ActionType */ static int hf_NokiaMAP_Extensions_maxCount; /* FraudMaxCount */ static int hf_NokiaMAP_Extensions_maxCountAction; /* ActionType */ static int hf_NokiaMAP_Extensions_serviceCode; /* MAPserviceCode */ static int hf_NokiaMAP_Extensions_versionInfo; /* VersionInfo */ static int hf_NokiaMAP_Extensions_in_key; /* INKey */ static int hf_NokiaMAP_Extensions_fraudInfo; /* FraudInfo */ static int hf_NokiaMAP_Extensions_ServiceListWithInfo_item; /* ServiceWithInfo */ static int hf_NokiaMAP_Extensions_mobile_IN_key; /* MKey */ static int hf_NokiaMAP_Extensions_sms_IN_key; /* SMSKey */ static int hf_NokiaMAP_Extensions_mKeyVer; /* MKeyVer */ static int hf_NokiaMAP_Extensions_mmScfAddress; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_mmTdpName; /* MmTdpName */ static int hf_NokiaMAP_Extensions_serviceKey; /* ServiceKey */ static int hf_NokiaMAP_Extensions_locupType; /* LocupType */ static int hf_NokiaMAP_Extensions_mmSCPAddress; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_smsTdpName; /* SmsTdpName */ static int hf_NokiaMAP_Extensions_mmsFlag; /* NULL */ static int hf_NokiaMAP_Extensions_map_Opt; /* MapOptFields */ static int hf_NokiaMAP_Extensions_codec_List; /* CodecListExt */ static int hf_NokiaMAP_Extensions_selected_Codec; /* SelectedCodec */ static int hf_NokiaMAP_Extensions_uma_access; /* NULL */ static int hf_NokiaMAP_Extensions_uma_ip_address; /* OCTET_STRING_SIZE_5_17 */ static int hf_NokiaMAP_Extensions_uma_ip_port_nb; /* IPPortNb */ static int hf_NokiaMAP_Extensions_CodecListExt_item; /* CodecExt */ static int hf_NokiaMAP_Extensions_codec; /* CodecExt */ static int hf_NokiaMAP_Extensions_modes; /* Modes */ static int hf_NokiaMAP_Extensions_imsi; /* IMSI */ static int hf_NokiaMAP_Extensions_cfuSMSCounter; /* CfuSMSCounter */ static int hf_NokiaMAP_Extensions_cfusmcfo; /* NULL */ static int hf_NokiaMAP_Extensions_memberInterrogate; /* NULL */ static int hf_NokiaMAP_Extensions_locationAreaCode; /* LocationAreaCode */ static int hf_NokiaMAP_Extensions_cellId; /* CellGlobalIdOrServiceAreaIdFixedLength */ static int hf_NokiaMAP_Extensions_lai; /* LAIFixedLength */ static int hf_NokiaMAP_Extensions_sendImmResp; /* NULL */ static int hf_NokiaMAP_Extensions_rejectCause; /* OCTET_STRING_SIZE_1 */ static int hf_NokiaMAP_Extensions_senderMSISDN; /* ISDN_AddressString */ static int hf_NokiaMAP_Extensions_access; /* Access */ static int hf_NokiaMAP_Extensions_version; /* Version */ static int hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item; /* Access */ /* named bits */ static int hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed; /* Initialize the subtree pointers */ static gint ett_gsm_map; static gint ett_gsm_map_InvokeId; static gint ett_gsm_map_InvokePDU; static gint ett_gsm_map_ReturnResultPDU; static gint ett_gsm_map_ReturnErrorPDU; static gint ett_gsm_map_ReturnResult_result; static gint ett_gsm_map_ReturnError_result; static gint ett_gsm_map_GSMMAPPDU; static gint ett_gsm_map_ext_qos_subscribed; static gint ett_gsm_map_pdptypenumber; static gint ett_gsm_map_RAIdentity; static gint ett_gsm_map_LAIFixedLength; static gint ett_gsm_map_isdn_address_string; static gint ett_gsm_map_geo_desc; static gint ett_gsm_map_LongSignalInfo; static gint ett_gsm_map_RadioResourceInformation; static gint ett_gsm_map_MSNetworkCapability; static gint ett_gsm_map_MSRadioAccessCapability; static gint ett_gsm_map_externalsignalinfo; static gint ett_gsm_map_cbs_data_coding; static gint ett_gsm_map_GlobalCellId; static gint ett_gsm_map_GeographicalInformation; static gint ett_gsm_map_apn_str; static gint ett_gsm_map_LocationNumber; static gint ett_gsm_map_ericsson_locationInformation; static gint ett_gsm_map_extension_data; static gint ett_gsm_map_tbcd_digits; static gint ett_gsm_map_ussd_string; static gint ett_gsm_map_ext2_qos_subscribed; static gint ett_gsm_map_ext3_qos_subscribed; static gint ett_gsm_map_e_utranCellGlobalIdentity; static gint ett_gsm_map_TA_id; static gint ett_gsm_map_GeodeticInformation; /* --- Module MAP-ExtensionDataTypes --- --- --- */ static gint ett_gsm_map_ExtensionContainer; static gint ett_gsm_map_SLR_ArgExtensionContainer; static gint ett_gsm_map_PrivateExtensionList; static gint ett_gsm_map_PrivateExtension; static gint ett_gsm_map_PCS_Extensions; static gint ett_gsm_map_SLR_Arg_PCS_Extensions; /* --- Module MAP-CommonDataTypes --- --- --- */ static gint ett_gsm_map_ExternalSignalInfo; static gint ett_gsm_map_Ext_ExternalSignalInfo; static gint ett_gsm_map_AccessNetworkSignalInfo; static gint ett_gsm_map_Identity; static gint ett_gsm_map_IMSI_WithLMSI; static gint ett_gsm_map_SubscriberId; static gint ett_gsm_map_HLR_List; static gint ett_gsm_map_NAEA_PreferredCI; static gint ett_gsm_map_SubscriberIdentity; static gint ett_gsm_map_LCSClientExternalID; static gint ett_gsm_map_NetworkNodeDiameterAddress; static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI; static gint ett_gsm_map_BasicServiceCode; static gint ett_gsm_map_Ext_BasicServiceCode; static gint ett_gsm_map_EMLPP_Info; static gint ett_gsm_map_MC_SS_Info; /* --- Module MAP-SS-DataTypes --- --- --- */ static gint ett_gsm_map_ss_RegisterSS_Arg; static gint ett_gsm_map_ss_SS_Info; static gint ett_gsm_map_ss_ForwardingInfo; static gint ett_gsm_map_ss_ForwardingFeatureList; static gint ett_gsm_map_ss_ForwardingFeature; static gint ett_gsm_map_ss_CallBarringInfo; static gint ett_gsm_map_ss_CallBarringFeatureList; static gint ett_gsm_map_ss_CallBarringFeature; static gint ett_gsm_map_ss_SS_Data; static gint ett_gsm_map_ss_SS_SubscriptionOption; static gint ett_gsm_map_ss_SS_ForBS_Code; static gint ett_gsm_map_ss_GenericServiceInfo; static gint ett_gsm_map_ss_CCBS_FeatureList; static gint ett_gsm_map_ss_CCBS_Feature; static gint ett_gsm_map_ss_InterrogateSS_Res; static gint ett_gsm_map_ss_USSD_Arg; static gint ett_gsm_map_ss_USSD_Res; static gint ett_gsm_map_ss_SS_List; static gint ett_gsm_map_ss_BasicServiceGroupList; static gint ett_gsm_map_ss_SS_InvocationNotificationArg; static gint ett_gsm_map_ss_SS_InvocationNotificationRes; static gint ett_gsm_map_ss_SS_EventSpecification; static gint ett_gsm_map_ss_RegisterCC_EntryArg; static gint ett_gsm_map_ss_CCBS_Data; static gint ett_gsm_map_ss_ServiceIndicator; static gint ett_gsm_map_ss_RegisterCC_EntryRes; static gint ett_gsm_map_ss_EraseCC_EntryArg; static gint ett_gsm_map_ss_EraseCC_EntryRes; /* --- Module MAP-ER-DataTypes --- --- --- */ static gint ett_gsm_map_er_RoamingNotAllowedParam; static gint ett_gsm_map_er_CallBarredParam; static gint ett_gsm_map_er_ExtensibleCallBarredParam; static gint ett_gsm_map_er_CUG_RejectParam; static gint ett_gsm_map_er_SS_IncompatibilityCause; static gint ett_gsm_map_er_SM_DeliveryFailureCause; static gint ett_gsm_map_er_AbsentSubscriberSM_Param; static gint ett_gsm_map_er_SystemFailureParam; static gint ett_gsm_map_er_ExtensibleSystemFailureParam; static gint ett_gsm_map_er_DataMissingParam; static gint ett_gsm_map_er_UnexpectedDataParam; static gint ett_gsm_map_er_FacilityNotSupParam; static gint ett_gsm_map_er_OR_NotAllowedParam; static gint ett_gsm_map_er_UnknownSubscriberParam; static gint ett_gsm_map_er_NumberChangedParam; static gint ett_gsm_map_er_UnidentifiedSubParam; static gint ett_gsm_map_er_IllegalSubscriberParam; static gint ett_gsm_map_er_IllegalEquipmentParam; static gint ett_gsm_map_er_BearerServNotProvParam; static gint ett_gsm_map_er_TeleservNotProvParam; static gint ett_gsm_map_er_TracingBufferFullParam; static gint ett_gsm_map_er_NoRoamingNbParam; static gint ett_gsm_map_er_AbsentSubscriberParam; static gint ett_gsm_map_er_BusySubscriberParam; static gint ett_gsm_map_er_NoSubscriberReplyParam; static gint ett_gsm_map_er_ForwardingViolationParam; static gint ett_gsm_map_er_ForwardingFailedParam; static gint ett_gsm_map_er_ATI_NotAllowedParam; static gint ett_gsm_map_er_ATSI_NotAllowedParam; static gint ett_gsm_map_er_ATM_NotAllowedParam; static gint ett_gsm_map_er_IllegalSS_OperationParam; static gint ett_gsm_map_er_SS_NotAvailableParam; static gint ett_gsm_map_er_SS_SubscriptionViolationParam; static gint ett_gsm_map_er_InformationNotAvailableParam; static gint ett_gsm_map_er_SubBusyForMT_SMS_Param; static gint ett_gsm_map_er_MessageWaitListFullParam; static gint ett_gsm_map_er_ResourceLimitationParam; static gint ett_gsm_map_er_NoGroupCallNbParam; static gint ett_gsm_map_er_IncompatibleTerminalParam; static gint ett_gsm_map_er_ShortTermDenialParam; static gint ett_gsm_map_er_LongTermDenialParam; static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param; static gint ett_gsm_map_er_UnauthorizedLCSClient_Param; static gint ett_gsm_map_er_PositionMethodFailure_Param; static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param; static gint ett_gsm_map_er_MM_EventNotSupported_Param; static gint ett_gsm_map_er_TargetCellOutsideGCA_Param; static gint ett_gsm_map_er_OngoingGroupCallParam; /* --- Module MAP-SM-DataTypes --- --- --- */ static gint ett_gsm_map_sm_RoutingInfoForSM_Arg; static gint ett_gsm_map_sm_RoutingInfoForSM_Res; static gint ett_gsm_map_sm_IP_SM_GW_Guidance; static gint ett_gsm_map_sm_LocationInfoWithLMSI; static gint ett_gsm_map_sm_Additional_Number; static gint ett_gsm_map_sm_MO_ForwardSM_Arg; static gint ett_gsm_map_sm_MO_ForwardSM_Res; static gint ett_gsm_map_sm_MT_ForwardSM_Arg; static gint ett_gsm_map_sm_CorrelationID; static gint ett_gsm_map_sm_MT_ForwardSM_Res; static gint ett_gsm_map_sm_SM_RP_DA; static gint ett_gsm_map_sm_SM_RP_OA; static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg; static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes; static gint ett_gsm_map_sm_AlertServiceCentreArg; static gint ett_gsm_map_sm_InformServiceCentreArg; static gint ett_gsm_map_sm_MW_Status; static gint ett_gsm_map_sm_ReadyForSM_Arg; static gint ett_gsm_map_sm_ReadyForSM_Res; static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg; static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res; static gint ett_gsm_map_sm_DispatcherList; static gint ett_gsm_map_sm_AdditionalDispatcherList; /* --- Module MAP-OM-DataTypes --- --- --- */ static gint ett_gsm_map_om_ActivateTraceModeArg; static gint ett_gsm_map_om_MDT_Configuration; static gint ett_gsm_map_om_MDT_Allowed_PLMNId_List; static gint ett_gsm_map_om_AreaScope; static gint ett_gsm_map_om_CGI_List; static gint ett_gsm_map_om_E_UTRAN_CGI_List; static gint ett_gsm_map_om_RoutingAreaId_List; static gint ett_gsm_map_om_LocationAreaId_List; static gint ett_gsm_map_om_TrackingAreaId_List; static gint ett_gsm_map_om_TraceDepthList; static gint ett_gsm_map_om_TraceNE_TypeList; static gint ett_gsm_map_om_TraceInterfaceList; static gint ett_gsm_map_om_MSC_S_InterfaceList; static gint ett_gsm_map_om_MGW_InterfaceList; static gint ett_gsm_map_om_SGSN_InterfaceList; static gint ett_gsm_map_om_GGSN_InterfaceList; static gint ett_gsm_map_om_RNC_InterfaceList; static gint ett_gsm_map_om_BMSC_InterfaceList; static gint ett_gsm_map_om_MME_InterfaceList; static gint ett_gsm_map_om_SGW_InterfaceList; static gint ett_gsm_map_om_PGW_InterfaceList; static gint ett_gsm_map_om_ENB_InterfaceList; static gint ett_gsm_map_om_TraceEventList; static gint ett_gsm_map_om_MSC_S_EventList; static gint ett_gsm_map_om_MGW_EventList; static gint ett_gsm_map_om_SGSN_EventList; static gint ett_gsm_map_om_GGSN_EventList; static gint ett_gsm_map_om_BMSC_EventList; static gint ett_gsm_map_om_MME_EventList; static gint ett_gsm_map_om_SGW_EventList; static gint ett_gsm_map_om_PGW_EventList; static gint ett_gsm_map_om_TracePropagationList; static gint ett_gsm_map_om_ActivateTraceModeRes; static gint ett_gsm_map_om_DeactivateTraceModeArg; static gint ett_gsm_map_om_DeactivateTraceModeRes; /* --- Module MAP-MS-DataTypes --- --- --- */ static gint ett_gsm_map_ms_UpdateLocationArg; static gint ett_gsm_map_ms_VLR_Capability; static gint ett_gsm_map_ms_SupportedRAT_Types; static gint ett_gsm_map_ms_SuperChargerInfo; static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets; static gint ett_gsm_map_ms_UpdateLocationRes; static gint ett_gsm_map_ms_ADD_Info; static gint ett_gsm_map_ms_PagingArea; static gint ett_gsm_map_ms_LocationArea; static gint ett_gsm_map_ms_CancelLocationArg_U; static gint ett_gsm_map_ms_CancelLocationRes; static gint ett_gsm_map_ms_PurgeMS_Arg_U; static gint ett_gsm_map_ms_PurgeMS_Res; static gint ett_gsm_map_ms_SendIdentificationArg; static gint ett_gsm_map_ms_SendIdentificationRes_U; static gint ett_gsm_map_ms_AuthenticationSetList; static gint ett_gsm_map_ms_TripletList; static gint ett_gsm_map_ms_QuintupletList; static gint ett_gsm_map_ms_AuthenticationTriplet; static gint ett_gsm_map_ms_AuthenticationQuintuplet; static gint ett_gsm_map_ms_CurrentSecurityContext; static gint ett_gsm_map_ms_GSM_SecurityContextData; static gint ett_gsm_map_ms_UMTS_SecurityContextData; static gint ett_gsm_map_ms_AuthenticationFailureReportArg; static gint ett_gsm_map_ms_AuthenticationFailureReportRes; static gint ett_gsm_map_ms_UpdateGprsLocationArg; static gint ett_gsm_map_ms_EPS_Info; static gint ett_gsm_map_ms_PDN_GW_Update; static gint ett_gsm_map_ms_ISR_Information; static gint ett_gsm_map_ms_SGSN_Capability; static gint ett_gsm_map_ms_SupportedFeatures; static gint ett_gsm_map_ms_Ext_SupportedFeatures; static gint ett_gsm_map_ms_UpdateGprsLocationRes; static gint ett_gsm_map_ms_EPLMN_List; static gint ett_gsm_map_ms_AdjacentPLMN_List; static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U; static gint ett_gsm_map_ms_AllowedUMTS_Algorithms; static gint ett_gsm_map_ms_PrepareHO_Arg_U; static gint ett_gsm_map_ms_LCLS_Negotiation; static gint ett_gsm_map_ms_LCLS_ConfigurationPreference; static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList; static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo; static gint ett_gsm_map_ms_RadioResourceList; static gint ett_gsm_map_ms_RadioResource; static gint ett_gsm_map_ms_PrepareHO_Res_U; static gint ett_gsm_map_ms_SelectedUMTS_Algorithms; static gint ett_gsm_map_ms_ChosenRadioResourceInformation; static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U; static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U; static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U; static gint ett_gsm_map_ms_AoIPCodecsList; static gint ett_gsm_map_ms_SupportedCodecsList; static gint ett_gsm_map_ms_CodecList; static gint ett_gsm_map_ms_SendEndSignal_Arg_U; static gint ett_gsm_map_ms_SendEndSignal_Res; static gint ett_gsm_map_ms_RelocationNumberList; static gint ett_gsm_map_ms_RelocationNumber; static gint ett_gsm_map_ms_SendAuthenticationInfoArg; static gint ett_gsm_map_ms_Re_synchronisationInfo; static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U; static gint ett_gsm_map_ms_EPS_AuthenticationSetList; static gint ett_gsm_map_ms_EPC_AV; static gint ett_gsm_map_ms_CheckIMEI_Arg; static gint ett_gsm_map_ms_CheckIMEI_Res; static gint ett_gsm_map_ms_RequestedEquipmentInfo; static gint ett_gsm_map_ms_UESBI_Iu; static gint ett_gsm_map_ms_InsertSubscriberDataArg; static gint ett_gsm_map_ms_EDRX_Cycle_Length_List; static gint ett_gsm_map_ms_EDRX_Cycle_Length; static gint ett_gsm_map_ms_Reset_Id_List; static gint ett_gsm_map_ms_IMSI_GroupIdList; static gint ett_gsm_map_ms_IMSI_GroupId; static gint ett_gsm_map_ms_CSG_SubscriptionDataList; static gint ett_gsm_map_ms_CSG_SubscriptionData; static gint ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList; static gint ett_gsm_map_ms_LIPA_AllowedAPNList; static gint ett_gsm_map_ms_EPS_SubscriptionData; static gint ett_gsm_map_ms_APN_ConfigurationProfile; static gint ett_gsm_map_ms_EPS_DataList; static gint ett_gsm_map_ms_APN_Configuration; static gint ett_gsm_map_ms_EPS_QoS_Subscribed; static gint ett_gsm_map_ms_AMBR; static gint ett_gsm_map_ms_SpecificAPNInfoList; static gint ett_gsm_map_ms_SpecificAPNInfo; static gint ett_gsm_map_ms_Allocation_Retention_Priority; static gint ett_gsm_map_ms_PDN_GW_Identity; static gint ett_gsm_map_ms_WLAN_Offloadability; static gint ett_gsm_map_ms_AccessRestrictionData; static gint ett_gsm_map_ms_Ext_AccessRestrictionData; static gint ett_gsm_map_ms_AdjacentAccessRestrictionDataList; static gint ett_gsm_map_ms_AdjacentAccessRestrictionData; static gint ett_gsm_map_ms_LCSInformation; static gint ett_gsm_map_ms_GMLC_List; static gint ett_gsm_map_ms_GPRSDataList; static gint ett_gsm_map_ms_PDP_Context; static gint ett_gsm_map_ms_GPRSSubscriptionData; static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo; static gint ett_gsm_map_ms_GPRS_CSI; static gint ett_gsm_map_ms_GPRS_CamelTDPDataList; static gint ett_gsm_map_ms_GPRS_CamelTDPData; static gint ett_gsm_map_ms_LSADataList; static gint ett_gsm_map_ms_LSAData; static gint ett_gsm_map_ms_LSAInformation; static gint ett_gsm_map_ms_SubscriberData; static gint ett_gsm_map_ms_BearerServiceList; static gint ett_gsm_map_ms_TeleserviceList; static gint ett_gsm_map_ms_ODB_Data; static gint ett_gsm_map_ms_ODB_GeneralData; static gint ett_gsm_map_ms_ODB_HPLMN_Data; static gint ett_gsm_map_ms_Ext_SS_InfoList; static gint ett_gsm_map_ms_Ext_SS_Info; static gint ett_gsm_map_ms_Ext_ForwInfo; static gint ett_gsm_map_ms_Ext_ForwFeatureList; static gint ett_gsm_map_ms_Ext_ForwFeature; static gint ett_gsm_map_ms_Ext_CallBarInfo; static gint ett_gsm_map_ms_Ext_CallBarFeatureList; static gint ett_gsm_map_ms_Ext_CallBarringFeature; static gint ett_gsm_map_ms_CUG_Info; static gint ett_gsm_map_ms_CUG_SubscriptionList; static gint ett_gsm_map_ms_CUG_Subscription; static gint ett_gsm_map_ms_CUG_FeatureList; static gint ett_gsm_map_ms_Ext_BasicServiceGroupList; static gint ett_gsm_map_ms_CUG_Feature; static gint ett_gsm_map_ms_Ext_SS_Data; static gint ett_gsm_map_ms_LCS_PrivacyExceptionList; static gint ett_gsm_map_ms_LCS_PrivacyClass; static gint ett_gsm_map_ms_ExternalClientList; static gint ett_gsm_map_ms_PLMNClientList; static gint ett_gsm_map_ms_Ext_ExternalClientList; static gint ett_gsm_map_ms_ExternalClient; static gint ett_gsm_map_ms_ServiceTypeList; static gint ett_gsm_map_ms_ServiceType; static gint ett_gsm_map_ms_MOLR_List; static gint ett_gsm_map_ms_MOLR_Class; static gint ett_gsm_map_ms_ZoneCodeList; static gint ett_gsm_map_ms_InsertSubscriberDataRes; static gint ett_gsm_map_ms_DeleteSubscriberDataArg; static gint ett_gsm_map_ms_SpecificCSI_Withdraw; static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw; static gint ett_gsm_map_ms_EPS_SubscriptionDataWithdraw; static gint ett_gsm_map_ms_ContextIdList; static gint ett_gsm_map_ms_LSAInformationWithdraw; static gint ett_gsm_map_ms_LSAIdentityList; static gint ett_gsm_map_ms_BasicServiceList; static gint ett_gsm_map_ms_DeleteSubscriberDataRes; static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo; static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList; static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria; static gint ett_gsm_map_ms_TPDU_TypeCriterion; static gint ett_gsm_map_ms_D_CSI; static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList; static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium; static gint ett_gsm_map_ms_SS_CSI; static gint ett_gsm_map_ms_SS_CamelData; static gint ett_gsm_map_ms_SS_EventList; static gint ett_gsm_map_ms_O_CSI; static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList; static gint ett_gsm_map_ms_O_BcsmCamelTDPData; static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList; static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList; static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria; static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria; static gint ett_gsm_map_ms_DestinationNumberCriteria; static gint ett_gsm_map_ms_DestinationNumberList; static gint ett_gsm_map_ms_DestinationNumberLengthList; static gint ett_gsm_map_ms_BasicServiceCriteria; static gint ett_gsm_map_ms_O_CauseValueCriteria; static gint ett_gsm_map_ms_T_CauseValueCriteria; static gint ett_gsm_map_ms_SupportedCamelPhases; static gint ett_gsm_map_ms_OfferedCamel4CSIs; static gint ett_gsm_map_ms_OfferedCamel4Functionalities; static gint ett_gsm_map_ms_SMS_CSI; static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList; static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data; static gint ett_gsm_map_ms_M_CSI; static gint ett_gsm_map_ms_MG_CSI; static gint ett_gsm_map_ms_MobilityTriggers; static gint ett_gsm_map_ms_T_CSI; static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList; static gint ett_gsm_map_ms_T_BcsmCamelTDPData; static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg; static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes; static gint ett_gsm_map_ms_FailureReportArg; static gint ett_gsm_map_ms_FailureReportRes; static gint ett_gsm_map_ms_NoteMsPresentForGprsArg; static gint ett_gsm_map_ms_NoteMsPresentForGprsRes; static gint ett_gsm_map_ms_ResetArg; static gint ett_gsm_map_ms_SendingNode_Number; static gint ett_gsm_map_ms_RestoreDataArg; static gint ett_gsm_map_ms_RestoreDataRes; static gint ett_gsm_map_ms_VBSDataList; static gint ett_gsm_map_ms_VGCSDataList; static gint ett_gsm_map_ms_VoiceGroupCallData; static gint ett_gsm_map_ms_AdditionalSubscriptions; static gint ett_gsm_map_ms_VoiceBroadcastData; static gint ett_gsm_map_ms_ProvideSubscriberInfoArg; static gint ett_gsm_map_ms_ProvideSubscriberInfoRes; static gint ett_gsm_map_ms_SubscriberInfo; static gint ett_gsm_map_ms_MNPInfoRes; static gint ett_gsm_map_ms_GPRSMSClass; static gint ett_gsm_map_ms_RequestedInfo; static gint ett_gsm_map_ms_RequestedNodes; static gint ett_gsm_map_ms_LocationInformation; static gint ett_gsm_map_ms_LocationInformationEPS; static gint ett_gsm_map_ms_LocationInformationGPRS; static gint ett_gsm_map_ms_LocationInformation5GS; static gint ett_gsm_map_ms_UserCSGInformation; static gint ett_gsm_map_ms_SubscriberState; static gint ett_gsm_map_ms_PS_SubscriberState; static gint ett_gsm_map_ms_PDP_ContextInfoList; static gint ett_gsm_map_ms_PDP_ContextInfo; static gint ett_gsm_map_ms_AnyTimeInterrogationArg; static gint ett_gsm_map_ms_AnyTimeInterrogationRes; static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg; static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes; static gint ett_gsm_map_ms_CallWaitingData; static gint ett_gsm_map_ms_Ext_CwFeatureList; static gint ett_gsm_map_ms_Ext_CwFeature; static gint ett_gsm_map_ms_ClipData; static gint ett_gsm_map_ms_ClirData; static gint ett_gsm_map_ms_CallHoldData; static gint ett_gsm_map_ms_EctData; static gint ett_gsm_map_ms_RequestedSubscriptionInfo; static gint ett_gsm_map_ms_MSISDN_BS_List; static gint ett_gsm_map_ms_MSISDN_BS; static gint ett_gsm_map_ms_CallForwardingData; static gint ett_gsm_map_ms_CallBarringData; static gint ett_gsm_map_ms_ODB_Info; static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo; static gint ett_gsm_map_ms_AnyTimeModificationArg; static gint ett_gsm_map_ms_ModificationRequestFor_CW_Info; static gint ett_gsm_map_ms_ModificationRequestFor_CH_Info; static gint ett_gsm_map_ms_ModificationRequestFor_ECT_Info; static gint ett_gsm_map_ms_ModificationRequestFor_CLIR_Info; static gint ett_gsm_map_ms_ModificationRequestFor_CLIP_Info; static gint ett_gsm_map_ms_ModificationRequestFor_CSG; static gint ett_gsm_map_ms_RequestedServingNode; static gint ett_gsm_map_ms_ServingNode; static gint ett_gsm_map_ms_AnyTimeModificationRes; static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info; static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info; static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data; static gint ett_gsm_map_ms_ModificationRequestFor_CSI; static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data; static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg; static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes; static gint ett_gsm_map_ms_NoteMM_EventArg; static gint ett_gsm_map_ms_NoteMM_EventRes; static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE; static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE; static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE; static gint ett_gsm_map_ms_UpdateVcsgLocationArg; static gint ett_gsm_map_ms_UpdateVcsgLocationRes; static gint ett_gsm_map_ms_CancelVcsgLocationArg; static gint ett_gsm_map_ms_CancelVcsgLocationRes; /* --- Module MAP-CH-DataTypes --- --- --- */ static gint ett_gsm_map_ch_CUG_CheckInfo; static gint ett_gsm_map_ch_SendRoutingInfoArg; static gint ett_gsm_map_ch_SuppressMTSS; static gint ett_gsm_map_ch_SendRoutingInfoRes_U; static gint ett_gsm_map_ch_AllowedServices; static gint ett_gsm_map_ch_CCBS_Indicators; static gint ett_gsm_map_ch_RoutingInfo; static gint ett_gsm_map_ch_ForwardingData; static gint ett_gsm_map_ch_ProvideRoamingNumberArg; static gint ett_gsm_map_ch_ProvideRoamingNumberRes; static gint ett_gsm_map_ch_ResumeCallHandlingArg; static gint ett_gsm_map_ch_UU_Data; static gint ett_gsm_map_ch_ResumeCallHandlingRes; static gint ett_gsm_map_ch_CamelInfo; static gint ett_gsm_map_ch_ExtendedRoutingInfo; static gint ett_gsm_map_ch_CamelRoutingInfo; static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo; static gint ett_gsm_map_ch_SetReportingStateArg; static gint ett_gsm_map_ch_SetReportingStateRes; static gint ett_gsm_map_ch_StatusReportArg; static gint ett_gsm_map_ch_EventReportData; static gint ett_gsm_map_ch_CallReportData; static gint ett_gsm_map_ch_StatusReportRes; static gint ett_gsm_map_ch_RemoteUserFreeArg; static gint ett_gsm_map_ch_RemoteUserFreeRes; static gint ett_gsm_map_ch_IST_AlertArg; static gint ett_gsm_map_ch_IST_AlertRes; static gint ett_gsm_map_ch_IST_CommandArg; static gint ett_gsm_map_ch_IST_CommandRes; static gint ett_gsm_map_ch_ReleaseResourcesArg; static gint ett_gsm_map_ch_ReleaseResourcesRes; /* --- Module MAP-LCS-DataTypes --- --- --- */ static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg; static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res; static gint ett_gsm_map_lcs_LCSLocationInfo; static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg; static gint ett_gsm_map_lcs_LocationType; static gint ett_gsm_map_lcs_DeferredLocationEventType; static gint ett_gsm_map_lcs_LCS_ClientID; static gint ett_gsm_map_lcs_LCSClientName; static gint ett_gsm_map_lcs_LCSRequestorID; static gint ett_gsm_map_lcs_LCS_QoS; static gint ett_gsm_map_lcs_ResponseTime; static gint ett_gsm_map_lcs_SupportedGADShapes; static gint ett_gsm_map_lcs_LCSCodeword; static gint ett_gsm_map_lcs_LCS_PrivacyCheck; static gint ett_gsm_map_lcs_AreaEventInfo; static gint ett_gsm_map_lcs_AreaDefinition; static gint ett_gsm_map_lcs_AreaList; static gint ett_gsm_map_lcs_Area; static gint ett_gsm_map_lcs_PeriodicLDRInfo; static gint ett_gsm_map_lcs_ReportingPLMNList; static gint ett_gsm_map_lcs_PLMNList; static gint ett_gsm_map_lcs_ReportingPLMN; static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res; static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg; static gint ett_gsm_map_lcs_Deferredmt_lrData; static gint ett_gsm_map_lcs_ServingNodeAddress; static gint ett_gsm_map_lcs_SubscriberLocationReport_Res; /* --- Module MAP-GR-DataTypes --- --- --- */ static gint ett_gsm_map_gr_PrepareGroupCallArg; static gint ett_gsm_map_gr_PrepareGroupCallRes; static gint ett_gsm_map_gr_SendGroupCallEndSignalArg; static gint ett_gsm_map_gr_SendGroupCallEndSignalRes; static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg; static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg; static gint ett_gsm_map_gr_StateAttributes; static gint ett_gsm_map_gr_SendGroupCallInfoArg; static gint ett_gsm_map_gr_SendGroupCallInfoRes; /* --- Module MAP-DialogueInformation --- --- --- */ static gint ett_gsm_map_dialogue_MAP_DialoguePDU; static gint ett_gsm_map_dialogue_MAP_OpenInfo; static gint ett_gsm_map_dialogue_MAP_AcceptInfo; static gint ett_gsm_map_dialogue_MAP_CloseInfo; static gint ett_gsm_map_dialogue_MAP_RefuseInfo; static gint ett_gsm_map_dialogue_MAP_UserAbortInfo; static gint ett_gsm_map_dialogue_MAP_UserAbortChoice; static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo; /* --- Module MAP-LocationServiceOperations --- --- --- */ /* --- Module MAP-Group-Call-Operations --- --- --- */ /* --- Module MAP-ShortMessageServiceOperations --- --- --- */ /* --- Module MAP-SupplementaryServiceOperations --- --- --- */ /* --- Module MAP-CallHandlingOperations --- --- --- */ /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ /* --- Module MAP-MobileServiceOperations --- --- --- */ /* --- Module MAP-Errors --- --- --- */ /* --- Module MAP-Protocol --- --- --- */ /* --- Module DummyMAP --- --- --- */ static gint ett_gsm_old_Component; static gint ett_gsm_old_Invoke; static gint ett_gsm_old_ReturnResult; static gint ett_gsm_old_T_resultretres; static gint ett_gsm_old_ReturnError; static gint ett_gsm_old_Reject; static gint ett_gsm_old_T_invokeIDRej; static gint ett_gsm_old_T_problem; static gint ett_gsm_old_MAP_OPERATION; static gint ett_gsm_old_MAP_ERROR; static gint ett_gsm_old_Bss_APDU; static gint ett_gsm_old_ProvideSIWFSNumberArg; static gint ett_gsm_old_ProvideSIWFSNumberRes; static gint ett_gsm_old_PurgeMSArgV2; static gint ett_gsm_old_PrepareHO_ArgOld; static gint ett_gsm_old_PrepareHO_ResOld; static gint ett_gsm_old_SendAuthenticationInfoResOld; static gint ett_gsm_old_SendAuthenticationInfoResOld_item; static gint ett_gsm_old_SendIdentificationResV2; static gint ett_gsm_old_TripletListold; static gint ett_gsm_old_AuthenticationTriplet_v2; static gint ett_gsm_old_SIWFSSignallingModifyArg; static gint ett_gsm_old_SIWFSSignallingModifyRes; static gint ett_gsm_old_SecureTransportArg; static gint ett_gsm_old_SecureTransportErrorParam; static gint ett_gsm_old_SecureTransportRes; static gint ett_gsm_old_SecurityHeader; static gint ett_gsm_old_OriginalComponentIdentifier; static gint ett_gsm_old_OperationCode; static gint ett_gsm_old_ErrorCode; static gint ett_gsm_old_PlmnContainer_U; static gint ett_gsm_old_T_operatorSS_Code; static gint ett_gsm_old_ForwardSM_Arg; static gint ett_gsm_old_SM_RP_DAold; static gint ett_gsm_old_SM_RP_OAold; static gint ett_gsm_old_SendRoutingInfoArgV2; static gint ett_gsm_old_SendRoutingInfoResV2; static gint ett_gsm_old_BeginSubscriberActivityArg; static gint ett_gsm_old_RoutingInfoForSM_ArgV1; static gint ett_gsm_old_RoutingInfoForSM_ResV2; static gint ett_gsm_old_LocationInfoWithLMSIv2; static gint ett_gsm_old_LocationInfo; static gint ett_gsm_old_SendParametersArg; static gint ett_gsm_old_RequestParameterList; static gint ett_gsm_old_SentParameter; static gint ett_gsm_old_AuthenticationSetListOld; static gint ett_gsm_old_SentParameterList; static gint ett_gsm_old_ResetArgV1; /* --- Module SS-DataTypes --- --- --- */ static gint ett_gsm_ss_NotifySS_Arg; static gint ett_gsm_ss_ForwardChargeAdviceArg; static gint ett_gsm_ss_ChargingInformation; static gint ett_gsm_ss_ForwardCUG_InfoArg; static gint ett_gsm_ss_ECT_Indicator; static gint ett_gsm_ss_NameIndicator; static gint ett_gsm_ss_Name; static gint ett_gsm_ss_NameSet; static gint ett_gsm_ss_RDN; static gint ett_gsm_ss_RemotePartyNumber; static gint ett_gsm_ss_AccessRegisterCCEntryArg; static gint ett_gsm_ss_CallDeflectionArg; static gint ett_gsm_ss_UserUserServiceArg; static gint ett_gsm_ss_LocationNotificationArg; static gint ett_gsm_ss_DeferredLocationExt; static gint ett_gsm_ss_LocationNotificationRes; static gint ett_gsm_ss_LCS_MOLRArg; static gint ett_gsm_ss_MultiplePositioningProtocolPDUs; static gint ett_gsm_ss_LCS_MOLRRes; static gint ett_gsm_ss_LCS_AreaEventRequestArg; static gint ett_gsm_ss_LCS_AreaEventReportArg; static gint ett_gsm_ss_LCS_AreaEventCancellationArg; static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg; static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes; static gint ett_gsm_ss_LCS_LocationUpdateArg; static gint ett_gsm_ss_LCS_LocationUpdateRes; static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg; static gint ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg; static gint ett_gsm_ss_PeriodicLocation; static gint ett_gsm_ss_AreaEventReporting; static gint ett_gsm_ss_AreaList; static gint ett_gsm_ss_Area; static gint ett_gsm_ss_Location_Info; static gint ett_gsm_ss_MotionEventReporting; static gint ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes; /* --- Module SS-Operations --- --- --- */ /* --- Module EricssonMAP --- --- --- */ static gint ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg; static gint ett_gsm_map_ericsson_ExtensionType; static gint ett_gsm_map_ericsson_IsdArgType; static gint ett_gsm_map_ericsson_IsdArgData; static gint ett_gsm_map_ericsson_PrivateFeatureData; static gint ett_gsm_map_ericsson_OickInfo; static gint ett_gsm_map_ericsson_SubscriptionTypeInfo; static gint ett_gsm_map_ericsson_IsdResType; static gint ett_gsm_map_ericsson_IsdResData; static gint ett_gsm_map_ericsson_DsdArgType; static gint ett_gsm_map_ericsson_DsdArgData; static gint ett_gsm_map_ericsson_SRIArgType; static gint ett_gsm_map_ericsson_SriArgData; static gint ett_gsm_map_ericsson_SRIResType; static gint ett_gsm_map_ericsson_SriResData; static gint ett_gsm_map_ericsson_PrnArgType; static gint ett_gsm_map_ericsson_PrnArgData; static gint ett_gsm_map_ericsson_UlArgType; static gint ett_gsm_map_ericsson_UlArgData; static gint ett_gsm_map_ericsson_PrivateFeatureUlArgData; static gint ett_gsm_map_ericsson_ExtraSignalInfo_U; static gint ett_gsm_map_ericsson_SaiArgType; static gint ett_gsm_map_ericsson_SaiResType; static gint ett_gsm_map_ericsson_AtiArgType; static gint ett_gsm_map_ericsson_AtiResType; static gint ett_gsm_map_ericsson_RdArgType; static gint ett_gsm_map_ericsson_RequestedInfoType; static gint ett_gsm_map_ericsson_ExtAtiArgType; static gint ett_gsm_map_ericsson_AtiArgData; /* --- Module NokiaMAP-Extensions --- --- --- */ static gint ett_NokiaMAP_Extensions_IsdArgExt_U; static gint ett_NokiaMAP_Extensions_DsdArgExt_U; static gint ett_NokiaMAP_Extensions_UlResExt_U; static gint ett_NokiaMAP_Extensions_ChargingAreaList; static gint ett_NokiaMAP_Extensions_RegionalChargingData; static gint ett_NokiaMAP_Extensions_SS_DataExtension_U; static gint ett_NokiaMAP_Extensions_SriExtension_U; static gint ett_NokiaMAP_Extensions_ExtraSignalInfo_U; static gint ett_NokiaMAP_Extensions_Nokia_CUG_Data; static gint ett_NokiaMAP_Extensions_SriResExtension_U; static gint ett_NokiaMAP_Extensions_RgData; static gint ett_NokiaMAP_Extensions_MemberList; static gint ett_NokiaMAP_Extensions_CanLocArgExt_U; static gint ett_NokiaMAP_Extensions_ATMargExt_U; static gint ett_NokiaMAP_Extensions_OlcmInfoTable; static gint ett_NokiaMAP_Extensions_OlcmInfo; static gint ett_NokiaMAP_Extensions_ATMresExt_U; static gint ett_NokiaMAP_Extensions_DTMargExt_U; static gint ett_NokiaMAP_Extensions_FraudInfo; static gint ett_NokiaMAP_Extensions_FraudData; static gint ett_NokiaMAP_Extensions_ServiceWithInfo; static gint ett_NokiaMAP_Extensions_ServiceListWithInfo; static gint ett_NokiaMAP_Extensions_INKey; static gint ett_NokiaMAP_Extensions_MKey; static gint ett_NokiaMAP_Extensions_SMSKey; static gint ett_NokiaMAP_Extensions_HO_Ext_U; static gint ett_NokiaMAP_Extensions_CodecListExt; static gint ett_NokiaMAP_Extensions_SelectedCodec; static gint ett_NokiaMAP_Extensions_AbsentSubscriberExt_U; static gint ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U; static gint ett_NokiaMAP_Extensions_RoutingCategoryExt_U; static gint ett_NokiaMAP_Extensions_SriForSMArgExt_U; static gint ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U; static gint ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U; static gint ett_NokiaMAP_Extensions_UdlArgExt_U; static gint ett_NokiaMAP_Extensions_RoamNotAllowedExt_U; static gint ett_NokiaMAP_Extensions_AnyTimeModArgExt_U; static gint ett_NokiaMAP_Extensions_AccessTypeExt; static gint ett_NokiaMAP_Extensions_AccessSubscriptionListExt; static gint ett_NokiaMAP_Extensions_AllowedServiceData; static expert_field ei_gsm_map_unknown_sequence3; static expert_field ei_gsm_map_unknown_sequence; static expert_field ei_gsm_map_unknown_parameter; static expert_field ei_gsm_map_unknown_invokeData; static expert_field ei_gsm_map_undecoded; static dissector_handle_t gsm_sms_handle; /* SMS TPDU */ static dissector_handle_t ranap_handle; static dissector_handle_t dtap_handle; static dissector_handle_t map_handle; static dissector_handle_t bssap_handle; static dissector_table_t map_prop_arg_opcode_table; /* prorietary operation codes */ static dissector_table_t map_prop_res_opcode_table; /* prorietary operation codes */ static dissector_table_t map_prop_err_opcode_table; /* prorietary operation codes */ /* Preference settings default */ #define MAX_SSN 254 static range_t *global_ssn_range; #define APPLICATON_CONTEXT_FROM_TRACE 0 static gint pref_application_context_version = APPLICATON_CONTEXT_FROM_TRACE; static gboolean pref_ericsson_proprietary_ext = FALSE; /* Global variables */ static guint32 opcode=0; static guint32 errorCode; static int application_context_version; static guint ProtocolId; static guint AccessNetworkProtocolId; static int gsm_map_tap; static guint8 gsmmap_pdu_type = 0; static guint8 gsm_map_pdu_size = 0; #define SMS_ENCODING_NOT_SET 0 #define SMS_ENCODING_7BIT 1 #define SMS_ENCODING_8BIT 2 #define SMS_ENCODING_UCS2 3 #define SMS_ENCODING_7BIT_LANG 4 #define SMS_ENCODING_UCS2_LANG 5 static guint8 sms_encoding; /* 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, proto_item *item); typedef struct { struct tcap_private_t * tcap_private; sccp_msg_info_t *sccp_msg_info; tvbuff_t *signal_info_tvb; } gsm_map_private_info_t; typedef struct { wmem_tree_t *packets; } gsm_map_conv_info_t; static gsm_map_packet_info_t *gsm_map_get_packet_info(asn1_ctx_t *actx, bool store_conv_info) { gsm_map_packet_info_t *gsm_map_pi = (gsm_map_packet_info_t*)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_gsm_map, 0); if (!gsm_map_pi) { gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; gsm_map_pi = wmem_new0(wmem_file_scope(), gsm_map_packet_info_t); p_add_proto_data(wmem_file_scope(), actx->pinfo, proto_gsm_map, 0, gsm_map_pi); if (gsm_map_priv && gsm_map_priv->tcap_private) { gsm_map_pi->tcap_src_tid = gsm_map_priv->tcap_private->src_tid; if (store_conv_info) { conversation_t *conversation; gsm_map_conv_info_t *gsm_map_info; wmem_tree_key_t key[3]; conversation = find_or_create_conversation(actx->pinfo); gsm_map_info = (gsm_map_conv_info_t *)conversation_get_proto_data(conversation, proto_gsm_map); if (!gsm_map_info) { gsm_map_info = wmem_new(wmem_file_scope(), gsm_map_conv_info_t); gsm_map_info->packets = wmem_tree_new(wmem_file_scope()); conversation_add_proto_data(conversation, proto_gsm_map, gsm_map_info); } key[0].length = 1; key[0].key = &gsm_map_priv->tcap_private->src_tid; key[1].length = 1; key[1].key = &actx->pinfo->num; key[2].length = 0; key[2].key = NULL; wmem_tree_insert32_array(gsm_map_info->packets, key, (void *)gsm_map_pi); } } } return gsm_map_pi; } static gsm_map_packet_info_t *gsm_map_get_matching_tcap_info(asn1_ctx_t *actx) { gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; if (gsm_map_priv && gsm_map_priv->tcap_private) { conversation_t *conversation; gsm_map_conv_info_t *gsm_map_info; wmem_tree_key_t key[3]; gsm_map_packet_info_t *gsm_map_pi; conversation = find_or_create_conversation(actx->pinfo); gsm_map_info = (gsm_map_conv_info_t *)conversation_get_proto_data(conversation, proto_gsm_map); if (!gsm_map_info) { gsm_map_info = wmem_new(wmem_file_scope(), gsm_map_conv_info_t); gsm_map_info->packets = wmem_tree_new(wmem_file_scope()); conversation_add_proto_data(conversation, proto_gsm_map, gsm_map_info); } key[0].length = 1; key[0].key = &gsm_map_priv->tcap_private->src_tid; key[1].length = 1; key[1].key = &actx->pinfo->num; key[2].length = 0; key[2].key = NULL; gsm_map_pi = (gsm_map_packet_info_t*)wmem_tree_lookup32_array_le(gsm_map_info->packets, key); if (gsm_map_pi && gsm_map_pi->tcap_src_tid == gsm_map_priv->tcap_private->src_tid) return gsm_map_pi; } return NULL; } /* 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 } }; const value_string gsm_map_etsi_defined_pdp_vals[] = { { 1, "PPP" }, { 0, NULL } }; static const value_string gsm_map_tag_vals[] = { { 0x4, "Bearer Capability" }, { 0, NULL } }; static const value_string gsm_map_disc_par_vals[] = { { 0, "Not Transparent" }, { 1, "Transparent" }, { 0, NULL } }; static const value_string gsm_map_ericsson_locationInformation_rat_vals[] = { { 0x0, "GSM" }, { 0x1, "UMTS" }, { 0x2, "LTE" }, { 0xf, "No information" }, { 0, NULL } }; /* 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_, asn1_ctx_t *actx){ int offset = 0; proto_tree *subtree; guint8 octet; guint16 value; subtree = proto_item_add_subtree(actx->created_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, ENC_BIG_ENDIAN); 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, ENC_BIG_ENDIAN); /* 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, ENC_BIG_ENDIAN); /* 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, ENC_BIG_ENDIAN); offset++; /* Maximum SDU size, octet 7 (see 3GPP TS 23.107) */ octet = tvb_get_guint8(tvb,offset); switch (octet){ case 0: proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "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_uint_format_value(subtree, hf_gsm_map_qos_max_sdu, tvb, offset, 1, octet, "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_uint_format_value(subtree, hf_gsm_map_max_brate_ulink, tvb, offset, 1, octet, "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_uint_format_value(subtree, hf_gsm_map_max_brate_dlink, tvb, offset, 1, octet, "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, ENC_BIG_ENDIAN); /* 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, ENC_BIG_ENDIAN); 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, ENC_BIG_ENDIAN); /* 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, ENC_BIG_ENDIAN); 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_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_ulink, tvb, offset, 1, octet, "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_uint_format_value(subtree, hf_gsm_map_guaranteed_max_brate_dlink, tvb, offset, 1, octet, "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)); } } /* Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3)) -- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16. -- If Quality of Service information is structured with 14 octet length, then -- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14. */ static const true_false_string gsm_map_qos_signalling_ind_value = { "Optimised for signalling traffic", "Not optimised for signalling traffic" }; #if 0 /* Helper function returning the main bitrates in kbps */ static guint32 qos_calc_bitrate(guint8 oct) { if (oct <= 0x3f) return oct; if (oct <= 0x7f) return 64 + (oct - 0x40) * 8; return 576 + (oct - 0x80) * 64; } #endif /* Helper function returning the extended bitrates in kbps */ static guint32 qos_calc_ext_bitrate(guint8 oct) { if (oct <= 0x4a) return 8600 + oct * 100; if (oct <= 0xba) return 16000 + (oct - 0x4a) * 1000; return 128000 + (oct - 0xba) * 2000; } #if 0 static guint32 qos_calc_ext2_bitrate(guint8 oct) { if (oct <= 0x3d) return (256 + oct * 4); if (oct <= 0xa1) return (500 + (oct - 0x3d) * 10); if (oct <= 0xf6) return (1500 + (oct - 0xa1) * 100); return 10000; } #endif static void dissect_gsm_map_ext2_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) { int offset = 0; proto_tree *subtree; const gchar *str; guint8 oct, tmp_oct; guint32 temp32; int length = tvb_reported_length(tvb); subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext2_qos_subscribed); /* Ocet 14 */ oct = tvb_get_guint8(tvb, offset); proto_tree_add_bits_item(subtree, hf_gsm_map_spare_bits, tvb, (offset << 3), 3, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_qos_signalling_ind, tvb, offset, 1, ENC_BIG_ENDIAN); tmp_oct = oct & 7; if (tmp_oct == 0x01) str = "speech"; else str = "unknown"; proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_source_stat_desc, tvb, offset, 1, oct, "%s (%u)", str, tmp_oct); offset += 1; if (length == offset) { return; } /* Octet 15 */ oct = tvb_get_guint8(tvb, offset); if (oct == 0x00) str = "Use the value indicated by the Maximum bit rate for downlink"; else { temp32 = qos_calc_ext_bitrate(oct); if (temp32 % 1000 == 0) str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000); else str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32); } proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_bitrate_downl_ext, tvb, offset, 1, oct, "%s (%u)", str, oct); offset += 1; if (length == offset) { return; } /* Octet 16 */ oct = tvb_get_guint8(tvb, offset); if (oct == 0x00) str = "Use the value indicated by the Guaranteed bit rate for downlink"; else { temp32 = qos_calc_ext_bitrate(oct); if (temp32 % 1000 == 0) str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000); else str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32); } proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_guar_bitrate_downl_ext, tvb, offset, 1, oct, "%s (%u)", str, oct); } /* Ext3-QoS-Subscribed ::= OCTET STRING (SIZE (1..2)) -- Octets 1-2 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 17-18. */ static void dissect_gsm_map_ext3_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) { int offset = 0; proto_tree *subtree; const gchar *str; guint8 oct; guint32 temp32; int length = tvb_reported_length(tvb); subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed); /* Maximum bit rate for uplink (extended) Octet 17 */ oct = tvb_get_guint8(tvb, offset); if (oct == 0x00) str = "Use the value indicated by the Maximum bit rate for uplink"; else { temp32 = qos_calc_ext_bitrate(oct); if (temp32 % 1000 == 0) str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000); else str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32); } proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_max_bitrate_upl_ext, tvb, offset, 1, oct, "%s (%u)", str, oct); offset += 1; if (length == offset) { return; } /* Guaranteed bit rate for uplink (extended) Octet 18 */ oct = tvb_get_guint8(tvb, offset); if (oct == 0x00) str = "Use the value indicated by the Guaranteed bit rate for uplink"; else { temp32 = qos_calc_ext_bitrate(oct); if (temp32 % 1000 == 0) str = wmem_strdup_printf(pinfo->pool, "%u Mbps", temp32 / 1000); else str = wmem_strdup_printf(pinfo->pool, "%u kbps", temp32); } proto_tree_add_uint_format_value(subtree, hf_gsm_map_qos_guar_bitrate_upl_ext, tvb, offset, 1, oct, "%s (%u)", str, oct); return; } static void dissect_gsm_map_ext4_qos_subscribed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, asn1_ctx_t *actx) { int offset = 0; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ext3_qos_subscribed); proto_tree_add_item(subtree, hf_gsm_map_earp_pvi, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_earp_pl, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_earp_pci, tvb, offset, 1, ENC_BIG_ENDIAN); } #define ELLIPSOID_POINT 0 #define ELLIPSOID_POINT_WITH_UNCERT_CIRC 1 #define ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE 3 #define POLYGON 5 #define ELLIPSOID_POINT_WITH_ALT 8 #define ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID 9 #define ELLIPSOID_ARC 10 /* 4 3 2 1 0 0 0 0 Ellipsoid Point 0 0 0 1 Ellipsoid point with uncertainty Circle 0 0 1 1 Ellipsoid point with uncertainty Ellipse 0 1 0 1 Polygon 1 0 0 0 Ellipsoid point with altitude 1 0 0 1 Ellipsoid point with altitude and uncertainty Ellipsoid 1 0 1 0 Ellipsoid Arc other values reserved for future use */ /* TS 23 032 Table 2a: Coding of Type of Shape */ #if 0 static const value_string type_of_shape_vals[] = { { ELLIPSOID_POINT, "Ellipsoid Point"}, { ELLIPSOID_POINT_WITH_UNCERT_CIRC, "Ellipsoid point with uncertainty Circle"}, { ELLIPSOID_POINT_WITH_UNCERT_ELLIPSE, "Ellipsoid point with uncertainty Ellipse"}, { POLYGON, "Polygon"}, { ELLIPSOID_POINT_WITH_ALT, "Ellipsoid point with altitude"}, { ELLIPSOID_POINT_WITH_ALT_AND_UNCERT_ELLIPSOID, "Ellipsoid point with altitude and uncertainty Ellipsoid"}, { ELLIPSOID_ARC, "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 } }; #endif static const value_string gsm_map_cbs_data_coding_scheme_coding_grp_vals[] = { { 0, "Coding Group 0(Language using the GSM 7 bit default alphabet)" }, { 1, "Coding Group 1" }, { 2, "Coding Group 2" }, { 3, "Coding Group 3" }, { 4, "General Data Coding indication" }, { 5, "General Data Coding indication" }, { 6, "General Data Coding indication" }, { 7, "General Data Coding indication" }, { 8, "Reserved" }, { 9, "Message with User Data Header (UDH) structure" }, { 10,"Reserved" }, { 11,"Reserved" }, { 12,"Reserved" }, { 13,"Reserved" }, { 14,"Defined by the WAP Forum" }, { 15,"Data coding / message handling" }, { 0, NULL} }; static value_string_ext gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_data_coding_scheme_coding_grp_vals); /* Coding group 0 * Bits 3..0 indicate the language: */ static const value_string gsm_map_cbs_coding_grp0_lang_vals[] = { { 0, "German"}, { 1, "English"}, { 2, "Italian"}, { 3, "French"}, { 4, "Spanish"}, { 5, "Dutch"}, { 6, "Swedish"}, { 7, "Danish"}, { 8, "Portuguese"}, { 9, "Finnish"}, { 10, "Norwegian"}, { 11, "Greek"}, { 12, "Turkish"}, { 13, "Hungarian"}, { 14, "Polish"}, { 15, "Language unspecified"}, { 0, NULL } }; static value_string_ext gsm_map_cbs_coding_grp0_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp0_lang_vals); static const value_string gsm_map_cbs_coding_grp1_lang_vals[] = { { 0, "GSM 7 bit default alphabet; message preceded by language indication"}, { 1, "UCS2; message preceded by language indication"}, { 2, "Reserved"}, { 3, "Reserved"}, { 4, "Reserved"}, { 5, "Reserved"}, { 6, "Reserved"}, { 7, "Reserved"}, { 8, "Reserved"}, { 9, "Reserved"}, { 10, "Reserved"}, { 11, "Reserved"}, { 12, "Reserved"}, { 13, "Reserved"}, { 14, "Reserved"}, { 15, "Reserved"}, { 0, NULL } }; static value_string_ext gsm_map_cbs_coding_grp1_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp1_lang_vals); static const value_string gsm_map_cbs_coding_grp2_lang_vals[] = { { 0, "Czech"}, { 1, "Hebrew"}, { 2, "Arabic"}, { 3, "Russian"}, { 4, "Icelandic"}, { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 0, NULL } }; static value_string_ext gsm_map_cbs_coding_grp2_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp2_lang_vals); static const value_string gsm_map_cbs_coding_grp3_lang_vals[] = { { 0, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 1, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 2, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 3, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 4, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 5, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 6, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 7, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 8, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 9, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 10, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 11, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 12, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 13, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 14, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 15, "Reserved for other languages using the GSM 7 bit default alphabet, with unspecified handling at the MS"}, { 0, NULL } }; static value_string_ext gsm_map_cbs_coding_grp3_lang_vals_ext = VALUE_STRING_EXT_INIT(gsm_map_cbs_coding_grp3_lang_vals); static const true_false_string gsm_map_cbs_coding_grp4_7_comp_vals = { "The text is compressed using the compression algorithm defined in 3GPP TS 23.042", "The text is uncompressed" }; static const true_false_string gsm_map_cbs_coding_grp4_7_class_ind_vals = { "Bits 1 to 0 have a message class meaning", "Bits 1 to 0 are reserved and have no message class meaning" }; /* Bits 3 and 2 indicate the character set being used, as follows: */ static const value_string gsm_map_cbs_coding_grp4_7_char_set_vals[] = { { 0, "GSM 7 bit default alphabet"}, { 1, "8 bit data"}, { 2, "UCS2 (16 bit)"}, { 3, "Reserved"}, { 0, NULL } }; static const value_string gsm_map_cbs_coding_grp4_7_class_vals[] = { { 0, "Class 0"}, { 1, "Class 1 Default meaning: ME-specific"}, { 2, "Class 2 (U)SIM specific message"}, { 3, "Class 3 Default meaning: TE-specific (see 3GPP TS 27.005"}, { 0, NULL } }; static const value_string gsm_map_cbs_coding_grp15_mess_code_vals[] = { { 0, "GSM 7 bit default alphabet"}, { 1, "8 bit data"}, { 0, NULL } }; static const value_string gsm_map_cbs_coding_grp15_class_vals[] = { { 0, "GSM 7 bit default alphabet"}, { 1, "8 bit data"}, { 0, NULL } }; /* 3GPP TS 23.038 version 7.0.0 Release 7 */ guint8 dissect_cbs_data_coding_scheme(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint16 offset) { guint8 octet; guint8 coding_grp; guint8 character_set; octet = tvb_get_guint8(tvb,offset); coding_grp = octet >>4; proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp, tvb, offset, 1, ENC_BIG_ENDIAN); sms_encoding = SMS_ENCODING_NOT_SET; switch (coding_grp){ case 0: proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp0_lang, tvb, offset, 1, ENC_BIG_ENDIAN); sms_encoding = SMS_ENCODING_7BIT; break; case 1: proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp1_lang, tvb, offset, 1, ENC_BIG_ENDIAN); if ((octet & 0x0f)== 0){ sms_encoding = SMS_ENCODING_7BIT_LANG; }else{ sms_encoding = SMS_ENCODING_UCS2_LANG; } break; case 2: proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp2_lang, tvb, offset, 1, ENC_BIG_ENDIAN); sms_encoding = SMS_ENCODING_7BIT; break; case 3: proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp3_lang, tvb, offset, 1, ENC_BIG_ENDIAN); sms_encoding = SMS_ENCODING_7BIT; break; /* Coding_grp 01xx */ case 4: /* FALLTHRU */ case 5: /* FALLTHRU */ case 6: /* FALLTHRU */ case 7: /* FALLTHRU */ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_comp, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class_ind, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN); if ((octet & 0x10)== 0x10){ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN); } /* Bits 3 and 2 indicate the character set being used, */ character_set = (octet&0x0c)>>2; switch (character_set){ case 0: /* GSM 7 bit default alphabet */ sms_encoding = SMS_ENCODING_7BIT; break; case 1: /* 8 bit data */ sms_encoding = SMS_ENCODING_8BIT; break; case 2: /* UCS2 (16 bit) */ sms_encoding = SMS_ENCODING_UCS2; break; case 3: /* Reserved */ sms_encoding = SMS_ENCODING_NOT_SET; break; default: break; } break; case 8: /* Reserved coding groups */ break; case 9: /* Message with User Data Header (UDH) structure:*/ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_char_set, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp4_7_class, tvb, offset, 1, ENC_BIG_ENDIAN); character_set = (octet&0x0c)>>2; switch (character_set){ case 0: /* GSM 7 bit default alphabet */ sms_encoding = SMS_ENCODING_7BIT; break; case 1: /* 8 bit data */ sms_encoding = SMS_ENCODING_8BIT; break; case 2: /* UCS2 (16 bit) */ sms_encoding = SMS_ENCODING_UCS2; break; case 3: /* Reserved */ sms_encoding = SMS_ENCODING_NOT_SET; break; default: break; } break; case 10: /* FALLTHRU */ case 11: /* FALLTHRU */ case 12: /* FALLTHRU */ case 13: /* FALLTHRU */ /* 1010..1101 Reserved coding groups */ break; case 14: /* Defined by the WAP Forum * "Wireless Datagram Protocol Specification", Wireless Application Protocol Forum Ltd. */ break; case 15: /* Data coding / message handling */ proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_mess_code, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_cbs_coding_grp15_class, tvb, offset, 1, ENC_BIG_ENDIAN); character_set = (octet&0x04)>>2; if (character_set == 0){ sms_encoding = SMS_ENCODING_7BIT; }else{ sms_encoding = SMS_ENCODING_8BIT; } break; default: break; } return sms_encoding; } void dissect_gsm_map_msisdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { guint8 octet; guint8 na; guint8 np; proto_tree_add_item(tree, hf_gsm_map_extension, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_number_plan, tvb, 0,1,ENC_BIG_ENDIAN); if(tvb_reported_length(tvb)==1) return; octet = tvb_get_guint8(tvb,0); /* nature of address indicator */ na = (octet & 0x70)>>4; /* numbering plan indicator */ np = octet & 0x0f; switch(np){ case 1: /* ISDN/Telephony Numbering Plan (Rec ITU-T E.164) */ switch(na){ case 1: /* international number */ dissect_e164_msisdn(tvb, tree, 1, tvb_reported_length(tvb)-1, E164_ENC_BCD); break; default: proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN); break; } break; case 6: /* land mobile numbering plan (ITU-T Rec E.212) */ dissect_e212_imsi(tvb, pinfo, tree, 1, tvb_reported_length(tvb)-1, FALSE); break; default: proto_tree_add_item(tree, hf_gsm_map_address_digits, tvb, 1, -1, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN); break; } } /* --- Module MAP-SS-Code --- --- --- */ int dissect_gsm_map_SS_Code(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } /* --- Module MAP-BS-Code --- --- --- */ static int dissect_gsm_map_BearerServiceCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_Ext_BearerServiceCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } /* --- Module MAP-TS-Code --- --- --- */ static int dissect_gsm_map_TeleserviceCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_Ext_TeleserviceCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } /* --- Module MAP-ExtensionDataTypes --- --- --- */ static int dissect_gsm_map_T_extId(bool implicit_tag _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, tree, tvb, offset, hf_index, &actx->external.direct_reference); actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE; return offset; } static int dissect_gsm_map_T_extType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { proto_tree *ext_tree; ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gsm_map_extension_data, NULL, "Extension Data"); if (actx->external.direct_ref_present){ offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, ext_tree, NULL); }else{ call_data_dissector(tvb, actx->pinfo, ext_tree); offset = tvb_reported_length_remaining(tvb,offset); } return offset; } static const ber_sequence_t gsm_map_PrivateExtension_sequence[] = { { &hf_gsm_map_extId , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extId }, { &hf_gsm_map_extType , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_T_extType }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_PrivateExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension); return offset; } static const ber_sequence_t gsm_map_PrivateExtensionList_sequence_of[1] = { { &hf_gsm_map_PrivateExtensionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PrivateExtension }, }; static int dissect_gsm_map_PrivateExtensionList(bool implicit_tag _U_, 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, gsm_map_PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList); return offset; } static const ber_sequence_t gsm_map_PCS_Extensions_sequence[] = { { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_PCS_Extensions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions); return offset; } static const ber_sequence_t gsm_map_ExtensionContainer_sequence[] = { { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList }, { &hf_gsm_map_pcs_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PCS_Extensions }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ExtensionContainer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer); return offset; } static int dissect_gsm_map_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_SLR_Arg_PCS_Extensions_sequence[] = { { &hf_gsm_map_na_ESRK_Request, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_SLR_Arg_PCS_Extensions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions); return offset; } static const ber_sequence_t gsm_map_SLR_ArgExtensionContainer_sequence[] = { { &hf_gsm_map_privateExtensionList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PrivateExtensionList }, { &hf_gsm_map_slr_Arg_PCS_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_Arg_PCS_Extensions }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_SLR_ArgExtensionContainer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer); return offset; } /* --- Module MAP-CommonDataTypes --- --- --- */ int dissect_gsm_map_TBCD_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; if(tvb_reported_length(parameter_tvb)==0) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_tbcd_digits); proto_tree_add_item(subtree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, ENC_KEYPAD_ABC_TBCD|ENC_LITTLE_ENDIAN); return offset; } static int dissect_gsm_map_DiameterIdentity(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_AddressString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_isdn_address_string); dissect_gsm_map_msisdn(parameter_tvb, actx->pinfo , subtree); if (!PINFO_FD_VISITED(actx->pinfo)) actx->private_data = tvb_bytes_to_str(wmem_file_scope(), parameter_tvb, 0, tvb_captured_length(parameter_tvb)); return offset; } int dissect_gsm_map_ISDN_AddressString(bool implicit_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_gsm_map_FTN_AddressString(bool implicit_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; } int dissect_gsm_map_ISDN_SubaddressString(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } 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_ProtocolId(bool implicit_tag _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, tree, tvb, offset, hf_index, &ProtocolId); return offset; } static int dissect_gsm_map_SignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (gsm_map_priv) gsm_map_priv->signal_info_tvb = parameter_tvb; return offset; } static const ber_sequence_t gsm_map_ExternalSignalInfo_sequence[] = { { &hf_gsm_map_protocolId , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId }, { &hf_gsm_map_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ExternalSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* -- Information about the internal structure is given in -- clause 7.6.9. 7.6.9.4 External Signal Information This parameter contains concatenated information elements (including tag and length) which are defined by a common protocol version, preceded by the associated protocol ID. It is used to transport information of the indicated protocol via MAP interfaces */ guint8 octet; guint8 length; tvbuff_t *next_tvb; proto_tree *subtree; gsm_map_private_info_t *gsm_map_priv; ProtocolId = 0xffffffff; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo); gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo); switch (ProtocolId){ case 1: /* gsm-0408 */ /* As per comment abowe Individual IE:(s) will be found here in TLV format * Unfortunately a branch for each IE must be made to call the appropriate * function */ /* Get tag */ octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN); /* get length */ length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1); proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN); /* Branch on tag */ switch(octet){ case 4: /* Dissect the data part */ de_bearer_cap(gsm_map_priv->signal_info_tvb, subtree, actx->pinfo, 2, length, NULL, 0); /* TODO: There may be more than one IE */ break; default: proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, gsm_map_priv->signal_info_tvb, 0, length); break; }/* switch(octet) */ break; case 2: /* gsm-0806 */ octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); /* Discrimination parameter */ proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN); if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */ /* Strip off discrimination and length */ proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN); next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2); call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info); }else if(octet==1){ proto_tree_add_item(subtree, hf_gsm_map_dlci, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 2,1,ENC_BIG_ENDIAN); next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 3); call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); } break; case 3: /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/ octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); if ( octet == 0) {/* DISCRIMINATION TS 48 006 */ next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2); call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info); } break; /* ets-300102-1 (~Q.931 ) */ case 4: octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1); if ( octet == 4 ) dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree); break; default: break; }/*switch (ProtocolId)*/ return offset; } static const value_string gsm_map_Ext_ProtocolId_vals[] = { { 1, "ets-300356" }, { 0, NULL } }; static int dissect_gsm_map_Ext_ProtocolId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_Ext_ExternalSignalInfo_sequence[] = { { &hf_gsm_map_ext_ProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_ProtocolId }, { &hf_gsm_map_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_Ext_ExternalSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo); return offset; } static const value_string gsm_map_AccessNetworkProtocolId_vals[] = { { 1, "ts3G-48006" }, { 2, "ts3G-25413" }, { 0, NULL } }; static int dissect_gsm_map_AccessNetworkProtocolId(bool implicit_tag _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, tree, tvb, offset, hf_index, &AccessNetworkProtocolId); return offset; } static int dissect_gsm_map_LongSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; guint8 octet; tvbuff_t *next_tvb; proto_tree *subtree; gsm_map_private_info_t *gsm_map_priv; sccp_msg_info_t *sccp_msg_info; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; sccp_msg_info = gsm_map_priv ? gsm_map_priv->sccp_msg_info : NULL; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo); switch (AccessNetworkProtocolId){ /* ts3G-48006 */ case 1: octet = tvb_get_guint8(parameter_tvb,0); /* Discrimination parameter */ proto_tree_add_item(subtree, hf_gsm_map_disc_par, parameter_tvb, 0,1,ENC_BIG_ENDIAN); if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */ /* Strip off discrimination and length */ proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 1,1,ENC_BIG_ENDIAN); next_tvb = tvb_new_subset_remaining(parameter_tvb, 2); call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, sccp_msg_info); }else if(octet==1){ proto_tree_add_item(subtree, hf_gsm_map_dlci, parameter_tvb, 1,1,ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_len, parameter_tvb, 2,1,ENC_BIG_ENDIAN); next_tvb = tvb_new_subset_remaining(parameter_tvb, 3); call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); } break; /* ts3G-25413 */ case 2: call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); break; default: break; } return offset; } static const ber_sequence_t gsm_map_AccessNetworkSignalInfo_sequence[] = { { &hf_gsm_map_accessNetworkProtocolId, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkProtocolId }, { &hf_gsm_map_signalInfo_01, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LongSignalInfo }, { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_AccessNetworkSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo); return offset; } int dissect_gsm_map_AlertingPattern(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_GSN_Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; guint8 octet; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_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, 4, ENC_BIG_ENDIAN); break; case 0x50: /* IPv6 */ proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv6, parameter_tvb, 1, 16, ENC_NA); break; default: break; } return offset; } static int dissect_gsm_map_Time(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_IMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; const char *imsi_str; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; if(tvb_reported_length(parameter_tvb)==0) return offset; /* Hide the octet string default printout */ proto_item_set_hidden(actx->created_item); imsi_str = dissect_e212_imsi(parameter_tvb, actx->pinfo, tree, 0, tvb_reported_length(parameter_tvb), FALSE); if (!PINFO_FD_VISITED(actx->pinfo)) actx->private_data = wmem_strdup(wmem_file_scope(), imsi_str); return offset; } static int dissect_gsm_map_LMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (parameter_tvb && !PINFO_FD_VISITED(actx->pinfo)) { actx->private_data = tvb_bytes_to_str(wmem_file_scope(), parameter_tvb, 0, tvb_captured_length(parameter_tvb)); } return offset; } static const ber_sequence_t gsm_map_IMSI_WithLMSI_sequence[] = { { &hf_gsm_map_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_IMSI_WithLMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI); return offset; } static const value_string gsm_map_Identity_vals[] = { { 0, "imsi" }, { 1, "imsi-WithLMSI" }, { 0, NULL } }; static const ber_choice_t gsm_map_Identity_choice[] = { { 0, &hf_gsm_map_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { 1, &hf_gsm_map_imsi_WithLMSI, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_Identity(bool implicit_tag _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, gsm_map_Identity_choice, hf_index, ett_gsm_map_Identity, NULL); return offset; } static int dissect_gsm_map_ASCI_CallReference(bool implicit_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_gsm_map_TMSI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_SubscriberId_vals[] = { { 0, "imsi" }, { 1, "tmsi" }, { 0, NULL } }; static const ber_choice_t gsm_map_SubscriberId_choice[] = { { 0, &hf_gsm_map_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { 1, &hf_gsm_map_tmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_SubscriberId(bool implicit_tag _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, gsm_map_SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId, NULL); return offset; } int dissect_gsm_map_IMEI(bool implicit_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_gsm_map_HLR_Id(bool implicit_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 gsm_map_HLR_List_sequence_of[1] = { { &hf_gsm_map_HLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_Id }, }; static int dissect_gsm_map_HLR_List(bool implicit_tag _U_, 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, gsm_map_HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List); return offset; } int dissect_gsm_map_GlobalCellId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId); be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0, 0); return offset; } 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 } }; int dissect_gsm_map_NetworkResource(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_AdditionalNetworkResource_vals[] = { { 0, "sgsn" }, { 1, "ggsn" }, { 2, "gmlc" }, { 3, "gsmSCF" }, { 4, "nplr" }, { 5, "auc" }, { 6, "ue" }, { 7, "mme" }, { 0, NULL } }; static int dissect_gsm_map_AdditionalNetworkResource(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_NAEA_CIC(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_NAEA_PreferredCI_sequence[] = { { &hf_gsm_map_naea_PreferredCIC, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_CIC }, { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_NAEA_PreferredCI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI); return offset; } static const value_string gsm_map_SubscriberIdentity_vals[] = { { 0, "imsi" }, { 1, "msisdn" }, { 0, NULL } }; static const ber_choice_t gsm_map_SubscriberIdentity_choice[] = { { 0, &hf_gsm_map_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { 1, &hf_gsm_map_msisdn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_SubscriberIdentity(bool implicit_tag _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, gsm_map_SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity, NULL); return offset; } static const ber_sequence_t gsm_map_LCSClientExternalID_sequence[] = { { &hf_gsm_map_externalAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_LCSClientExternalID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID); return offset; } const value_string gsm_map_LCSClientInternalID_vals[] = { { 0, "broadcastService" }, { 1, "o-andM-HPLMN" }, { 2, "o-andM-VPLMN" }, { 3, "anonymousLocation" }, { 4, "targetMSsubscribedService" }, { 0, NULL } }; int dissect_gsm_map_LCSClientInternalID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } const value_string gsm_map_LCSServiceTypeID_vals[] = { { 0, "emergencyServices" }, { 1, "emergencyAlertServices" }, { 2, "personTracking" }, { 3, "fleetManagement" }, { 4, "assetManagement" }, { 5, "trafficCongestionReporting" }, { 6, "roadsideAssistance" }, { 7, "routingToNearestCommercialEnterprise" }, { 8, "navigation" }, { 9, "citySightseeing" }, { 10, "localizedAdvertising" }, { 11, "mobileYellowPages" }, { 12, "trafficAndPublicTransportationInfo" }, { 13, "weather" }, { 14, "assetAndServiceFinding" }, { 15, "gaming" }, { 16, "findYourFriend" }, { 17, "dating" }, { 18, "chatting" }, { 19, "routeFinding" }, { 20, "whereAmI" }, { 64, "serv64" }, { 65, "serv65" }, { 66, "serv66" }, { 67, "serv67" }, { 68, "serv68" }, { 69, "serv69" }, { 70, "serv70" }, { 71, "serv71" }, { 72, "serv72" }, { 73, "serv73" }, { 74, "serv74" }, { 75, "serv75" }, { 76, "serv76" }, { 77, "serv77" }, { 78, "serv78" }, { 79, "serv79" }, { 80, "serv80" }, { 81, "serv81" }, { 82, "serv82" }, { 83, "serv83" }, { 84, "serv84" }, { 85, "serv85" }, { 86, "serv86" }, { 87, "serv87" }, { 88, "serv88" }, { 89, "serv89" }, { 90, "serv90" }, { 91, "serv91" }, { 92, "serv92" }, { 93, "serv93" }, { 94, "serv94" }, { 95, "serv95" }, { 96, "serv96" }, { 97, "serv97" }, { 98, "serv98" }, { 99, "serv99" }, { 100, "serv100" }, { 101, "serv101" }, { 102, "serv102" }, { 103, "serv103" }, { 104, "serv104" }, { 105, "serv105" }, { 106, "serv106" }, { 107, "serv107" }, { 108, "serv108" }, { 109, "serv109" }, { 110, "serv110" }, { 111, "serv111" }, { 112, "serv112" }, { 113, "serv113" }, { 114, "serv114" }, { 115, "serv115" }, { 116, "serv116" }, { 117, "serv117" }, { 118, "serv118" }, { 119, "serv119" }, { 120, "serv120" }, { 121, "serv121" }, { 122, "serv122" }, { 123, "serv123" }, { 124, "serv124" }, { 125, "serv125" }, { 126, "serv126" }, { 127, "serv127" }, { 0, NULL } }; int dissect_gsm_map_LCSServiceTypeID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_PLMN_Id(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_E_UTRAN_CGI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_e_utranCellGlobalIdentity); de_sgsap_ecgi(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0); return offset; } static int dissect_gsm_map_NR_CGI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_TA_Id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_TA_id); de_emm_trac_area_id(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0); return offset; } static int dissect_gsm_map_NR_TA_Id(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_RAIdentity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity); de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0); return offset; } static const ber_sequence_t gsm_map_NetworkNodeDiameterAddress_sequence[] = { { &hf_gsm_map_diameter_Name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_diameter_Realm, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_NetworkNodeDiameterAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_NetworkNodeDiameterAddress_sequence, hf_index, ett_gsm_map_NetworkNodeDiameterAddress); return offset; } int dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_LAIFixedLength(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LAIFixedLength); dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_LAI, TRUE); return offset; } const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = { { 0, "cellGlobalIdOrServiceAreaIdFixedLength" }, { 1, "laiFixedLength" }, { 0, NULL } }; static const ber_choice_t gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice[] = { { 0, &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength }, { 1, &hf_gsm_map_laiFixedLength, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(bool implicit_tag _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, gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI, NULL); return offset; } const value_string gsm_map_BasicServiceCode_vals[] = { { 2, "bearerService" }, { 3, "teleservice" }, { 0, NULL } }; static const ber_choice_t gsm_map_BasicServiceCode_choice[] = { { 2, &hf_gsm_map_bearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_BearerServiceCode }, { 3, &hf_gsm_map_teleservice , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_BasicServiceCode(bool implicit_tag _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, gsm_map_BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode, NULL); return offset; } const value_string gsm_map_Ext_BasicServiceCode_vals[] = { { 2, "ext-BearerService" }, { 3, "ext-Teleservice" }, { 0, NULL } }; static const ber_choice_t gsm_map_Ext_BasicServiceCode_choice[] = { { 2, &hf_gsm_map_ext_BearerService, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BearerServiceCode }, { 3, &hf_gsm_map_ext_Teleservice, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_TeleserviceCode }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_Ext_BasicServiceCode(bool implicit_tag _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, gsm_map_Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode, NULL); return offset; } static const value_string gsm_map_EMLPP_Priority_vals[] = { { 6, "priorityLevelA" }, { 5, "priorityLevelB" }, { 0, "priorityLevel0" }, { 1, "priorityLevel1" }, { 2, "priorityLevel2" }, { 3, "priorityLevel3" }, { 4, "priorityLevel4" }, { 0, NULL } }; static int dissect_gsm_map_EMLPP_Priority(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_EMLPP_Info_sequence[] = { { &hf_gsm_map_maximumentitledPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_EMLPP_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info); return offset; } static int dissect_gsm_map_Ext_SS_Status(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* Note Ext-SS-Status can have more than one byte */ tvbuff_t *parameter_tvb; guint8 octet; offset = dissect_ber_octet_string(implicit_tag, actx, 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); return offset; } static int dissect_gsm_map_MaxMC_Bearers(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_MC_Bearers(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_MC_SS_Info_sequence[] = { { &hf_gsm_map_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_Status , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_nbrSB , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers }, { &hf_gsm_map_nbrUser , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers }, { &hf_gsm_map_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_MC_SS_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info); return offset; } int dissect_gsm_map_AgeOfLocationInformation(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } /*--- PDUs ---*/ int dissect_gsm_map_ISDN_AddressString_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_gsm_map_ISDN_AddressString_PDU); return offset; } /* --- Module MAP-SS-DataTypes --- --- --- */ static int dissect_gsm_map_ss_NoReplyConditionTime(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ss_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_ss_RegisterSS_Arg_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, { &hf_gsm_map_ss_forwardedToNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime }, { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers }, { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_RegisterSS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg); return offset; } int dissect_gsm_map_ss_SS_Status(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; guint8 octet; offset = dissect_ber_octet_string(implicit_tag, actx, 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); return offset; } int dissect_gsm_map_ss_ForwardingOptions(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN); return offset; } static const ber_sequence_t gsm_map_ss_ForwardingFeature_sequence[] = { { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { &hf_gsm_map_ss_forwardedToNumber_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ss_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { &hf_gsm_map_ss_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions }, { &hf_gsm_map_ss_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NoReplyConditionTime }, { &hf_gsm_map_ss_longForwardedToNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_ForwardingFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature); return offset; } static const ber_sequence_t gsm_map_ss_ForwardingFeatureList_sequence_of[1] = { { &hf_gsm_map_ss_ForwardingFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeature }, }; static int dissect_gsm_map_ss_ForwardingFeatureList(bool implicit_tag _U_, 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, gsm_map_ss_ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList); return offset; } static const ber_sequence_t gsm_map_ss_ForwardingInfo_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_ForwardingFeatureList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_ForwardingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo); return offset; } static const ber_sequence_t gsm_map_ss_CallBarringFeature_sequence[] = { { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_CallBarringFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature); return offset; } static const ber_sequence_t gsm_map_ss_CallBarringFeatureList_sequence_of[1] = { { &hf_gsm_map_ss_CallBarringFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeature }, }; static int dissect_gsm_map_ss_CallBarringFeatureList(bool implicit_tag _U_, 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, gsm_map_ss_CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList); return offset; } static const ber_sequence_t gsm_map_ss_CallBarringInfo_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CallBarringFeatureList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_CallBarringInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo); return offset; } static const value_string gsm_map_ss_CliRestrictionOption_vals[] = { { 0, "permanent" }, { 1, "temporaryDefaultRestricted" }, { 2, "temporaryDefaultAllowed" }, { 0, NULL } }; static int dissect_gsm_map_ss_CliRestrictionOption(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ss_OverrideCategory_vals[] = { { 0, "overrideEnabled" }, { 1, "overrideDisabled" }, { 0, NULL } }; static int dissect_gsm_map_ss_OverrideCategory(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = { { 2, "cliRestrictionOption" }, { 1, "overrideCategory" }, { 0, NULL } }; static const ber_choice_t gsm_map_ss_SS_SubscriptionOption_choice[] = { { 2, &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption }, { 1, &hf_gsm_map_ss_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_SS_SubscriptionOption(bool implicit_tag _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, gsm_map_ss_SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption, NULL); return offset; } static const ber_sequence_t gsm_map_ss_BasicServiceGroupList_sequence_of[1] = { { &hf_gsm_map_ss_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, }; static int dissect_gsm_map_ss_BasicServiceGroupList(bool implicit_tag _U_, 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, gsm_map_ss_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList); return offset; } static const ber_sequence_t gsm_map_ss_SS_Data_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { &hf_gsm_map_ss_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ss_SS_SubscriptionOption }, { &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_BasicServiceGroupList }, { &hf_gsm_map_ss_defaultPriority, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_SS_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data); return offset; } const value_string gsm_map_ss_SS_Info_vals[] = { { 0, "forwardingInfo" }, { 1, "callBarringInfo" }, { 3, "ss-Data" }, { 0, NULL } }; static const ber_choice_t gsm_map_ss_SS_Info_choice[] = { { 0, &hf_gsm_map_ss_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingInfo }, { 1, &hf_gsm_map_ss_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CallBarringInfo }, { 3, &hf_gsm_map_ss_ss_Data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Data }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_SS_Info(bool implicit_tag _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, gsm_map_ss_SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info, NULL); return offset; } static const ber_sequence_t gsm_map_ss_SS_ForBS_Code_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, { &hf_gsm_map_ss_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_NULL }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_SS_ForBS_Code(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code); return offset; } static int dissect_gsm_map_ss_CCBS_Index(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ss_CCBS_Feature_sequence[] = { { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index }, { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ss_b_subscriberSubaddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { &hf_gsm_map_ss_basicServiceGroup, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_CCBS_Feature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature); return offset; } static const ber_sequence_t gsm_map_ss_CCBS_FeatureList_sequence_of[1] = { { &hf_gsm_map_ss_CCBS_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CCBS_Feature }, }; static int dissect_gsm_map_ss_CCBS_FeatureList(bool implicit_tag _U_, 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, gsm_map_ss_CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList); return offset; } static const ber_sequence_t gsm_map_ss_GenericServiceInfo_sequence[] = { { &hf_gsm_map_ss_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_Status }, { &hf_gsm_map_ss_cliRestrictionOption, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_CliRestrictionOption }, { &hf_gsm_map_ss_maximumEntitledPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_ss_defaultPriority, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_ss_ccbs_FeatureList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_FeatureList }, { &hf_gsm_map_ss_nbrSB , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MaxMC_Bearers }, { &hf_gsm_map_ss_nbrUser , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers }, { &hf_gsm_map_ss_nbrSN , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_Bearers }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_GenericServiceInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo); return offset; } const value_string gsm_map_ss_InterrogateSS_Res_vals[] = { { 0, "ss-Status" }, { 2, "basicServiceGroupList" }, { 3, "forwardingFeatureList" }, { 4, "genericServiceInfo" }, { 0, NULL } }; static const ber_choice_t gsm_map_ss_InterrogateSS_Res_choice[] = { { 0, &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { 2, &hf_gsm_map_ss_basicServiceGroupList, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_BasicServiceGroupList }, { 3, &hf_gsm_map_ss_forwardingFeatureList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingFeatureList }, { 4, &hf_gsm_map_ss_genericServiceInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_GenericServiceInfo }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_InterrogateSS_Res(bool implicit_tag _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, gsm_map_ss_InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res, NULL); return offset; } int dissect_gsm_map_ss_USSD_DataCodingScheme(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /*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 dissect_cbs_data_coding_scheme return encoding type? - like 7bit Alphabet */ tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_cbs_data_coding); dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0); return offset; } int dissect_gsm_map_ss_USSD_String(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; guint length; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; length = tvb_ensure_captured_length_remaining(parameter_tvb,0); subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ussd_string); switch(sms_encoding){ case SMS_ENCODING_7BIT: case SMS_ENCODING_7BIT_LANG: proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_3GPP_TS_23_038_7BITS|ENC_NA); break; case SMS_ENCODING_8BIT: /* XXX - ASCII, or some extended ASCII? */ proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_ASCII); break; case SMS_ENCODING_UCS2: case SMS_ENCODING_UCS2_LANG: proto_tree_add_item(subtree, hf_gsm_map_ussd_string, parameter_tvb, 0, length, ENC_UCS_2|ENC_BIG_ENDIAN); break; default: break; } return offset; } static const ber_sequence_t gsm_map_ss_USSD_Arg_sequence[] = { { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme }, { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String }, { &hf_gsm_map_ss_alertingPattern, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AlertingPattern }, { &hf_gsm_map_ss_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_USSD_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg); return offset; } static const ber_sequence_t gsm_map_ss_USSD_Res_sequence[] = { { &hf_gsm_map_ss_ussd_DataCodingScheme, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_DataCodingScheme }, { &hf_gsm_map_ss_ussd_String, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_USSD_String }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_USSD_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res); return offset; } static int dissect_gsm_map_ss_Password(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ss_SS_List_sequence_of[1] = { { &hf_gsm_map_ss_SS_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, }; static int dissect_gsm_map_ss_SS_List(bool implicit_tag _U_, 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, gsm_map_ss_SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List); return offset; } static const ber_sequence_t gsm_map_ss_SS_EventSpecification_sequence_of[1] = { { &hf_gsm_map_ss_SS_EventSpecification_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString }, }; static int dissect_gsm_map_ss_SS_EventSpecification(bool implicit_tag _U_, 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, gsm_map_ss_SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification); return offset; } static const value_string gsm_map_ss_CCBS_RequestState_vals[] = { { 0, "request" }, { 1, "recall" }, { 2, "active" }, { 3, "completed" }, { 4, "suspended" }, { 5, "frozen" }, { 6, "deleted" }, { 0, NULL } }; static int dissect_gsm_map_ss_CCBS_RequestState(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationArg_sequence[] = { { &hf_gsm_map_ss_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ss_msisdn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ss_ss_Event , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_ss_EventSpecification, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_EventSpecification }, { &hf_gsm_map_ss_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ss_b_subscriberNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ss_ccbs_RequestState, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_RequestState }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_SS_InvocationNotificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg); return offset; } static const ber_sequence_t gsm_map_ss_SS_InvocationNotificationRes_sequence[] = { { &hf_gsm_map_ss_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_SS_InvocationNotificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes); return offset; } static int * const gsm_map_ss_ServiceIndicator_bits[] = { &hf_gsm_map_ss_ServiceIndicator_clir_invoked, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, NULL }; static int dissect_gsm_map_ss_ServiceIndicator(bool implicit_tag _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, tree, tvb, offset, gsm_map_ss_ServiceIndicator_bits, 2, hf_index, ett_gsm_map_ss_ServiceIndicator, NULL); return offset; } static const ber_sequence_t gsm_map_ss_CCBS_Data_sequence[] = { { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature }, { &hf_gsm_map_ss_translatedB_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ss_serviceIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ServiceIndicator }, { &hf_gsm_map_ss_callInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_map_ss_networkSignalInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_CCBS_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data); return offset; } static const ber_sequence_t gsm_map_ss_RegisterCC_EntryArg_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_ccbs_Data, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Data }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ss_RegisterCC_EntryArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg); return offset; } static const ber_sequence_t gsm_map_ss_RegisterCC_EntryRes_sequence[] = { { &hf_gsm_map_ss_ccbs_Feature, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_RegisterCC_EntryRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes); return offset; } static const ber_sequence_t gsm_map_ss_EraseCC_EntryArg_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_ccbs_Index, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Index }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_EraseCC_EntryArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg); return offset; } static const ber_sequence_t gsm_map_ss_EraseCC_EntryRes_sequence[] = { { &hf_gsm_map_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ss_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ss_EraseCC_EntryRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ss_EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes); return offset; } /* --- Module MAP-ER-DataTypes --- --- --- */ static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = { { 0, "plmnRoamingNotAllowed" }, { 3, "operatorDeterminedBarring" }, { 0, NULL } }; static int dissect_gsm_map_er_RoamingNotAllowedCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = { { 0, "supportedRAT-TypesNotAllowed" }, { 0, NULL } }; static int dissect_gsm_map_er_AdditionalRoamingNotAllowedCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_RoamingNotAllowedParam_sequence[] = { { &hf_gsm_map_er_roamingNotAllowedCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_RoamingNotAllowedCause }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_additionalRoamingNotAllowedCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AdditionalRoamingNotAllowedCause }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_RoamingNotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam); return offset; } static const value_string gsm_map_er_CallBarringCause_vals[] = { { 0, "barringServiceActive" }, { 1, "operatorBarring" }, { 0, NULL } }; static int dissect_gsm_map_er_CallBarringCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_er_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_er_ExtensibleCallBarredParam_sequence[] = { { &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_unauthorisedMessageOriginator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { &hf_gsm_map_er_anonymousCallRejection, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ExtensibleCallBarredParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam); return offset; } static const ber_choice_t gsm_map_er_CallBarredParam_choice[] = { { 0, &hf_gsm_map_er_callBarringCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CallBarringCause }, { 1, &hf_gsm_map_er_extensibleCallBarredParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleCallBarredParam }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_CallBarredParam(bool implicit_tag _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, gsm_map_er_CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam, NULL); return offset; } static const value_string gsm_map_er_CUG_RejectCause_vals[] = { { 0, "incomingCallsBarredWithinCUG" }, { 1, "subscriberNotMemberOfCUG" }, { 5, "requestedBasicServiceViolatesCUG-Constraints" }, { 7, "calledPartySS-InteractionViolation" }, { 0, NULL } }; static int dissect_gsm_map_er_CUG_RejectCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_CUG_RejectParam_sequence[] = { { &hf_gsm_map_er_cug_RejectCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_CUG_RejectCause }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_CUG_RejectParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam); return offset; } static const ber_sequence_t gsm_map_er_SS_IncompatibilityCause_sequence[] = { { &hf_gsm_map_er_ss_Code , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_er_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, { &hf_gsm_map_er_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_SS_IncompatibilityCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause); return offset; } static int dissect_gsm_map_er_PW_RegistrationFailureCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_er_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_er_SM_EnumeratedDeliveryFailureCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_SM_DeliveryFailureCause_sequence[] = { { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause }, { &hf_gsm_map_er_diagnosticInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_SM_DeliveryFailureCause(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ guint8 oct; gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_er_SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; /* Detailed diagnostic information contains either a SMS-SUBMIT-REPORT or a SMS-DELIVERY-REPORT */ oct = tvb_get_guint8(gsm_map_priv->signal_info_tvb, 0); actx->pinfo->p2p_dir = ((oct & 0x03) == 0) ? P2P_DIR_RECV : P2P_DIR_SENT; call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static int dissect_gsm_map_er_AbsentSubscriberDiagnosticSM(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_AbsentSubscriberSM_Param_sequence[] = { { &hf_gsm_map_er_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_er_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_er_requestedRetransmissionTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time }, { &hf_gsm_map_er_userIdentifierAlert, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_AbsentSubscriberSM_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param); return offset; } static const value_string gsm_map_er_FailureCauseParam_vals[] = { { 0, "limitReachedOnNumberOfConcurrentLocationRequests" }, { 0, NULL } }; static int dissect_gsm_map_er_FailureCauseParam(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_ExtensibleSystemFailureParam_sequence[] = { { &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_additionalNetworkResource, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AdditionalNetworkResource }, { &hf_gsm_map_er_failureCauseParam, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_FailureCauseParam }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ExtensibleSystemFailureParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam); return offset; } static const ber_choice_t gsm_map_er_SystemFailureParam_choice[] = { { 0, &hf_gsm_map_er_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource }, { 1, &hf_gsm_map_er_extensibleSystemFailureParam, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_ExtensibleSystemFailureParam }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_SystemFailureParam(bool implicit_tag _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, gsm_map_er_SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam, NULL); return offset; } static const ber_sequence_t gsm_map_er_DataMissingParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_DataMissingParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam); return offset; } static const ber_sequence_t gsm_map_er_UnexpectedDataParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_unexpectedSubscriber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_UnexpectedDataParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam); return offset; } static const ber_sequence_t gsm_map_er_FacilityNotSupParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_FacilityNotSupParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam); return offset; } static const ber_sequence_t gsm_map_er_OR_NotAllowedParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_OR_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam); return offset; } static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = { { 0, "imsiUnknown" }, { 1, "gprs-eps-SubscriptionUnknown" }, { 2, "npdbMismatch" }, { 0, NULL } }; static int dissect_gsm_map_er_UnknownSubscriberDiagnostic(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_UnknownSubscriberParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_unknownSubscriberDiagnostic, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_UnknownSubscriberDiagnostic }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_UnknownSubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam); return offset; } static const ber_sequence_t gsm_map_er_NumberChangedParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_NumberChangedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam); return offset; } static const ber_sequence_t gsm_map_er_UnidentifiedSubParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_UnidentifiedSubParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam); return offset; } static const ber_sequence_t gsm_map_er_IllegalSubscriberParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_IllegalSubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam); return offset; } static const ber_sequence_t gsm_map_er_IllegalEquipmentParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_IllegalEquipmentParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam); return offset; } static const ber_sequence_t gsm_map_er_BearerServNotProvParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_BearerServNotProvParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam); return offset; } static const ber_sequence_t gsm_map_er_TeleservNotProvParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_TeleservNotProvParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam); return offset; } static const ber_sequence_t gsm_map_er_TracingBufferFullParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_TracingBufferFullParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam); return offset; } static const ber_sequence_t gsm_map_er_NoRoamingNbParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_NoRoamingNbParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam); return offset; } static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = { { 0, "imsiDetach" }, { 1, "restrictedArea" }, { 2, "noPageResponse" }, { 3, "purgedMS" }, { 4, "mtRoamingRetry" }, { 5, "busySubscriber" }, { 0, NULL } }; static int dissect_gsm_map_er_AbsentSubscriberReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_AbsentSubscriberParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_absentSubscriberReason, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberReason }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_AbsentSubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam); return offset; } static const ber_sequence_t gsm_map_er_BusySubscriberParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { &hf_gsm_map_er_ccbs_Busy, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_BusySubscriberParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam); return offset; } static const ber_sequence_t gsm_map_er_NoSubscriberReplyParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_NoSubscriberReplyParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam); return offset; } static const ber_sequence_t gsm_map_er_ForwardingViolationParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ForwardingViolationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam); return offset; } static const ber_sequence_t gsm_map_er_ForwardingFailedParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ForwardingFailedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam); return offset; } static const ber_sequence_t gsm_map_er_ATI_NotAllowedParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ATI_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam); return offset; } static const ber_sequence_t gsm_map_er_ATSI_NotAllowedParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ATSI_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam); return offset; } static const ber_sequence_t gsm_map_er_ATM_NotAllowedParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ATM_NotAllowedParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam); return offset; } static const ber_sequence_t gsm_map_er_IllegalSS_OperationParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_IllegalSS_OperationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam); return offset; } static const ber_sequence_t gsm_map_er_SS_NotAvailableParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_SS_NotAvailableParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam); return offset; } static const ber_sequence_t gsm_map_er_SS_SubscriptionViolationParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_SS_SubscriptionViolationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam); return offset; } static const ber_sequence_t gsm_map_er_InformationNotAvailableParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_InformationNotAvailableParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam); return offset; } static const ber_sequence_t gsm_map_er_SubBusyForMT_SMS_Param_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_er_gprsConnectionSuspended, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_SubBusyForMT_SMS_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param); return offset; } static const ber_sequence_t gsm_map_er_MessageWaitListFullParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_MessageWaitListFullParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam); return offset; } static const ber_sequence_t gsm_map_er_ResourceLimitationParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ResourceLimitationParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam); return offset; } static const ber_sequence_t gsm_map_er_NoGroupCallNbParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_NoGroupCallNbParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam); return offset; } static const ber_sequence_t gsm_map_er_IncompatibleTerminalParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_IncompatibleTerminalParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam); return offset; } static const ber_sequence_t gsm_map_er_ShortTermDenialParam_sequence[] = { { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_ShortTermDenialParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam); return offset; } static const ber_sequence_t gsm_map_er_LongTermDenialParam_sequence[] = { { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_LongTermDenialParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam); return offset; } static const ber_sequence_t gsm_map_er_UnauthorizedRequestingNetwork_Param_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param); return offset; } const value_string gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals[] = { { 0, "noAdditionalInformation" }, { 1, "clientNotInMSPrivacyExceptionList" }, { 2, "callToClientNotSetup" }, { 3, "privacyOverrideNotApplicable" }, { 4, "disallowedByLocalRegulatoryRequirements" }, { 5, "unauthorizedPrivacyClass" }, { 6, "unauthorizedCallSessionUnrelatedExternalClient" }, { 7, "unauthorizedCallSessionRelatedExternalClient" }, { 0, NULL } }; int dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_UnauthorizedLCSClient_Param_sequence[] = { { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_UnauthorizedLCSClient_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param); return offset; } const value_string gsm_map_er_PositionMethodFailure_Diagnostic_vals[] = { { 0, "congestion" }, { 1, "insufficientResources" }, { 2, "insufficientMeasurementData" }, { 3, "inconsistentMeasurementData" }, { 4, "locationProcedureNotCompleted" }, { 5, "locationProcedureNotSupportedByTargetMS" }, { 6, "qoSNotAttainable" }, { 7, "positionMethodNotAvailableInNetwork" }, { 8, "positionMethodNotAvailableInLocationArea" }, { 0, NULL } }; int dissect_gsm_map_er_PositionMethodFailure_Diagnostic(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_er_PositionMethodFailure_Param_sequence[] = { { &hf_gsm_map_er_positionMethodFailure_Diagnostic, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_PositionMethodFailure_Diagnostic }, { &hf_gsm_map_er_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_PositionMethodFailure_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param); return offset; } static const ber_sequence_t gsm_map_er_UnknownOrUnreachableLCSClient_Param_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param); return offset; } static const ber_sequence_t gsm_map_er_MM_EventNotSupported_Param_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_MM_EventNotSupported_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param); return offset; } static const ber_sequence_t gsm_map_er_TargetCellOutsideGCA_Param_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_TargetCellOutsideGCA_Param(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param); return offset; } static const ber_sequence_t gsm_map_er_OngoingGroupCallParam_sequence[] = { { &hf_gsm_map_er_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_er_OngoingGroupCallParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_er_OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam); return offset; } /* --- Module MAP-SM-DataTypes --- --- --- */ static int dissect_gsm_map_sm_BOOLEAN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_sm_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static int dissect_gsm_map_sm_SM_RP_MTI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_sm_SM_RP_SMEA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *payload_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &payload_tvb); if (payload_tvb) { guint32 tvb_offset = 0; proto_item_set_hidden(actx->created_item); dis_field_addr(payload_tvb, actx->pinfo, tree, &tvb_offset, "SM-RP-SMEA"); } return offset; } static const value_string gsm_map_sm_SM_DeliveryNotIntended_vals[] = { { 0, "onlyIMSI-requested" }, { 1, "onlyMCC-MNC-requested" }, { 0, NULL } }; static int dissect_gsm_map_sm_SM_DeliveryNotIntended(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_sm_SIP_URI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_sm_CorrelationID_sequence[] = { { &hf_gsm_map_sm_hlr_id , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_HLR_Id }, { &hf_gsm_map_sm_sip_uri_A, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SIP_URI }, { &hf_gsm_map_sm_sip_uri_B, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SIP_URI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_CorrelationID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_CorrelationID_sequence, hf_index, ett_gsm_map_sm_CorrelationID); return offset; } static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Arg_sequence[] = { { &hf_gsm_map_sm_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_sm_RP_PRI, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_BOOLEAN }, { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_sm_RP_MTI, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_MTI }, { &hf_gsm_map_sm_sm_RP_SMEA, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_RP_SMEA }, { &hf_gsm_map_sm_sm_deliveryNotIntended, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryNotIntended }, { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_sm_t4_Trigger_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_singleAttemptDelivery, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID }, { &hf_gsm_map_sm_smsf_supportIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_RoutingInfoForSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg); return offset; } static const value_string gsm_map_sm_Additional_Number_vals[] = { { 0, "msc-Number" }, { 1, "sgsn-Number" }, { 0, NULL } }; static const ber_choice_t gsm_map_sm_Additional_Number_choice[] = { { 0, &hf_gsm_map_sm_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 1, &hf_gsm_map_sm_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_Additional_Number(bool implicit_tag _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, gsm_map_sm_Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number, NULL); return offset; } static const ber_sequence_t gsm_map_sm_LocationInfoWithLMSI_sequence[] = { { &hf_gsm_map_sm_networkNode_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_gprsNodeIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_additional_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number }, { &hf_gsm_map_sm_networkNodeDiameterAddress, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_thirdNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_Additional_Number }, { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_imsNodeIndicator, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_smsf_3gpp_Number, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_smsf_3gpp_DiameterAddress, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_smsf_non_3gpp_Number, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_smsf_3gpp_address_indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_smsf_non_3gpp_address_indicator, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_LocationInfoWithLMSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI); return offset; } static int dissect_gsm_map_sm_SM_DeliveryTimerValue(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_sm_IP_SM_GW_Guidance_sequence[] = { { &hf_gsm_map_sm_minimumDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue }, { &hf_gsm_map_sm_recommendedDeliveryTimeValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_IP_SM_GW_Guidance(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_IP_SM_GW_Guidance_sequence, hf_index, ett_gsm_map_sm_IP_SM_GW_Guidance); return offset; } static const ber_sequence_t gsm_map_sm_RoutingInfoForSM_Res_sequence[] = { { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_sm_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_LocationInfoWithLMSI }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_ip_sm_gwGuidance, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_IP_SM_GW_Guidance }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_RoutingInfoForSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res); return offset; } static int dissect_gsm_map_sm_T_imsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_SENT; offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI; gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_map_sm_T_lmsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_SENT; offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI; gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_map_sm_T_serviceCentreAddressDA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_RECV; offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS; gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_map_sm_T_noSM_RP_DA(bool implicit_tag _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, tree, tvb, offset, hf_index); if (!PINFO_FD_VISITED(actx->pinfo)) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE); gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx); if (prev_packet_info) { gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id; gsm_map_pi->sm_rp_da_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_da_str); } } return offset; } const value_string gsm_map_sm_SM_RP_DA_vals[] = { { 0, "imsi" }, { 1, "lmsi" }, { 4, "serviceCentreAddressDA" }, { 5, "noSM-RP-DA" }, { 0, NULL } }; static const ber_choice_t gsm_map_sm_SM_RP_DA_choice[] = { { 0, &hf_gsm_map_sm_imsi_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_imsi }, { 1, &hf_gsm_map_sm_lmsi_01 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_lmsi }, { 4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressDA }, { 5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_noSM_RP_DA }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_sm_SM_RP_DA(bool implicit_tag _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, gsm_map_sm_SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA, NULL); return offset; } static int dissect_gsm_map_sm_T_msisdn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->pinfo->p2p_dir = P2P_DIR_RECV; offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN; gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_map_sm_T_serviceCentreAddressOA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_SENT; offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS; gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_map_sm_T_noSM_RP_OA(bool implicit_tag _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, tree, tvb, offset, hf_index); if (!PINFO_FD_VISITED(actx->pinfo)) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE); gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx); if (prev_packet_info) { gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id; gsm_map_pi->sm_rp_oa_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_oa_str); } } return offset; } const value_string gsm_map_sm_SM_RP_OA_vals[] = { { 2, "msisdn" }, { 4, "serviceCentreAddressOA" }, { 5, "noSM-RP-OA" }, { 0, NULL } }; static const ber_choice_t gsm_map_sm_SM_RP_OA_choice[] = { { 2, &hf_gsm_map_sm_msisdn_01, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_msisdn }, { 4, &hf_gsm_map_sm_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_serviceCentreAddressOA }, { 5, &hf_gsm_map_sm_noSM_RP_OA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_T_noSM_RP_OA }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_sm_SM_RP_OA(bool implicit_tag _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, gsm_map_sm_SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA, NULL); return offset; } static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = { { 0, "memoryCapacityExceeded" }, { 1, "absentSubscriber" }, { 2, "successfulTransfer" }, { 0, NULL } }; static int dissect_gsm_map_sm_SM_DeliveryOutcome(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Arg_sequence[] = { { &hf_gsm_map_sm_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_DA }, { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA }, { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID }, { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_MO_ForwardSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_sm_MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { actx->pinfo->p2p_dir = P2P_DIR_RECV; } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static const ber_sequence_t gsm_map_sm_MO_ForwardSM_Res_sequence[] = { { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_MO_ForwardSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_sm_MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { actx->pinfo->p2p_dir = P2P_DIR_SENT; } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Arg_sequence[] = { { &hf_gsm_map_sm_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_DA }, { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA }, { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_sm_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_smDeliveryTimer, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryTimerValue }, { &hf_gsm_map_sm_smDeliveryStartTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time }, { &hf_gsm_map_sm_smsOverIP_OnlyIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID }, { &hf_gsm_map_sm_maximumRetransmissionTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time }, { &hf_gsm_map_sm_smsGmscAddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_smsGmscDiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_MT_ForwardSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_sm_MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { actx->pinfo->p2p_dir = P2P_DIR_SENT; } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static const ber_sequence_t gsm_map_sm_MT_ForwardSM_Res_sequence[] = { { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_MT_ForwardSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_sm_MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { actx->pinfo->p2p_dir = P2P_DIR_RECV; } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusArg_sequence[] = { { &hf_gsm_map_sm_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_sm_sm_DeliveryOutcome, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_SM_DeliveryOutcome }, { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_gprsSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_deliveryOutcomeIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome }, { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_ip_sm_gw_Indicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome }, { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_sm_singleAttemptDelivery, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_correlationID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_CorrelationID }, { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcome, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome }, { &hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SM_DeliveryOutcome }, { &hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg); return offset; } static const ber_sequence_t gsm_map_sm_ReportSM_DeliveryStatusRes_sequence[] = { { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes); return offset; } static const value_string gsm_map_sm_SmsGmsc_Alert_Event_vals[] = { { 0, "msAvailableForMtSms" }, { 1, "msUnderNewServingNode" }, { 0, NULL } }; static int dissect_gsm_map_sm_SmsGmsc_Alert_Event(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_sm_AlertServiceCentreArg_sequence[] = { { &hf_gsm_map_sm_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_serviceCentreAddress, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_sm_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_sm_correlationID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_CorrelationID }, { &hf_gsm_map_sm_maximumUeAvailabilityTime, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time }, { &hf_gsm_map_sm_smsGmscAlertEvent, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_SmsGmsc_Alert_Event }, { &hf_gsm_map_sm_smsGmscDiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_newSGSNNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_newSGSNDiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_newMMENumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_newMMEDiameterAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { &hf_gsm_map_sm_newMSCNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_AlertServiceCentreArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg); return offset; } static int * const gsm_map_sm_MW_Status_bits[] = { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, &hf_gsm_map_sm_MW_Status_mnrf_Set, &hf_gsm_map_sm_MW_Status_mcef_Set, &hf_gsm_map_sm_MW_Status_mnrg_Set, &hf_gsm_map_sm_MW_Status_mnr5g_Set, &hf_gsm_map_sm_MW_Status_mnr5gn3g_Set, NULL }; static int dissect_gsm_map_sm_MW_Status(bool implicit_tag _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, tree, tvb, offset, gsm_map_sm_MW_Status_bits, 6, hf_index, ett_gsm_map_sm_MW_Status, NULL); return offset; } static const ber_sequence_t gsm_map_sm_InformServiceCentreArg_sequence[] = { { &hf_gsm_map_sm_storedMSISDN, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_sm_mw_Status, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_MW_Status }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_InformServiceCentreArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg); return offset; } static const value_string gsm_map_sm_AlertReason_vals[] = { { 0, "ms-Present" }, { 1, "memoryAvailable" }, { 0, NULL } }; static int dissect_gsm_map_sm_AlertReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_sm_ReadyForSM_Arg_sequence[] = { { &hf_gsm_map_sm_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_sm_alertReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_AlertReason }, { &hf_gsm_map_sm_alertReasonIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_additionalAlertReasonIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_maximumUeAvailabilityTime, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_ReadyForSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg); return offset; } static const ber_sequence_t gsm_map_sm_ReadyForSM_Res_sequence[] = { { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_ReadyForSM_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_sm_ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res); return offset; } static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence[] = { { &hf_gsm_map_sm_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference }, { &hf_gsm_map_sm_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_sm_SM_RP_OA }, { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_sm_MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { actx->pinfo->p2p_dir = P2P_DIR_SENT; } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static const ber_sequence_t gsm_map_sm_DispatcherList_sequence_of[1] = { { &hf_gsm_map_sm_DispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, }; static int dissect_gsm_map_sm_DispatcherList(bool implicit_tag _U_, 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, gsm_map_sm_DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList); return offset; } static const ber_sequence_t gsm_map_sm_AdditionalDispatcherList_sequence_of[1] = { { &hf_gsm_map_sm_AdditionalDispatcherList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, }; static int dissect_gsm_map_sm_AdditionalDispatcherList(bool implicit_tag _U_, 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, gsm_map_sm_AdditionalDispatcherList_sequence_of, hf_index, ett_gsm_map_sm_AdditionalDispatcherList); return offset; } static const ber_sequence_t gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence[] = { { &hf_gsm_map_sm_sm_RP_UI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_sm_dispatcherList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_DispatcherList }, { &hf_gsm_map_sm_ongoingCall, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_sm_NULL }, { &hf_gsm_map_sm_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_sm_additionalDispatcherList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_AdditionalDispatcherList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_map_sm_MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { actx->pinfo->p2p_dir = P2P_DIR_RECV; } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } /* --- Module MAP-OM-DataTypes --- --- --- */ static int dissect_gsm_map_om_TraceReference(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_TraceType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_TraceReference2(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_TraceDepth_vals[] = { { 0, "minimum" }, { 1, "medium" }, { 2, "maximum" }, { 0, NULL } }; static int dissect_gsm_map_om_TraceDepth(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_TraceDepthExtension_vals[] = { { 0, "minimumWithoutVendorSpecificExtension" }, { 1, "mediumWithoutVendorSpecificExtension" }, { 2, "maximumWithoutVendorSpecificExtension" }, { 0, NULL } }; static int dissect_gsm_map_om_TraceDepthExtension(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_om_TraceDepthList_sequence[] = { { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_sgsn_TraceDepth, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_ggsn_TraceDepth, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_bmsc_TraceDepth, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_mme_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_sgw_TraceDepth, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_pgw_TraceDepth, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_eNB_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_sgsn_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_ggsn_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_bmsc_TraceDepthExtension, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_mme_TraceDepthExtension, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_sgw_TraceDepthExtension, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_pgw_TraceDepthExtension, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_eNB_TraceDepthExtension, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_TraceDepthList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList); return offset; } static int * const gsm_map_om_TraceNE_TypeList_bits[] = { &hf_gsm_map_om_TraceNE_TypeList_msc_s, &hf_gsm_map_om_TraceNE_TypeList_mgw, &hf_gsm_map_om_TraceNE_TypeList_sgsn, &hf_gsm_map_om_TraceNE_TypeList_ggsn, &hf_gsm_map_om_TraceNE_TypeList_rnc, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, &hf_gsm_map_om_TraceNE_TypeList_mme, &hf_gsm_map_om_TraceNE_TypeList_sgw, &hf_gsm_map_om_TraceNE_TypeList_pgw, &hf_gsm_map_om_TraceNE_TypeList_eNB, NULL }; static int dissect_gsm_map_om_TraceNE_TypeList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_TraceNE_TypeList_bits, 10, hf_index, ett_gsm_map_om_TraceNE_TypeList, NULL); return offset; } static int * const gsm_map_om_MSC_S_InterfaceList_bits[] = { &hf_gsm_map_om_MSC_S_InterfaceList_a, &hf_gsm_map_om_MSC_S_InterfaceList_iu, &hf_gsm_map_om_MSC_S_InterfaceList_mc, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, &hf_gsm_map_om_MSC_S_InterfaceList_cap, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, NULL }; static int dissect_gsm_map_om_MSC_S_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_MSC_S_InterfaceList_bits, 10, hf_index, ett_gsm_map_om_MSC_S_InterfaceList, NULL); return offset; } static int * const gsm_map_om_MGW_InterfaceList_bits[] = { &hf_gsm_map_om_MGW_InterfaceList_mc, &hf_gsm_map_om_MGW_InterfaceList_nb_up, &hf_gsm_map_om_MGW_InterfaceList_iu_up, NULL }; static int dissect_gsm_map_om_MGW_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_MGW_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_MGW_InterfaceList, NULL); return offset; } static int * const gsm_map_om_SGSN_InterfaceList_bits[] = { &hf_gsm_map_om_SGSN_InterfaceList_gb, &hf_gsm_map_om_SGSN_InterfaceList_iu, &hf_gsm_map_om_SGSN_InterfaceList_gn, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, &hf_gsm_map_om_SGSN_InterfaceList_gs, &hf_gsm_map_om_SGSN_InterfaceList_ge, &hf_gsm_map_om_SGSN_InterfaceList_s3, &hf_gsm_map_om_SGSN_InterfaceList_s4, &hf_gsm_map_om_SGSN_InterfaceList_s6d, NULL }; static int dissect_gsm_map_om_SGSN_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_SGSN_InterfaceList_bits, 11, hf_index, ett_gsm_map_om_SGSN_InterfaceList, NULL); return offset; } static int * const gsm_map_om_GGSN_InterfaceList_bits[] = { &hf_gsm_map_om_GGSN_InterfaceList_gn, &hf_gsm_map_om_GGSN_InterfaceList_gi, &hf_gsm_map_om_GGSN_InterfaceList_gmb, NULL }; static int dissect_gsm_map_om_GGSN_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_GGSN_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_GGSN_InterfaceList, NULL); return offset; } static int * const gsm_map_om_RNC_InterfaceList_bits[] = { &hf_gsm_map_om_RNC_InterfaceList_iu, &hf_gsm_map_om_RNC_InterfaceList_iur, &hf_gsm_map_om_RNC_InterfaceList_iub, &hf_gsm_map_om_RNC_InterfaceList_uu, NULL }; static int dissect_gsm_map_om_RNC_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_RNC_InterfaceList_bits, 4, hf_index, ett_gsm_map_om_RNC_InterfaceList, NULL); return offset; } static int * const gsm_map_om_BMSC_InterfaceList_bits[] = { &hf_gsm_map_om_BMSC_InterfaceList_gmb, NULL }; static int dissect_gsm_map_om_BMSC_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_BMSC_InterfaceList_bits, 1, hf_index, ett_gsm_map_om_BMSC_InterfaceList, NULL); return offset; } static int * const gsm_map_om_MME_InterfaceList_bits[] = { &hf_gsm_map_om_MME_InterfaceList_s1_mme, &hf_gsm_map_om_MME_InterfaceList_s3, &hf_gsm_map_om_MME_InterfaceList_s6a, &hf_gsm_map_om_MME_InterfaceList_s10, &hf_gsm_map_om_MME_InterfaceList_s11, NULL }; static int dissect_gsm_map_om_MME_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_MME_InterfaceList_bits, 5, hf_index, ett_gsm_map_om_MME_InterfaceList, NULL); return offset; } static int * const gsm_map_om_SGW_InterfaceList_bits[] = { &hf_gsm_map_om_SGW_InterfaceList_s4, &hf_gsm_map_om_SGW_InterfaceList_s5, &hf_gsm_map_om_SGW_InterfaceList_s8b, &hf_gsm_map_om_SGW_InterfaceList_s11, &hf_gsm_map_om_SGW_InterfaceList_gxc, NULL }; static int dissect_gsm_map_om_SGW_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_SGW_InterfaceList_bits, 5, hf_index, ett_gsm_map_om_SGW_InterfaceList, NULL); return offset; } static int * const gsm_map_om_PGW_InterfaceList_bits[] = { &hf_gsm_map_om_PGW_InterfaceList_s2a, &hf_gsm_map_om_PGW_InterfaceList_s2b, &hf_gsm_map_om_PGW_InterfaceList_s2c, &hf_gsm_map_om_PGW_InterfaceList_s5, &hf_gsm_map_om_PGW_InterfaceList_s6b, &hf_gsm_map_om_PGW_InterfaceList_gx, &hf_gsm_map_om_PGW_InterfaceList_s8b, &hf_gsm_map_om_PGW_InterfaceList_sgi, NULL }; static int dissect_gsm_map_om_PGW_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_PGW_InterfaceList_bits, 8, hf_index, ett_gsm_map_om_PGW_InterfaceList, NULL); return offset; } static int * const gsm_map_om_ENB_InterfaceList_bits[] = { &hf_gsm_map_om_ENB_InterfaceList_s1_mme, &hf_gsm_map_om_ENB_InterfaceList_x2, &hf_gsm_map_om_ENB_InterfaceList_uu, NULL }; static int dissect_gsm_map_om_ENB_InterfaceList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_ENB_InterfaceList_bits, 3, hf_index, ett_gsm_map_om_ENB_InterfaceList, NULL); return offset; } static const ber_sequence_t gsm_map_om_TraceInterfaceList_sequence[] = { { &hf_gsm_map_om_msc_s_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList }, { &hf_gsm_map_om_mgw_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList }, { &hf_gsm_map_om_sgsn_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_InterfaceList }, { &hf_gsm_map_om_ggsn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_InterfaceList }, { &hf_gsm_map_om_rnc_List , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList }, { &hf_gsm_map_om_bmsc_List, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_InterfaceList }, { &hf_gsm_map_om_mme_List , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_InterfaceList }, { &hf_gsm_map_om_sgw_List , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_InterfaceList }, { &hf_gsm_map_om_pgw_List , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_InterfaceList }, { &hf_gsm_map_om_eNB_List , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ENB_InterfaceList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_TraceInterfaceList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList); return offset; } static int * const gsm_map_om_MSC_S_EventList_bits[] = { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, &hf_gsm_map_om_MSC_S_EventList_handovers, &hf_gsm_map_om_MSC_S_EventList_ss, NULL }; static int dissect_gsm_map_om_MSC_S_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_MSC_S_EventList_bits, 5, hf_index, ett_gsm_map_om_MSC_S_EventList, NULL); return offset; } static int * const gsm_map_om_MGW_EventList_bits[] = { &hf_gsm_map_om_MGW_EventList_context, NULL }; static int dissect_gsm_map_om_MGW_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_MGW_EventList_bits, 1, hf_index, ett_gsm_map_om_MGW_EventList, NULL); return offset; } static int * const gsm_map_om_SGSN_EventList_bits[] = { &hf_gsm_map_om_SGSN_EventList_pdpContext, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, &hf_gsm_map_om_SGSN_EventList_mbmsContext, NULL }; static int dissect_gsm_map_om_SGSN_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_SGSN_EventList_bits, 4, hf_index, ett_gsm_map_om_SGSN_EventList, NULL); return offset; } static int * const gsm_map_om_GGSN_EventList_bits[] = { &hf_gsm_map_om_GGSN_EventList_pdpContext, &hf_gsm_map_om_GGSN_EventList_mbmsContext, NULL }; static int dissect_gsm_map_om_GGSN_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_GGSN_EventList_bits, 2, hf_index, ett_gsm_map_om_GGSN_EventList, NULL); return offset; } static int * const gsm_map_om_BMSC_EventList_bits[] = { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, NULL }; static int dissect_gsm_map_om_BMSC_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_BMSC_EventList_bits, 1, hf_index, ett_gsm_map_om_BMSC_EventList, NULL); return offset; } static int * const gsm_map_om_MME_EventList_bits[] = { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest, &hf_gsm_map_om_MME_EventList_serviceRequestts, &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach, &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection, &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion, &hf_gsm_map_om_MME_EventList_handover, NULL }; static int dissect_gsm_map_om_MME_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_MME_EventList_bits, 6, hf_index, ett_gsm_map_om_MME_EventList, NULL); return offset; } static int * const gsm_map_om_SGW_EventList_bits[] = { &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation, &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination, &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion, NULL }; static int dissect_gsm_map_om_SGW_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_SGW_EventList_bits, 3, hf_index, ett_gsm_map_om_SGW_EventList, NULL); return offset; } static int * const gsm_map_om_PGW_EventList_bits[] = { &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation, &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination, &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion, NULL }; static int dissect_gsm_map_om_PGW_EventList(bool implicit_tag _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, tree, tvb, offset, gsm_map_om_PGW_EventList_bits, 3, hf_index, ett_gsm_map_om_PGW_EventList, NULL); return offset; } static const ber_sequence_t gsm_map_om_TraceEventList_sequence[] = { { &hf_gsm_map_om_msc_s_List_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList }, { &hf_gsm_map_om_mgw_List_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList }, { &hf_gsm_map_om_sgsn_List_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGSN_EventList }, { &hf_gsm_map_om_ggsn_List_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_GGSN_EventList }, { &hf_gsm_map_om_bmsc_List_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_BMSC_EventList }, { &hf_gsm_map_om_mme_List_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MME_EventList }, { &hf_gsm_map_om_sgw_List_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_SGW_EventList }, { &hf_gsm_map_om_pgw_List_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PGW_EventList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_TraceEventList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList); return offset; } static const value_string gsm_map_om_JobType_vals[] = { { 0, "immediate-MDT-only" }, { 1, "logged-MDT-only" }, { 2, "trace-only" }, { 3, "immediate-MDT-and-trace" }, { 0, NULL } }; static int dissect_gsm_map_om_JobType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_om_CGI_List_sequence_of[1] = { { &hf_gsm_map_om_CGI_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId }, }; static int dissect_gsm_map_om_CGI_List(bool implicit_tag _U_, 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, gsm_map_om_CGI_List_sequence_of, hf_index, ett_gsm_map_om_CGI_List); return offset; } static const ber_sequence_t gsm_map_om_E_UTRAN_CGI_List_sequence_of[1] = { { &hf_gsm_map_om_E_UTRAN_CGI_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_E_UTRAN_CGI }, }; static int dissect_gsm_map_om_E_UTRAN_CGI_List(bool implicit_tag _U_, 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, gsm_map_om_E_UTRAN_CGI_List_sequence_of, hf_index, ett_gsm_map_om_E_UTRAN_CGI_List); return offset; } static const ber_sequence_t gsm_map_om_RoutingAreaId_List_sequence_of[1] = { { &hf_gsm_map_om_RoutingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_RAIdentity }, }; static int dissect_gsm_map_om_RoutingAreaId_List(bool implicit_tag _U_, 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, gsm_map_om_RoutingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_RoutingAreaId_List); return offset; } static const ber_sequence_t gsm_map_om_LocationAreaId_List_sequence_of[1] = { { &hf_gsm_map_om_LocationAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LAIFixedLength }, }; static int dissect_gsm_map_om_LocationAreaId_List(bool implicit_tag _U_, 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, gsm_map_om_LocationAreaId_List_sequence_of, hf_index, ett_gsm_map_om_LocationAreaId_List); return offset; } static const ber_sequence_t gsm_map_om_TrackingAreaId_List_sequence_of[1] = { { &hf_gsm_map_om_TrackingAreaId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TA_Id }, }; static int dissect_gsm_map_om_TrackingAreaId_List(bool implicit_tag _U_, 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, gsm_map_om_TrackingAreaId_List_sequence_of, hf_index, ett_gsm_map_om_TrackingAreaId_List); return offset; } static const ber_sequence_t gsm_map_om_AreaScope_sequence[] = { { &hf_gsm_map_om_cgi_List , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_CGI_List }, { &hf_gsm_map_om_e_utran_cgi_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_E_UTRAN_CGI_List }, { &hf_gsm_map_om_routingAreaId_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RoutingAreaId_List }, { &hf_gsm_map_om_locationAreaId_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LocationAreaId_List }, { &hf_gsm_map_om_trackingAreaId_List, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TrackingAreaId_List }, { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_AreaScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_AreaScope_sequence, hf_index, ett_gsm_map_om_AreaScope); return offset; } static int dissect_gsm_map_om_ListOfMeasurements(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_ReportingTrigger(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_ReportInterval_vals[] = { { 0, "umts250ms" }, { 1, "umts500ms" }, { 2, "umts1000ms" }, { 3, "umts2000ms" }, { 4, "umts3000ms" }, { 5, "umts4000ms" }, { 6, "umts6000ms" }, { 7, "umts8000ms" }, { 8, "umts12000ms" }, { 9, "umts16000ms" }, { 10, "umts20000ms" }, { 11, "umts24000ms" }, { 12, "umts28000ms" }, { 13, "umts32000ms" }, { 14, "umts64000ms" }, { 15, "lte120ms" }, { 16, "lte240ms" }, { 17, "lte480ms" }, { 18, "lte640ms" }, { 19, "lte1024ms" }, { 20, "lte2048ms" }, { 21, "lte5120ms" }, { 22, "lte10240ms" }, { 23, "lte1min" }, { 24, "lte6min" }, { 25, "lte12min" }, { 26, "lte30min" }, { 27, "lte60min" }, { 0, NULL } }; static int dissect_gsm_map_om_ReportInterval(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_ReportAmount_vals[] = { { 0, "d1" }, { 1, "d2" }, { 2, "d4" }, { 3, "d8" }, { 4, "d16" }, { 5, "d32" }, { 6, "d64" }, { 7, "infinity" }, { 0, NULL } }; static int dissect_gsm_map_om_ReportAmount(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_EventThresholdRSRP(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_EventThresholdRSRQ(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_LoggingInterval_vals[] = { { 0, "d1dot28" }, { 1, "d2dot56" }, { 2, "d5dot12" }, { 3, "d10dot24" }, { 4, "d20dot48" }, { 5, "d30dot72" }, { 6, "d40dot96" }, { 7, "d61dot44" }, { 0, NULL } }; static int dissect_gsm_map_om_LoggingInterval(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_LoggingDuration_vals[] = { { 0, "d600sec" }, { 1, "d1200sec" }, { 2, "d2400sec" }, { 3, "d3600sec" }, { 4, "d5400sec" }, { 5, "d7200sec" }, { 0, NULL } }; static int dissect_gsm_map_om_LoggingDuration(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_PeriodUMTS_vals[] = { { 0, "d250ms" }, { 1, "d500ms" }, { 2, "d1000ms" }, { 3, "d2000ms" }, { 4, "d3000ms" }, { 5, "d4000ms" }, { 6, "d6000ms" }, { 7, "d8000ms" }, { 8, "d12000ms" }, { 9, "d16000ms" }, { 10, "d20000ms" }, { 11, "d24000ms" }, { 12, "d28000ms" }, { 13, "d32000ms" }, { 14, "d64000ms" }, { 0, NULL } }; static int dissect_gsm_map_om_PeriodUMTS(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_om_PeriodLTE_vals[] = { { 0, "d1024ms" }, { 1, "d1280ms" }, { 2, "d2048ms" }, { 3, "d2560ms" }, { 4, "d5120ms" }, { 5, "d10240ms" }, { 6, "d1min" }, { 0, NULL } }; static int dissect_gsm_map_om_PeriodLTE(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_PositioningMethod(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_MeasurementQuantity(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_EventThreshold1F(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_om_EventThreshold1I(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_om_MDT_Allowed_PLMNId_List_sequence_of[1] = { { &hf_gsm_map_om_MDT_Allowed_PLMNId_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id }, }; static int dissect_gsm_map_om_MDT_Allowed_PLMNId_List(bool implicit_tag _U_, 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, gsm_map_om_MDT_Allowed_PLMNId_List_sequence_of, hf_index, ett_gsm_map_om_MDT_Allowed_PLMNId_List); return offset; } static const ber_sequence_t gsm_map_om_MDT_Configuration_sequence[] = { { &hf_gsm_map_om_jobType , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_JobType }, { &hf_gsm_map_om_areaScope, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_AreaScope }, { &hf_gsm_map_om_listOfMeasurements, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ListOfMeasurements }, { &hf_gsm_map_om_reportingTrigger, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportingTrigger }, { &hf_gsm_map_om_reportInterval, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_ReportInterval }, { &hf_gsm_map_om_reportAmount, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_ReportAmount }, { &hf_gsm_map_om_eventThresholdRSRP, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_om_EventThresholdRSRP }, { &hf_gsm_map_om_eventThresholdRSRQ, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThresholdRSRQ }, { &hf_gsm_map_om_loggingInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingInterval }, { &hf_gsm_map_om_loggingDuration, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_LoggingDuration }, { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_om_measurementPeriodUMTS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodUMTS }, { &hf_gsm_map_om_measurementPeriodLTE, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodLTE }, { &hf_gsm_map_om_collectionPeriodRRM_UMTS, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodUMTS }, { &hf_gsm_map_om_collectionPeriodRRM_LTE, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PeriodLTE }, { &hf_gsm_map_om_positioningMethod, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_PositioningMethod }, { &hf_gsm_map_om_measurementQuantity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MeasurementQuantity }, { &hf_gsm_map_om_eventThreshold1F, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThreshold1F }, { &hf_gsm_map_om_eventThreshold1I, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_EventThreshold1I }, { &hf_gsm_map_om_mdt_Allowed_PLMN_List, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MDT_Allowed_PLMNId_List }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_MDT_Configuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_MDT_Configuration_sequence, hf_index, ett_gsm_map_om_MDT_Configuration); return offset; } static const ber_sequence_t gsm_map_om_ActivateTraceModeArg_sequence[] = { { &hf_gsm_map_om_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference }, { &hf_gsm_map_om_traceType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType }, { &hf_gsm_map_om_omc_Id , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 }, { &hf_gsm_map_om_traceDepthList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthList }, { &hf_gsm_map_om_traceNE_TypeList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceNE_TypeList }, { &hf_gsm_map_om_traceInterfaceList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceInterfaceList }, { &hf_gsm_map_om_traceEventList, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceEventList }, { &hf_gsm_map_om_traceCollectionEntity, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_om_mdt_Configuration, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MDT_Configuration }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_ActivateTraceModeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg); return offset; } static int dissect_gsm_map_om_TraceRecordingSessionReference(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_om_TracePropagationList_sequence[] = { { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference }, { &hf_gsm_map_om_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType }, { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 }, { &hf_gsm_map_om_traceRecordingSessionReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceRecordingSessionReference }, { &hf_gsm_map_om_rnc_TraceDepth, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_rnc_InterfaceList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_RNC_InterfaceList }, { &hf_gsm_map_om_msc_s_TraceDepth, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_msc_s_InterfaceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_InterfaceList }, { &hf_gsm_map_om_msc_s_EventList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MSC_S_EventList }, { &hf_gsm_map_om_mgw_TraceDepth, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepth }, { &hf_gsm_map_om_mgw_InterfaceList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_InterfaceList }, { &hf_gsm_map_om_mgw_EventList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_MGW_EventList }, { &hf_gsm_map_om_rnc_TraceDepthExtension, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_msc_s_TraceDepthExtension, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { &hf_gsm_map_om_mgw_TraceDepthExtension, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceDepthExtension }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_TracePropagationList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList); return offset; } static int dissect_gsm_map_om_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_om_ActivateTraceModeRes_sequence[] = { { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_om_traceSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_ActivateTraceModeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes); return offset; } static const ber_sequence_t gsm_map_om_DeactivateTraceModeArg_sequence[] = { { &hf_gsm_map_om_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_om_traceReference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference }, { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_om_traceReference2, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference2 }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_DeactivateTraceModeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg); return offset; } static const ber_sequence_t gsm_map_om_DeactivateTraceModeRes_sequence[] = { { &hf_gsm_map_om_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_om_DeactivateTraceModeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_om_DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes); return offset; } /* --- Module MAP-MS-DataTypes --- --- --- */ static int * const gsm_map_ms_SupportedCamelPhases_bits[] = { &hf_gsm_map_ms_SupportedCamelPhases_phase1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, NULL }; int dissect_gsm_map_ms_SupportedCamelPhases(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_SupportedCamelPhases_bits, 4, hf_index, ett_gsm_map_ms_SupportedCamelPhases, NULL); return offset; } static int dissect_gsm_map_ms_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = { { 0, "basicISTSupported" }, { 1, "istCommandSupported" }, { 0, NULL } }; static int dissect_gsm_map_ms_IST_SupportIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_AgeIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_SuperChargerInfo_vals[] = { { 0, "sendSubscriberData" }, { 1, "subscriberDataStored" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_SuperChargerInfo_choice[] = { { 0, &hf_gsm_map_ms_sendSubscriberData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 1, &hf_gsm_map_ms_subscriberDataStored, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SuperChargerInfo(bool implicit_tag _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, gsm_map_ms_SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo, NULL); return offset; } static int * const gsm_map_ms_SupportedLCS_CapabilitySets_bits[] = { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, NULL }; static int dissect_gsm_map_ms_SupportedLCS_CapabilitySets(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_SupportedLCS_CapabilitySets_bits, 5, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets, NULL); return offset; } static int * const gsm_map_ms_OfferedCamel4CSIs_bits[] = { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, NULL }; static int dissect_gsm_map_ms_OfferedCamel4CSIs(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_OfferedCamel4CSIs_bits, 7, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs, NULL); return offset; } static int * const gsm_map_ms_SupportedRAT_Types_bits[] = { &hf_gsm_map_ms_SupportedRAT_Types_utran, &hf_gsm_map_ms_SupportedRAT_Types_geran, &hf_gsm_map_ms_SupportedRAT_Types_gan, &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution, &hf_gsm_map_ms_SupportedRAT_Types_e_utran, &hf_gsm_map_ms_SupportedRAT_Types_nb_iot, NULL }; static int dissect_gsm_map_ms_SupportedRAT_Types(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_SupportedRAT_Types_bits, 6, hf_index, ett_gsm_map_ms_SupportedRAT_Types, NULL); return offset; } static const ber_sequence_t gsm_map_ms_VLR_Capability_sequence[] = { { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_istSupportIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator }, { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo }, { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets }, { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types }, { &hf_gsm_map_ms_longGroupID_Supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_reset_ids_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_VLR_Capability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability); return offset; } static const ber_sequence_t gsm_map_ms_ADD_Info_sequence[] = { { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ADD_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info); return offset; } static int dissect_gsm_map_ms_LAC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb = NULL; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, -1, ¶meter_tvb); if (parameter_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN); } return offset; } static const value_string gsm_map_ms_LocationArea_vals[] = { { 0, "laiFixedLength" }, { 1, "lac" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_LocationArea_choice[] = { { 0, &hf_gsm_map_ms_laiFixedLength, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength }, { 1, &hf_gsm_map_ms_lac , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LAC }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LocationArea(bool implicit_tag _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, gsm_map_ms_LocationArea_choice, hf_index, ett_gsm_map_ms_LocationArea, NULL); return offset; } static const ber_sequence_t gsm_map_ms_PagingArea_sequence_of[1] = { { &hf_gsm_map_ms_PagingArea_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LocationArea }, }; static int dissect_gsm_map_ms_PagingArea(bool implicit_tag _U_, 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, gsm_map_ms_PagingArea_sequence_of, hf_index, ett_gsm_map_ms_PagingArea); return offset; } static const ber_sequence_t gsm_map_ms_EPLMN_List_sequence_of[1] = { { &hf_gsm_map_ms_EPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id }, }; static int dissect_gsm_map_ms_EPLMN_List(bool implicit_tag _U_, 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, gsm_map_ms_EPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_EPLMN_List); return offset; } static const ber_sequence_t gsm_map_ms_UpdateLocationArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_vlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_lmsi , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability }, { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info }, { &hf_gsm_map_ms_pagingArea, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea }, { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List }, { &hf_gsm_map_ms_mme_DiameterAddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UpdateLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg); return offset; } static const ber_sequence_t gsm_map_ms_UpdateLocationRes_sequence[] = { { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_pagingArea_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UpdateLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes); return offset; } static const value_string gsm_map_ms_CancellationType_vals[] = { { 0, "updateProcedure" }, { 1, "subscriptionWithdraw" }, { 2, "initialAttachProcedure" }, { 0, NULL } }; static int dissect_gsm_map_ms_CancellationType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_TypeOfUpdate_vals[] = { { 0, "sgsn-change" }, { 1, "mme-change" }, { 0, NULL } }; static int dissect_gsm_map_ms_TypeOfUpdate(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_CancelLocationArg_U_sequence[] = { { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity }, { &hf_gsm_map_ms_cancellationType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CancellationType }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_typeOfUpdate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TypeOfUpdate }, { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_newMSC_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_ms_reattach_Required, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CancelLocationArg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U); return offset; } static int dissect_gsm_map_ms_CancelLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_CancelLocationArg_U); return offset; } static const ber_sequence_t gsm_map_ms_CancelLocationRes_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CancelLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes); return offset; } int dissect_gsm_map_ms_GeographicalInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation); dissect_geographical_description(parameter_tvb, actx->pinfo, subtree); return offset; } static int dissect_gsm_map_ms_LocationNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LocationNumber); dissect_isup_location_number_parameter(parameter_tvb, actx->pinfo, subtree, NULL); return offset; } int dissect_gsm_map_ms_LSAIdentity(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_GeodeticInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeodeticInformation); dissect_isup_calling_geodetic_location_parameter(parameter_tvb, actx->pinfo, subtree, NULL); return offset; } static const ber_sequence_t gsm_map_ms_LocationInformationEPS_sequence[] = { { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI }, { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation }, { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation }, { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LocationInformationEPS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LocationInformationEPS_sequence, hf_index, ett_gsm_map_ms_LocationInformationEPS); return offset; } static int dissect_gsm_map_ms_CSG_Id(bool implicit_tag _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, tree, tvb, offset, NULL, 0, hf_index, -1, NULL); return offset; } static int dissect_gsm_map_ms_OCTET_STRING_SIZE_1(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_UserCSGInformation_sequence[] = { { &hf_gsm_map_ms_csg_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_Id }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_accessMode, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 }, { &hf_gsm_map_ms_cmi , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OCTET_STRING_SIZE_1 }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UserCSGInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UserCSGInformation_sequence, hf_index, ett_gsm_map_ms_UserCSGInformation); return offset; } static const ber_sequence_t gsm_map_ms_LocationInformation_sequence[] = { { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation }, { &hf_gsm_map_ms_vlr_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_locationNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationNumber }, { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_selectedLSA_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity }, { &hf_gsm_map_ms_msc_Number, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation }, { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS }, { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ms_LocationInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation); return offset; } static const ber_sequence_t gsm_map_ms_LocationInformationGPRS_sequence[] = { { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI }, { &hf_gsm_map_ms_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_RAIdentity }, { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation }, { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_sai_Present, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation }, { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_map_ms_userCSGInformation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UserCSGInformation }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LocationInformationGPRS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS); return offset; } static const ber_sequence_t gsm_map_ms_PurgeMS_Arg_U_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS }, { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PurgeMS_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U); return offset; } static int dissect_gsm_map_ms_PurgeMS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PurgeMS_Arg_U); return offset; } static const ber_sequence_t gsm_map_ms_PurgeMS_Res_sequence[] = { { &hf_gsm_map_ms_freezeTMSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_freezeP_TMSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_freezeM_TMSI, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PurgeMS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res); return offset; } static int dissect_gsm_map_ms_NumberOfRequestedVectors(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_HopCounter(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SendIdentificationArg_sequence[] = { { &hf_gsm_map_ms_tmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_TMSI }, { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors }, { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_msc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_previous_LAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength }, { &hf_gsm_map_ms_hopCounter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_HopCounter }, { &hf_gsm_map_ms_mtRoamingForwardingSupported, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_newVLR_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_new_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendIdentificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg); return offset; } static int dissect_gsm_map_ms_RAND(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_SRES(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_Kc(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AuthenticationTriplet_sequence[] = { { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND }, { &hf_gsm_map_ms_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SRES }, { &hf_gsm_map_ms_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AuthenticationTriplet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet); return offset; } static const ber_sequence_t gsm_map_ms_TripletList_sequence_of[1] = { { &hf_gsm_map_ms_TripletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationTriplet }, }; static int dissect_gsm_map_ms_TripletList(bool implicit_tag _U_, 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, gsm_map_ms_TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList); return offset; } static int dissect_gsm_map_ms_XRES(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_CK(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_IK(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_AUTN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AuthenticationQuintuplet_sequence[] = { { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND }, { &hf_gsm_map_ms_xres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES }, { &hf_gsm_map_ms_ck , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK }, { &hf_gsm_map_ms_ik , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK }, { &hf_gsm_map_ms_autn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AuthenticationQuintuplet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet); return offset; } static const ber_sequence_t gsm_map_ms_QuintupletList_sequence_of[1] = { { &hf_gsm_map_ms_QuintupletList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AuthenticationQuintuplet }, }; static int dissect_gsm_map_ms_QuintupletList(bool implicit_tag _U_, 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, gsm_map_ms_QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList); return offset; } static const value_string gsm_map_ms_AuthenticationSetList_vals[] = { { 0, "tripletList" }, { 1, "quintupletList" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_AuthenticationSetList_choice[] = { { 0, &hf_gsm_map_ms_tripletList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList }, { 1, &hf_gsm_map_ms_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AuthenticationSetList(bool implicit_tag _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, gsm_map_ms_AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList, NULL); return offset; } static int dissect_gsm_map_ms_Cksn(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_GSM_SecurityContextData_sequence[] = { { &hf_gsm_map_ms_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Kc }, { &hf_gsm_map_ms_cksn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Cksn }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_GSM_SecurityContextData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData); return offset; } static int dissect_gsm_map_ms_KSI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_UMTS_SecurityContextData_sequence[] = { { &hf_gsm_map_ms_ck , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CK }, { &hf_gsm_map_ms_ik , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IK }, { &hf_gsm_map_ms_ksi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UMTS_SecurityContextData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData); return offset; } static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = { { 0, "gsm-SecurityContextData" }, { 1, "umts-SecurityContextData" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_CurrentSecurityContext_choice[] = { { 0, &hf_gsm_map_ms_gsm_SecurityContextData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSM_SecurityContextData }, { 1, &hf_gsm_map_ms_umts_SecurityContextData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UMTS_SecurityContextData }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CurrentSecurityContext(bool implicit_tag _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, gsm_map_ms_CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SendIdentificationRes_U_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_authenticationSetList, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_AuthenticationSetList }, { &hf_gsm_map_ms_currentSecurityContext, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_CurrentSecurityContext }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_lastUsedLtePLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { &hf_gsm_map_ms_mtCallPendingFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendIdentificationRes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U); return offset; } static int dissect_gsm_map_ms_SendIdentificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendIdentificationRes_U); return offset; } static int dissect_gsm_map_ms_AUTS(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_FailureCause_vals[] = { { 0, "wrongUserResponse" }, { 1, "wrongNetworkSignature" }, { 0, NULL } }; static int dissect_gsm_map_ms_FailureCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_BOOLEAN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_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_ms_AccessType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_failureCause, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_FailureCause }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_re_attempt, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BOOLEAN }, { &hf_gsm_map_ms_accessType, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AccessType }, { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND }, { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AuthenticationFailureReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg); return offset; } static const ber_sequence_t gsm_map_ms_AuthenticationFailureReportRes_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AuthenticationFailureReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes); return offset; } static int * const gsm_map_ms_SupportedFeatures_bits[] = { &hf_gsm_map_ms_SupportedFeatures_odb_all_apn, &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN, &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN, &hf_gsm_map_ms_SupportedFeatures_odb_all_og, &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og, &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country, &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og, &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country, &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country, &hf_gsm_map_ms_SupportedFeatures_regSub, &hf_gsm_map_ms_SupportedFeatures_trace, &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep, &hf_gsm_map_ms_SupportedFeatures_lcs_universal, &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated, &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated, &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator, &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType, &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS, &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation, &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation, &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty, &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp, &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls, &hf_gsm_map_ms_SupportedFeatures_baoc, &hf_gsm_map_ms_SupportedFeatures_boic, &hf_gsm_map_ms_SupportedFeatures_boicExHC, &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval, &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn, &hf_gsm_map_ms_SupportedFeatures_smsInMME, &hf_gsm_map_ms_SupportedFeatures_smsInSGSN, &hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification, &hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval, &hf_gsm_map_ms_SupportedFeatures_partialPurge, &hf_gsm_map_ms_SupportedFeatures_gddInSGSN, &hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability, &hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration, &hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks, &hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs, &hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs, &hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT, NULL }; static int dissect_gsm_map_ms_SupportedFeatures(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_SupportedFeatures_bits, 40, hf_index, ett_gsm_map_ms_SupportedFeatures, NULL); return offset; } static int * const gsm_map_ms_Ext_SupportedFeatures_bits[] = { &hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT, NULL }; static int dissect_gsm_map_ms_Ext_SupportedFeatures(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_Ext_SupportedFeatures_bits, 1, hf_index, ett_gsm_map_ms_Ext_SupportedFeatures, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SGSN_Capability_sequence[] = { { &hf_gsm_map_ms_solsaSupportIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SuperChargerInfo }, { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ms_supportedLCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets }, { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ms_smsCallBarringSupportIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_supportedRAT_TypesIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedRAT_Types }, { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures }, { &hf_gsm_map_ms_t_adsDataRetrieval, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN }, { &hf_gsm_map_ms_cancellationTypeInitialAttach, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_msisdn_lessOperation_Supported, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_reset_ids_Supported, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ext_SupportedFeatures, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SupportedFeatures }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SGSN_Capability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability); return offset; } static int dissect_gsm_map_ms_APN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; const guint8 *apn_str = NULL; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_apn_str); proto_tree_add_item_ret_string(subtree, hf_gsm_apn_str, parameter_tvb, 0, -1, ENC_APN_STR | ENC_NA, actx->pinfo->pool, &apn_str); proto_item_append_text(actx->created_item, " - %s", apn_str); return offset; } static int dissect_gsm_map_ms_PDP_Address(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_FQDN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_PDN_GW_Identity_sequence[] = { { &hf_gsm_map_ms_pdn_gw_ipv4_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_pdn_gw_ipv6_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_pdn_gw_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PDN_GW_Identity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PDN_GW_Identity_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Identity); return offset; } static int dissect_gsm_map_ms_ContextId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_PDN_GW_Update_sequence[] = { { &hf_gsm_map_ms_apn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity }, { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PDN_GW_Update(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PDN_GW_Update_sequence, hf_index, ett_gsm_map_ms_PDN_GW_Update); return offset; } static int * const gsm_map_ms_ISR_Information_bits[] = { &hf_gsm_map_ms_ISR_Information_updateLocation, &hf_gsm_map_ms_ISR_Information_cancelSGSN, &hf_gsm_map_ms_ISR_Information_initialAttachIndicator, NULL }; static int dissect_gsm_map_ms_ISR_Information(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_ISR_Information_bits, 3, hf_index, ett_gsm_map_ms_ISR_Information, NULL); return offset; } static const value_string gsm_map_ms_EPS_Info_vals[] = { { 0, "pdn-gw-update" }, { 1, "isr-Information" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_EPS_Info_choice[] = { { 0, &hf_gsm_map_ms_pdn_gw_update, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Update }, { 1, &hf_gsm_map_ms_isr_Information, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ISR_Information }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EPS_Info(bool implicit_tag _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, gsm_map_ms_EPS_Info_choice, hf_index, ett_gsm_map_ms_EPS_Info, NULL); return offset; } static const value_string gsm_map_ms_Used_RAT_Type_vals[] = { { 0, "utran" }, { 1, "geran" }, { 2, "gan" }, { 3, "i-hspa-evolution" }, { 4, "e-utran" }, { 5, "nb-iot" }, { 0, NULL } }; static int dissect_gsm_map_ms_Used_RAT_Type(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_UE_SRVCC_Capability_vals[] = { { 0, "ue-srvcc-not-supported" }, { 1, "ue-srvcc-supported" }, { 0, NULL } }; static int dissect_gsm_map_ms_UE_SRVCC_Capability(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_SMSRegisterRequest_vals[] = { { 0, "sms-registration-required" }, { 1, "sms-registration-not-preferred" }, { 2, "no-preference" }, { 0, NULL } }; static int dissect_gsm_map_ms_SMSRegisterRequest(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AdjacentPLMN_List_sequence_of[1] = { { &hf_gsm_map_ms_AdjacentPLMN_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_PLMN_Id }, }; static int dissect_gsm_map_ms_AdjacentPLMN_List(bool implicit_tag _U_, 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, gsm_map_ms_AdjacentPLMN_List_sequence_of, hf_index, ett_gsm_map_ms_AdjacentPLMN_List); return offset; } static const ber_sequence_t gsm_map_ms_UpdateGprsLocationArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_sgsn_Capability, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_Capability }, { &hf_gsm_map_ms_informPreviousNetworkEntity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info }, { &hf_gsm_map_ms_eps_info , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_Info }, { &hf_gsm_map_ms_servingNodeTypeIndicator, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_skipSubscriberDataUpdate, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_usedRAT_Type, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type }, { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_nodeTypeIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_areaRestricted, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ue_reachableIndicator, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ue_srvcc_Capability, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_SRVCC_Capability }, { &hf_gsm_map_ms_eplmn_List, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPLMN_List }, { &hf_gsm_map_ms_mmeNumberforMTSMS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_smsRegisterRequest, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMSRegisterRequest }, { &hf_gsm_map_ms_sms_Only , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_removalofMMERegistrationforSMS, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_sgsn_Name, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_ms_sgsn_Realm, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_ms_lgd_supportIndicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_adjacentPLMN_List, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdjacentPLMN_List }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UpdateGprsLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg); return offset; } static const ber_sequence_t gsm_map_ms_UpdateGprsLocationRes_sequence[] = { { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_add_Capability, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_sgsn_mmeSeparationSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_mmeRegisteredforSMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UpdateGprsLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes); return offset; } static int dissect_gsm_map_ms_IntegrityProtectionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; asn1_ctx_t asn1_ctx; offset = dissect_ber_octet_string(implicit_tag, actx, 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_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_map_IntegrityProtectionInformation); return offset; } static int dissect_gsm_map_ms_EncryptionInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; asn1_ctx_t asn1_ctx; offset = dissect_ber_octet_string(implicit_tag, actx, 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_map_EncryptionInformation); return offset; } static const value_string gsm_map_ms_KeyStatus_vals[] = { { 0, "old" }, { 1, "new" }, { 0, NULL } }; static int dissect_gsm_map_ms_KeyStatus(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_AllowedGSM_Algorithms(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_PermittedEncryptionAlgorithms(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AllowedUMTS_Algorithms_sequence[] = { { &hf_gsm_map_ms_integrityProtectionAlgorithms, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms }, { &hf_gsm_map_ms_encryptionAlgorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PermittedEncryptionAlgorithms }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AllowedUMTS_Algorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms); return offset; } static int dissect_gsm_map_ms_RadioResourceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length_remaining(tvb,0), NULL, 0); return offset; } static int dissect_gsm_map_ms_RAB_Id(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_RadioResource_sequence[] = { { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResourceInformation }, { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_RadioResource(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource); return offset; } static const ber_sequence_t gsm_map_ms_RadioResourceList_sequence_of[1] = { { &hf_gsm_map_ms_RadioResourceList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RadioResource }, }; static int dissect_gsm_map_ms_RadioResourceList(bool implicit_tag _U_, 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, gsm_map_ms_RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList); return offset; } static int dissect_gsm_map_ms_BSSMAP_ServiceHandover(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_RANAP_ServiceHandover(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; asn1_ctx_t asn1_ctx; offset = dissect_ber_octet_string(implicit_tag, actx, 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 const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverInfo_sequence[] = { { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover }, { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo); return offset; } static const ber_sequence_t gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of[1] = { { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo }, }; static int dissect_gsm_map_ms_BSSMAP_ServiceHandoverList(bool implicit_tag _U_, 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, gsm_map_ms_BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList); return offset; } static int dissect_gsm_map_ms_Codec(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_CodecList_sequence[] = { { &hf_gsm_map_ms_codec1_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec2_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec3_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec4_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec5_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec6_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec7_01, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_codec8_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CodecList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList); return offset; } static const ber_sequence_t gsm_map_ms_SupportedCodecsList_sequence[] = { { &hf_gsm_map_ms_utranCodecList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList }, { &hf_gsm_map_ms_geranCodecList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SupportedCodecsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList); return offset; } static int dissect_gsm_map_ms_AoIPCodec(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AoIPCodecsList_sequence[] = { { &hf_gsm_map_ms_codec1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_codec8 , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AoIPCodecsList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AoIPCodecsList_sequence, hf_index, ett_gsm_map_ms_AoIPCodecsList); return offset; } static int dissect_gsm_map_ms_UESBI_IuA(bool implicit_tag _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, tree, tvb, offset, NULL, 0, hf_index, -1, NULL); return offset; } static int dissect_gsm_map_ms_UESBI_IuB(bool implicit_tag _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, tree, tvb, offset, NULL, 0, hf_index, -1, NULL); return offset; } static const ber_sequence_t gsm_map_ms_UESBI_Iu_sequence[] = { { &hf_gsm_map_ms_uesbi_IuA, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuA }, { &hf_gsm_map_ms_uesbi_IuB, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_IuB }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UESBI_Iu(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu); return offset; } static const ber_sequence_t gsm_map_ms_ForwardAccessSignalling_Arg_U_sequence[] = { { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation }, { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation }, { &hf_gsm_map_ms_keyStatus, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_KeyStatus }, { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms }, { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms }, { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList }, { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover }, { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover }, { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList }, { &hf_gsm_map_ms_currentlyUsedCodec, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList }, { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation }, { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList }, { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList }, { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu }, { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U); return offset; } static int dissect_gsm_map_ms_ForwardAccessSignalling_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U); return offset; } static int dissect_gsm_map_ms_RNCId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_GERAN_Classmark(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_ZoneCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ZoneCodeList_sequence_of[1] = { { &hf_gsm_map_ms_ZoneCodeList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ZoneCode }, }; static int dissect_gsm_map_ms_ZoneCodeList(bool implicit_tag _U_, 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, gsm_map_ms_ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList); return offset; } static int dissect_gsm_map_ms_LCLS_GlobalCallReference(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int * const gsm_map_ms_LCLS_Negotiation_bits[] = { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit, &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit, NULL }; static int dissect_gsm_map_ms_LCLS_Negotiation(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_LCLS_Negotiation_bits, 2, hf_index, ett_gsm_map_ms_LCLS_Negotiation, NULL); return offset; } static int * const gsm_map_ms_LCLS_ConfigurationPreference_bits[] = { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator, &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator, &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator, &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator, NULL }; static int dissect_gsm_map_ms_LCLS_ConfigurationPreference(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_LCLS_ConfigurationPreference_bits, 4, hf_index, ett_gsm_map_ms_LCLS_ConfigurationPreference, NULL); return offset; } static const ber_sequence_t gsm_map_ms_LIPA_AllowedAPNList_sequence_of[1] = { { &hf_gsm_map_ms_LIPA_AllowedAPNList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN }, }; static int dissect_gsm_map_ms_LIPA_AllowedAPNList(bool implicit_tag _U_, 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, gsm_map_ms_LIPA_AllowedAPNList_sequence_of, hf_index, ett_gsm_map_ms_LIPA_AllowedAPNList); return offset; } static const ber_sequence_t gsm_map_ms_CSG_SubscriptionData_sequence[] = { { &hf_gsm_map_ms_csg_Id , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_Id }, { &hf_gsm_map_ms_expirationDate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Time }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_lipa_AllowedAPNList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_AllowedAPNList }, { &hf_gsm_map_ms_plmn_Id , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CSG_SubscriptionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CSG_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_CSG_SubscriptionData); return offset; } static const ber_sequence_t gsm_map_ms_CSG_SubscriptionDataList_sequence_of[1] = { { &hf_gsm_map_ms_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData }, }; static int dissect_gsm_map_ms_CSG_SubscriptionDataList(bool implicit_tag _U_, 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, gsm_map_ms_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_CSG_SubscriptionDataList); return offset; } static const ber_sequence_t gsm_map_ms_PrepareHO_Arg_U_sequence[] = { { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId }, { &hf_gsm_map_ms_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId }, { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_multipleBearerRequested, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_integrityProtectionInfo, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IntegrityProtectionInformation }, { &hf_gsm_map_ms_encryptionInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EncryptionInformation }, { &hf_gsm_map_ms_radioResourceInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation }, { &hf_gsm_map_ms_allowedGSM_Algorithms, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedGSM_Algorithms }, { &hf_gsm_map_ms_allowedUMTS_Algorithms, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AllowedUMTS_Algorithms }, { &hf_gsm_map_ms_radioResourceList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_rab_Id , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id }, { &hf_gsm_map_ms_bssmap_ServiceHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandover }, { &hf_gsm_map_ms_ranap_ServiceHandover, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RANAP_ServiceHandover }, { &hf_gsm_map_ms_bssmap_ServiceHandoverList, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BSSMAP_ServiceHandoverList }, { &hf_gsm_map_ms_asciCallReference, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference }, { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark }, { &hf_gsm_map_ms_iuCurrentlyUsedCodec, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_iuSupportedCodecsList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCodecsList }, { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_uesbi_Iu , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UESBI_Iu }, { &hf_gsm_map_ms_imeisv , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_ms_alternativeChannelType, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RadioResourceInformation }, { &hf_gsm_map_ms_tracePropagationList, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TracePropagationList }, { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList }, { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList }, { &hf_gsm_map_ms_lclsGlobalCallReference, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_GlobalCallReference }, { &hf_gsm_map_ms_lcls_Negotiation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_Negotiation }, { &hf_gsm_map_ms_lcls_Configuration_Preference, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCLS_ConfigurationPreference }, { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PrepareHO_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U); return offset; } static int dissect_gsm_map_ms_PrepareHO_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U); return offset; } static const ber_sequence_t gsm_map_ms_RelocationNumber_sequence[] = { { &hf_gsm_map_ms_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_rab_Id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAB_Id }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_RelocationNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber); return offset; } static const ber_sequence_t gsm_map_ms_RelocationNumberList_sequence_of[1] = { { &hf_gsm_map_ms_RelocationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RelocationNumber }, }; static int dissect_gsm_map_ms_RelocationNumberList(bool implicit_tag _U_, 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, gsm_map_ms_RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList); return offset; } static int dissect_gsm_map_ms_MulticallBearerInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_ChosenEncryptionAlgorithm(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SelectedUMTS_Algorithms_sequence[] = { { &hf_gsm_map_ms_integrityProtectionAlgorithm, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm }, { &hf_gsm_map_ms_encryptionAlgorithm, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenEncryptionAlgorithm }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SelectedUMTS_Algorithms(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms); return offset; } static int dissect_gsm_map_ms_ChosenChannelInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_ChosenSpeechVersion(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ChosenRadioResourceInformation_sequence[] = { { &hf_gsm_map_ms_chosenChannelInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenChannelInfo }, { &hf_gsm_map_ms_chosenSpeechVersion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenSpeechVersion }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ChosenRadioResourceInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation); return offset; } static const ber_sequence_t gsm_map_ms_PrepareHO_Res_U_sequence[] = { { &hf_gsm_map_ms_handoverNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_relocationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RelocationNumberList }, { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_multicallBearerInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MulticallBearerInfo }, { &hf_gsm_map_ms_multipleBearerNotSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms }, { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_iuSelectedCodec, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList }, { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PrepareHO_Res_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U); return offset; } static int dissect_gsm_map_ms_PrepareHO_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareHO_Res_U); return offset; } static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Arg_U_sequence[] = { { &hf_gsm_map_ms_targetCellId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId }, { &hf_gsm_map_ms_targetMSC_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_targetRNCId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RNCId }, { &hf_gsm_map_ms_an_APDU , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_geran_classmark, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GERAN_Classmark }, { &hf_gsm_map_ms_rab_ConfigurationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U); return offset; } static int dissect_gsm_map_ms_PrepareSubsequentHO_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U); return offset; } static const ber_sequence_t gsm_map_ms_PrepareSubsequentHO_Res_U_sequence[] = { { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PrepareSubsequentHO_Res_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U); return offset; } static int dissect_gsm_map_ms_PrepareSubsequentHO_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Res_U); return offset; } static int dissect_gsm_map_ms_SelectedGSM_Algorithm(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ProcessAccessSignalling_Arg_U_sequence[] = { { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_selectedUMTS_Algorithms, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedUMTS_Algorithms }, { &hf_gsm_map_ms_selectedGSM_Algorithm, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SelectedGSM_Algorithm }, { &hf_gsm_map_ms_chosenRadioResourceInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChosenRadioResourceInformation }, { &hf_gsm_map_ms_selectedRab_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAB_Id }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_iUSelectedCodec, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, { &hf_gsm_map_ms_iuAvailableCodecsList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CodecList }, { &hf_gsm_map_ms_aoipSelectedCodecTarget, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodec }, { &hf_gsm_map_ms_aoipAvailableCodecsListMap, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AoIPCodecsList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U); return offset; } static int dissect_gsm_map_ms_ProcessAccessSignalling_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U); return offset; } static const ber_sequence_t gsm_map_ms_SendEndSignal_Arg_U_sequence[] = { { &hf_gsm_map_ms_an_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendEndSignal_Arg_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U); return offset; } static int dissect_gsm_map_ms_SendEndSignal_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendEndSignal_Arg_U); return offset; } static const ber_sequence_t gsm_map_ms_SendEndSignal_Res_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendEndSignal_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res); return offset; } static const ber_sequence_t gsm_map_ms_Re_synchronisationInfo_sequence[] = { { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND }, { &hf_gsm_map_ms_auts , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTS }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Re_synchronisationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo); return offset; } static const value_string gsm_map_ms_RequestingNodeType_vals[] = { { 0, "vlr" }, { 1, "sgsn" }, { 2, "s-cscf" }, { 3, "bsf" }, { 4, "gan-aaa-server" }, { 5, "wlan-aaa-server" }, { 16, "mme" }, { 17, "mme-sgsn" }, { 0, NULL } }; static int dissect_gsm_map_ms_RequestingNodeType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_numberOfRequestedVectors, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NumberOfRequestedVectors }, { &hf_gsm_map_ms_segmentationProhibited, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_immediateResponsePreferred, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_re_synchronisationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Re_synchronisationInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_requestingNodeType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestingNodeType }, { &hf_gsm_map_ms_requestingPLMN_Id, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberOfRequestedVectors }, { &hf_gsm_map_ms_additionalVectorsAreForEPS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ueUsageTypeRequestIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendAuthenticationInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg); return offset; } static int dissect_gsm_map_ms_KASME(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_EPC_AV_sequence[] = { { &hf_gsm_map_ms_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RAND }, { &hf_gsm_map_ms_xres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_XRES }, { &hf_gsm_map_ms_autn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AUTN }, { &hf_gsm_map_ms_kasme , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_KASME }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EPC_AV(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_EPC_AV_sequence, hf_index, ett_gsm_map_ms_EPC_AV); return offset; } static const ber_sequence_t gsm_map_ms_EPS_AuthenticationSetList_sequence_of[1] = { { &hf_gsm_map_ms_EPS_AuthenticationSetList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EPC_AV }, }; static int dissect_gsm_map_ms_EPS_AuthenticationSetList(bool implicit_tag _U_, 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, gsm_map_ms_EPS_AuthenticationSetList_sequence_of, hf_index, ett_gsm_map_ms_EPS_AuthenticationSetList); return offset; } static int dissect_gsm_map_ms_UE_UsageType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SendAuthenticationInfoRes_U_sequence[] = { { &hf_gsm_map_ms_authenticationSetList, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_AuthenticationSetList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_eps_AuthenticationSetList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_AuthenticationSetList }, { &hf_gsm_map_ms_ueUsageType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_UsageType }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendAuthenticationInfoRes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U); return offset; } static int dissect_gsm_map_ms_SendAuthenticationInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U); return offset; } static int * const gsm_map_ms_RequestedEquipmentInfo_bits[] = { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, NULL }; static int dissect_gsm_map_ms_RequestedEquipmentInfo(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_RequestedEquipmentInfo_bits, 2, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo, NULL); return offset; } static const ber_sequence_t gsm_map_ms_CheckIMEI_Arg_sequence[] = { { &hf_gsm_map_ms_imei , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_ms_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CheckIMEI_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg); return offset; } static const value_string gsm_map_ms_EquipmentStatus_vals[] = { { 0, "permittedListed" }, { 1, "prohibitedListed" }, { 2, "trackingListed" }, { 0, NULL } }; static int dissect_gsm_map_ms_EquipmentStatus(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_CheckIMEI_Res_sequence[] = { { &hf_gsm_map_ms_equipmentStatus, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EquipmentStatus }, { &hf_gsm_map_ms_bmuef , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_UESBI_Iu }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CheckIMEI_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res); return offset; } static int dissect_gsm_map_ms_Category(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_SubscriberStatus_vals[] = { { 0, "serviceGranted" }, { 1, "operatorDeterminedBarring" }, { 0, NULL } }; static int dissect_gsm_map_ms_SubscriberStatus(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_BearerServiceList_sequence_of[1] = { { &hf_gsm_map_ms_BearerServiceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BearerServiceCode }, }; static int dissect_gsm_map_ms_BearerServiceList(bool implicit_tag _U_, 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, gsm_map_ms_BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList); return offset; } static const ber_sequence_t gsm_map_ms_TeleserviceList_sequence_of[1] = { { &hf_gsm_map_ms_TeleserviceList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode }, }; static int dissect_gsm_map_ms_TeleserviceList(bool implicit_tag _U_, 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, gsm_map_ms_TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList); return offset; } int dissect_gsm_map_ms_Ext_ForwOptions(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_T_forwardingOptions(bool implicit_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_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index); proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,ENC_BIG_ENDIAN); return offset; } int dissect_gsm_map_ms_Ext_NoRepCondTime(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_Ext_ForwFeature_sequence[] = { { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { &hf_gsm_map_ms_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_forwardingOptions }, { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_longForwardedToNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_ForwFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature); return offset; } static const ber_sequence_t gsm_map_ms_Ext_ForwFeatureList_sequence_of[1] = { { &hf_gsm_map_ms_Ext_ForwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeature }, }; static int dissect_gsm_map_ms_Ext_ForwFeatureList(bool implicit_tag _U_, 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, gsm_map_ms_Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList); return offset; } static const ber_sequence_t gsm_map_ms_Ext_ForwInfo_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_ForwInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo); return offset; } static const ber_sequence_t gsm_map_ms_Ext_CallBarringFeature_sequence[] = { { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_CallBarringFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature); return offset; } static const ber_sequence_t gsm_map_ms_Ext_CallBarFeatureList_sequence_of[1] = { { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarringFeature }, }; static int dissect_gsm_map_ms_Ext_CallBarFeatureList(bool implicit_tag _U_, 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, gsm_map_ms_Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList); return offset; } static const ber_sequence_t gsm_map_ms_Ext_CallBarInfo_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_CallBarInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo); return offset; } int dissect_gsm_map_ms_CUG_Index(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_ms_CUG_Interlock(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_IntraCUG_Options_vals[] = { { 0, "noCUG-Restrictions" }, { 1, "cugIC-CallBarred" }, { 2, "cugOG-CallBarred" }, { 0, NULL } }; static int dissect_gsm_map_ms_IntraCUG_Options(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_Ext_BasicServiceGroupList_sequence_of[1] = { { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode }, }; static int dissect_gsm_map_ms_Ext_BasicServiceGroupList(bool implicit_tag _U_, 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, gsm_map_ms_Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList); return offset; } static const ber_sequence_t gsm_map_ms_CUG_Subscription_sequence[] = { { &hf_gsm_map_ms_cug_Index, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index }, { &hf_gsm_map_ms_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_gsm_map_ms_intraCUG_Options, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IntraCUG_Options }, { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CUG_Subscription(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription); return offset; } static const ber_sequence_t gsm_map_ms_CUG_SubscriptionList_sequence_of[1] = { { &hf_gsm_map_ms_CUG_SubscriptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Subscription }, }; static int dissect_gsm_map_ms_CUG_SubscriptionList(bool implicit_tag _U_, 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, gsm_map_ms_CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList); return offset; } static int dissect_gsm_map_ms_InterCUG_Restrictions(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_CUG_Feature_sequence[] = { { &hf_gsm_map_ms_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_preferentialCUG_Indicator, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Index }, { &hf_gsm_map_ms_interCUG_Restrictions, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_InterCUG_Restrictions }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CUG_Feature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature); return offset; } static const ber_sequence_t gsm_map_ms_CUG_FeatureList_sequence_of[1] = { { &hf_gsm_map_ms_CUG_FeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Feature }, }; static int dissect_gsm_map_ms_CUG_FeatureList(bool implicit_tag _U_, 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, gsm_map_ms_CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList); return offset; } static const ber_sequence_t gsm_map_ms_CUG_Info_sequence[] = { { &hf_gsm_map_ms_cug_SubscriptionList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_SubscriptionList }, { &hf_gsm_map_ms_cug_FeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_FeatureList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ms_CUG_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info); return offset; } static const ber_sequence_t gsm_map_ms_Ext_SS_Data_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_ss_SubscriptionOption, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_SS_SubscriptionOption }, { &hf_gsm_map_ms_basicServiceGroupList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_BasicServiceGroupList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_SS_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data); return offset; } static const value_string gsm_map_ms_Ext_SS_Info_vals[] = { { 0, "forwardingInfo" }, { 1, "callBarringInfo" }, { 2, "cug-Info" }, { 3, "ss-Data" }, { 4, "emlpp-Info" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_Ext_SS_Info_choice[] = { { 0, &hf_gsm_map_ms_forwardingInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwInfo }, { 1, &hf_gsm_map_ms_callBarringInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarInfo }, { 2, &hf_gsm_map_ms_cug_Info , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Info }, { 3, &hf_gsm_map_ms_ss_Data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_Data }, { 4, &hf_gsm_map_ms_emlpp_Info, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Info }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_SS_Info(bool implicit_tag _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, gsm_map_ms_Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info, NULL); return offset; } static const ber_sequence_t gsm_map_ms_Ext_SS_InfoList_sequence_of[1] = { { &hf_gsm_map_ms_Ext_SS_InfoList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_Ext_SS_Info }, }; static int dissect_gsm_map_ms_Ext_SS_InfoList(bool implicit_tag _U_, 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, gsm_map_ms_Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList); return offset; } static int * const gsm_map_ms_ODB_GeneralData_bits[] = { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, NULL }; static int dissect_gsm_map_ms_ODB_GeneralData(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_ODB_GeneralData_bits, 29, hf_index, ett_gsm_map_ms_ODB_GeneralData, NULL); return offset; } static int * const gsm_map_ms_ODB_HPLMN_Data_bits[] = { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, NULL }; static int dissect_gsm_map_ms_ODB_HPLMN_Data(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_ODB_HPLMN_Data_bits, 4, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ODB_Data_sequence[] = { { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_GeneralData }, { &hf_gsm_map_ms_odb_HPLMN_Data, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_HPLMN_Data }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ODB_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data); return offset; } static int dissect_gsm_map_ms_GroupId(bool implicit_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_gsm_map_ms_Long_GroupId(bool implicit_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 const ber_sequence_t gsm_map_ms_VoiceBroadcastData_sequence[] = { { &hf_gsm_map_ms_groupid , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId }, { &hf_gsm_map_ms_broadcastInitEntitlement, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_VoiceBroadcastData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData); return offset; } static const ber_sequence_t gsm_map_ms_VBSDataList_sequence_of[1] = { { &hf_gsm_map_ms_VBSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceBroadcastData }, }; static int dissect_gsm_map_ms_VBSDataList(bool implicit_tag _U_, 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, gsm_map_ms_VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList); return offset; } static int * const gsm_map_ms_AdditionalSubscriptions_bits[] = { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, NULL }; static int dissect_gsm_map_ms_AdditionalSubscriptions(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_AdditionalSubscriptions_bits, 3, hf_index, ett_gsm_map_ms_AdditionalSubscriptions, NULL); return offset; } static int dissect_gsm_map_ms_AdditionalInfo(bool implicit_tag _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, tree, tvb, offset, NULL, 0, hf_index, -1, NULL); return offset; } static const ber_sequence_t gsm_map_ms_VoiceGroupCallData_sequence[] = { { &hf_gsm_map_ms_groupId , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GroupId }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_additionalSubscriptions, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdditionalSubscriptions }, { &hf_gsm_map_ms_additionalInfo, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo }, { &hf_gsm_map_ms_longGroupId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Long_GroupId }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_VoiceGroupCallData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData); return offset; } static const ber_sequence_t gsm_map_ms_VGCSDataList_sequence_of[1] = { { &hf_gsm_map_ms_VGCSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_VoiceGroupCallData }, }; static int dissect_gsm_map_ms_VGCSDataList(bool implicit_tag _U_, 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, gsm_map_ms_VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList); return offset; } static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = { { 2, "collectedInfo" }, { 4, "routeSelectFailure" }, { 0, NULL } }; static int dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_ms_ServiceKey(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_DefaultCallHandling_vals[] = { { 0, "continueCall" }, { 1, "releaseCall" }, { 0, NULL } }; static int dissect_gsm_map_ms_DefaultCallHandling(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPData_sequence[] = { { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_O_BcsmCamelTDPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData); return offset; } static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of[1] = { { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPData }, }; static int dissect_gsm_map_ms_O_BcsmCamelTDPDataList(bool implicit_tag _U_, 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, gsm_map_ms_O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList); return offset; } static int dissect_gsm_map_ms_CamelCapabilityHandling(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_O_CSI_sequence[] = { { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDPDataList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csiActive, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ms_O_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI); return offset; } static const ber_sequence_t gsm_map_ms_SS_EventList_sequence_of[1] = { { &hf_gsm_map_ms_SS_EventList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, }; static int dissect_gsm_map_ms_SS_EventList(bool implicit_tag _U_, 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, gsm_map_ms_SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList); return offset; } static const ber_sequence_t gsm_map_ms_SS_CamelData_sequence[] = { { &hf_gsm_map_ms_ss_EventList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_EventList }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SS_CamelData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData); return offset; } static const ber_sequence_t gsm_map_ms_SS_CSI_sequence[] = { { &hf_gsm_map_ms_ss_CamelData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SS_CamelData }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SS_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI); return offset; } static const value_string gsm_map_ms_MatchType_vals[] = { { 0, "inhibiting" }, { 1, "enabling" }, { 0, NULL } }; static int dissect_gsm_map_ms_MatchType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_DestinationNumberList_sequence_of[1] = { { &hf_gsm_map_ms_DestinationNumberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, }; static int dissect_gsm_map_ms_DestinationNumberList(bool implicit_tag _U_, 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, gsm_map_ms_DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList); return offset; } static int dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_DestinationNumberLengthList_sequence_of[1] = { { &hf_gsm_map_ms_DestinationNumberLengthList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits }, }; static int dissect_gsm_map_ms_DestinationNumberLengthList(bool implicit_tag _U_, 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, gsm_map_ms_DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList); return offset; } static const ber_sequence_t gsm_map_ms_DestinationNumberCriteria_sequence[] = { { &hf_gsm_map_ms_matchType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MatchType }, { &hf_gsm_map_ms_destinationNumberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberList }, { &hf_gsm_map_ms_destinationNumberLengthList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberLengthList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_DestinationNumberCriteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria); return offset; } static const ber_sequence_t gsm_map_ms_BasicServiceCriteria_sequence_of[1] = { { &hf_gsm_map_ms_BasicServiceCriteria_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode }, }; static int dissect_gsm_map_ms_BasicServiceCriteria(bool implicit_tag _U_, 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, gsm_map_ms_BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria); return offset; } static const value_string gsm_map_ms_CallTypeCriteria_vals[] = { { 0, "forwarded" }, { 1, "notForwarded" }, { 0, NULL } }; static int dissect_gsm_map_ms_CallTypeCriteria(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_CauseValue(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_O_CauseValueCriteria_sequence_of[1] = { { &hf_gsm_map_ms_O_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue }, }; static int dissect_gsm_map_ms_O_CauseValueCriteria(bool implicit_tag _U_, 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, gsm_map_ms_O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria); return offset; } static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDP_Criteria_sequence[] = { { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint }, { &hf_gsm_map_ms_destinationNumberCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DestinationNumberCriteria }, { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria }, { &hf_gsm_map_ms_callTypeCriteria, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallTypeCriteria }, { &hf_gsm_map_ms_o_CauseValueCriteria, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CauseValueCriteria }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria); return offset; } static const ber_sequence_t gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of[1] = { { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria }, }; int dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList(bool implicit_tag _U_, 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, gsm_map_ms_O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList); return offset; } static int dissect_gsm_map_ms_MM_Code(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_MobilityTriggers_sequence_of[1] = { { &hf_gsm_map_ms_MobilityTriggers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MM_Code }, }; static int dissect_gsm_map_ms_MobilityTriggers(bool implicit_tag _U_, 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, gsm_map_ms_MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers); return offset; } static const ber_sequence_t gsm_map_ms_M_CSI_sequence[] = { { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_M_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_M_CSI_sequence, hf_index, ett_gsm_map_ms_M_CSI); return offset; } static const value_string gsm_map_ms_SMS_TriggerDetectionPoint_vals[] = { { 1, "sms-CollectedInfo" }, { 2, "sms-DeliveryRequest" }, { 0, NULL } }; static int dissect_gsm_map_ms_SMS_TriggerDetectionPoint(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = { { 0, "continueTransaction" }, { 1, "releaseTransaction" }, { 0, NULL } }; int dissect_gsm_map_ms_DefaultSMS_Handling(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_Data_sequence[] = { { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_defaultSMS_Handling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultSMS_Handling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SMS_CAMEL_TDP_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data); return offset; } static const ber_sequence_t gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of[1] = { { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_CAMEL_TDP_Data }, }; static int dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList(bool implicit_tag _U_, 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, gsm_map_ms_SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList); return offset; } static const ber_sequence_t gsm_map_ms_SMS_CSI_sequence[] = { { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList }, { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SMS_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI); return offset; } static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = { { 12, "termAttemptAuthorized" }, { 13, "tBusy" }, { 14, "tNoAnswer" }, { 0, NULL } }; static int dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPData_sequence[] = { { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultCallHandling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_T_BcsmCamelTDPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData); return offset; } static const ber_sequence_t gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of[1] = { { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPData }, }; static int dissect_gsm_map_ms_T_BcsmCamelTDPDataList(bool implicit_tag _U_, 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, gsm_map_ms_T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList); return offset; } static const ber_sequence_t gsm_map_ms_T_CSI_sequence[] = { { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmCamelTDPDataList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_T_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI); return offset; } static const ber_sequence_t gsm_map_ms_T_CauseValueCriteria_sequence_of[1] = { { &hf_gsm_map_ms_T_CauseValueCriteria_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CauseValue }, }; static int dissect_gsm_map_ms_T_CauseValueCriteria(bool implicit_tag _U_, 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, gsm_map_ms_T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria); return offset; } static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence[] = { { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint }, { &hf_gsm_map_ms_basicServiceCriteria, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceCriteria }, { &hf_gsm_map_ms_t_CauseValueCriteria, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CauseValueCriteria }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria); return offset; } static const ber_sequence_t gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = { { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria }, }; static int dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList(bool implicit_tag _U_, 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, gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList); return offset; } static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriterium_sequence[] = { { &hf_gsm_map_ms_dialledNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_defaultCallHandling, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DefaultCallHandling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_DP_AnalysedInfoCriterium(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium); return offset; } static const ber_sequence_t gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of[1] = { { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriterium }, }; static int dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList(bool implicit_tag _U_, 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, gsm_map_ms_DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList); return offset; } static const ber_sequence_t gsm_map_ms_D_CSI_sequence[] = { { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList }, { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ms_D_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI); return offset; } static const value_string gsm_map_ms_MT_SMS_TPDU_Type_vals[] = { { 0, "sms-DELIVER" }, { 1, "sms-SUBMIT-REPORT" }, { 2, "sms-STATUS-REPORT" }, { 0, NULL } }; static int dissect_gsm_map_ms_MT_SMS_TPDU_Type(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_TPDU_TypeCriterion_sequence_of[1] = { { &hf_gsm_map_ms_TPDU_TypeCriterion_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MT_SMS_TPDU_Type }, }; static int dissect_gsm_map_ms_TPDU_TypeCriterion(bool implicit_tag _U_, 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, gsm_map_ms_TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion); return offset; } static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_Criteria_sequence[] = { { &hf_gsm_map_ms_sms_TriggerDetectionPoint, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SMS_TriggerDetectionPoint }, { &hf_gsm_map_ms_tpdu_TypeCriterion, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TPDU_TypeCriterion }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria); return offset; } static const ber_sequence_t gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of[1] = { { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria }, }; static int dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList(bool implicit_tag _U_, 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, gsm_map_ms_MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList); return offset; } static const ber_sequence_t gsm_map_ms_VlrCamelSubscriptionInfo_sequence[] = { { &hf_gsm_map_ms_o_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_ss_CSI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI }, { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList }, { &hf_gsm_map_ms_tif_CSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_m_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI }, { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI }, { &hf_gsm_map_ms_vt_CSI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI }, { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList }, { &hf_gsm_map_ms_d_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI }, { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI }, { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_VlrCamelSubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo); return offset; } static int dissect_gsm_map_ms_PDP_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { guint8 pdp_type_org; tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, 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,ENC_BIG_ENDIAN); 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,ENC_BIG_ENDIAN); break; case 1: /* IETF */ proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,ENC_BIG_ENDIAN); break; default: break; } return offset; } int dissect_gsm_map_ms_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0); return offset; } int dissect_gsm_map_ms_Ext_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree, actx); return offset; } static int dissect_gsm_map_ms_ChargingCharacteristics(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_ms_Ext2_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; dissect_gsm_map_ext2_qos_subscribed(tvb, actx->pinfo, tree, actx); return offset; } int dissect_gsm_map_ms_Ext3_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; dissect_gsm_map_ext3_qos_subscribed(tvb, actx->pinfo, tree, actx); return offset; } static int dissect_gsm_map_ms_Ext4_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; dissect_gsm_map_ext4_qos_subscribed(tvb, actx->pinfo, tree, actx); return offset; } static int dissect_gsm_map_ms_APN_OI_Replacement(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_Ext_PDP_Type(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_Bandwidth(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_BandwidthExt(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AMBR_sequence[] = { { &hf_gsm_map_ms_max_RequestedBandwidth_UL, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth }, { &hf_gsm_map_ms_max_RequestedBandwidth_DL, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Bandwidth }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BandwidthExt }, { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BandwidthExt }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AMBR(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AMBR_sequence, hf_index, ett_gsm_map_ms_AMBR); return offset; } static const value_string gsm_map_ms_SIPTO_Permission_vals[] = { { 0, "siptoAboveRanAllowed" }, { 1, "siptoAboveRanNotAllowed" }, { 0, NULL } }; static int dissect_gsm_map_ms_SIPTO_Permission(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_LIPA_Permission_vals[] = { { 0, "lipaProhibited" }, { 1, "lipaOnly" }, { 2, "lipaConditional" }, { 0, NULL } }; static int dissect_gsm_map_ms_LIPA_Permission(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_Restoration_Priority(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_SIPTO_Local_Network_Permission_vals[] = { { 0, "siptoAtLocalNetworkAllowed" }, { 1, "siptoAtLocalNetworkNotAllowed" }, { 0, NULL } }; static int dissect_gsm_map_ms_SIPTO_Local_Network_Permission(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_NIDD_Mechanism_vals[] = { { 0, "sGi-based-data-delivery" }, { 1, "sCEF-based-data-delivery" }, { 0, NULL } }; static int dissect_gsm_map_ms_NIDD_Mechanism(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_PDP_Context_sequence[] = { { &hf_gsm_map_ms_pdp_ContextId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId }, { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type }, { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_qos_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed }, { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_apn , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_ext_QoS_Subscribed, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed }, { &hf_gsm_map_ms_pdp_ChargingCharacteristics, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics }, { &hf_gsm_map_ms_ext2_QoS_Subscribed, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed }, { &hf_gsm_map_ms_ext3_QoS_Subscribed, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed }, { &hf_gsm_map_ms_ext4_QoS_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed }, { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement }, { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type }, { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR }, { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission }, { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission }, { &hf_gsm_map_ms_restoration_Priority, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Restoration_Priority }, { &hf_gsm_map_ms_sipto_local_network_Permission, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Local_Network_Permission }, { &hf_gsm_map_ms_nIDD_Mechanism, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NIDD_Mechanism }, { &hf_gsm_map_ms_sCEF_ID , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PDP_Context(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context); return offset; } static const ber_sequence_t gsm_map_ms_GPRSDataList_sequence_of[1] = { { &hf_gsm_map_ms_GPRSDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_Context }, }; static int dissect_gsm_map_ms_GPRSDataList(bool implicit_tag _U_, 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, gsm_map_ms_GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList); return offset; } static const ber_sequence_t gsm_map_ms_GPRSSubscriptionData_sequence[] = { { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_gprsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSDataList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_GPRSSubscriptionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData); return offset; } static const value_string gsm_map_ms_NetworkAccessMode_vals[] = { { 0, "packetAndCircuit" }, { 1, "onlyCircuit" }, { 2, "onlyPacket" }, { 0, NULL } }; static int dissect_gsm_map_ms_NetworkAccessMode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = { { 0, "accessOutsideLSAsAllowed" }, { 1, "accessOutsideLSAsRestricted" }, { 0, NULL } }; static int dissect_gsm_map_ms_LSAOnlyAccessIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_LSAAttributes(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_LSAData_sequence[] = { { &hf_gsm_map_ms_lsaIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity }, { &hf_gsm_map_ms_lsaAttributes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAAttributes }, { &hf_gsm_map_ms_lsaActiveModeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LSAData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData); return offset; } static const ber_sequence_t gsm_map_ms_LSADataList_sequence_of[1] = { { &hf_gsm_map_ms_LSADataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAData }, }; static int dissect_gsm_map_ms_LSADataList(bool implicit_tag _U_, 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, gsm_map_ms_LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList); return offset; } static const ber_sequence_t gsm_map_ms_LSAInformation_sequence[] = { { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_lsaOnlyAccessIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAOnlyAccessIndicator }, { &hf_gsm_map_ms_lsaDataList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSADataList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LSAInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation); return offset; } static const ber_sequence_t gsm_map_ms_GMLC_List_sequence_of[1] = { { &hf_gsm_map_ms_GMLC_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, }; static int dissect_gsm_map_ms_GMLC_List(bool implicit_tag _U_, 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, gsm_map_ms_GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List); return offset; } const value_string gsm_map_ms_NotificationToMSUser_vals[] = { { 0, "notifyLocationAllowed" }, { 1, "notifyAndVerify-LocationAllowedIfNoResponse" }, { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" }, { 3, "locationNotAllowed" }, { 0, NULL } }; int dissect_gsm_map_ms_NotificationToMSUser(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_GMLC_Restriction_vals[] = { { 0, "gmlc-List" }, { 1, "home-Country" }, { 0, NULL } }; static int dissect_gsm_map_ms_GMLC_Restriction(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ExternalClient_sequence[] = { { &hf_gsm_map_ms_clientIdentity, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientExternalID }, { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction }, { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ExternalClient(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient); return offset; } static const ber_sequence_t gsm_map_ms_ExternalClientList_sequence_of[1] = { { &hf_gsm_map_ms_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient }, }; static int dissect_gsm_map_ms_ExternalClientList(bool implicit_tag _U_, 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, gsm_map_ms_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList); return offset; } static const ber_sequence_t gsm_map_ms_PLMNClientList_sequence_of[1] = { { &hf_gsm_map_ms_PLMNClientList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSClientInternalID }, }; static int dissect_gsm_map_ms_PLMNClientList(bool implicit_tag _U_, 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, gsm_map_ms_PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList); return offset; } static const ber_sequence_t gsm_map_ms_Ext_ExternalClientList_sequence_of[1] = { { &hf_gsm_map_ms_Ext_ExternalClientList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ExternalClient }, }; static int dissect_gsm_map_ms_Ext_ExternalClientList(bool implicit_tag _U_, 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, gsm_map_ms_Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList); return offset; } static const ber_sequence_t gsm_map_ms_ServiceType_sequence[] = { { &hf_gsm_map_ms_serviceTypeIdentity, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_LCSServiceTypeID }, { &hf_gsm_map_ms_gmlc_Restriction, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_Restriction }, { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ServiceType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType); return offset; } static const ber_sequence_t gsm_map_ms_ServiceTypeList_sequence_of[1] = { { &hf_gsm_map_ms_ServiceTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceType }, }; static int dissect_gsm_map_ms_ServiceTypeList(bool implicit_tag _U_, 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, gsm_map_ms_ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList); return offset; } static const ber_sequence_t gsm_map_ms_LCS_PrivacyClass_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_notificationToMSUser, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser }, { &hf_gsm_map_ms_externalClientList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ExternalClientList }, { &hf_gsm_map_ms_plmnClientList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PLMNClientList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_ext_externalClientList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ExternalClientList }, { &hf_gsm_map_ms_serviceTypeList, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceTypeList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LCS_PrivacyClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass); return offset; } static const ber_sequence_t gsm_map_ms_LCS_PrivacyExceptionList_sequence_of[1] = { { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LCS_PrivacyClass }, }; static int dissect_gsm_map_ms_LCS_PrivacyExceptionList(bool implicit_tag _U_, 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, gsm_map_ms_LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList); return offset; } static const ber_sequence_t gsm_map_ms_MOLR_Class_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_MOLR_Class(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class); return offset; } static const ber_sequence_t gsm_map_ms_MOLR_List_sequence_of[1] = { { &hf_gsm_map_ms_MOLR_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MOLR_Class }, }; static int dissect_gsm_map_ms_MOLR_List(bool implicit_tag _U_, 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, gsm_map_ms_MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List); return offset; } static const ber_sequence_t gsm_map_ms_LCSInformation_sequence[] = { { &hf_gsm_map_ms_gmlc_List, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GMLC_List }, { &hf_gsm_map_ms_lcs_PrivacyExceptionList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList }, { &hf_gsm_map_ms_molr_List, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MOLR_List }, { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCS_PrivacyExceptionList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LCSInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation); return offset; } static int dissect_gsm_map_ms_IST_AlertTimerValue(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_CS_AllocationRetentionPriority(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_GPRS_TriggerDetectionPoint_vals[] = { { 1, "attach" }, { 2, "attachChangeOfPosition" }, { 11, "pdp-ContextEstablishment" }, { 12, "pdp-ContextEstablishmentAcknowledgement" }, { 14, "pdp-ContextChangeOfPosition" }, { 0, NULL } }; static int dissect_gsm_map_ms_GPRS_TriggerDetectionPoint(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = { { 0, "continueTransaction" }, { 1, "releaseTransaction" }, { 0, NULL } }; int dissect_gsm_map_ms_DefaultGPRS_Handling(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPData_sequence[] = { { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_TriggerDetectionPoint }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_defaultSessionHandling, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DefaultGPRS_Handling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_GPRS_CamelTDPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData); return offset; } static const ber_sequence_t gsm_map_ms_GPRS_CamelTDPDataList_sequence_of[1] = { { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_GPRS_CamelTDPData }, }; static int dissect_gsm_map_ms_GPRS_CamelTDPDataList(bool implicit_tag _U_, 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, gsm_map_ms_GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList); return offset; } static const ber_sequence_t gsm_map_ms_GPRS_CSI_sequence[] = { { &hf_gsm_map_ms_gprs_CamelTDPDataList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CamelTDPDataList }, { &hf_gsm_map_ms_camelCapabilityHandling, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CamelCapabilityHandling }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_GPRS_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI); return offset; } static const ber_sequence_t gsm_map_ms_MG_CSI_sequence[] = { { &hf_gsm_map_ms_mobilityTriggers, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MobilityTriggers }, { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csi_Active, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_MG_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI); return offset; } static const ber_sequence_t gsm_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence[] = { { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI }, { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI }, { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList }, { &hf_gsm_map_ms_mg_csi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo); return offset; } static int * const gsm_map_ms_AccessRestrictionData_bits[] = { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed, &hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed, NULL }; static int dissect_gsm_map_ms_AccessRestrictionData(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_AccessRestrictionData_bits, 8, hf_index, ett_gsm_map_ms_AccessRestrictionData, NULL); return offset; } static int dissect_gsm_map_ms_RFSP_ID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_PDN_Type(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_QoS_Class_Identifier(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_INTEGER(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_Allocation_Retention_Priority_sequence[] = { { &hf_gsm_map_ms_priority_level, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_INTEGER }, { &hf_gsm_map_ms_pre_emption_capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN }, { &hf_gsm_map_ms_pre_emption_vulnerability, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Allocation_Retention_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Allocation_Retention_Priority_sequence, hf_index, ett_gsm_map_ms_Allocation_Retention_Priority); return offset; } static const ber_sequence_t gsm_map_ms_EPS_QoS_Subscribed_sequence[] = { { &hf_gsm_map_ms_qos_Class_Identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Class_Identifier }, { &hf_gsm_map_ms_allocation_Retention_Priority, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Allocation_Retention_Priority }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EPS_QoS_Subscribed(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_EPS_QoS_Subscribed_sequence, hf_index, ett_gsm_map_ms_EPS_QoS_Subscribed); return offset; } static const value_string gsm_map_ms_PDN_GW_AllocationType_vals[] = { { 0, "static" }, { 1, "dynamic" }, { 0, NULL } }; static int dissect_gsm_map_ms_PDN_GW_AllocationType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SpecificAPNInfo_sequence[] = { { &hf_gsm_map_ms_apn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SpecificAPNInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SpecificAPNInfo_sequence, hf_index, ett_gsm_map_ms_SpecificAPNInfo); return offset; } static const ber_sequence_t gsm_map_ms_SpecificAPNInfoList_sequence_of[1] = { { &hf_gsm_map_ms_SpecificAPNInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SpecificAPNInfo }, }; static int dissect_gsm_map_ms_SpecificAPNInfoList(bool implicit_tag _U_, 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, gsm_map_ms_SpecificAPNInfoList_sequence_of, hf_index, ett_gsm_map_ms_SpecificAPNInfoList); return offset; } static const value_string gsm_map_ms_WLAN_Offloadability_Indication_vals[] = { { 0, "notAllowed" }, { 1, "allowed" }, { 0, NULL } }; static int dissect_gsm_map_ms_WLAN_Offloadability_Indication(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_WLAN_Offloadability_sequence[] = { { &hf_gsm_map_ms_wlan_offloadability_EUTRAN, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability_Indication }, { &hf_gsm_map_ms_wlan_offloadability_UTRAN, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability_Indication }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_WLAN_Offloadability(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_WLAN_Offloadability_sequence, hf_index, ett_gsm_map_ms_WLAN_Offloadability); return offset; } static const value_string gsm_map_ms_PDN_ConnectionContinuity_vals[] = { { 0, "maintainPDN-Connection" }, { 1, "disconnectPDN-ConnectionWithReactivationRequest" }, { 2, "disconnectPDN-ConnectionWithoutReactivationRequest" }, { 0, NULL } }; static int dissect_gsm_map_ms_PDN_ConnectionContinuity(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_APN_Configuration_sequence[] = { { &hf_gsm_map_ms_contextId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId }, { &hf_gsm_map_ms_pdn_Type , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_Type }, { &hf_gsm_map_ms_servedPartyIP_IPv4_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_apn , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_ms_eps_qos_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_QoS_Subscribed }, { &hf_gsm_map_ms_pdn_gw_Identity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_Identity }, { &hf_gsm_map_ms_pdn_gw_AllocationType, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_GW_AllocationType }, { &hf_gsm_map_ms_vplmnAddressAllowed, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics }, { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR }, { &hf_gsm_map_ms_specificAPNInfoList, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificAPNInfoList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_servedPartyIP_IPv6_Address, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement }, { &hf_gsm_map_ms_sipto_Permission, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Permission }, { &hf_gsm_map_ms_lipa_Permission, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LIPA_Permission }, { &hf_gsm_map_ms_restoration_Priority, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Restoration_Priority }, { &hf_gsm_map_ms_sipto_local_network_Permission, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SIPTO_Local_Network_Permission }, { &hf_gsm_map_ms_wlan_offloadability, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WLAN_Offloadability }, { &hf_gsm_map_ms_non_IP_PDN_Type_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_nIDD_Mechanism, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NIDD_Mechanism }, { &hf_gsm_map_ms_sCEF_ID , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN }, { &hf_gsm_map_ms_pdn_ConnectionContinuity, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDN_ConnectionContinuity }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_APN_Configuration(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_APN_Configuration_sequence, hf_index, ett_gsm_map_ms_APN_Configuration); return offset; } static const ber_sequence_t gsm_map_ms_EPS_DataList_sequence_of[1] = { { &hf_gsm_map_ms_EPS_DataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_APN_Configuration }, }; static int dissect_gsm_map_ms_EPS_DataList(bool implicit_tag _U_, 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, gsm_map_ms_EPS_DataList_sequence_of, hf_index, ett_gsm_map_ms_EPS_DataList); return offset; } static const ber_sequence_t gsm_map_ms_APN_ConfigurationProfile_sequence[] = { { &hf_gsm_map_ms_defaultContext, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId }, { &hf_gsm_map_ms_completeDataListIncluded, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_epsDataList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_DataList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_additionalDefaultContext, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_APN_ConfigurationProfile(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_APN_ConfigurationProfile_sequence, hf_index, ett_gsm_map_ms_APN_ConfigurationProfile); return offset; } static const ber_sequence_t gsm_map_ms_EPS_SubscriptionData_sequence[] = { { &hf_gsm_map_ms_apn_oi_Replacement, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_OI_Replacement }, { &hf_gsm_map_ms_rfsp_id , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RFSP_ID }, { &hf_gsm_map_ms_ambr , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AMBR }, { &hf_gsm_map_ms_apn_ConfigurationProfile, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN_ConfigurationProfile }, { &hf_gsm_map_ms_stn_sr , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_mps_CSPriority, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_mps_EPSPriority, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_subscribed_vsrvcc, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EPS_SubscriptionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_EPS_SubscriptionData_sequence, hf_index, ett_gsm_map_ms_EPS_SubscriptionData); return offset; } static int dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_SubscribedPeriodicLAUtimer(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of[1] = { { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CSG_SubscriptionData }, }; static int dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList(bool implicit_tag _U_, 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, gsm_map_ms_VPLMN_CSG_SubscriptionDataList_sequence_of, hf_index, ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList); return offset; } static int * const gsm_map_ms_Ext_AccessRestrictionData_bits[] = { &hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed, &hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed, NULL }; static int dissect_gsm_map_ms_Ext_AccessRestrictionData(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_Ext_AccessRestrictionData_bits, 2, hf_index, ett_gsm_map_ms_Ext_AccessRestrictionData, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AdjacentAccessRestrictionData_sequence[] = { { &hf_gsm_map_ms_plmnId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData }, { &hf_gsm_map_ms_ext_AccessRestrictionData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_AccessRestrictionData }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AdjacentAccessRestrictionData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AdjacentAccessRestrictionData_sequence, hf_index, ett_gsm_map_ms_AdjacentAccessRestrictionData); return offset; } static const ber_sequence_t gsm_map_ms_AdjacentAccessRestrictionDataList_sequence_of[1] = { { &hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_AdjacentAccessRestrictionData }, }; static int dissect_gsm_map_ms_AdjacentAccessRestrictionDataList(bool implicit_tag _U_, 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, gsm_map_ms_AdjacentAccessRestrictionDataList_sequence_of, hf_index, ett_gsm_map_ms_AdjacentAccessRestrictionDataList); return offset; } static int dissect_gsm_map_ms_Group_Service_ID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_Local_GroupID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_IMSI_GroupId_sequence[] = { { &hf_gsm_map_ms_group_Service_Id, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Group_Service_ID }, { &hf_gsm_map_ms_plmnId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { &hf_gsm_map_ms_local_Group_ID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Local_GroupID }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_IMSI_GroupId(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_IMSI_GroupId_sequence, hf_index, ett_gsm_map_ms_IMSI_GroupId); return offset; } static const ber_sequence_t gsm_map_ms_IMSI_GroupIdList_sequence_of[1] = { { &hf_gsm_map_ms_IMSI_GroupIdList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_IMSI_GroupId }, }; static int dissect_gsm_map_ms_IMSI_GroupIdList(bool implicit_tag _U_, 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, gsm_map_ms_IMSI_GroupIdList_sequence_of, hf_index, ett_gsm_map_ms_IMSI_GroupIdList); return offset; } static int dissect_gsm_map_ms_DL_Buffering_Suggested_Packet_Count(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_Reset_Id(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_Reset_Id_List_sequence_of[1] = { { &hf_gsm_map_ms_Reset_Id_List_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Reset_Id }, }; static int dissect_gsm_map_ms_Reset_Id_List(bool implicit_tag _U_, 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, gsm_map_ms_Reset_Id_List_sequence_of, hf_index, ett_gsm_map_ms_Reset_Id_List); return offset; } static int dissect_gsm_map_ms_EDRX_Cycle_Length_Value(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_EDRX_Cycle_Length_sequence[] = { { &hf_gsm_map_ms_rat_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type }, { &hf_gsm_map_ms_eDRX_Cycle_Length_Value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EDRX_Cycle_Length_Value }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EDRX_Cycle_Length(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_EDRX_Cycle_Length_sequence, hf_index, ett_gsm_map_ms_EDRX_Cycle_Length); return offset; } static const ber_sequence_t gsm_map_ms_EDRX_Cycle_Length_List_sequence_of[1] = { { &hf_gsm_map_ms_EDRX_Cycle_Length_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_EDRX_Cycle_Length }, }; static int dissect_gsm_map_ms_EDRX_Cycle_Length_List(bool implicit_tag _U_, 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, gsm_map_ms_EDRX_Cycle_Length_List_sequence_of, hf_index, ett_gsm_map_ms_EDRX_Cycle_Length_List); return offset; } static const ber_sequence_t gsm_map_ms_InsertSubscriberDataArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category }, { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus }, { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList }, { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList }, { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList }, { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data }, { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList }, { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList }, { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList }, { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_naea_PreferredCI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI }, { &hf_gsm_map_ms_gprsSubscriptionData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSSubscriptionData }, { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_networkAccessMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NetworkAccessMode }, { &hf_gsm_map_ms_lsaInformation, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAInformation }, { &hf_gsm_map_ms_lmu_Indicator, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_lcsInformation, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LCSInformation }, { &hf_gsm_map_ms_istAlertTimer, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue }, { &hf_gsm_map_ms_superChargerSupportedInHLR, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AgeIndicator }, { &hf_gsm_map_ms_mc_SS_Info, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MC_SS_Info }, { &hf_gsm_map_ms_cs_AllocationRetentionPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CS_AllocationRetentionPriority }, { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics }, { &hf_gsm_map_ms_accessRestrictionData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AccessRestrictionData }, { &hf_gsm_map_ms_ics_Indicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN }, { &hf_gsm_map_ms_eps_SubscriptionData, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EPS_SubscriptionData }, { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList }, { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_mme_Name , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicRAUTAUtimer }, { &hf_gsm_map_ms_vplmnLIPAAllowed, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_mdtUserConsent, BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BOOLEAN }, { &hf_gsm_map_ms_subscribedPeriodicLAUtimer, BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscribedPeriodicLAUtimer }, { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VPLMN_CSG_SubscriptionDataList }, { &hf_gsm_map_ms_additionalMSISDN, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_smsInSGSNAllowed, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_pcscf_Restoration_Request, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_adjacentAccessRestrictionDataList, BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdjacentAccessRestrictionDataList }, { &hf_gsm_map_ms_imsi_Group_Id_List, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMSI_GroupIdList }, { &hf_gsm_map_ms_ueUsageType, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_UE_UsageType }, { &hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DL_Buffering_Suggested_Packet_Count }, { &hf_gsm_map_ms_reset_Id_List, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Reset_Id_List }, { &hf_gsm_map_ms_eDRX_Cycle_Length_List, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EDRX_Cycle_Length_List }, { &hf_gsm_map_ms_ext_AccessRestrictionData, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_AccessRestrictionData }, { &hf_gsm_map_ms_iab_Operation_Allowed_Indicator, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_InsertSubscriberDataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg); return offset; } static const ber_sequence_t gsm_map_ms_SubscriberData_sequence[] = { { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_category , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category }, { &hf_gsm_map_ms_subscriberStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberStatus }, { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList }, { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList }, { &hf_gsm_map_ms_provisionedSS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SS_InfoList }, { &hf_gsm_map_ms_odb_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data }, { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_regionalSubscriptionData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCodeList }, { &hf_gsm_map_ms_vbsSubscriptionData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VBSDataList }, { &hf_gsm_map_ms_vgcsSubscriptionData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VGCSDataList }, { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VlrCamelSubscriptionInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SubscriberData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData); return offset; } static const value_string gsm_map_ms_RegionalSubscriptionResponse_vals[] = { { 0, "networkNode-AreaRestricted" }, { 1, "tooManyZoneCodes" }, { 2, "zoneCodesConflict" }, { 3, "regionalSubscNotSupported" }, { 0, NULL } }; static int dissect_gsm_map_ms_RegionalSubscriptionResponse(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_InsertSubscriberDataRes_sequence[] = { { &hf_gsm_map_ms_teleserviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TeleserviceList }, { &hf_gsm_map_ms_bearerServiceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BearerServiceList }, { &hf_gsm_map_ms_ss_List , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List }, { &hf_gsm_map_ms_odb_GeneralData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_GeneralData }, { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse }, { &hf_gsm_map_ms_supportedCamelPhases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_offeredCamel4CSIs, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ms_supportedFeatures, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedFeatures }, { &hf_gsm_map_ms_ext_SupportedFeatures, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_SupportedFeatures }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_InsertSubscriberDataRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes); return offset; } static const ber_sequence_t gsm_map_ms_BasicServiceList_sequence_of[1] = { { &hf_gsm_map_ms_BasicServiceList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_BasicServiceCode }, }; static int dissect_gsm_map_ms_BasicServiceList(bool implicit_tag _U_, 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, gsm_map_ms_BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList); return offset; } static const ber_sequence_t gsm_map_ms_ContextIdList_sequence_of[1] = { { &hf_gsm_map_ms_ContextIdList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextId }, }; static int dissect_gsm_map_ms_ContextIdList(bool implicit_tag _U_, 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, gsm_map_ms_ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList); return offset; } static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = { { 0, "allGPRSData" }, { 1, "contextIdList" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_GPRSSubscriptionDataWithdraw_choice[] = { { 0, &hf_gsm_map_ms_allGPRSData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { 1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw(bool implicit_tag _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, gsm_map_ms_GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw, NULL); return offset; } static const ber_sequence_t gsm_map_ms_LSAIdentityList_sequence_of[1] = { { &hf_gsm_map_ms_LSAIdentityList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentity }, }; static int dissect_gsm_map_ms_LSAIdentityList(bool implicit_tag _U_, 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, gsm_map_ms_LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList); return offset; } static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = { { 0, "allLSAData" }, { 1, "lsaIdentityList" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_LSAInformationWithdraw_choice[] = { { 0, &hf_gsm_map_ms_allLSAData, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { 1, &hf_gsm_map_ms_lsaIdentityList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_LSAIdentityList }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LSAInformationWithdraw(bool implicit_tag _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, gsm_map_ms_LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw, NULL); return offset; } static int * const gsm_map_ms_SpecificCSI_Withdraw_bits[] = { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, NULL }; static int dissect_gsm_map_ms_SpecificCSI_Withdraw(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_SpecificCSI_Withdraw_bits, 14, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw, NULL); return offset; } static const value_string gsm_map_ms_EPS_SubscriptionDataWithdraw_vals[] = { { 0, "allEPS-Data" }, { 1, "contextIdList" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_EPS_SubscriptionDataWithdraw_choice[] = { { 0, &hf_gsm_map_ms_allEPS_Data, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { 1, &hf_gsm_map_ms_contextIdList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ContextIdList }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw(bool implicit_tag _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, gsm_map_ms_EPS_SubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_EPS_SubscriptionDataWithdraw, NULL); return offset; } static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList }, { &hf_gsm_map_ms_ss_List , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List }, { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_regionalSubscriptionIdentifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ZoneCode }, { &hf_gsm_map_ms_vbsGroupIndication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_vgcsGroupIndication, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw }, { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_lsaInformationWithdraw, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_LSAInformationWithdraw }, { &hf_gsm_map_ms_gmlc_ListWithdraw, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_istInformationWithdraw, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_specificCSI_Withdraw, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw }, { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_stn_srWithdraw, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_epsSubscriptionDataWithdraw, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_EPS_SubscriptionDataWithdraw }, { &hf_gsm_map_ms_apn_oi_replacementWithdraw, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csg_SubscriptionDeleted, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_subscribed_vsrvccWithdraw, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_additionalMSISDN_Withdraw, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_imsiGroupIdList_Withdraw, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ue_UsageTypeWithdraw, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_reset_idsWithdraw, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_iab_OperationWithdraw, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_DeleteSubscriberDataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg); return offset; } static const ber_sequence_t gsm_map_ms_DeleteSubscriberDataRes_sequence[] = { { &hf_gsm_map_ms_regionalSubscriptionResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RegionalSubscriptionResponse }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_DeleteSubscriberDataRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes); return offset; } static int * const gsm_map_ms_OfferedCamel4Functionalities_bits[] = { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, NULL }; int dissect_gsm_map_ms_OfferedCamel4Functionalities(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_OfferedCamel4Functionalities_bits, 20, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities, NULL); return offset; } static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendRoutingInfoForGprsArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg); return offset; } static const ber_sequence_t gsm_map_ms_SendRoutingInfoForGprsRes_sequence[] = { { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_mobileNotReachableReason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_er_AbsentSubscriberDiagnosticSM }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendRoutingInfoForGprsRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes); return offset; } static const ber_sequence_t gsm_map_ms_FailureReportArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_ggsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_FailureReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg); return offset; } static const ber_sequence_t gsm_map_ms_FailureReportRes_sequence[] = { { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_FailureReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes); return offset; } static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_NoteMsPresentForGprsArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg); return offset; } static const ber_sequence_t gsm_map_ms_NoteMsPresentForGprsRes_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_NoteMsPresentForGprsRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes); return offset; } static const value_string gsm_map_ms_SendingNode_Number_vals[] = { { 0, "hlr-Number" }, { 1, "css-Number" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_SendingNode_Number_choice[] = { { 0, &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { 1, &hf_gsm_map_ms_css_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SendingNode_Number(bool implicit_tag _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, gsm_map_ms_SendingNode_Number_choice, hf_index, ett_gsm_map_ms_SendingNode_Number, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ResetArg_sequence[] = { { &hf_gsm_map_ms_sendingNodenumber, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SendingNode_Number }, { &hf_gsm_map_ms_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_reset_Id_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Reset_Id_List }, { &hf_gsm_map_ms_subscriptionData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_InsertSubscriberDataArg }, { &hf_gsm_map_ms_subscriptionDataDeletion, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DeleteSubscriberDataArg }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ResetArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg); return offset; } static const ber_sequence_t gsm_map_ms_RestoreDataArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_lmsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_vlr_Capability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_VLR_Capability }, { &hf_gsm_map_ms_restorationIndicator, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_RestoreDataArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg); return offset; } static const ber_sequence_t gsm_map_ms_RestoreDataRes_sequence[] = { { &hf_gsm_map_ms_hlr_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_msNotReachable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_RestoreDataRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes); return offset; } static const value_string gsm_map_ms_DomainType_vals[] = { { 0, "cs-Domain" }, { 1, "ps-Domain" }, { 0, NULL } }; static int dissect_gsm_map_ms_DomainType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int * const gsm_map_ms_RequestedNodes_bits[] = { &hf_gsm_map_ms_RequestedNodes_mme, &hf_gsm_map_ms_RequestedNodes_sgsn, NULL }; static int dissect_gsm_map_ms_RequestedNodes(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_RequestedNodes_bits, 2, hf_index, ett_gsm_map_ms_RequestedNodes, NULL); return offset; } static const ber_sequence_t gsm_map_ms_RequestedInfo_sequence[] = { { &hf_gsm_map_ms_locationInformation_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_subscriberState_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_currentLocation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_requestedDomain, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DomainType }, { &hf_gsm_map_ms_imei_01 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ms_classmark, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_mnpRequestedInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_locationInformationEPS_Supported, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_t_adsData, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_requestedNodes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedNodes }, { &hf_gsm_map_ms_servingNodeIndication, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_localTimeZoneRequest, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_RequestedInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo); return offset; } static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_lmsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_callPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ProvideSubscriberInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg); return offset; } static const value_string gsm_map_ms_NotReachableReason_vals[] = { { 0, "msPurged" }, { 1, "imsiDetached" }, { 2, "restrictedArea" }, { 3, "notRegistered" }, { 0, NULL } }; static int dissect_gsm_map_ms_NotReachableReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } const value_string gsm_map_ms_SubscriberState_vals[] = { { 0, "assumedIdle" }, { 1, "camelBusy" }, { 2, "netDetNotReachable" }, { 3, "notProvidedFromVLR" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_SubscriberState_choice[] = { { 0, &hf_gsm_map_ms_assumedIdle, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 1, &hf_gsm_map_ms_camelBusy, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 2, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason }, { 3, &hf_gsm_map_ms_notProvidedFromVLR, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ms_SubscriberState(bool implicit_tag _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, gsm_map_ms_SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState, NULL); return offset; } static int dissect_gsm_map_ms_NSAPI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_TransactionId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_TEID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_ms_GPRSChargingID(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_PDP_ContextInfo_sequence[] = { { &hf_gsm_map_ms_pdp_ContextIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ContextId }, { &hf_gsm_map_ms_pdp_ContextActive, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_pdp_Type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Type }, { &hf_gsm_map_ms_pdp_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { &hf_gsm_map_ms_apn_Subscribed, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_ms_apn_InUse, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_ms_nsapi , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NSAPI }, { &hf_gsm_map_ms_transactionId, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TransactionId }, { &hf_gsm_map_ms_teid_ForGnAndGp, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID }, { &hf_gsm_map_ms_teid_ForIu, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TEID }, { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_qos_Subscribed_01, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed }, { &hf_gsm_map_ms_qos_Requested, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed }, { &hf_gsm_map_ms_qos_Negotiated, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed }, { &hf_gsm_map_ms_chargingId, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID }, { &hf_gsm_map_ms_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ChargingCharacteristics }, { &hf_gsm_map_ms_rnc_Address, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_qos2_Subscribed, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed }, { &hf_gsm_map_ms_qos2_Requested, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed }, { &hf_gsm_map_ms_qos2_Negotiated, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed }, { &hf_gsm_map_ms_qos3_Subscribed, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed }, { &hf_gsm_map_ms_qos3_Requested, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed }, { &hf_gsm_map_ms_qos3_Negotiated, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed }, { &hf_gsm_map_ms_qos4_Subscribed, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed }, { &hf_gsm_map_ms_qos4_Requested, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed }, { &hf_gsm_map_ms_qos4_Negotiated, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext4_QoS_Subscribed }, { &hf_gsm_map_ms_ext_pdp_Type, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_PDP_Type }, { &hf_gsm_map_ms_ext_pdp_Address, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_Address }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PDP_ContextInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo); return offset; } static const ber_sequence_t gsm_map_ms_PDP_ContextInfoList_sequence_of[1] = { { &hf_gsm_map_ms_PDP_ContextInfoList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_PDP_ContextInfo }, }; static int dissect_gsm_map_ms_PDP_ContextInfoList(bool implicit_tag _U_, 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, gsm_map_ms_PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList); return offset; } static const value_string gsm_map_ms_PS_SubscriberState_vals[] = { { 0, "notProvidedFromSGSNorMME" }, { 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 gsm_map_ms_PS_SubscriberState_choice[] = { { 0, &hf_gsm_map_ms_notProvidedFromSGSNorMME, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 1, &hf_gsm_map_ms_ps_Detached, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 2, &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 3, &hf_gsm_map_ms_ps_AttachedReachableForPaging, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { 4, &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList }, { 5, &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PDP_ContextInfoList }, { 6, &hf_gsm_map_ms_netDetNotReachable, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NotReachableReason }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_PS_SubscriberState(bool implicit_tag _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, gsm_map_ms_PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState, NULL); return offset; } int dissect_gsm_map_ms_MS_Classmark2(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_MSNetworkCapability(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_MSRadioAccessCapability(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_GPRSMSClass_sequence[] = { { &hf_gsm_map_ms_mSNetworkCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSNetworkCapability }, { &hf_gsm_map_ms_mSRadioAccessCapability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSRadioAccessCapability }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ms_GPRSMSClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass); return offset; } static int dissect_gsm_map_ms_RouteingNumber(bool implicit_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 const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = { { 0, "notKnownToBePorted" }, { 1, "ownNumberPortedOut" }, { 2, "foreignNumberPortedToForeignNetwork" }, { 4, "ownNumberNotPortedOut" }, { 5, "foreignNumberPortedIn" }, { 0, NULL } }; static int dissect_gsm_map_ms_NumberPortabilityStatus(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_MNPInfoRes_sequence[] = { { &hf_gsm_map_ms_routeingNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RouteingNumber }, { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_numberPortabilityStatus, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_MNPInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes); return offset; } static const value_string gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals[] = { { 0, "imsVoiceOverPS-SessionsNotSupported" }, { 1, "imsVoiceOverPS-SessionsSupported" }, { 2, "unknown" }, { 0, NULL } }; static int dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ms_TimeZone(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_DaylightSavingTime_vals[] = { { 0, "noAdjustment" }, { 1, "plusOneHourAdjustment" }, { 2, "plusTwoHoursAdjustment" }, { 0, NULL } }; static int dissect_gsm_map_ms_DaylightSavingTime(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_LocationInformation5GS_sequence[] = { { &hf_gsm_map_ms_nrCellGlobalIdentity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NR_CGI }, { &hf_gsm_map_ms_e_utranCellGlobalIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_E_UTRAN_CGI }, { &hf_gsm_map_ms_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation }, { &hf_gsm_map_ms_geodeticInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeodeticInformation }, { &hf_gsm_map_ms_amf_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_FQDN }, { &hf_gsm_map_ms_trackingAreaIdentity, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TA_Id }, { &hf_gsm_map_ms_currentLocationRetrieved, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ageOfLocationInformation, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_map_ms_vplmnId , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { &hf_gsm_map_ms_localtimeZone, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone }, { &hf_gsm_map_ms_rat_Type , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_nrTrackingAreaIdentity, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NR_TA_Id }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_LocationInformation5GS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_LocationInformation5GS_sequence, hf_index, ett_gsm_map_ms_LocationInformation5GS); return offset; } static const ber_sequence_t gsm_map_ms_SubscriberInfo_sequence[] = { { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_gsm_map_ms_subscriberState, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_SubscriberState }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS }, { &hf_gsm_map_ms_ps_SubscriberState, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_PS_SubscriberState }, { &hf_gsm_map_ms_imei , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_ms_ms_Classmark2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 }, { &hf_gsm_map_ms_gprs_MS_Class, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass }, { &hf_gsm_map_ms_mnpInfoRes, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MNPInfoRes }, { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IMS_VoiceOverPS_SessionsInd }, { &hf_gsm_map_ms_lastUE_ActivityTime, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Time }, { &hf_gsm_map_ms_lastRAT_Type, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Used_RAT_Type }, { &hf_gsm_map_ms_eps_SubscriberState, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_PS_SubscriberState }, { &hf_gsm_map_ms_locationInformationEPS, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationEPS }, { &hf_gsm_map_ms_timeZone , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TimeZone }, { &hf_gsm_map_ms_daylightSavingTime, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_DaylightSavingTime }, { &hf_gsm_map_ms_locationInformation5GS, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation5GS }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_SubscriberInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo); return offset; } static const ber_sequence_t gsm_map_ms_ProvideSubscriberInfoRes_sequence[] = { { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ProvideSubscriberInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes); return offset; } static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationArg_sequence[] = { { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity }, { &hf_gsm_map_ms_requestedInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedInfo }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AnyTimeInterrogationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg); return offset; } static const ber_sequence_t gsm_map_ms_AnyTimeInterrogationRes_sequence[] = { { &hf_gsm_map_ms_subscriberInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SubscriberInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AnyTimeInterrogationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes); return offset; } static const value_string gsm_map_ms_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_ms_RequestedCAMEL_SubscriptionInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ms_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_ms_AdditionalRequestedCAMEL_SubscriptionInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_RequestedSubscriptionInfo_sequence[] = { { &hf_gsm_map_ms_requestedSS_Info, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_ForBS_Code }, { &hf_gsm_map_ms_odb , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_msisdn_BS_List_01, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_csg_SubscriptionDataRequested, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_cw_Info , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_clip_Info, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_clir_Info, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_hold_Info, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_ect_Info , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_RequestedSubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo); return offset; } static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationArg_sequence[] = { { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity }, { &hf_gsm_map_ms_requestedSubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedSubscriptionInfo }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg); return offset; } static const ber_sequence_t gsm_map_ms_CallForwardingData_sequence[] = { { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_ForwFeatureList }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CallForwardingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData); return offset; } static int dissect_gsm_map_ms_WrongPasswordAttemptsCounter(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_CallBarringData_sequence[] = { { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList }, { &hf_gsm_map_ms_password , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ss_Password }, { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CallBarringData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData); return offset; } static const ber_sequence_t gsm_map_ms_ODB_Info_sequence[] = { { &hf_gsm_map_ms_odb_Data , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ODB_Data }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ODB_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info); return offset; } static const ber_sequence_t gsm_map_ms_CAMEL_SubscriptionInfo_sequence[] = { { &hf_gsm_map_ms_o_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI }, { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList }, { &hf_gsm_map_ms_d_CSI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI }, { &hf_gsm_map_ms_t_CSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI }, { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList }, { &hf_gsm_map_ms_vt_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI }, { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList }, { &hf_gsm_map_ms_tif_CSI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_gprs_CSI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRS_CSI }, { &hf_gsm_map_ms_mo_sms_CSI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI }, { &hf_gsm_map_ms_ss_CSI , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SS_CSI }, { &hf_gsm_map_ms_m_CSI , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_M_CSI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_specificCSIDeletedList, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SpecificCSI_Withdraw }, { &hf_gsm_map_ms_mt_sms_CSI, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SMS_CSI }, { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList }, { &hf_gsm_map_ms_mg_csi , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MG_CSI }, { &hf_gsm_map_ms_o_IM_CSI , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI }, { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList }, { &hf_gsm_map_ms_d_IM_CSI , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI }, { &hf_gsm_map_ms_vt_IM_CSI, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI }, { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CAMEL_SubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo); return offset; } static const ber_sequence_t gsm_map_ms_MSISDN_BS_sequence[] = { { &hf_gsm_map_ms_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_basicServiceList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_BasicServiceList }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_MSISDN_BS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS); return offset; } static const ber_sequence_t gsm_map_ms_MSISDN_BS_List_sequence_of[1] = { { &hf_gsm_map_ms_MSISDN_BS_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_MSISDN_BS }, }; static int dissect_gsm_map_ms_MSISDN_BS_List(bool implicit_tag _U_, 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, gsm_map_ms_MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List); return offset; } static const ber_sequence_t gsm_map_ms_Ext_CwFeature_sequence[] = { { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_CwFeature(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_CwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CwFeature); return offset; } static const ber_sequence_t gsm_map_ms_Ext_CwFeatureList_sequence_of[1] = { { &hf_gsm_map_ms_Ext_CwFeatureList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Ext_CwFeature }, }; static int dissect_gsm_map_ms_Ext_CwFeatureList(bool implicit_tag _U_, 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, gsm_map_ms_Ext_CwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CwFeatureList); return offset; } static const ber_sequence_t gsm_map_ms_CallWaitingData_sequence[] = { { &hf_gsm_map_ms_cwFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CwFeatureList }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CallWaitingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CallWaitingData_sequence, hf_index, ett_gsm_map_ms_CallWaitingData); return offset; } static const ber_sequence_t gsm_map_ms_CallHoldData_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CallHoldData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CallHoldData_sequence, hf_index, ett_gsm_map_ms_CallHoldData); return offset; } static const ber_sequence_t gsm_map_ms_ClipData_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ClipData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ClipData_sequence, hf_index, ett_gsm_map_ms_ClipData); return offset; } static const ber_sequence_t gsm_map_ms_ClirData_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ClirData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ClirData_sequence, hf_index, ett_gsm_map_ms_ClirData); return offset; } static const ber_sequence_t gsm_map_ms_EctData_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_EctData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_EctData_sequence, hf_index, ett_gsm_map_ms_EctData); return offset; } static const ber_sequence_t gsm_map_ms_AnyTimeSubscriptionInterrogationRes_sequence[] = { { &hf_gsm_map_ms_callForwardingData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallForwardingData }, { &hf_gsm_map_ms_callBarringData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallBarringData }, { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info }, { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ms_msisdn_BS_List, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MSISDN_BS_List }, { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList }, { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData }, { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData }, { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData }, { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData }, { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes); return offset; } static const value_string gsm_map_ms_ModificationInstruction_vals[] = { { 0, "deactivate" }, { 1, "activate" }, { 0, NULL } }; static int dissect_gsm_map_ms_ModificationInstruction(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CF_Info_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_forwardedToNumber_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_ms_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { &hf_gsm_map_ms_noReplyConditionTime, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_NoRepCondTime }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CF_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CB_Info_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_password , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password }, { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CB_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSI_sequence[] = { { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_modifyCSI_State, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CSI(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ODB_data_sequence[] = { { &hf_gsm_map_ms_odb_data , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_ODB_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence[] = { { &hf_gsm_map_ms_modifyRegistrationStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NetworkNodeDiameterAddress }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data); return offset; } static int * const gsm_map_ms_RequestedServingNode_bits[] = { &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn, NULL }; static int dissect_gsm_map_ms_RequestedServingNode(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_RequestedServingNode_bits, 1, hf_index, ett_gsm_map_ms_RequestedServingNode, NULL); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CSG_sequence[] = { { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CSG(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CSG_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSG); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CW_Info_sequence[] = { { &hf_gsm_map_ms_basicService, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CW_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CW_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CW_Info); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIP_Info_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_overrideCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_OverrideCategory }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CLIP_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIP_Info); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CLIR_Info_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_cliRestrictionOption, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CliRestrictionOption }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CLIR_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CLIR_Info); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_CH_Info_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_CH_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_CH_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CH_Info); return offset; } static const ber_sequence_t gsm_map_ms_ModificationRequestFor_ECT_Info_sequence[] = { { &hf_gsm_map_ms_ss_Status, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ms_modifyNotificationToCSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationInstruction }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_ModificationRequestFor_ECT_Info(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_ModificationRequestFor_ECT_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ECT_Info); return offset; } static const ber_sequence_t gsm_map_ms_AnyTimeModificationArg_sequence[] = { { &hf_gsm_map_ms_subscriberIdentity, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity }, { &hf_gsm_map_ms_gsmSCF_Address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_modificationRequestFor_CF_Info, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CF_Info }, { &hf_gsm_map_ms_modificationRequestFor_CB_Info, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CB_Info }, { &hf_gsm_map_ms_modificationRequestFor_CSI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSI }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_longFTN_Supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_modificationRequestFor_ODB_data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ODB_data }, { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data }, { &hf_gsm_map_ms_activationRequestForUE_reachability, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RequestedServingNode }, { &hf_gsm_map_ms_modificationRequestFor_CSG, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CSG }, { &hf_gsm_map_ms_modificationRequestFor_CW_Data, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CW_Info }, { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIP_Info }, { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CLIR_Info }, { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_CH_Info }, { &hf_gsm_map_ms_modificationRequestFor_ECT_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ModificationRequestFor_ECT_Info }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AnyTimeModificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg); return offset; } static int * const gsm_map_ms_ServingNode_bits[] = { &hf_gsm_map_ms_ServingNode_mme, &hf_gsm_map_ms_ServingNode_sgsn, NULL }; static int dissect_gsm_map_ms_ServingNode(bool implicit_tag _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, tree, tvb, offset, gsm_map_ms_ServingNode_bits, 2, hf_index, ett_gsm_map_ms_ServingNode, NULL); return offset; } static const ber_sequence_t gsm_map_ms_Ext_ForwardingInfoFor_CSE_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_forwardingFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwFeatureList }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE); return offset; } static const ber_sequence_t gsm_map_ms_Ext_CallBarringInfoFor_CSE_sequence[] = { { &hf_gsm_map_ms_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_map_ms_callBarringFeatureList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarFeatureList }, { &hf_gsm_map_ms_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_Password }, { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_WrongPasswordAttemptsCounter }, { &hf_gsm_map_ms_notificationToCSE, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE); return offset; } static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = { { 0, "forwardingInfoFor-CSE" }, { 1, "callBarringInfoFor-CSE" }, { 0, NULL } }; static const ber_choice_t gsm_map_ms_Ext_SS_InfoFor_CSE_choice[] = { { 0, &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE }, { 1, &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_Ext_SS_InfoFor_CSE(bool implicit_tag _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, gsm_map_ms_Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE, NULL); return offset; } static const ber_sequence_t gsm_map_ms_AnyTimeModificationRes_sequence[] = { { &hf_gsm_map_ms_ss_InfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ms_Ext_SS_InfoFor_CSE }, { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info }, { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData }, { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData }, { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData }, { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData }, { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData }, { &hf_gsm_map_ms_serviceCentreAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_AnyTimeModificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes); return offset; } static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_msisdn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_forwardingInfoFor_CSE, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE }, { &hf_gsm_map_ms_callBarringInfoFor_CSE, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE }, { &hf_gsm_map_ms_odb_Info , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Info }, { &hf_gsm_map_ms_camel_SubscriptionInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CAMEL_SubscriptionInfo }, { &hf_gsm_map_ms_allInformationSent, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_ue_reachable, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServingNode }, { &hf_gsm_map_ms_csg_SubscriptionDataList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CSG_SubscriptionDataList }, { &hf_gsm_map_ms_cw_Data , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallWaitingData }, { &hf_gsm_map_ms_ch_Data , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CallHoldData }, { &hf_gsm_map_ms_clip_Data, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClipData }, { &hf_gsm_map_ms_clir_Data, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ClirData }, { &hf_gsm_map_ms_ect_data , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_EctData }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg); return offset; } static const ber_sequence_t gsm_map_ms_NoteSubscriberDataModifiedRes_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes); return offset; } static const ber_sequence_t gsm_map_ms_NoteMM_EventArg_sequence[] = { { &hf_gsm_map_ms_serviceKey, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_ServiceKey }, { &hf_gsm_map_ms_eventMet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MM_Code }, { &hf_gsm_map_ms_imsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_locationInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_gsm_map_ms_supportedCAMELPhases, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ms_locationInformationGPRS, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformationGPRS }, { &hf_gsm_map_ms_offeredCamel4Functionalities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_NoteMM_EventArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg); return offset; } static const ber_sequence_t gsm_map_ms_NoteMM_EventRes_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_NoteMM_EventRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes); return offset; } static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationArg_sequence[] = { { &hf_gsm_map_ms_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ms_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_vlr_Number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UpdateVcsgLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UpdateVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationArg); return offset; } static const ber_sequence_t gsm_map_ms_UpdateVcsgLocationRes_sequence[] = { { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_NULL }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_UpdateVcsgLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_UpdateVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateVcsgLocationRes); return offset; } static const ber_sequence_t gsm_map_ms_CancelVcsgLocationArg_sequence[] = { { &hf_gsm_map_ms_identity , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Identity }, { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CancelVcsgLocationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CancelVcsgLocationArg_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationArg); return offset; } static const ber_sequence_t gsm_map_ms_CancelVcsgLocationRes_sequence[] = { { &hf_gsm_map_ms_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ms_CancelVcsgLocationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ms_CancelVcsgLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelVcsgLocationRes); return offset; } /*--- PDUs ---*/ static int dissect_gsm_map_ms_SendAuthenticationInfoArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_gsm_map_ms_SendAuthenticationInfoArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU); return offset; } static int dissect_gsm_map_ms_SendAuthenticationInfoRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_gsm_map_ms_SendAuthenticationInfoRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU); return offset; } /* --- Module MAP-CH-DataTypes --- --- --- */ static int dissect_gsm_map_ch_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_ch_CUG_CheckInfo_sequence[] = { { &hf_gsm_map_ch_cug_Interlock, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_gsm_map_ch_cug_OutgoingAccess, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ch_CUG_CheckInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo); return offset; } static int dissect_gsm_map_ch_NumberOfForwarding(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ch_InterrogationType_vals[] = { { 0, "basicCall" }, { 1, "forwarding" }, { 0, NULL } }; static int dissect_gsm_map_ch_InterrogationType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ch_OR_Phase(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_ch_CallReferenceNumber(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ch_ForwardingReason_vals[] = { { 0, "notReachable" }, { 1, "busy" }, { 2, "noReply" }, { 0, NULL } }; static int dissect_gsm_map_ch_ForwardingReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_CamelInfo_sequence[] = { { &hf_gsm_map_ch_supportedCamelPhases, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ch_suppress_T_CSI, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_offeredCamel4CSIs, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_CamelInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo); return offset; } int dissect_gsm_map_ch_SuppressionOfAnnouncement(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static int dissect_gsm_map_ch_SupportedCCBS_Phase(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ch_CallDiversionTreatmentIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int * const gsm_map_ch_SuppressMTSS_bits[] = { &hf_gsm_map_ch_SuppressMTSS_suppressCUG, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, NULL }; static int dissect_gsm_map_ch_SuppressMTSS(bool implicit_tag _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, tree, tvb, offset, gsm_map_ch_SuppressMTSS_bits, 2, hf_index, ett_gsm_map_ch_SuppressMTSS, NULL); return offset; } static const ber_sequence_t gsm_map_ch_SendRoutingInfoArg_sequence[] = { { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo }, { &hf_gsm_map_ch_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding }, { &hf_gsm_map_ch_interrogationType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_InterrogationType }, { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_or_Capability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_OR_Phase }, { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber }, { &hf_gsm_map_ch_forwardingReason, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingReason }, { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_map_ch_camelInfo, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelInfo }, { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern }, { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_supportedCCBS_Phase, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SupportedCCBS_Phase }, { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo }, { &hf_gsm_map_ch_istSupportIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_SupportIndicator }, { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_callDiversionTreatmentIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallDiversionTreatmentIndicator }, { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_suppressIncomingCallBarring, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_gsmSCF_InitiatedCall, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ch_networkSignalInfo2, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_map_ch_suppressMTSS, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressMTSS }, { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_SendRoutingInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg); return offset; } static const ber_sequence_t gsm_map_ch_ForwardingData_sequence[] = { { &hf_gsm_map_ch_forwardedToNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_forwardedToSubaddress, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { &hf_gsm_map_ch_forwardingOptions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_ForwardingOptions }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_longForwardedToNumber, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_FTN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ForwardingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData); return offset; } static const value_string gsm_map_ch_RoutingInfo_vals[] = { { 0, "roamingNumber" }, { 1, "forwardingData" }, { 0, NULL } }; static const ber_choice_t gsm_map_ch_RoutingInfo_choice[] = { { 0, &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { 1, &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_RoutingInfo(bool implicit_tag _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, gsm_map_ch_RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo, NULL); return offset; } static const ber_sequence_t gsm_map_ch_GmscCamelSubscriptionInfo_sequence[] = { { &hf_gsm_map_ch_t_CSI , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_CSI }, { &hf_gsm_map_ch_o_CSI , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList }, { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList }, { &hf_gsm_map_ch_d_csi , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_GmscCamelSubscriptionInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo); return offset; } static const ber_sequence_t gsm_map_ch_CamelRoutingInfo_sequence[] = { { &hf_gsm_map_ch_forwardingData, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_ForwardingData }, { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_GmscCamelSubscriptionInfo }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_CamelRoutingInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo); return offset; } static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = { { 0, "routingInfo" }, { 1, "camelRoutingInfo" }, { 0, NULL } }; static const ber_choice_t gsm_map_ch_ExtendedRoutingInfo_choice[] = { { 0, &hf_gsm_map_ch_routingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo }, { 1, &hf_gsm_map_ch_camelRoutingInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CamelRoutingInfo }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ExtendedRoutingInfo(bool implicit_tag _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, gsm_map_ch_ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo, NULL); return offset; } static const ber_sequence_t gsm_map_ch_CCBS_Indicators_sequence[] = { { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_keepCCBS_CallIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_CCBS_Indicators(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators); return offset; } static int * const gsm_map_ch_AllowedServices_bits[] = { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, NULL }; static int dissect_gsm_map_ch_AllowedServices(bool implicit_tag _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, tree, tvb, offset, gsm_map_ch_AllowedServices_bits, 2, hf_index, ett_gsm_map_ch_AllowedServices, NULL); return offset; } static const value_string gsm_map_ch_UnavailabilityCause_vals[] = { { 1, "bearerServiceNotProvisioned" }, { 2, "teleserviceNotProvisioned" }, { 3, "absentSubscriber" }, { 4, "busySubscriber" }, { 5, "callBarred" }, { 6, "cug-Reject" }, { 0, NULL } }; static int dissect_gsm_map_ch_UnavailabilityCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_SendRoutingInfoRes_U_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_extendedRoutingInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_ExtendedRoutingInfo }, { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo }, { &hf_gsm_map_ch_cugSubscriptionFlag, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_subscriberInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberInfo }, { &hf_gsm_map_ch_ss_List , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List }, { &hf_gsm_map_ch_basicService, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ch_forwardingInterrogationRequired, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_naea_PreferredCI, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_NAEA_PreferredCI }, { &hf_gsm_map_ch_ccbs_Indicators, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_Indicators }, { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_numberPortabilityStatus, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NumberPortabilityStatus }, { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue }, { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ch_routingInfo2, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ch_RoutingInfo }, { &hf_gsm_map_ch_ss_List2 , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_List }, { &hf_gsm_map_ch_basicService2, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ch_allowedServices, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_AllowedServices }, { &hf_gsm_map_ch_unavailabilityCause, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UnavailabilityCause }, { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_SendRoutingInfoRes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U); return offset; } static int dissect_gsm_map_ch_SendRoutingInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U); return offset; } static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberArg_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_msc_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_ch_gsm_BearerCapability, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_map_ch_networkSignalInfo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_map_ch_suppressionOfAnnouncement, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement }, { &hf_gsm_map_ch_gmsc_Address, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber }, { &hf_gsm_map_ch_or_Interrogation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern }, { &hf_gsm_map_ch_ccbs_Call, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases }, { &hf_gsm_map_ch_additionalSignalInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_ExternalSignalInfo }, { &hf_gsm_map_ch_orNotSupportedInGMSC, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_pre_pagingSupported, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_longFTN_Supported, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_suppress_VT_CSI, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4CSIs }, { &hf_gsm_map_ch_mtRoamingRetrySupported, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_pagingArea, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_PagingArea }, { &hf_gsm_map_ch_callPriority, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_ch_mtrf_Indicator, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_oldMSC_Number, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_lastUsedLtePLMN_Id, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ProvideRoamingNumberArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg); return offset; } static const ber_sequence_t gsm_map_ch_ProvideRoamingNumberRes_sequence[] = { { &hf_gsm_map_ch_roamingNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_releaseResourcesSupported, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_vmsc_Address, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ProvideRoamingNumberRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes); return offset; } static int dissect_gsm_map_ch_UUIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ch_UUI(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_UU_Data_sequence[] = { { &hf_gsm_map_ch_uuIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUIndicator }, { &hf_gsm_map_ch_uui , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UUI }, { &hf_gsm_map_ch_uusCFInteraction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_ch_UU_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data); return offset; } static const ber_sequence_t gsm_map_ch_ResumeCallHandlingArg_sequence[] = { { &hf_gsm_map_ch_callReferenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber }, { &hf_gsm_map_ch_basicServiceGroup, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ch_forwardingData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ForwardingData }, { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_cug_CheckInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo }, { &hf_gsm_map_ch_o_CSI , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_CSI }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_ch_ccbs_Possible, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_msisdn , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_uu_Data , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data }, { &hf_gsm_map_ch_allInformationSent, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_d_csi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_D_CSI }, { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList }, { &hf_gsm_map_ch_basicServiceGroup2, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_gsm_map_ch_mtRoamingRetry, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ResumeCallHandlingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg); return offset; } static const ber_sequence_t gsm_map_ch_ResumeCallHandlingRes_sequence[] = { { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ResumeCallHandlingRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes); return offset; } static const value_string gsm_map_ch_ReportingState_vals[] = { { 0, "stopMonitoring" }, { 1, "startMonitoring" }, { 0, NULL } }; static int dissect_gsm_map_ch_ReportingState(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_SetReportingStateArg_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_lmsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_ch_ccbs_Monitoring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_ReportingState }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_SetReportingStateArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg); return offset; } static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = { { 0, "ccbsNotIdle" }, { 1, "ccbsIdle" }, { 2, "ccbsNotReachable" }, { 0, NULL } }; static int dissect_gsm_map_ch_CCBS_SubscriberStatus(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_SetReportingStateRes_sequence[] = { { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_SetReportingStateRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes); return offset; } static const ber_sequence_t gsm_map_ch_EventReportData_sequence[] = { { &hf_gsm_map_ch_ccbs_SubscriberStatus, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CCBS_SubscriberStatus }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_EventReportData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData); return offset; } static const value_string gsm_map_ch_MonitoringMode_vals[] = { { 0, "a-side" }, { 1, "b-side" }, { 0, NULL } }; static int dissect_gsm_map_ch_MonitoringMode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_ch_CallOutcome_vals[] = { { 0, "success" }, { 1, "failure" }, { 2, "busy" }, { 0, NULL } }; static int dissect_gsm_map_ch_CallOutcome(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_CallReportData_sequence[] = { { &hf_gsm_map_ch_monitoringMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_MonitoringMode }, { &hf_gsm_map_ch_callOutcome, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallOutcome }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_CallReportData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData); return offset; } static const ber_sequence_t gsm_map_ch_StatusReportArg_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_eventReportData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_EventReportData }, { &hf_gsm_map_ch_callReportdata, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReportData }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_StatusReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg); return offset; } static const ber_sequence_t gsm_map_ch_StatusReportRes_sequence[] = { { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_StatusReportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes); return offset; } static const ber_sequence_t gsm_map_ch_RemoteUserFreeArg_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_callInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_map_ch_ccbs_Feature, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature }, { &hf_gsm_map_ch_translatedB_Number, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_replaceB_Number, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_alertingPattern, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_RemoteUserFreeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg); return offset; } static const value_string gsm_map_ch_RUF_Outcome_vals[] = { { 0, "accepted" }, { 1, "rejected" }, { 2, "noResponseFromFreeMS" }, { 3, "noResponseFromBusyMS" }, { 4, "udubFromFreeMS" }, { 5, "udubFromBusyMS" }, { 0, NULL } }; static int dissect_gsm_map_ch_RUF_Outcome(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_RemoteUserFreeRes_sequence[] = { { &hf_gsm_map_ch_ruf_Outcome, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_RUF_Outcome }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_RemoteUserFreeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes); return offset; } static const ber_sequence_t gsm_map_ch_IST_AlertArg_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_IST_AlertArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg); return offset; } static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = { { 0, "terminateCallActivityReferred" }, { 1, "terminateAllCallActivities" }, { 0, NULL } }; static int dissect_gsm_map_ch_CallTerminationIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ch_IST_AlertRes_sequence[] = { { &hf_gsm_map_ch_istAlertTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_IST_AlertTimerValue }, { &hf_gsm_map_ch_istInformationWithdraw, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NULL }, { &hf_gsm_map_ch_callTerminationIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallTerminationIndicator }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_IST_AlertRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes); return offset; } static const ber_sequence_t gsm_map_ch_IST_CommandArg_sequence[] = { { &hf_gsm_map_ch_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_IST_CommandArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg); return offset; } static const ber_sequence_t gsm_map_ch_IST_CommandRes_sequence[] = { { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_IST_CommandRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes); return offset; } static const ber_sequence_t gsm_map_ch_ReleaseResourcesArg_sequence[] = { { &hf_gsm_map_ch_msrn , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ReleaseResourcesArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg); return offset; } static const ber_sequence_t gsm_map_ch_ReleaseResourcesRes_sequence[] = { { &hf_gsm_map_ch_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ch_ReleaseResourcesRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ch_ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes); return offset; } /* --- Module MAP-LCS-DataTypes --- --- --- */ static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Arg_sequence[] = { { &hf_gsm_map_lcs_mlcNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity }, { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg); return offset; } static int dissect_gsm_map_lcs_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_lcs_LCSLocationInfo_sequence[] = { { &hf_gsm_map_lcs_networkNode_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_lmsi , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_lcs_gprsNodeIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_additional_Number, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_Additional_Number }, { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets }, { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedLCS_CapabilitySets }, { &hf_gsm_map_lcs_mme_Name, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_lcs_aaa_Server_Name, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_lcs_sgsn_Name, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { &hf_gsm_map_lcs_sgsn_Realm, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_LCSLocationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo); return offset; } static const ber_sequence_t gsm_map_lcs_RoutingInfoForLCS_Res_sequence[] = { { &hf_gsm_map_lcs_targetMS, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SubscriberIdentity }, { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo }, { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_lcs_v_gmlc_Address, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_RoutingInfoForLCS_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res); return offset; } static const value_string gsm_map_lcs_LocationEstimateType_vals[] = { { 0, "currentLocation" }, { 1, "currentOrLastKnownLocation" }, { 2, "initialLocation" }, { 3, "activateDeferredLocation" }, { 4, "cancelDeferredLocation" }, { 5, "notificationVerificationOnly" }, { 0, NULL } }; static int dissect_gsm_map_lcs_LocationEstimateType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int * const gsm_map_lcs_DeferredLocationEventType_bits[] = { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, NULL }; int dissect_gsm_map_lcs_DeferredLocationEventType(bool implicit_tag _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, tree, tvb, offset, gsm_map_lcs_DeferredLocationEventType_bits, 5, hf_index, ett_gsm_map_lcs_DeferredLocationEventType, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_LocationType_sequence[] = { { &hf_gsm_map_lcs_locationEstimateType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationEstimateType }, { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_LocationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType); return offset; } const value_string gsm_map_lcs_LCSClientType_vals[] = { { 0, "emergencyServices" }, { 1, "valueAddedServices" }, { 2, "plmnOperatorServices" }, { 3, "lawfulInterceptServices" }, { 0, NULL } }; int dissect_gsm_map_lcs_LCSClientType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_NameString(bool implicit_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_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static const value_string gsm_map_lcs_LCS_FormatIndicator_vals[] = { { 0, "logicalName" }, { 1, "e-mailAddress" }, { 2, "msisdn" }, { 3, "url" }, { 4, "sipUrl" }, { 0, NULL } }; static int dissect_gsm_map_lcs_LCS_FormatIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_LCSClientName_sequence[] = { { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme }, { &hf_gsm_map_lcs_nameString, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NameString }, { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_LCSClientName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName); return offset; } static int dissect_gsm_map_lcs_RequestorIDString(bool implicit_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_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static const ber_sequence_t gsm_map_lcs_LCSRequestorID_sequence[] = { { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme }, { &hf_gsm_map_lcs_requestorIDString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RequestorIDString }, { &hf_gsm_map_lcs_lcs_FormatIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_FormatIndicator }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_LCSRequestorID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID); return offset; } static const ber_sequence_t gsm_map_lcs_LCS_ClientID_sequence[] = { { &hf_gsm_map_lcs_lcsClientType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType }, { &hf_gsm_map_lcs_lcsClientExternalID, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID }, { &hf_gsm_map_lcs_lcsClientDialedByMS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_lcs_lcsClientInternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID }, { &hf_gsm_map_lcs_lcsClientName, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName }, { &hf_gsm_map_lcs_lcsAPN , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_APN }, { &hf_gsm_map_lcs_lcsRequestorID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_LCS_ClientID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID); return offset; } int dissect_gsm_map_lcs_LCS_Priority(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_Horizontal_Accuracy(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_Vertical_Accuracy(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = { { 0, "lowdelay" }, { 1, "delaytolerant" }, { 0, NULL } }; static int dissect_gsm_map_lcs_ResponseTimeCategory(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_ResponseTime_sequence[] = { { &hf_gsm_map_lcs_responseTimeCategory, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ResponseTimeCategory }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_ResponseTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime); return offset; } static const ber_sequence_t gsm_map_lcs_LCS_QoS_sequence[] = { { &hf_gsm_map_lcs_horizontal_accuracy, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Horizontal_Accuracy }, { &hf_gsm_map_lcs_verticalCoordinateRequest, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_vertical_accuracy, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Vertical_Accuracy }, { &hf_gsm_map_lcs_responseTime, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ResponseTime }, { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_lcs_velocityRequest, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_LCS_QoS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS); return offset; } static int * const gsm_map_lcs_SupportedGADShapes_bits[] = { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, &hf_gsm_map_lcs_SupportedGADShapes_polygon, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, NULL }; int dissect_gsm_map_lcs_SupportedGADShapes(bool implicit_tag _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, tree, tvb, offset, gsm_map_lcs_SupportedGADShapes_bits, 7, hf_index, ett_gsm_map_lcs_SupportedGADShapes, NULL); return offset; } int dissect_gsm_map_lcs_LCS_ReferenceNumber(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_LCSCodewordString(bool implicit_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_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static const ber_sequence_t gsm_map_lcs_LCSCodeword_sequence[] = { { &hf_gsm_map_lcs_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme }, { &hf_gsm_map_lcs_lcsCodewordString, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodewordString }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_LCSCodeword(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword); return offset; } static const value_string gsm_map_lcs_PrivacyCheckRelatedAction_vals[] = { { 0, "allowedWithoutNotification" }, { 1, "allowedWithNotification" }, { 2, "allowedIfNoResponse" }, { 3, "restrictedIfNoResponse" }, { 4, "notAllowed" }, { 0, NULL } }; static int dissect_gsm_map_lcs_PrivacyCheckRelatedAction(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_LCS_PrivacyCheck_sequence[] = { { &hf_gsm_map_lcs_callSessionUnrelated, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction }, { &hf_gsm_map_lcs_callSessionRelated, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PrivacyCheckRelatedAction }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_LCS_PrivacyCheck(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck); return offset; } static const value_string gsm_map_lcs_AreaType_vals[] = { { 0, "countryCode" }, { 1, "plmnId" }, { 2, "locationAreaId" }, { 3, "routingAreaId" }, { 4, "cellGlobalId" }, { 5, "utranCellId" }, { 0, NULL } }; static int dissect_gsm_map_lcs_AreaType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_AreaIdentification(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_Area_sequence[] = { { &hf_gsm_map_lcs_areaType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaType }, { &hf_gsm_map_lcs_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaIdentification }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_Area(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_Area_sequence, hf_index, ett_gsm_map_lcs_Area); return offset; } static const ber_sequence_t gsm_map_lcs_AreaList_sequence_of[1] = { { &hf_gsm_map_lcs_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Area }, }; static int dissect_gsm_map_lcs_AreaList(bool implicit_tag _U_, 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, gsm_map_lcs_AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList); return offset; } static const ber_sequence_t gsm_map_lcs_AreaDefinition_sequence[] = { { &hf_gsm_map_lcs_areaList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_AreaDefinition(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition); return offset; } static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = { { 0, "oneTimeEvent" }, { 1, "multipleTimeEvent" }, { 0, NULL } }; static int dissect_gsm_map_lcs_OccurrenceInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_IntervalTime(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_AreaEventInfo_sequence[] = { { &hf_gsm_map_lcs_areaDefinition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaDefinition }, { &hf_gsm_map_lcs_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo }, { &hf_gsm_map_lcs_intervalTime, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_map_lcs_AreaEventInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo); return offset; } static int dissect_gsm_map_lcs_ReportingAmount(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_ReportingInterval(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_PeriodicLDRInfo_sequence[] = { { &hf_gsm_map_lcs_reportingAmount, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingAmount }, { &hf_gsm_map_lcs_reportingInterval, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingInterval }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_PeriodicLDRInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo); return offset; } static const value_string gsm_map_lcs_RAN_Technology_vals[] = { { 0, "gsm" }, { 1, "umts" }, { 0, NULL } }; static int dissect_gsm_map_lcs_RAN_Technology(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_ReportingPLMN_sequence[] = { { &hf_gsm_map_lcs_plmn_Id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_PLMN_Id }, { &hf_gsm_map_lcs_ran_Technology, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_RAN_Technology }, { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_ReportingPLMN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN); return offset; } static const ber_sequence_t gsm_map_lcs_PLMNList_sequence_of[1] = { { &hf_gsm_map_lcs_PLMNList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_ReportingPLMN }, }; static int dissect_gsm_map_lcs_PLMNList(bool implicit_tag _U_, 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, gsm_map_lcs_PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList); return offset; } static const ber_sequence_t gsm_map_lcs_ReportingPLMNList_sequence[] = { { &hf_gsm_map_lcs_plmn_ListPrioritized, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_plmn_List, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PLMNList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_ReportingPLMNList(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList); return offset; } static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Arg_sequence[] = { { &hf_gsm_map_lcs_locationType, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LocationType }, { &hf_gsm_map_lcs_mlc_Number, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ClientID }, { &hf_gsm_map_lcs_privacyOverride, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_imsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_lcs_msisdn , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_lmsi , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, { &hf_gsm_map_lcs_imei , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_lcs_lcs_Priority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority }, { &hf_gsm_map_lcs_lcs_QoS , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS }, { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_lcs_supportedGADShapes, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes }, { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID }, { &hf_gsm_map_lcs_lcsCodeword, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword }, { &hf_gsm_map_lcs_lcs_PrivacyCheck, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_PrivacyCheck }, { &hf_gsm_map_lcs_areaEventInfo, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo }, { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo }, { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg); return offset; } int dissect_gsm_map_lcs_Ext_GeographicalInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GeographicalInformation); dissect_geographical_description(parameter_tvb, actx->pinfo, subtree); return offset; } int dissect_gsm_map_lcs_Add_GeographicalInformation(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_PositioningDataInformation(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_UtranPositioningDataInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = { { 0, "requestedAccuracyFulfilled" }, { 1, "requestedAccuracyNotFulfilled" }, { 0, NULL } }; static int dissect_gsm_map_lcs_AccuracyFulfilmentIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_map_lcs_VelocityEstimate(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_GeranGANSSpositioningData(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_UtranGANSSpositioningData(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_lcs_ServingNodeAddress_vals[] = { { 0, "msc-Number" }, { 1, "sgsn-Number" }, { 2, "mme-Number" }, { 0, NULL } }; static const ber_choice_t gsm_map_lcs_ServingNodeAddress_choice[] = { { 0, &hf_gsm_map_lcs_msc_Number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 1, &hf_gsm_map_lcs_sgsn_Number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 2, &hf_gsm_map_lcs_mme_Number, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_DiameterIdentity }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_ServingNodeAddress(bool implicit_tag _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, gsm_map_lcs_ServingNodeAddress_choice, hf_index, ett_gsm_map_lcs_ServingNodeAddress, NULL); return offset; } static int dissect_gsm_map_lcs_UtranAdditionalPositioningData(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_UtranBaroPressureMeas(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_lcs_UtranCivicAddress(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_ProvideSubscriberLocation_Res_sequence[] = { { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation }, { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation }, { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo }, { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI }, { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator }, { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate }, { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData }, { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData }, { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress }, { &hf_gsm_map_lcs_utranAdditionalPositioningData, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranAdditionalPositioningData }, { &hf_gsm_map_lcs_utranBaroPressureMeas, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranBaroPressureMeas }, { &hf_gsm_map_lcs_utranCivicAddress, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranCivicAddress }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res); return offset; } static const value_string gsm_map_lcs_LCS_Event_vals[] = { { 0, "emergencyCallOrigination" }, { 1, "emergencyCallRelease" }, { 2, "mo-lr" }, { 3, "deferredmt-lrResponse" }, { 4, "deferredmo-lrTTTPInitiation" }, { 5, "emergencyCallHandover" }, { 0, NULL } }; static int dissect_gsm_map_lcs_LCS_Event(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_lcs_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_lcs_TerminationCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_Deferredmt_lrData_sequence[] = { { &hf_gsm_map_lcs_deferredLocationEventType, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_DeferredLocationEventType }, { &hf_gsm_map_lcs_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_TerminationCause }, { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSLocationInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_Deferredmt_lrData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData); return offset; } static int dissect_gsm_map_lcs_SequenceNumber(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Arg_sequence[] = { { &hf_gsm_map_lcs_lcs_Event, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_Event }, { &hf_gsm_map_lcs_lcs_ClientID, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCS_ClientID }, { &hf_gsm_map_lcs_lcsLocationInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_lcs_LCSLocationInfo }, { &hf_gsm_map_lcs_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_lcs_imei , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_locationEstimate, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, { &hf_gsm_map_lcs_ageOfLocationEstimate, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_map_lcs_slr_ArgExtensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SLR_ArgExtensionContainer }, { &hf_gsm_map_lcs_add_LocationEstimate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation }, { &hf_gsm_map_lcs_deferredmt_lrData, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Deferredmt_lrData }, { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_map_lcs_geranPositioningData, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PositioningDataInformation }, { &hf_gsm_map_lcs_utranPositioningData, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranPositioningDataInfo }, { &hf_gsm_map_lcs_cellIdOrSai, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI }, { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_lcs_lcsServiceTypeID, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID }, { &hf_gsm_map_lcs_sai_Present, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_pseudonymIndicator, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AccuracyFulfilmentIndicator }, { &hf_gsm_map_lcs_velocityEstimate, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate }, { &hf_gsm_map_lcs_sequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber }, { &hf_gsm_map_lcs_periodicLDRInfo, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo }, { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_geranGANSSpositioningData, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_GeranGANSSpositioningData }, { &hf_gsm_map_lcs_utranGANSSpositioningData, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranGANSSpositioningData }, { &hf_gsm_map_lcs_targetServingNodeForHandover, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_lcs_ServingNodeAddress }, { &hf_gsm_map_lcs_utranAdditionalPositioningData, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranAdditionalPositioningData }, { &hf_gsm_map_lcs_utranBaroPressureMeas, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranBaroPressureMeas }, { &hf_gsm_map_lcs_utranCivicAddress, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_UtranCivicAddress }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_SubscriberLocationReport_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg); return offset; } static const ber_sequence_t gsm_map_lcs_SubscriberLocationReport_Res_sequence[] = { { &hf_gsm_map_lcs_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_lcs_na_ESRK , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_na_ESRD , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_NULL }, { &hf_gsm_map_lcs_reportingPLMNList, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList }, { &hf_gsm_map_lcs_lcs_ReferenceNumber, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_lcs_SubscriberLocationReport_Res(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_lcs_SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res); return offset; } /*--- PDUs ---*/ int dissect_gsm_map_lcs_LCS_ClientID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_gsm_map_lcs_LCS_ClientID(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU); return offset; } /* --- Module MAP-GR-DataTypes --- --- --- */ static int dissect_gsm_map_gr_CODEC_Info(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_gr_CipheringAlgorithm(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_gr_GroupKeyNumber(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_gr_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static int dissect_gsm_map_gr_VSTK(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_gr_VSTK_RAND(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_gr_PrepareGroupCallArg_sequence[] = { { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode }, { &hf_gsm_map_gr_asciCallReference, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ASCI_CallReference }, { &hf_gsm_map_gr_codec_Info, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CODEC_Info }, { &hf_gsm_map_gr_cipheringAlgorithm, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_CipheringAlgorithm }, { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_GroupKeyNumber }, { &hf_gsm_map_gr_groupKey , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc }, { &hf_gsm_map_gr_priority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_EMLPP_Priority }, { &hf_gsm_map_gr_uplinkFree, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_gr_vstk , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK }, { &hf_gsm_map_gr_vstk_rand, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_VSTK_RAND }, { &hf_gsm_map_gr_talkerChannelParameter, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkReplyIndicator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_PrepareGroupCallArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg); return offset; } static const ber_sequence_t gsm_map_gr_PrepareGroupCallRes_sequence[] = { { &hf_gsm_map_gr_groupCallNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_PrepareGroupCallRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes); return offset; } static const value_string gsm_map_gr_TalkerPriority_vals[] = { { 0, "normal" }, { 1, "privileged" }, { 2, "emergency" }, { 0, NULL } }; static int dissect_gsm_map_gr_TalkerPriority(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalArg_sequence[] = { { &hf_gsm_map_gr_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority }, { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_SendGroupCallEndSignalArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg); return offset; } static const ber_sequence_t gsm_map_gr_SendGroupCallEndSignalRes_sequence[] = { { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_SendGroupCallEndSignalRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes); return offset; } static const ber_sequence_t gsm_map_gr_StateAttributes_sequence[] = { { &hf_gsm_map_gr_downlinkAttached, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkAttached, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_dualCommunication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_callOriginator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_StateAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes); return offset; } static const ber_sequence_t gsm_map_gr_ForwardGroupCallSignallingArg_sequence[] = { { &hf_gsm_map_gr_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_gr_uplinkRequestAck, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkRejectCommand, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkSeizedCommand, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkReleaseCommand, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_gr_stateAttributes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_StateAttributes }, { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority }, { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo }, { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_sm_RP_UI , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_map_gr_an_APDU , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_ForwardGroupCallSignallingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg); return offset; } static const ber_sequence_t gsm_map_gr_ProcessGroupCallSignallingArg_sequence[] = { { &hf_gsm_map_gr_uplinkRequest, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_uplinkReleaseIndication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_releaseGroupCall, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority }, { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo }, { &hf_gsm_map_gr_emergencyModeResetCommandFlag, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_NULL }, { &hf_gsm_map_gr_an_APDU , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AccessNetworkSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_ProcessGroupCallSignallingArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg); return offset; } static const value_string gsm_map_gr_RequestedInfo_vals[] = { { 0, "anchorMSC-AddressAndASCI-CallReference" }, { 1, "imsiAndAdditionalInfoAndAdditionalSubscription" }, { 0, NULL } }; static int dissect_gsm_map_gr_RequestedInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_gr_SendGroupCallInfoArg_sequence[] = { { &hf_gsm_map_gr_requestedInfo, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_gr_RequestedInfo }, { &hf_gsm_map_gr_groupId , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_Long_GroupId }, { &hf_gsm_map_gr_teleservice, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_TeleserviceCode }, { &hf_gsm_map_gr_cellId , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GlobalCellId }, { &hf_gsm_map_gr_imsi , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_gr_tmsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TMSI }, { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo }, { &hf_gsm_map_gr_talkerPriority, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_gr_TalkerPriority }, { &hf_gsm_map_gr_cksn , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Cksn }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_SendGroupCallInfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg); return offset; } static const ber_sequence_t gsm_map_gr_SendGroupCallInfoRes_sequence[] = { { &hf_gsm_map_gr_anchorMSC_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_map_gr_asciCallReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ASCI_CallReference }, { &hf_gsm_map_gr_imsi , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_gr_additionalInfo, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalInfo }, { &hf_gsm_map_gr_additionalSubscriptions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_AdditionalSubscriptions }, { &hf_gsm_map_gr_kc , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Kc }, { &hf_gsm_map_gr_extensionContainer, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_gr_SendGroupCallInfoRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_gr_SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes); return offset; } /* --- Module MAP-DialogueInformation --- --- --- */ static const ber_sequence_t gsm_map_dialogue_MAP_OpenInfo_sequence[] = { { &hf_gsm_map_dialogue_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_dialogue_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_OpenInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_dialogue_MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo); return offset; } static const ber_sequence_t gsm_map_dialogue_MAP_AcceptInfo_sequence[] = { { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_AcceptInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_dialogue_MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo); return offset; } static const ber_sequence_t gsm_map_dialogue_MAP_CloseInfo_sequence[] = { { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_CloseInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_dialogue_MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo); return offset; } static const value_string gsm_map_dialogue_Reason_vals[] = { { 0, "noReasonGiven" }, { 1, "invalidDestinationReference" }, { 2, "invalidOriginatingReference" }, { 0, NULL } }; static int dissect_gsm_map_dialogue_Reason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_dialogue_OBJECT_IDENTIFIER(bool implicit_tag _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(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_dialogue_MAP_RefuseInfo_sequence[] = { { &hf_gsm_map_dialogue_reason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_Reason }, { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { &hf_gsm_map_dialogue_alternativeApplicationContext, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_OBJECT_IDENTIFIER }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_RefuseInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_dialogue_MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo); return offset; } static int dissect_gsm_map_dialogue_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = { { 0, "shortTermResourceLimitation" }, { 1, "longTermResourceLimitation" }, { 0, NULL } }; static int dissect_gsm_map_dialogue_ResourceUnavailableReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_dialogue_ProcedureCancellationReason_vals[] = { { 0, "handoverCancellation" }, { 1, "radioChannelRelease" }, { 2, "networkPathRelease" }, { 3, "callRelease" }, { 4, "associatedProcedureFailure" }, { 5, "tandemDialogueRelease" }, { 6, "remoteOperationsFailure" }, { 0, NULL } }; static int dissect_gsm_map_dialogue_ProcedureCancellationReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = { { 0, "userSpecificReason" }, { 1, "userResourceLimitation" }, { 2, "resourceUnavailable" }, { 3, "applicationProcedureCancellation" }, { 0, NULL } }; static const ber_choice_t gsm_map_dialogue_MAP_UserAbortChoice_choice[] = { { 0, &hf_gsm_map_dialogue_userSpecificReason, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL }, { 1, &hf_gsm_map_dialogue_userResourceLimitation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_NULL }, { 2, &hf_gsm_map_dialogue_resourceUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ResourceUnavailableReason }, { 3, &hf_gsm_map_dialogue_applicationProcedureCancellation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_ProcedureCancellationReason }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_UserAbortChoice(bool implicit_tag _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, gsm_map_dialogue_MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice, NULL); return offset; } static const ber_sequence_t gsm_map_dialogue_MAP_UserAbortInfo_sequence[] = { { &hf_gsm_map_dialogue_map_UserAbortChoice, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_dialogue_MAP_UserAbortChoice }, { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_UserAbortInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_dialogue_MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo); return offset; } static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = { { 0, "abnormalDialogue" }, { 1, "invalidPDU" }, { 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_ProviderAbortReason(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_dialogue_MAP_ProviderAbortInfo_sequence[] = { { &hf_gsm_map_dialogue_map_ProviderAbortReason, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortReason }, { &hf_gsm_map_dialogue_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_ProviderAbortInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_dialogue_MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo); return offset; } static const value_string gsm_map_dialogue_MAP_DialoguePDU_vals[] = { { 0, "map-open" }, { 1, "map-accept" }, { 2, "map-close" }, { 3, "map-refuse" }, { 4, "map-userAbort" }, { 5, "map-providerAbort" }, { 0, NULL } }; static const ber_choice_t gsm_map_dialogue_MAP_DialoguePDU_choice[] = { { 0, &hf_gsm_map_dialogue_map_open, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_OpenInfo }, { 1, &hf_gsm_map_dialogue_map_accept, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_AcceptInfo }, { 2, &hf_gsm_map_dialogue_map_close, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_CloseInfo }, { 3, &hf_gsm_map_dialogue_map_refuse, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_RefuseInfo }, { 4, &hf_gsm_map_dialogue_map_userAbort, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_UserAbortInfo }, { 5, &hf_gsm_map_dialogue_map_providerAbort, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_dialogue_MAP_ProviderAbortInfo }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_dialogue_MAP_DialoguePDU(bool implicit_tag _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, gsm_map_dialogue_MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU, NULL); return offset; } /*--- PDUs ---*/ static int dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, offset, &asn1_ctx, tree, hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU); return offset; } /* --- Module MAP-LocationServiceOperations --- --- --- */ /* --- Module MAP-Group-Call-Operations --- --- --- */ /* --- Module MAP-ShortMessageServiceOperations --- --- --- */ /* --- Module MAP-SupplementaryServiceOperations --- --- --- */ /* --- Module MAP-CallHandlingOperations --- --- --- */ /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ /* --- Module MAP-MobileServiceOperations --- --- --- */ /* --- Module MAP-Errors --- --- --- */ /* --- Module MAP-Protocol --- --- --- */ /* --- Module DummyMAP --- --- --- */ static int dissect_gsm_old_InvokeIdType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_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" }, { 16, "notifySS" }, { 17, "registerPassword" }, { 18, "getPassword" }, { 19, "processUnstructuredSS-Data" }, { 20, "releaseResources" }, { 21, "mt-ForwardSM-VGCS" }, { 22, "sendRoutingInfo" }, { 23, "updateGprsLocation" }, { 24, "sendRoutingInfoForGprs" }, { 25, "failureReport" }, { 26, "noteMsPresentForGprs" }, { 27, "unAllocated" }, { 28, "performHandover" }, { 29, "sendEndSignal" }, { 30, "performSubsequentHandover" }, { 31, "provideSIWFSNumber" }, { 32, "sIWFSSignallingModify" }, { 33, "processAccessSignalling" }, { 34, "forwardAccessSignalling" }, { 35, "noteInternalHandover" }, { 36, "cancelVcsgLocation" }, { 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" }, { 53, "updateVcsgLocation" }, { 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" }, { 82, "unAllocated" }, { 83, "provideSubscriberLocation" }, { 84, "sendGroupCallInfo" }, { 85, "sendRoutingInfoForLCS" }, { 86, "subscriberLocationReport" }, { 87, "ist-Alert" }, { 88, "ist-Command" }, { 89, "noteMM-Event" }, { 90, "unAllocated" }, { 91, "unAllocated" }, { 92, "unAllocated" }, { 93, "unAllocated" }, { 94, "unAllocated" }, { 95, "unAllocated" }, { 96, "unAllocated" }, { 97, "unAllocated" }, { 98, "unAllocated" }, { 99, "unAllocated" }, { 100, "unAllocated" }, { 101, "unAllocated" }, { 102, "unAllocated" }, { 103, "unAllocated" }, { 104, "unAllocated" }, { 105, "unAllocated" }, { 106, "unAllocated" }, { 107, "unAllocated" }, { 108, "unAllocated" }, { 109, "lcs-PeriodicLocationCancellation" }, { 110, "lcs-LocationUpdate" }, { 111, "lcs-PeriodicLocationRequest" }, { 112, "lcs-AreaEventCancellation" }, { 113, "lcs-AreaEventReport" }, { 114, "lcs-AreaEventRequest" }, { 115, "lcs-MOLR" }, { 116, "lcs-LocationNotification" }, { 117, "callDeflection" }, { 118, "userUserService" }, { 119, "accessRegisterCCEntry" }, { 120, "forwardCUG-Info" }, { 121, "splitMPTY" }, { 122, "retrieveMPTY" }, { 123, "holdMPTY" }, { 124, "buildMPTY" }, { 125, "forwardChargeAdvice" }, { 126, "explicitCT" }, { 0, NULL } }; static value_string_ext gsm_old_GSMMAPOperationLocalvalue_vals_ext = VALUE_STRING_EXT_INIT(gsm_old_GSMMAPOperationLocalvalue_vals); static int dissect_gsm_old_GSMMAPOperationLocalvalue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { const char *opcode_string; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, &opcode); /* Retrieve opcode string and eventually update item value */ opcode_string = gsm_map_opr_code(opcode, actx->created_item); col_append_str(actx->pinfo->cinfo, COL_INFO, opcode_string); col_append_str(actx->pinfo->cinfo, COL_INFO, " "); return offset; } static int dissect_gsm_old_OperationLocalvalue(bool implicit_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_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static int dissect_gsm_old_OBJECT_IDENTIFIER(bool implicit_tag _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(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_MAP_OPERATION_vals[] = { { 0, "localValue" }, { 1, "globalValue" }, { 0, NULL } }; static const ber_choice_t gsm_old_MAP_OPERATION_choice[] = { { 0, &hf_gsm_old_localValue , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OperationLocalvalue }, { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_MAP_OPERATION(bool implicit_tag _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, gsm_old_MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION, NULL); return offset; } static int dissect_gsm_old_InvokeParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_invokeData(tree, tvb, offset, actx); return offset; } static const ber_sequence_t gsm_old_Invoke_sequence[] = { { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType }, { &hf_gsm_old_linkedID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeIdType }, { &hf_gsm_old_opCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION }, { &hf_gsm_old_invokeparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeParameter }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_Invoke(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_Invoke_sequence, hf_index, ett_gsm_old_Invoke); return offset; } static int dissect_gsm_old_ReturnResultParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_returnResultData(tree, tvb, offset, actx); return offset; } static const ber_sequence_t gsm_old_T_resultretres_sequence[] = { { &hf_gsm_old_opCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_OPERATION }, { &hf_gsm_old_returnparameter, BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnResultParameter }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_T_resultretres(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres); return offset; } static const ber_sequence_t gsm_old_ReturnResult_sequence[] = { { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType }, { &hf_gsm_old_resultretres, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_T_resultretres }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ReturnResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult); return offset; } const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = { { 1, "unknownSubscriber" }, { 2, "unknownBaseStation" }, { 3, "unknownMSC" }, { 4, "secureTransportError" }, { 5, "unidentifiedSubscriber" }, { 6, "absentSubscriberSM" }, { 7, "unknownEquipment" }, { 8, "roamingNotAllowed" }, { 9, "illegalSubscriber" }, { 10, "bearerServiceNotProvisioned" }, { 11, "teleserviceNotProvisioned" }, { 12, "illegalEquipment" }, { 13, "callBarred" }, { 14, "forwardingViolation" }, { 15, "cug-Reject" }, { 16, "illegalSS-Operation" }, { 17, "ss-ErrorStatus" }, { 18, "ss-NotAvailable" }, { 19, "ss-SubscriptionViolation" }, { 20, "ss-Incompatibility" }, { 21, "facilityNotSupported" }, { 22, "ongoingGroupCall" }, { 23, "invalidTargetBaseStation" }, { 24, "noRadioResourceAvailable" }, { 25, "noHandoverNumberAvailable" }, { 26, "subsequentHandoverFailure" }, { 27, "absentSubscriber" }, { 28, "incompatibleTerminal" }, { 29, "shortTermDenial" }, { 30, "longTermDenial" }, { 31, "subscriberBusyForMT-SMS" }, { 32, "sm-DeliveryFailure" }, { 33, "messageWaitingListFull" }, { 34, "systemFailure" }, { 35, "dataMissing" }, { 36, "unexpectedDataValue" }, { 37, "pw-RegistrationFailure" }, { 38, "negativePW-Check" }, { 39, "noRoamingNumberAvailable" }, { 40, "tracingBufferFull" }, { 42, "targetCellOutsideGroupCallArea" }, { 43, "numberOfPW-AttemptsViolation" }, { 44, "numberChanged" }, { 45, "busySubscriber" }, { 46, "noSubscriberReply" }, { 47, "forwardingFailed" }, { 48, "or-NotAllowed" }, { 49, "ati-NotAllowed" }, { 50, "noGroupCallNumberAvailable" }, { 51, "resourceLimitation" }, { 52, "unauthorizedRequestingNetwork" }, { 53, "unauthorizedLCSClient" }, { 54, "positionMethodFailure" }, { 58, "unknownOrUnreachableLCSClient" }, { 59, "mm-EventNotSupported" }, { 60, "atsi-NotAllowed" }, { 61, "atm-NotAllowed" }, { 62, "informationNotAvailable" }, { 71, "unknownAlphabet" }, { 72, "ussd-Busy" }, { 0, NULL } }; int dissect_gsm_old_GSMMAPLocalErrorcode(bool implicit_tag _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, tree, tvb, offset, hf_index, &errorCode); return offset; } static int dissect_gsm_old_LocalErrorcode(bool implicit_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_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static const value_string gsm_old_MAP_ERROR_vals[] = { { 0, "localValue" }, { 1, "globalValue" }, { 0, NULL } }; static const ber_choice_t gsm_old_MAP_ERROR_choice[] = { { 0, &hf_gsm_old_localValue_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_LocalErrorcode }, { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_MAP_ERROR(bool implicit_tag _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, gsm_old_MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR, NULL); return offset; } static int dissect_gsm_old_ReturnErrorParameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_returnErrorData(tree, tvb, offset, actx); return offset; } static const ber_sequence_t gsm_old_ReturnError_sequence[] = { { &hf_gsm_old_invokeID , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType }, { &hf_gsm_old_errorCode , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_MAP_ERROR }, { &hf_gsm_old_parameter , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ReturnErrorParameter }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ReturnError(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_ReturnError_sequence, hf_index, ett_gsm_old_ReturnError); return offset; } static int dissect_gsm_old_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const value_string gsm_old_T_invokeIDRej_vals[] = { { 0, "derivable" }, { 1, "not-derivable" }, { 0, NULL } }; static const ber_choice_t gsm_old_T_invokeIDRej_choice[] = { { 0, &hf_gsm_old_derivable , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_InvokeIdType }, { 1, &hf_gsm_old_not_derivable, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_T_invokeIDRej(bool implicit_tag _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, gsm_old_T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej, NULL); return offset; } static const value_string gsm_old_GeneralProblem_vals[] = { { 0, "unrecognizedComponent" }, { 1, "mistypedComponent" }, { 2, "badlyStructuredComponent" }, { 0, NULL } }; static int dissect_gsm_old_GeneralProblem(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_InvokeProblem_vals[] = { { 0, "duplicateInvokeID" }, { 1, "unrecognizedOperation" }, { 2, "mistypedParameter" }, { 3, "resourceLimitation" }, { 4, "initiatingRelease" }, { 5, "unrecognizedLinkedID" }, { 6, "linkedResponseUnexpected" }, { 7, "unexpectedLinkedOperation" }, { 0, NULL } }; static int dissect_gsm_old_InvokeProblem(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_ReturnResultProblem_vals[] = { { 0, "unrecognizedInvokeID" }, { 1, "returnResultUnexpected" }, { 2, "mistypedParameter" }, { 0, NULL } }; static int dissect_gsm_old_ReturnResultProblem(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_ReturnErrorProblem_vals[] = { { 0, "unrecognizedInvokeID" }, { 1, "returnErrorUnexpected" }, { 2, "unrecognizedError" }, { 3, "unexpectedError" }, { 4, "mistypedParameter" }, { 0, NULL } }; static int dissect_gsm_old_ReturnErrorProblem(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_T_problem_vals[] = { { 0, "generalProblem" }, { 1, "invokeProblem" }, { 2, "returnResultProblem" }, { 3, "returnErrorProblem" }, { 0, NULL } }; static const ber_choice_t gsm_old_T_problem_choice[] = { { 0, &hf_gsm_old_generalProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_GeneralProblem }, { 1, &hf_gsm_old_invokeProblem, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_InvokeProblem }, { 2, &hf_gsm_old_returnResultProblem, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResultProblem }, { 3, &hf_gsm_old_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnErrorProblem }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_T_problem(bool implicit_tag _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, gsm_old_T_problem_choice, hf_index, ett_gsm_old_T_problem, NULL); return offset; } static const ber_sequence_t gsm_old_Reject_sequence[] = { { &hf_gsm_old_invokeIDRej , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_invokeIDRej }, { &hf_gsm_old_problem , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_T_problem }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_Reject(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_Reject_sequence, hf_index, ett_gsm_old_Reject); return offset; } static const value_string gsm_old_Component_vals[] = { { 1, "invoke" }, { 2, "returnResultLast" }, { 3, "returnError" }, { 4, "reject" }, { 7, "returnResultNotLast" }, { 0, NULL } }; static const ber_choice_t gsm_old_Component_choice[] = { { 1, &hf_gsm_old_invoke , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_Invoke }, { 2, &hf_gsm_old_returnResultLast, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult }, { 3, &hf_gsm_old_returnError , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnError }, { 4, &hf_gsm_old_reject , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Reject }, { 7, &hf_gsm_old_returnResultNotLast, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_old_ReturnResult }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_Component(bool implicit_tag _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, gsm_old_Component_choice, hf_index, ett_gsm_old_Component, NULL); return offset; } static const ber_sequence_t gsm_old_Bss_APDU_sequence[] = { { &hf_gsm_old_protocolId , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ProtocolId }, { &hf_gsm_old_signalInfo , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_old_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_Bss_APDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { guint8 octet; guint8 length; tvbuff_t *next_tvb; proto_tree *subtree; /* ETS 300 599: December 2000 (GSM 09.02 version 4.19.1) 5.6.9.1 BSS-apdu This parameter includes one or two concatenated complete 08.06 messages, as described in GSM 03.09 and GSM 09.10. The Protocol ID indicates that the message or messages are according to GSM 08.06. For the coding of the messages see GSM 08.06 and GSM 08.08. */ ProtocolId = 0xffffffff; gsm_map_private_info_t *gsm_map_priv; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_old_Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU); gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_externalsignalinfo); switch (ProtocolId){ case 1: /* gsm-0408 */ /* As per comment abowe Individual IE:(s) will be found here in TLV format * Unfortunately a branch for each IE must be made to call the appropriate * function */ /* Get tag */ octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); proto_tree_add_item(subtree, hf_gsm_map_ie_tag, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN); /* get length */ length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1); proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN); /* Branch on tag */ switch(octet){ case 4: /* Dissect the data part */ de_bearer_cap(gsm_map_priv->signal_info_tvb, subtree, actx->pinfo, 2, length, NULL, 0); /* TODO: There may be more than one IE */ break; default: proto_tree_add_expert(subtree, actx->pinfo, &ei_gsm_map_undecoded, gsm_map_priv->signal_info_tvb, 0, length); break; }/* switch(octet) */ break; case 2: /* gsm-0806 */ octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); /* Discrimination parameter */ proto_tree_add_item(subtree, hf_gsm_map_disc_par, gsm_map_priv->signal_info_tvb, 0,1,ENC_BIG_ENDIAN); if ( octet == 0) {/* DISCRIMINATION TS 48 006(GSM 08.06 version 5.3.0) */ /* Strip off discrimination and length */ proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN); next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2); call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info); }else if(octet==1){ proto_tree_add_item(subtree, hf_gsm_map_dlci, gsm_map_priv->signal_info_tvb, 1,1,ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_len, gsm_map_priv->signal_info_tvb, 2,1,ENC_BIG_ENDIAN); next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 3); call_dissector(dtap_handle, next_tvb, actx->pinfo, subtree); } break; case 3: /* gsm-BSSMAP -- Value 3 is reserved and must not be used*/ octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); if ( octet == 0) {/* DISCRIMINATION TS 48 006 */ next_tvb = tvb_new_subset_remaining(gsm_map_priv->signal_info_tvb, 2); call_dissector_with_data(bssap_handle, next_tvb, actx->pinfo, subtree, gsm_map_priv->sccp_msg_info); } break; /* ets-300102-1 (~Q.931 ) */ case 4: octet = tvb_get_guint8(gsm_map_priv->signal_info_tvb,0); length = tvb_get_guint8(gsm_map_priv->signal_info_tvb,1); if ( octet == 4 ) dissect_q931_bearer_capability_ie(gsm_map_priv->signal_info_tvb, 2, length, subtree); break; default: break; }/*switch (ProtocolId)*/ return offset; } static int dissect_gsm_old_CallDirection(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_ProvideSIWFSNumberArg_sequence[] = { { &hf_gsm_old_gsm_BearerCapability, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_isdn_BearerCapability, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_call_Direction, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_CallDirection }, { &hf_gsm_old_b_Subscriber_Address, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_lowerLayerCompatibility, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_highLayerCompatibility, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ProvideSIWFSNumberArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg); return offset; } static const ber_sequence_t gsm_old_ProvideSIWFSNumberRes_sequence[] = { { &hf_gsm_old_sIWFSNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ProvideSIWFSNumberRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes); return offset; } static const ber_sequence_t gsm_old_PurgeMSArgV2_sequence[] = { { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_old_vlr_Number , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_PurgeMSArgV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2); return offset; } static const ber_sequence_t gsm_old_PrepareHO_ArgOld_sequence[] = { { &hf_gsm_old_targetCellId, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_GlobalCellId }, { &hf_gsm_old_ho_NumberNotRequired, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL }, { &hf_gsm_old_bss_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_PrepareHO_ArgOld(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld); return offset; } static const ber_sequence_t gsm_old_PrepareHO_ResOld_sequence[] = { { &hf_gsm_old_handoverNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_bss_APDU , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_Bss_APDU }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_PrepareHO_ResOld(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld); return offset; } static int dissect_gsm_old_RAND(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_old_SRES(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_old_Kc(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_item_sequence[] = { { &hf_gsm_old_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND }, { &hf_gsm_old_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES }, { &hf_gsm_old_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SendAuthenticationInfoResOld_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item); return offset; } static const ber_sequence_t gsm_old_SendAuthenticationInfoResOld_sequence_of[1] = { { &hf_gsm_old_SendAuthenticationInfoResOld_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SendAuthenticationInfoResOld_item }, }; static int dissect_gsm_old_SendAuthenticationInfoResOld(bool implicit_tag _U_, 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, gsm_old_SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld); return offset; } static const ber_sequence_t gsm_old_AuthenticationTriplet_v2_sequence[] = { { &hf_gsm_old_rand , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RAND }, { &hf_gsm_old_sres , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SRES }, { &hf_gsm_old_kc , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_Kc }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_AuthenticationTriplet_v2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2); return offset; } static const ber_sequence_t gsm_old_TripletListold_sequence_of[1] = { { &hf_gsm_old_TripletListold_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_AuthenticationTriplet_v2 }, }; static int dissect_gsm_old_TripletListold(bool implicit_tag _U_, 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, gsm_old_TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold); return offset; } static const ber_sequence_t gsm_old_SendIdentificationResV2_sequence[] = { { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_old_tripletList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_TripletListold }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SendIdentificationResV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2); return offset; } static const ber_sequence_t gsm_old_SIWFSSignallingModifyArg_sequence[] = { { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_chosenChannel, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SIWFSSignallingModifyArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg); return offset; } static const ber_sequence_t gsm_old_SIWFSSignallingModifyRes_sequence[] = { { &hf_gsm_old_channelType , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { &hf_gsm_old_extensionContainer, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SIWFSSignallingModifyRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes); return offset; } int dissect_gsm_old_NewPassword(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } const value_string gsm_old_GetPasswordArg_vals[] = { { 0, "enterPW" }, { 1, "enterNewPW" }, { 2, "enterNewPW-Again" }, { 0, NULL } }; int dissect_gsm_old_GetPasswordArg(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_gsm_old_CurrentPassword(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_old_SecurityParametersIndex(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_old_INTEGER(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_OperationCode_vals[] = { { 0, "localValue" }, { 1, "globalValue" }, { 0, NULL } }; static const ber_choice_t gsm_old_OperationCode_choice[] = { { 0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER }, { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_OperationCode(bool implicit_tag _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, gsm_old_OperationCode_choice, hf_index, ett_gsm_old_OperationCode, NULL); return offset; } static const value_string gsm_old_ErrorCode_vals[] = { { 0, "localValue" }, { 1, "globalValue" }, { 0, NULL } }; static const ber_choice_t gsm_old_ErrorCode_choice[] = { { 0, &hf_gsm_old_localValue_02, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_old_INTEGER }, { 1, &hf_gsm_old_globalValue , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OBJECT_IDENTIFIER }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ErrorCode(bool implicit_tag _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, gsm_old_ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode, NULL); return offset; } static const value_string gsm_old_OriginalComponentIdentifier_vals[] = { { 0, "operationCode" }, { 1, "errorCode" }, { 2, "userInfo" }, { 0, NULL } }; static const ber_choice_t gsm_old_OriginalComponentIdentifier_choice[] = { { 0, &hf_gsm_old_operationCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_OperationCode }, { 1, &hf_gsm_old_errorCode_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_ErrorCode }, { 2, &hf_gsm_old_userInfo , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_OriginalComponentIdentifier(bool implicit_tag _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, gsm_old_OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier, NULL); return offset; } static int dissect_gsm_old_InitialisationVector(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_SecurityHeader_sequence[] = { { &hf_gsm_old_securityParametersIndex, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityParametersIndex }, { &hf_gsm_old_originalComponentIdentifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_OriginalComponentIdentifier }, { &hf_gsm_old_initialisationVector, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_InitialisationVector }, { NULL, 0, 0, 0, NULL } }; int dissect_gsm_old_SecurityHeader(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader); return offset; } int dissect_gsm_old_ProtectedPayload(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_SecureTransportArg_sequence[] = { { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader }, { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SecureTransportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg); return offset; } static const ber_sequence_t gsm_old_SecureTransportErrorParam_sequence[] = { { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader }, { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SecureTransportErrorParam(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam); return offset; } static const ber_sequence_t gsm_old_SecureTransportRes_sequence[] = { { &hf_gsm_old_securityHeader, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_SecurityHeader }, { &hf_gsm_old_protectedPayload, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_ProtectedPayload }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SecureTransportRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes); return offset; } static int dissect_gsm_old_Category(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_old_OCTET_STRING_SIZE_1(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_T_operatorSS_Code_sequence_of[1] = { { &hf_gsm_old_operatorSS_Code_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_old_OCTET_STRING_SIZE_1 }, }; static int dissect_gsm_old_T_operatorSS_Code(bool implicit_tag _U_, 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, gsm_old_T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code); return offset; } static const ber_sequence_t gsm_old_PlmnContainer_U_sequence[] = { { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_category , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_Category }, { &hf_gsm_old_basicService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_BasicServiceCode }, { &hf_gsm_old_operatorSS_Code, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_T_operatorSS_Code }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_PlmnContainer_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U); return offset; } static int dissect_gsm_old_PlmnContainer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 2, TRUE, dissect_gsm_old_PlmnContainer_U); return offset; } static int dissect_gsm_old_T_imsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_SENT; offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_IMSI; gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_old_T_lmsi(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_SENT; offset = dissect_gsm_map_LMSI(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_LMSI; gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_old_T_serviceCentreAddressDA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_RECV; offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_da_id = GSM_MAP_SM_RP_DA_SERVICE_CENTER_ADDRESS; gsm_map_pi->sm_rp_da_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_old_T_noSM_RP_DA(bool implicit_tag _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, tree, tvb, offset, hf_index); if (!PINFO_FD_VISITED(actx->pinfo)) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE); gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx); if (prev_packet_info) { gsm_map_pi->sm_rp_da_id = prev_packet_info->sm_rp_da_id; gsm_map_pi->sm_rp_da_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_da_str); } } return offset; } static const value_string gsm_old_SM_RP_DAold_vals[] = { { 0, "imsi" }, { 1, "lmsi" }, { 4, "serviceCentreAddressDA" }, { 5, "noSM-RP-DA" }, { 0, NULL } }; static const ber_choice_t gsm_old_SM_RP_DAold_choice[] = { { 0, &hf_gsm_old_imsi_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_imsi }, { 1, &hf_gsm_old_lmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_lmsi }, { 4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressDA }, { 5, &hf_gsm_old_noSM_RP_DA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_noSM_RP_DA }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SM_RP_DAold(bool implicit_tag _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, gsm_old_SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold, NULL); return offset; } static int dissect_gsm_old_T_msisdn(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_RECV; offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_MSISDN; gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_old_T_serviceCentreAddressOA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { actx->private_data = NULL; actx->pinfo->p2p_dir = P2P_DIR_SENT; offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); if (actx->private_data) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, TRUE); gsm_map_pi->sm_rp_oa_id = GSM_MAP_SM_RP_OA_SERVICE_CENTER_ADDRESS; gsm_map_pi->sm_rp_oa_str = (const gchar*)actx->private_data; actx->private_data = NULL; } return offset; } static int dissect_gsm_old_T_noSM_RP_OA(bool implicit_tag _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, tree, tvb, offset, hf_index); if (!PINFO_FD_VISITED(actx->pinfo)) { gsm_map_packet_info_t *gsm_map_pi = gsm_map_get_packet_info(actx, FALSE); gsm_map_packet_info_t *prev_packet_info = gsm_map_get_matching_tcap_info(actx); if (prev_packet_info) { gsm_map_pi->sm_rp_oa_id = prev_packet_info->sm_rp_oa_id; gsm_map_pi->sm_rp_oa_str = wmem_strdup(wmem_file_scope(), prev_packet_info->sm_rp_oa_str); } } return offset; } static const value_string gsm_old_SM_RP_OAold_vals[] = { { 2, "msisdn" }, { 4, "serviceCentreAddressOA" }, { 5, "noSM-RP-OA" }, { 0, NULL } }; static const ber_choice_t gsm_old_SM_RP_OAold_choice[] = { { 2, &hf_gsm_old_msisdn_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_msisdn }, { 4, &hf_gsm_old_serviceCentreAddressOA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_serviceCentreAddressOA }, { 5, &hf_gsm_old_noSM_RP_OA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_T_noSM_RP_OA }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SM_RP_OAold(bool implicit_tag _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, gsm_old_SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold, NULL); return offset; } static const ber_sequence_t gsm_old_ForwardSM_Arg_sequence[] = { { &hf_gsm_old_sm_RP_DA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_DAold }, { &hf_gsm_old_sm_RP_OA , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SM_RP_OAold }, { &hf_gsm_old_sm_RP_UI , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { &hf_gsm_old_moreMessagesToSend, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_old_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ForwardSM_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, gsm_old_ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg); if (!gsm_map_priv || !gsm_map_priv->signal_info_tvb) return offset; if (actx->pinfo->p2p_dir == P2P_DIR_UNKNOWN) { if (gsmmap_pdu_type == 1) { actx->pinfo->p2p_dir = P2P_DIR_SENT; } else { actx->pinfo->p2p_dir = P2P_DIR_RECV; } } call_dissector_only(gsm_sms_handle, gsm_map_priv->signal_info_tvb, actx->pinfo, actx->subtree.top_tree, NULL); return offset; } static const ber_sequence_t gsm_old_SendRoutingInfoArgV2_sequence[] = { { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_cug_CheckInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CUG_CheckInfo }, { &hf_gsm_old_numberOfForwarding, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_NumberOfForwarding }, { &hf_gsm_old_networkSignalInfo, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExternalSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SendRoutingInfoArgV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SendRoutingInfoArgV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoArgV2); return offset; } static const ber_sequence_t gsm_old_SendRoutingInfoResV2_sequence[] = { { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_old_routingInfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_RoutingInfo }, { &hf_gsm_old_cug_CheckInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ch_CUG_CheckInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SendRoutingInfoResV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SendRoutingInfoResV2_sequence, hf_index, ett_gsm_old_SendRoutingInfoResV2); return offset; } static const ber_sequence_t gsm_old_BeginSubscriberActivityArg_sequence[] = { { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_old_originatingEntityNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_msisdn_02 , BER_CLASS_PRI, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_BeginSubscriberActivityArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_BeginSubscriberActivityArg_sequence, hf_index, ett_gsm_old_BeginSubscriberActivityArg); return offset; } static int dissect_gsm_old_BOOLEAN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_RoutingInfoForSM_ArgV1_sequence[] = { { &hf_gsm_old_msisdn , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_sm_RP_PRI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN }, { &hf_gsm_old_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_old_cug_Interlock, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_gsm_old_teleserviceCode, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode }, { &hf_gsm_old_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_RoutingInfoForSM_ArgV1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_RoutingInfoForSM_ArgV1_sequence, hf_index, ett_gsm_old_RoutingInfoForSM_ArgV1); return offset; } static const value_string gsm_old_LocationInfo_vals[] = { { 0, "roamingNumber" }, { 1, "msc-Number" }, { 0, NULL } }; static const ber_choice_t gsm_old_LocationInfo_choice[] = { { 0, &hf_gsm_old_roamingNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 1, &hf_gsm_old_msc_Number , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_LocationInfo(bool implicit_tag _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, gsm_old_LocationInfo_choice, hf_index, ett_gsm_old_LocationInfo, NULL); return offset; } static const ber_sequence_t gsm_old_LocationInfoWithLMSIv2_sequence[] = { { &hf_gsm_old_locationInfo, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_LocationInfo }, { &hf_gsm_old_lmsi_01 , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_LMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_LocationInfoWithLMSIv2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_LocationInfoWithLMSIv2_sequence, hf_index, ett_gsm_old_LocationInfoWithLMSIv2); return offset; } static const ber_sequence_t gsm_old_RoutingInfoForSM_ResV2_sequence[] = { { &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, { &hf_gsm_old_locationInfoWithLMSI, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_old_LocationInfoWithLMSIv2 }, { &hf_gsm_old_mwd_Set , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_RoutingInfoForSM_ResV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_RoutingInfoForSM_ResV2_sequence, hf_index, ett_gsm_old_RoutingInfoForSM_ResV2); return offset; } static int dissect_gsm_old_Ki(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_old_RequestParameter_vals[] = { { 0, "requestIMSI" }, { 1, "requestAuthenticationSet" }, { 2, "requestSubscriberData" }, { 4, "requestKi" }, { 0, NULL } }; static int dissect_gsm_old_RequestParameter(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_old_RequestParameterList_sequence_of[1] = { { &hf_gsm_old_RequestParameterList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RequestParameter }, }; static int dissect_gsm_old_RequestParameterList(bool implicit_tag _U_, 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, gsm_old_RequestParameterList_sequence_of, hf_index, ett_gsm_old_RequestParameterList); return offset; } static const ber_sequence_t gsm_old_SendParametersArg_sequence[] = { { &hf_gsm_old_subscriberId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SubscriberId }, { &hf_gsm_old_requestParameterList, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_old_RequestParameterList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SendParametersArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_SendParametersArg_sequence, hf_index, ett_gsm_old_SendParametersArg); return offset; } static const value_string gsm_old_AuthenticationSetListOld_vals[] = { { 0, "tripletList" }, { 1, "quintupletList" }, { 0, NULL } }; static const ber_choice_t gsm_old_AuthenticationSetListOld_choice[] = { { 0, &hf_gsm_old_tripletList_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_TripletList }, { 1, &hf_gsm_old_quintupletList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QuintupletList }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_AuthenticationSetListOld(bool implicit_tag _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, gsm_old_AuthenticationSetListOld_choice, hf_index, ett_gsm_old_AuthenticationSetListOld, NULL); return offset; } static const value_string gsm_old_SentParameter_vals[] = { { 0, "imsi" }, { 1, "authenticationSet" }, { 2, "subscriberData" }, { 4, "ki" }, { 0, NULL } }; static const ber_choice_t gsm_old_SentParameter_choice[] = { { 0, &hf_gsm_old_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { 1, &hf_gsm_old_authenticationSet, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_AuthenticationSetListOld }, { 2, &hf_gsm_old_subscriberData, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberData }, { 4, &hf_gsm_old_ki , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_old_Ki }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_SentParameter(bool implicit_tag _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, gsm_old_SentParameter_choice, hf_index, ett_gsm_old_SentParameter, NULL); return offset; } static const ber_sequence_t gsm_old_SentParameterList_sequence_of[1] = { { &hf_gsm_old_SentParameterList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_old_SentParameter }, }; static int dissect_gsm_old_SentParameterList(bool implicit_tag _U_, 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, gsm_old_SentParameterList_sequence_of, hf_index, ett_gsm_old_SentParameterList); return offset; } static const ber_sequence_t gsm_old_ResetArgV1_sequence[] = { { &hf_gsm_old_networkResource, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_NetworkResource }, { &hf_gsm_old_hlr_Number , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_old_hlr_List , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_HLR_List }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_old_ResetArgV1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_old_ResetArgV1_sequence, hf_index, ett_gsm_old_ResetArgV1); return offset; } /* --- Module SS-DataTypes --- --- --- */ static int dissect_gsm_ss_SS_UserData(bool implicit_tag _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_IA5String, actx, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_SS_Notification(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const value_string gsm_ss_CallOnHold_Indicator_vals[] = { { 0, "callRetrieved" }, { 1, "callOnHold" }, { 0, NULL } }; static int dissect_gsm_ss_CallOnHold_Indicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_ss_ECT_CallState_vals[] = { { 0, "alerting" }, { 1, "active" }, { 0, NULL } }; static int dissect_gsm_ss_ECT_CallState(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_RemotePartyNumber_sequence[] = { { &hf_gsm_ss_partyNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_ss_partyNumberSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_RemotePartyNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber); return offset; } static const value_string gsm_ss_RDN_vals[] = { { 0, "presentationAllowedAddress" }, { 1, "presentationRestricted" }, { 2, "numberNotAvailableDueToInterworking" }, { 3, "presentationRestrictedAddress" }, { 0, NULL } }; static const ber_choice_t gsm_ss_RDN_choice[] = { { 0, &hf_gsm_ss_presentationAllowedAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber }, { 1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { 2, &hf_gsm_ss_numberNotAvailableDueToInterworking, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { 3, &hf_gsm_ss_presentationRestrictedAddress, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_RemotePartyNumber }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_RDN(bool implicit_tag _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, gsm_ss_RDN_choice, hf_index, ett_gsm_ss_RDN, NULL); return offset; } static const ber_sequence_t gsm_ss_ECT_Indicator_sequence[] = { { &hf_gsm_ss_ect_CallState, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_CallState }, { &hf_gsm_ss_rdn , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_RDN }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_ECT_Indicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator); return offset; } static int dissect_gsm_ss_INTEGER(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_NameSet_sequence[] = { { &hf_gsm_ss_dataCodingScheme, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_DataCodingScheme }, { &hf_gsm_ss_lengthInCharacters, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_INTEGER }, { &hf_gsm_ss_nameString , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_USSD_String }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_NameSet(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_NameSet_sequence, hf_index, ett_gsm_ss_NameSet); return offset; } static const value_string gsm_ss_Name_vals[] = { { 0, "namePresentationAllowed" }, { 1, "presentationRestricted" }, { 2, "nameUnavailable" }, { 3, "namePresentationRestricted" }, { 0, NULL } }; static const ber_choice_t gsm_ss_Name_choice[] = { { 0, &hf_gsm_ss_namePresentationAllowed, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet }, { 1, &hf_gsm_ss_presentationRestricted, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { 2, &hf_gsm_ss_nameUnavailable, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { 3, &hf_gsm_ss_namePresentationRestricted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameSet }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_Name(bool implicit_tag _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, gsm_ss_Name_choice, hf_index, ett_gsm_ss_Name, NULL); return offset; } static const ber_sequence_t gsm_ss_NameIndicator_sequence[] = { { &hf_gsm_ss_callingName , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_ss_Name }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_NameIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator); return offset; } static const value_string gsm_ss_Multicall_Indicator_vals[] = { { 0, "nbr-SNexceeded" }, { 1, "nbr-Userexceeded" }, { 0, NULL } }; static int dissect_gsm_ss_Multicall_Indicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_NotifySS_Arg_sequence[] = { { &hf_gsm_ss_ss_Code , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_ss_ss_Status , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_SS_Status }, { &hf_gsm_ss_ss_Notification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SS_Notification }, { &hf_gsm_ss_callIsWaiting_Indicator, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_callOnHold_Indicator, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_CallOnHold_Indicator }, { &hf_gsm_ss_mpty_Indicator, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_cug_Index , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index }, { &hf_gsm_ss_clirSuppressionRejected, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_ect_Indicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_ECT_Indicator }, { &hf_gsm_ss_nameIndicator, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NameIndicator }, { &hf_gsm_ss_ccbs_Feature , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ss_CCBS_Feature }, { &hf_gsm_ss_alertingPattern, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AlertingPattern }, { &hf_gsm_ss_multicall_Indicator, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Multicall_Indicator }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_NotifySS_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg); return offset; } static int dissect_gsm_ss_E1(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_E2(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_E3(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_E4(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_E5(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_E6(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_E7(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_ChargingInformation_sequence[] = { { &hf_gsm_ss_e1 , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E1 }, { &hf_gsm_ss_e2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E2 }, { &hf_gsm_ss_e3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E3 }, { &hf_gsm_ss_e4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E4 }, { &hf_gsm_ss_e5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E5 }, { &hf_gsm_ss_e6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E6 }, { &hf_gsm_ss_e7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_E7 }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_ChargingInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation); return offset; } static const ber_sequence_t gsm_ss_ForwardChargeAdviceArg_sequence[] = { { &hf_gsm_ss_ss_Code , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_SS_Code }, { &hf_gsm_ss_chargingInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_ChargingInformation }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_ForwardChargeAdviceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg); return offset; } static const ber_sequence_t gsm_ss_ForwardCUG_InfoArg_sequence[] = { { &hf_gsm_ss_cug_Index , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index }, { &hf_gsm_ss_suppressPrefCUG, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_suppressOA , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_ForwardCUG_InfoArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg); return offset; } static const ber_sequence_t gsm_ss_AccessRegisterCCEntryArg_sequence[] = { { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_AccessRegisterCCEntryArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg); return offset; } static const ber_sequence_t gsm_ss_CallDeflectionArg_sequence[] = { { &hf_gsm_ss_deflectedToNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_gsm_ss_deflectedToSubaddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_SubaddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_CallDeflectionArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg); return offset; } static const value_string gsm_ss_UUS_Service_vals[] = { { 1, "uUS1" }, { 2, "uUS2" }, { 3, "uUS3" }, { 0, NULL } }; static int dissect_gsm_ss_UUS_Service(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_BOOLEAN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_UserUserServiceArg_sequence[] = { { &hf_gsm_ss_uUS_Service , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_UUS_Service }, { &hf_gsm_ss_uUS_Required , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_BOOLEAN }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_UserUserServiceArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg); return offset; } static int * const gsm_ss_DeferredLocationExt_bits[] = { &hf_gsm_ss_DeferredLocationExt_motionEvent, NULL }; static int dissect_gsm_ss_DeferredLocationExt(bool implicit_tag _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, tree, tvb, offset, gsm_ss_DeferredLocationExt_bits, 1, hf_index, ett_gsm_ss_DeferredLocationExt, NULL); return offset; } static const ber_sequence_t gsm_ss_LocationNotificationArg_sequence[] = { { &hf_gsm_ss_notificationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser }, { &hf_gsm_ss_locationType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType }, { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID }, { &hf_gsm_ss_lcsClientName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientName }, { &hf_gsm_ss_lcsRequestorID, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSRequestorID }, { &hf_gsm_ss_lcsCodeword , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSCodeword }, { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID }, { &hf_gsm_ss_deferredLocationExt, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DeferredLocationExt }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LocationNotificationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg); return offset; } static const value_string gsm_ss_VerificationResponse_vals[] = { { 0, "permissionDenied" }, { 1, "permissionGranted" }, { 0, NULL } }; static int dissect_gsm_ss_VerificationResponse(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_LocationNotificationRes_sequence[] = { { &hf_gsm_ss_verificationResponse, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_VerificationResponse }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LocationNotificationRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes); return offset; } static const value_string gsm_ss_MOLR_Type_vals[] = { { 0, "locationEstimate" }, { 1, "assistanceData" }, { 2, "deCipheringKeys" }, { 3, "deferredMo-lrTTTPInitiation" }, { 4, "deferredMo-lrSelfLocationInitiation" }, { 5, "deferredMt-lrOrmo-lrTTTPLocationEstimate" }, { 6, "deferredMt-lrOrmo-lrCancellation" }, { 7, "periodicEvent" }, { 8, "enteringAreaEvent" }, { 9, "leavingAreaEvent" }, { 10, "beingInsideAreaEvent" }, { 11, "motionEvent" }, { 12, "maximumIntervalExpirationEvent" }, { 0, NULL } }; static int dissect_gsm_ss_MOLR_Type(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } const value_string gsm_ss_LocationMethod_vals[] = { { 0, "msBasedEOTD" }, { 1, "msAssistedEOTD" }, { 2, "assistedGPS" }, { 3, "msBasedOTDOA" }, { 4, "assistedGANSS" }, { 5, "assistedGPSandGANSS" }, { 0, NULL } }; int dissect_gsm_ss_LocationMethod(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_GPSAssistanceData(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const value_string gsm_ss_TerminationCause_vals[] = { { 0, "subscriberTermination" }, { 1, "uETermination" }, { 0, NULL } }; static int dissect_gsm_ss_TerminationCause(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_GANSSAssistanceData(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_PositioningProtocolPDU(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_MultiplePositioningProtocolPDUs_sequence_of[1] = { { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_PositioningProtocolPDU }, }; static int dissect_gsm_ss_MultiplePositioningProtocolPDUs(bool implicit_tag _U_, 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, gsm_ss_MultiplePositioningProtocolPDUs_sequence_of, hf_index, ett_gsm_ss_MultiplePositioningProtocolPDUs); return offset; } static int * const gsm_ss_Location_Info_bits[] = { &hf_gsm_ss_Location_Info_locationEstimate, NULL }; static int dissect_gsm_ss_Location_Info(bool implicit_tag _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, tree, tvb, offset, gsm_ss_Location_Info_bits, 1, hf_index, ett_gsm_ss_Location_Info, NULL); return offset; } static const ber_sequence_t gsm_ss_LCS_MOLRArg_sequence[] = { { &hf_gsm_ss_molr_Type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_MOLR_Type }, { &hf_gsm_ss_locationMethod, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod }, { &hf_gsm_ss_lcs_QoS , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS }, { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID }, { &hf_gsm_ss_mlc_Number , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_gsm_ss_gpsAssistanceData, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GPSAssistanceData }, { &hf_gsm_ss_supportedGADShapes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SupportedGADShapes }, { &hf_gsm_ss_lcsServiceTypeID, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSServiceTypeID }, { &hf_gsm_ss_ageOfLocationInfo, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AgeOfLocationInformation }, { &hf_gsm_ss_locationType , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType }, { &hf_gsm_ss_pseudonymIndicator, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate }, { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo }, { &hf_gsm_ss_locationUpdateRequest, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber }, { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause }, { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_ganssAssistanceData, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_GANSSAssistanceData }, { &hf_gsm_ss_multiplePositioningProtocolPDUs, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MultiplePositioningProtocolPDUs }, { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Location_Info }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_MOLRArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg); return offset; } static int dissect_gsm_ss_DecipheringKeys(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_LCS_MOLRRes_sequence[] = { { &hf_gsm_ss_locationEstimate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, { &hf_gsm_ss_decipheringKeys, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_DecipheringKeys }, { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation }, { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate }, { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_MOLRRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes); return offset; } static const ber_sequence_t gsm_ss_LCS_AreaEventRequestArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType }, { &hf_gsm_ss_areaEventInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_AreaEventInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_AreaEventRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg); return offset; } static const ber_sequence_t gsm_ss_LCS_AreaEventReportArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_AreaEventReportArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg); return offset; } static const ber_sequence_t gsm_ss_LCS_AreaEventCancellationArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_AreaEventCancellationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg); return offset; } static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo }, { &hf_gsm_ss_lcsClientExternalID, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID }, { &hf_gsm_ss_qoS , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_PeriodicLocationRequestArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg); return offset; } static const ber_sequence_t gsm_ss_LCS_PeriodicLocationRequestRes_sequence[] = { { &hf_gsm_ss_mo_lrShortCircuit, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_PeriodicLocationRequestRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes); return offset; } static const ber_sequence_t gsm_ss_LCS_LocationUpdateArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_add_LocationEstimate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Add_GeographicalInformation }, { &hf_gsm_ss_velocityEstimate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_VelocityEstimate }, { &hf_gsm_ss_sequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_SequenceNumber }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_LocationUpdateArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg); return offset; } static const ber_sequence_t gsm_ss_LCS_LocationUpdateRes_sequence[] = { { &hf_gsm_ss_terminationCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_TerminationCause }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_LocationUpdateRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes); return offset; } static const ber_sequence_t gsm_ss_LCS_PeriodicLocationCancellationArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg); return offset; } static const ber_sequence_t gsm_ss_PeriodicLocation_sequence[] = { { &hf_gsm_ss_periodicLDRInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_PeriodicLDRInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_PeriodicLocation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_PeriodicLocation_sequence, hf_index, ett_gsm_ss_PeriodicLocation); return offset; } static const value_string gsm_ss_AreaType_vals[] = { { 0, "trackingArea" }, { 1, "ecgi" }, { 0, NULL } }; static int dissect_gsm_ss_AreaType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_AreaIdentification(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_Area_sequence[] = { { &hf_gsm_ss_areaType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaType }, { &hf_gsm_ss_areaIdentification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaIdentification }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_Area(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_Area_sequence, hf_index, ett_gsm_ss_Area); return offset; } static const ber_sequence_t gsm_ss_AreaList_sequence_of[1] = { { &hf_gsm_ss_AreaList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_ss_Area }, }; static int dissect_gsm_ss_AreaList(bool implicit_tag _U_, 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, gsm_ss_AreaList_sequence_of, hf_index, ett_gsm_ss_AreaList); return offset; } static int dissect_gsm_ss_MaximumInterval(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_SamplingInterval(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_ss_Duration(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_AreaEventReporting_sequence[] = { { &hf_gsm_ss_deferredLocationEventType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_DeferredLocationEventType }, { &hf_gsm_ss_areaList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaList }, { &hf_gsm_ss_occurrenceInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo }, { &hf_gsm_ss_intervalTime , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime }, { &hf_gsm_ss_maximumInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumInterval }, { &hf_gsm_ss_samplingInterval, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SamplingInterval }, { &hf_gsm_ss_duration , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration }, { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Location_Info }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_AreaEventReporting(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_AreaEventReporting_sequence, hf_index, ett_gsm_ss_AreaEventReporting); return offset; } static int dissect_gsm_ss_LinearDistance(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_ss_MotionEventReporting_sequence[] = { { &hf_gsm_ss_linearDistance, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LinearDistance }, { &hf_gsm_ss_occurrenceInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_OccurrenceInfo }, { &hf_gsm_ss_intervalTime , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_IntervalTime }, { &hf_gsm_ss_maximumInterval, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MaximumInterval }, { &hf_gsm_ss_samplingInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_SamplingInterval }, { &hf_gsm_ss_duration , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Duration }, { &hf_gsm_ss_locationInfo , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_Location_Info }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_MotionEventReporting(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_MotionEventReporting_sequence, hf_index, ett_gsm_ss_MotionEventReporting); return offset; } static const ber_sequence_t gsm_ss_LCS_PeriodicTriggeredInvokeArg_sequence[] = { { &hf_gsm_ss_referenceNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_ReferenceNumber }, { &hf_gsm_ss_h_gmlc_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, { &hf_gsm_ss_qoS , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_QoS }, { &hf_gsm_ss_reportingPLMNList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_ReportingPLMNList }, { &hf_gsm_ss_periodicLocation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_PeriodicLocation }, { &hf_gsm_ss_areaEventReporting, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_AreaEventReporting }, { &hf_gsm_ss_motionEventReporting, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ss_MotionEventReporting }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_PeriodicTriggeredInvokeArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg); return offset; } static const ber_sequence_t gsm_ss_LCS_PeriodicTriggeredInvokeRes_sequence[] = { { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_ss_LCS_PeriodicTriggeredInvokeRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes); return offset; } /* --- Module SS-Operations --- --- --- */ /* --- Module EricssonMAP --- --- --- */ static int dissect_gsm_map_ericsson_T_locationInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { tvbuff_t *parameter_tvb; proto_tree *subtree; guint8 rat; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); if (parameter_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_ericsson_locationInformation); rat = tvb_get_guint8(parameter_tvb, 0); proto_tree_add_uint(subtree, hf_gsm_map_ericsson_locationInformation_rat, parameter_tvb, 0, 1, rat); switch (rat) { case 0: /* GSM */ proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_ci, parameter_tvb, 3, 2, ENC_BIG_ENDIAN); break; case 1: /* UMTS */ proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_lac, parameter_tvb, 1, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_gsm_map_ericsson_locationInformation_sac, parameter_tvb, 3, 2, ENC_BIG_ENDIAN); break; default: break; } } return offset; } static const ber_sequence_t gsm_map_ericsson_EnhancedCheckIMEI_Arg_sequence[] = { { &hf_gsm_map_ericsson_imei, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMEI }, { &hf_gsm_map_ericsson_requestedEquipmentInfo, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ms_RequestedEquipmentInfo }, { &hf_gsm_map_ericsson_imsi, BER_CLASS_PRI, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_gsm_map_ericsson_locationInformation, BER_CLASS_PRI, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_T_locationInformation }, { &hf_gsm_map_ericsson_extensionContainer, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gsm_map_ExtensionContainer }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_EnhancedCheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg); return offset; } static int dissect_gsm_map_ericsson_PrivateFeatureCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gsm_map_ericsson_SubscriptionType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ericsson_SubscriptionTypeInfo_sequence[] = { { &hf_gsm_map_ericsson_subscriptionType, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SubscriptionType }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_SubscriptionTypeInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_SubscriptionTypeInfo_sequence, hf_index, ett_gsm_map_ericsson_SubscriptionTypeInfo); return offset; } static int dissect_gsm_map_ericsson_INCategoryKey(bool implicit_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 const ber_sequence_t gsm_map_ericsson_OickInfo_sequence[] = { { &hf_gsm_map_ericsson_ss_Status, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_Ext_SS_Status }, { &hf_gsm_map_ericsson_inCategoryKey, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_INCategoryKey }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_OickInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_OickInfo_sequence, hf_index, ett_gsm_map_ericsson_OickInfo); return offset; } static const value_string gsm_map_ericsson_PrivateFeatureData_vals[] = { { 3, "subscriptionTypeInfo" }, { 7, "oickInfo" }, { 0, NULL } }; static const ber_choice_t gsm_map_ericsson_PrivateFeatureData_choice[] = { { 3, &hf_gsm_map_ericsson_subscriptionTypeInfo, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SubscriptionTypeInfo }, { 7, &hf_gsm_map_ericsson_oickInfo, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_OickInfo }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_PrivateFeatureData(bool implicit_tag _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, gsm_map_ericsson_PrivateFeatureData_choice, hf_index, ett_gsm_map_ericsson_PrivateFeatureData, NULL); return offset; } static const ber_sequence_t gsm_map_ericsson_IsdArgData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { &hf_gsm_map_ericsson_privateFeatureData, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ericsson_PrivateFeatureData }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_IsdArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_IsdArgData_sequence, hf_index, ett_gsm_map_ericsson_IsdArgData); return offset; } static const ber_sequence_t gsm_map_ericsson_IsdArgType_sequence_of[1] = { { &hf_gsm_map_ericsson_IsdArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_IsdArgData }, }; static int dissect_gsm_map_ericsson_IsdArgType(bool implicit_tag _U_, 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, gsm_map_ericsson_IsdArgType_sequence_of, hf_index, ett_gsm_map_ericsson_IsdArgType); return offset; } static const ber_sequence_t gsm_map_ericsson_IsdResData_sequence[] = { { &hf_gsm_map_ericsson_supportedPrivateFeature, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_IsdResData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_IsdResData_sequence, hf_index, ett_gsm_map_ericsson_IsdResData); return offset; } static const ber_sequence_t gsm_map_ericsson_IsdResType_sequence_of[1] = { { &hf_gsm_map_ericsson_IsdResType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_IsdResData }, }; static int dissect_gsm_map_ericsson_IsdResType(bool implicit_tag _U_, 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, gsm_map_ericsson_IsdResType_sequence_of, hf_index, ett_gsm_map_ericsson_IsdResType); return offset; } static const ber_sequence_t gsm_map_ericsson_DsdArgData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureWithdraw, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_DsdArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_DsdArgData_sequence, hf_index, ett_gsm_map_ericsson_DsdArgData); return offset; } static const ber_sequence_t gsm_map_ericsson_DsdArgType_sequence_of[1] = { { &hf_gsm_map_ericsson_DsdArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_DsdArgData }, }; static int dissect_gsm_map_ericsson_DsdArgType(bool implicit_tag _U_, 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, gsm_map_ericsson_DsdArgType_sequence_of, hf_index, ett_gsm_map_ericsson_DsdArgType); return offset; } static const value_string gsm_map_ericsson_ExtraProtocolId_vals[] = { { 1, "q763" }, { 0, NULL } }; static int dissect_gsm_map_ericsson_ExtraProtocolId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t gsm_map_ericsson_ExtraSignalInfo_U_sequence[] = { { &hf_gsm_map_ericsson_protocolId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_ExtraProtocolId }, { &hf_gsm_map_ericsson_signalInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_ExtraSignalInfo_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_ExtraSignalInfo_U_sequence, hf_index, ett_gsm_map_ericsson_ExtraSignalInfo_U); return offset; } static int dissect_gsm_map_ericsson_ExtraSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 1, TRUE, dissect_gsm_map_ericsson_ExtraSignalInfo_U); return offset; } static const ber_sequence_t gsm_map_ericsson_SriArgData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { &hf_gsm_map_ericsson_extraNetworkInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtraSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_SriArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_SriArgData_sequence, hf_index, ett_gsm_map_ericsson_SriArgData); return offset; } static const ber_sequence_t gsm_map_ericsson_SRIArgType_sequence_of[1] = { { &hf_gsm_map_ericsson_SRIArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SriArgData }, }; static int dissect_gsm_map_ericsson_SRIArgType(bool implicit_tag _U_, 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, gsm_map_ericsson_SRIArgType_sequence_of, hf_index, ett_gsm_map_ericsson_SRIArgType); return offset; } static const ber_sequence_t gsm_map_ericsson_SriResData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { &hf_gsm_map_ericsson_inCategoryKey, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_INCategoryKey }, { &hf_gsm_map_ericsson_subscriptionType, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SubscriptionType }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_SriResData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_SriResData_sequence, hf_index, ett_gsm_map_ericsson_SriResData); return offset; } static const ber_sequence_t gsm_map_ericsson_SRIResType_sequence_of[1] = { { &hf_gsm_map_ericsson_SRIResType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_SriResData }, }; static int dissect_gsm_map_ericsson_SRIResType(bool implicit_tag _U_, 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, gsm_map_ericsson_SRIResType_sequence_of, hf_index, ett_gsm_map_ericsson_SRIResType); return offset; } static const ber_sequence_t gsm_map_ericsson_PrnArgData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { &hf_gsm_map_ericsson_extraNetworkInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtraSignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_PrnArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_PrnArgData_sequence, hf_index, ett_gsm_map_ericsson_PrnArgData); return offset; } static const ber_sequence_t gsm_map_ericsson_PrnArgType_sequence_of[1] = { { &hf_gsm_map_ericsson_PrnArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_PrnArgData }, }; static int dissect_gsm_map_ericsson_PrnArgType(bool implicit_tag _U_, 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, gsm_map_ericsson_PrnArgType_sequence_of, hf_index, ett_gsm_map_ericsson_PrnArgType); return offset; } static const value_string gsm_map_ericsson_PrivateFeatureUlArgData_vals[] = { { 3, "adc" }, { 0, NULL } }; static const ber_choice_t gsm_map_ericsson_PrivateFeatureUlArgData_choice[] = { { 3, &hf_gsm_map_ericsson_adc, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_PrivateFeatureUlArgData(bool implicit_tag _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, gsm_map_ericsson_PrivateFeatureUlArgData_choice, hf_index, ett_gsm_map_ericsson_PrivateFeatureUlArgData, NULL); return offset; } static const ber_sequence_t gsm_map_ericsson_UlArgData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { &hf_gsm_map_ericsson_privateFeatureUlArgData, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ericsson_PrivateFeatureUlArgData }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_UlArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_UlArgData_sequence, hf_index, ett_gsm_map_ericsson_UlArgData); return offset; } static const ber_sequence_t gsm_map_ericsson_UlArgType_sequence_of[1] = { { &hf_gsm_map_ericsson_UlArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_UlArgData }, }; static int dissect_gsm_map_ericsson_UlArgType(bool implicit_tag _U_, 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, gsm_map_ericsson_UlArgType_sequence_of, hf_index, ett_gsm_map_ericsson_UlArgType); return offset; } static int dissect_gsm_map_ericsson_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static const ber_sequence_t gsm_map_ericsson_RdArgType_sequence[] = { { &hf_gsm_map_ericsson_toBeDecidedOne, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_RdArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_RdArgType_sequence, hf_index, ett_gsm_map_ericsson_RdArgType); return offset; } static const ber_sequence_t gsm_map_ericsson_SaiArgType_sequence[] = { { &hf_gsm_map_ericsson_msisdn, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL }, { &hf_gsm_map_ericsson_noAuthenVectorsRequested, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_SaiArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_SaiArgType_sequence, hf_index, ett_gsm_map_ericsson_SaiArgType); return offset; } static const ber_sequence_t gsm_map_ericsson_SaiResType_sequence[] = { { &hf_gsm_map_ericsson_msIsdn, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_SaiResType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_SaiResType_sequence, hf_index, ett_gsm_map_ericsson_SaiResType); return offset; } static const ber_sequence_t gsm_map_ericsson_RequestedInfoType_sequence[] = { { &hf_gsm_map_ericsson_sgsnNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_RequestedInfoType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_RequestedInfoType_sequence, hf_index, ett_gsm_map_ericsson_RequestedInfoType); return offset; } static const ber_sequence_t gsm_map_ericsson_AtiArgType_sequence[] = { { &hf_gsm_map_ericsson_requestedInfoType, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_RequestedInfoType }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_AtiArgType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_AtiArgType_sequence, hf_index, ett_gsm_map_ericsson_AtiArgType); return offset; } static const ber_sequence_t gsm_map_ericsson_AtiResType_sequence[] = { { &hf_gsm_map_ericsson_toBeDecided, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_AtiResType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_AtiResType_sequence, hf_index, ett_gsm_map_ericsson_AtiResType); return offset; } static const ber_sequence_t gsm_map_ericsson_AtiArgData_sequence[] = { { &hf_gsm_map_ericsson_privateFeatureCode, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrivateFeatureCode }, { NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_AtiArgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _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_map_ericsson_AtiArgData_sequence, hf_index, ett_gsm_map_ericsson_AtiArgData); return offset; } static const ber_sequence_t gsm_map_ericsson_ExtAtiArgType_sequence_of[1] = { { &hf_gsm_map_ericsson_ExtAtiArgType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ericsson_AtiArgData }, }; static int dissect_gsm_map_ericsson_ExtAtiArgType(bool implicit_tag _U_, 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, gsm_map_ericsson_ExtAtiArgType_sequence_of, hf_index, ett_gsm_map_ericsson_ExtAtiArgType); return offset; } static const ber_choice_t gsm_map_ericsson_ExtensionType_choice[] = { { 1, &hf_gsm_map_ericsson_isdArgType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_IsdArgType }, { 2, &hf_gsm_map_ericsson_isdResType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_IsdResType }, { 3, &hf_gsm_map_ericsson_dsdArgType, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_DsdArgType }, { 4, &hf_gsm_map_ericsson_sriArgType, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SRIArgType }, { 5, &hf_gsm_map_ericsson_sriResType, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SRIResType }, { 6, &hf_gsm_map_ericsson_prnArgType, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_PrnArgType }, { 7, &hf_gsm_map_ericsson_ulArgType, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_UlArgType }, { 8, &hf_gsm_map_ericsson_rdArgType, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_RdArgType }, { 9, &hf_gsm_map_ericsson_saiArgType, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SaiArgType }, { 10, &hf_gsm_map_ericsson_saiResType, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_SaiResType }, { 11, &hf_gsm_map_ericsson_atiArgType, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_AtiArgType }, { 12, &hf_gsm_map_ericsson_atiResType, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_AtiResType }, { 13, &hf_gsm_map_ericsson_extAtiArgType, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gsm_map_ericsson_ExtAtiArgType }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_gsm_map_ericsson_ExtensionType(bool implicit_tag _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, gsm_map_ericsson_ExtensionType_choice, hf_index, ett_gsm_map_ericsson_ExtensionType, NULL); return offset; } /* --- Module NokiaMAP-Extensions --- --- --- */ static int dissect_NokiaMAP_Extensions_RoutingCategory(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_ActiveSS_List(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_ExtRoutingCategory(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_NULL(bool implicit_tag _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, tree, tvb, offset, hf_index); return offset; } static int dissect_NokiaMAP_Extensions_MAPserviceList(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_MAPserviceCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_VersionInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_MKeyVer(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_MmTdpName(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } int dissect_NokiaMAP_Extensions_ServiceKey(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_LocupType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_MKey_sequence[] = { { &hf_NokiaMAP_Extensions_mKeyVer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MKeyVer }, { &hf_NokiaMAP_Extensions_mmScfAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_NokiaMAP_Extensions_mmTdpName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MmTdpName }, { &hf_NokiaMAP_Extensions_serviceKey, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceKey }, { &hf_NokiaMAP_Extensions_locupType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LocupType }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_MKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_MKey_sequence, hf_index, ett_NokiaMAP_Extensions_MKey); return offset; } static int dissect_NokiaMAP_Extensions_SmsTdpName(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_SMSKey_sequence[] = { { &hf_NokiaMAP_Extensions_mmSCPAddress, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_NokiaMAP_Extensions_smsTdpName, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SmsTdpName }, { &hf_NokiaMAP_Extensions_serviceKey, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceKey }, { &hf_NokiaMAP_Extensions_mmsFlag, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_SMSKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_SMSKey_sequence, hf_index, ett_NokiaMAP_Extensions_SMSKey); return offset; } static const value_string NokiaMAP_Extensions_INKey_vals[] = { { 2, "mobile-IN-key" }, { 3, "sms-IN-key" }, { 0, NULL } }; static const ber_choice_t NokiaMAP_Extensions_INKey_choice[] = { { 2, &hf_NokiaMAP_Extensions_mobile_IN_key, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MKey }, { 3, &hf_NokiaMAP_Extensions_sms_IN_key, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SMSKey }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_INKey(bool implicit_tag _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, NokiaMAP_Extensions_INKey_choice, hf_index, ett_NokiaMAP_Extensions_INKey, NULL); return offset; } static int dissect_NokiaMAP_Extensions_TimeLimit(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_ActionType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_FraudMaxCount(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_FraudData_sequence[] = { { &hf_NokiaMAP_Extensions_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_TimeLimit }, { &hf_NokiaMAP_Extensions_timeAction, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActionType }, { &hf_NokiaMAP_Extensions_maxCount, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudMaxCount }, { &hf_NokiaMAP_Extensions_maxCountAction, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActionType }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_FraudData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_FraudData_sequence, hf_index, ett_NokiaMAP_Extensions_FraudData); return offset; } static const ber_sequence_t NokiaMAP_Extensions_FraudInfo_sequence[] = { { &hf_NokiaMAP_Extensions_moc, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData }, { &hf_NokiaMAP_Extensions_cf, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData }, { &hf_NokiaMAP_Extensions_ct, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_FraudInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_FraudInfo_sequence, hf_index, ett_NokiaMAP_Extensions_FraudInfo); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ServiceWithInfo_sequence[] = { { &hf_NokiaMAP_Extensions_serviceCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceCode }, { &hf_NokiaMAP_Extensions_versionInfo, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_VersionInfo }, { &hf_NokiaMAP_Extensions_in_key, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_NokiaMAP_Extensions_INKey }, { &hf_NokiaMAP_Extensions_fraudInfo, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_FraudInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_ServiceWithInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_ServiceWithInfo_sequence, hf_index, ett_NokiaMAP_Extensions_ServiceWithInfo); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ServiceListWithInfo_sequence_of[1] = { { &hf_NokiaMAP_Extensions_ServiceListWithInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ServiceWithInfo }, }; static int dissect_NokiaMAP_Extensions_ServiceListWithInfo(bool implicit_tag _U_, 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, NokiaMAP_Extensions_ServiceListWithInfo_sequence_of, hf_index, ett_NokiaMAP_Extensions_ServiceListWithInfo); return offset; } static const ber_sequence_t NokiaMAP_Extensions_IsdArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_alsLineIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory }, { &hf_NokiaMAP_Extensions_serviceList, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceList }, { &hf_NokiaMAP_Extensions_serv_info_list, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ServiceListWithInfo }, { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory }, { &hf_NokiaMAP_Extensions_ownMSISDN, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_IsdArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_IsdArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_IsdArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_IsdArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_IsdArgExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_DsdArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_alsLineIndicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_serviceList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MAPserviceList }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_DsdArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_DsdArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_DsdArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_DsdArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_DsdArgExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_UlResExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_mwd_Set, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_UlResExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_UlResExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_UlResExt_U); return offset; } static int dissect_NokiaMAP_Extensions_UlResExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_UlResExt_U); return offset; } static int dissect_NokiaMAP_Extensions_InTriggerKey(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_PnpIndex(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_CallRedirectionIndex(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_ChargingArea(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ChargingAreaList_sequence_of[1] = { { &hf_NokiaMAP_Extensions_ChargingAreaList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ChargingArea }, }; static int dissect_NokiaMAP_Extensions_ChargingAreaList(bool implicit_tag _U_, 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, NokiaMAP_Extensions_ChargingAreaList_sequence_of, hf_index, ett_NokiaMAP_Extensions_ChargingAreaList); return offset; } static const ber_sequence_t NokiaMAP_Extensions_RegionalChargingData_sequence[] = { { &hf_NokiaMAP_Extensions_chargingAreaList, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ChargingAreaList }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_RegionalChargingData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_RegionalChargingData_sequence, hf_index, ett_NokiaMAP_Extensions_RegionalChargingData); return offset; } static const ber_sequence_t NokiaMAP_Extensions_SS_DataExtension_U_sequence[] = { { &hf_NokiaMAP_Extensions_inTriggerKey, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InTriggerKey }, { &hf_NokiaMAP_Extensions_pnpIndex, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_PnpIndex }, { &hf_NokiaMAP_Extensions_callRedirectionIndex, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallRedirectionIndex }, { &hf_NokiaMAP_Extensions_regionalChargingData, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RegionalChargingData }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_SS_DataExtension_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_SS_DataExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SS_DataExtension_U); return offset; } static int dissect_NokiaMAP_Extensions_SS_DataExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_SS_DataExtension_U); return offset; } static int dissect_NokiaMAP_Extensions_CallingCategory(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_InternalServiceIndicator(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_SriExtension_U_sequence[] = { { &hf_NokiaMAP_Extensions_callForwardingOverride, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_in_Capability, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_callingCategory, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallingCategory }, { &hf_NokiaMAP_Extensions_internalServiceIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InternalServiceIndicator }, { &hf_NokiaMAP_Extensions_srbtSupportIndicator, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_gmscSupportIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_SriExtension_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_SriExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriExtension_U); return offset; } static int dissect_NokiaMAP_Extensions_SriExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_SriExtension_U); return offset; } static const value_string NokiaMAP_Extensions_ExtraProtocolId_vals[] = { { 1, "q763" }, { 0, NULL } }; static int dissect_NokiaMAP_Extensions_ExtraProtocolId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ExtraSignalInfo_U_sequence[] = { { &hf_NokiaMAP_Extensions_protocolId, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_ExtraProtocolId }, { &hf_NokiaMAP_Extensions_signalInfo, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_SignalInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_ExtraSignalInfo_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_ExtraSignalInfo_U_sequence, hf_index, ett_NokiaMAP_Extensions_ExtraSignalInfo_U); return offset; } static int dissect_NokiaMAP_Extensions_ExtraSignalInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 1, TRUE, dissect_NokiaMAP_Extensions_ExtraSignalInfo_U); return offset; } static int dissect_NokiaMAP_Extensions_CUG_CallInfo(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_BOOLEAN(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_Nokia_CUG_Data_sequence[] = { { &hf_NokiaMAP_Extensions_cug_Interlock, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_NokiaMAP_Extensions_cug_OutgoingAccess, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN }, { &hf_NokiaMAP_Extensions_cug_CallInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CUG_CallInfo }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_Nokia_CUG_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_Nokia_CUG_Data_sequence, hf_index, ett_NokiaMAP_Extensions_Nokia_CUG_Data); return offset; } static int dissect_NokiaMAP_Extensions_LeaId(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_OlcmTraceReference(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_OlcmInfo_sequence[] = { { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference }, { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType }, { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId }, { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_OlcmInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_OlcmInfo_sequence, hf_index, ett_NokiaMAP_Extensions_OlcmInfo); return offset; } static const ber_sequence_t NokiaMAP_Extensions_OlcmInfoTable_sequence_of[1] = { { &hf_NokiaMAP_Extensions_OlcmInfoTable_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_OlcmInfo }, }; static int dissect_NokiaMAP_Extensions_OlcmInfoTable(bool implicit_tag _U_, 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, NokiaMAP_Extensions_OlcmInfoTable_sequence_of, hf_index, ett_NokiaMAP_Extensions_OlcmInfoTable); return offset; } static int dissect_NokiaMAP_Extensions_NoAnswerTimer(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_MemberList_sequence_of[1] = { { &hf_NokiaMAP_Extensions_MemberList_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_ISDN_AddressString }, }; static int dissect_NokiaMAP_Extensions_MemberList(bool implicit_tag _U_, 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, NokiaMAP_Extensions_MemberList_sequence_of, hf_index, ett_NokiaMAP_Extensions_MemberList); return offset; } static int dissect_NokiaMAP_Extensions_AlertingMethod(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_UserType(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_RgData_sequence[] = { { &hf_NokiaMAP_Extensions_noAnswerTimer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NoAnswerTimer }, { &hf_NokiaMAP_Extensions_memberList, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MemberList }, { &hf_NokiaMAP_Extensions_alertingMethod, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_AlertingMethod }, { &hf_NokiaMAP_Extensions_userType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_UserType }, { &hf_NokiaMAP_Extensions_divertedToNbr, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_NokiaMAP_Extensions_memberOfSuppression, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_ringbacktone, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_RgData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_RgData_sequence, hf_index, ett_NokiaMAP_Extensions_RgData); return offset; } static const ber_sequence_t NokiaMAP_Extensions_SriResExtension_U_sequence[] = { { &hf_NokiaMAP_Extensions_inTriggerKey, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_InTriggerKey }, { &hf_NokiaMAP_Extensions_vlrNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_NokiaMAP_Extensions_activeSs, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ActiveSS_List }, { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference }, { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType }, { &hf_NokiaMAP_Extensions_omc_Id, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, { &hf_NokiaMAP_Extensions_hotBilling, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN }, { &hf_NokiaMAP_Extensions_cfoIsDone, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN }, { &hf_NokiaMAP_Extensions_cfInCug, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_BOOLEAN }, { &hf_NokiaMAP_Extensions_basicService, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_BasicServiceCode }, { &hf_NokiaMAP_Extensions_category, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Category }, { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory }, { &hf_NokiaMAP_Extensions_pnpIndex, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_PnpIndex }, { &hf_NokiaMAP_Extensions_nokia_CUG, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_Nokia_CUG_Data }, { &hf_NokiaMAP_Extensions_noBarrings, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_odb_Data, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ODB_Data }, { &hf_NokiaMAP_Extensions_fraudData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_FraudData }, { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory }, { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId }, { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable }, { &hf_NokiaMAP_Extensions_callingCategory, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CallingCategory }, { &hf_NokiaMAP_Extensions_commonMSISDN, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { &hf_NokiaMAP_Extensions_rgData, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RgData }, { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_SriResExtension_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_SriResExtension_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriResExtension_U); return offset; } static int dissect_NokiaMAP_Extensions_SriResExtension(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_SriResExtension_U); return offset; } static int dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_CanLocArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_termination, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1 }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_CanLocArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_CanLocArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_CanLocArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_CanLocArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_CanLocArgExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ATMargExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_traceReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceReference }, { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType }, { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId }, { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable }, { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_ATMargExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_ATMargExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ATMargExt_U); return offset; } static int dissect_NokiaMAP_Extensions_ATMargExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_ATMargExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ATMresExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_olcmActive, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_ATMresExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_ATMresExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ATMresExt_U); return offset; } static int dissect_NokiaMAP_Extensions_ATMresExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_ATMresExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_DTMargExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_traceType, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_om_TraceType }, { &hf_NokiaMAP_Extensions_leaId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LeaId }, { &hf_NokiaMAP_Extensions_olcmTraceReference, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmTraceReference }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_DTMargExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_DTMargExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_DTMargExt_U); return offset; } static int dissect_NokiaMAP_Extensions_DTMargExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_DTMargExt_U); return offset; } static int dissect_NokiaMAP_Extensions_NumberPorted_U(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_NumberPorted(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 20, TRUE, dissect_NokiaMAP_Extensions_NumberPorted_U); return offset; } static int dissect_NokiaMAP_Extensions_MapOptFields(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_CodecExt(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_CodecListExt_sequence_of[1] = { { &hf_NokiaMAP_Extensions_CodecListExt_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_CodecExt }, }; static int dissect_NokiaMAP_Extensions_CodecListExt(bool implicit_tag _U_, 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, NokiaMAP_Extensions_CodecListExt_sequence_of, hf_index, ett_NokiaMAP_Extensions_CodecListExt); return offset; } static int dissect_NokiaMAP_Extensions_Modes(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_SelectedCodec_sequence[] = { { &hf_NokiaMAP_Extensions_codec, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CodecExt }, { &hf_NokiaMAP_Extensions_modes, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_Modes }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_SelectedCodec(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_SelectedCodec_sequence, hf_index, ett_NokiaMAP_Extensions_SelectedCodec); return offset; } static int dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_5_17(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_IPPortNb(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_HO_Ext_U_sequence[] = { { &hf_NokiaMAP_Extensions_map_Opt, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_MapOptFields }, { &hf_NokiaMAP_Extensions_codec_List, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CodecListExt }, { &hf_NokiaMAP_Extensions_selected_Codec, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_SelectedCodec }, { &hf_NokiaMAP_Extensions_uma_access, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_uma_ip_address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_5_17 }, { &hf_NokiaMAP_Extensions_uma_ip_port_nb, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_IPPortNb }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_HO_Ext_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_HO_Ext_U_sequence, hf_index, ett_NokiaMAP_Extensions_HO_Ext_U); return offset; } static int dissect_NokiaMAP_Extensions_HO_Ext(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_HO_Ext_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_AbsentSubscriberExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable }, { &hf_NokiaMAP_Extensions_imsi, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_AbsentSubscriberExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_AbsentSubscriberExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_AbsentSubscriberExt_U); return offset; } static int dissect_NokiaMAP_Extensions_AbsentSubscriberExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_AbsentSubscriberExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ErrOlcmInfoTableExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_olcmInfoTable, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OlcmInfoTable }, { &hf_NokiaMAP_Extensions_imsi, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_ErrOlcmInfoTableExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U); return offset; } static int dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_RoutingCategoryExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_routingCategory, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_RoutingCategory }, { &hf_NokiaMAP_Extensions_extRoutingCategory, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_ExtRoutingCategory }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_RoutingCategoryExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_RoutingCategoryExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_RoutingCategoryExt_U); return offset; } static int dissect_NokiaMAP_Extensions_RoutingCategoryExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_RoutingCategoryExt_U); return offset; } static int dissect_NokiaMAP_Extensions_CfuSMSCounter(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_SriForSMArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_cfuSMSCounter, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CfuSMSCounter }, { &hf_NokiaMAP_Extensions_cfusmcfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { &hf_NokiaMAP_Extensions_memberInterrogate, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_SriForSMArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_SriForSMArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_SriForSMArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_SriForSMArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_SriForSMArgExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_ReportSMDelStatArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_cfuSMSCounter, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_CfuSMSCounter }, { &hf_NokiaMAP_Extensions_cfusmcfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_ReportSMDelStatArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_LocationAreaCode(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_LocationAreaCode }, { &hf_NokiaMAP_Extensions_cellId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_UdlArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_lai, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength }, { &hf_NokiaMAP_Extensions_sendImmResp, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_NULL }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_UdlArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_UdlArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_UdlArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_UdlArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_UdlArgExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_RoamNotAllowedExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_rejectCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_NokiaMAP_Extensions_OCTET_STRING_SIZE_1 }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_RoamNotAllowedExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_RoamNotAllowedExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U); return offset; } static int dissect_NokiaMAP_Extensions_RoamNotAllowedExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_RoamNotAllowedExt_U); return offset; } static const ber_sequence_t NokiaMAP_Extensions_AnyTimeModArgExt_U_sequence[] = { { &hf_NokiaMAP_Extensions_senderMSISDN, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_AnyTimeModArgExt_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_AnyTimeModArgExt_U_sequence, hf_index, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U); return offset; } static int dissect_NokiaMAP_Extensions_AnyTimeModArgExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, hf_index, BER_CLASS_PRI, 0, TRUE, dissect_NokiaMAP_Extensions_AnyTimeModArgExt_U); return offset; } static const value_string NokiaMAP_Extensions_Access_vals[] = { { 1, "gsm" }, { 2, "geran" }, { 3, "utran" }, { 0, NULL } }; static int dissect_NokiaMAP_Extensions_Access(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_NokiaMAP_Extensions_Version(bool implicit_tag _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, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t NokiaMAP_Extensions_AccessTypeExt_sequence[] = { { &hf_NokiaMAP_Extensions_access, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Access }, { &hf_NokiaMAP_Extensions_version, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Version }, { NULL, 0, 0, 0, NULL } }; static int dissect_NokiaMAP_Extensions_AccessTypeExt(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, NokiaMAP_Extensions_AccessTypeExt_sequence, hf_index, ett_NokiaMAP_Extensions_AccessTypeExt); return offset; } static const ber_sequence_t NokiaMAP_Extensions_AccessSubscriptionListExt_sequence_of[1] = { { &hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_NokiaMAP_Extensions_Access }, }; static int dissect_NokiaMAP_Extensions_AccessSubscriptionListExt(bool implicit_tag _U_, 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, NokiaMAP_Extensions_AccessSubscriptionListExt_sequence_of, hf_index, ett_NokiaMAP_Extensions_AccessSubscriptionListExt); return offset; } static int * const NokiaMAP_Extensions_AllowedServiceData_bits[] = { &hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed, NULL }; static int dissect_NokiaMAP_Extensions_AllowedServiceData(bool implicit_tag _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, tree, tvb, offset, NokiaMAP_Extensions_AllowedServiceData_bits, 1, hf_index, ett_NokiaMAP_Extensions_AllowedServiceData, NULL); return offset; } /* Specific translation for MAP V3 */ static const value_string gsm_map_V1V2_opr_code_strings[] = { { 44, "forwardSM" }, { 45, "sendRoutingInfoForSM" }, { 46, "forwardSM" }, { 0, NULL } }; /* Generic translation for MAP operation */ const value_string gsm_map_opr_code_strings[] = { /* --- Module Remote-Operations-Information-Objects --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MobileDomainDefinitions --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-ApplicationContexts --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-SS-Code --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-BS-Code --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-TS-Code --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-ExtensionDataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-CommonDataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-SS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-ER-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-SM-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-OM-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-MS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-CH-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-LCS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-GR-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-DialogueInformation --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-LocationServiceOperations --- --- --- */ { 85, "sendRoutingInfoForLCS" }, { 83, "provideSubscriberLocation" }, { 86, "subscriberLocationReport" }, /* --- Module MAP-Group-Call-Operations --- --- --- */ { 39, "prepareGroupCall" }, { 40, "sendGroupCallEndSignal" }, { 41, "processGroupCallSignalling" }, { 42, "forwardGroupCallSignalling" }, { 84, "sendGroupCallInfo" }, /* --- Module MAP-ShortMessageServiceOperations --- --- --- */ { 45, "sendRoutingInfoForSM" }, { 46, "mo_ForwardSM" }, { 44, "mt_ForwardSM" }, { 47, "reportSM_DeliveryStatus" }, { 64, "alertServiceCentre" }, { 63, "informServiceCentre" }, { 66, "readyForSM" }, { 21, "mt_ForwardSM_VGCS" }, /* --- Module MAP-SupplementaryServiceOperations --- --- --- */ { 10, "registerSS" }, { 11, "eraseSS" }, { 12, "activateSS" }, { 13, "deactivateSS" }, { 14, "interrogateSS" }, { 59, "processUnstructuredSS_Request" }, { 60, "unstructuredSS_Request" }, { 61, "unstructuredSS_Notify" }, { 17, "registerPassword" }, { 18, "getPassword" }, { 72, "ss_InvocationNotification" }, { 76, "registerCC_Entry" }, { 77, "eraseCC_Entry" }, /* --- Module MAP-CallHandlingOperations --- --- --- */ { 22, "sendRoutingInfo" }, { 4, "provideRoamingNumber" }, { 6, "resumeCallHandling" }, { 73, "setReportingState" }, { 74, "statusReport" }, { 75, "remoteUserFree" }, { 87, "ist_Alert" }, { 88, "ist_Command" }, { 20, "releaseResources" }, /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ { 50, "activateTraceMode" }, { 51, "deactivateTraceMode" }, { 58, "sendIMSI" }, /* --- Module MAP-MobileServiceOperations --- --- --- */ { 2, "updateLocation" }, { 3, "cancelLocation" }, { 67, "purgeMS" }, { 55, "sendIdentification" }, { 23, "updateGprsLocation" }, { 70, "provideSubscriberInfo" }, { 71, "anyTimeInterrogation" }, { 62, "anyTimeSubscriptionInterrogation" }, { 65, "anyTimeModification" }, { 5, "noteSubscriberDataModified" }, { 68, "prepareHandover" }, { 29, "sendEndSignal" }, { 33, "processAccessSignalling" }, { 34, "forwardAccessSignalling" }, { 69, "prepareSubsequentHandover" }, { 56, "sendAuthenticationInfo" }, { 15, "authenticationFailureReport" }, { 43, "checkIMEI" }, { 7, "insertSubscriberData" }, { 8, "deleteSubscriberData" }, { 37, "reset" }, { 38, "forwardCheckSS_Indication" }, { 57, "restoreData" }, { 24, "sendRoutingInfoForGprs" }, { 25, "failureReport" }, { 26, "noteMsPresentForGprs" }, { 89, "noteMM_Event" }, { 53, "updateVcsgLocation" }, { 36, "cancelVcsgLocation" }, /* --- Module MAP-Errors --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-Protocol --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module DummyMAP --- --- --- */ { 9, "sendParameters" }, /* --- Module SS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module SS-Operations --- --- --- */ { 19, "processUnstructuredSS_Data" }, { 16, "notifySS" }, { 125, "forwardChargeAdvice" }, { 120, "forwardCUG_Info" }, { 124, "buildMPTY" }, { 123, "holdMPTY" }, { 122, "retrieveMPTY" }, { 121, "splitMPTY" }, { 126, "explicitCT" }, { 119, "accessRegisterCCEntry" }, { 117, "callDeflection" }, { 118, "userUserService" }, { 116, "lcs_LocationNotification" }, { 115, "lcs_MOLR" }, { 114, "lcs_AreaEventRequest" }, { 113, "lcs_AreaEventReport" }, { 112, "lcs_AreaEventCancellation" }, { 111, "lcs_PeriodicLocationRequest" }, { 110, "lcs_LocationUpdate" }, { 109, "lcs_PeriodicLocationCancellation" }, { 108, "lcs_PeriodicTriggeredInvoke" }, /* --- Module EricssonMAP --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module NokiaMAP-Extensions --- --- --- */ /* Unknown or empty loop list OPERATION */ { 0, NULL } }; #if 0 static const value_string gsm_map_err_code_string_vals[] = { /* --- Module Remote-Operations-Information-Objects --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MobileDomainDefinitions --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-ApplicationContexts --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-SS-Code --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-BS-Code --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-TS-Code --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-ExtensionDataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-CommonDataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-SS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-ER-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-SM-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-OM-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-MS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-CH-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-LCS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-GR-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-DialogueInformation --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-LocationServiceOperations --- --- --- */ { 85, "sendRoutingInfoForLCS" }, { 83, "provideSubscriberLocation" }, { 86, "subscriberLocationReport" }, /* --- Module MAP-Group-Call-Operations --- --- --- */ { 39, "prepareGroupCall" }, { 40, "sendGroupCallEndSignal" }, { 41, "processGroupCallSignalling" }, { 42, "forwardGroupCallSignalling" }, { 84, "sendGroupCallInfo" }, /* --- Module MAP-ShortMessageServiceOperations --- --- --- */ { 45, "sendRoutingInfoForSM" }, { 46, "mo_ForwardSM" }, { 44, "mt_ForwardSM" }, { 47, "reportSM_DeliveryStatus" }, { 64, "alertServiceCentre" }, { 63, "informServiceCentre" }, { 66, "readyForSM" }, { 21, "mt_ForwardSM_VGCS" }, /* --- Module MAP-SupplementaryServiceOperations --- --- --- */ { 10, "registerSS" }, { 11, "eraseSS" }, { 12, "activateSS" }, { 13, "deactivateSS" }, { 14, "interrogateSS" }, { 59, "processUnstructuredSS_Request" }, { 60, "unstructuredSS_Request" }, { 61, "unstructuredSS_Notify" }, { 17, "registerPassword" }, { 18, "getPassword" }, { 72, "ss_InvocationNotification" }, { 76, "registerCC_Entry" }, { 77, "eraseCC_Entry" }, /* --- Module MAP-CallHandlingOperations --- --- --- */ { 22, "sendRoutingInfo" }, { 4, "provideRoamingNumber" }, { 6, "resumeCallHandling" }, { 73, "setReportingState" }, { 74, "statusReport" }, { 75, "remoteUserFree" }, { 87, "ist_Alert" }, { 88, "ist_Command" }, { 20, "releaseResources" }, /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ { 50, "activateTraceMode" }, { 51, "deactivateTraceMode" }, { 58, "sendIMSI" }, /* --- Module MAP-MobileServiceOperations --- --- --- */ { 2, "updateLocation" }, { 3, "cancelLocation" }, { 67, "purgeMS" }, { 55, "sendIdentification" }, { 23, "updateGprsLocation" }, { 70, "provideSubscriberInfo" }, { 71, "anyTimeInterrogation" }, { 62, "anyTimeSubscriptionInterrogation" }, { 65, "anyTimeModification" }, { 5, "noteSubscriberDataModified" }, { 68, "prepareHandover" }, { 29, "sendEndSignal" }, { 33, "processAccessSignalling" }, { 34, "forwardAccessSignalling" }, { 69, "prepareSubsequentHandover" }, { 56, "sendAuthenticationInfo" }, { 15, "authenticationFailureReport" }, { 43, "checkIMEI" }, { 7, "insertSubscriberData" }, { 8, "deleteSubscriberData" }, { 37, "reset" }, { 38, "forwardCheckSS_Indication" }, { 57, "restoreData" }, { 24, "sendRoutingInfoForGprs" }, { 25, "failureReport" }, { 26, "noteMsPresentForGprs" }, { 89, "noteMM_Event" }, { 53, "updateVcsgLocation" }, { 36, "cancelVcsgLocation" }, /* --- Module MAP-Errors --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module MAP-Protocol --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module DummyMAP --- --- --- */ { 9, "sendParameters" }, /* --- Module SS-DataTypes --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module SS-Operations --- --- --- */ { 19, "processUnstructuredSS_Data" }, { 16, "notifySS" }, { 125, "forwardChargeAdvice" }, { 120, "forwardCUG_Info" }, { 124, "buildMPTY" }, { 123, "holdMPTY" }, { 122, "retrieveMPTY" }, { 121, "splitMPTY" }, { 126, "explicitCT" }, { 119, "accessRegisterCCEntry" }, { 117, "callDeflection" }, { 118, "userUserService" }, { 116, "lcs_LocationNotification" }, { 115, "lcs_MOLR" }, { 114, "lcs_AreaEventRequest" }, { 113, "lcs_AreaEventReport" }, { 112, "lcs_AreaEventCancellation" }, { 111, "lcs_PeriodicLocationRequest" }, { 110, "lcs_LocationUpdate" }, { 109, "lcs_PeriodicLocationCancellation" }, { 108, "lcs_PeriodicTriggeredInvoke" }, /* --- Module EricssonMAP --- --- --- */ /* Unknown or empty loop list OPERATION */ /* --- Module NokiaMAP-Extensions --- --- --- */ /* Unknown or empty loop list OPERATION */ { 0, NULL } }; #endif 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 value_string_ext gsm_map_nature_of_number_values_ext = VALUE_STRING_EXT_INIT(gsm_map_nature_of_number_values); 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" }, { 0x0a, "spare" }, { 0x0b, "spare" }, { 0x0c, "spare" }, { 0x0d, "spare" }, { 0x0e, "spare" }, { 0x0f, "Reserved for extension" }, { 0, NULL } }; static value_string_ext gsm_map_number_plan_values_ext = VALUE_STRING_EXT_INIT(gsm_map_number_plan_values); static const true_false_string gsm_map_Ss_Status_q_bit_values = { "Quiescent", "Operative" }; 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, proto_item *item) { switch (val) { case 44: /*mt-forwardSM*/ /* FALLTHRU */ case 46: /*mo-forwardSM*/ if (application_context_version < 3) { proto_item_set_text(item, "%s (%d)", val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode"), val); return val_to_str_const(val, gsm_map_V1V2_opr_code_strings, "Unknown GSM-MAP opcode"); } /* Else use the default map operation translation */ /* FALLTHRU */ default: return val_to_str_ext_const(val, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, "Unknown GSM-MAP opcode"); break; } } /* Prototype for a decoding function */ typedef int (* dissect_function_t)( bool, 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 example, 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, bool implicit_param _U_, dissect_function_t parameter, int hf_index_param _U_, bool implicit_seq _U_, dissect_function_t sequence, int hf_index_seq _U_, bool implicit_seq3 _U_, dissect_function_t sequence3, int hf_index_seq3 _U_ ) { guint8 octet; gint8 bug_class; bool bug_pc, bug_ind_field; gint32 bug_tag; guint32 bug_len; 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(tvb, offset, &bug_len, &bug_ind_field); if (sequence3 != NULL) { offset= (sequence3) (implicit_seq3, tvb, offset, actx, tree, hf_index_seq3); } else { proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence3, tvb, offset, -1); } } else if (octet == 0x30) { if (sequence != NULL) { offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq); } else { proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_sequence, tvb, offset, -1); } } else { if (parameter != NULL) { offset= (parameter) (implicit_param, tvb, offset, actx, tree, hf_index_param); } else { proto_tree_add_expert(tree, actx->pinfo, &ei_gsm_map_unknown_parameter, tvb, offset, -1); } } return offset; } static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) { switch(opcode){ case 2: /*updateLocation*/ offset=dissect_gsm_map_ms_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_ms_identity, FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity, TRUE , dissect_gsm_map_ms_CancelLocationArg, -1);/*undefined*/ break; case 4: /*provideRoamingNumber*/ offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1); break; case 5: /*noteSubscriberDataModified*/ offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1); break; case 6: /*resumeCallHandling*/ offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1); break; case 7: /*insertSubscriberData*/ offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); break; case 8: /*deleteSubscriberData*/ offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); break; case 9: /*sendParameters*/ offset = dissect_gsm_old_SendParametersArg(FALSE, tvb, offset, actx, tree, -1); break; case 10: /*registerSS*/ offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 11: /*eraseSS*/ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 12: /*activateSS*/ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 13: /*deactivateSS*/ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 14: /*interrogateSS*/ offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 15: /*authenticationFailureReport*/ offset=dissect_gsm_map_ms_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 16: /*SS-protocol notifySS*/ offset=dissect_gsm_ss_NotifySS_Arg(FALSE, tvb, offset, actx, tree, -1); break; 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_old_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword); break; case 19: /* SS-Protocol processUnstructuredSS-Data (19) */ offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData); break; case 20: /*releaseResources*/ offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1); break; case 21: /*mt-ForwardSM-VGCS*/ offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ if (application_context_version == 3){ offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); }else{ offset = dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1); } break; case 23: /*updateGprsLocation*/ offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); break; case 24: /*sendRoutingInfoForGprs*/ offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1); break; case 25: /*failureReport*/ offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 26: /*noteMsPresentForGprs*/ offset=dissect_gsm_map_ms_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_old_Bss_APDU, -1, TRUE , dissect_gsm_map_ms_SendEndSignal_Arg, -1); break; /* reserved performSubsequentHandover (30) */ case 31: /*provideSIWFSNumber*/ offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1); break; case 32: /*sIWFSSignallingModify*/ offset=dissect_gsm_old_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_old_Bss_APDU, -1, TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg, -1); break; case 34: /*forwardAccessSignalling*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, dissect_gsm_old_Bss_APDU, -1, TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1); break; /* reserved noteInternalHandover (35) */ case 36: /*cancelVcsgLocation*/ offset=dissect_gsm_map_ms_CancelVcsgLocationArg(FALSE, tvb, offset, actx, tree, -1); break; case 37: /*reset*/ if (application_context_version == 1) { offset = dissect_gsm_old_ResetArgV1(FALSE, tvb, offset, actx, tree, -1); } else { offset = dissect_gsm_map_ms_ResetArg(FALSE, tvb, offset, actx, tree, -1); } break; case 38: /*forwardCheckSS-Indication*/ return offset; break; case 39: /*prepareGroupCall*/ offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1); break; case 40: /*sendGroupCallEndSignal*/ offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1); break; case 41: /*processGroupCallSignalling*/ offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); break; case 42: /*forwardGroupCallSignalling*/ offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); break; case 43: /*checkIMEI*/ if (pref_ericsson_proprietary_ext) { offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei, FALSE, dissect_gsm_map_ericsson_EnhancedCheckIMEI_Arg, -1, TRUE , NULL, -1); /* no [3] SEQUENCE */ } else { offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMEI, hf_gsm_map_ms_imei, FALSE, dissect_gsm_map_ms_CheckIMEI_Arg, -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_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); else { offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); } break; case 45: /*sendRoutingInfoForSM*/ if (application_context_version < 2) { offset=dissect_gsm_old_RoutingInfoForSM_ArgV1(FALSE, tvb, offset, actx, tree, -1); } else { offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(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_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); else { offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); } break; case 47: /*reportSM-DeliveryStatus*/ offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1); break; case 48: /*noteSubscriberPresent*/ offset = dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi); break; /* reserved alertServiceCentreWithoutResult (49) * ETS 300 599: December 2000 (GSM 09.02 version 4.19.1) * -- alertServiceCentreWithoutResult must not be used in * -- version greater 1 */ case 49: offset = dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 50: /*activateTraceMode*/ offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); break; case 51: /*deactivateTraceMode*/ offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); break; /* reserved traceSubscriberActivity (52) */ case 53: /* UpdateVcsgLocation 53 */ offset=dissect_gsm_map_ms_UpdateVcsgLocationArg(FALSE, tvb, offset, actx, tree, -1); break; case 54: /*beginSubscriberActivity*/ offset=dissect_gsm_old_BeginSubscriberActivityArg(FALSE, tvb, offset, actx, tree, -1); break; case 55: /*sendIdentification*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi, FALSE, dissect_gsm_map_ms_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_ms_SendAuthenticationInfoArg, -1, TRUE, NULL, -1); break; case 57: /*restoreData*/ offset=dissect_gsm_map_ms_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_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 60: /*unstructuredSS-Request*/ offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 61: /*unstructuredSS-Notify*/ offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 62: /*AnyTimeSubscriptionInterrogation*/ offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1); break; case 63: /*informServiceCentre*/ offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 64: /*alertServiceCentre*/ offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 65: /*AnyTimeModification*/ offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 66: /*readyForSM*/ offset=dissect_gsm_map_sm_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_old_PurgeMSArgV2, -1, /*undefined*/ TRUE , dissect_gsm_map_ms_PurgeMS_Arg, -1); break; case 68: /*prepareHandover*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1, TRUE, dissect_gsm_map_ms_PrepareHO_Arg, -1); break; case 69: /*prepareSubsequentHandover*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, NULL, -1, TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1); break; case 70: /*provideSubscriberInfo*/ offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 71: /*anyTimeInterrogation*/ offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1); break; case 72: /*ss-InvocationNotification*/ offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 73: /*setReportingState*/ offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1); break; case 74: /*statusReport*/ offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 75: /*remoteUserFree*/ offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1); break; case 76: /*registerCC-Entry*/ offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); break; case 77: /*eraseCC-Entry*/ offset=dissect_gsm_map_ss_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); break; case 78: /*secureTransportClass1*/ case 79: /*secureTransportClass1*/ case 80: /*secureTransportClass1*/ case 81: /*secureTransportClass1*/ offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1); break; /* undefined 82 */ case 83: /*provideSubscriberLocation*/ offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 84: /*sendGroupCallInfo*/ offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 86: /*subscriberLocationReport*/ offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 87: /*ist-Alert*/ offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1); break; case 88: /*ist-Command*/ offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1); break; case 89: /*noteMM-Event*/ offset=dissect_gsm_map_ms_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1); break; case 108: /*SS-protocol lcs-PeriodicTriggeredInvoke*/ offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeArg(FALSE, tvb, offset, actx, tree, -1); break; case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/ offset=dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(FALSE, tvb, offset, actx, tree, -1); break; case 110: /*SS-protocol lcs-LocationUpdate*/ offset=dissect_gsm_ss_LCS_LocationUpdateArg(FALSE, tvb, offset, actx, tree, -1); break; case 111: /*SS-protocol lcs-PeriodicLocationRequest*/ offset=dissect_gsm_ss_LCS_PeriodicLocationRequestArg(FALSE, tvb, offset, actx, tree, -1); break; case 112: /*SS-protocol lcs-AreaEventCancellation*/ offset=dissect_gsm_ss_LCS_AreaEventCancellationArg(FALSE, tvb, offset, actx, tree, -1); break; case 113: /*SS-protocol lcs-AreaEventReport*/ offset=dissect_gsm_ss_LCS_AreaEventReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 114: /*SS-protocol lcs-AreaEventRequest*/ offset=dissect_gsm_ss_LCS_AreaEventRequestArg(FALSE, tvb, offset, actx, tree, -1); break; case 115: /*SS-protocol lcs-MOLR*/ offset=dissect_gsm_ss_LCS_MOLRArg(FALSE, tvb, offset, actx, tree, -1); break; case 116: /*SS-protocol lcs-LocationNotification*/ offset=dissect_gsm_ss_LocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 117: /*SS-protocol callDeflection*/ offset=dissect_gsm_ss_CallDeflectionArg(FALSE, tvb, offset, actx, tree, -1); break; case 118: /*SS-protocol userUserService*/ offset=dissect_gsm_ss_UserUserServiceArg(FALSE, tvb, offset, actx, tree, -1); break; case 119: /*SS-protocol accessRegisterCCEntry*/ offset=dissect_gsm_ss_AccessRegisterCCEntryArg(FALSE, tvb, offset, actx, tree, -1); break; case 120: /*SS-protocol forwardCUG-Info*/ application_context_version = 3; offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 121: /*SS-protocol splitMPTY no Argument*/ break; case 122: /*SS-protocol retrieveMPTY no Argument*/ break; case 123: /*SS-protocol holdMPTY no Argument*/ break; case 124: /*SS-protocol buildMPTY no Argument*/ break; case 125: /*SS-protocol forwardChargeAdvice*/ offset=dissect_gsm_ss_ForwardChargeAdviceArg(FALSE, tvb, offset, actx, tree, -1); break; case 126: /*SS-protocol explicitCT no Argument*/ break; default: if(!dissector_try_uint_new(map_prop_arg_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree, TRUE, actx->subtree.top_tree)){ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown invokeData %d", opcode); } offset+= tvb_reported_length_remaining(tvb,offset); break; } return offset; } static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) { 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_ms_UpdateLocationRes, -1, TRUE , NULL, -1); break; case 3: /*cancelLocation*/ offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 4: /*provideRoamingNumber*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_msisdn, FALSE, dissect_gsm_map_ch_ProvideRoamingNumberRes, -1, TRUE , NULL, -1);/*undefined*/ break; case 5: /*noteSubscriberDataModified*/ offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1); break; case 6: /*resumeCallHandling*/ offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1); break; case 7: /*insertSubscriberData*/ offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); break; case 8: /*deleteSubscriberData*/ offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); break; case 9: /*sendParameters*/ offset = dissect_gsm_old_SentParameterList(FALSE, tvb, offset, actx, tree, -1); break; case 10: /*registerSS*/ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 11: /*eraseSS*/ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 12: /*activateSS*/ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 13: /*deactivateSS*/ offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 14: /*interrogateSS*/ offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 15: /*authenticationFailureReport*/ offset=dissect_gsm_map_ms_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 17: /*registerPassword*/ /* change hf_gsm_map_ss_Code to something with password */ offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); break; case 18: /*getPassword*/ offset=dissect_gsm_old_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword); break; case 19: /* SS-Protocol processUnstructuredSS-Data (19) */ offset=dissect_gsm_ss_SS_UserData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SS_UserData); break; case 20: /*releaseResources*/ offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1); break; case 21: /*mt-ForwardSM-VGCS*/ offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ if (application_context_version == 3){ /* If the tag is missing use SendRoutingInfoRes_U */ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1, TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); }else{ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1, TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); } break; case 23: /*updateGprsLocation*/ offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 24: /*sendRoutingInfoForGprs*/ offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1); break; case 25: /*failureReport*/ offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 26: /*noteMsPresentForGprs*/ offset=dissect_gsm_map_ms_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_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1); break; case 31: /*provideSIWFSNumber*/ offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1); break; case 32: /*provideSIWFSSignallingModify*/ offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1); break; case 36: /*cancelVcsgLocation*/ offset=dissect_gsm_map_ms_CancelVcsgLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 39: /*prepareGroupCall*/ offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1); break; case 40: /*sendGroupCallEndSignal*/ offset=dissect_gsm_map_gr_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1); break; case 43: /*checkIMEI*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_ms_EquipmentStatus, hf_gsm_map_ms_equipmentStatus, FALSE, dissect_gsm_map_ms_CheckIMEI_Res, -1, TRUE, NULL, -1); break; case 44: /*mt-forwardSM*/ offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 45: /*sendRoutingInfoForSM*/ if (application_context_version < 3) { offset=dissect_gsm_old_RoutingInfoForSM_ResV2(FALSE, tvb, offset, actx, tree, -1); } else { offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); } break; case 46: /*mo-forwardSM*/ offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 47: /*reportSM-DeliveryStatus*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_ISDN_AddressString, hf_gsm_map_sm_storedMSISDN, FALSE, dissect_gsm_map_sm_ReportSM_DeliveryStatusRes, -1, FALSE, NULL, -1);/*undefined*/ break; case 48: /*noteSubscriberPresent*/ break; case 50: /*activateTraceMode*/ offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); break; case 51: /*deactivateTraceMode*/ offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); break; case 53: /* UpdateVcsgLocation 53 */ offset=dissect_gsm_map_ms_UpdateVcsgLocationRes(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_old_SendIdentificationResV2, -1,/*undefined*/ TRUE, dissect_gsm_map_ms_SendIdentificationRes, -1); break; case 56: /*sendAuthenticationInfo*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, dissect_gsm_old_SendAuthenticationInfoResOld, -1, TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1); break; case 57: /*restoreData*/ offset=dissect_gsm_map_ms_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1); break; case 58: /*sendIMSI*/ offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi); break; case 59: /*unstructuredSS-Request*/ offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1); break; case 60: /*unstructuredSS-Request*/ offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1); break; case 61: /*unstructuredSS-Notify*/ /* TRUE ? */ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown returnResultData blob"); break; case 62: /*AnyTimeSubscriptionInterrogation*/ offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1); break; case 64: /*alertServiceCentre*/ /* TRUE */ break; case 65: /*AnyTimeModification*/ offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 66: /*readyForSM*/ offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 67: /*purgeMS*/ offset=dissect_gsm_map_ms_PurgeMS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 68: /*prepareHandover*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, dissect_gsm_old_PrepareHO_ResOld, -1, TRUE , dissect_gsm_map_ms_PrepareHO_Res, -1); break; case 69: /*prepareSubsequentHandover*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, NULL, -1, TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1); break; case 70: /*provideSubscriberInfo*/ offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1); break; case 71: /*anyTimeInterrogation*/ offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1); break; case 72: /*ss-InvocationNotification*/ offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 73: /*setReportingState*/ offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1); break; case 74: /*statusReport*/ offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 75: /*remoteUserFree*/ offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1); break; case 76: /*registerCC-Entry*/ offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); break; case 77: /*eraseCC-Entry*/ offset=dissect_gsm_map_ss_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); break; case 78: /*secureTransportClass1*/ case 79: /*secureTransportClass2*/ case 80: /*secureTransportClass3*/ case 81: /*secureTransportClass4*/ offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1); break; case 83: /*provideSubscriberLocation*/ offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1); break; case 84: /*sendGroupCallInfo*/ offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 86: /*subscriberLocationReport*/ offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1); break; case 87: /*ist-Alert*/ offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1); break; case 88: /*ist-Command*/ offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1); break; case 89: /*noteMM-Event*/ offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1); break; case 108: /*SS-protocol LCS-PeriodicTriggeredInvokeRes*/ offset = dissect_gsm_ss_LCS_PeriodicTriggeredInvokeRes(FALSE, tvb, offset, actx, tree, -1); break; case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/ /* No parameter */ break; case 110: /*SS-protocol lcs-LocationUpdate*/ offset=dissect_gsm_ss_LCS_LocationUpdateRes(FALSE, tvb, offset, actx, tree, -1); break; case 111: /*SS-protocol lcs-PeriodicLocationRequest*/ offset=dissect_gsm_ss_LCS_PeriodicLocationRequestRes(FALSE, tvb, offset, actx, tree, -1); break; case 112: /*SS-protocol lcs-AreaEventCancellation*/ break; case 113: /*SS-protocol lcs-AreaEventReport*/ break; case 114: /*SS-protocol lcs-AreaEventRequest No RESULT data*/ break; case 115: /*SS-protocol lcs-MOLR*/ offset=dissect_gsm_ss_LCS_MOLRRes(FALSE, tvb, offset, actx, tree, -1); break; case 116: /*SS-protocol lcs-LocationNotification*/ offset=dissect_gsm_ss_LocationNotificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 117: /*SS-protocol callDeflection no RESULT*/ break; case 118: /*SS-protocol userUserService no RESULT*/ break; case 119: /*SS-protocol accessRegisterCCEntry*/ offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); break; case 120: /*SS-protocol forwardCUG-Info*/ /* No RETURN RESULT*/ break; case 121: /*SS-protocol splitMPTY no RESULT*/ break; case 122: /*SS-protocol retrieveMPTY no RESULT*/ break; case 123: /*SS-protocol holdMPTY no RESULT*/ break; case 124: /*SS-protocol buildMPTY no RESULT*/ break; case 125: /*SS-protocol forwardChargeAdvice no RESULT*/ break; case 126: /*SS-protocol explicitCT no RESULT*/ break; default: if(!dissector_try_uint_new(map_prop_res_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree, TRUE, actx->subtree.top_tree)){ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown returnResultData %d", opcode); } offset+= tvb_reported_length_remaining(tvb,offset); break; } return offset; } static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) { switch(errorCode){ case 1: /* UnknownSubscriberParam */ offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 4: /* SecureTransportErrorParam */ offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1); break; case 5: /* UnidentifiedSubParam */ offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1); break; case 6: /* AbsentSubscriberSM-Param */ offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1); break; case 8: /* RoamingNotAllowedParam */ offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 9: /* IllegalSubscriberParam */ offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 10: /* BearerServNotProvParam */ offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1); break; case 11: /* TeleservNotProvParam */ offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1); break; case 12: /* IllegalEquipmentParam */ offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1); break; case 13: /* CallBarredParam */ offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1); break; case 14: /* ForwardingViolationParam */ offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1); break; case 15: /* CUG-RejectParam */ offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1); break; case 16: /* IllegalSS-OperationParam */ offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1); break; case 17: /* SS-ErrorStatus */ offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_ss_Status); break; case 18: /* SS-NotAvailableParam */ offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1); break; case 19: /* SS-SubscriptionViolationParam */ offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1); break; case 20: /* SS-IncompatibilityCause */ offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1); break; case 21: /* FacilityNotSupParam */ offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1); break; case 22: /* OngoingGroupCallParam */ offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1); break; case 27: /* AbsentSubscriberParam */ offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 28: /* IncompatibleTerminalParam */ offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1); break; case 29: /* ShortTermDenialParam */ offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1); break; case 30: /* LongTermDenialParam */ offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1); break; case 31: /* SubBusyForMT-SMS-Param */ offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1); break; case 32: /* SM-DeliveryFailureCause */ offset = dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause, hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, FALSE, dissect_gsm_map_er_SM_DeliveryFailureCause, -1, FALSE, NULL, -1); break; case 33: /* MessageWaitListFullParam */ offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1); break; case 34: /* SystemFailureParam */ offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1); break; case 35: /* DataMissingParam */ offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1); break; case 36: /* UnexpectedDataParam */ offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1); break; case 37: /* PW-RegistrationFailureCause */ offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1); break; case 39: /* NoRoamingNbParam */ offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1); break; case 40: /* TracingBufferFullParam */ offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1); break; case 42: /* TargetCellOutsideGCA-Param */ offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1); break; case 44: /* NumberChangedParam */ offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1); break; case 45: /* BusySubscriberParam */ offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 46: /* NoSubscriberReplyParam */ offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1); break; case 47: /* ForwardingFailedParam */ offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1); break; case 48: /* OR-NotAllowedParam */ offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 49: /* ATI-NotAllowedParam */ offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 50: /* NoGroupCallNbParam */ offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1); break; case 51: /* ResourceLimitationParam */ offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1); break; case 52: /* UnauthorizedRequestingNetwork-Param */ offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1); break; case 53: /* UnauthorizedLCSClient-Param */ offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); break; case 54: /* PositionMethodFailure-Param */ offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1); break; case 58: /* UnknownOrUnreachableLCSClient-Param */ offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); break; case 59: /* MM-EventNotSupported-Param */ offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1); break; case 60: /* ATSI-NotAllowedParam */ offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 61: /* ATM-NotAllowedParam */ offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 62: /* InformationNotAvailableParam */ offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1); break; default: if(!dissector_try_uint_new(map_prop_err_opcode_table, (guint8)opcode, tvb, actx->pinfo, tree, TRUE, actx->subtree.top_tree)){ proto_tree_add_expert_format(tree, actx->pinfo, &ei_gsm_map_unknown_invokeData, tvb, offset, -1, "Unknown returnErrorData %d", opcode); } offset+= tvb_reported_length_remaining(tvb,offset); break; } return offset; } /* Private extension container for PLMN Data */ static int dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_old_PlmnContainer_U, NULL, "MAP Ext. Plmn Container"); return dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_gsm_map_ericsson_ext_ExtensionType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_map_ericsson_ExtensionType, NULL, "Ericsson Extension"); return dissect_gsm_map_ericsson_ExtensionType(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_SriResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriResExtension_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_SriResExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_CanLocArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_CanLocArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_CanLocArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_ATMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMargExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_ATMargExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_DTMargExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DTMargExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_DTMargExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_NumberPorted(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); return dissect_NokiaMAP_Extensions_NumberPorted(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1); } static int dissect_NokiaMAP_ext_ATMresExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ATMresExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_ATMresExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_AbsentSubscriberExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); return dissect_NokiaMAP_Extensions_AbsentSubscriberExt(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1); } static int dissect_NokiaMAP_ext_SriForSMArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriForSMArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_SriForSMArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_ReportSMDelStatArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_ReportSMDelStatArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_UdlArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UdlArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_UdlArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_RoamNotAllowedExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoamNotAllowedExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_RoamNotAllowedExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_MO_ForwardSM_ArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_ErrOlcmInfoTableExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_ErrOlcmInfoTableExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_RoutingCategoryExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_RoutingCategoryExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_RoutingCategoryExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_AnyTimeModArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_AnyTimeModArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_AnyTimeModArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_AccessTypeExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ return dissect_NokiaMAP_Extensions_AccessTypeExt(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1); } static int dissect_NokiaMAP_ext_AccessSubscriptionListExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ return dissect_NokiaMAP_Extensions_AccessSubscriptionListExt(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1); } static int dissect_NokiaMAP_ext_AllowedServiceData(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ return dissect_NokiaMAP_Extensions_AllowedServiceData(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1); } static int dissect_NokiaMAP_ext_SriExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SriExtension_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_SriExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ExtraSignalInfo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_ExtraSignalInfo_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_ExtraSignalInfo(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_SS_DataExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_SS_DataExtension_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_SS_DataExtension(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_HOExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_HO_Ext_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_HO_Ext(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_UlResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_UlResExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_UlResExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_IsdArgExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_IsdArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_IsdArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_NokiaMAP_ext_DsdArgExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) { proto_tree *tree; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); /* create display subtree for the protocol */ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_NokiaMAP_Extensions_DsdArgExt_U, NULL, "Nokia Extension"); return dissect_NokiaMAP_Extensions_DsdArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1); } static int dissect_gsm_map_GSMMAPPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) { char *version_ptr; opcode = 0; if (pref_application_context_version == APPLICATON_CONTEXT_FROM_TRACE) { gsm_map_private_info_t *gsm_map_priv = (gsm_map_private_info_t*)actx->value_ptr; application_context_version = 0; if (gsm_map_priv && gsm_map_priv->tcap_private != NULL){ if (gsm_map_priv->tcap_private->acv==TRUE ){ version_ptr = strrchr((const char*)gsm_map_priv->tcap_private->oid,'.'); if (version_ptr){ ws_strtoi32(version_ptr + 1, NULL, &application_context_version); } } } }else{ application_context_version = pref_application_context_version; } 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; col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP Component")); col_append_str(actx->pinfo->cinfo, COL_INFO, " "); offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_old_Component_PDU); /* offset = dissect_ber_choice(pinfo, tree, tvb, offset, GSMMAPPDU_choice, hf_index, ett_gsm_map_GSMMAPPDU, NULL); */ return offset; } static int dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data) { 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; gsm_map_private_info_t *gsm_map_priv; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP"); asn1_ctx.subtree.top_tree = parent_tree; gsm_map_priv = wmem_new0(pinfo->pool, gsm_map_private_info_t); gsm_map_priv->tcap_private = (struct tcap_private_t *)data; asn1_ctx.value_ptr = gsm_map_priv; /* create display subtree for the protocol */ item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA); tree = proto_item_add_subtree(item, ett_gsm_map); dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1); try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx); if (op_idx != -1) { tap_rec.invoke = (gsmmap_pdu_type == 1) ? TRUE : FALSE; tap_rec.opcode = opcode; tap_rec.size = gsm_map_pdu_size; tap_queue_packet(gsm_map_tap, pinfo, &tap_rec); } return tvb_captured_length(tvb); } static int dissect_gsm_map_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data) { 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; gsm_map_private_info_t *gsm_map_priv; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM MAP"); asn1_ctx.subtree.top_tree = parent_tree; gsm_map_priv = wmem_new0(pinfo->pool, gsm_map_private_info_t); gsm_map_priv->sccp_msg_info = (sccp_msg_info_t *)data; asn1_ctx.value_ptr = gsm_map_priv; /* create display subtree for the protocol */ item = proto_tree_add_item(parent_tree, proto_gsm_map, tvb, 0, -1, ENC_NA); tree = proto_item_add_subtree(item, ett_gsm_map); dissect_gsm_map_GSMMAPPDU(FALSE, tvb, 0, &asn1_ctx, tree, -1); try_val_to_str_idx(opcode, gsm_map_opr_code_strings, &op_idx); if (op_idx != -1) { tap_rec.invoke = (gsmmap_pdu_type == 1) ? TRUE : FALSE; tap_rec.opcode = opcode; tap_rec.size = gsm_map_pdu_size; tap_queue_packet(gsm_map_tap, pinfo, &tap_rec); } return tvb_captured_length(tvb); } 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 identification 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-ExceptSMS" }, { 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 presentation" }; /* -- 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 } }; /* TAP STAT INFO */ typedef enum { ID_COLUMN, OP_CODE_COLUMN, INVOKES_COLUMN, NUM_BYTES_FWD_COLUMN, AVG_BYTES_FWD_COLUMN, RET_RES_COLUMN, NUM_BYTES_REV_COLUMN, AVG_BYTES_REV_COLUMN, TOT_BYTES_COLUMN, AVG_BYTES_COLUMN } gsm_a_stat_columns; static stat_tap_table_item gsm_map_stat_fields[] = { {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "ID", "%d"}, {TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Operation Code", "%-25s"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Invokes", "%d"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"}, {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Return Result", "%d"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Num Bytes", "%d"}, {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Total Bytes", "%d"}, {TABLE_ITEM_FLOAT, TAP_ALIGN_RIGHT, "Avg Bytes", "%1.2f"}, }; static void gsm_map_stat_init(stat_tap_table_ui* new_stat) { const char *table_name = "GSM MAP Operation Statistics"; int num_fields = sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item); stat_tap_table* table; guint i; stat_tap_table_item_type items[sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item)]; memset(items, 0, sizeof(items)); items[ID_COLUMN].type = TABLE_ITEM_UINT; items[OP_CODE_COLUMN].type = TABLE_ITEM_STRING; items[INVOKES_COLUMN].type = TABLE_ITEM_UINT; items[NUM_BYTES_FWD_COLUMN].type = TABLE_ITEM_UINT; items[AVG_BYTES_FWD_COLUMN].type = TABLE_ITEM_FLOAT; items[RET_RES_COLUMN].type = TABLE_ITEM_UINT; items[NUM_BYTES_REV_COLUMN].type = TABLE_ITEM_UINT; items[AVG_BYTES_REV_COLUMN].type = TABLE_ITEM_FLOAT; items[TOT_BYTES_COLUMN].type = TABLE_ITEM_UINT; items[AVG_BYTES_COLUMN].type = TABLE_ITEM_FLOAT; table = stat_tap_find_table(new_stat, table_name); if (table) { if (new_stat->stat_tap_reset_table_cb) { new_stat->stat_tap_reset_table_cb(table); } return; } table = stat_tap_init_table(table_name, num_fields, 0, NULL); stat_tap_add_table(new_stat, table); /* Add a row for each value type */ for (i = 0; i < GSM_MAP_MAX_NUM_OPR_CODES; i++) { const char *ocs = try_val_to_str(i, gsm_map_opr_code_strings); char *col_str; if (ocs) { col_str = g_strdup(ocs); } else { col_str = ws_strdup_printf("Unknown op code %d", i); } items[ID_COLUMN].value.uint_value = i; items[OP_CODE_COLUMN].value.string_value = col_str; stat_tap_init_table_row(table, i, num_fields, items); } } static tap_packet_status gsm_map_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *gmtr_ptr, tap_flags_t flags _U_) { stat_data_t* stat_data = (stat_data_t*)tapdata; const gsm_map_tap_rec_t *gmtr = (const gsm_map_tap_rec_t *)gmtr_ptr; stat_tap_table* table; stat_tap_table_item_type *invoke_data, *fwd_bytes_data, *result_data, *rev_bytes_data, *avg_data; guint invokes, fwd_bytes, results, rev_bytes; table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, 0); invoke_data = stat_tap_get_field_data(table, gmtr->opcode, INVOKES_COLUMN); fwd_bytes_data = stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN); result_data = stat_tap_get_field_data(table, gmtr->opcode, RET_RES_COLUMN); rev_bytes_data = stat_tap_get_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN); if (gmtr->invoke) { invoke_data->value.uint_value++; stat_tap_set_field_data(table, gmtr->opcode, INVOKES_COLUMN, invoke_data); fwd_bytes_data->value.uint_value += gmtr->size; stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_FWD_COLUMN, fwd_bytes_data); } else { result_data->value.uint_value++; stat_tap_set_field_data(table, gmtr->opcode, RET_RES_COLUMN, result_data); rev_bytes_data->value.uint_value += gmtr->size; stat_tap_set_field_data(table, gmtr->opcode, NUM_BYTES_REV_COLUMN, rev_bytes_data); } invokes = invoke_data->value.uint_value; fwd_bytes = fwd_bytes_data->value.uint_value; results = result_data->value.uint_value; rev_bytes = rev_bytes_data->value.uint_value; if (gmtr->invoke) { avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN); avg_data->value.float_value += (float) fwd_bytes / invokes; stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_FWD_COLUMN, avg_data); } else { avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN); avg_data->value.float_value += (float) rev_bytes / results; stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_REV_COLUMN, avg_data); } avg_data = stat_tap_get_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN); avg_data->value.float_value += (float) (fwd_bytes + rev_bytes) / (invokes + results); stat_tap_set_field_data(table, gmtr->opcode, AVG_BYTES_COLUMN, avg_data); return TAP_PACKET_REDRAW; } static void gsm_map_stat_reset(stat_tap_table* table) { guint element; stat_tap_table_item_type* item_data; for (element = 0; element < table->num_elements; element++) { item_data = stat_tap_get_field_data(table, element, INVOKES_COLUMN); item_data->value.uint_value = 0; stat_tap_set_field_data(table, element, INVOKES_COLUMN, item_data); } } static void gsm_map_stat_free_table_item(stat_tap_table* table _U_, guint row _U_, guint column, stat_tap_table_item_type* field_data) { if (column != OP_CODE_COLUMN) return; g_free((char*)field_data->value.string_value); } /*--- proto_reg_handoff_gsm_map ---------------------------------------*/ static void range_delete_callback(guint32 ssn, gpointer ptr _U_) { if (ssn) { delete_itu_tcap_subdissector(ssn, map_handle); } } static void range_add_callback(guint32 ssn, gpointer ptr _U_) { if (ssn) { add_itu_tcap_subdissector(ssn, map_handle); } } void proto_reg_handoff_gsm_map(void) { static gboolean map_prefs_initialized = FALSE; static range_t *ssn_range; if (!map_prefs_initialized) { map_prefs_initialized = TRUE; ranap_handle = find_dissector_add_dependency("ranap", proto_gsm_map); dtap_handle = find_dissector_add_dependency("gsm_a_dtap", proto_gsm_map); gsm_sms_handle = find_dissector_add_dependency("gsm_sms", proto_gsm_map); bssap_handle = find_dissector_add_dependency("gsm_a_bssmap", proto_gsm_map); oid_add_from_string("itu(0) administration(2) japan(440)","0.2.440" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.1.3", map_handle, proto_gsm_map,"networkLocUpContext-v3"); register_ber_oid_dissector_handle("0.4.0.0.1.0.1.2", map_handle, proto_gsm_map,"networkLocUpContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.1.1", map_handle, proto_gsm_map,"networkLocUpContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.2.3", map_handle, proto_gsm_map,"locationCancellationContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.2.2", map_handle, proto_gsm_map,"locationCancellationContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.2.1", map_handle, proto_gsm_map,"locationCancellationContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.3.3", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.3.2", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.3.1", map_handle, proto_gsm_map,"roamingNumberEnquiryContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.4.3", map_handle, proto_gsm_map,"istAlertingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.5.3", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.5.2", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.5.1", map_handle, proto_gsm_map,"locationInfoRetrievalContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.6.4", map_handle, proto_gsm_map,"callControlTransferContext-v4" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.6.3", map_handle, proto_gsm_map,"callControlTransferContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.7.3", map_handle, proto_gsm_map,"reportingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.8.3", map_handle, proto_gsm_map,"callCompletionContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.9.3", map_handle, proto_gsm_map,"serviceTerminationContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.10.2", map_handle, proto_gsm_map,"resetContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.10.1", map_handle, proto_gsm_map,"resetContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.11.3", map_handle, proto_gsm_map,"handoverControlContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.11.2", map_handle, proto_gsm_map,"handoverControlContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.11.1", map_handle, proto_gsm_map,"handoverControlContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.12.3", map_handle, proto_gsm_map,"sIWFSAllocationContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.13.3", map_handle, proto_gsm_map,"equipmentMngtContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.13.2", map_handle, proto_gsm_map,"equipmentMngtContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.13.1", map_handle, proto_gsm_map,"equipmentMngtContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"infoRetrievalContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"infoRetrievalContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"infoRetrievalContext-v1" ); /* 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,"map-ac interVlrInfoRetrieval(15) version1(1)" );*/ register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"interVlrInfoRetrievalContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"subscriberDataMngtContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"subscriberDataMngtContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"subscriberDataMngtContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.17.3", map_handle, proto_gsm_map,"tracingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.17.2", map_handle, proto_gsm_map,"tracingContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.17.1", map_handle, proto_gsm_map,"tracingContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.18.2", map_handle, proto_gsm_map,"networkFunctionalSsContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.18.1", map_handle, proto_gsm_map,"networkFunctionalSsContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.19.2", map_handle, proto_gsm_map,"networkUnstructuredSsContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.20.3", map_handle, proto_gsm_map,"shortMsgGatewayContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.20.2", map_handle, proto_gsm_map,"shortMsgGatewayContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.20.1", map_handle, proto_gsm_map,"shortMsgGatewayContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.21.3", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.21.2", map_handle, proto_gsm_map,"shortMsgMO-RelayContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.21.1", map_handle, proto_gsm_map,"shortMsgRelayContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.22.3", map_handle, proto_gsm_map,"subscriberDataModificationNotificationContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.23.2", map_handle, proto_gsm_map,"shortMsgAlertContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.23.1", map_handle, proto_gsm_map,"shortMsgAlertContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.24.3", map_handle, proto_gsm_map,"mwdMngtContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.24.2", map_handle, proto_gsm_map,"mwdMngtContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.24.1", map_handle, proto_gsm_map,"mwdMngtContext-v1" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.25.3", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.25.2", map_handle, proto_gsm_map,"shortMsgMT-RelayContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.26.2", map_handle, proto_gsm_map,"imsiRetrievalContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.27.2", map_handle, proto_gsm_map,"msPurgingContext-v2" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.27.3", map_handle, proto_gsm_map,"msPurgingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.28.3", map_handle, proto_gsm_map,"subscriberInfoEnquiryContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.29.3", map_handle, proto_gsm_map,"anyTimeInfoEnquiryContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.31.3", map_handle, proto_gsm_map,"groupCallControlContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.32.3", map_handle, proto_gsm_map,"gprsLocationUpdateContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.33.4", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v4" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.33.3", map_handle, proto_gsm_map,"gprsLocationInfoRetrievalContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.34.3", map_handle, proto_gsm_map,"failureReportContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.35.3", map_handle, proto_gsm_map,"gprsNotifyContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.36.3", map_handle, proto_gsm_map,"ss-InvocationNotificationContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.37.3", map_handle, proto_gsm_map,"locationSvcGatewayContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.38.3", map_handle, proto_gsm_map,"locationSvcEnquiryContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.39.3", map_handle, proto_gsm_map,"authenticationFailureReportContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.40.3", map_handle, proto_gsm_map,"secureTransportHandlingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.41.3", map_handle, proto_gsm_map,"shortMsgMT-Relay-VGCS-Context-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.42.3", map_handle, proto_gsm_map,"mm-EventReportingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.43.3", map_handle, proto_gsm_map,"anyTimeInfoHandlingContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.44.3", map_handle, proto_gsm_map,"resourceManagementContext-v3" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.45.3", map_handle, proto_gsm_map,"groupCallInfoRetrievalContext-v3" ); /* Private extension container */ register_ber_oid_dissector("1.3.12.2.1006.53.2.1.3", dissect_gsm_mapext_PlmnContainer, proto_gsm_map,"alcatel-E10-MAP-extension-PlmnContainer" ); register_ber_oid_dissector("0.34.0",dissect_NokiaMAP_ext_IsdArgExtension,proto_gsm_map,"Nokia ISD Extension"); register_ber_oid_dissector("0.34.1",dissect_NokiaMAP_ext_DsdArgExt,proto_gsm_map,"Nokia Dsd Extension"); register_ber_oid_dissector("0.34.2",dissect_NokiaMAP_ext_UlResExtension,proto_gsm_map,"Nokia Location Update Extension"); register_ber_oid_dissector("0.34.4",dissect_NokiaMAP_ext_SS_DataExtension,proto_gsm_map,"Nokia SS Data Extension"); register_ber_oid_dissector("0.34.5",dissect_NokiaMAP_ext_SriExtension,proto_gsm_map,"Nokia SRI Request Extension"); register_ber_oid_dissector("0.34.6",dissect_NokiaMAP_ExtraSignalInfo,proto_gsm_map,"Nokia ExtraSignalInfo Extension"); register_ber_oid_dissector("0.34.7",dissect_NokiaMAP_ext_SriResExtension,proto_gsm_map,"Nokia SRI Response Extension"); register_ber_oid_dissector("0.34.10",dissect_NokiaMAP_ext_CanLocArgExt,proto_gsm_map,"Nokia Cancel Location Extension"); register_ber_oid_dissector("0.34.11",dissect_NokiaMAP_ext_ATMargExt,proto_gsm_map,"Nokia ATM Extension"); register_ber_oid_dissector("0.34.12",dissect_NokiaMAP_ext_DTMargExt,proto_gsm_map,"Nokia DTM Extension"); register_ber_oid_dissector("0.34.13",dissect_NokiaMAP_ext_NumberPorted,proto_gsm_map,"Nokia NumberPorted Extension"); register_ber_oid_dissector("0.34.15",dissect_NokiaMAP_ext_HOExtension,proto_gsm_map,"Nokia HandOver Extension"); register_ber_oid_dissector("0.34.16",dissect_NokiaMAP_ext_ATMresExt,proto_gsm_map,"Nokia ATMres Extension"); register_ber_oid_dissector("0.34.17",dissect_NokiaMAP_ext_AbsentSubscriberExt,proto_gsm_map,"Nokia AbsentSubscriber Extension"); register_ber_oid_dissector("0.34.18",dissect_NokiaMAP_ext_SriForSMArgExt,proto_gsm_map,"Nokia SriForSM Extension"); register_ber_oid_dissector("0.34.19",dissect_NokiaMAP_ext_ReportSMDelStatArgExt,proto_gsm_map,"Nokia ReportSMDelStatt Extension"); register_ber_oid_dissector("0.34.20",dissect_NokiaMAP_ext_UdlArgExt,proto_gsm_map,"Nokia Udl Extension"); register_ber_oid_dissector("0.34.21",dissect_NokiaMAP_ext_RoamNotAllowedExt,proto_gsm_map,"Nokia RoamNotAllowed Extension"); register_ber_oid_dissector("0.34.22",dissect_NokiaMAP_ext_MO_ForwardSM_ArgExt,proto_gsm_map,"Nokia MO-ForwardSM Extension"); register_ber_oid_dissector("0.34.23",dissect_NokiaMAP_ext_ErrOlcmInfoTableExt,proto_gsm_map,"Nokia ErrOlcmInfoTable Extension"); register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension"); register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension"); register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension"); register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension"); register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension"); register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_gsm_map_ericsson_ext_ExtensionType,proto_gsm_map,"Ericsson ExtensionType Extension"); } else { range_foreach(ssn_range, range_delete_callback, NULL); wmem_free(wmem_epan_scope(), ssn_range); } ssn_range = range_copy(wmem_epan_scope(), global_ssn_range); range_foreach(ssn_range, range_add_callback, NULL); } /*--- proto_register_gsm_map -------------------------------------------*/ void proto_register_gsm_map(void) { module_t *gsm_map_module; expert_module_t* expert_gsm_map; /* List of fields */ static hf_register_info hf[] = { { &hf_gsm_map_old_Component_PDU, { "Component", "gsm_map.old.Component", FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0, NULL, HFILL }}, { &hf_gsm_map_getPassword, { "getPassword", "gsm_map.getPassword", FT_UINT8, BASE_DEC, VALS(gsm_old_GetPasswordArg_vals), 0, NULL, HFILL }}, { &hf_gsm_map_currentPassword, { "currentPassword", "gsm_map.currentPassword", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_extension, { "Extension", "gsm_map.extension", FT_BOOLEAN, 8, TFS(&tfs_no_extension_extension), 0x80, NULL, HFILL }}, { &hf_gsm_map_nature_of_number, { "Nature of number", "gsm_map.nature_of_number", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_nature_of_number_values_ext, 0x70, NULL, HFILL }}, { &hf_gsm_map_number_plan, { "Number plan", "gsm_map.number_plan", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &gsm_map_number_plan_values_ext, 0x0f, NULL, HFILL }}, { &hf_gsm_map_address_digits, { "Address digits", "gsm_map.address.digits", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_TBCD_digits, { "TBCD digits", "gsm_map.tbcd_digits", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_Ss_Status_unused, { "Unused", "gsm_map.unused", FT_UINT8, BASE_HEX, NULL, 0xf0, NULL, 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, NULL, HFILL }}, { &hf_gsm_map_Ss_Status_p_bit, { "P bit", "gsm_map.ss_status_p_bit", FT_BOOLEAN, 8, TFS(&tfs_provisioned_not_provisioned), 0x04, NULL, HFILL }}, { &hf_gsm_map_Ss_Status_r_bit, { "R bit", "gsm_map.ss_status_r_bit", FT_BOOLEAN, 8, TFS(&tfs_registered_not_registered), 0x02, NULL, 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, NULL, 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, NULL, HFILL }}, { &hf_gsm_map_redirecting_presentation, { "Redirecting presentation", "gsm_map.redirecting_presentation", FT_BOOLEAN, 8, TFS(&redirecting_presentation_value), 0x40, NULL, HFILL }}, { &hf_gsm_map_notification_to_calling_party, { "Notification to calling party", "gsm_map.notification_to_calling_party", FT_BOOLEAN, 8, TFS(¬ification_value), 0x20, NULL, HFILL }}, { &hf_gsm_map_forwarding_reason, { "Forwarding reason", "gsm_map.forwarding_reason", FT_UINT8, BASE_HEX, VALS(forwarding_reason_values), 0x0c, NULL, 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, NULL, HFILL }}, { &hf_gsm_map_etsi_pdp_type_number, { "PDP Type Number", "gsm_map.pdp_type_number", 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, NULL, HFILL }}, { &hf_gsm_map_qos_traffic_cls, { "Traffic class", "gsm_map.qos.traffic_cls", FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0xe0, NULL, HFILL }}, { &hf_gsm_map_qos_del_order, { "Delivery order", "gsm_map.qos.del_order", FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traffic_cls_vals), 0x18, NULL, 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_sm_qos_del_of_err_sdu_vals), 0x03, NULL, HFILL }}, { &hf_gsm_map_qos_ber, { "Residual Bit Error Rate (BER)", "gsm_map.qos.ber", FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_ber_vals), 0xf0, NULL, HFILL }}, { &hf_gsm_map_qos_sdu_err_rat, { "SDU error ratio", "gsm_map.qos.sdu_err_rat", FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_sdu_err_rat_vals), 0x0f, NULL, HFILL }}, { &hf_gsm_map_qos_traff_hdl_pri, { "Traffic handling priority", "gsm_map.qos.traff_hdl_pri", FT_UINT8, BASE_DEC, VALS(gsm_a_sm_qos_traff_hdl_pri_vals), 0x03, NULL, HFILL }}, { &hf_gsm_map_qos_max_sdu, { "Maximum SDU size", "gsm_map.qos.max_sdu", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, 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_IPv6, BASE_NONE, NULL, 0, "IPAddress IPv6", 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_map_IntegrityProtectionInformation, { "IntegrityProtectionInformation", "gsm_map.ranap.IntegrityProtectionInformation", FT_NONE, BASE_NONE, NULL, 0, "gsm_map.ranap.IntegrityProtectionInformation", HFILL }}, { &hf_gsm_map_EncryptionInformation, { "EncryptionInformation", "gsm_map.ranap.EncryptionInformation", FT_NONE, BASE_NONE, NULL, 0, "gsm_map.ranap.EncryptionInformation", HFILL }}, { &hf_gsm_map_ss_SS_UserData, { "SS-UserData", "gsm_ss.SS_UserData", FT_STRING, BASE_NONE, NULL, 0, "gsm_map.ss.SS_UserData", HFILL }}, { &hf_gsm_map_cbs_coding_grp, { "Coding Group","gsm_map.cbs.coding_grp", FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_data_coding_scheme_coding_grp_vals_ext, 0xf0, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp0_lang, { "Language","gsm_map.cbs.coding_grp0_lang", FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp0_lang_vals_ext, 0x0f, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp1_lang, { "Language","gsm_map.cbs.coding_grp1_lang", FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp1_lang_vals_ext, 0x0f, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp2_lang, { "Language","gsm_map.cbs.coding_grp2_lang", FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp2_lang_vals_ext, 0x0f, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp3_lang, { "Language","gsm_map.cbs.coding_grp3_lang", FT_UINT8,BASE_DEC|BASE_EXT_STRING, &gsm_map_cbs_coding_grp3_lang_vals_ext, 0x0f, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp4_7_comp, { "Compressed indicator","gsm_map.cbs.coding_grp4_7_comp", FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_comp_vals), 0x20, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp4_7_class_ind, { "Message Class present","gsm_map.cbs.coding_grp4_7_class_ind", FT_BOOLEAN, 8, TFS(&gsm_map_cbs_coding_grp4_7_class_ind_vals), 0x10, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp4_7_char_set, { "Character set being used","gsm_map.cbs.coding_grp4_7_char_set", FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_char_set_vals), 0x0c, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp4_7_class, { "Message Class","gsm_map.cbs.coding_grp4_7_class", FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp4_7_class_vals), 0x03, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp15_mess_code, { "Message coding","gsm_map.cbs.cbs_coding_grp15_mess_code", FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_mess_code_vals), 0x04, NULL, HFILL } }, { &hf_gsm_map_cbs_coding_grp15_class, { "Message Class","gsm_map.cbs.gsm_map_cbs_coding_grp15_class", FT_UINT8,BASE_DEC, VALS(gsm_map_cbs_coding_grp15_class_vals), 0x03, NULL, HFILL } }, { &hf_gsm_map_ie_tag, { "Tag", "gsm_map.ie_tag", FT_UINT8, BASE_DEC, VALS(gsm_map_tag_vals), 0, "GSM 04.08 tag", HFILL }}, { &hf_gsm_map_len, { "Length", "gsm_map.length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_disc_par, { "Discrimination parameter", "gsm_map.disc_par", FT_UINT8, BASE_DEC, VALS(gsm_map_disc_par_vals), 0, NULL, HFILL }}, { &hf_gsm_map_dlci, { "DLCI", "gsm_map.dlci", FT_UINT8, BASE_DEC, NULL, 0, "Data Link Connection Indicator", HFILL }}, { &hf_gsm_apn_str, { "APN", "gsm_map.apn_str", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_locationInformation_rat, { "RAT", "gsm_map.ericsson.locationInformation.rat", FT_UINT8, BASE_DEC, VALS(gsm_map_ericsson_locationInformation_rat_vals), 0, "Radio Access Technology", HFILL }}, { &hf_gsm_map_ericsson_locationInformation_lac, { "LAC", "gsm_map.ericsson.locationInformation.lac", FT_UINT16, BASE_DEC_HEX, NULL, 0, "Location Area Code", HFILL }}, { &hf_gsm_map_ericsson_locationInformation_ci, { "CI", "gsm_map.ericsson.locationInformation.ci", FT_UINT16, BASE_DEC_HEX, NULL, 0, "Cell Identity", HFILL }}, { &hf_gsm_map_ericsson_locationInformation_sac, { "SAC", "gsm_map.ericsson.locationInformation.sac", FT_UINT16, BASE_DEC_HEX, NULL, 0, "Service Area Code", HFILL }}, { &hf_gsm_map_ussd_string, { "USSD String", "gsm_map.ussd_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_spare_bits, { "Spare bit(s)", "gsm_map.spare_bits", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_signalling_ind, { "Signalling indication", "gsm_map.qos.signalling_ind", FT_BOOLEAN, 8, TFS(&gsm_map_qos_signalling_ind_value), 0x10, NULL, HFILL } }, { &hf_gsm_map_qos_source_stat_desc, { "Source statistics description", "gsm_map.qos.source_stat_desc", FT_UINT8, BASE_DEC, NULL, 0x0f, NULL, HFILL } }, { &hf_gsm_map_qos_max_bitrate_upl_ext, { "Maximum bitrate for uplink (extended)", "gsm_map.qos.max_bitrate_upl_ext", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_max_bitrate_downl_ext, { "Maximum bitrate for downlink (extended)", "gsm_map.qos.max_bitrate_downl_ext", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_guar_bitrate_upl_ext, { "Guaranteed bitrate for uplink (extended)", "gsm_map.qos.guar_bitrate_upl_ext", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_guar_bitrate_downl_ext, { "Guaranteed bitrate for downlink (extended)", "gsm_map.qos.guar_bitrate_downl_ext", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, /* { &hf_gsm_map_qos_max_bitrate_upl_ext2, { "Maximum bitrate for uplink (extended-2)", "gsm_map.qos.max_bitrate_upl_ext2", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_max_bitrate_downl_ext2, { "Maximum bitrate for downlink (extended-2)", "gsm_map.qos.max_bitrate_downl_ext2", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_guar_bitrate_upl_ext2, { "Guaranteed bitrate for uplink (extended-2)", "gsm_map.qos.guar_bitrate_upl_ext2", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_gsm_map_qos_guar_bitrate_downl_ext2, { "Guaranteed bitrate for downlink (extended-2)", "gsm_map.qos.guar_bitrate_downl_ext2", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, */ { &hf_gsm_map_earp_pvi, { "PVI Pre-emption Vulnerability", "gsm_map.EARP_pre_emption_par_vulnerability", FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x01, NULL, HFILL } }, { &hf_gsm_map_earp_pl, { "PL Priority Level", "gsm_map.EARP_priority_level", FT_UINT8, BASE_DEC, NULL, 0x3C, NULL, HFILL } }, { &hf_gsm_map_earp_pci, { "PCI Pre-emption Capability", "gsm_map.EARP_pre_emption_Capability", FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x40, NULL, HFILL } }, /* --- Module MAP-ExtensionDataTypes --- --- --- */ { &hf_gsm_map_privateExtensionList, { "privateExtensionList", "gsm_map.privateExtensionList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_pcs_Extensions, { "pcs-Extensions", "gsm_map.pcs_Extensions_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_slr_Arg_PCS_Extensions, { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_PrivateExtensionList_item, { "PrivateExtension", "gsm_map.PrivateExtension_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_extId, { "extId", "gsm_map.extId", FT_OID, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_extType, { "extType", "gsm_map.extType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_na_ESRK_Request, { "na-ESRK-Request", "gsm_map.na_ESRK_Request_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, /* --- Module MAP-CommonDataTypes --- --- --- */ { &hf_gsm_map_gsm_map_ISDN_AddressString_PDU, { "ISDN-AddressString", "gsm_map.ISDN_AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_protocolId, { "protocolId", "gsm_map.protocolId", FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0, NULL, HFILL }}, { &hf_gsm_map_signalInfo, { "signalInfo", "gsm_map.signalInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_extensionContainer, { "extensionContainer", "gsm_map.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ext_ProtocolId, { "ext-ProtocolId", "gsm_map.ext_ProtocolId", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0, NULL, HFILL }}, { &hf_gsm_map_accessNetworkProtocolId, { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId", FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0, NULL, HFILL }}, { &hf_gsm_map_signalInfo_01, { "signalInfo", "gsm_map.signalInfo", FT_BYTES, BASE_NONE, NULL, 0, "LongSignalInfo", HFILL }}, { &hf_gsm_map_imsi, { "imsi", "gsm_map.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_imsi_WithLMSI, { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lmsi, { "lmsi", "gsm_map.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_tmsi, { "tmsi", "gsm_map.tmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_HLR_List_item, { "HLR-Id", "gsm_map.HLR_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_naea_PreferredCIC, { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC", FT_BYTES, BASE_NONE, NULL, 0, "NAEA_CIC", HFILL }}, { &hf_gsm_map_msisdn, { "msisdn", "gsm_map.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_externalAddress, { "externalAddress", "gsm_map.externalAddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_diameter_Name, { "diameter-Name", "gsm_map.diameter_Name", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_diameter_Realm, { "diameter-Realm", "gsm_map.diameter_Realm", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_laiFixedLength, { "laiFixedLength", "gsm_map.laiFixedLength", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_bearerService, { "bearerService", "gsm_map.bearerService", FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, "BearerServiceCode", HFILL }}, { &hf_gsm_map_teleservice, { "teleservice", "gsm_map.teleservice", FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, "TeleserviceCode", HFILL }}, { &hf_gsm_map_ext_BearerService, { "ext-BearerService", "gsm_map.ext_BearerService", FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, "Ext_BearerServiceCode", HFILL }}, { &hf_gsm_map_ext_Teleservice, { "ext-Teleservice", "gsm_map.ext_Teleservice", FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, "Ext_TeleserviceCode", HFILL }}, { &hf_gsm_map_maximumentitledPriority, { "maximumentitledPriority", "gsm_map.maximumentitledPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_defaultPriority, { "defaultPriority", "gsm_map.defaultPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_ss_Code, { "ss-Code", "gsm_map.ss_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_Status, { "ss-Status", "gsm_map.ss_Status", FT_BYTES, BASE_NONE, NULL, 0, "Ext_SS_Status", HFILL }}, { &hf_gsm_map_nbrSB, { "nbrSB", "gsm_map.nbrSB", FT_UINT32, BASE_DEC, NULL, 0, "MaxMC_Bearers", HFILL }}, { &hf_gsm_map_nbrUser, { "nbrUser", "gsm_map.nbrUser", FT_UINT32, BASE_DEC, NULL, 0, "MC_Bearers", HFILL }}, /* --- Module MAP-SS-DataTypes --- --- --- */ { &hf_gsm_map_ss_ss_Code, { "ss-Code", "gsm_map.ss.ss_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_basicService, { "basicService", "gsm_map.ss.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, "BasicServiceCode", HFILL }}, { &hf_gsm_map_ss_forwardedToNumber, { "forwardedToNumber", "gsm_map.ss.forwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_ss_forwardedToSubaddress, { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_SubaddressString", HFILL }}, { &hf_gsm_map_ss_noReplyConditionTime, { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_defaultPriority, { "defaultPriority", "gsm_map.ss.defaultPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_ss_nbrUser, { "nbrUser", "gsm_map.ss.nbrUser", FT_UINT32, BASE_DEC, NULL, 0, "MC_Bearers", HFILL }}, { &hf_gsm_map_ss_longFTN_Supported, { "longFTN-Supported", "gsm_map.ss.longFTN_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_forwardingInfo, { "forwardingInfo", "gsm_map.ss.forwardingInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_callBarringInfo, { "callBarringInfo", "gsm_map.ss.callBarringInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ss_Data, { "ss-Data", "gsm_map.ss.ss_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_forwardingFeatureList, { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ForwardingFeatureList_item, { "ForwardingFeature", "gsm_map.ss.ForwardingFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ss_Status, { "ss-Status", "gsm_map.ss.ss_Status", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_forwardedToNumber_01, { "forwardedToNumber", "gsm_map.ss.forwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ss_forwardingOptions, { "forwardingOptions", "gsm_map.ss.forwardingOptions", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_longForwardedToNumber, { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "FTN_AddressString", HFILL }}, { &hf_gsm_map_ss_callBarringFeatureList, { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_CallBarringFeatureList_item, { "CallBarringFeature", "gsm_map.ss.CallBarringFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ss_SubscriptionOption, { "ss-SubscriptionOption", "gsm_map.ss.ss_SubscriptionOption", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_basicServiceGroupList, { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_cliRestrictionOption, { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_overrideCategory, { "overrideCategory", "gsm_map.ss.overrideCategory", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_maximumEntitledPriority, { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_ss_ccbs_FeatureList, { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_nbrSB, { "nbrSB", "gsm_map.ss.nbrSB", FT_UINT32, BASE_DEC, NULL, 0, "MaxMC_Bearers", HFILL }}, { &hf_gsm_map_ss_nbrSN, { "nbrSN", "gsm_map.ss.nbrSN", FT_UINT32, BASE_DEC, NULL, 0, "MC_Bearers", HFILL }}, { &hf_gsm_map_ss_CCBS_FeatureList_item, { "CCBS-Feature", "gsm_map.ss.CCBS_Feature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ccbs_Index, { "ccbs-Index", "gsm_map.ss.ccbs_Index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_b_subscriberNumber, { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ss_b_subscriberSubaddress, { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_SubaddressString", HFILL }}, { &hf_gsm_map_ss_basicServiceGroup, { "basicServiceGroup", "gsm_map.ss.basicServiceGroup", FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, "BasicServiceCode", HFILL }}, { &hf_gsm_map_ss_genericServiceInfo, { "genericServiceInfo", "gsm_map.ss.genericServiceInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ussd_DataCodingScheme, { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ussd_String, { "ussd-String", "gsm_map.ss.ussd_String", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_alertingPattern, { "alertingPattern", "gsm_map.ss.alertingPattern", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_msisdn, { "msisdn", "gsm_map.ss.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ss_SS_List_item, { "SS-Code", "gsm_map.ss.SS_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_BasicServiceGroupList_item, { "BasicServiceCode", "gsm_map.ss.BasicServiceCode", FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_imsi, { "imsi", "gsm_map.ss.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ss_Event, { "ss-Event", "gsm_map.ss.ss_Event", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, "SS_Code", HFILL }}, { &hf_gsm_map_ss_ss_EventSpecification, { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_extensionContainer, { "extensionContainer", "gsm_map.ss.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ccbs_RequestState, { "ccbs-RequestState", "gsm_map.ss.ccbs_RequestState", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CCBS_RequestState_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ss_SS_EventSpecification_item, { "AddressString", "gsm_map.ss.AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ccbs_Data, { "ccbs-Data", "gsm_map.ss.ccbs_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_ccbs_Feature, { "ccbs-Feature", "gsm_map.ss.ccbs_Feature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_translatedB_Number, { "translatedB-Number", "gsm_map.ss.translatedB_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ss_serviceIndicator, { "serviceIndicator", "gsm_map.ss.serviceIndicator", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ss_callInfo, { "callInfo", "gsm_map.ss.callInfo_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ss_networkSignalInfo, { "networkSignalInfo", "gsm_map.ss.networkSignalInfo_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ss_ServiceIndicator_clir_invoked, { "clir-invoked", "gsm.map.ss.ServiceIndicator.clir.invoked", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ss_ServiceIndicator_camel_invoked, { "camel-invoked", "gsm.map.ss.ServiceIndicator.camel.invoked", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, /* --- Module MAP-ER-DataTypes --- --- --- */ { &hf_gsm_map_er_roamingNotAllowedCause, { "roamingNotAllowedCause", "gsm_map.er.roamingNotAllowedCause", FT_UINT32, BASE_DEC, VALS(gsm_map_er_RoamingNotAllowedCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_extensionContainer, { "extensionContainer", "gsm_map.er.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_additionalRoamingNotAllowedCause, { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause", FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_callBarringCause, { "callBarringCause", "gsm_map.er.callBarringCause", FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_extensibleCallBarredParam, { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_unauthorisedMessageOriginator, { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_anonymousCallRejection, { "anonymousCallRejection", "gsm_map.er.anonymousCallRejection_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_cug_RejectCause, { "cug-RejectCause", "gsm_map.er.cug_RejectCause", FT_UINT32, BASE_DEC, VALS(gsm_map_er_CUG_RejectCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_ss_Code, { "ss-Code", "gsm_map.er.ss_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_basicService, { "basicService", "gsm_map.er.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, "BasicServiceCode", HFILL }}, { &hf_gsm_map_er_ss_Status, { "ss-Status", "gsm_map.er.ss_Status", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause, { "sm-EnumeratedDeliveryFailureCause", "gsm_map.er.sm_EnumeratedDeliveryFailureCause", FT_UINT32, BASE_DEC, VALS(gsm_map_er_SM_EnumeratedDeliveryFailureCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_diagnosticInfo, { "diagnosticInfo", "gsm_map.er.diagnosticInfo", FT_BYTES, BASE_NONE, NULL, 0, "SignalInfo", HFILL }}, { &hf_gsm_map_er_absentSubscriberDiagnosticSM, { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_er_imsi, { "imsi", "gsm_map.er.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_requestedRetransmissionTime, { "requestedRetransmissionTime", "gsm_map.er.requestedRetransmissionTime", FT_BYTES, BASE_NONE, NULL, 0, "Time", HFILL }}, { &hf_gsm_map_er_userIdentifierAlert, { "userIdentifierAlert", "gsm_map.er.userIdentifierAlert", FT_BYTES, BASE_NONE, NULL, 0, "IMSI", HFILL }}, { &hf_gsm_map_er_networkResource, { "networkResource", "gsm_map.er.networkResource", FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_extensibleSystemFailureParam, { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_additionalNetworkResource, { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource", FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_failureCauseParam, { "failureCauseParam", "gsm_map.er.failureCauseParam", FT_UINT32, BASE_DEC, VALS(gsm_map_er_FailureCauseParam_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_unexpectedSubscriber, { "unexpectedSubscriber", "gsm_map.er.unexpectedSubscriber_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_unknownSubscriberDiagnostic, { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic", FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_absentSubscriberReason, { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason", FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_ccbs_Possible, { "ccbs-Possible", "gsm_map.er.ccbs_Possible_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_ccbs_Busy, { "ccbs-Busy", "gsm_map.er.ccbs_Busy_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_gprsConnectionSuspended, { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_er_unauthorizedLCSClient_Diagnostic, { "unauthorizedLCSClient-Diagnostic", "gsm_map.er.unauthorizedLCSClient_Diagnostic", FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnauthorizedLCSClient_Diagnostic_vals), 0, NULL, HFILL }}, { &hf_gsm_map_er_positionMethodFailure_Diagnostic, { "positionMethodFailure-Diagnostic", "gsm_map.er.positionMethodFailure_Diagnostic", FT_UINT32, BASE_DEC, VALS(gsm_map_er_PositionMethodFailure_Diagnostic_vals), 0, NULL, HFILL }}, /* --- Module MAP-SM-DataTypes --- --- --- */ { &hf_gsm_map_sm_msisdn, { "msisdn", "gsm_map.sm.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_sm_RP_PRI, { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_sm_serviceCentreAddress, { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_sm_extensionContainer, { "extensionContainer", "gsm_map.sm.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_gprsSupportIndicator, { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_sm_RP_MTI, { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_sm_RP_SMEA, { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_sm_deliveryNotIntended, { "sm-deliveryNotIntended", "gsm_map.sm.sm_deliveryNotIntended", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryNotIntended_vals), 0, NULL, HFILL }}, { &hf_gsm_map_sm_ip_sm_gwGuidanceIndicator, { "ip-sm-gwGuidanceIndicator", "gsm_map.sm.ip_sm_gwGuidanceIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_imsi, { "imsi", "gsm_map.sm.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_t4_Trigger_Indicator, { "t4-Trigger-Indicator", "gsm_map.sm.t4_Trigger_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_singleAttemptDelivery, { "singleAttemptDelivery", "gsm_map.sm.singleAttemptDelivery_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_correlationID, { "correlationID", "gsm_map.sm.correlationID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smsf_supportIndicator, { "smsf-supportIndicator", "gsm_map.sm.smsf_supportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_locationInfoWithLMSI, { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_ip_sm_gwGuidance, { "ip-sm-gwGuidance", "gsm_map.sm.ip_sm_gwGuidance_element", FT_NONE, BASE_NONE, NULL, 0, "IP_SM_GW_Guidance", HFILL }}, { &hf_gsm_map_sm_minimumDeliveryTimeValue, { "minimumDeliveryTimeValue", "gsm_map.sm.minimumDeliveryTimeValue", FT_UINT32, BASE_DEC, NULL, 0, "SM_DeliveryTimerValue", HFILL }}, { &hf_gsm_map_sm_recommendedDeliveryTimeValue, { "recommendedDeliveryTimeValue", "gsm_map.sm.recommendedDeliveryTimeValue", FT_UINT32, BASE_DEC, NULL, 0, "SM_DeliveryTimerValue", HFILL }}, { &hf_gsm_map_sm_networkNode_Number, { "networkNode-Number", "gsm_map.sm.networkNode_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_lmsi, { "lmsi", "gsm_map.sm.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_gprsNodeIndicator, { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_additional_Number, { "additional-Number", "gsm_map.sm.additional_Number", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0, NULL, HFILL }}, { &hf_gsm_map_sm_networkNodeDiameterAddress, { "networkNodeDiameterAddress", "gsm_map.sm.networkNodeDiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_additionalNetworkNodeDiameterAddress, { "additionalNetworkNodeDiameterAddress", "gsm_map.sm.additionalNetworkNodeDiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_thirdNumber, { "thirdNumber", "gsm_map.sm.thirdNumber", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0, "Additional_Number", HFILL }}, { &hf_gsm_map_sm_thirdNetworkNodeDiameterAddress, { "thirdNetworkNodeDiameterAddress", "gsm_map.sm.thirdNetworkNodeDiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_imsNodeIndicator, { "imsNodeIndicator", "gsm_map.sm.imsNodeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smsf_3gpp_Number, { "smsf-3gpp-Number", "gsm_map.sm.smsf_3gpp_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_smsf_3gpp_DiameterAddress, { "smsf-3gpp-DiameterAddress", "gsm_map.sm.smsf_3gpp_DiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_smsf_non_3gpp_Number, { "smsf-non-3gpp-Number", "gsm_map.sm.smsf_non_3gpp_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_smsf_non_3gpp_DiameterAddress, { "smsf-non-3gpp-DiameterAddress", "gsm_map.sm.smsf_non_3gpp_DiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_smsf_3gpp_address_indicator, { "smsf-3gpp-address-indicator", "gsm_map.sm.smsf_3gpp_address_indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smsf_non_3gpp_address_indicator, { "smsf-non-3gpp-address-indicator", "gsm_map.sm.smsf_non_3gpp_address_indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_msc_Number, { "msc-Number", "gsm_map.sm.msc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_sgsn_Number, { "sgsn-Number", "gsm_map.sm.sgsn_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_sm_RP_DA, { "sm-RP-DA", "gsm_map.sm.sm_RP_DA", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_DA_vals), 0, NULL, HFILL }}, { &hf_gsm_map_sm_sm_RP_OA, { "sm-RP-OA", "gsm_map.sm.sm_RP_OA", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_RP_OA_vals), 0, NULL, HFILL }}, { &hf_gsm_map_sm_sm_RP_UI, { "sm-RP-UI", "gsm_map.sm.sm_RP_UI", FT_BYTES, BASE_NONE, NULL, 0, "SignalInfo", HFILL }}, { &hf_gsm_map_sm_sm_DeliveryOutcome, { "sm-DeliveryOutcome", "gsm_map.sm.sm_DeliveryOutcome", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0, NULL, HFILL }}, { &hf_gsm_map_sm_moreMessagesToSend, { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smDeliveryTimer, { "smDeliveryTimer", "gsm_map.sm.smDeliveryTimer", FT_UINT32, BASE_DEC, NULL, 0, "SM_DeliveryTimerValue", HFILL }}, { &hf_gsm_map_sm_smDeliveryStartTime, { "smDeliveryStartTime", "gsm_map.sm.smDeliveryStartTime", FT_BYTES, BASE_NONE, NULL, 0, "Time", HFILL }}, { &hf_gsm_map_sm_smsOverIP_OnlyIndicator, { "smsOverIP-OnlyIndicator", "gsm_map.sm.smsOverIP_OnlyIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_maximumRetransmissionTime, { "maximumRetransmissionTime", "gsm_map.sm.maximumRetransmissionTime", FT_BYTES, BASE_NONE, NULL, 0, "Time", HFILL }}, { &hf_gsm_map_sm_smsGmscAddress, { "smsGmscAddress", "gsm_map.sm.smsGmscAddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_smsGmscDiameterAddress, { "smsGmscDiameterAddress", "gsm_map.sm.smsGmscDiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_hlr_id, { "hlr-id", "gsm_map.sm.hlr_id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_sip_uri_A, { "sip-uri-A", "gsm_map.sm.sip_uri_A", FT_BYTES, BASE_NONE, NULL, 0, "SIP_URI", HFILL }}, { &hf_gsm_map_sm_sip_uri_B, { "sip-uri-B", "gsm_map.sm.sip_uri_B", FT_BYTES, BASE_NONE, NULL, 0, "SIP_URI", HFILL }}, { &hf_gsm_map_sm_imsi_01, { "imsi", "gsm_map.sm.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_lmsi_01, { "lmsi", "gsm_map.sm.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_serviceCentreAddressDA, { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_noSM_RP_DA, { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_msisdn_01, { "msisdn", "gsm_map.sm.msisdn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_serviceCentreAddressOA, { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_noSM_RP_OA, { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_deliveryOutcomeIndicator, { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_additionalSM_DeliveryOutcome, { "additionalSM-DeliveryOutcome", "gsm_map.sm.additionalSM_DeliveryOutcome", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0, "SM_DeliveryOutcome", HFILL }}, { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_sm_ip_sm_gw_Indicator, { "ip-sm-gw-Indicator", "gsm_map.sm.ip_sm_gw_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_ip_sm_gw_sm_deliveryOutcome, { "ip-sm-gw-sm-deliveryOutcome", "gsm_map.sm.ip_sm_gw_sm_deliveryOutcome", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0, "SM_DeliveryOutcome", HFILL }}, { &hf_gsm_map_sm_ip_sm_gw_absentSubscriberDiagnosticSM, { "ip-sm-gw-absentSubscriberDiagnosticSM", "gsm_map.sm.ip_sm_gw_absentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcomeIndicator, { "smsf-3gpp-deliveryOutcomeIndicator", "gsm_map.sm.smsf_3gpp_deliveryOutcomeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smsf_3gpp_deliveryOutcome, { "smsf-3gpp-deliveryOutcome", "gsm_map.sm.smsf_3gpp_deliveryOutcome", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0, "SM_DeliveryOutcome", HFILL }}, { &hf_gsm_map_sm_smsf_3gpp_absentSubscriberDiagSM, { "smsf-3gpp-absentSubscriberDiagSM", "gsm_map.sm.smsf_3gpp_absentSubscriberDiagSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcomeIndicator, { "smsf-non-3gpp-deliveryOutcomeIndicator", "gsm_map.sm.smsf_non_3gpp_deliveryOutcomeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smsf_non_3gpp_deliveryOutcome, { "smsf-non-3gpp-deliveryOutcome", "gsm_map.sm.smsf_non_3gpp_deliveryOutcome", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SM_DeliveryOutcome_vals), 0, "SM_DeliveryOutcome", HFILL }}, { &hf_gsm_map_sm_smsf_non_3gpp_absentSubscriberDiagSM, { "smsf-non-3gpp-absentSubscriberDiagSM", "gsm_map.sm.smsf_non_3gpp_absentSubscriberDiagSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_sm_storedMSISDN, { "storedMSISDN", "gsm_map.sm.storedMSISDN", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_maximumUeAvailabilityTime, { "maximumUeAvailabilityTime", "gsm_map.sm.maximumUeAvailabilityTime", FT_BYTES, BASE_NONE, NULL, 0, "Time", HFILL }}, { &hf_gsm_map_sm_smsGmscAlertEvent, { "smsGmscAlertEvent", "gsm_map.sm.smsGmscAlertEvent", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_SmsGmsc_Alert_Event_vals), 0, "SmsGmsc_Alert_Event", HFILL }}, { &hf_gsm_map_sm_newSGSNNumber, { "newSGSNNumber", "gsm_map.sm.newSGSNNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_newSGSNDiameterAddress, { "newSGSNDiameterAddress", "gsm_map.sm.newSGSNDiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_newMMENumber, { "newMMENumber", "gsm_map.sm.newMMENumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_newMMEDiameterAddress, { "newMMEDiameterAddress", "gsm_map.sm.newMMEDiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_sm_newMSCNumber, { "newMSCNumber", "gsm_map.sm.newMSCNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_sm_mw_Status, { "mw-Status", "gsm_map.sm.mw_Status", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_smsf3gppAbsentSubscriberDiagnosticSM, { "smsf3gppAbsentSubscriberDiagnosticSM", "gsm_map.sm.smsf3gppAbsentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_sm_smsfNon3gppAbsentSubscriberDiagnosticSM, { "smsfNon3gppAbsentSubscriberDiagnosticSM", "gsm_map.sm.smsfNon3gppAbsentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_sm_alertReason, { "alertReason", "gsm_map.sm.alertReason", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0, NULL, HFILL }}, { &hf_gsm_map_sm_alertReasonIndicator, { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_additionalAlertReasonIndicator, { "additionalAlertReasonIndicator", "gsm_map.sm.additionalAlertReasonIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_asciCallReference, { "asciCallReference", "gsm_map.sm.asciCallReference", FT_BYTES, BASE_NONE, NULL, 0, "ASCI_CallReference", HFILL }}, { &hf_gsm_map_sm_dispatcherList, { "dispatcherList", "gsm_map.sm.dispatcherList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_ongoingCall, { "ongoingCall", "gsm_map.sm.ongoingCall_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_additionalDispatcherList, { "additionalDispatcherList", "gsm_map.sm.additionalDispatcherList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_DispatcherList_item, { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_AdditionalDispatcherList_item, { "ISDN-AddressString", "gsm_map.sm.ISDN_AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, { "sc-AddressNotIncluded", "gsm.map.sm.MW.Status.sc.AddressNotIncluded", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_sm_MW_Status_mnrf_Set, { "mnrf-Set", "gsm.map.sm.MW.Status.mnrf.Set", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_sm_MW_Status_mcef_Set, { "mcef-Set", "gsm.map.sm.MW.Status.mcef.Set", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_sm_MW_Status_mnrg_Set, { "mnrg-Set", "gsm.map.sm.MW.Status.mnrg.Set", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_sm_MW_Status_mnr5g_Set, { "mnr5g-Set", "gsm.map.sm.MW.Status.mnr5g.Set", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_sm_MW_Status_mnr5gn3g_Set, { "mnr5gn3g-Set", "gsm.map.sm.MW.Status.mnr5gn3g.Set", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, /* --- Module MAP-OM-DataTypes --- --- --- */ { &hf_gsm_map_om_imsi, { "imsi", "gsm_map.om.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceReference, { "traceReference", "gsm_map.om.traceReference", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceType, { "traceType", "gsm_map.om.traceType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_omc_Id, { "omc-Id", "gsm_map.om.omc_Id", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_om_extensionContainer, { "extensionContainer", "gsm_map.om.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceReference2, { "traceReference2", "gsm_map.om.traceReference2", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceDepthList, { "traceDepthList", "gsm_map.om.traceDepthList_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceNE_TypeList, { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceInterfaceList, { "traceInterfaceList", "gsm_map.om.traceInterfaceList_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceEventList, { "traceEventList", "gsm_map.om.traceEventList_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceCollectionEntity, { "traceCollectionEntity", "gsm_map.om.traceCollectionEntity", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_om_mdt_Configuration, { "mdt-Configuration", "gsm_map.om.mdt_Configuration_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_jobType, { "jobType", "gsm_map.om.jobType", FT_UINT32, BASE_DEC, VALS(gsm_map_om_JobType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_om_areaScope, { "areaScope", "gsm_map.om.areaScope_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_listOfMeasurements, { "listOfMeasurements", "gsm_map.om.listOfMeasurements", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_reportingTrigger, { "reportingTrigger", "gsm_map.om.reportingTrigger", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_reportInterval, { "reportInterval", "gsm_map.om.reportInterval", FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportInterval_vals), 0, NULL, HFILL }}, { &hf_gsm_map_om_reportAmount, { "reportAmount", "gsm_map.om.reportAmount", FT_UINT32, BASE_DEC, VALS(gsm_map_om_ReportAmount_vals), 0, NULL, HFILL }}, { &hf_gsm_map_om_eventThresholdRSRP, { "eventThresholdRSRP", "gsm_map.om.eventThresholdRSRP", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_eventThresholdRSRQ, { "eventThresholdRSRQ", "gsm_map.om.eventThresholdRSRQ", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_loggingInterval, { "loggingInterval", "gsm_map.om.loggingInterval", FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingInterval_vals), 0, NULL, HFILL }}, { &hf_gsm_map_om_loggingDuration, { "loggingDuration", "gsm_map.om.loggingDuration", FT_UINT32, BASE_DEC, VALS(gsm_map_om_LoggingDuration_vals), 0, NULL, HFILL }}, { &hf_gsm_map_om_measurementPeriodUMTS, { "measurementPeriodUMTS", "gsm_map.om.measurementPeriodUMTS", FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodUMTS_vals), 0, "PeriodUMTS", HFILL }}, { &hf_gsm_map_om_measurementPeriodLTE, { "measurementPeriodLTE", "gsm_map.om.measurementPeriodLTE", FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodLTE_vals), 0, "PeriodLTE", HFILL }}, { &hf_gsm_map_om_collectionPeriodRRM_UMTS, { "collectionPeriodRRM-UMTS", "gsm_map.om.collectionPeriodRRM_UMTS", FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodUMTS_vals), 0, "PeriodUMTS", HFILL }}, { &hf_gsm_map_om_collectionPeriodRRM_LTE, { "collectionPeriodRRM-LTE", "gsm_map.om.collectionPeriodRRM_LTE", FT_UINT32, BASE_DEC, VALS(gsm_map_om_PeriodLTE_vals), 0, "PeriodLTE", HFILL }}, { &hf_gsm_map_om_positioningMethod, { "positioningMethod", "gsm_map.om.positioningMethod", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_measurementQuantity, { "measurementQuantity", "gsm_map.om.measurementQuantity", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_eventThreshold1F, { "eventThreshold1F", "gsm_map.om.eventThreshold1F", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_eventThreshold1I, { "eventThreshold1I", "gsm_map.om.eventThreshold1I", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_mdt_Allowed_PLMN_List, { "mdt-Allowed-PLMN-List", "gsm_map.om.mdt_Allowed_PLMN_List", FT_UINT32, BASE_DEC, NULL, 0, "MDT_Allowed_PLMNId_List", HFILL }}, { &hf_gsm_map_om_MDT_Allowed_PLMNId_List_item, { "PLMN-Id", "gsm_map.om.PLMN_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_cgi_List, { "cgi-List", "gsm_map.om.cgi_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_e_utran_cgi_List, { "e-utran-cgi-List", "gsm_map.om.e_utran_cgi_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_routingAreaId_List, { "routingAreaId-List", "gsm_map.om.routingAreaId_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_locationAreaId_List, { "locationAreaId-List", "gsm_map.om.locationAreaId_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_trackingAreaId_List, { "trackingAreaId-List", "gsm_map.om.trackingAreaId_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_CGI_List_item, { "GlobalCellId", "gsm_map.om.GlobalCellId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_E_UTRAN_CGI_List_item, { "E-UTRAN-CGI", "gsm_map.om.E_UTRAN_CGI", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_RoutingAreaId_List_item, { "RAIdentity", "gsm_map.om.RAIdentity", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_LocationAreaId_List_item, { "LAIFixedLength", "gsm_map.om.LAIFixedLength", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_TrackingAreaId_List_item, { "TA-Id", "gsm_map.om.TA_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_msc_s_TraceDepth, { "msc-s-TraceDepth", "gsm_map.om.msc_s_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_mgw_TraceDepth, { "mgw-TraceDepth", "gsm_map.om.mgw_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_sgsn_TraceDepth, { "sgsn-TraceDepth", "gsm_map.om.sgsn_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_ggsn_TraceDepth, { "ggsn-TraceDepth", "gsm_map.om.ggsn_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_rnc_TraceDepth, { "rnc-TraceDepth", "gsm_map.om.rnc_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_bmsc_TraceDepth, { "bmsc-TraceDepth", "gsm_map.om.bmsc_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_mme_TraceDepth, { "mme-TraceDepth", "gsm_map.om.mme_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_sgw_TraceDepth, { "sgw-TraceDepth", "gsm_map.om.sgw_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_pgw_TraceDepth, { "pgw-TraceDepth", "gsm_map.om.pgw_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_eNB_TraceDepth, { "eNB-TraceDepth", "gsm_map.om.eNB_TraceDepth", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepth_vals), 0, "TraceDepth", HFILL }}, { &hf_gsm_map_om_msc_s_TraceDepthExtension, { "msc-s-TraceDepthExtension", "gsm_map.om.msc_s_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_mgw_TraceDepthExtension, { "mgw-TraceDepthExtension", "gsm_map.om.mgw_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_sgsn_TraceDepthExtension, { "sgsn-TraceDepthExtension", "gsm_map.om.sgsn_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_ggsn_TraceDepthExtension, { "ggsn-TraceDepthExtension", "gsm_map.om.ggsn_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_rnc_TraceDepthExtension, { "rnc-TraceDepthExtension", "gsm_map.om.rnc_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_bmsc_TraceDepthExtension, { "bmsc-TraceDepthExtension", "gsm_map.om.bmsc_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_mme_TraceDepthExtension, { "mme-TraceDepthExtension", "gsm_map.om.mme_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_sgw_TraceDepthExtension, { "sgw-TraceDepthExtension", "gsm_map.om.sgw_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_pgw_TraceDepthExtension, { "pgw-TraceDepthExtension", "gsm_map.om.pgw_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_eNB_TraceDepthExtension, { "eNB-TraceDepthExtension", "gsm_map.om.eNB_TraceDepthExtension", FT_UINT32, BASE_DEC, VALS(gsm_map_om_TraceDepthExtension_vals), 0, "TraceDepthExtension", HFILL }}, { &hf_gsm_map_om_msc_s_List, { "msc-s-List", "gsm_map.om.msc_s_List", FT_BYTES, BASE_NONE, NULL, 0, "MSC_S_InterfaceList", HFILL }}, { &hf_gsm_map_om_mgw_List, { "mgw-List", "gsm_map.om.mgw_List", FT_BYTES, BASE_NONE, NULL, 0, "MGW_InterfaceList", HFILL }}, { &hf_gsm_map_om_sgsn_List, { "sgsn-List", "gsm_map.om.sgsn_List", FT_BYTES, BASE_NONE, NULL, 0, "SGSN_InterfaceList", HFILL }}, { &hf_gsm_map_om_ggsn_List, { "ggsn-List", "gsm_map.om.ggsn_List", FT_BYTES, BASE_NONE, NULL, 0, "GGSN_InterfaceList", HFILL }}, { &hf_gsm_map_om_rnc_List, { "rnc-List", "gsm_map.om.rnc_List", FT_BYTES, BASE_NONE, NULL, 0, "RNC_InterfaceList", HFILL }}, { &hf_gsm_map_om_bmsc_List, { "bmsc-List", "gsm_map.om.bmsc_List", FT_BYTES, BASE_NONE, NULL, 0, "BMSC_InterfaceList", HFILL }}, { &hf_gsm_map_om_mme_List, { "mme-List", "gsm_map.om.mme_List", FT_BYTES, BASE_NONE, NULL, 0, "MME_InterfaceList", HFILL }}, { &hf_gsm_map_om_sgw_List, { "sgw-List", "gsm_map.om.sgw_List", FT_BYTES, BASE_NONE, NULL, 0, "SGW_InterfaceList", HFILL }}, { &hf_gsm_map_om_pgw_List, { "pgw-List", "gsm_map.om.pgw_List", FT_BYTES, BASE_NONE, NULL, 0, "PGW_InterfaceList", HFILL }}, { &hf_gsm_map_om_eNB_List, { "eNB-List", "gsm_map.om.eNB_List", FT_BYTES, BASE_NONE, NULL, 0, "ENB_InterfaceList", HFILL }}, { &hf_gsm_map_om_msc_s_List_01, { "msc-s-List", "gsm_map.om.msc_s_List", FT_BYTES, BASE_NONE, NULL, 0, "MSC_S_EventList", HFILL }}, { &hf_gsm_map_om_mgw_List_01, { "mgw-List", "gsm_map.om.mgw_List", FT_BYTES, BASE_NONE, NULL, 0, "MGW_EventList", HFILL }}, { &hf_gsm_map_om_sgsn_List_01, { "sgsn-List", "gsm_map.om.sgsn_List", FT_BYTES, BASE_NONE, NULL, 0, "SGSN_EventList", HFILL }}, { &hf_gsm_map_om_ggsn_List_01, { "ggsn-List", "gsm_map.om.ggsn_List", FT_BYTES, BASE_NONE, NULL, 0, "GGSN_EventList", HFILL }}, { &hf_gsm_map_om_bmsc_List_01, { "bmsc-List", "gsm_map.om.bmsc_List", FT_BYTES, BASE_NONE, NULL, 0, "BMSC_EventList", HFILL }}, { &hf_gsm_map_om_mme_List_01, { "mme-List", "gsm_map.om.mme_List", FT_BYTES, BASE_NONE, NULL, 0, "MME_EventList", HFILL }}, { &hf_gsm_map_om_sgw_List_01, { "sgw-List", "gsm_map.om.sgw_List", FT_BYTES, BASE_NONE, NULL, 0, "SGW_EventList", HFILL }}, { &hf_gsm_map_om_pgw_List_01, { "pgw-List", "gsm_map.om.pgw_List", FT_BYTES, BASE_NONE, NULL, 0, "PGW_EventList", HFILL }}, { &hf_gsm_map_om_traceRecordingSessionReference, { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_rnc_InterfaceList, { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_msc_s_InterfaceList, { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_msc_s_EventList, { "msc-s-EventList", "gsm_map.om.msc_s_EventList", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_mgw_InterfaceList, { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_mgw_EventList, { "mgw-EventList", "gsm_map.om.mgw_EventList", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_traceSupportIndicator, { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_msc_s, { "msc-s", "gsm.map.om.TraceNE.TypeList.msc.s", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_mgw, { "mgw", "gsm.map.om.TraceNE.TypeList.mgw", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_sgsn, { "sgsn", "gsm.map.om.TraceNE.TypeList.sgsn", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_ggsn, { "ggsn", "gsm.map.om.TraceNE.TypeList.ggsn", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_rnc, { "rnc", "gsm.map.om.TraceNE.TypeList.rnc", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_bm_sc, { "bm-sc", "gsm.map.om.TraceNE.TypeList.bm.sc", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_mme, { "mme", "gsm.map.om.TraceNE.TypeList.mme", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_sgw, { "sgw", "gsm.map.om.TraceNE.TypeList.sgw", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_pgw, { "pgw", "gsm.map.om.TraceNE.TypeList.pgw", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_TraceNE_TypeList_eNB, { "eNB", "gsm.map.om.TraceNE.TypeList.eNB", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_a, { "a", "gsm.map.om.MSC.S.InterfaceList.a", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_iu, { "iu", "gsm.map.om.MSC.S.InterfaceList.iu", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_mc, { "mc", "gsm.map.om.MSC.S.InterfaceList.mc", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_map_g, { "map-g", "gsm.map.om.MSC.S.InterfaceList.map.g", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_map_b, { "map-b", "gsm.map.om.MSC.S.InterfaceList.map.b", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_map_e, { "map-e", "gsm.map.om.MSC.S.InterfaceList.map.e", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_map_f, { "map-f", "gsm.map.om.MSC.S.InterfaceList.map.f", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_cap, { "cap", "gsm.map.om.MSC.S.InterfaceList.cap", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_map_d, { "map-d", "gsm.map.om.MSC.S.InterfaceList.map.d", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_InterfaceList_map_c, { "map-c", "gsm.map.om.MSC.S.InterfaceList.map.c", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MGW_InterfaceList_mc, { "mc", "gsm.map.om.MGW.InterfaceList.mc", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MGW_InterfaceList_nb_up, { "nb-up", "gsm.map.om.MGW.InterfaceList.nb.up", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MGW_InterfaceList_iu_up, { "iu-up", "gsm.map.om.MGW.InterfaceList.iu.up", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_gb, { "gb", "gsm.map.om.SGSN.InterfaceList.gb", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_iu, { "iu", "gsm.map.om.SGSN.InterfaceList.iu", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_gn, { "gn", "gsm.map.om.SGSN.InterfaceList.gn", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_map_gr, { "map-gr", "gsm.map.om.SGSN.InterfaceList.map.gr", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_map_gd, { "map-gd", "gsm.map.om.SGSN.InterfaceList.map.gd", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_map_gf, { "map-gf", "gsm.map.om.SGSN.InterfaceList.map.gf", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_gs, { "gs", "gsm.map.om.SGSN.InterfaceList.gs", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_ge, { "ge", "gsm.map.om.SGSN.InterfaceList.ge", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_s3, { "s3", "gsm.map.om.SGSN.InterfaceList.s3", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_s4, { "s4", "gsm.map.om.SGSN.InterfaceList.s4", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_InterfaceList_s6d, { "s6d", "gsm.map.om.SGSN.InterfaceList.s6d", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_GGSN_InterfaceList_gn, { "gn", "gsm.map.om.GGSN.InterfaceList.gn", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_GGSN_InterfaceList_gi, { "gi", "gsm.map.om.GGSN.InterfaceList.gi", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_GGSN_InterfaceList_gmb, { "gmb", "gsm.map.om.GGSN.InterfaceList.gmb", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_RNC_InterfaceList_iu, { "iu", "gsm.map.om.RNC.InterfaceList.iu", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_RNC_InterfaceList_iur, { "iur", "gsm.map.om.RNC.InterfaceList.iur", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_RNC_InterfaceList_iub, { "iub", "gsm.map.om.RNC.InterfaceList.iub", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_RNC_InterfaceList_uu, { "uu", "gsm.map.om.RNC.InterfaceList.uu", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_BMSC_InterfaceList_gmb, { "gmb", "gsm.map.om.BMSC.InterfaceList.gmb", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MME_InterfaceList_s1_mme, { "s1-mme", "gsm.map.om.MME.InterfaceList.s1.mme", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MME_InterfaceList_s3, { "s3", "gsm.map.om.MME.InterfaceList.s3", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MME_InterfaceList_s6a, { "s6a", "gsm.map.om.MME.InterfaceList.s6a", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_MME_InterfaceList_s10, { "s10", "gsm.map.om.MME.InterfaceList.s10", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_MME_InterfaceList_s11, { "s11", "gsm.map.om.MME.InterfaceList.s11", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_SGW_InterfaceList_s4, { "s4", "gsm.map.om.SGW.InterfaceList.s4", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_SGW_InterfaceList_s5, { "s5", "gsm.map.om.SGW.InterfaceList.s5", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_SGW_InterfaceList_s8b, { "s8b", "gsm.map.om.SGW.InterfaceList.s8b", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_SGW_InterfaceList_s11, { "s11", "gsm.map.om.SGW.InterfaceList.s11", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_SGW_InterfaceList_gxc, { "gxc", "gsm.map.om.SGW.InterfaceList.gxc", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_s2a, { "s2a", "gsm.map.om.PGW.InterfaceList.s2a", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_s2b, { "s2b", "gsm.map.om.PGW.InterfaceList.s2b", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_s2c, { "s2c", "gsm.map.om.PGW.InterfaceList.s2c", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_s5, { "s5", "gsm.map.om.PGW.InterfaceList.s5", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_s6b, { "s6b", "gsm.map.om.PGW.InterfaceList.s6b", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_gx, { "gx", "gsm.map.om.PGW.InterfaceList.gx", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_s8b, { "s8b", "gsm.map.om.PGW.InterfaceList.s8b", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_om_PGW_InterfaceList_sgi, { "sgi", "gsm.map.om.PGW.InterfaceList.sgi", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_om_ENB_InterfaceList_s1_mme, { "s1-mme", "gsm.map.om.ENB.InterfaceList.s1.mme", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_ENB_InterfaceList_x2, { "x2", "gsm.map.om.ENB.InterfaceList.x2", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_ENB_InterfaceList_uu, { "uu", "gsm.map.om.ENB.InterfaceList.uu", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, { "mo-mtCall", "gsm.map.om.MSC.S.EventList.mo.mtCall", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, { "mo-mt-sms", "gsm.map.om.MSC.S.EventList.mo.mt.sms", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, { "lu-imsiAttach-imsiDetach", "gsm.map.om.MSC.S.EventList.lu.imsiAttach.imsiDetach", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_EventList_handovers, { "handovers", "gsm.map.om.MSC.S.EventList.handovers", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_MSC_S_EventList_ss, { "ss", "gsm.map.om.MSC.S.EventList.ss", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_MGW_EventList_context, { "context", "gsm.map.om.MGW.EventList.context", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_EventList_pdpContext, { "pdpContext", "gsm.map.om.SGSN.EventList.pdpContext", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, { "mo-mt-sms", "gsm.map.om.SGSN.EventList.mo.mt.sms", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, { "rau-gprsAttach-gprsDetach", "gsm.map.om.SGSN.EventList.rau.gprsAttach.gprsDetach", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_SGSN_EventList_mbmsContext, { "mbmsContext", "gsm.map.om.SGSN.EventList.mbmsContext", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_GGSN_EventList_pdpContext, { "pdpContext", "gsm.map.om.GGSN.EventList.pdpContext", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_GGSN_EventList_mbmsContext, { "mbmsContext", "gsm.map.om.GGSN.EventList.mbmsContext", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, { "mbmsMulticastServiceActivation", "gsm.map.om.BMSC.EventList.mbmsMulticastServiceActivation", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNconectivityRequest, { "ue-initiatedPDNconectivityRequest", "gsm.map.om.MME.EventList.ue.initiatedPDNconectivityRequest", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_MME_EventList_serviceRequestts, { "serviceRequestts", "gsm.map.om.MME.EventList.serviceRequestts", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_MME_EventList_initialAttachTrackingAreaUpdateDetach, { "initialAttachTrackingAreaUpdateDetach", "gsm.map.om.MME.EventList.initialAttachTrackingAreaUpdateDetach", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_MME_EventList_ue_initiatedPDNdisconnection, { "ue-initiatedPDNdisconnection", "gsm.map.om.MME.EventList.ue.initiatedPDNdisconnection", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_om_MME_EventList_bearerActivationModificationDeletion, { "bearerActivationModificationDeletion", "gsm.map.om.MME.EventList.bearerActivationModificationDeletion", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_om_MME_EventList_handover, { "handover", "gsm.map.om.MME.EventList.handover", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_om_SGW_EventList_pdn_connectionCreation, { "pdn-connectionCreation", "gsm.map.om.SGW.EventList.pdn.connectionCreation", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_SGW_EventList_pdn_connectionTermination, { "pdn-connectionTermination", "gsm.map.om.SGW.EventList.pdn.connectionTermination", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_SGW_EventList_bearerActivationModificationDeletion, { "bearerActivationModificationDeletion", "gsm.map.om.SGW.EventList.bearerActivationModificationDeletion", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_om_PGW_EventList_pdn_connectionCreation, { "pdn-connectionCreation", "gsm.map.om.PGW.EventList.pdn.connectionCreation", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_om_PGW_EventList_pdn_connectionTermination, { "pdn-connectionTermination", "gsm.map.om.PGW.EventList.pdn.connectionTermination", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_om_PGW_EventList_bearerActivationModificationDeletion, { "bearerActivationModificationDeletion", "gsm.map.om.PGW.EventList.bearerActivationModificationDeletion", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, /* --- Module MAP-MS-DataTypes --- --- --- */ { &hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoArg_PDU, { "SendAuthenticationInfoArg", "gsm_map.ms.SendAuthenticationInfoArg_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gsm_map_ms_SendAuthenticationInfoRes_PDU, { "SendAuthenticationInfoRes", "gsm_map.ms.SendAuthenticationInfoRes_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_imsi, { "imsi", "gsm_map.ms.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_msc_Number, { "msc-Number", "gsm_map.ms.msc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_vlr_Number, { "vlr-Number", "gsm_map.ms.vlr_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_lmsi, { "lmsi", "gsm_map.ms.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_extensionContainer, { "extensionContainer", "gsm_map.ms.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vlr_Capability, { "vlr-Capability", "gsm_map.ms.vlr_Capability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_informPreviousNetworkEntity, { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_v_gmlc_Address, { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_ms_add_info, { "add-info", "gsm_map.ms.add_info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pagingArea, { "pagingArea", "gsm_map.ms.pagingArea", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_skipSubscriberDataUpdate, { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_restorationIndicator, { "restorationIndicator", "gsm_map.ms.restorationIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_eplmn_List, { "eplmn-List", "gsm_map.ms.eplmn_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mme_DiameterAddress, { "mme-DiameterAddress", "gsm_map.ms.mme_DiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_ms_supportedCamelPhases, { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_solsaSupportIndicator, { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_istSupportIndicator, { "istSupportIndicator", "gsm_map.ms.istSupportIndicator", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0, "IST_SupportIndicator", HFILL }}, { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0, "SuperChargerInfo", HFILL }}, { &hf_gsm_map_ms_longFTN_Supported, { "longFTN-Supported", "gsm_map.ms.longFTN_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_supportedLCS_CapabilitySets, { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_offeredCamel4CSIs, { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_supportedRAT_TypesIndicator, { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator", FT_BYTES, BASE_NONE, NULL, 0, "SupportedRAT_Types", HFILL }}, { &hf_gsm_map_ms_longGroupID_Supported, { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mtRoamingForwardingSupported, { "mtRoamingForwardingSupported", "gsm_map.ms.mtRoamingForwardingSupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_msisdn_lessOperation_Supported, { "msisdn-lessOperation-Supported", "gsm_map.ms.msisdn_lessOperation_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_reset_ids_Supported, { "reset-ids-Supported", "gsm_map.ms.reset_ids_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sendSubscriberData, { "sendSubscriberData", "gsm_map.ms.sendSubscriberData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscriberDataStored, { "subscriberDataStored", "gsm_map.ms.subscriberDataStored", FT_BYTES, BASE_NONE, NULL, 0, "AgeIndicator", HFILL }}, { &hf_gsm_map_ms_hlr_Number, { "hlr-Number", "gsm_map.ms.hlr_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_add_Capability, { "add-Capability", "gsm_map.ms.add_Capability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pagingArea_Capability, { "pagingArea-Capability", "gsm_map.ms.pagingArea_Capability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_imeisv, { "imeisv", "gsm_map.ms.imeisv", FT_BYTES, BASE_NONE, NULL, 0, "IMEI", HFILL }}, { &hf_gsm_map_ms_PagingArea_item, { "LocationArea", "gsm_map.ms.LocationArea", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LocationArea_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_laiFixedLength, { "laiFixedLength", "gsm_map.ms.laiFixedLength", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lac, { "lac", "gsm_map.ms.lac", FT_UINT16, BASE_DEC_HEX, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_identity, { "identity", "gsm_map.ms.identity", FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_cancellationType, { "cancellationType", "gsm_map.ms.cancellationType", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_typeOfUpdate, { "typeOfUpdate", "gsm_map.ms.typeOfUpdate", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_TypeOfUpdate_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_mtrf_SupportedAndAuthorized, { "mtrf-SupportedAndAuthorized", "gsm_map.ms.mtrf_SupportedAndAuthorized_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mtrf_SupportedAndNotAuthorized, { "mtrf-SupportedAndNotAuthorized", "gsm_map.ms.mtrf_SupportedAndNotAuthorized_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_newMSC_Number, { "newMSC-Number", "gsm_map.ms.newMSC_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_newVLR_Number, { "newVLR-Number", "gsm_map.ms.newVLR_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_new_lmsi, { "new-lmsi", "gsm_map.ms.new_lmsi", FT_BYTES, BASE_NONE, NULL, 0, "LMSI", HFILL }}, { &hf_gsm_map_ms_reattach_Required, { "reattach-Required", "gsm_map.ms.reattach_Required_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sgsn_Number, { "sgsn-Number", "gsm_map.ms.sgsn_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_locationInformation, { "locationInformation", "gsm_map.ms.locationInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_locationInformationGPRS, { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_locationInformationEPS, { "locationInformationEPS", "gsm_map.ms.locationInformationEPS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_freezeTMSI, { "freezeTMSI", "gsm_map.ms.freezeTMSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_freezeP_TMSI, { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_freezeM_TMSI, { "freezeM-TMSI", "gsm_map.ms.freezeM_TMSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_tmsi, { "tmsi", "gsm_map.ms.tmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_numberOfRequestedVectors, { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_segmentationProhibited, { "segmentationProhibited", "gsm_map.ms.segmentationProhibited_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_previous_LAI, { "previous-LAI", "gsm_map.ms.previous_LAI", FT_BYTES, BASE_NONE, NULL, 0, "LAIFixedLength", HFILL }}, { &hf_gsm_map_ms_hopCounter, { "hopCounter", "gsm_map.ms.hopCounter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_authenticationSetList, { "authenticationSetList", "gsm_map.ms.authenticationSetList", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_currentSecurityContext, { "currentSecurityContext", "gsm_map.ms.currentSecurityContext", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_lastUsedLtePLMN_Id, { "lastUsedLtePLMN-Id", "gsm_map.ms.lastUsedLtePLMN_Id", FT_BYTES, BASE_NONE, NULL, 0, "PLMN_Id", HFILL }}, { &hf_gsm_map_ms_mtCallPendingFlag, { "mtCallPendingFlag", "gsm_map.ms.mtCallPendingFlag_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_tripletList, { "tripletList", "gsm_map.ms.tripletList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_quintupletList, { "quintupletList", "gsm_map.ms.quintupletList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_TripletList_item, { "AuthenticationTriplet", "gsm_map.ms.AuthenticationTriplet_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_QuintupletList_item, { "AuthenticationQuintuplet", "gsm_map.ms.AuthenticationQuintuplet_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_rand, { "rand", "gsm_map.ms.rand", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sres, { "sres", "gsm_map.ms.sres", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_kc, { "kc", "gsm_map.ms.kc", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_xres, { "xres", "gsm_map.ms.xres", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ck, { "ck", "gsm_map.ms.ck", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ik, { "ik", "gsm_map.ms.ik", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_autn, { "autn", "gsm_map.ms.autn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gsm_SecurityContextData, { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_umts_SecurityContextData, { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cksn, { "cksn", "gsm_map.ms.cksn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ksi, { "ksi", "gsm_map.ms.ksi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_failureCause, { "failureCause", "gsm_map.ms.failureCause", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_re_attempt, { "re-attempt", "gsm_map.ms.re_attempt", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_ms_accessType, { "accessType", "gsm_map.ms.accessType", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_sgsn_Address, { "sgsn-Address", "gsm_map.ms.sgsn_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_ms_sgsn_Capability, { "sgsn-Capability", "gsm_map.ms.sgsn_Capability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_eps_info, { "eps-info", "gsm_map.ms.eps_info", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_Info_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_servingNodeTypeIndicator, { "servingNodeTypeIndicator", "gsm_map.ms.servingNodeTypeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_usedRAT_Type, { "usedRAT-Type", "gsm_map.ms.usedRAT_Type", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0, "Used_RAT_Type", HFILL }}, { &hf_gsm_map_ms_gprsSubscriptionDataNotNeeded, { "gprsSubscriptionDataNotNeeded", "gsm_map.ms.gprsSubscriptionDataNotNeeded_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_nodeTypeIndicator, { "nodeTypeIndicator", "gsm_map.ms.nodeTypeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_areaRestricted, { "areaRestricted", "gsm_map.ms.areaRestricted_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ue_reachableIndicator, { "ue-reachableIndicator", "gsm_map.ms.ue_reachableIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_epsSubscriptionDataNotNeeded, { "epsSubscriptionDataNotNeeded", "gsm_map.ms.epsSubscriptionDataNotNeeded_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ue_srvcc_Capability, { "ue-srvcc-Capability", "gsm_map.ms.ue_srvcc_Capability", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_UE_SRVCC_Capability_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_mmeNumberforMTSMS, { "mmeNumberforMTSMS", "gsm_map.ms.mmeNumberforMTSMS", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_smsRegisterRequest, { "smsRegisterRequest", "gsm_map.ms.smsRegisterRequest", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMSRegisterRequest_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_sms_Only, { "sms-Only", "gsm_map.ms.sms_Only_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_removalofMMERegistrationforSMS, { "removalofMMERegistrationforSMS", "gsm_map.ms.removalofMMERegistrationforSMS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sgsn_Name, { "sgsn-Name", "gsm_map.ms.sgsn_Name", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_ms_sgsn_Realm, { "sgsn-Realm", "gsm_map.ms.sgsn_Realm", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_ms_lgd_supportIndicator, { "lgd-supportIndicator", "gsm_map.ms.lgd_supportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_adjacentPLMN_List, { "adjacentPLMN-List", "gsm_map.ms.adjacentPLMN_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdn_gw_update, { "pdn-gw-update", "gsm_map.ms.pdn_gw_update_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_isr_Information, { "isr-Information", "gsm_map.ms.isr_Information", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_apn, { "apn", "gsm_map.ms.apn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdn_gw_Identity, { "pdn-gw-Identity", "gsm_map.ms.pdn_gw_Identity_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_contextId, { "contextId", "gsm_map.ms.contextId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_smsCallBarringSupportIndicator, { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_supportedFeatures, { "supportedFeatures", "gsm_map.ms.supportedFeatures", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_t_adsDataRetrieval, { "t-adsDataRetrieval", "gsm_map.ms.t_adsDataRetrieval_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_homogeneousSupportOfIMSVoiceOverPSSessions, { "homogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.homogeneousSupportOfIMSVoiceOverPSSessions", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_ms_cancellationTypeInitialAttach, { "cancellationTypeInitialAttach", "gsm_map.ms.cancellationTypeInitialAttach_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_updateofHomogeneousSupportOfIMSVoiceOverPSSessions, { "updateofHomogeneousSupportOfIMSVoiceOverPSSessions", "gsm_map.ms.updateofHomogeneousSupportOfIMSVoiceOverPSSessions_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext_SupportedFeatures, { "ext-SupportedFeatures", "gsm_map.ms.ext_SupportedFeatures", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sgsn_mmeSeparationSupported, { "sgsn-mmeSeparationSupported", "gsm_map.ms.sgsn_mmeSeparationSupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mmeRegisteredforSMS, { "mmeRegisteredforSMS", "gsm_map.ms.mmeRegisteredforSMS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_EPLMN_List_item, { "PLMN-Id", "gsm_map.ms.PLMN_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_AdjacentPLMN_List_item, { "PLMN-Id", "gsm_map.ms.PLMN_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_an_APDU, { "an-APDU", "gsm_map.ms.an_APDU_element", FT_NONE, BASE_NONE, NULL, 0, "AccessNetworkSignalInfo", HFILL }}, { &hf_gsm_map_ms_integrityProtectionInfo, { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo", FT_BYTES, BASE_NONE, NULL, 0, "IntegrityProtectionInformation", HFILL }}, { &hf_gsm_map_ms_encryptionInfo, { "encryptionInfo", "gsm_map.ms.encryptionInfo", FT_BYTES, BASE_NONE, NULL, 0, "EncryptionInformation", HFILL }}, { &hf_gsm_map_ms_keyStatus, { "keyStatus", "gsm_map.ms.keyStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_allowedGSM_Algorithms, { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_allowedUMTS_Algorithms, { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_radioResourceInformation, { "radioResourceInformation", "gsm_map.ms.radioResourceInformation", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_radioResourceList, { "radioResourceList", "gsm_map.ms.radioResourceList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_bssmap_ServiceHandover, { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ranap_ServiceHandover, { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_bssmap_ServiceHandoverList, { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_currentlyUsedCodec, { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_iuSupportedCodecsList, { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList_element", FT_NONE, BASE_NONE, NULL, 0, "SupportedCodecsList", HFILL }}, { &hf_gsm_map_ms_rab_ConfigurationIndicator, { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_iuSelectedCodec, { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_alternativeChannelType, { "alternativeChannelType", "gsm_map.ms.alternativeChannelType", FT_BYTES, BASE_NONE, NULL, 0, "RadioResourceInformation", HFILL }}, { &hf_gsm_map_ms_tracePropagationList, { "tracePropagationList", "gsm_map.ms.tracePropagationList_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_aoipSupportedCodecsListAnchor, { "aoipSupportedCodecsListAnchor", "gsm_map.ms.aoipSupportedCodecsListAnchor_element", FT_NONE, BASE_NONE, NULL, 0, "AoIPCodecsList", HFILL }}, { &hf_gsm_map_ms_aoipSelectedCodecTarget, { "aoipSelectedCodecTarget", "gsm_map.ms.aoipSelectedCodecTarget", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_uesbi_Iu, { "uesbi-Iu", "gsm_map.ms.uesbi_Iu_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_integrityProtectionAlgorithms, { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms", FT_BYTES, BASE_NONE, NULL, 0, "PermittedIntegrityProtectionAlgorithms", HFILL }}, { &hf_gsm_map_ms_encryptionAlgorithms, { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms", FT_BYTES, BASE_NONE, NULL, 0, "PermittedEncryptionAlgorithms", HFILL }}, { &hf_gsm_map_ms_targetCellId, { "targetCellId", "gsm_map.ms.targetCellId", FT_BYTES, BASE_NONE, NULL, 0, "GlobalCellId", HFILL }}, { &hf_gsm_map_ms_ho_NumberNotRequired, { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_targetRNCId, { "targetRNCId", "gsm_map.ms.targetRNCId", FT_BYTES, BASE_NONE, NULL, 0, "RNCId", HFILL }}, { &hf_gsm_map_ms_multipleBearerRequested, { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_rab_Id, { "rab-Id", "gsm_map.ms.rab_Id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_asciCallReference, { "asciCallReference", "gsm_map.ms.asciCallReference", FT_BYTES, BASE_NONE, NULL, 0, "ASCI_CallReference", HFILL }}, { &hf_gsm_map_ms_geran_classmark, { "geran-classmark", "gsm_map.ms.geran_classmark", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_iuCurrentlyUsedCodec, { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_regionalSubscriptionData, { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData", FT_UINT32, BASE_DEC, NULL, 0, "ZoneCodeList", HFILL }}, { &hf_gsm_map_ms_lclsGlobalCallReference, { "lclsGlobalCallReference", "gsm_map.ms.lclsGlobalCallReference", FT_BYTES, BASE_NONE, NULL, 0, "LCLS_GlobalCallReference", HFILL }}, { &hf_gsm_map_ms_lcls_Negotiation, { "lcls-Negotiation", "gsm_map.ms.lcls_Negotiation", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lcls_Configuration_Preference, { "lcls-Configuration-Preference", "gsm_map.ms.lcls_Configuration_Preference", FT_BYTES, BASE_NONE, NULL, 0, "LCLS_ConfigurationPreference", HFILL }}, { &hf_gsm_map_ms_csg_SubscriptionDataList, { "csg-SubscriptionDataList", "gsm_map.ms.csg_SubscriptionDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, { "BSSMAP-ServiceHandoverInfo", "gsm_map.ms.BSSMAP_ServiceHandoverInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_RadioResourceList_item, { "RadioResource", "gsm_map.ms.RadioResource_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_handoverNumber, { "handoverNumber", "gsm_map.ms.handoverNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_relocationNumberList, { "relocationNumberList", "gsm_map.ms.relocationNumberList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_multicallBearerInfo, { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_multipleBearerNotSupported, { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_selectedUMTS_Algorithms, { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_chosenRadioResourceInformation, { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_iuAvailableCodecsList, { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList_element", FT_NONE, BASE_NONE, NULL, 0, "CodecList", HFILL }}, { &hf_gsm_map_ms_aoipAvailableCodecsListMap, { "aoipAvailableCodecsListMap", "gsm_map.ms.aoipAvailableCodecsListMap_element", FT_NONE, BASE_NONE, NULL, 0, "AoIPCodecsList", HFILL }}, { &hf_gsm_map_ms_integrityProtectionAlgorithm, { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm", FT_BYTES, BASE_NONE, NULL, 0, "ChosenIntegrityProtectionAlgorithm", HFILL }}, { &hf_gsm_map_ms_encryptionAlgorithm, { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm", FT_BYTES, BASE_NONE, NULL, 0, "ChosenEncryptionAlgorithm", HFILL }}, { &hf_gsm_map_ms_chosenChannelInfo, { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_chosenSpeechVersion, { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_targetMSC_Number, { "targetMSC-Number", "gsm_map.ms.targetMSC_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_selectedRab_Id, { "selectedRab-Id", "gsm_map.ms.selectedRab_Id", FT_UINT32, BASE_DEC, NULL, 0, "RAB_Id", HFILL }}, { &hf_gsm_map_ms_selectedGSM_Algorithm, { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_iUSelectedCodec, { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec1, { "codec1", "gsm_map.ms.codec1", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec2, { "codec2", "gsm_map.ms.codec2", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec3, { "codec3", "gsm_map.ms.codec3", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec4, { "codec4", "gsm_map.ms.codec4", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec5, { "codec5", "gsm_map.ms.codec5", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec6, { "codec6", "gsm_map.ms.codec6", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec7, { "codec7", "gsm_map.ms.codec7", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_codec8, { "codec8", "gsm_map.ms.codec8", FT_BYTES, BASE_NONE, NULL, 0, "AoIPCodec", HFILL }}, { &hf_gsm_map_ms_utranCodecList, { "utranCodecList", "gsm_map.ms.utranCodecList_element", FT_NONE, BASE_NONE, NULL, 0, "CodecList", HFILL }}, { &hf_gsm_map_ms_geranCodecList, { "geranCodecList", "gsm_map.ms.geranCodecList_element", FT_NONE, BASE_NONE, NULL, 0, "CodecList", HFILL }}, { &hf_gsm_map_ms_codec1_01, { "codec1", "gsm_map.ms.codec1", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec2_01, { "codec2", "gsm_map.ms.codec2", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec3_01, { "codec3", "gsm_map.ms.codec3", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec4_01, { "codec4", "gsm_map.ms.codec4", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec5_01, { "codec5", "gsm_map.ms.codec5", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec6_01, { "codec6", "gsm_map.ms.codec6", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec7_01, { "codec7", "gsm_map.ms.codec7", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_codec8_01, { "codec8", "gsm_map.ms.codec8", FT_BYTES, BASE_NONE, NULL, 0, "Codec", HFILL }}, { &hf_gsm_map_ms_RelocationNumberList_item, { "RelocationNumber", "gsm_map.ms.RelocationNumber_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_immediateResponsePreferred, { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_re_synchronisationInfo, { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestingNodeType, { "requestingNodeType", "gsm_map.ms.requestingNodeType", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestingPLMN_Id, { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id", FT_BYTES, BASE_NONE, NULL, 0, "PLMN_Id", HFILL }}, { &hf_gsm_map_ms_numberOfRequestedAdditional_Vectors, { "numberOfRequestedAdditional-Vectors", "gsm_map.ms.numberOfRequestedAdditional_Vectors", FT_UINT32, BASE_DEC, NULL, 0, "NumberOfRequestedVectors", HFILL }}, { &hf_gsm_map_ms_additionalVectorsAreForEPS, { "additionalVectorsAreForEPS", "gsm_map.ms.additionalVectorsAreForEPS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ueUsageTypeRequestIndication, { "ueUsageTypeRequestIndication", "gsm_map.ms.ueUsageTypeRequestIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_auts, { "auts", "gsm_map.ms.auts", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_eps_AuthenticationSetList, { "eps-AuthenticationSetList", "gsm_map.ms.eps_AuthenticationSetList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ueUsageType, { "ueUsageType", "gsm_map.ms.ueUsageType", FT_BYTES, BASE_NONE, NULL, 0, "UE_UsageType", HFILL }}, { &hf_gsm_map_ms_EPS_AuthenticationSetList_item, { "EPC-AV", "gsm_map.ms.EPC_AV_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_kasme, { "kasme", "gsm_map.ms.kasme", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_imei, { "imei", "gsm_map.ms.imei", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedEquipmentInfo, { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_equipmentStatus, { "equipmentStatus", "gsm_map.ms.equipmentStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_bmuef, { "bmuef", "gsm_map.ms.bmuef_element", FT_NONE, BASE_NONE, NULL, 0, "UESBI_Iu", HFILL }}, { &hf_gsm_map_ms_uesbi_IuA, { "uesbi-IuA", "gsm_map.ms.uesbi_IuA", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_uesbi_IuB, { "uesbi-IuB", "gsm_map.ms.uesbi_IuB", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_EDRX_Cycle_Length_List_item, { "EDRX-Cycle-Length", "gsm_map.ms.EDRX_Cycle_Length_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_rat_Type, { "rat-Type", "gsm_map.ms.rat_Type", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0, "Used_RAT_Type", HFILL }}, { &hf_gsm_map_ms_eDRX_Cycle_Length_Value, { "eDRX-Cycle-Length-Value", "gsm_map.ms.eDRX_Cycle_Length_Value", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_Reset_Id_List_item, { "Reset-Id", "gsm_map.ms.Reset_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_IMSI_GroupIdList_item, { "IMSI-GroupId", "gsm_map.ms.IMSI_GroupId_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_group_Service_Id, { "group-Service-Id", "gsm_map.ms.group_Service_Id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_plmnId, { "plmnId", "gsm_map.ms.plmnId", FT_BYTES, BASE_NONE, NULL, 0, "PLMN_Id", HFILL }}, { &hf_gsm_map_ms_local_Group_ID, { "local-Group-ID", "gsm_map.ms.local_Group_ID", FT_BYTES, BASE_NONE, NULL, 0, "Local_GroupID", HFILL }}, { &hf_gsm_map_ms_CSG_SubscriptionDataList_item, { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_csg_Id, { "csg-Id", "gsm_map.ms.csg_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_expirationDate, { "expirationDate", "gsm_map.ms.expirationDate", FT_BYTES, BASE_NONE, NULL, 0, "Time", HFILL }}, { &hf_gsm_map_ms_lipa_AllowedAPNList, { "lipa-AllowedAPNList", "gsm_map.ms.lipa_AllowedAPNList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_plmn_Id, { "plmn-Id", "gsm_map.ms.plmn_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_VPLMN_CSG_SubscriptionDataList_item, { "CSG-SubscriptionData", "gsm_map.ms.CSG_SubscriptionData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_LIPA_AllowedAPNList_item, { "APN", "gsm_map.ms.APN", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_apn_oi_Replacement, { "apn-oi-Replacement", "gsm_map.ms.apn_oi_Replacement", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_rfsp_id, { "rfsp-id", "gsm_map.ms.rfsp_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ambr, { "ambr", "gsm_map.ms.ambr_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_apn_ConfigurationProfile, { "apn-ConfigurationProfile", "gsm_map.ms.apn_ConfigurationProfile_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_stn_sr, { "stn-sr", "gsm_map.ms.stn_sr", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_mps_CSPriority, { "mps-CSPriority", "gsm_map.ms.mps_CSPriority_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mps_EPSPriority, { "mps-EPSPriority", "gsm_map.ms.mps_EPSPriority_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscribed_vsrvcc, { "subscribed-vsrvcc", "gsm_map.ms.subscribed_vsrvcc_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_defaultContext, { "defaultContext", "gsm_map.ms.defaultContext", FT_UINT32, BASE_DEC, NULL, 0, "ContextId", HFILL }}, { &hf_gsm_map_ms_completeDataListIncluded, { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_epsDataList, { "epsDataList", "gsm_map.ms.epsDataList", FT_UINT32, BASE_DEC, NULL, 0, "EPS_DataList", HFILL }}, { &hf_gsm_map_ms_additionalDefaultContext, { "additionalDefaultContext", "gsm_map.ms.additionalDefaultContext", FT_UINT32, BASE_DEC, NULL, 0, "ContextId", HFILL }}, { &hf_gsm_map_ms_EPS_DataList_item, { "APN-Configuration", "gsm_map.ms.APN_Configuration_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdn_Type, { "pdn-Type", "gsm_map.ms.pdn_Type", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_servedPartyIP_IPv4_Address, { "servedPartyIP-IPv4-Address", "gsm_map.ms.servedPartyIP_IPv4_Address", FT_BYTES, BASE_NONE, NULL, 0, "PDP_Address", HFILL }}, { &hf_gsm_map_ms_eps_qos_Subscribed, { "eps-qos-Subscribed", "gsm_map.ms.eps_qos_Subscribed_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdn_gw_AllocationType, { "pdn-gw-AllocationType", "gsm_map.ms.pdn_gw_AllocationType", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_GW_AllocationType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_vplmnAddressAllowed, { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_chargingCharacteristics, { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics", FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00, NULL, HFILL }}, { &hf_gsm_map_ms_specificAPNInfoList, { "specificAPNInfoList", "gsm_map.ms.specificAPNInfoList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_servedPartyIP_IPv6_Address, { "servedPartyIP-IPv6-Address", "gsm_map.ms.servedPartyIP_IPv6_Address", FT_BYTES, BASE_NONE, NULL, 0, "PDP_Address", HFILL }}, { &hf_gsm_map_ms_sipto_Permission, { "sipto-Permission", "gsm_map.ms.sipto_Permission", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Permission_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_lipa_Permission, { "lipa-Permission", "gsm_map.ms.lipa_Permission", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LIPA_Permission_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_restoration_Priority, { "restoration-Priority", "gsm_map.ms.restoration_Priority", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sipto_local_network_Permission, { "sipto-local-network-Permission", "gsm_map.ms.sipto_local_network_Permission", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SIPTO_Local_Network_Permission_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_wlan_offloadability, { "wlan-offloadability", "gsm_map.ms.wlan_offloadability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_non_IP_PDN_Type_Indicator, { "non-IP-PDN-Type-Indicator", "gsm_map.ms.non_IP_PDN_Type_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_nIDD_Mechanism, { "nIDD-Mechanism", "gsm_map.ms.nIDD_Mechanism", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NIDD_Mechanism_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_sCEF_ID, { "sCEF-ID", "gsm_map.ms.sCEF_ID", FT_BYTES, BASE_NONE, NULL, 0, "FQDN", HFILL }}, { &hf_gsm_map_ms_pdn_ConnectionContinuity, { "pdn-ConnectionContinuity", "gsm_map.ms.pdn_ConnectionContinuity", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PDN_ConnectionContinuity_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_qos_Class_Identifier, { "qos-Class-Identifier", "gsm_map.ms.qos_Class_Identifier", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_allocation_Retention_Priority, { "allocation-Retention-Priority", "gsm_map.ms.allocation_Retention_Priority_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_max_RequestedBandwidth_UL, { "max-RequestedBandwidth-UL", "gsm_map.ms.max_RequestedBandwidth_UL", FT_INT32, BASE_DEC, NULL, 0, "Bandwidth", HFILL }}, { &hf_gsm_map_ms_max_RequestedBandwidth_DL, { "max-RequestedBandwidth-DL", "gsm_map.ms.max_RequestedBandwidth_DL", FT_INT32, BASE_DEC, NULL, 0, "Bandwidth", HFILL }}, { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_UL, { "extended-Max-RequestedBandwidth-UL", "gsm_map.ms.extended_Max_RequestedBandwidth_UL", FT_INT32, BASE_DEC, NULL, 0, "BandwidthExt", HFILL }}, { &hf_gsm_map_ms_extended_Max_RequestedBandwidth_DL, { "extended-Max-RequestedBandwidth-DL", "gsm_map.ms.extended_Max_RequestedBandwidth_DL", FT_INT32, BASE_DEC, NULL, 0, "BandwidthExt", HFILL }}, { &hf_gsm_map_ms_SpecificAPNInfoList_item, { "SpecificAPNInfo", "gsm_map.ms.SpecificAPNInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_priority_level, { "priority-level", "gsm_map.ms.priority_level", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, { &hf_gsm_map_ms_pre_emption_capability, { "pre-emption-capability", "gsm_map.ms.pre_emption_capability", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_ms_pre_emption_vulnerability, { "pre-emption-vulnerability", "gsm_map.ms.pre_emption_vulnerability", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_ms_pdn_gw_ipv4_Address, { "pdn-gw-ipv4-Address", "gsm_map.ms.pdn_gw_ipv4_Address", FT_BYTES, BASE_NONE, NULL, 0, "PDP_Address", HFILL }}, { &hf_gsm_map_ms_pdn_gw_ipv6_Address, { "pdn-gw-ipv6-Address", "gsm_map.ms.pdn_gw_ipv6_Address", FT_BYTES, BASE_NONE, NULL, 0, "PDP_Address", HFILL }}, { &hf_gsm_map_ms_pdn_gw_name, { "pdn-gw-name", "gsm_map.ms.pdn_gw_name", FT_BYTES, BASE_NONE, NULL, 0, "FQDN", HFILL }}, { &hf_gsm_map_ms_wlan_offloadability_EUTRAN, { "wlan-offloadability-EUTRAN", "gsm_map.ms.wlan_offloadability_EUTRAN", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_WLAN_Offloadability_Indication_vals), 0, "WLAN_Offloadability_Indication", HFILL }}, { &hf_gsm_map_ms_wlan_offloadability_UTRAN, { "wlan-offloadability-UTRAN", "gsm_map.ms.wlan_offloadability_UTRAN", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_WLAN_Offloadability_Indication_vals), 0, "WLAN_Offloadability_Indication", HFILL }}, { &hf_gsm_map_ms_AdjacentAccessRestrictionDataList_item, { "AdjacentAccessRestrictionData", "gsm_map.ms.AdjacentAccessRestrictionData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_accessRestrictionData, { "accessRestrictionData", "gsm_map.ms.accessRestrictionData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext_AccessRestrictionData, { "ext-AccessRestrictionData", "gsm_map.ms.ext_AccessRestrictionData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gmlc_List, { "gmlc-List", "gsm_map.ms.gmlc_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lcs_PrivacyExceptionList, { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_molr_List, { "molr-List", "gsm_map.ms.molr_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList", FT_UINT32, BASE_DEC, NULL, 0, "LCS_PrivacyExceptionList", HFILL }}, { &hf_gsm_map_ms_GMLC_List_item, { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_GPRSDataList_item, { "PDP-Context", "gsm_map.ms.PDP_Context_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdp_ContextId, { "pdp-ContextId", "gsm_map.ms.pdp_ContextId", FT_UINT32, BASE_DEC, NULL, 0, "ContextId", HFILL }}, { &hf_gsm_map_ms_pdp_Type, { "pdp-Type", "gsm_map.ms.pdp_Type", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdp_Address, { "pdp-Address", "gsm_map.ms.pdp_Address", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_qos_Subscribed, { "qos-Subscribed", "gsm_map.ms.qos_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext_QoS_Subscribed, { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdp_ChargingCharacteristics, { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics", FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00, "ChargingCharacteristics", HFILL }}, { &hf_gsm_map_ms_ext2_QoS_Subscribed, { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext3_QoS_Subscribed, { "ext3-QoS-Subscribed", "gsm_map.ms.ext3_QoS_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext4_QoS_Subscribed, { "ext4-QoS-Subscribed", "gsm_map.ms.ext4_QoS_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext_pdp_Type, { "ext-pdp-Type", "gsm_map.ms.ext_pdp_Type", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext_pdp_Address, { "ext-pdp-Address", "gsm_map.ms.ext_pdp_Address", FT_BYTES, BASE_NONE, NULL, 0, "PDP_Address", HFILL }}, { &hf_gsm_map_ms_gprsDataList, { "gprsDataList", "gsm_map.ms.gprsDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprs_CSI, { "gprs-CSI", "gsm_map.ms.gprs_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mo_sms_CSI, { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI_element", FT_NONE, BASE_NONE, NULL, 0, "SMS_CSI", HFILL }}, { &hf_gsm_map_ms_mt_sms_CSI, { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI_element", FT_NONE, BASE_NONE, NULL, 0, "SMS_CSI", HFILL }}, { &hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList, { "mt-smsCAMELTDP-CriteriaList", "gsm_map.ms.mt_smsCAMELTDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mg_csi, { "mg-csi", "gsm_map.ms.mg_csi_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprs_CamelTDPDataList, { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_camelCapabilityHandling, { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_notificationToCSE, { "notificationToCSE", "gsm_map.ms.notificationToCSE_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_csi_Active, { "csi-Active", "gsm_map.ms.csi_Active_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, { "GPRS-CamelTDPData", "gsm_map.ms.GPRS_CamelTDPData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprs_TriggerDetectionPoint, { "gprs-TriggerDetectionPoint", "gsm_map.ms.gprs_TriggerDetectionPoint", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRS_TriggerDetectionPoint_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_serviceKey, { "serviceKey", "gsm_map.ms.serviceKey", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gsmSCF_Address, { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_defaultSessionHandling, { "defaultSessionHandling", "gsm_map.ms.defaultSessionHandling", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0, "DefaultGPRS_Handling", HFILL }}, { &hf_gsm_map_ms_LSADataList_item, { "LSAData", "gsm_map.ms.LSAData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaIdentity, { "lsaIdentity", "gsm_map.ms.lsaIdentity", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaAttributes, { "lsaAttributes", "gsm_map.ms.lsaAttributes", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaActiveModeIndicator, { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaOnlyAccessIndicator, { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaDataList, { "lsaDataList", "gsm_map.ms.lsaDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_msisdn, { "msisdn", "gsm_map.ms.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_category, { "category", "gsm_map.ms.category", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscriberStatus, { "subscriberStatus", "gsm_map.ms.subscriberStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_bearerServiceList, { "bearerServiceList", "gsm_map.ms.bearerServiceList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_teleserviceList, { "teleserviceList", "gsm_map.ms.teleserviceList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_provisionedSS, { "provisionedSS", "gsm_map.ms.provisionedSS", FT_UINT32, BASE_DEC, NULL, 0, "Ext_SS_InfoList", HFILL }}, { &hf_gsm_map_ms_odb_Data, { "odb-Data", "gsm_map.ms.odb_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vbsSubscriptionData, { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData", FT_UINT32, BASE_DEC, NULL, 0, "VBSDataList", HFILL }}, { &hf_gsm_map_ms_vgcsSubscriptionData, { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData", FT_UINT32, BASE_DEC, NULL, 0, "VGCSDataList", HFILL }}, { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_BearerServiceList_item, { "Ext-BearerServiceCode", "gsm_map.ms.Ext_BearerServiceCode", FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_TeleserviceList_item, { "Ext-TeleserviceCode", "gsm_map.ms.Ext_TeleserviceCode", FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_odb_GeneralData, { "odb-GeneralData", "gsm_map.ms.odb_GeneralData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_odb_HPLMN_Data, { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_Ext_SS_InfoList_item, { "Ext-SS-Info", "gsm_map.ms.Ext_SS_Info", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_forwardingInfo, { "forwardingInfo", "gsm_map.ms.forwardingInfo_element", FT_NONE, BASE_NONE, NULL, 0, "Ext_ForwInfo", HFILL }}, { &hf_gsm_map_ms_callBarringInfo, { "callBarringInfo", "gsm_map.ms.callBarringInfo_element", FT_NONE, BASE_NONE, NULL, 0, "Ext_CallBarInfo", HFILL }}, { &hf_gsm_map_ms_cug_Info, { "cug-Info", "gsm_map.ms.cug_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_Data, { "ss-Data", "gsm_map.ms.ss_Data_element", FT_NONE, BASE_NONE, NULL, 0, "Ext_SS_Data", HFILL }}, { &hf_gsm_map_ms_emlpp_Info, { "emlpp-Info", "gsm_map.ms.emlpp_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_Code, { "ss-Code", "gsm_map.ms.ss_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_forwardingFeatureList, { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList", FT_UINT32, BASE_DEC, NULL, 0, "Ext_ForwFeatureList", HFILL }}, { &hf_gsm_map_ms_Ext_ForwFeatureList_item, { "Ext-ForwFeature", "gsm_map.ms.Ext_ForwFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_basicService, { "basicService", "gsm_map.ms.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "Ext_BasicServiceCode", HFILL }}, { &hf_gsm_map_ms_ss_Status, { "ss-Status", "gsm_map.ms.ss_Status", FT_BYTES, BASE_NONE, NULL, 0, "Ext_SS_Status", HFILL }}, { &hf_gsm_map_ms_forwardedToNumber, { "forwardedToNumber", "gsm_map.ms.forwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_forwardedToSubaddress, { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_SubaddressString", HFILL }}, { &hf_gsm_map_ms_forwardingOptions, { "forwardingOptions", "gsm_map.ms.forwardingOptions", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_noReplyConditionTime, { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime", FT_UINT32, BASE_DEC, NULL, 0, "Ext_NoRepCondTime", HFILL }}, { &hf_gsm_map_ms_longForwardedToNumber, { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "FTN_AddressString", HFILL }}, { &hf_gsm_map_ms_callBarringFeatureList, { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList", FT_UINT32, BASE_DEC, NULL, 0, "Ext_CallBarFeatureList", HFILL }}, { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, { "Ext-CallBarringFeature", "gsm_map.ms.Ext_CallBarringFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cug_SubscriptionList, { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cug_FeatureList, { "cug-FeatureList", "gsm_map.ms.cug_FeatureList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_CUG_SubscriptionList_item, { "CUG-Subscription", "gsm_map.ms.CUG_Subscription_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cug_Index, { "cug-Index", "gsm_map.ms.cug_Index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cug_Interlock, { "cug-Interlock", "gsm_map.ms.cug_Interlock", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_intraCUG_Options, { "intraCUG-Options", "gsm_map.ms.intraCUG_Options", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IntraCUG_Options_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_basicServiceGroupList, { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList", FT_UINT32, BASE_DEC, NULL, 0, "Ext_BasicServiceGroupList", HFILL }}, { &hf_gsm_map_ms_CUG_FeatureList_item, { "CUG-Feature", "gsm_map.ms.CUG_Feature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_preferentialCUG_Indicator, { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator", FT_UINT32, BASE_DEC, NULL, 0, "CUG_Index", HFILL }}, { &hf_gsm_map_ms_interCUG_Restrictions, { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_SubscriptionOption, { "ss-SubscriptionOption", "gsm_map.ms.ss_SubscriptionOption", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_SubscriptionOption_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, { "LCS-PrivacyClass", "gsm_map.ms.LCS_PrivacyClass_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_notificationToMSUser, { "notificationToMSUser", "gsm_map.ms.notificationToMSUser", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_externalClientList, { "externalClientList", "gsm_map.ms.externalClientList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_plmnClientList, { "plmnClientList", "gsm_map.ms.plmnClientList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ext_externalClientList, { "ext-externalClientList", "gsm_map.ms.ext_externalClientList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_serviceTypeList, { "serviceTypeList", "gsm_map.ms.serviceTypeList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ExternalClientList_item, { "ExternalClient", "gsm_map.ms.ExternalClient_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_PLMNClientList_item, { "LCSClientInternalID", "gsm_map.ms.LCSClientInternalID", FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_Ext_ExternalClientList_item, { "ExternalClient", "gsm_map.ms.ExternalClient_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_clientIdentity, { "clientIdentity", "gsm_map.ms.clientIdentity_element", FT_NONE, BASE_NONE, NULL, 0, "LCSClientExternalID", HFILL }}, { &hf_gsm_map_ms_gmlc_Restriction, { "gmlc-Restriction", "gsm_map.ms.gmlc_Restriction", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GMLC_Restriction_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_ServiceTypeList_item, { "ServiceType", "gsm_map.ms.ServiceType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_serviceTypeIdentity, { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity", FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0, "LCSServiceTypeID", HFILL }}, { &hf_gsm_map_ms_MOLR_List_item, { "MOLR-Class", "gsm_map.ms.MOLR_Class_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ZoneCodeList_item, { "ZoneCode", "gsm_map.ms.ZoneCode", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_List, { "ss-List", "gsm_map.ms.ss_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_regionalSubscriptionResponse, { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_basicServiceList, { "basicServiceList", "gsm_map.ms.basicServiceList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_regionalSubscriptionIdentifier, { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier", FT_BYTES, BASE_NONE, NULL, 0, "ZoneCode", HFILL }}, { &hf_gsm_map_ms_vbsGroupIndication, { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vgcsGroupIndication, { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaInformationWithdraw, { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_gmlc_ListWithdraw, { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_istInformationWithdraw, { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_specificCSI_Withdraw, { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_stn_srWithdraw, { "stn-srWithdraw", "gsm_map.ms.stn_srWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_epsSubscriptionDataWithdraw, { "epsSubscriptionDataWithdraw", "gsm_map.ms.epsSubscriptionDataWithdraw", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EPS_SubscriptionDataWithdraw_vals), 0, "EPS_SubscriptionDataWithdraw", HFILL }}, { &hf_gsm_map_ms_apn_oi_replacementWithdraw, { "apn-oi-replacementWithdraw", "gsm_map.ms.apn_oi_replacementWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_csg_SubscriptionDeleted, { "csg-SubscriptionDeleted", "gsm_map.ms.csg_SubscriptionDeleted_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscribedPeriodicTAU_RAU_TimerWithdraw, { "subscribedPeriodicTAU-RAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicTAU_RAU_TimerWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscribedPeriodicLAU_TimerWithdraw, { "subscribedPeriodicLAU-TimerWithdraw", "gsm_map.ms.subscribedPeriodicLAU_TimerWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscribed_vsrvccWithdraw, { "subscribed-vsrvccWithdraw", "gsm_map.ms.subscribed_vsrvccWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDeleted, { "vplmn-Csg-SubscriptionDeleted", "gsm_map.ms.vplmn_Csg_SubscriptionDeleted_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_additionalMSISDN_Withdraw, { "additionalMSISDN-Withdraw", "gsm_map.ms.additionalMSISDN_Withdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cs_to_ps_SRVCC_Withdraw, { "cs-to-ps-SRVCC-Withdraw", "gsm_map.ms.cs_to_ps_SRVCC_Withdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_imsiGroupIdList_Withdraw, { "imsiGroupIdList-Withdraw", "gsm_map.ms.imsiGroupIdList_Withdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_userPlaneIntegrityProtectionWithdraw, { "userPlaneIntegrityProtectionWithdraw", "gsm_map.ms.userPlaneIntegrityProtectionWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count_Withdraw, { "dl-Buffering-Suggested-Packet-Count-Withdraw", "gsm_map.ms.dl_Buffering_Suggested_Packet_Count_Withdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ue_UsageTypeWithdraw, { "ue-UsageTypeWithdraw", "gsm_map.ms.ue_UsageTypeWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_reset_idsWithdraw, { "reset-idsWithdraw", "gsm_map.ms.reset_idsWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_iab_OperationWithdraw, { "iab-OperationWithdraw", "gsm_map.ms.iab_OperationWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_allGPRSData, { "allGPRSData", "gsm_map.ms.allGPRSData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_contextIdList, { "contextIdList", "gsm_map.ms.contextIdList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_allEPS_Data, { "allEPS-Data", "gsm_map.ms.allEPS_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ContextIdList_item, { "ContextId", "gsm_map.ms.ContextId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_allLSAData, { "allLSAData", "gsm_map.ms.allLSAData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaIdentityList, { "lsaIdentityList", "gsm_map.ms.lsaIdentityList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_LSAIdentityList_item, { "LSAIdentity", "gsm_map.ms.LSAIdentity", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_BasicServiceList_item, { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_o_CSI, { "o-CSI", "gsm_map.ms.o_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_CSI, { "ss-CSI", "gsm_map.ms.ss_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, "O_BcsmCamelTDPCriteriaList", HFILL }}, { &hf_gsm_map_ms_tif_CSI, { "tif-CSI", "gsm_map.ms.tif_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_m_CSI, { "m-CSI", "gsm_map.ms.m_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vt_CSI, { "vt-CSI", "gsm_map.ms.vt_CSI_element", FT_NONE, BASE_NONE, NULL, 0, "T_CSI", HFILL }}, { &hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList, { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.t_BCSM_CAMEL_TDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_d_CSI, { "d-CSI", "gsm_map.ms.d_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item, { "MT-smsCAMELTDP-Criteria", "gsm_map.ms.MT_smsCAMELTDP_Criteria_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sms_TriggerDetectionPoint, { "sms-TriggerDetectionPoint", "gsm_map.ms.sms_TriggerDetectionPoint", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SMS_TriggerDetectionPoint_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_tpdu_TypeCriterion, { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_TPDU_TypeCriterion_item, { "MT-SMS-TPDU-Type", "gsm_map.ms.MT_SMS_TPDU_Type", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, { "DP-AnalysedInfoCriterium", "gsm_map.ms.DP_AnalysedInfoCriterium_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_dialledNumber, { "dialledNumber", "gsm_map.ms.dialledNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_defaultCallHandling, { "defaultCallHandling", "gsm_map.ms.defaultCallHandling", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_CamelData, { "ss-CamelData", "gsm_map.ms.ss_CamelData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ss_EventList, { "ss-EventList", "gsm_map.ms.ss_EventList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_SS_EventList_item, { "SS-Code", "gsm_map.ms.SS_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_csiActive, { "csiActive", "gsm_map.ms.csiActive_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, { "O-BcsmCamelTDPData", "gsm_map.ms.O_BcsmCamelTDPData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_o_BcsmTriggerDetectionPoint, { "o-BcsmTriggerDetectionPoint", "gsm_map.ms.o_BcsmTriggerDetectionPoint", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_O_BcsmTriggerDetectionPoint_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, { "O-BcsmCamelTDP-Criteria", "gsm_map.ms.O_BcsmCamelTDP_Criteria_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item, { "T-BCSM-CAMEL-TDP-Criteria", "gsm_map.ms.T_BCSM_CAMEL_TDP_Criteria_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_destinationNumberCriteria, { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_basicServiceCriteria, { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_callTypeCriteria, { "callTypeCriteria", "gsm_map.ms.callTypeCriteria", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_o_CauseValueCriteria, { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint, { "t-BCSM-TriggerDetectionPoint", "gsm_map.ms.t_BCSM_TriggerDetectionPoint", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0, "T_BcsmTriggerDetectionPoint", HFILL }}, { &hf_gsm_map_ms_t_CauseValueCriteria, { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_matchType, { "matchType", "gsm_map.ms.matchType", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_destinationNumberList, { "destinationNumberList", "gsm_map.ms.destinationNumberList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_destinationNumberLengthList, { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_DestinationNumberList_item, { "ISDN-AddressString", "gsm_map.ms.ISDN_AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_DestinationNumberLengthList_item, { "DestinationNumberLengthList item", "gsm_map.ms.DestinationNumberLengthList_item", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }}, { &hf_gsm_map_ms_BasicServiceCriteria_item, { "Ext-BasicServiceCode", "gsm_map.ms.Ext_BasicServiceCode", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_O_CauseValueCriteria_item, { "CauseValue", "gsm_map.ms.CauseValue", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_T_CauseValueCriteria_item, { "CauseValue", "gsm_map.ms.CauseValue", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sms_CAMEL_TDP_DataList, { "sms-CAMEL-TDP-DataList", "gsm_map.ms.sms_CAMEL_TDP_DataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item, { "SMS-CAMEL-TDP-Data", "gsm_map.ms.SMS_CAMEL_TDP_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_defaultSMS_Handling, { "defaultSMS-Handling", "gsm_map.ms.defaultSMS_Handling", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_mobilityTriggers, { "mobilityTriggers", "gsm_map.ms.mobilityTriggers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_MobilityTriggers_item, { "MM-Code", "gsm_map.ms.MM_Code", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, { "T-BcsmCamelTDPData", "gsm_map.ms.T_BcsmCamelTDPData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_t_BcsmTriggerDetectionPoint, { "t-BcsmTriggerDetectionPoint", "gsm_map.ms.t_BcsmTriggerDetectionPoint", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_T_BcsmTriggerDetectionPoint_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_ggsn_Address, { "ggsn-Address", "gsm_map.ms.ggsn_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_ms_ggsn_Number, { "ggsn-Number", "gsm_map.ms.ggsn_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_mobileNotReachableReason, { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason", FT_UINT32, BASE_DEC, NULL, 0, "AbsentSubscriberDiagnosticSM", HFILL }}, { &hf_gsm_map_ms_sendingNodenumber, { "sendingNodenumber", "gsm_map.ms.sendingNodenumber", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SendingNode_Number_vals), 0, "SendingNode_Number", HFILL }}, { &hf_gsm_map_ms_hlr_List, { "hlr-List", "gsm_map.ms.hlr_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_reset_Id_List, { "reset-Id-List", "gsm_map.ms.reset_Id_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscriptionData, { "subscriptionData", "gsm_map.ms.subscriptionData_element", FT_NONE, BASE_NONE, NULL, 0, "InsertSubscriberDataArg", HFILL }}, { &hf_gsm_map_ms_subscriptionDataDeletion, { "subscriptionDataDeletion", "gsm_map.ms.subscriptionDataDeletion_element", FT_NONE, BASE_NONE, NULL, 0, "DeleteSubscriberDataArg", HFILL }}, { &hf_gsm_map_ms_css_Number, { "css-Number", "gsm_map.ms.css_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_msNotReachable, { "msNotReachable", "gsm_map.ms.msNotReachable_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_VBSDataList_item, { "VoiceBroadcastData", "gsm_map.ms.VoiceBroadcastData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_VGCSDataList_item, { "VoiceGroupCallData", "gsm_map.ms.VoiceGroupCallData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_groupId, { "groupId", "gsm_map.ms.groupId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_additionalSubscriptions, { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_additionalInfo, { "additionalInfo", "gsm_map.ms.additionalInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_longGroupId, { "longGroupId", "gsm_map.ms.longGroupId", FT_BYTES, BASE_NONE, NULL, 0, "Long_GroupId", HFILL }}, { &hf_gsm_map_ms_groupid, { "groupid", "gsm_map.ms.groupid", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_broadcastInitEntitlement, { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedInfo, { "requestedInfo", "gsm_map.ms.requestedInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_callPriority, { "callPriority", "gsm_map.ms.callPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_ms_subscriberInfo, { "subscriberInfo", "gsm_map.ms.subscriberInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscriberState, { "subscriberState", "gsm_map.ms.subscriberState", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_ps_SubscriberState, { "ps-SubscriberState", "gsm_map.ms.ps_SubscriberState", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_ms_Classmark2, { "ms-Classmark2", "gsm_map.ms.ms_Classmark2", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprs_MS_Class, { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class_element", FT_NONE, BASE_NONE, NULL, 0, "GPRSMSClass", HFILL }}, { &hf_gsm_map_ms_mnpInfoRes, { "mnpInfoRes", "gsm_map.ms.mnpInfoRes_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_imsVoiceOverPS_SessionsIndication, { "imsVoiceOverPS-SessionsIndication", "gsm_map.ms.imsVoiceOverPS_SessionsIndication", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IMS_VoiceOverPS_SessionsInd_vals), 0, "IMS_VoiceOverPS_SessionsInd", HFILL }}, { &hf_gsm_map_ms_lastUE_ActivityTime, { "lastUE-ActivityTime", "gsm_map.ms.lastUE_ActivityTime", FT_BYTES, BASE_NONE, NULL, 0, "Time", HFILL }}, { &hf_gsm_map_ms_lastRAT_Type, { "lastRAT-Type", "gsm_map.ms.lastRAT_Type", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Used_RAT_Type_vals), 0, "Used_RAT_Type", HFILL }}, { &hf_gsm_map_ms_eps_SubscriberState, { "eps-SubscriberState", "gsm_map.ms.eps_SubscriberState", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_PS_SubscriberState_vals), 0, "PS_SubscriberState", HFILL }}, { &hf_gsm_map_ms_timeZone, { "timeZone", "gsm_map.ms.timeZone", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_daylightSavingTime, { "daylightSavingTime", "gsm_map.ms.daylightSavingTime", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DaylightSavingTime_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_locationInformation5GS, { "locationInformation5GS", "gsm_map.ms.locationInformation5GS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_routeingNumber, { "routeingNumber", "gsm_map.ms.routeingNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_numberPortabilityStatus, { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_mSNetworkCapability, { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mSRadioAccessCapability, { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_locationInformation_01, { "locationInformation", "gsm_map.ms.locationInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscriberState_01, { "subscriberState", "gsm_map.ms.subscriberState_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_currentLocation, { "currentLocation", "gsm_map.ms.currentLocation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedDomain, { "requestedDomain", "gsm_map.ms.requestedDomain", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0, "DomainType", HFILL }}, { &hf_gsm_map_ms_imei_01, { "imei", "gsm_map.ms.imei_null_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ms_classmark, { "ms-classmark", "gsm_map.ms.ms_classmark_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mnpRequestedInfo, { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_locationInformationEPS_Supported, { "locationInformationEPS-Supported", "gsm_map.ms.locationInformationEPS_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_t_adsData, { "t-adsData", "gsm_map.ms.t_adsData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedNodes, { "requestedNodes", "gsm_map.ms.requestedNodes", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_servingNodeIndication, { "servingNodeIndication", "gsm_map.ms.servingNodeIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_localTimeZoneRequest, { "localTimeZoneRequest", "gsm_map.ms.localTimeZoneRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ageOfLocationInformation, { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_geographicalInformation, { "geographicalInformation", "gsm_map.ms.geographicalInformation", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vlr_number, { "vlr-number", "gsm_map.ms.vlr_number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_locationNumber, { "locationNumber", "gsm_map.ms.locationNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI", FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_selectedLSA_Id, { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id", FT_BYTES, BASE_NONE, NULL, 0, "LSAIdentity", HFILL }}, { &hf_gsm_map_ms_geodeticInformation, { "geodeticInformation", "gsm_map.ms.geodeticInformation", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_currentLocationRetrieved, { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sai_Present, { "sai-Present", "gsm_map.ms.sai_Present_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_userCSGInformation, { "userCSGInformation", "gsm_map.ms.userCSGInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_e_utranCellGlobalIdentity, { "e-utranCellGlobalIdentity", "gsm_map.ms.e_utranCellGlobalIdentity", FT_BYTES, BASE_NONE, NULL, 0, "E_UTRAN_CGI", HFILL }}, { &hf_gsm_map_ms_trackingAreaIdentity, { "trackingAreaIdentity", "gsm_map.ms.trackingAreaIdentity", FT_BYTES, BASE_NONE, NULL, 0, "TA_Id", HFILL }}, { &hf_gsm_map_ms_mme_Name, { "mme-Name", "gsm_map.ms.mme_Name", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_ms_routeingAreaIdentity, { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity", FT_BYTES, BASE_NONE, NULL, 0, "RAIdentity", HFILL }}, { &hf_gsm_map_ms_selectedLSAIdentity, { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity", FT_BYTES, BASE_NONE, NULL, 0, "LSAIdentity", HFILL }}, { &hf_gsm_map_ms_nrCellGlobalIdentity, { "nrCellGlobalIdentity", "gsm_map.ms.nrCellGlobalIdentity", FT_BYTES, BASE_NONE, NULL, 0, "NR_CGI", HFILL }}, { &hf_gsm_map_ms_amf_address, { "amf-address", "gsm_map.ms.amf_address", FT_BYTES, BASE_NONE, NULL, 0, "FQDN", HFILL }}, { &hf_gsm_map_ms_vplmnId, { "vplmnId", "gsm_map.ms.vplmnId", FT_BYTES, BASE_NONE, NULL, 0, "PLMN_Id", HFILL }}, { &hf_gsm_map_ms_localtimeZone, { "localtimeZone", "gsm_map.ms.localtimeZone", FT_BYTES, BASE_NONE, NULL, 0, "TimeZone", HFILL }}, { &hf_gsm_map_ms_nrTrackingAreaIdentity, { "nrTrackingAreaIdentity", "gsm_map.ms.nrTrackingAreaIdentity", FT_BYTES, BASE_NONE, NULL, 0, "NR_TA_Id", HFILL }}, { &hf_gsm_map_ms_accessMode, { "accessMode", "gsm_map.ms.accessMode", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_1", HFILL }}, { &hf_gsm_map_ms_cmi, { "cmi", "gsm_map.ms.cmi", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_1", HFILL }}, { &hf_gsm_map_ms_assumedIdle, { "assumedIdle", "gsm_map.ms.assumedIdle_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_camelBusy, { "camelBusy", "gsm_map.ms.camelBusy_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_netDetNotReachable, { "netDetNotReachable", "gsm_map.ms.netDetNotReachable", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0, "NotReachableReason", HFILL }}, { &hf_gsm_map_ms_notProvidedFromVLR, { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_notProvidedFromSGSNorMME, { "notProvidedFromSGSNorMME", "gsm_map.ms.notProvidedFromSGSNorMME_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ps_Detached, { "ps-Detached", "gsm_map.ms.ps_Detached_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ps_AttachedReachableForPaging, { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging", FT_UINT32, BASE_DEC, NULL, 0, "PDP_ContextInfoList", HFILL }}, { &hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging, { "ps-PDP-ActiveReachableForPaging", "gsm_map.ms.ps_PDP_ActiveReachableForPaging", FT_UINT32, BASE_DEC, NULL, 0, "PDP_ContextInfoList", HFILL }}, { &hf_gsm_map_ms_PDP_ContextInfoList_item, { "PDP-ContextInfo", "gsm_map.ms.PDP_ContextInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pdp_ContextIdentifier, { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier", FT_UINT32, BASE_DEC, NULL, 0, "ContextId", HFILL }}, { &hf_gsm_map_ms_pdp_ContextActive, { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_apn_Subscribed, { "apn-Subscribed", "gsm_map.ms.apn_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, "APN", HFILL }}, { &hf_gsm_map_ms_apn_InUse, { "apn-InUse", "gsm_map.ms.apn_InUse", FT_BYTES, BASE_NONE, NULL, 0, "APN", HFILL }}, { &hf_gsm_map_ms_nsapi, { "nsapi", "gsm_map.ms.nsapi", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_transactionId, { "transactionId", "gsm_map.ms.transactionId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_teid_ForGnAndGp, { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp", FT_BYTES, BASE_NONE, NULL, 0, "TEID", HFILL }}, { &hf_gsm_map_ms_teid_ForIu, { "teid-ForIu", "gsm_map.ms.teid_ForIu", FT_BYTES, BASE_NONE, NULL, 0, "TEID", HFILL }}, { &hf_gsm_map_ms_qos_Subscribed_01, { "qos-Subscribed", "gsm_map.ms.qos_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, "Ext_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos_Requested, { "qos-Requested", "gsm_map.ms.qos_Requested", FT_BYTES, BASE_NONE, NULL, 0, "Ext_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos_Negotiated, { "qos-Negotiated", "gsm_map.ms.qos_Negotiated", FT_BYTES, BASE_NONE, NULL, 0, "Ext_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_chargingId, { "chargingId", "gsm_map.ms.chargingId", FT_BYTES, BASE_NONE, NULL, 0, "GPRSChargingID", HFILL }}, { &hf_gsm_map_ms_rnc_Address, { "rnc-Address", "gsm_map.ms.rnc_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_ms_qos2_Subscribed, { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, "Ext2_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos2_Requested, { "qos2-Requested", "gsm_map.ms.qos2_Requested", FT_BYTES, BASE_NONE, NULL, 0, "Ext2_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos2_Negotiated, { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated", FT_BYTES, BASE_NONE, NULL, 0, "Ext2_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos3_Subscribed, { "qos3-Subscribed", "gsm_map.ms.qos3_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, "Ext3_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos3_Requested, { "qos3-Requested", "gsm_map.ms.qos3_Requested", FT_BYTES, BASE_NONE, NULL, 0, "Ext3_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos3_Negotiated, { "qos3-Negotiated", "gsm_map.ms.qos3_Negotiated", FT_BYTES, BASE_NONE, NULL, 0, "Ext3_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos4_Subscribed, { "qos4-Subscribed", "gsm_map.ms.qos4_Subscribed", FT_BYTES, BASE_NONE, NULL, 0, "Ext4_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos4_Requested, { "qos4-Requested", "gsm_map.ms.qos4_Requested", FT_BYTES, BASE_NONE, NULL, 0, "Ext4_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_qos4_Negotiated, { "qos4-Negotiated", "gsm_map.ms.qos4_Negotiated", FT_BYTES, BASE_NONE, NULL, 0, "Ext4_QoS_Subscribed", HFILL }}, { &hf_gsm_map_ms_subscriberIdentity, { "subscriberIdentity", "gsm_map.ms.subscriberIdentity", FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedSubscriptionInfo, { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_callForwardingData, { "callForwardingData", "gsm_map.ms.callForwardingData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_callBarringData, { "callBarringData", "gsm_map.ms.callBarringData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_odb_Info, { "odb-Info", "gsm_map.ms.odb_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_camel_SubscriptionInfo, { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases", FT_BYTES, BASE_NONE, NULL, 0, "SupportedCamelPhases", HFILL }}, { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases", FT_BYTES, BASE_NONE, NULL, 0, "SupportedCamelPhases", HFILL }}, { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR", FT_BYTES, BASE_NONE, NULL, 0, "OfferedCamel4CSIs", HFILL }}, { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN", FT_BYTES, BASE_NONE, NULL, 0, "OfferedCamel4CSIs", HFILL }}, { &hf_gsm_map_ms_msisdn_BS_List, { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cw_Data, { "cw-Data", "gsm_map.ms.cw_Data_element", FT_NONE, BASE_NONE, NULL, 0, "CallWaitingData", HFILL }}, { &hf_gsm_map_ms_ch_Data, { "ch-Data", "gsm_map.ms.ch_Data_element", FT_NONE, BASE_NONE, NULL, 0, "CallHoldData", HFILL }}, { &hf_gsm_map_ms_clip_Data, { "clip-Data", "gsm_map.ms.clip_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ClipData", HFILL }}, { &hf_gsm_map_ms_clir_Data, { "clir-Data", "gsm_map.ms.clir_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ClirData", HFILL }}, { &hf_gsm_map_ms_ect_data, { "ect-data", "gsm_map.ms.ect_data_element", FT_NONE, BASE_NONE, NULL, 0, "EctData", HFILL }}, { &hf_gsm_map_ms_cwFeatureList, { "cwFeatureList", "gsm_map.ms.cwFeatureList", FT_UINT32, BASE_DEC, NULL, 0, "Ext_CwFeatureList", HFILL }}, { &hf_gsm_map_ms_Ext_CwFeatureList_item, { "Ext-CwFeature", "gsm_map.ms.Ext_CwFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_overrideCategory, { "overrideCategory", "gsm_map.ms.overrideCategory", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_cliRestrictionOption, { "cliRestrictionOption", "gsm_map.ms.cliRestrictionOption", FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedSS_Info, { "requestedSS-Info", "gsm_map.ms.requestedSS_Info_element", FT_NONE, BASE_NONE, NULL, 0, "SS_ForBS_Code", HFILL }}, { &hf_gsm_map_ms_odb, { "odb", "gsm_map.ms.odb_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo, { "requestedCAMEL-SubscriptionInfo", "gsm_map.ms.requestedCAMEL_SubscriptionInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo, { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.ms.additionalRequestedCAMEL_SubscriptionInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_msisdn_BS_List_01, { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_csg_SubscriptionDataRequested, { "csg-SubscriptionDataRequested", "gsm_map.ms.csg_SubscriptionDataRequested_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cw_Info, { "cw-Info", "gsm_map.ms.cw_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_clip_Info, { "clip-Info", "gsm_map.ms.clip_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_clir_Info, { "clir-Info", "gsm_map.ms.clir_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_hold_Info, { "hold-Info", "gsm_map.ms.hold_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ect_Info, { "ect-Info", "gsm_map.ms.ect_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_MSISDN_BS_List_item, { "MSISDN-BS", "gsm_map.ms.MSISDN_BS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_password, { "password", "gsm_map.ms.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_t_CSI, { "t-CSI", "gsm_map.ms.t_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList, { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_BCSM_CAMEL_TDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_specificCSIDeletedList, { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList", FT_BYTES, BASE_NONE, NULL, 0, "SpecificCSI_Withdraw", HFILL }}, { &hf_gsm_map_ms_o_IM_CSI, { "o-IM-CSI", "gsm_map.ms.o_IM_CSI_element", FT_NONE, BASE_NONE, NULL, 0, "O_CSI", HFILL }}, { &hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList, { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_IM_BcsmCamelTDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, "O_BcsmCamelTDPCriteriaList", HFILL }}, { &hf_gsm_map_ms_d_IM_CSI, { "d-IM-CSI", "gsm_map.ms.d_IM_CSI_element", FT_NONE, BASE_NONE, NULL, 0, "D_CSI", HFILL }}, { &hf_gsm_map_ms_vt_IM_CSI, { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI_element", FT_NONE, BASE_NONE, NULL, 0, "T_CSI", HFILL }}, { &hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList, { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ms.vt_IM_BCSM_CAMEL_TDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, "T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CF_Info, { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CB_Info, { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CSI, { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_ODB_data, { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data, { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_activationRequestForUE_reachability, { "activationRequestForUE-reachability", "gsm_map.ms.activationRequestForUE_reachability", FT_BYTES, BASE_NONE, NULL, 0, "RequestedServingNode", HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CSG, { "modificationRequestFor-CSG", "gsm_map.ms.modificationRequestFor_CSG_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CW_Data, { "modificationRequestFor-CW-Data", "gsm_map.ms.modificationRequestFor_CW_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ModificationRequestFor_CW_Info", HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CLIP_Data, { "modificationRequestFor-CLIP-Data", "gsm_map.ms.modificationRequestFor_CLIP_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ModificationRequestFor_CLIP_Info", HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_CLIR_Data, { "modificationRequestFor-CLIR-Data", "gsm_map.ms.modificationRequestFor_CLIR_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ModificationRequestFor_CLIR_Info", HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_HOLD_Data, { "modificationRequestFor-HOLD-Data", "gsm_map.ms.modificationRequestFor_HOLD_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ModificationRequestFor_CH_Info", HFILL }}, { &hf_gsm_map_ms_modificationRequestFor_ECT_Data, { "modificationRequestFor-ECT-Data", "gsm_map.ms.modificationRequestFor_ECT_Data_element", FT_NONE, BASE_NONE, NULL, 0, "ModificationRequestFor_ECT_Info", HFILL }}, { &hf_gsm_map_ms_modifyNotificationToCSE, { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0, "ModificationInstruction", HFILL }}, { &hf_gsm_map_ms_ss_InfoFor_CSE, { "ss-InfoFor-CSE", "gsm_map.ms.ss_InfoFor_CSE", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_InfoFor_CSE_vals), 0, "Ext_SS_InfoFor_CSE", HFILL }}, { &hf_gsm_map_ms_serviceCentreAddress, { "serviceCentreAddress", "gsm_map.ms.serviceCentreAddress", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_ms_forwardedToNumber_01, { "forwardedToNumber", "gsm_map.ms.forwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_ms_odb_data, { "odb-data", "gsm_map.ms.odb_data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_requestedCamel_SubscriptionInfo, { "requestedCamel-SubscriptionInfo", "gsm_map.ms.requestedCamel_SubscriptionInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestedCAMEL_SubscriptionInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_modifyCSI_State, { "modifyCSI-State", "gsm_map.ms.modifyCSI_State", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0, "ModificationInstruction", HFILL }}, { &hf_gsm_map_ms_modifyRegistrationStatus, { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0, "ModificationInstruction", HFILL }}, { &hf_gsm_map_ms_ip_sm_gw_DiameterAddress, { "ip-sm-gw-DiameterAddress", "gsm_map.ms.ip_sm_gw_DiameterAddress_element", FT_NONE, BASE_NONE, NULL, 0, "NetworkNodeDiameterAddress", HFILL }}, { &hf_gsm_map_ms_forwardingInfoFor_CSE, { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE_element", FT_NONE, BASE_NONE, NULL, 0, "Ext_ForwardingInfoFor_CSE", HFILL }}, { &hf_gsm_map_ms_callBarringInfoFor_CSE, { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE_element", FT_NONE, BASE_NONE, NULL, 0, "Ext_CallBarringInfoFor_CSE", HFILL }}, { &hf_gsm_map_ms_allInformationSent, { "allInformationSent", "gsm_map.ms.allInformationSent_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ue_reachable, { "ue-reachable", "gsm_map.ms.ue_reachable", FT_BYTES, BASE_NONE, NULL, 0, "ServingNode", HFILL }}, { &hf_gsm_map_ms_eventMet, { "eventMet", "gsm_map.ms.eventMet", FT_BYTES, BASE_NONE, NULL, 0, "MM_Code", HFILL }}, { &hf_gsm_map_ms_supportedCAMELPhases, { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_offeredCamel4Functionalities, { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_temporaryEmptySubscriptiondataIndicator, { "temporaryEmptySubscriptiondataIndicator", "gsm_map.ms.temporaryEmptySubscriptiondataIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_naea_PreferredCI, { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_gprsSubscriptionData, { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_networkAccessMode, { "networkAccessMode", "gsm_map.ms.networkAccessMode", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ms_lsaInformation, { "lsaInformation", "gsm_map.ms.lsaInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lmu_Indicator, { "lmu-Indicator", "gsm_map.ms.lmu_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_lcsInformation, { "lcsInformation", "gsm_map.ms.lcsInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_istAlertTimer, { "istAlertTimer", "gsm_map.ms.istAlertTimer", FT_UINT32, BASE_DEC, NULL, 0, "IST_AlertTimerValue", HFILL }}, { &hf_gsm_map_ms_superChargerSupportedInHLR, { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR", FT_BYTES, BASE_NONE, NULL, 0, "AgeIndicator", HFILL }}, { &hf_gsm_map_ms_mc_SS_Info, { "mc-SS-Info", "gsm_map.ms.mc_SS_Info_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cs_AllocationRetentionPriority, { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ics_Indicator, { "ics-Indicator", "gsm_map.ms.ics_Indicator", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_ms_eps_SubscriptionData, { "eps-SubscriptionData", "gsm_map.ms.eps_SubscriptionData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_ue_ReachabilityRequestIndicator, { "ue-ReachabilityRequestIndicator", "gsm_map.ms.ue_ReachabilityRequestIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_subscribedPeriodicRAUTAUtimer, { "subscribedPeriodicRAUTAUtimer", "gsm_map.ms.subscribedPeriodicRAUTAUtimer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vplmnLIPAAllowed, { "vplmnLIPAAllowed", "gsm_map.ms.vplmnLIPAAllowed_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_mdtUserConsent, { "mdtUserConsent", "gsm_map.ms.mdtUserConsent", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_map_ms_subscribedPeriodicLAUtimer, { "subscribedPeriodicLAUtimer", "gsm_map.ms.subscribedPeriodicLAUtimer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_vplmn_Csg_SubscriptionDataList, { "vplmn-Csg-SubscriptionDataList", "gsm_map.ms.vplmn_Csg_SubscriptionDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_additionalMSISDN, { "additionalMSISDN", "gsm_map.ms.additionalMSISDN", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ms_psAndSMS_OnlyServiceProvision, { "psAndSMS-OnlyServiceProvision", "gsm_map.ms.psAndSMS_OnlyServiceProvision_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_smsInSGSNAllowed, { "smsInSGSNAllowed", "gsm_map.ms.smsInSGSNAllowed_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_cs_to_ps_SRVCC_Allowed_Indicator, { "cs-to-ps-SRVCC-Allowed-Indicator", "gsm_map.ms.cs_to_ps_SRVCC_Allowed_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_pcscf_Restoration_Request, { "pcscf-Restoration-Request", "gsm_map.ms.pcscf_Restoration_Request_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_adjacentAccessRestrictionDataList, { "adjacentAccessRestrictionDataList", "gsm_map.ms.adjacentAccessRestrictionDataList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_imsi_Group_Id_List, { "imsi-Group-Id-List", "gsm_map.ms.imsi_Group_Id_List", FT_UINT32, BASE_DEC, NULL, 0, "IMSI_GroupIdList", HFILL }}, { &hf_gsm_map_ms_userPlaneIntegrityProtectionIndicator, { "userPlaneIntegrityProtectionIndicator", "gsm_map.ms.userPlaneIntegrityProtectionIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_dl_Buffering_Suggested_Packet_Count, { "dl-Buffering-Suggested-Packet-Count", "gsm_map.ms.dl_Buffering_Suggested_Packet_Count", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_eDRX_Cycle_Length_List, { "eDRX-Cycle-Length-List", "gsm_map.ms.eDRX_Cycle_Length_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_iab_Operation_Allowed_Indicator, { "iab-Operation-Allowed-Indicator", "gsm_map.ms.iab_Operation_Allowed_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedRAT_Types_utran, { "utran", "gsm.map.ms.SupportedRAT.Types.utran", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedRAT_Types_geran, { "geran", "gsm.map.ms.SupportedRAT.Types.geran", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedRAT_Types_gan, { "gan", "gsm.map.ms.SupportedRAT.Types.gan", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedRAT_Types_i_hspa_evolution, { "i-hspa-evolution", "gsm.map.ms.SupportedRAT.Types.i.hspa.evolution", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedRAT_Types_e_utran, { "e-utran", "gsm.map.ms.SupportedRAT.Types.e.utran", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedRAT_Types_nb_iot, { "nb-iot", "gsm.map.ms.SupportedRAT.Types.nb.iot", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, { "lcsCapabilitySet1", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet1", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, { "lcsCapabilitySet2", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet2", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, { "lcsCapabilitySet3", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet3", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, { "lcsCapabilitySet4", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet4", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, { "lcsCapabilitySet5", "gsm.map.ms.SupportedLCS.CapabilitySets.lcsCapabilitySet5", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_ISR_Information_updateLocation, { "updateLocation", "gsm.map.ms.ISR.Information.updateLocation", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ISR_Information_cancelSGSN, { "cancelSGSN", "gsm.map.ms.ISR.Information.cancelSGSN", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ISR_Information_initialAttachIndicator, { "initialAttachIndicator", "gsm.map.ms.ISR.Information.initialAttachIndicator", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_apn, { "odb-all-apn", "gsm.map.ms.SupportedFeatures.odb.all.apn", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_HPLMN_APN, { "odb-HPLMN-APN", "gsm.map.ms.SupportedFeatures.odb.HPLMN.APN", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_VPLMN_APN, { "odb-VPLMN-APN", "gsm.map.ms.SupportedFeatures.odb.VPLMN.APN", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_og, { "odb-all-og", "gsm.map.ms.SupportedFeatures.odb.all.og", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_international_og, { "odb-all-international-og", "gsm.map.ms.SupportedFeatures.odb.all.international.og", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_int_og_not_to_HPLMN_country, { "odb-all-int-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.int.og.not.to.HPLMN.country", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og, { "odb-all-interzonal-og", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_not_to_HPLMN_country, { "odb-all-interzonal-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og.not.to.HPLMN.country", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_odb_all_interzonal_og_and_internat_og_not_to_HPLMN_country, { "odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country", "gsm.map.ms.SupportedFeatures.odb.all.interzonal.og.and.internat.og.not.to.HPLMN.country", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_regSub, { "regSub", "gsm.map.ms.SupportedFeatures.regSub", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_trace, { "trace", "gsm.map.ms.SupportedFeatures.trace", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_all_PrivExcep, { "lcs-all-PrivExcep", "gsm.map.ms.SupportedFeatures.lcs.all.PrivExcep", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_universal, { "lcs-universal", "gsm.map.ms.SupportedFeatures.lcs.universal", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionRelated, { "lcs-CallSessionRelated", "gsm.map.ms.SupportedFeatures.lcs.CallSessionRelated", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_CallSessionUnrelated, { "lcs-CallSessionUnrelated", "gsm.map.ms.SupportedFeatures.lcs.CallSessionUnrelated", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_PLMN_operator, { "lcs-PLMN-operator", "gsm.map.ms.SupportedFeatures.lcs.PLMN.operator", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_ServiceType, { "lcs-ServiceType", "gsm.map.ms.SupportedFeatures.lcs.ServiceType", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_all_MOLR_SS, { "lcs-all-MOLR-SS", "gsm.map.ms.SupportedFeatures.lcs.all.MOLR.SS", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_basicSelfLocation, { "lcs-basicSelfLocation", "gsm.map.ms.SupportedFeatures.lcs.basicSelfLocation", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_autonomousSelfLocation, { "lcs-autonomousSelfLocation", "gsm.map.ms.SupportedFeatures.lcs.autonomousSelfLocation", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_lcs_transferToThirdParty, { "lcs-transferToThirdParty", "gsm.map.ms.SupportedFeatures.lcs.transferToThirdParty", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_sm_mo_pp, { "sm-mo-pp", "gsm.map.ms.SupportedFeatures.sm.mo.pp", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_barring_OutgoingCalls, { "barring-OutgoingCalls", "gsm.map.ms.SupportedFeatures.barring.OutgoingCalls", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_baoc, { "baoc", "gsm.map.ms.SupportedFeatures.baoc", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_boic, { "boic", "gsm.map.ms.SupportedFeatures.boic", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_boicExHC, { "boicExHC", "gsm.map.ms.SupportedFeatures.boicExHC", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_localTimeZoneRetrieval, { "localTimeZoneRetrieval", "gsm.map.ms.SupportedFeatures.localTimeZoneRetrieval", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_additionalMsisdn, { "additionalMsisdn", "gsm.map.ms.SupportedFeatures.additionalMsisdn", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_smsInMME, { "smsInMME", "gsm.map.ms.SupportedFeatures.smsInMME", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_smsInSGSN, { "smsInSGSN", "gsm.map.ms.SupportedFeatures.smsInSGSN", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_ue_Reachability_Notification, { "ue-Reachability-Notification", "gsm.map.ms.SupportedFeatures.ue.Reachability.Notification", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_state_Location_Information_Retrieval, { "state-Location-Information-Retrieval", "gsm.map.ms.SupportedFeatures.state.Location.Information.Retrieval", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_partialPurge, { "partialPurge", "gsm.map.ms.SupportedFeatures.partialPurge", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_gddInSGSN, { "gddInSGSN", "gsm.map.ms.SupportedFeatures.gddInSGSN", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_sgsnCAMELCapability, { "sgsnCAMELCapability", "gsm.map.ms.SupportedFeatures.sgsnCAMELCapability", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_pcscf_Restoration, { "pcscf-Restoration", "gsm.map.ms.SupportedFeatures.pcscf.Restoration", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_dedicatedCoreNetworks, { "dedicatedCoreNetworks", "gsm.map.ms.SupportedFeatures.dedicatedCoreNetworks", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_non_IP_PDN_Type_APNs, { "non-IP-PDN-Type-APNs", "gsm.map.ms.SupportedFeatures.non.IP.PDN.Type.APNs", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_non_IP_PDP_Type_APNs, { "non-IP-PDP-Type-APNs", "gsm.map.ms.SupportedFeatures.non.IP.PDP.Type.APNs", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedFeatures_nrAsSecondaryRAT, { "nrAsSecondaryRAT", "gsm.map.ms.SupportedFeatures.nrAsSecondaryRAT", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_Ext_SupportedFeatures_unlicensedSpectrumAsSecondaryRAT, { "unlicensedSpectrumAsSecondaryRAT", "gsm.map.ms.Ext.SupportedFeatures.unlicensedSpectrumAsSecondaryRAT", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_not_allowed_bit, { "permission-indicator-not-allowed-bit", "gsm.map.ms.LCLS.Negotiation.permission.indicator.not.allowed.bit", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_LCLS_Negotiation_permission_indicator_spare_bit, { "permission-indicator-spare-bit", "gsm.map.ms.LCLS.Negotiation.permission.indicator.spare.bit", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_sending_indicator, { "forward-data-sending-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.forward.data.sending.indicator", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_sending_indicator, { "backward-data-sending-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.backward.data.sending.indicator", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_LCLS_ConfigurationPreference_forward_data_reception_indicator, { "forward-data-reception-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.forward.data.reception.indicator", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_LCLS_ConfigurationPreference_backward_data_reception_indicator, { "backward-data-reception-indicator", "gsm.map.ms.LCLS.ConfigurationPreference.backward.data.reception.indicator", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, { "equipmentStatus", "gsm.map.ms.RequestedEquipmentInfo.equipmentStatus", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, { "bmuef", "gsm.map.ms.RequestedEquipmentInfo.bmuef", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, { "utranNotAllowed", "gsm.map.ms.AccessRestrictionData.utranNotAllowed", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, { "geranNotAllowed", "gsm.map.ms.AccessRestrictionData.geranNotAllowed", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_ganNotAllowed, { "ganNotAllowed", "gsm.map.ms.AccessRestrictionData.ganNotAllowed", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_i_hspa_evolutionNotAllowed, { "i-hspa-evolutionNotAllowed", "gsm.map.ms.AccessRestrictionData.i.hspa.evolutionNotAllowed", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_wb_e_utranNotAllowed, { "wb-e-utranNotAllowed", "gsm.map.ms.AccessRestrictionData.wb.e.utranNotAllowed", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_ho_toNon3GPP_AccessNotAllowed, { "ho-toNon3GPP-AccessNotAllowed", "gsm.map.ms.AccessRestrictionData.ho.toNon3GPP.AccessNotAllowed", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_nb_iotNotAllowed, { "nb-iotNotAllowed", "gsm.map.ms.AccessRestrictionData.nb.iotNotAllowed", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_AccessRestrictionData_enhancedCoverageNotAllowed, { "enhancedCoverageNotAllowed", "gsm.map.ms.AccessRestrictionData.enhancedCoverageNotAllowed", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_Ext_AccessRestrictionData_nrAsSecondaryRATNotAllowed, { "nrAsSecondaryRATNotAllowed", "gsm.map.ms.Ext.AccessRestrictionData.nrAsSecondaryRATNotAllowed", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_Ext_AccessRestrictionData_unlicensedSpectrumAsSecondaryRATNotAllowed, { "unlicensedSpectrumAsSecondaryRATNotAllowed", "gsm.map.ms.Ext.AccessRestrictionData.unlicensedSpectrumAsSecondaryRATNotAllowed", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, { "allOG-CallsBarred", "gsm.map.ms.ODB.GeneralData.allOG.CallsBarred", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, { "internationalOGCallsBarred", "gsm.map.ms.ODB.GeneralData.internationalOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.internationalOGCallsNotToHPLMN.CountryBarred", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, { "premiumRateInformationOGCallsBarred", "gsm.map.ms.ODB.GeneralData.premiumRateInformationOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, { "premiumRateEntertainementOGCallsBarred", "gsm.map.ms.ODB.GeneralData.premiumRateEntertainementOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, { "ss-AccessBarred", "gsm.map.ms.ODB.GeneralData.ss.AccessBarred", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, { "interzonalOGCallsBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsNotToHPLMN.CountryBarred", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.interzonalOGCallsAndInternationalOGCallsNotToHPLMN.CountryBarred", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, { "allECT-Barred", "gsm.map.ms.ODB.GeneralData.allECT.Barred", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, { "chargeableECT-Barred", "gsm.map.ms.ODB.GeneralData.chargeableECT.Barred", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, { "internationalECT-Barred", "gsm.map.ms.ODB.GeneralData.internationalECT.Barred", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, { "interzonalECT-Barred", "gsm.map.ms.ODB.GeneralData.interzonalECT.Barred", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, { "doublyChargeableECT-Barred", "gsm.map.ms.ODB.GeneralData.doublyChargeableECT.Barred", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, { "multipleECT-Barred", "gsm.map.ms.ODB.GeneralData.multipleECT.Barred", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, { "allPacketOrientedServicesBarred", "gsm.map.ms.ODB.GeneralData.allPacketOrientedServicesBarred", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, { "roamerAccessToHPLMN-AP-Barred", "gsm.map.ms.ODB.GeneralData.roamerAccessToHPLMN.AP.Barred", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, { "roamerAccessToVPLMN-AP-Barred", "gsm.map.ms.ODB.GeneralData.roamerAccessToVPLMN.AP.Barred", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, { "roamingOutsidePLMNOG-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNOG.CallsBarred", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, { "allIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.allIC.CallsBarred", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, { "roamingOutsidePLMNIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNIC.CallsBarred", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMNICountryIC.CallsBarred", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, { "roamingOutsidePLMN-Barred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMN.Barred", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, { "roamingOutsidePLMN-CountryBarred", "gsm.map.ms.ODB.GeneralData.roamingOutsidePLMN.CountryBarred", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, { "registrationAllCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationAllCF.Barred", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, { "registrationCFNotToHPLMN-Barred", "gsm.map.ms.ODB.GeneralData.registrationCFNotToHPLMN.Barred", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, { "registrationInterzonalCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationInterzonalCF.Barred", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, { "registrationInterzonalCFNotToHPLMN-Barred", "gsm.map.ms.ODB.GeneralData.registrationInterzonalCFNotToHPLMN.Barred", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, { "registrationInternationalCF-Barred", "gsm.map.ms.ODB.GeneralData.registrationInternationalCF.Barred", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, { "plmn-SpecificBarringType1", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType1", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, { "plmn-SpecificBarringType2", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType2", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, { "plmn-SpecificBarringType3", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType3", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, { "plmn-SpecificBarringType4", "gsm.map.ms.ODB.HPLMN.Data.plmn.SpecificBarringType4", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, { "o-csi", "gsm.map.ms.SpecificCSI.Withdraw.o.csi", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, { "ss-csi", "gsm.map.ms.SpecificCSI.Withdraw.ss.csi", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, { "tif-csi", "gsm.map.ms.SpecificCSI.Withdraw.tif.csi", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, { "d-csi", "gsm.map.ms.SpecificCSI.Withdraw.d.csi", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, { "vt-csi", "gsm.map.ms.SpecificCSI.Withdraw.vt.csi", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, { "mo-sms-csi", "gsm.map.ms.SpecificCSI.Withdraw.mo.sms.csi", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, { "m-csi", "gsm.map.ms.SpecificCSI.Withdraw.m.csi", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, { "gprs-csi", "gsm.map.ms.SpecificCSI.Withdraw.gprs.csi", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, { "t-csi", "gsm.map.ms.SpecificCSI.Withdraw.t.csi", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, { "mt-sms-csi", "gsm.map.ms.SpecificCSI.Withdraw.mt.sms.csi", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, { "mg-csi", "gsm.map.ms.SpecificCSI.Withdraw.mg.csi", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, { "o-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.o.IM.CSI", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, { "d-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.d.IM.CSI", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, { "vt-IM-CSI", "gsm.map.ms.SpecificCSI.Withdraw.vt.IM.CSI", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedCamelPhases_phase1, { "phase1", "gsm.map.ms.SupportedCamelPhases.phase1", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedCamelPhases_phase2, { "phase2", "gsm.map.ms.SupportedCamelPhases.phase2", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedCamelPhases_phase3, { "phase3", "gsm.map.ms.SupportedCamelPhases.phase3", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_SupportedCamelPhases_phase4, { "phase4", "gsm.map.ms.SupportedCamelPhases.phase4", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, { "o-csi", "gsm.map.ms.OfferedCamel4CSIs.o.csi", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, { "d-csi", "gsm.map.ms.OfferedCamel4CSIs.d.csi", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, { "vt-csi", "gsm.map.ms.OfferedCamel4CSIs.vt.csi", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, { "t-csi", "gsm.map.ms.OfferedCamel4CSIs.t.csi", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, { "mt-sms-csi", "gsm.map.ms.OfferedCamel4CSIs.mt.sms.csi", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, { "mg-csi", "gsm.map.ms.OfferedCamel4CSIs.mg.csi", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, { "psi-enhancements", "gsm.map.ms.OfferedCamel4CSIs.psi.enhancements", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, { "initiateCallAttempt", "gsm.map.ms.OfferedCamel4Functionalities.initiateCallAttempt", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, { "splitLeg", "gsm.map.ms.OfferedCamel4Functionalities.splitLeg", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, { "moveLeg", "gsm.map.ms.OfferedCamel4Functionalities.moveLeg", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, { "disconnectLeg", "gsm.map.ms.OfferedCamel4Functionalities.disconnectLeg", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, { "entityReleased", "gsm.map.ms.OfferedCamel4Functionalities.entityReleased", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, { "dfc-WithArgument", "gsm.map.ms.OfferedCamel4Functionalities.dfc.WithArgument", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, { "playTone", "gsm.map.ms.OfferedCamel4Functionalities.playTone", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, { "dtmf-MidCall", "gsm.map.ms.OfferedCamel4Functionalities.dtmf.MidCall", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, { "chargingIndicator", "gsm.map.ms.OfferedCamel4Functionalities.chargingIndicator", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, { "alertingDP", "gsm.map.ms.OfferedCamel4Functionalities.alertingDP", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, { "locationAtAlerting", "gsm.map.ms.OfferedCamel4Functionalities.locationAtAlerting", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, { "changeOfPositionDP", "gsm.map.ms.OfferedCamel4Functionalities.changeOfPositionDP", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, { "or-Interactions", "gsm.map.ms.OfferedCamel4Functionalities.or.Interactions", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, { "warningToneEnhancements", "gsm.map.ms.OfferedCamel4Functionalities.warningToneEnhancements", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, { "cf-Enhancements", "gsm.map.ms.OfferedCamel4Functionalities.cf.Enhancements", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, { "subscribedEnhancedDialledServices", "gsm.map.ms.OfferedCamel4Functionalities.subscribedEnhancedDialledServices", FT_BOOLEAN, 8, NULL, 0x01, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, { "servingNetworkEnhancedDialledServices", "gsm.map.ms.OfferedCamel4Functionalities.servingNetworkEnhancedDialledServices", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, { "criteriaForChangeOfPositionDP", "gsm.map.ms.OfferedCamel4Functionalities.criteriaForChangeOfPositionDP", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, { "serviceChangeDP", "gsm.map.ms.OfferedCamel4Functionalities.serviceChangeDP", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, { "collectInformation", "gsm.map.ms.OfferedCamel4Functionalities.collectInformation", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, { "privilegedUplinkRequest", "gsm.map.ms.AdditionalSubscriptions.privilegedUplinkRequest", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, { "emergencyUplinkRequest", "gsm.map.ms.AdditionalSubscriptions.emergencyUplinkRequest", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, { "emergencyReset", "gsm.map.ms.AdditionalSubscriptions.emergencyReset", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_ms_RequestedNodes_mme, { "mme", "gsm.map.ms.RequestedNodes.mme", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_RequestedNodes_sgsn, { "sgsn", "gsm.map.ms.RequestedNodes.sgsn", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ms_RequestedServingNode_mmeAndSgsn, { "mmeAndSgsn", "gsm.map.ms.RequestedServingNode.mmeAndSgsn", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ServingNode_mme, { "mme", "gsm.map.ms.ServingNode.mme", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ms_ServingNode_sgsn, { "sgsn", "gsm.map.ms.ServingNode.sgsn", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, /* --- Module MAP-CH-DataTypes --- --- --- */ { &hf_gsm_map_ch_cug_Interlock, { "cug-Interlock", "gsm_map.ch.cug_Interlock", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_cug_OutgoingAccess, { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_extensionContainer, { "extensionContainer", "gsm_map.ch.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_msisdn, { "msisdn", "gsm_map.ch.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_cug_CheckInfo, { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_numberOfForwarding, { "numberOfForwarding", "gsm_map.ch.numberOfForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_interrogationType, { "interrogationType", "gsm_map.ch.interrogationType", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_or_Interrogation, { "or-Interrogation", "gsm_map.ch.or_Interrogation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_or_Capability, { "or-Capability", "gsm_map.ch.or_Capability", FT_UINT32, BASE_DEC, NULL, 0, "OR_Phase", HFILL }}, { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_callReferenceNumber, { "callReferenceNumber", "gsm_map.ch.callReferenceNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_forwardingReason, { "forwardingReason", "gsm_map.ch.forwardingReason", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_basicServiceGroup, { "basicServiceGroup", "gsm_map.ch.basicServiceGroup", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "Ext_BasicServiceCode", HFILL }}, { &hf_gsm_map_ch_networkSignalInfo, { "networkSignalInfo", "gsm_map.ch.networkSignalInfo_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ch_camelInfo, { "camelInfo", "gsm_map.ch.camelInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_suppressionOfAnnouncement, { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_alertingPattern, { "alertingPattern", "gsm_map.ch.alertingPattern", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_ccbs_Call, { "ccbs-Call", "gsm_map.ch.ccbs_Call_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_supportedCCBS_Phase, { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_additionalSignalInfo, { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo_element", FT_NONE, BASE_NONE, NULL, 0, "Ext_ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ch_istSupportIndicator, { "istSupportIndicator", "gsm_map.ch.istSupportIndicator", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0, "IST_SupportIndicator", HFILL }}, { &hf_gsm_map_ch_pre_pagingSupported, { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_callDiversionTreatmentIndicator, { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_longFTN_Supported, { "longFTN-Supported", "gsm_map.ch.longFTN_Supported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_suppress_VT_CSI, { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_suppressIncomingCallBarring, { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_gsmSCF_InitiatedCall, { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_basicServiceGroup2, { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "Ext_BasicServiceCode", HFILL }}, { &hf_gsm_map_ch_networkSignalInfo2, { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ch_suppressMTSS, { "suppressMTSS", "gsm_map.ch.suppressMTSS", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_mtRoamingRetrySupported, { "mtRoamingRetrySupported", "gsm_map.ch.mtRoamingRetrySupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_callPriority, { "callPriority", "gsm_map.ch.callPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_ch_imsi, { "imsi", "gsm_map.ch.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_extendedRoutingInfo, { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_cugSubscriptionFlag, { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_subscriberInfo, { "subscriberInfo", "gsm_map.ch.subscriberInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_ss_List, { "ss-List", "gsm_map.ch.ss_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_basicService, { "basicService", "gsm_map.ch.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "Ext_BasicServiceCode", HFILL }}, { &hf_gsm_map_ch_forwardingInterrogationRequired, { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_vmsc_Address, { "vmsc-Address", "gsm_map.ch.vmsc_Address", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_naea_PreferredCI, { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_ccbs_Indicators, { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_numberPortabilityStatus, { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_istAlertTimer, { "istAlertTimer", "gsm_map.ch.istAlertTimer", FT_UINT32, BASE_DEC, NULL, 0, "IST_AlertTimerValue", HFILL }}, { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC", FT_BYTES, BASE_NONE, NULL, 0, "SupportedCamelPhases", HFILL }}, { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC", FT_BYTES, BASE_NONE, NULL, 0, "OfferedCamel4CSIs", HFILL }}, { &hf_gsm_map_ch_routingInfo2, { "routingInfo2", "gsm_map.ch.routingInfo2", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0, "RoutingInfo", HFILL }}, { &hf_gsm_map_ch_ss_List2, { "ss-List2", "gsm_map.ch.ss_List2", FT_UINT32, BASE_DEC, NULL, 0, "SS_List", HFILL }}, { &hf_gsm_map_ch_basicService2, { "basicService2", "gsm_map.ch.basicService2", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "Ext_BasicServiceCode", HFILL }}, { &hf_gsm_map_ch_allowedServices, { "allowedServices", "gsm_map.ch.allowedServices", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_unavailabilityCause, { "unavailabilityCause", "gsm_map.ch.unavailabilityCause", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_releaseResourcesSupported, { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_gsm_BearerCapability, { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ch_ccbs_Possible, { "ccbs-Possible", "gsm_map.ch.ccbs_Possible_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_keepCCBS_CallIndicator, { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_roamingNumber, { "roamingNumber", "gsm_map.ch.roamingNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_forwardingData, { "forwardingData", "gsm_map.ch.forwardingData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_forwardedToNumber, { "forwardedToNumber", "gsm_map.ch.forwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_forwardedToSubaddress, { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_SubaddressString", HFILL }}, { &hf_gsm_map_ch_forwardingOptions, { "forwardingOptions", "gsm_map.ch.forwardingOptions", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_longForwardedToNumber, { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "FTN_AddressString", HFILL }}, { &hf_gsm_map_ch_msc_Number, { "msc-Number", "gsm_map.ch.msc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_lmsi, { "lmsi", "gsm_map.ch.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_gmsc_Address, { "gmsc-Address", "gsm_map.ch.gmsc_Address", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode", FT_BYTES, BASE_NONE, NULL, 0, "SupportedCamelPhases", HFILL }}, { &hf_gsm_map_ch_orNotSupportedInGMSC, { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode", FT_BYTES, BASE_NONE, NULL, 0, "OfferedCamel4CSIs", HFILL }}, { &hf_gsm_map_ch_pagingArea, { "pagingArea", "gsm_map.ch.pagingArea", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_mtrf_Indicator, { "mtrf-Indicator", "gsm_map.ch.mtrf_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_oldMSC_Number, { "oldMSC-Number", "gsm_map.ch.oldMSC_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_lastUsedLtePLMN_Id, { "lastUsedLtePLMN-Id", "gsm_map.ch.lastUsedLtePLMN_Id", FT_BYTES, BASE_NONE, NULL, 0, "PLMN_Id", HFILL }}, { &hf_gsm_map_ch_o_CSI, { "o-CSI", "gsm_map.ch.o_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_uu_Data, { "uu-Data", "gsm_map.ch.uu_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_allInformationSent, { "allInformationSent", "gsm_map.ch.allInformationSent_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_d_csi, { "d-csi", "gsm_map.ch.d_csi_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_mtRoamingRetry, { "mtRoamingRetry", "gsm_map.ch.mtRoamingRetry_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_uuIndicator, { "uuIndicator", "gsm_map.ch.uuIndicator", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_uui, { "uui", "gsm_map.ch.uui", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_uusCFInteraction, { "uusCFInteraction", "gsm_map.ch.uusCFInteraction_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_supportedCamelPhases, { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_suppress_T_CSI, { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_offeredCamel4CSIs, { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_routingInfo, { "routingInfo", "gsm_map.ch.routingInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_camelRoutingInfo, { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_t_CSI, { "t-CSI", "gsm_map.ch.t_CSI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, "O_BcsmCamelTDPCriteriaList", HFILL }}, { &hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList, { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.ch.t_BCSM_CAMEL_TDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_ccbs_Monitoring, { "ccbs-Monitoring", "gsm_map.ch.ccbs_Monitoring", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ReportingState_vals), 0, "ReportingState", HFILL }}, { &hf_gsm_map_ch_ccbs_SubscriberStatus, { "ccbs-SubscriberStatus", "gsm_map.ch.ccbs_SubscriberStatus", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CCBS_SubscriberStatus_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_eventReportData, { "eventReportData", "gsm_map.ch.eventReportData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_callReportdata, { "callReportdata", "gsm_map.ch.callReportdata_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_monitoringMode, { "monitoringMode", "gsm_map.ch.monitoringMode", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_callOutcome, { "callOutcome", "gsm_map.ch.callOutcome", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_callInfo, { "callInfo", "gsm_map.ch.callInfo_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_map_ch_ccbs_Feature, { "ccbs-Feature", "gsm_map.ch.ccbs_Feature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_translatedB_Number, { "translatedB-Number", "gsm_map.ch.translatedB_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_replaceB_Number, { "replaceB-Number", "gsm_map.ch.replaceB_Number_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_ruf_Outcome, { "ruf-Outcome", "gsm_map.ch.ruf_Outcome", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RUF_Outcome_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_istInformationWithdraw, { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ch_callTerminationIndicator, { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ch_msrn, { "msrn", "gsm_map.ch.msrn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ch_SuppressMTSS_suppressCUG, { "suppressCUG", "gsm.map.ch.SuppressMTSS.suppressCUG", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, { "suppressCCBS", "gsm.map.ch.SuppressMTSS.suppressCCBS", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, { "firstServiceAllowed", "gsm.map.ch.AllowedServices.firstServiceAllowed", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, { "secondServiceAllowed", "gsm.map.ch.AllowedServices.secondServiceAllowed", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, /* --- Module MAP-LCS-DataTypes --- --- --- */ { &hf_gsm_map_lcs_gsm_map_lcs_LCS_ClientID_PDU, { "LCS-ClientID", "gsm_map.lcs.LCS_ClientID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_mlcNumber, { "mlcNumber", "gsm_map.lcs.mlcNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_targetMS, { "targetMS", "gsm_map.lcs.targetMS", FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0, "SubscriberIdentity", HFILL }}, { &hf_gsm_map_lcs_extensionContainer, { "extensionContainer", "gsm_map.lcs.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsLocationInfo, { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_v_gmlc_Address, { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_lcs_h_gmlc_Address, { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_lcs_ppr_Address, { "ppr-Address", "gsm_map.lcs.ppr_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_lcs_additional_v_gmlc_Address, { "additional-v-gmlc-Address", "gsm_map.lcs.additional_v_gmlc_Address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_map_lcs_networkNode_Number, { "networkNode-Number", "gsm_map.lcs.networkNode_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_lmsi, { "lmsi", "gsm_map.lcs.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_gprsNodeIndicator, { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_additional_Number, { "additional-Number", "gsm_map.lcs.additional_Number", FT_UINT32, BASE_DEC, VALS(gsm_map_sm_Additional_Number_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets", FT_BYTES, BASE_NONE, NULL, 0, "SupportedLCS_CapabilitySets", HFILL }}, { &hf_gsm_map_lcs_mme_Name, { "mme-Name", "gsm_map.lcs.mme_Name", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_lcs_aaa_Server_Name, { "aaa-Server-Name", "gsm_map.lcs.aaa_Server_Name", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_lcs_sgsn_Name, { "sgsn-Name", "gsm_map.lcs.sgsn_Name", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_lcs_sgsn_Realm, { "sgsn-Realm", "gsm_map.lcs.sgsn_Realm", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_lcs_locationType, { "locationType", "gsm_map.lcs.locationType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_mlc_Number, { "mlc-Number", "gsm_map.lcs.mlc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_lcs_ClientID, { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_privacyOverride, { "privacyOverride", "gsm_map.lcs.privacyOverride_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_imsi, { "imsi", "gsm_map.lcs.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_msisdn, { "msisdn", "gsm_map.lcs.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_imei, { "imei", "gsm_map.lcs.imei", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcs_Priority, { "lcs-Priority", "gsm_map.lcs.lcs_Priority", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcs_QoS, { "lcs-QoS", "gsm_map.lcs.lcs_QoS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_supportedGADShapes, { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcs_ReferenceNumber, { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsServiceTypeID, { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID", FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsCodeword, { "lcsCodeword", "gsm_map.lcs.lcsCodeword_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcs_PrivacyCheck, { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_areaEventInfo, { "areaEventInfo", "gsm_map.lcs.areaEventInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_periodicLDRInfo, { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_reportingPLMNList, { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_locationEstimateType, { "locationEstimateType", "gsm_map.lcs.locationEstimateType", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_deferredLocationEventType, { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsClientType, { "lcsClientType", "gsm_map.lcs.lcsClientType", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsClientExternalID, { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsClientDialedByMS, { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_lcs_lcsClientInternalID, { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID", FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsClientName, { "lcsClientName", "gsm_map.lcs.lcsClientName_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsAPN, { "lcsAPN", "gsm_map.lcs.lcsAPN", FT_BYTES, BASE_NONE, NULL, 0, "APN", HFILL }}, { &hf_gsm_map_lcs_lcsRequestorID, { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_dataCodingScheme, { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme", FT_BYTES, BASE_NONE, NULL, 0, "USSD_DataCodingScheme", HFILL }}, { &hf_gsm_map_lcs_nameString, { "nameString", "gsm_map.lcs.nameString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcs_FormatIndicator, { "lcs-FormatIndicator", "gsm_map.lcs.lcs_FormatIndicator", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_FormatIndicator_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_requestorIDString, { "requestorIDString", "gsm_map.lcs.requestorIDString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_horizontal_accuracy, { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_verticalCoordinateRequest, { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_vertical_accuracy, { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_responseTime, { "responseTime", "gsm_map.lcs.responseTime_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_velocityRequest, { "velocityRequest", "gsm_map.lcs.velocityRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_responseTimeCategory, { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcsCodewordString, { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_callSessionUnrelated, { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0, "PrivacyCheckRelatedAction", HFILL }}, { &hf_gsm_map_lcs_callSessionRelated, { "callSessionRelated", "gsm_map.lcs.callSessionRelated", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0, "PrivacyCheckRelatedAction", HFILL }}, { &hf_gsm_map_lcs_areaDefinition, { "areaDefinition", "gsm_map.lcs.areaDefinition_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_occurrenceInfo, { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_intervalTime, { "intervalTime", "gsm_map.lcs.intervalTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_areaList, { "areaList", "gsm_map.lcs.areaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_AreaList_item, { "Area", "gsm_map.lcs.Area_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_areaType, { "areaType", "gsm_map.lcs.areaType", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_areaIdentification, { "areaIdentification", "gsm_map.lcs.areaIdentification", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_reportingAmount, { "reportingAmount", "gsm_map.lcs.reportingAmount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_reportingInterval, { "reportingInterval", "gsm_map.lcs.reportingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_plmn_ListPrioritized, { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_plmn_List, { "plmn-List", "gsm_map.lcs.plmn_List", FT_UINT32, BASE_DEC, NULL, 0, "PLMNList", HFILL }}, { &hf_gsm_map_lcs_PLMNList_item, { "ReportingPLMN", "gsm_map.lcs.ReportingPLMN_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_plmn_Id, { "plmn-Id", "gsm_map.lcs.plmn_Id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_ran_Technology, { "ran-Technology", "gsm_map.lcs.ran_Technology", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_RAN_Technology_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_locationEstimate, { "locationEstimate", "gsm_map.lcs.locationEstimate", FT_BYTES, BASE_NONE, NULL, 0, "Ext_GeographicalInformation", HFILL }}, { &hf_gsm_map_lcs_ageOfLocationEstimate, { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate", FT_UINT32, BASE_DEC, NULL, 0, "AgeOfLocationInformation", HFILL }}, { &hf_gsm_map_lcs_add_LocationEstimate, { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate", FT_BYTES, BASE_NONE, NULL, 0, "Add_GeographicalInformation", HFILL }}, { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_geranPositioningData, { "geranPositioningData", "gsm_map.lcs.geranPositioningData", FT_BYTES, BASE_NONE, NULL, 0, "PositioningDataInformation", HFILL }}, { &hf_gsm_map_lcs_utranPositioningData, { "utranPositioningData", "gsm_map.lcs.utranPositioningData", FT_BYTES, BASE_NONE, NULL, 0, "UtranPositioningDataInfo", HFILL }}, { &hf_gsm_map_lcs_cellIdOrSai, { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai", FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0, "CellGlobalIdOrServiceAreaIdOrLAI", HFILL }}, { &hf_gsm_map_lcs_sai_Present, { "sai-Present", "gsm_map.lcs.sai_Present_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_velocityEstimate, { "velocityEstimate", "gsm_map.lcs.velocityEstimate", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_geranGANSSpositioningData, { "geranGANSSpositioningData", "gsm_map.lcs.geranGANSSpositioningData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_utranGANSSpositioningData, { "utranGANSSpositioningData", "gsm_map.lcs.utranGANSSpositioningData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_targetServingNodeForHandover, { "targetServingNodeForHandover", "gsm_map.lcs.targetServingNodeForHandover", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ServingNodeAddress_vals), 0, "ServingNodeAddress", HFILL }}, { &hf_gsm_map_lcs_utranAdditionalPositioningData, { "utranAdditionalPositioningData", "gsm_map.lcs.utranAdditionalPositioningData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_utranBaroPressureMeas, { "utranBaroPressureMeas", "gsm_map.lcs.utranBaroPressureMeas", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_utranCivicAddress, { "utranCivicAddress", "gsm_map.lcs.utranCivicAddress", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_lcs_Event, { "lcs-Event", "gsm_map.lcs.lcs_Event", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCS_Event_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_na_ESRD, { "na-ESRD", "gsm_map.lcs.na_ESRD", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_na_ESRK, { "na-ESRK", "gsm_map.lcs.na_ESRK", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_slr_ArgExtensionContainer, { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_deferredmt_lrData, { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_pseudonymIndicator, { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_sequenceNumber, { "sequenceNumber", "gsm_map.lcs.sequenceNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_lcs_terminationCause, { "terminationCause", "gsm_map.lcs.terminationCause", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0, NULL, HFILL }}, { &hf_gsm_map_lcs_msc_Number, { "msc-Number", "gsm_map.lcs.msc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_sgsn_Number, { "sgsn-Number", "gsm_map.lcs.sgsn_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_lcs_mme_Number, { "mme-Number", "gsm_map.lcs.mme_Number", FT_STRING, BASE_NONE, NULL, 0, "DiameterIdentity", HFILL }}, { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, { "msAvailable", "gsm.map.lcs.DeferredLocationEventType.msAvailable", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, { "enteringIntoArea", "gsm.map.lcs.DeferredLocationEventType.enteringIntoArea", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, { "leavingFromArea", "gsm.map.lcs.DeferredLocationEventType.leavingFromArea", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, { "beingInsideArea", "gsm.map.lcs.DeferredLocationEventType.beingInsideArea", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, { "periodicLDR", "gsm.map.lcs.DeferredLocationEventType.periodicLDR", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, { "ellipsoidPoint", "gsm.map.lcs.SupportedGADShapes.ellipsoidPoint", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, { "ellipsoidPointWithUncertaintyCircle", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithUncertaintyCircle", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, { "ellipsoidPointWithUncertaintyEllipse", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithUncertaintyEllipse", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_polygon, { "polygon", "gsm.map.lcs.SupportedGADShapes.polygon", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, { "ellipsoidPointWithAltitude", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithAltitude", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm.map.lcs.SupportedGADShapes.ellipsoidPointWithAltitudeAndUncertaintyElipsoid", FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }}, { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, { "ellipsoidArc", "gsm.map.lcs.SupportedGADShapes.ellipsoidArc", FT_BOOLEAN, 8, NULL, 0x02, NULL, HFILL }}, /* --- Module MAP-GR-DataTypes --- --- --- */ { &hf_gsm_map_gr_teleservice, { "teleservice", "gsm_map.gr.teleservice", FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, "Ext_TeleserviceCode", HFILL }}, { &hf_gsm_map_gr_asciCallReference, { "asciCallReference", "gsm_map.gr.asciCallReference", FT_BYTES, BASE_NONE, NULL, 0, "ASCI_CallReference", HFILL }}, { &hf_gsm_map_gr_codec_Info, { "codec-Info", "gsm_map.gr.codec_Info", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_cipheringAlgorithm, { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id", FT_UINT32, BASE_DEC, NULL, 0, "GroupKeyNumber", HFILL }}, { &hf_gsm_map_gr_groupKey, { "groupKey", "gsm_map.gr.groupKey", FT_BYTES, BASE_NONE, NULL, 0, "Kc", HFILL }}, { &hf_gsm_map_gr_priority, { "priority", "gsm_map.gr.priority", FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, "EMLPP_Priority", HFILL }}, { &hf_gsm_map_gr_uplinkFree, { "uplinkFree", "gsm_map.gr.uplinkFree_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_extensionContainer, { "extensionContainer", "gsm_map.gr.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_vstk, { "vstk", "gsm_map.gr.vstk", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_vstk_rand, { "vstk-rand", "gsm_map.gr.vstk_rand", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_talkerChannelParameter, { "talkerChannelParameter", "gsm_map.gr.talkerChannelParameter_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkReplyIndicator, { "uplinkReplyIndicator", "gsm_map.gr.uplinkReplyIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_groupCallNumber, { "groupCallNumber", "gsm_map.gr.groupCallNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_gr_imsi, { "imsi", "gsm_map.gr.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_talkerPriority, { "talkerPriority", "gsm_map.gr.talkerPriority", FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0, NULL, HFILL }}, { &hf_gsm_map_gr_additionalInfo, { "additionalInfo", "gsm_map.gr.additionalInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkRequestAck, { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkReleaseIndication, { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkRejectCommand, { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkSeizedCommand, { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkReleaseCommand, { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_stateAttributes, { "stateAttributes", "gsm_map.gr.stateAttributes_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_emergencyModeResetCommandFlag, { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_sm_RP_UI, { "sm-RP-UI", "gsm_map.gr.sm_RP_UI", FT_BYTES, BASE_NONE, NULL, 0, "SignalInfo", HFILL }}, { &hf_gsm_map_gr_an_APDU, { "an-APDU", "gsm_map.gr.an_APDU_element", FT_NONE, BASE_NONE, NULL, 0, "AccessNetworkSignalInfo", HFILL }}, { &hf_gsm_map_gr_uplinkRequest, { "uplinkRequest", "gsm_map.gr.uplinkRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_releaseGroupCall, { "releaseGroupCall", "gsm_map.gr.releaseGroupCall_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_downlinkAttached, { "downlinkAttached", "gsm_map.gr.downlinkAttached_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_uplinkAttached, { "uplinkAttached", "gsm_map.gr.uplinkAttached_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_dualCommunication, { "dualCommunication", "gsm_map.gr.dualCommunication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_callOriginator, { "callOriginator", "gsm_map.gr.callOriginator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_requestedInfo, { "requestedInfo", "gsm_map.gr.requestedInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_map_gr_groupId, { "groupId", "gsm_map.gr.groupId", FT_BYTES, BASE_NONE, NULL, 0, "Long_GroupId", HFILL }}, { &hf_gsm_map_gr_cellId, { "cellId", "gsm_map.gr.cellId", FT_BYTES, BASE_NONE, NULL, 0, "GlobalCellId", HFILL }}, { &hf_gsm_map_gr_tmsi, { "tmsi", "gsm_map.gr.tmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_cksn, { "cksn", "gsm_map.gr.cksn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_anchorMSC_Address, { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_gr_additionalSubscriptions, { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_gr_kc, { "kc", "gsm_map.gr.kc", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, /* --- Module MAP-DialogueInformation --- --- --- */ { &hf_gsm_map_dialogue_gsm_map_dialogue_MAP_DialoguePDU_PDU, { "MAP-DialoguePDU", "gsm_map.dialogue.MAP_DialoguePDU", FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_DialoguePDU_vals), 0, NULL, HFILL }}, { &hf_gsm_map_dialogue_map_open, { "map-open", "gsm_map.dialogue.map_open_element", FT_NONE, BASE_NONE, NULL, 0, "MAP_OpenInfo", HFILL }}, { &hf_gsm_map_dialogue_map_accept, { "map-accept", "gsm_map.dialogue.map_accept_element", FT_NONE, BASE_NONE, NULL, 0, "MAP_AcceptInfo", HFILL }}, { &hf_gsm_map_dialogue_map_close, { "map-close", "gsm_map.dialogue.map_close_element", FT_NONE, BASE_NONE, NULL, 0, "MAP_CloseInfo", HFILL }}, { &hf_gsm_map_dialogue_map_refuse, { "map-refuse", "gsm_map.dialogue.map_refuse_element", FT_NONE, BASE_NONE, NULL, 0, "MAP_RefuseInfo", HFILL }}, { &hf_gsm_map_dialogue_map_userAbort, { "map-userAbort", "gsm_map.dialogue.map_userAbort_element", FT_NONE, BASE_NONE, NULL, 0, "MAP_UserAbortInfo", HFILL }}, { &hf_gsm_map_dialogue_map_providerAbort, { "map-providerAbort", "gsm_map.dialogue.map_providerAbort_element", FT_NONE, BASE_NONE, NULL, 0, "MAP_ProviderAbortInfo", HFILL }}, { &hf_gsm_map_dialogue_destinationReference, { "destinationReference", "gsm_map.dialogue.destinationReference", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_dialogue_originationReference, { "originationReference", "gsm_map.dialogue.originationReference", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_map_dialogue_extensionContainer, { "extensionContainer", "gsm_map.dialogue.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_dialogue_reason, { "reason", "gsm_map.dialogue.reason", FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0, NULL, HFILL }}, { &hf_gsm_map_dialogue_alternativeApplicationContext, { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext", FT_OID, BASE_NONE, NULL, 0, "OBJECT_IDENTIFIER", HFILL }}, { &hf_gsm_map_dialogue_map_UserAbortChoice, { "map-UserAbortChoice", "gsm_map.dialogue.map_UserAbortChoice", FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_UserAbortChoice_vals), 0, NULL, HFILL }}, { &hf_gsm_map_dialogue_userSpecificReason, { "userSpecificReason", "gsm_map.dialogue.userSpecificReason_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_dialogue_userResourceLimitation, { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_dialogue_resourceUnavailable, { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable", FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0, "ResourceUnavailableReason", HFILL }}, { &hf_gsm_map_dialogue_applicationProcedureCancellation, { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation", FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0, "ProcedureCancellationReason", HFILL }}, { &hf_gsm_map_dialogue_map_ProviderAbortReason, { "map-ProviderAbortReason", "gsm_map.dialogue.map_ProviderAbortReason", FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_MAP_ProviderAbortReason_vals), 0, NULL, HFILL }}, /* --- Module DummyMAP --- --- --- */ { &hf_gsm_old_invoke, { "invoke", "gsm_old.invoke_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_returnResultLast, { "returnResultLast", "gsm_old.returnResultLast_element", FT_NONE, BASE_NONE, NULL, 0, "ReturnResult", HFILL }}, { &hf_gsm_old_returnError, { "returnError", "gsm_old.returnError_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_reject, { "reject", "gsm_old.reject_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_returnResultNotLast, { "returnResultNotLast", "gsm_old.returnResultNotLast_element", FT_NONE, BASE_NONE, NULL, 0, "ReturnResult", HFILL }}, { &hf_gsm_old_invokeID, { "invokeID", "gsm_old.invokeID", FT_INT32, BASE_DEC, NULL, 0, "InvokeIdType", HFILL }}, { &hf_gsm_old_linkedID, { "linkedID", "gsm_old.linkedID", FT_INT32, BASE_DEC, NULL, 0, "InvokeIdType", HFILL }}, { &hf_gsm_old_opCode, { "opCode", "gsm_old.opCode", FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0, "MAP_OPERATION", HFILL }}, { &hf_gsm_old_invokeparameter, { "invokeparameter", "gsm_old.invokeparameter_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_resultretres, { "resultretres", "gsm_old.resultretres_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_returnparameter, { "returnparameter", "gsm_old.returnparameter_element", FT_NONE, BASE_NONE, NULL, 0, "ReturnResultParameter", HFILL }}, { &hf_gsm_old_errorCode, { "errorCode", "gsm_old.errorCode", FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0, "MAP_ERROR", HFILL }}, { &hf_gsm_old_parameter, { "parameter", "gsm_old.parameter_element", FT_NONE, BASE_NONE, NULL, 0, "ReturnErrorParameter", HFILL }}, { &hf_gsm_old_invokeIDRej, { "invokeIDRej", "gsm_old.invokeIDRej", FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0, NULL, HFILL }}, { &hf_gsm_old_derivable, { "derivable", "gsm_old.derivable", FT_INT32, BASE_DEC, NULL, 0, "InvokeIdType", HFILL }}, { &hf_gsm_old_not_derivable, { "not-derivable", "gsm_old.not_derivable_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_problem, { "problem", "gsm_old.problem", FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0, NULL, HFILL }}, { &hf_gsm_old_generalProblem, { "generalProblem", "gsm_old.generalProblem", FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0, NULL, HFILL }}, { &hf_gsm_old_invokeProblem, { "invokeProblem", "gsm_old.invokeProblem", FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0, NULL, HFILL }}, { &hf_gsm_old_returnResultProblem, { "returnResultProblem", "gsm_old.returnResultProblem", FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0, NULL, HFILL }}, { &hf_gsm_old_returnErrorProblem, { "returnErrorProblem", "gsm_old.returnErrorProblem", FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0, NULL, HFILL }}, { &hf_gsm_old_localValue, { "localValue", "gsm_old.localValue", FT_INT32, BASE_DEC|BASE_EXT_STRING, &gsm_old_GSMMAPOperationLocalvalue_vals_ext, 0, "OperationLocalvalue", HFILL }}, { &hf_gsm_old_globalValue, { "globalValue", "gsm_old.globalValue", FT_OID, BASE_NONE, NULL, 0, "OBJECT_IDENTIFIER", HFILL }}, { &hf_gsm_old_localValue_01, { "localValue", "gsm_old.localValue", FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0, "LocalErrorcode", HFILL }}, { &hf_gsm_old_protocolId, { "protocolId", "gsm_old.protocolId", FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0, NULL, HFILL }}, { &hf_gsm_old_signalInfo, { "signalInfo", "gsm_old.signalInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_extensionContainer, { "extensionContainer", "gsm_old.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_gsm_BearerCapability, { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_isdn_BearerCapability, { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_call_Direction, { "call-Direction", "gsm_old.call_Direction", FT_BYTES, BASE_NONE, NULL, 0, "CallDirection", HFILL }}, { &hf_gsm_old_b_Subscriber_Address, { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_chosenChannel, { "chosenChannel", "gsm_old.chosenChannel_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_lowerLayerCompatibility, { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_highLayerCompatibility, { "highLayerCompatibility", "gsm_old.highLayerCompatibility_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_sIWFSNumber, { "sIWFSNumber", "gsm_old.sIWFSNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_imsi, { "imsi", "gsm_old.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_vlr_Number, { "vlr-Number", "gsm_old.vlr_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_targetCellId, { "targetCellId", "gsm_old.targetCellId", FT_BYTES, BASE_NONE, NULL, 0, "GlobalCellId", HFILL }}, { &hf_gsm_old_ho_NumberNotRequired, { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_bss_APDU, { "bss-APDU", "gsm_old.bss_APDU_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_handoverNumber, { "handoverNumber", "gsm_old.handoverNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_SendAuthenticationInfoResOld_item, { "SendAuthenticationInfoResOld item", "gsm_old.SendAuthenticationInfoResOld_item_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_rand, { "rand", "gsm_old.rand", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_sres, { "sres", "gsm_old.sres", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_kc, { "kc", "gsm_old.kc", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_tripletList, { "tripletList", "gsm_old.tripletList", FT_UINT32, BASE_DEC, NULL, 0, "TripletListold", HFILL }}, { &hf_gsm_old_TripletListold_item, { "AuthenticationTriplet-v2", "gsm_old.AuthenticationTriplet_v2_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_channelType, { "channelType", "gsm_old.channelType_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_securityHeader, { "securityHeader", "gsm_old.securityHeader_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_protectedPayload, { "protectedPayload", "gsm_old.protectedPayload", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_securityParametersIndex, { "securityParametersIndex", "gsm_old.securityParametersIndex", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_originalComponentIdentifier, { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier", FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0, NULL, HFILL }}, { &hf_gsm_old_initialisationVector, { "initialisationVector", "gsm_old.initialisationVector", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_operationCode, { "operationCode", "gsm_old.operationCode", FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0, NULL, HFILL }}, { &hf_gsm_old_errorCode_01, { "errorCode", "gsm_old.errorCode", FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0, NULL, HFILL }}, { &hf_gsm_old_userInfo, { "userInfo", "gsm_old.userInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_localValue_02, { "localValue", "gsm_old.localValue", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, { &hf_gsm_old_msisdn, { "msisdn", "gsm_old.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_category, { "category", "gsm_old.category", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_basicService, { "basicService", "gsm_old.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, "BasicServiceCode", HFILL }}, { &hf_gsm_old_operatorSS_Code, { "operatorSS-Code", "gsm_old.operatorSS_Code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_operatorSS_Code_item, { "operatorSS-Code item", "gsm_old.operatorSS_Code_item", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_1", HFILL }}, { &hf_gsm_old_sm_RP_DA, { "sm-RP-DA", "gsm_old.sm_RP_DA", FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_DAold_vals), 0, "SM_RP_DAold", HFILL }}, { &hf_gsm_old_sm_RP_OA, { "sm-RP-OA", "gsm_old.sm_RP_OA", FT_UINT32, BASE_DEC, VALS(gsm_old_SM_RP_OAold_vals), 0, "SM_RP_OAold", HFILL }}, { &hf_gsm_old_sm_RP_UI, { "sm-RP-UI", "gsm_old.sm_RP_UI", FT_BYTES, BASE_NONE, NULL, 0, "SignalInfo", HFILL }}, { &hf_gsm_old_moreMessagesToSend, { "moreMessagesToSend", "gsm_old.moreMessagesToSend_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_imsi_01, { "imsi", "gsm_old.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_lmsi, { "lmsi", "gsm_old.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_serviceCentreAddressDA, { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_noSM_RP_DA, { "noSM-RP-DA", "gsm_old.noSM_RP_DA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_msisdn_01, { "msisdn", "gsm_old.msisdn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_serviceCentreAddressOA, { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_noSM_RP_OA, { "noSM-RP-OA", "gsm_old.noSM_RP_OA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_cug_CheckInfo, { "cug-CheckInfo", "gsm_old.cug_CheckInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_numberOfForwarding, { "numberOfForwarding", "gsm_old.numberOfForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_networkSignalInfo, { "networkSignalInfo", "gsm_old.networkSignalInfo_element", FT_NONE, BASE_NONE, NULL, 0, "ExternalSignalInfo", HFILL }}, { &hf_gsm_old_routingInfo, { "routingInfo", "gsm_old.routingInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_old_originatingEntityNumber, { "originatingEntityNumber", "gsm_old.originatingEntityNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_msisdn_02, { "msisdn", "gsm_old.msisdn", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_old_sm_RP_PRI, { "sm-RP-PRI", "gsm_old.sm_RP_PRI", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_old_serviceCentreAddress, { "serviceCentreAddress", "gsm_old.serviceCentreAddress", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_old_cug_Interlock, { "cug-Interlock", "gsm_old.cug_Interlock", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_teleserviceCode, { "teleserviceCode", "gsm_old.teleserviceCode", FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, NULL, HFILL }}, { &hf_gsm_old_locationInfoWithLMSI, { "locationInfoWithLMSI", "gsm_old.locationInfoWithLMSI_element", FT_NONE, BASE_NONE, NULL, 0, "LocationInfoWithLMSIv2", HFILL }}, { &hf_gsm_old_mwd_Set, { "mwd-Set", "gsm_old.mwd_Set", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_old_locationInfo, { "locationInfo", "gsm_old.locationInfo", FT_UINT32, BASE_DEC, VALS(gsm_old_LocationInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_old_lmsi_01, { "lmsi", "gsm_old.lmsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_roamingNumber, { "roamingNumber", "gsm_old.roamingNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_msc_Number, { "msc-Number", "gsm_old.msc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_subscriberId, { "subscriberId", "gsm_old.subscriberId", FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberId_vals), 0, NULL, HFILL }}, { &hf_gsm_old_requestParameterList, { "requestParameterList", "gsm_old.requestParameterList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_RequestParameterList_item, { "RequestParameter", "gsm_old.RequestParameter", FT_UINT32, BASE_DEC, VALS(gsm_old_RequestParameter_vals), 0, NULL, HFILL }}, { &hf_gsm_old_authenticationSet, { "authenticationSet", "gsm_old.authenticationSet", FT_UINT32, BASE_DEC, VALS(gsm_old_AuthenticationSetListOld_vals), 0, "AuthenticationSetListOld", HFILL }}, { &hf_gsm_old_subscriberData, { "subscriberData", "gsm_old.subscriberData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_ki, { "ki", "gsm_old.ki", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_tripletList_01, { "tripletList", "gsm_old.tripletList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_quintupletList, { "quintupletList", "gsm_old.quintupletList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_old_SentParameterList_item, { "SentParameter", "gsm_old.SentParameter", FT_UINT32, BASE_DEC, VALS(gsm_old_SentParameter_vals), 0, NULL, HFILL }}, { &hf_gsm_old_networkResource, { "networkResource", "gsm_old.networkResource", FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0, NULL, HFILL }}, { &hf_gsm_old_hlr_Number, { "hlr-Number", "gsm_old.hlr_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_old_hlr_List, { "hlr-List", "gsm_old.hlr_List", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, /* --- Module SS-DataTypes --- --- --- */ { &hf_gsm_ss_ss_Code, { "ss-Code", "gsm_ss.ss_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_ss_Status, { "ss-Status", "gsm_ss.ss_Status", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_ss_Notification, { "ss-Notification", "gsm_ss.ss_Notification", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_callIsWaiting_Indicator, { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_callOnHold_Indicator, { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator", FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_mpty_Indicator, { "mpty-Indicator", "gsm_ss.mpty_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_cug_Index, { "cug-Index", "gsm_ss.cug_Index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_clirSuppressionRejected, { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_ect_Indicator, { "ect-Indicator", "gsm_ss.ect_Indicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_nameIndicator, { "nameIndicator", "gsm_ss.nameIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_ccbs_Feature, { "ccbs-Feature", "gsm_ss.ccbs_Feature_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_alertingPattern, { "alertingPattern", "gsm_ss.alertingPattern", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_multicall_Indicator, { "multicall-Indicator", "gsm_ss.multicall_Indicator", FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_chargingInformation, { "chargingInformation", "gsm_ss.chargingInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e1, { "e1", "gsm_ss.e1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e2, { "e2", "gsm_ss.e2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e3, { "e3", "gsm_ss.e3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e4, { "e4", "gsm_ss.e4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e5, { "e5", "gsm_ss.e5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e6, { "e6", "gsm_ss.e6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_e7, { "e7", "gsm_ss.e7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_suppressPrefCUG, { "suppressPrefCUG", "gsm_ss.suppressPrefCUG_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_suppressOA, { "suppressOA", "gsm_ss.suppressOA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_ect_CallState, { "ect-CallState", "gsm_ss.ect_CallState", FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_rdn, { "rdn", "gsm_ss.rdn", FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_callingName, { "callingName", "gsm_ss.callingName", FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0, "Name", HFILL }}, { &hf_gsm_ss_namePresentationAllowed, { "namePresentationAllowed", "gsm_ss.namePresentationAllowed_element", FT_NONE, BASE_NONE, NULL, 0, "NameSet", HFILL }}, { &hf_gsm_ss_presentationRestricted, { "presentationRestricted", "gsm_ss.presentationRestricted_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_nameUnavailable, { "nameUnavailable", "gsm_ss.nameUnavailable_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_namePresentationRestricted, { "namePresentationRestricted", "gsm_ss.namePresentationRestricted_element", FT_NONE, BASE_NONE, NULL, 0, "NameSet", HFILL }}, { &hf_gsm_ss_dataCodingScheme, { "dataCodingScheme", "gsm_ss.dataCodingScheme", FT_BYTES, BASE_NONE, NULL, 0, "USSD_DataCodingScheme", HFILL }}, { &hf_gsm_ss_lengthInCharacters, { "lengthInCharacters", "gsm_ss.lengthInCharacters", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, { &hf_gsm_ss_nameString, { "nameString", "gsm_ss.nameString", FT_BYTES, BASE_NONE, NULL, 0, "USSD_String", HFILL }}, { &hf_gsm_ss_presentationAllowedAddress, { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress_element", FT_NONE, BASE_NONE, NULL, 0, "RemotePartyNumber", HFILL }}, { &hf_gsm_ss_numberNotAvailableDueToInterworking, { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_presentationRestrictedAddress, { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress_element", FT_NONE, BASE_NONE, NULL, 0, "RemotePartyNumber", HFILL }}, { &hf_gsm_ss_partyNumber, { "partyNumber", "gsm_ss.partyNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_ss_partyNumberSubaddress, { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_SubaddressString", HFILL }}, { &hf_gsm_ss_deflectedToNumber, { "deflectedToNumber", "gsm_ss.deflectedToNumber", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_gsm_ss_deflectedToSubaddress, { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_SubaddressString", HFILL }}, { &hf_gsm_ss_uUS_Service, { "uUS-Service", "gsm_ss.uUS_Service", FT_UINT32, BASE_DEC, VALS(gsm_ss_UUS_Service_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_uUS_Required, { "uUS-Required", "gsm_ss.uUS_Required", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_gsm_ss_notificationType, { "notificationType", "gsm_ss.notificationType", FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0, "NotificationToMSUser", HFILL }}, { &hf_gsm_ss_locationType, { "locationType", "gsm_ss.locationType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_lcsClientExternalID, { "lcsClientExternalID", "gsm_ss.lcsClientExternalID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_lcsClientName, { "lcsClientName", "gsm_ss.lcsClientName_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_lcsRequestorID, { "lcsRequestorID", "gsm_ss.lcsRequestorID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_lcsCodeword, { "lcsCodeword", "gsm_ss.lcsCodeword_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_lcsServiceTypeID, { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID", FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_deferredLocationExt, { "deferredLocationExt", "gsm_ss.deferredLocationExt", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_verificationResponse, { "verificationResponse", "gsm_ss.verificationResponse", FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_molr_Type, { "molr-Type", "gsm_ss.molr_Type", FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_locationMethod, { "locationMethod", "gsm_ss.locationMethod", FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_lcs_QoS, { "lcs-QoS", "gsm_ss.lcs_QoS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_mlc_Number, { "mlc-Number", "gsm_ss.mlc_Number", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_ss_gpsAssistanceData, { "gpsAssistanceData", "gsm_ss.gpsAssistanceData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_supportedGADShapes, { "supportedGADShapes", "gsm_ss.supportedGADShapes", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_ageOfLocationInfo, { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo", FT_UINT32, BASE_DEC, NULL, 0, "AgeOfLocationInformation", HFILL }}, { &hf_gsm_ss_pseudonymIndicator, { "pseudonymIndicator", "gsm_ss.pseudonymIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_h_gmlc_address, { "h-gmlc-address", "gsm_ss.h_gmlc_address", FT_BYTES, BASE_NONE, NULL, 0, "GSN_Address", HFILL }}, { &hf_gsm_ss_locationEstimate, { "locationEstimate", "gsm_ss.locationEstimate", FT_BYTES, BASE_NONE, NULL, 0, "Ext_GeographicalInformation", HFILL }}, { &hf_gsm_ss_velocityEstimate, { "velocityEstimate", "gsm_ss.velocityEstimate", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_referenceNumber, { "referenceNumber", "gsm_ss.referenceNumber", FT_BYTES, BASE_NONE, NULL, 0, "LCS_ReferenceNumber", HFILL }}, { &hf_gsm_ss_periodicLDRInfo, { "periodicLDRInfo", "gsm_ss.periodicLDRInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_locationUpdateRequest, { "locationUpdateRequest", "gsm_ss.locationUpdateRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_sequenceNumber, { "sequenceNumber", "gsm_ss.sequenceNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_terminationCause, { "terminationCause", "gsm_ss.terminationCause", FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_mo_lrShortCircuit, { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_ganssAssistanceData, { "ganssAssistanceData", "gsm_ss.ganssAssistanceData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_multiplePositioningProtocolPDUs, { "multiplePositioningProtocolPDUs", "gsm_ss.multiplePositioningProtocolPDUs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_locationInfo, { "locationInfo", "gsm_ss.locationInfo", FT_BYTES, BASE_NONE, NULL, 0, "Location_Info", HFILL }}, { &hf_gsm_ss_MultiplePositioningProtocolPDUs_item, { "PositioningProtocolPDU", "gsm_ss.PositioningProtocolPDU", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_decipheringKeys, { "decipheringKeys", "gsm_ss.decipheringKeys", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_add_LocationEstimate, { "add-LocationEstimate", "gsm_ss.add_LocationEstimate", FT_BYTES, BASE_NONE, NULL, 0, "Add_GeographicalInformation", HFILL }}, { &hf_gsm_ss_reportingPLMNList, { "reportingPLMNList", "gsm_ss.reportingPLMNList_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_deferredLocationEventType, { "deferredLocationEventType", "gsm_ss.deferredLocationEventType", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_areaEventInfo, { "areaEventInfo", "gsm_ss.areaEventInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_qoS, { "qoS", "gsm_ss.qoS_element", FT_NONE, BASE_NONE, NULL, 0, "LCS_QoS", HFILL }}, { &hf_gsm_ss_periodicLocation, { "periodicLocation", "gsm_ss.periodicLocation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_areaEventReporting, { "areaEventReporting", "gsm_ss.areaEventReporting_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_motionEventReporting, { "motionEventReporting", "gsm_ss.motionEventReporting_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_areaList, { "areaList", "gsm_ss.areaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_occurrenceInfo, { "occurrenceInfo", "gsm_ss.occurrenceInfo", FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_intervalTime, { "intervalTime", "gsm_ss.intervalTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_maximumInterval, { "maximumInterval", "gsm_ss.maximumInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_samplingInterval, { "samplingInterval", "gsm_ss.samplingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_duration, { "duration", "gsm_ss.duration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_AreaList_item, { "Area", "gsm_ss.Area_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_areaType, { "areaType", "gsm_ss.areaType", FT_UINT32, BASE_DEC, VALS(gsm_ss_AreaType_vals), 0, NULL, HFILL }}, { &hf_gsm_ss_areaIdentification, { "areaIdentification", "gsm_ss.areaIdentification", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_linearDistance, { "linearDistance", "gsm_ss.linearDistance", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_ss_DeferredLocationExt_motionEvent, { "motionEvent", "gsm.ss.DeferredLocationExt.motionEvent", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, { &hf_gsm_ss_Location_Info_locationEstimate, { "locationEstimate", "gsm.ss.Location.Info.locationEstimate", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, /* --- Module EricssonMAP --- --- --- */ { &hf_gsm_map_ericsson_imei, { "imei", "gsm_map.ericsson.imei", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_requestedEquipmentInfo, { "requestedEquipmentInfo", "gsm_map.ericsson.requestedEquipmentInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_imsi, { "imsi", "gsm_map.ericsson.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_locationInformation, { "locationInformation", "gsm_map.ericsson.locationInformation", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_extensionContainer, { "extensionContainer", "gsm_map.ericsson.extensionContainer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_isdArgType, { "isdArgType", "gsm_map.ericsson.isdArgType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_isdResType, { "isdResType", "gsm_map.ericsson.isdResType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_dsdArgType, { "dsdArgType", "gsm_map.ericsson.dsdArgType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_sriArgType, { "sriArgType", "gsm_map.ericsson.sriArgType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_sriResType, { "sriResType", "gsm_map.ericsson.sriResType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_prnArgType, { "prnArgType", "gsm_map.ericsson.prnArgType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_ulArgType, { "ulArgType", "gsm_map.ericsson.ulArgType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_rdArgType, { "rdArgType", "gsm_map.ericsson.rdArgType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_saiArgType, { "saiArgType", "gsm_map.ericsson.saiArgType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_saiResType, { "saiResType", "gsm_map.ericsson.saiResType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_atiArgType, { "atiArgType", "gsm_map.ericsson.atiArgType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_atiResType, { "atiResType", "gsm_map.ericsson.atiResType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_extAtiArgType, { "extAtiArgType", "gsm_map.ericsson.extAtiArgType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_IsdArgType_item, { "IsdArgData", "gsm_map.ericsson.IsdArgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_privateFeatureCode, { "privateFeatureCode", "gsm_map.ericsson.privateFeatureCode", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_privateFeatureData, { "privateFeatureData", "gsm_map.ericsson.privateFeatureData", FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_PrivateFeatureData_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_subscriptionTypeInfo, { "subscriptionTypeInfo", "gsm_map.ericsson.subscriptionTypeInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_oickInfo, { "oickInfo", "gsm_map.ericsson.oickInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_ss_Status, { "ss-Status", "gsm_map.ericsson.ss_Status", FT_BYTES, BASE_NONE, NULL, 0, "Ext_SS_Status", HFILL }}, { &hf_gsm_map_ericsson_inCategoryKey, { "inCategoryKey", "gsm_map.ericsson.inCategoryKey", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_subscriptionType, { "subscriptionType", "gsm_map.ericsson.subscriptionType", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_IsdResType_item, { "IsdResData", "gsm_map.ericsson.IsdResData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_supportedPrivateFeature, { "supportedPrivateFeature", "gsm_map.ericsson.supportedPrivateFeature", FT_BYTES, BASE_NONE, NULL, 0, "PrivateFeatureCode", HFILL }}, { &hf_gsm_map_ericsson_DsdArgType_item, { "DsdArgData", "gsm_map.ericsson.DsdArgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_privateFeatureWithdraw, { "privateFeatureWithdraw", "gsm_map.ericsson.privateFeatureWithdraw", FT_BYTES, BASE_NONE, NULL, 0, "PrivateFeatureCode", HFILL }}, { &hf_gsm_map_ericsson_SRIArgType_item, { "SriArgData", "gsm_map.ericsson.SriArgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_extraNetworkInfo, { "extraNetworkInfo", "gsm_map.ericsson.extraNetworkInfo_element", FT_NONE, BASE_NONE, NULL, 0, "ExtraSignalInfo", HFILL }}, { &hf_gsm_map_ericsson_SRIResType_item, { "SriResData", "gsm_map.ericsson.SriResData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_PrnArgType_item, { "PrnArgData", "gsm_map.ericsson.PrnArgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_UlArgType_item, { "UlArgData", "gsm_map.ericsson.UlArgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_privateFeatureUlArgData, { "privateFeatureUlArgData", "gsm_map.ericsson.privateFeatureUlArgData", FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_PrivateFeatureUlArgData_vals), 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_adc, { "adc", "gsm_map.ericsson.adc", FT_BYTES, BASE_NONE, NULL, 0, "IMEI", HFILL }}, { &hf_gsm_map_ericsson_protocolId, { "protocolId", "gsm_map.ericsson.protocolId", FT_UINT32, BASE_DEC, VALS(gsm_map_ericsson_ExtraProtocolId_vals), 0, "ExtraProtocolId", HFILL }}, { &hf_gsm_map_ericsson_signalInfo, { "signalInfo", "gsm_map.ericsson.signalInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_msisdn, { "msisdn", "gsm_map.ericsson.msisdn_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_noAuthenVectorsRequested, { "noAuthenVectorsRequested", "gsm_map.ericsson.noAuthenVectorsRequested_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_msIsdn, { "msIsdn", "gsm_map.ericsson.msIsdn", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_gsm_map_ericsson_requestedInfoType, { "requestedInfoType", "gsm_map.ericsson.requestedInfoType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_toBeDecided, { "toBeDecided", "gsm_map.ericsson.toBeDecided_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_toBeDecidedOne, { "toBeDecidedOne", "gsm_map.ericsson.toBeDecidedOne_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_sgsnNumber, { "sgsnNumber", "gsm_map.ericsson.sgsnNumber_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gsm_map_ericsson_ExtAtiArgType_item, { "AtiArgData", "gsm_map.ericsson.AtiArgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, /* --- Module NokiaMAP-Extensions --- --- --- */ { &hf_NokiaMAP_Extensions_alsLineIndicator, { "alsLineIndicator", "NokiaMAP-Extensions.alsLineIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_routingCategory, { "routingCategory", "NokiaMAP-Extensions.routingCategory", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_serviceList, { "serviceList", "NokiaMAP-Extensions.serviceList", FT_BYTES, BASE_NONE, NULL, 0, "MAPserviceList", HFILL }}, { &hf_NokiaMAP_Extensions_serv_info_list, { "serv-info-list", "NokiaMAP-Extensions.serv_info_list", FT_UINT32, BASE_DEC, NULL, 0, "ServiceListWithInfo", HFILL }}, { &hf_NokiaMAP_Extensions_extRoutingCategory, { "extRoutingCategory", "NokiaMAP-Extensions.extRoutingCategory", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_ownMSISDN, { "ownMSISDN", "NokiaMAP-Extensions.ownMSISDN", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_mwd_Set, { "mwd-Set", "NokiaMAP-Extensions.mwd_Set_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_ChargingAreaList_item, { "ChargingArea", "NokiaMAP-Extensions.ChargingArea", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_chargingAreaList, { "chargingAreaList", "NokiaMAP-Extensions.chargingAreaList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_inTriggerKey, { "inTriggerKey", "NokiaMAP-Extensions.inTriggerKey", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_pnpIndex, { "pnpIndex", "NokiaMAP-Extensions.pnpIndex", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_callRedirectionIndex, { "callRedirectionIndex", "NokiaMAP-Extensions.callRedirectionIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_regionalChargingData, { "regionalChargingData", "NokiaMAP-Extensions.regionalChargingData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_callForwardingOverride, { "callForwardingOverride", "NokiaMAP-Extensions.callForwardingOverride_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_in_Capability, { "in-Capability", "NokiaMAP-Extensions.in_Capability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_callingCategory, { "callingCategory", "NokiaMAP-Extensions.callingCategory", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_internalServiceIndicator, { "internalServiceIndicator", "NokiaMAP-Extensions.internalServiceIndicator", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_srbtSupportIndicator, { "srbtSupportIndicator", "NokiaMAP-Extensions.srbtSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_gmscSupportIndicator, { "gmscSupportIndicator", "NokiaMAP-Extensions.gmscSupportIndicator_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_protocolId, { "protocolId", "NokiaMAP-Extensions.protocolId", FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_ExtraProtocolId_vals), 0, "ExtraProtocolId", HFILL }}, { &hf_NokiaMAP_Extensions_signalInfo, { "signalInfo", "NokiaMAP-Extensions.signalInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_cug_Interlock, { "cug-Interlock", "NokiaMAP-Extensions.cug_Interlock", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_cug_OutgoingAccess, { "cug-OutgoingAccess", "NokiaMAP-Extensions.cug_OutgoingAccess", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_NokiaMAP_Extensions_cug_CallInfo, { "cug-CallInfo", "NokiaMAP-Extensions.cug_CallInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_vlrNumber, { "vlrNumber", "NokiaMAP-Extensions.vlrNumber", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_activeSs, { "activeSs", "NokiaMAP-Extensions.activeSs", FT_BYTES, BASE_NONE, NULL, 0, "ActiveSS_List", HFILL }}, { &hf_NokiaMAP_Extensions_traceReference, { "traceReference", "NokiaMAP-Extensions.traceReference_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_traceType, { "traceType", "NokiaMAP-Extensions.traceType_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_omc_Id, { "omc-Id", "NokiaMAP-Extensions.omc_Id", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_hotBilling, { "hotBilling", "NokiaMAP-Extensions.hotBilling", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_NokiaMAP_Extensions_cfoIsDone, { "cfoIsDone", "NokiaMAP-Extensions.cfoIsDone", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_NokiaMAP_Extensions_cfInCug, { "cfInCug", "NokiaMAP-Extensions.cfInCug", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_NokiaMAP_Extensions_basicService, { "basicService", "NokiaMAP-Extensions.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, "BasicServiceCode", HFILL }}, { &hf_NokiaMAP_Extensions_category, { "category", "NokiaMAP-Extensions.category_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_nokia_CUG, { "nokia-CUG", "NokiaMAP-Extensions.nokia_CUG_element", FT_NONE, BASE_NONE, NULL, 0, "Nokia_CUG_Data", HFILL }}, { &hf_NokiaMAP_Extensions_noBarrings, { "noBarrings", "NokiaMAP-Extensions.noBarrings_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_odb_Data, { "odb-Data", "NokiaMAP-Extensions.odb_Data_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_fraudData, { "fraudData", "NokiaMAP-Extensions.fraudData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_leaId, { "leaId", "NokiaMAP-Extensions.leaId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_olcmInfoTable, { "olcmInfoTable", "NokiaMAP-Extensions.olcmInfoTable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_commonMSISDN, { "commonMSISDN", "NokiaMAP-Extensions.commonMSISDN", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_rgData, { "rgData", "NokiaMAP-Extensions.rgData_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_olcmTraceReference, { "olcmTraceReference", "NokiaMAP-Extensions.olcmTraceReference", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_noAnswerTimer, { "noAnswerTimer", "NokiaMAP-Extensions.noAnswerTimer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_memberList, { "memberList", "NokiaMAP-Extensions.memberList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_alertingMethod, { "alertingMethod", "NokiaMAP-Extensions.alertingMethod", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_userType, { "userType", "NokiaMAP-Extensions.userType", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_divertedToNbr, { "divertedToNbr", "NokiaMAP-Extensions.divertedToNbr", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_memberOfSuppression, { "memberOfSuppression", "NokiaMAP-Extensions.memberOfSuppression_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_ringbacktone, { "ringbacktone", "NokiaMAP-Extensions.ringbacktone_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_MemberList_item, { "ISDN-AddressString", "NokiaMAP-Extensions.ISDN_AddressString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_termination, { "termination", "NokiaMAP-Extensions.termination", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_1", HFILL }}, { &hf_NokiaMAP_Extensions_OlcmInfoTable_item, { "OlcmInfo", "NokiaMAP-Extensions.OlcmInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_olcmActive, { "olcmActive", "NokiaMAP-Extensions.olcmActive_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_moc, { "moc", "NokiaMAP-Extensions.moc_element", FT_NONE, BASE_NONE, NULL, 0, "FraudData", HFILL }}, { &hf_NokiaMAP_Extensions_cf, { "cf", "NokiaMAP-Extensions.cf_element", FT_NONE, BASE_NONE, NULL, 0, "FraudData", HFILL }}, { &hf_NokiaMAP_Extensions_ct, { "ct", "NokiaMAP-Extensions.ct_element", FT_NONE, BASE_NONE, NULL, 0, "FraudData", HFILL }}, { &hf_NokiaMAP_Extensions_time, { "time", "NokiaMAP-Extensions.time", FT_UINT32, BASE_DEC, NULL, 0, "TimeLimit", HFILL }}, { &hf_NokiaMAP_Extensions_timeAction, { "timeAction", "NokiaMAP-Extensions.timeAction", FT_BYTES, BASE_NONE, NULL, 0, "ActionType", HFILL }}, { &hf_NokiaMAP_Extensions_maxCount, { "maxCount", "NokiaMAP-Extensions.maxCount", FT_UINT32, BASE_DEC, NULL, 0, "FraudMaxCount", HFILL }}, { &hf_NokiaMAP_Extensions_maxCountAction, { "maxCountAction", "NokiaMAP-Extensions.maxCountAction", FT_BYTES, BASE_NONE, NULL, 0, "ActionType", HFILL }}, { &hf_NokiaMAP_Extensions_serviceCode, { "serviceCode", "NokiaMAP-Extensions.serviceCode", FT_BYTES, BASE_NONE, NULL, 0, "MAPserviceCode", HFILL }}, { &hf_NokiaMAP_Extensions_versionInfo, { "versionInfo", "NokiaMAP-Extensions.versionInfo", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_in_key, { "in-key", "NokiaMAP-Extensions.in_key", FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_INKey_vals), 0, "INKey", HFILL }}, { &hf_NokiaMAP_Extensions_fraudInfo, { "fraudInfo", "NokiaMAP-Extensions.fraudInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_ServiceListWithInfo_item, { "ServiceWithInfo", "NokiaMAP-Extensions.ServiceWithInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_mobile_IN_key, { "mobile-IN-key", "NokiaMAP-Extensions.mobile_IN_key_element", FT_NONE, BASE_NONE, NULL, 0, "MKey", HFILL }}, { &hf_NokiaMAP_Extensions_sms_IN_key, { "sms-IN-key", "NokiaMAP-Extensions.sms_IN_key_element", FT_NONE, BASE_NONE, NULL, 0, "SMSKey", HFILL }}, { &hf_NokiaMAP_Extensions_mKeyVer, { "mKeyVer", "NokiaMAP-Extensions.mKeyVer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_mmScfAddress, { "mmScfAddress", "NokiaMAP-Extensions.mmScfAddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_mmTdpName, { "mmTdpName", "NokiaMAP-Extensions.mmTdpName", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_serviceKey, { "serviceKey", "NokiaMAP-Extensions.serviceKey", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_locupType, { "locupType", "NokiaMAP-Extensions.locupType", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_mmSCPAddress, { "mmSCPAddress", "NokiaMAP-Extensions.mmSCPAddress", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_smsTdpName, { "smsTdpName", "NokiaMAP-Extensions.smsTdpName", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_mmsFlag, { "mmsFlag", "NokiaMAP-Extensions.mmsFlag_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_map_Opt, { "map-Opt", "NokiaMAP-Extensions.map_Opt", FT_BYTES, BASE_NONE, NULL, 0, "MapOptFields", HFILL }}, { &hf_NokiaMAP_Extensions_codec_List, { "codec-List", "NokiaMAP-Extensions.codec_List", FT_UINT32, BASE_DEC, NULL, 0, "CodecListExt", HFILL }}, { &hf_NokiaMAP_Extensions_selected_Codec, { "selected-Codec", "NokiaMAP-Extensions.selected_Codec_element", FT_NONE, BASE_NONE, NULL, 0, "SelectedCodec", HFILL }}, { &hf_NokiaMAP_Extensions_uma_access, { "uma-access", "NokiaMAP-Extensions.uma_access_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_uma_ip_address, { "uma-ip-address", "NokiaMAP-Extensions.uma_ip_address", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_5_17", HFILL }}, { &hf_NokiaMAP_Extensions_uma_ip_port_nb, { "uma-ip-port-nb", "NokiaMAP-Extensions.uma_ip_port_nb", FT_UINT32, BASE_DEC, NULL, 0, "IPPortNb", HFILL }}, { &hf_NokiaMAP_Extensions_CodecListExt_item, { "CodecExt", "NokiaMAP-Extensions.CodecExt", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_codec, { "codec", "NokiaMAP-Extensions.codec", FT_BYTES, BASE_NONE, NULL, 0, "CodecExt", HFILL }}, { &hf_NokiaMAP_Extensions_modes, { "modes", "NokiaMAP-Extensions.modes", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_imsi, { "imsi", "NokiaMAP-Extensions.imsi", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_cfuSMSCounter, { "cfuSMSCounter", "NokiaMAP-Extensions.cfuSMSCounter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_cfusmcfo, { "cfusmcfo", "NokiaMAP-Extensions.cfusmcfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_memberInterrogate, { "memberInterrogate", "NokiaMAP-Extensions.memberInterrogate_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_locationAreaCode, { "locationAreaCode", "NokiaMAP-Extensions.locationAreaCode", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_cellId, { "cellId", "NokiaMAP-Extensions.cellId", FT_BYTES, BASE_NONE, NULL, 0, "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }}, { &hf_NokiaMAP_Extensions_lai, { "lai", "NokiaMAP-Extensions.lai", FT_BYTES, BASE_NONE, NULL, 0, "LAIFixedLength", HFILL }}, { &hf_NokiaMAP_Extensions_sendImmResp, { "sendImmResp", "NokiaMAP-Extensions.sendImmResp_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_rejectCause, { "rejectCause", "NokiaMAP-Extensions.rejectCause", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_1", HFILL }}, { &hf_NokiaMAP_Extensions_senderMSISDN, { "senderMSISDN", "NokiaMAP-Extensions.senderMSISDN", FT_BYTES, BASE_NONE, NULL, 0, "ISDN_AddressString", HFILL }}, { &hf_NokiaMAP_Extensions_access, { "access", "NokiaMAP-Extensions.access", FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_Access_vals), 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_version, { "version", "NokiaMAP-Extensions.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_AccessSubscriptionListExt_item, { "Access", "NokiaMAP-Extensions.Access", FT_UINT32, BASE_DEC, VALS(NokiaMAP_Extensions_Access_vals), 0, NULL, HFILL }}, { &hf_NokiaMAP_Extensions_AllowedServiceData_amr_wb_allowed, { "amr-wb-allowed", "NokiaMAP.Extensions.AllowedServiceData.amr.wb.allowed", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, }; /* List of subtrees */ static gint *ett[] = { &ett_gsm_map, &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, &ett_gsm_map_MSNetworkCapability, &ett_gsm_map_MSRadioAccessCapability, &ett_gsm_map_externalsignalinfo, &ett_gsm_map_cbs_data_coding, &ett_gsm_map_GlobalCellId, &ett_gsm_map_GeographicalInformation, &ett_gsm_map_apn_str, &ett_gsm_map_LocationNumber, &ett_gsm_map_ericsson_locationInformation, &ett_gsm_map_extension_data, &ett_gsm_map_tbcd_digits, &ett_gsm_map_ussd_string, &ett_gsm_map_ext2_qos_subscribed, &ett_gsm_map_ext3_qos_subscribed, &ett_gsm_map_e_utranCellGlobalIdentity, &ett_gsm_map_TA_id, &ett_gsm_map_GeodeticInformation, /* --- Module MAP-ExtensionDataTypes --- --- --- */ &ett_gsm_map_ExtensionContainer, &ett_gsm_map_SLR_ArgExtensionContainer, &ett_gsm_map_PrivateExtensionList, &ett_gsm_map_PrivateExtension, &ett_gsm_map_PCS_Extensions, &ett_gsm_map_SLR_Arg_PCS_Extensions, /* --- Module MAP-CommonDataTypes --- --- --- */ &ett_gsm_map_ExternalSignalInfo, &ett_gsm_map_Ext_ExternalSignalInfo, &ett_gsm_map_AccessNetworkSignalInfo, &ett_gsm_map_Identity, &ett_gsm_map_IMSI_WithLMSI, &ett_gsm_map_SubscriberId, &ett_gsm_map_HLR_List, &ett_gsm_map_NAEA_PreferredCI, &ett_gsm_map_SubscriberIdentity, &ett_gsm_map_LCSClientExternalID, &ett_gsm_map_NetworkNodeDiameterAddress, &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI, &ett_gsm_map_BasicServiceCode, &ett_gsm_map_Ext_BasicServiceCode, &ett_gsm_map_EMLPP_Info, &ett_gsm_map_MC_SS_Info, /* --- Module MAP-SS-DataTypes --- --- --- */ &ett_gsm_map_ss_RegisterSS_Arg, &ett_gsm_map_ss_SS_Info, &ett_gsm_map_ss_ForwardingInfo, &ett_gsm_map_ss_ForwardingFeatureList, &ett_gsm_map_ss_ForwardingFeature, &ett_gsm_map_ss_CallBarringInfo, &ett_gsm_map_ss_CallBarringFeatureList, &ett_gsm_map_ss_CallBarringFeature, &ett_gsm_map_ss_SS_Data, &ett_gsm_map_ss_SS_SubscriptionOption, &ett_gsm_map_ss_SS_ForBS_Code, &ett_gsm_map_ss_GenericServiceInfo, &ett_gsm_map_ss_CCBS_FeatureList, &ett_gsm_map_ss_CCBS_Feature, &ett_gsm_map_ss_InterrogateSS_Res, &ett_gsm_map_ss_USSD_Arg, &ett_gsm_map_ss_USSD_Res, &ett_gsm_map_ss_SS_List, &ett_gsm_map_ss_BasicServiceGroupList, &ett_gsm_map_ss_SS_InvocationNotificationArg, &ett_gsm_map_ss_SS_InvocationNotificationRes, &ett_gsm_map_ss_SS_EventSpecification, &ett_gsm_map_ss_RegisterCC_EntryArg, &ett_gsm_map_ss_CCBS_Data, &ett_gsm_map_ss_ServiceIndicator, &ett_gsm_map_ss_RegisterCC_EntryRes, &ett_gsm_map_ss_EraseCC_EntryArg, &ett_gsm_map_ss_EraseCC_EntryRes, /* --- Module MAP-ER-DataTypes --- --- --- */ &ett_gsm_map_er_RoamingNotAllowedParam, &ett_gsm_map_er_CallBarredParam, &ett_gsm_map_er_ExtensibleCallBarredParam, &ett_gsm_map_er_CUG_RejectParam, &ett_gsm_map_er_SS_IncompatibilityCause, &ett_gsm_map_er_SM_DeliveryFailureCause, &ett_gsm_map_er_AbsentSubscriberSM_Param, &ett_gsm_map_er_SystemFailureParam, &ett_gsm_map_er_ExtensibleSystemFailureParam, &ett_gsm_map_er_DataMissingParam, &ett_gsm_map_er_UnexpectedDataParam, &ett_gsm_map_er_FacilityNotSupParam, &ett_gsm_map_er_OR_NotAllowedParam, &ett_gsm_map_er_UnknownSubscriberParam, &ett_gsm_map_er_NumberChangedParam, &ett_gsm_map_er_UnidentifiedSubParam, &ett_gsm_map_er_IllegalSubscriberParam, &ett_gsm_map_er_IllegalEquipmentParam, &ett_gsm_map_er_BearerServNotProvParam, &ett_gsm_map_er_TeleservNotProvParam, &ett_gsm_map_er_TracingBufferFullParam, &ett_gsm_map_er_NoRoamingNbParam, &ett_gsm_map_er_AbsentSubscriberParam, &ett_gsm_map_er_BusySubscriberParam, &ett_gsm_map_er_NoSubscriberReplyParam, &ett_gsm_map_er_ForwardingViolationParam, &ett_gsm_map_er_ForwardingFailedParam, &ett_gsm_map_er_ATI_NotAllowedParam, &ett_gsm_map_er_ATSI_NotAllowedParam, &ett_gsm_map_er_ATM_NotAllowedParam, &ett_gsm_map_er_IllegalSS_OperationParam, &ett_gsm_map_er_SS_NotAvailableParam, &ett_gsm_map_er_SS_SubscriptionViolationParam, &ett_gsm_map_er_InformationNotAvailableParam, &ett_gsm_map_er_SubBusyForMT_SMS_Param, &ett_gsm_map_er_MessageWaitListFullParam, &ett_gsm_map_er_ResourceLimitationParam, &ett_gsm_map_er_NoGroupCallNbParam, &ett_gsm_map_er_IncompatibleTerminalParam, &ett_gsm_map_er_ShortTermDenialParam, &ett_gsm_map_er_LongTermDenialParam, &ett_gsm_map_er_UnauthorizedRequestingNetwork_Param, &ett_gsm_map_er_UnauthorizedLCSClient_Param, &ett_gsm_map_er_PositionMethodFailure_Param, &ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param, &ett_gsm_map_er_MM_EventNotSupported_Param, &ett_gsm_map_er_TargetCellOutsideGCA_Param, &ett_gsm_map_er_OngoingGroupCallParam, /* --- Module MAP-SM-DataTypes --- --- --- */ &ett_gsm_map_sm_RoutingInfoForSM_Arg, &ett_gsm_map_sm_RoutingInfoForSM_Res, &ett_gsm_map_sm_IP_SM_GW_Guidance, &ett_gsm_map_sm_LocationInfoWithLMSI, &ett_gsm_map_sm_Additional_Number, &ett_gsm_map_sm_MO_ForwardSM_Arg, &ett_gsm_map_sm_MO_ForwardSM_Res, &ett_gsm_map_sm_MT_ForwardSM_Arg, &ett_gsm_map_sm_CorrelationID, &ett_gsm_map_sm_MT_ForwardSM_Res, &ett_gsm_map_sm_SM_RP_DA, &ett_gsm_map_sm_SM_RP_OA, &ett_gsm_map_sm_ReportSM_DeliveryStatusArg, &ett_gsm_map_sm_ReportSM_DeliveryStatusRes, &ett_gsm_map_sm_AlertServiceCentreArg, &ett_gsm_map_sm_InformServiceCentreArg, &ett_gsm_map_sm_MW_Status, &ett_gsm_map_sm_ReadyForSM_Arg, &ett_gsm_map_sm_ReadyForSM_Res, &ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg, &ett_gsm_map_sm_MT_ForwardSM_VGCS_Res, &ett_gsm_map_sm_DispatcherList, &ett_gsm_map_sm_AdditionalDispatcherList, /* --- Module MAP-OM-DataTypes --- --- --- */ &ett_gsm_map_om_ActivateTraceModeArg, &ett_gsm_map_om_MDT_Configuration, &ett_gsm_map_om_MDT_Allowed_PLMNId_List, &ett_gsm_map_om_AreaScope, &ett_gsm_map_om_CGI_List, &ett_gsm_map_om_E_UTRAN_CGI_List, &ett_gsm_map_om_RoutingAreaId_List, &ett_gsm_map_om_LocationAreaId_List, &ett_gsm_map_om_TrackingAreaId_List, &ett_gsm_map_om_TraceDepthList, &ett_gsm_map_om_TraceNE_TypeList, &ett_gsm_map_om_TraceInterfaceList, &ett_gsm_map_om_MSC_S_InterfaceList, &ett_gsm_map_om_MGW_InterfaceList, &ett_gsm_map_om_SGSN_InterfaceList, &ett_gsm_map_om_GGSN_InterfaceList, &ett_gsm_map_om_RNC_InterfaceList, &ett_gsm_map_om_BMSC_InterfaceList, &ett_gsm_map_om_MME_InterfaceList, &ett_gsm_map_om_SGW_InterfaceList, &ett_gsm_map_om_PGW_InterfaceList, &ett_gsm_map_om_ENB_InterfaceList, &ett_gsm_map_om_TraceEventList, &ett_gsm_map_om_MSC_S_EventList, &ett_gsm_map_om_MGW_EventList, &ett_gsm_map_om_SGSN_EventList, &ett_gsm_map_om_GGSN_EventList, &ett_gsm_map_om_BMSC_EventList, &ett_gsm_map_om_MME_EventList, &ett_gsm_map_om_SGW_EventList, &ett_gsm_map_om_PGW_EventList, &ett_gsm_map_om_TracePropagationList, &ett_gsm_map_om_ActivateTraceModeRes, &ett_gsm_map_om_DeactivateTraceModeArg, &ett_gsm_map_om_DeactivateTraceModeRes, /* --- Module MAP-MS-DataTypes --- --- --- */ &ett_gsm_map_ms_UpdateLocationArg, &ett_gsm_map_ms_VLR_Capability, &ett_gsm_map_ms_SupportedRAT_Types, &ett_gsm_map_ms_SuperChargerInfo, &ett_gsm_map_ms_SupportedLCS_CapabilitySets, &ett_gsm_map_ms_UpdateLocationRes, &ett_gsm_map_ms_ADD_Info, &ett_gsm_map_ms_PagingArea, &ett_gsm_map_ms_LocationArea, &ett_gsm_map_ms_CancelLocationArg_U, &ett_gsm_map_ms_CancelLocationRes, &ett_gsm_map_ms_PurgeMS_Arg_U, &ett_gsm_map_ms_PurgeMS_Res, &ett_gsm_map_ms_SendIdentificationArg, &ett_gsm_map_ms_SendIdentificationRes_U, &ett_gsm_map_ms_AuthenticationSetList, &ett_gsm_map_ms_TripletList, &ett_gsm_map_ms_QuintupletList, &ett_gsm_map_ms_AuthenticationTriplet, &ett_gsm_map_ms_AuthenticationQuintuplet, &ett_gsm_map_ms_CurrentSecurityContext, &ett_gsm_map_ms_GSM_SecurityContextData, &ett_gsm_map_ms_UMTS_SecurityContextData, &ett_gsm_map_ms_AuthenticationFailureReportArg, &ett_gsm_map_ms_AuthenticationFailureReportRes, &ett_gsm_map_ms_UpdateGprsLocationArg, &ett_gsm_map_ms_EPS_Info, &ett_gsm_map_ms_PDN_GW_Update, &ett_gsm_map_ms_ISR_Information, &ett_gsm_map_ms_SGSN_Capability, &ett_gsm_map_ms_SupportedFeatures, &ett_gsm_map_ms_Ext_SupportedFeatures, &ett_gsm_map_ms_UpdateGprsLocationRes, &ett_gsm_map_ms_EPLMN_List, &ett_gsm_map_ms_AdjacentPLMN_List, &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U, &ett_gsm_map_ms_AllowedUMTS_Algorithms, &ett_gsm_map_ms_PrepareHO_Arg_U, &ett_gsm_map_ms_LCLS_Negotiation, &ett_gsm_map_ms_LCLS_ConfigurationPreference, &ett_gsm_map_ms_BSSMAP_ServiceHandoverList, &ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo, &ett_gsm_map_ms_RadioResourceList, &ett_gsm_map_ms_RadioResource, &ett_gsm_map_ms_PrepareHO_Res_U, &ett_gsm_map_ms_SelectedUMTS_Algorithms, &ett_gsm_map_ms_ChosenRadioResourceInformation, &ett_gsm_map_ms_PrepareSubsequentHO_Arg_U, &ett_gsm_map_ms_PrepareSubsequentHO_Res_U, &ett_gsm_map_ms_ProcessAccessSignalling_Arg_U, &ett_gsm_map_ms_AoIPCodecsList, &ett_gsm_map_ms_SupportedCodecsList, &ett_gsm_map_ms_CodecList, &ett_gsm_map_ms_SendEndSignal_Arg_U, &ett_gsm_map_ms_SendEndSignal_Res, &ett_gsm_map_ms_RelocationNumberList, &ett_gsm_map_ms_RelocationNumber, &ett_gsm_map_ms_SendAuthenticationInfoArg, &ett_gsm_map_ms_Re_synchronisationInfo, &ett_gsm_map_ms_SendAuthenticationInfoRes_U, &ett_gsm_map_ms_EPS_AuthenticationSetList, &ett_gsm_map_ms_EPC_AV, &ett_gsm_map_ms_CheckIMEI_Arg, &ett_gsm_map_ms_CheckIMEI_Res, &ett_gsm_map_ms_RequestedEquipmentInfo, &ett_gsm_map_ms_UESBI_Iu, &ett_gsm_map_ms_InsertSubscriberDataArg, &ett_gsm_map_ms_EDRX_Cycle_Length_List, &ett_gsm_map_ms_EDRX_Cycle_Length, &ett_gsm_map_ms_Reset_Id_List, &ett_gsm_map_ms_IMSI_GroupIdList, &ett_gsm_map_ms_IMSI_GroupId, &ett_gsm_map_ms_CSG_SubscriptionDataList, &ett_gsm_map_ms_CSG_SubscriptionData, &ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList, &ett_gsm_map_ms_LIPA_AllowedAPNList, &ett_gsm_map_ms_EPS_SubscriptionData, &ett_gsm_map_ms_APN_ConfigurationProfile, &ett_gsm_map_ms_EPS_DataList, &ett_gsm_map_ms_APN_Configuration, &ett_gsm_map_ms_EPS_QoS_Subscribed, &ett_gsm_map_ms_AMBR, &ett_gsm_map_ms_SpecificAPNInfoList, &ett_gsm_map_ms_SpecificAPNInfo, &ett_gsm_map_ms_Allocation_Retention_Priority, &ett_gsm_map_ms_PDN_GW_Identity, &ett_gsm_map_ms_WLAN_Offloadability, &ett_gsm_map_ms_AccessRestrictionData, &ett_gsm_map_ms_Ext_AccessRestrictionData, &ett_gsm_map_ms_AdjacentAccessRestrictionDataList, &ett_gsm_map_ms_AdjacentAccessRestrictionData, &ett_gsm_map_ms_LCSInformation, &ett_gsm_map_ms_GMLC_List, &ett_gsm_map_ms_GPRSDataList, &ett_gsm_map_ms_PDP_Context, &ett_gsm_map_ms_GPRSSubscriptionData, &ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo, &ett_gsm_map_ms_GPRS_CSI, &ett_gsm_map_ms_GPRS_CamelTDPDataList, &ett_gsm_map_ms_GPRS_CamelTDPData, &ett_gsm_map_ms_LSADataList, &ett_gsm_map_ms_LSAData, &ett_gsm_map_ms_LSAInformation, &ett_gsm_map_ms_SubscriberData, &ett_gsm_map_ms_BearerServiceList, &ett_gsm_map_ms_TeleserviceList, &ett_gsm_map_ms_ODB_Data, &ett_gsm_map_ms_ODB_GeneralData, &ett_gsm_map_ms_ODB_HPLMN_Data, &ett_gsm_map_ms_Ext_SS_InfoList, &ett_gsm_map_ms_Ext_SS_Info, &ett_gsm_map_ms_Ext_ForwInfo, &ett_gsm_map_ms_Ext_ForwFeatureList, &ett_gsm_map_ms_Ext_ForwFeature, &ett_gsm_map_ms_Ext_CallBarInfo, &ett_gsm_map_ms_Ext_CallBarFeatureList, &ett_gsm_map_ms_Ext_CallBarringFeature, &ett_gsm_map_ms_CUG_Info, &ett_gsm_map_ms_CUG_SubscriptionList, &ett_gsm_map_ms_CUG_Subscription, &ett_gsm_map_ms_CUG_FeatureList, &ett_gsm_map_ms_Ext_BasicServiceGroupList, &ett_gsm_map_ms_CUG_Feature, &ett_gsm_map_ms_Ext_SS_Data, &ett_gsm_map_ms_LCS_PrivacyExceptionList, &ett_gsm_map_ms_LCS_PrivacyClass, &ett_gsm_map_ms_ExternalClientList, &ett_gsm_map_ms_PLMNClientList, &ett_gsm_map_ms_Ext_ExternalClientList, &ett_gsm_map_ms_ExternalClient, &ett_gsm_map_ms_ServiceTypeList, &ett_gsm_map_ms_ServiceType, &ett_gsm_map_ms_MOLR_List, &ett_gsm_map_ms_MOLR_Class, &ett_gsm_map_ms_ZoneCodeList, &ett_gsm_map_ms_InsertSubscriberDataRes, &ett_gsm_map_ms_DeleteSubscriberDataArg, &ett_gsm_map_ms_SpecificCSI_Withdraw, &ett_gsm_map_ms_GPRSSubscriptionDataWithdraw, &ett_gsm_map_ms_EPS_SubscriptionDataWithdraw, &ett_gsm_map_ms_ContextIdList, &ett_gsm_map_ms_LSAInformationWithdraw, &ett_gsm_map_ms_LSAIdentityList, &ett_gsm_map_ms_BasicServiceList, &ett_gsm_map_ms_DeleteSubscriberDataRes, &ett_gsm_map_ms_VlrCamelSubscriptionInfo, &ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList, &ett_gsm_map_ms_MT_smsCAMELTDP_Criteria, &ett_gsm_map_ms_TPDU_TypeCriterion, &ett_gsm_map_ms_D_CSI, &ett_gsm_map_ms_DP_AnalysedInfoCriteriaList, &ett_gsm_map_ms_DP_AnalysedInfoCriterium, &ett_gsm_map_ms_SS_CSI, &ett_gsm_map_ms_SS_CamelData, &ett_gsm_map_ms_SS_EventList, &ett_gsm_map_ms_O_CSI, &ett_gsm_map_ms_O_BcsmCamelTDPDataList, &ett_gsm_map_ms_O_BcsmCamelTDPData, &ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList, &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList, &ett_gsm_map_ms_O_BcsmCamelTDP_Criteria, &ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria, &ett_gsm_map_ms_DestinationNumberCriteria, &ett_gsm_map_ms_DestinationNumberList, &ett_gsm_map_ms_DestinationNumberLengthList, &ett_gsm_map_ms_BasicServiceCriteria, &ett_gsm_map_ms_O_CauseValueCriteria, &ett_gsm_map_ms_T_CauseValueCriteria, &ett_gsm_map_ms_SupportedCamelPhases, &ett_gsm_map_ms_OfferedCamel4CSIs, &ett_gsm_map_ms_OfferedCamel4Functionalities, &ett_gsm_map_ms_SMS_CSI, &ett_gsm_map_ms_SMS_CAMEL_TDP_DataList, &ett_gsm_map_ms_SMS_CAMEL_TDP_Data, &ett_gsm_map_ms_M_CSI, &ett_gsm_map_ms_MG_CSI, &ett_gsm_map_ms_MobilityTriggers, &ett_gsm_map_ms_T_CSI, &ett_gsm_map_ms_T_BcsmCamelTDPDataList, &ett_gsm_map_ms_T_BcsmCamelTDPData, &ett_gsm_map_ms_SendRoutingInfoForGprsArg, &ett_gsm_map_ms_SendRoutingInfoForGprsRes, &ett_gsm_map_ms_FailureReportArg, &ett_gsm_map_ms_FailureReportRes, &ett_gsm_map_ms_NoteMsPresentForGprsArg, &ett_gsm_map_ms_NoteMsPresentForGprsRes, &ett_gsm_map_ms_ResetArg, &ett_gsm_map_ms_SendingNode_Number, &ett_gsm_map_ms_RestoreDataArg, &ett_gsm_map_ms_RestoreDataRes, &ett_gsm_map_ms_VBSDataList, &ett_gsm_map_ms_VGCSDataList, &ett_gsm_map_ms_VoiceGroupCallData, &ett_gsm_map_ms_AdditionalSubscriptions, &ett_gsm_map_ms_VoiceBroadcastData, &ett_gsm_map_ms_ProvideSubscriberInfoArg, &ett_gsm_map_ms_ProvideSubscriberInfoRes, &ett_gsm_map_ms_SubscriberInfo, &ett_gsm_map_ms_MNPInfoRes, &ett_gsm_map_ms_GPRSMSClass, &ett_gsm_map_ms_RequestedInfo, &ett_gsm_map_ms_RequestedNodes, &ett_gsm_map_ms_LocationInformation, &ett_gsm_map_ms_LocationInformationEPS, &ett_gsm_map_ms_LocationInformationGPRS, &ett_gsm_map_ms_LocationInformation5GS, &ett_gsm_map_ms_UserCSGInformation, &ett_gsm_map_ms_SubscriberState, &ett_gsm_map_ms_PS_SubscriberState, &ett_gsm_map_ms_PDP_ContextInfoList, &ett_gsm_map_ms_PDP_ContextInfo, &ett_gsm_map_ms_AnyTimeInterrogationArg, &ett_gsm_map_ms_AnyTimeInterrogationRes, &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg, &ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes, &ett_gsm_map_ms_CallWaitingData, &ett_gsm_map_ms_Ext_CwFeatureList, &ett_gsm_map_ms_Ext_CwFeature, &ett_gsm_map_ms_ClipData, &ett_gsm_map_ms_ClirData, &ett_gsm_map_ms_CallHoldData, &ett_gsm_map_ms_EctData, &ett_gsm_map_ms_RequestedSubscriptionInfo, &ett_gsm_map_ms_MSISDN_BS_List, &ett_gsm_map_ms_MSISDN_BS, &ett_gsm_map_ms_CallForwardingData, &ett_gsm_map_ms_CallBarringData, &ett_gsm_map_ms_ODB_Info, &ett_gsm_map_ms_CAMEL_SubscriptionInfo, &ett_gsm_map_ms_AnyTimeModificationArg, &ett_gsm_map_ms_ModificationRequestFor_CW_Info, &ett_gsm_map_ms_ModificationRequestFor_CH_Info, &ett_gsm_map_ms_ModificationRequestFor_ECT_Info, &ett_gsm_map_ms_ModificationRequestFor_CLIR_Info, &ett_gsm_map_ms_ModificationRequestFor_CLIP_Info, &ett_gsm_map_ms_ModificationRequestFor_CSG, &ett_gsm_map_ms_RequestedServingNode, &ett_gsm_map_ms_ServingNode, &ett_gsm_map_ms_AnyTimeModificationRes, &ett_gsm_map_ms_ModificationRequestFor_CF_Info, &ett_gsm_map_ms_ModificationRequestFor_CB_Info, &ett_gsm_map_ms_ModificationRequestFor_ODB_data, &ett_gsm_map_ms_ModificationRequestFor_CSI, &ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data, &ett_gsm_map_ms_NoteSubscriberDataModifiedArg, &ett_gsm_map_ms_NoteSubscriberDataModifiedRes, &ett_gsm_map_ms_NoteMM_EventArg, &ett_gsm_map_ms_NoteMM_EventRes, &ett_gsm_map_ms_Ext_SS_InfoFor_CSE, &ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE, &ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE, &ett_gsm_map_ms_UpdateVcsgLocationArg, &ett_gsm_map_ms_UpdateVcsgLocationRes, &ett_gsm_map_ms_CancelVcsgLocationArg, &ett_gsm_map_ms_CancelVcsgLocationRes, /* --- Module MAP-CH-DataTypes --- --- --- */ &ett_gsm_map_ch_CUG_CheckInfo, &ett_gsm_map_ch_SendRoutingInfoArg, &ett_gsm_map_ch_SuppressMTSS, &ett_gsm_map_ch_SendRoutingInfoRes_U, &ett_gsm_map_ch_AllowedServices, &ett_gsm_map_ch_CCBS_Indicators, &ett_gsm_map_ch_RoutingInfo, &ett_gsm_map_ch_ForwardingData, &ett_gsm_map_ch_ProvideRoamingNumberArg, &ett_gsm_map_ch_ProvideRoamingNumberRes, &ett_gsm_map_ch_ResumeCallHandlingArg, &ett_gsm_map_ch_UU_Data, &ett_gsm_map_ch_ResumeCallHandlingRes, &ett_gsm_map_ch_CamelInfo, &ett_gsm_map_ch_ExtendedRoutingInfo, &ett_gsm_map_ch_CamelRoutingInfo, &ett_gsm_map_ch_GmscCamelSubscriptionInfo, &ett_gsm_map_ch_SetReportingStateArg, &ett_gsm_map_ch_SetReportingStateRes, &ett_gsm_map_ch_StatusReportArg, &ett_gsm_map_ch_EventReportData, &ett_gsm_map_ch_CallReportData, &ett_gsm_map_ch_StatusReportRes, &ett_gsm_map_ch_RemoteUserFreeArg, &ett_gsm_map_ch_RemoteUserFreeRes, &ett_gsm_map_ch_IST_AlertArg, &ett_gsm_map_ch_IST_AlertRes, &ett_gsm_map_ch_IST_CommandArg, &ett_gsm_map_ch_IST_CommandRes, &ett_gsm_map_ch_ReleaseResourcesArg, &ett_gsm_map_ch_ReleaseResourcesRes, /* --- Module MAP-LCS-DataTypes --- --- --- */ &ett_gsm_map_lcs_RoutingInfoForLCS_Arg, &ett_gsm_map_lcs_RoutingInfoForLCS_Res, &ett_gsm_map_lcs_LCSLocationInfo, &ett_gsm_map_lcs_ProvideSubscriberLocation_Arg, &ett_gsm_map_lcs_LocationType, &ett_gsm_map_lcs_DeferredLocationEventType, &ett_gsm_map_lcs_LCS_ClientID, &ett_gsm_map_lcs_LCSClientName, &ett_gsm_map_lcs_LCSRequestorID, &ett_gsm_map_lcs_LCS_QoS, &ett_gsm_map_lcs_ResponseTime, &ett_gsm_map_lcs_SupportedGADShapes, &ett_gsm_map_lcs_LCSCodeword, &ett_gsm_map_lcs_LCS_PrivacyCheck, &ett_gsm_map_lcs_AreaEventInfo, &ett_gsm_map_lcs_AreaDefinition, &ett_gsm_map_lcs_AreaList, &ett_gsm_map_lcs_Area, &ett_gsm_map_lcs_PeriodicLDRInfo, &ett_gsm_map_lcs_ReportingPLMNList, &ett_gsm_map_lcs_PLMNList, &ett_gsm_map_lcs_ReportingPLMN, &ett_gsm_map_lcs_ProvideSubscriberLocation_Res, &ett_gsm_map_lcs_SubscriberLocationReport_Arg, &ett_gsm_map_lcs_Deferredmt_lrData, &ett_gsm_map_lcs_ServingNodeAddress, &ett_gsm_map_lcs_SubscriberLocationReport_Res, /* --- Module MAP-GR-DataTypes --- --- --- */ &ett_gsm_map_gr_PrepareGroupCallArg, &ett_gsm_map_gr_PrepareGroupCallRes, &ett_gsm_map_gr_SendGroupCallEndSignalArg, &ett_gsm_map_gr_SendGroupCallEndSignalRes, &ett_gsm_map_gr_ForwardGroupCallSignallingArg, &ett_gsm_map_gr_ProcessGroupCallSignallingArg, &ett_gsm_map_gr_StateAttributes, &ett_gsm_map_gr_SendGroupCallInfoArg, &ett_gsm_map_gr_SendGroupCallInfoRes, /* --- Module MAP-DialogueInformation --- --- --- */ &ett_gsm_map_dialogue_MAP_DialoguePDU, &ett_gsm_map_dialogue_MAP_OpenInfo, &ett_gsm_map_dialogue_MAP_AcceptInfo, &ett_gsm_map_dialogue_MAP_CloseInfo, &ett_gsm_map_dialogue_MAP_RefuseInfo, &ett_gsm_map_dialogue_MAP_UserAbortInfo, &ett_gsm_map_dialogue_MAP_UserAbortChoice, &ett_gsm_map_dialogue_MAP_ProviderAbortInfo, /* --- Module MAP-LocationServiceOperations --- --- --- */ /* --- Module MAP-Group-Call-Operations --- --- --- */ /* --- Module MAP-ShortMessageServiceOperations --- --- --- */ /* --- Module MAP-SupplementaryServiceOperations --- --- --- */ /* --- Module MAP-CallHandlingOperations --- --- --- */ /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ /* --- Module MAP-MobileServiceOperations --- --- --- */ /* --- Module MAP-Errors --- --- --- */ /* --- Module MAP-Protocol --- --- --- */ /* --- Module DummyMAP --- --- --- */ &ett_gsm_old_Component, &ett_gsm_old_Invoke, &ett_gsm_old_ReturnResult, &ett_gsm_old_T_resultretres, &ett_gsm_old_ReturnError, &ett_gsm_old_Reject, &ett_gsm_old_T_invokeIDRej, &ett_gsm_old_T_problem, &ett_gsm_old_MAP_OPERATION, &ett_gsm_old_MAP_ERROR, &ett_gsm_old_Bss_APDU, &ett_gsm_old_ProvideSIWFSNumberArg, &ett_gsm_old_ProvideSIWFSNumberRes, &ett_gsm_old_PurgeMSArgV2, &ett_gsm_old_PrepareHO_ArgOld, &ett_gsm_old_PrepareHO_ResOld, &ett_gsm_old_SendAuthenticationInfoResOld, &ett_gsm_old_SendAuthenticationInfoResOld_item, &ett_gsm_old_SendIdentificationResV2, &ett_gsm_old_TripletListold, &ett_gsm_old_AuthenticationTriplet_v2, &ett_gsm_old_SIWFSSignallingModifyArg, &ett_gsm_old_SIWFSSignallingModifyRes, &ett_gsm_old_SecureTransportArg, &ett_gsm_old_SecureTransportErrorParam, &ett_gsm_old_SecureTransportRes, &ett_gsm_old_SecurityHeader, &ett_gsm_old_OriginalComponentIdentifier, &ett_gsm_old_OperationCode, &ett_gsm_old_ErrorCode, &ett_gsm_old_PlmnContainer_U, &ett_gsm_old_T_operatorSS_Code, &ett_gsm_old_ForwardSM_Arg, &ett_gsm_old_SM_RP_DAold, &ett_gsm_old_SM_RP_OAold, &ett_gsm_old_SendRoutingInfoArgV2, &ett_gsm_old_SendRoutingInfoResV2, &ett_gsm_old_BeginSubscriberActivityArg, &ett_gsm_old_RoutingInfoForSM_ArgV1, &ett_gsm_old_RoutingInfoForSM_ResV2, &ett_gsm_old_LocationInfoWithLMSIv2, &ett_gsm_old_LocationInfo, &ett_gsm_old_SendParametersArg, &ett_gsm_old_RequestParameterList, &ett_gsm_old_SentParameter, &ett_gsm_old_AuthenticationSetListOld, &ett_gsm_old_SentParameterList, &ett_gsm_old_ResetArgV1, /* --- Module SS-DataTypes --- --- --- */ &ett_gsm_ss_NotifySS_Arg, &ett_gsm_ss_ForwardChargeAdviceArg, &ett_gsm_ss_ChargingInformation, &ett_gsm_ss_ForwardCUG_InfoArg, &ett_gsm_ss_ECT_Indicator, &ett_gsm_ss_NameIndicator, &ett_gsm_ss_Name, &ett_gsm_ss_NameSet, &ett_gsm_ss_RDN, &ett_gsm_ss_RemotePartyNumber, &ett_gsm_ss_AccessRegisterCCEntryArg, &ett_gsm_ss_CallDeflectionArg, &ett_gsm_ss_UserUserServiceArg, &ett_gsm_ss_LocationNotificationArg, &ett_gsm_ss_DeferredLocationExt, &ett_gsm_ss_LocationNotificationRes, &ett_gsm_ss_LCS_MOLRArg, &ett_gsm_ss_MultiplePositioningProtocolPDUs, &ett_gsm_ss_LCS_MOLRRes, &ett_gsm_ss_LCS_AreaEventRequestArg, &ett_gsm_ss_LCS_AreaEventReportArg, &ett_gsm_ss_LCS_AreaEventCancellationArg, &ett_gsm_ss_LCS_PeriodicLocationRequestArg, &ett_gsm_ss_LCS_PeriodicLocationRequestRes, &ett_gsm_ss_LCS_LocationUpdateArg, &ett_gsm_ss_LCS_LocationUpdateRes, &ett_gsm_ss_LCS_PeriodicLocationCancellationArg, &ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg, &ett_gsm_ss_PeriodicLocation, &ett_gsm_ss_AreaEventReporting, &ett_gsm_ss_AreaList, &ett_gsm_ss_Area, &ett_gsm_ss_Location_Info, &ett_gsm_ss_MotionEventReporting, &ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes, /* --- Module SS-Operations --- --- --- */ /* --- Module EricssonMAP --- --- --- */ &ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg, &ett_gsm_map_ericsson_ExtensionType, &ett_gsm_map_ericsson_IsdArgType, &ett_gsm_map_ericsson_IsdArgData, &ett_gsm_map_ericsson_PrivateFeatureData, &ett_gsm_map_ericsson_OickInfo, &ett_gsm_map_ericsson_SubscriptionTypeInfo, &ett_gsm_map_ericsson_IsdResType, &ett_gsm_map_ericsson_IsdResData, &ett_gsm_map_ericsson_DsdArgType, &ett_gsm_map_ericsson_DsdArgData, &ett_gsm_map_ericsson_SRIArgType, &ett_gsm_map_ericsson_SriArgData, &ett_gsm_map_ericsson_SRIResType, &ett_gsm_map_ericsson_SriResData, &ett_gsm_map_ericsson_PrnArgType, &ett_gsm_map_ericsson_PrnArgData, &ett_gsm_map_ericsson_UlArgType, &ett_gsm_map_ericsson_UlArgData, &ett_gsm_map_ericsson_PrivateFeatureUlArgData, &ett_gsm_map_ericsson_ExtraSignalInfo_U, &ett_gsm_map_ericsson_SaiArgType, &ett_gsm_map_ericsson_SaiResType, &ett_gsm_map_ericsson_AtiArgType, &ett_gsm_map_ericsson_AtiResType, &ett_gsm_map_ericsson_RdArgType, &ett_gsm_map_ericsson_RequestedInfoType, &ett_gsm_map_ericsson_ExtAtiArgType, &ett_gsm_map_ericsson_AtiArgData, /* --- Module NokiaMAP-Extensions --- --- --- */ &ett_NokiaMAP_Extensions_IsdArgExt_U, &ett_NokiaMAP_Extensions_DsdArgExt_U, &ett_NokiaMAP_Extensions_UlResExt_U, &ett_NokiaMAP_Extensions_ChargingAreaList, &ett_NokiaMAP_Extensions_RegionalChargingData, &ett_NokiaMAP_Extensions_SS_DataExtension_U, &ett_NokiaMAP_Extensions_SriExtension_U, &ett_NokiaMAP_Extensions_ExtraSignalInfo_U, &ett_NokiaMAP_Extensions_Nokia_CUG_Data, &ett_NokiaMAP_Extensions_SriResExtension_U, &ett_NokiaMAP_Extensions_RgData, &ett_NokiaMAP_Extensions_MemberList, &ett_NokiaMAP_Extensions_CanLocArgExt_U, &ett_NokiaMAP_Extensions_ATMargExt_U, &ett_NokiaMAP_Extensions_OlcmInfoTable, &ett_NokiaMAP_Extensions_OlcmInfo, &ett_NokiaMAP_Extensions_ATMresExt_U, &ett_NokiaMAP_Extensions_DTMargExt_U, &ett_NokiaMAP_Extensions_FraudInfo, &ett_NokiaMAP_Extensions_FraudData, &ett_NokiaMAP_Extensions_ServiceWithInfo, &ett_NokiaMAP_Extensions_ServiceListWithInfo, &ett_NokiaMAP_Extensions_INKey, &ett_NokiaMAP_Extensions_MKey, &ett_NokiaMAP_Extensions_SMSKey, &ett_NokiaMAP_Extensions_HO_Ext_U, &ett_NokiaMAP_Extensions_CodecListExt, &ett_NokiaMAP_Extensions_SelectedCodec, &ett_NokiaMAP_Extensions_AbsentSubscriberExt_U, &ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U, &ett_NokiaMAP_Extensions_RoutingCategoryExt_U, &ett_NokiaMAP_Extensions_SriForSMArgExt_U, &ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U, &ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U, &ett_NokiaMAP_Extensions_UdlArgExt_U, &ett_NokiaMAP_Extensions_RoamNotAllowedExt_U, &ett_NokiaMAP_Extensions_AnyTimeModArgExt_U, &ett_NokiaMAP_Extensions_AccessTypeExt, &ett_NokiaMAP_Extensions_AccessSubscriptionListExt, &ett_NokiaMAP_Extensions_AllowedServiceData, }; static ei_register_info ei[] = { { &ei_gsm_map_unknown_sequence3, { "gsm_map.unknown.sequence3", PI_UNDECODED, PI_ERROR, "Unknown or not implemented [3] sequence", EXPFILL }}, { &ei_gsm_map_unknown_sequence, { "gsm_map.unknown.sequence", PI_UNDECODED, PI_ERROR, "Unknown or not implemented sequence", EXPFILL }}, { &ei_gsm_map_unknown_parameter, { "gsm_map.unknown.parameter", PI_UNDECODED, PI_ERROR, "Unknown or not implemented parameter", EXPFILL }}, { &ei_gsm_map_unknown_invokeData, { "gsm_map.unknown.invokeData", PI_MALFORMED, PI_WARN, "Unknown invokeData", EXPFILL }}, { &ei_gsm_map_undecoded, { "gsm_map.undecoded", PI_UNDECODED, PI_WARN, "If you want this decoded send the packet to Wireshark-dev", EXPFILL }}, }; static const enum_val_t application_context_modes[] = { {"Use Application Context from the trace", "Use application context from the trace", APPLICATON_CONTEXT_FROM_TRACE}, {"Treat as AC 1", "Treat as AC 1", 1}, {"Treat as AC 2", "Treat as AC 2", 2}, {"Treat as AC 3", "Treat as AC 3", 3}, {NULL, NULL, -1} }; static tap_param gsm_map_stat_params[] = { { PARAM_FILTER, "filter", "Filter", NULL, TRUE } }; static stat_tap_table_ui gsm_map_stat_table = { REGISTER_STAT_GROUP_TELEPHONY_GSM, "MAP Operation", "gsm_map", "gsm_map,operation", gsm_map_stat_init, gsm_map_stat_packet, gsm_map_stat_reset, gsm_map_stat_free_table_item, NULL, sizeof(gsm_map_stat_fields)/sizeof(stat_tap_table_item), gsm_map_stat_fields, sizeof(gsm_map_stat_params)/sizeof(tap_param), gsm_map_stat_params, NULL, 0 }; /* Register protocol */ proto_gsm_map_ms = proto_gsm_map_dialogue = proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME); map_handle = register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map); register_dissector("gsm_map_sccp", dissect_gsm_map_sccp, 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)); expert_gsm_map = expert_register_protocol(proto_gsm_map); expert_register_field_array(expert_gsm_map, ei, array_length(ei)); register_dissector_table("gsm_map.v3.arg.opcode", "GSM_MAP V3 Arg Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC); register_dissector_table("gsm_map.v3.res.opcode", "GSM_MAP V3 Res Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC); map_prop_arg_opcode_table = register_dissector_table("gsm_map.prop.arg.opcode", "GSM_MAP Proprietary Arg Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC); map_prop_res_opcode_table = register_dissector_table("gsm_map.prop.res.opcode", "GSM_MAP Proprietary Res Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC); map_prop_err_opcode_table = register_dissector_table("gsm_map.prop.err.opcode", "GSM_MAP Proprietary Err Opcodes", proto_gsm_map, FT_UINT8, BASE_DEC); gsm_map_tap = register_tap("gsm_map"); /* --- Module MAP-MS-DataTypes --- --- --- */ dissector_add_uint("gsm_map.v3.arg.opcode", 56, create_dissector_handle(dissect_gsm_map_ms_SendAuthenticationInfoArg_PDU, proto_gsm_map_ms)); dissector_add_uint("gsm_map.v3.res.opcode", 56, create_dissector_handle(dissect_gsm_map_ms_SendAuthenticationInfoRes_PDU, proto_gsm_map_ms)); /* --- Module MAP-CH-DataTypes --- --- --- */ /* --- Module MAP-LCS-DataTypes --- --- --- */ /* --- Module MAP-GR-DataTypes --- --- --- */ /* --- Module MAP-DialogueInformation --- --- --- */ register_ber_oid_dissector("0.4.0.0.1.1.1.1", dissect_gsm_map_dialogue_MAP_DialoguePDU_PDU, proto_gsm_map_dialogue, "map-DialogueAS"); /* --- Module MAP-LocationServiceOperations --- --- --- */ /* --- Module MAP-Group-Call-Operations --- --- --- */ /* --- Module MAP-ShortMessageServiceOperations --- --- --- */ /* --- Module MAP-SupplementaryServiceOperations --- --- --- */ /* --- Module MAP-CallHandlingOperations --- --- --- */ /* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ /* --- Module MAP-MobileServiceOperations --- --- --- */ /* --- Module MAP-Errors --- --- --- */ /* --- Module MAP-Protocol --- --- --- */ /* --- Module DummyMAP --- --- --- */ /* --- Module SS-DataTypes --- --- --- */ /* --- Module SS-Operations --- --- --- */ /* --- Module EricssonMAP --- --- --- */ /* --- Module NokiaMAP-Extensions --- --- --- */ oid_add_from_string("ericsson-gsm-Map-Ext","1.2.826.0.1249.58.1.0" ); oid_add_from_string("accessTypeNotAllowed-id","1.3.12.2.1107.3.66.1.2"); /*oid_add_from_string("map-ac networkLocUp(1) version3(3)","0.4.0.0.1.0.1.3" ); * * Register our configuration options, particularly our ssn:s * Set default SSNs */ range_convert_str(wmem_epan_scope(), &global_ssn_range, "6-9,145,148-150", MAX_SSN); gsm_map_module = prefs_register_protocol(proto_gsm_map, proto_reg_handoff_gsm_map); prefs_register_range_preference(gsm_map_module, "tcap.ssn", "TCAP SSNs", "TCAP Subsystem numbers used for GSM MAP", &global_ssn_range, MAX_SSN); prefs_register_enum_preference(gsm_map_module, "application.context.version", "Application context version", "How to treat Application context", &pref_application_context_version, application_context_modes, APPLICATON_CONTEXT_FROM_TRACE); prefs_register_bool_preference(gsm_map_module, "ericsson.proprietary.extensions", "Dissect Ericsson proprietary extensions", "When enabled, dissector will use the non 3GPP standard extensions from Ericsson (that can override the standard ones)", &pref_ericsson_proprietary_ext); register_stat_tap_table_ui(&gsm_map_stat_table); } /* * Editor modelines * * Local Variables: * c-basic-offset: 2 * tab-width: 8 * indent-tabs-mode: nil * End: * * ex: set shiftwidth=2 tabstop=8 expandtab: * :indentSize=2:tabSize=8:noTabs=true: */