diff options
author | Anders Broman <anders.broman@ericsson.com> | 2007-06-10 19:04:12 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2007-06-10 19:04:12 +0000 |
commit | d28046f3b5e110bac1a168941604676c755e657c (patch) | |
tree | ad8babb15aaf3404f6e507802ce8f47a4a3272bd | |
parent | 34b4318b4c23f9d7aa6757194dc956306b3346b6 (diff) | |
download | wireshark-d28046f3b5e110bac1a168941604676c755e657c.tar.gz wireshark-d28046f3b5e110bac1a168941604676c755e657c.tar.bz2 wireshark-d28046f3b5e110bac1a168941604676c755e657c.zip |
Updated GSM MAP to use the latest asn1 original files.
MAP-dalouge and gsm_ss is included in this dissector.
svn path=/trunk/; revision=22069
-rw-r--r-- | asn1/gsmmap/GSMMAP.asn | 5806 | ||||
-rw-r--r-- | asn1/gsmmap/MAP-MS-DataTypes.asn | 83 | ||||
-rw-r--r-- | asn1/gsmmap/MAP-MobileServiceOperations.asn | 5 | ||||
-rw-r--r-- | asn1/gsmmap/Makefile.nmake | 9 | ||||
-rw-r--r-- | asn1/gsmmap/gsm_map-exp.cnf | 661 | ||||
-rw-r--r-- | asn1/gsmmap/packet-gsm_map-template.c | 516 | ||||
-rw-r--r-- | epan/dissectors/Makefile.common | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-camel.c | 82 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_a.c | 564 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_map.c | 27227 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_map.h | 148 | ||||
-rw-r--r-- | epan/dissectors/packet-gtp.c | 4 |
12 files changed, 15128 insertions, 19981 deletions
diff --git a/asn1/gsmmap/GSMMAP.asn b/asn1/gsmmap/GSMMAP.asn index 27f91da55f..b59b473f4e 100644 --- a/asn1/gsmmap/GSMMAP.asn +++ b/asn1/gsmmap/GSMMAP.asn @@ -4,12 +4,39 @@ -- Updated to version 3GPP TS 29.002 V7.5.0 (2006-09) Release 7 -- $Id$ -MAP-Protocol{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) } +DummyMAP{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) } -DEFINITIONS::= +DEFINITIONS + +IMPLICIT TAGS + +::= BEGIN + +-- Must import data types for the "old" asn1 defs collected here. +IMPORTS + AddressString, + BasicServiceCode, + ExternalSignalInfo, + GlobalCellId, + ISDN-AddressString, + IMSI, + IMSI-WithLMSI, + LMSI, + ProtocolId, + SignalInfo +FROM MAP-CommonDataTypes { + itu-t identified-organization (4) etsi (0) mobileDomain (0) + gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)} + + ExtensionContainer +FROM MAP-ExtensionDataTypes { + itu-t identified-organization (4) etsi (0) mobileDomain (0) + gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)} +; + -- ROS def's -- Module Remote-Operations-Apdus (H.450.1:02/1998) --Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0) @@ -17,18 +44,18 @@ BEGIN --BEGIN Component ::= CHOICE { - invoke [1] IMPLICIT Invoke, - returnResultLast [2] IMPLICIT ReturnResult, - returnError [3] IMPLICIT ReturnError, - reject [4] IMPLICIT Reject, + invoke [1] Invoke, + returnResultLast [2] ReturnResult, + returnError [3] ReturnError, + reject [4] Reject, -- TCAP adds returnResultNotLast to allow for the segmentation of a result. - returnResultNotLast [7] IMPLICIT ReturnResult + returnResultNotLast [7] ReturnResult } Invoke ::= SEQUENCE { invokeID InvokeIdType, - linkedID [0] IMPLICIT InvokeIdType OPTIONAL, - opCode OPERATION, + linkedID [0] InvokeIdType OPTIONAL, + opCode MAP-OPERATION, invokeparameter InvokeParameter OPTIONAL } InvokeParameter ::= ANY @@ -40,8 +67,8 @@ InvokeParameter ::= ANY ReturnResult ::= SEQUENCE { invokeID InvokeIdType, resultretres SEQUENCE { - opCode OPERATION, - returnparameter ReturnResultParameter OPTIONAL + opCode MAP-OPERATION, + returnparameter ReturnResultParameter OPTIONAL } OPTIONAL } @@ -52,7 +79,7 @@ ReturnResultParameter ::= ANY ReturnError ::= SEQUENCE { invokeID InvokeIdType, - errorCode ERROR, + errorCode MAP-ERROR, parameter ReturnErrorParameter OPTIONAL } ReturnErrorParameter ::= ANY @@ -65,15 +92,15 @@ Reject ::= SEQUENCE { derivable InvokeIdType, not-derivable NULL }, problem CHOICE { - generalProblem [0] IMPLICIT GeneralProblem, - invokeProblem [1] IMPLICIT InvokeProblem, - returnResultProblem [2] IMPLICIT ReturnResultProblem, - returnErrorProblem [3] IMPLICIT ReturnErrorProblem } } + generalProblem [0] GeneralProblem, + invokeProblem [1] InvokeProblem, + returnResultProblem [2] ReturnResultProblem, + returnErrorProblem [3] ReturnErrorProblem } } InvokeIdType ::= INTEGER (-128..127) -OPERATION ::= CHOICE { +MAP-OPERATION ::= CHOICE { localValue OperationLocalvalue, globalValue OBJECT IDENTIFIER } @@ -92,6 +119,7 @@ GSMMAPOperationLocalvalue ::= INTEGER{ deactivateSS (13), interrogateSS (14), authenticationFailureReport (15), + notifySS (16), registerPassword (17), getPassword (18), processUnstructuredSS-Data (19), @@ -160,12 +188,30 @@ GSMMAPOperationLocalvalue ::= INTEGER{ subscriberLocationReport (86), ist-Alert (87), ist-Command (88), - noteMM-Event (89) + noteMM-Event (89), + lcs-PeriodicLocationCancellation (109), + lcs-LocationUpdate (110), + lcs-PeriodicLocationRequest (111), + lcs-AreaEventCancellation (112), + lcs-AreaEventReport (113), + lcs-AreaEventRequest (114), + lcs-MOLR (115), + lcs-LocationNotification (116), + callDeflection (117), + userUserService (118), + accessRegisterCCEntry (119), + forwardCUG-Info (120), + splitMPTY (121), + retrieveMPTY (122), + holdMPTY(123), + buildMPTY (124), + forwardChargeAdvice(125), + explicitCT (126) } OperationLocalvalue ::= GSMMAPOperationLocalvalue -ERROR ::= CHOICE { +MAP-ERROR ::= CHOICE { localValue LocalErrorcode, globalValue OBJECT IDENTIFIER } @@ -259,2644 +305,103 @@ ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0), --END - Bss-APDU ::= SEQUENCE { - protocolId ProtocolId, + protocolId ProtocolId, signalInfo SignalInfo, extensionContainer ExtensionContainer OPTIONAL, ... } --- not used --- SignalInfo2 ::= OCTET STRING ( SIZE (1 .. 2560 ) ) - -SupportedCamelPhases ::= BIT STRING { - phase1 (0 ), - phase2 (1 ), - phase3 (2 ), - phase4 (3 )} - - ---updateLocation OPERATION --- ARGUMENT - -UpdateLocationArg ::= SEQUENCE { - imsi IMSI, - msc-Number [1] IMPLICIT ISDN-AddressString, - vlr-Number ISDN-AddressString, - lmsi [10] IMPLICIT LMSI OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - vlr-Capability [6] IMPLICIT VLR-Capability OPTIONAL, - informPreviousNetworkEntity [11] IMPLICIT NULL OPTIONAL, - cs-LCS-NotSupportedByUE [12] IMPLICIT NULL OPTIONAL, - v-gmlc-Address [2] IMPLICIT GSN-Address OPTIONAL, - add-info [13] IMPLICIT ADD-Info OPTIONAL } - --- RESULT -UpdateLocationRes ::= SEQUENCE { - hlr-Number ISDN-AddressString, - extensionContainer ExtensionContainer OPTIONAL, -..., - -add-Capability NULL OPTIONAL } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1, --- roamingNotAllowed localValue : 8} --- ::= localValue : 2 - -VLR-Capability ::= SEQUENCE{ - supportedCamelPhases [0] IMPLICIT SupportedCamelPhases OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - solsaSupportIndicator [2] IMPLICIT NULL OPTIONAL, - istSupportIndicator [1] IMPLICIT IST-SupportIndicator OPTIONAL, - superChargerSupportedInServingNetworkEntity [3] SuperChargerInfo OPTIONAL, - longFTN-Supported [4] IMPLICIT NULL OPTIONAL, - supportedLCS-CapabilitySets [5] IMPLICIT SupportedLCS-CapabilitySets OPTIONAL, - offeredCamel4CSIs [6] IMPLICIT OfferedCamel4CSIs OPTIONAL, - supportedRAT-TypesIndicator [7] IMPLICIT SupportedRAT-Types OPTIONAL } - -SupportedRAT-Types::= BIT STRING { - utran (0), - geran (1)} (SIZE (2..8)) --- exception handling: bits 2 to 7 shall be ignored if received and not understood - -SuperChargerInfo ::= CHOICE { - sendSubscriberData [0] IMPLICIT NULL, - subscriberDataStored [1] IMPLICIT AgeIndicator } - -AgeIndicator ::= OCTET STRING (SIZE (1..6)) --- The internal structure of this parameter is implementation specific. - -IST-SupportIndicator ::= ENUMERATED { - basicISTSupported (0), - istCommandSupported (1), -...} --- exception handling: --- reception of values > 1 shall be mapped to ' istCommandSupported ' -SupportedLCS-CapabilitySets ::= BIT STRING { - lcsCapabilitySet1 (0), - lcsCapabilitySet2 (1), - lcsCapabilitySet3 (2), - lcsCapabilitySet4 (3) } (SIZE (2..16)) --- Core network signalling capability set1 indicates LCS Release98 or Release99 version. --- Core network signalling capability set2 indicates LCS Release4. --- Core network signalling capability set3 indicates LCS Release5. --- Core network signalling capability set4 indicates LCS Release6 or later version. --- A node shall mark in the BIT STRING all LCS capability sets it supports. --- If no bit is set then the sending node does not support LCS. --- If the parameter is not sent by an VLR then the VLR may support at most capability set1. --- If the parameter is not sent by an SGSN then no support for LCS is assumed. --- An SGSN is not allowed to indicate support of capability set1. --- Other bits than listed above shall be discarded. - -ADD-Info ::= SEQUENCE { - imeisv [0] IMPLICIT IMEI, - skipSubscriberDataUpdate [1] IMPLICIT NULL OPTIONAL, -...} - - --- Wireshark adaptation -PrivateExtensionList ::= SEQUENCE OF PrivateExtension - -PrivateExtension ::= SEQUENCE { - extId OBJECT IDENTIFIER, -- MAP-EXTENSION .&extensionId - extType ANY OPTIONAL -- { @extId } -} - -SLR-ArgExtensionContainer ::= SEQUENCE { - privateExtensionList [0] IMPLICIT PrivateExtensionList OPTIONAL, - slr-Arg-PCS-Extensions [1] IMPLICIT SLR-Arg-PCS-Extensions OPTIONAL, -...} -PcsExtensions ::= SEQUENCE { - ... - } - -SLR-Arg-PCS-Extensions ::= SEQUENCE { - ..., - na-ESRK-Request [0] IMPLICIT NULL OPTIONAL } - --- not used --- Teleservice ::= OCTET STRING ( SIZE( 1 .. 5 ) ) --- not used --- Bearerservice ::= OCTET STRING ( SIZE( 1 .. 5 ) ) --- not used --- Msc-Number ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) --- End Wireshark adaptation - - ---cancelLocation OPERATION --- ARGUMENT - -CancelLocationArg ::= [3] IMPLICIT SEQUENCE { - identity Identity, - cancellationType CancellationType OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} - --- V2 ARGUMENT - CancelLocationArgV2 ::= CHOICE { imsi IMSI, imsi-WithLMSI IMSI-WithLMSI} --- RESULT +--provideSIWFSNumber OPERATION +-- ARGUMENT -CancelLocationRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } +ProvideSIWFSNumberArg ::= SEQUENCE { + gsm-BearerCapability [0] ExternalSignalInfo, + isdn-BearerCapability [1] ExternalSignalInfo, + call-Direction [2] CallDirection, + b-Subscriber-Address [3] ISDN-AddressString, + chosenChannel [4] ExternalSignalInfo, + lowerLayerCompatibility [5] ExternalSignalInfo OPTIONAL, + highLayerCompatibility [6] ExternalSignalInfo OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, +...} +-- RESULT +ProvideSIWFSNumberRes ::= SEQUENCE { + sIWFSNumber [0] ISDN-AddressString, + extensionContainer [1] ExtensionContainer OPTIONAL, +...} -- ERRORS { +-- resourceLimitation localValue : 51, -- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36} --- ::= localValue : 3 - -CancellationType ::= ENUMERATED { - updateProcedure (0), - subscriptionWithdraw (1), -...} --- The HLR shall not send values other than listed above - - +-- unexpectedDataValue localValue : 36, +-- systemFailure localValue : 34} +-- ::= localValue : 31 ---purgeMS OPERATION --- ARGUMENT -PurgeMSArg ::= [3] IMPLICIT SEQUENCE { - imsi IMSI, - vlr-Number [0] IMPLICIT ISDN-AddressString OPTIONAL, - sgsn-Number [1] IMPLICIT ISDN-AddressString OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } +CallDirection ::= OCTET STRING (SIZE (1)) +-- OCTET 1 +-- bit 1 (direction of call) +-- 0 Mobile Originated Call (MOC) +-- 1 Mobile Terminated Call (MTC) PurgeMSArgV2 ::= SEQUENCE { imsi IMSI, vlr-Number ISDN-AddressString OPTIONAL, ... } --- RESULT -PurgeMSRes ::= SEQUENCE { - freezeTMSI [0] IMPLICIT NULL OPTIONAL, - freezeP-TMSI [1] IMPLICIT NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 67 - ---sendIdentification OPERATION --- ARGUMENT -SendIdentificationArg ::= SEQUENCE { - tmsi TMSI, - numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL, --- within a dialogue numberOfRequestedVectors shall be present in --- the first service request and shall not be present in subsequent service requests. --- If received in a subsequent service request it shall be discarded. - segmentationProhibited NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ..., - msc-Number ISDN-AddressString OPTIONAL, - previous-LAI [0] IMPLICIT LAIFixedLength OPTIONAL, - hopCounter [1] IMPLICIT HopCounter OPTIONAL } - -HopCounter ::= INTEGER (0..3) - - --- RESULT -SendIdentificationRes ::= [3] IMPLICIT SEQUENCE { - imsi IMSI OPTIONAL, --- IMSI shall be present in the first (or only) service response of a dialogue. --- If multiple service requests are present in a dialogue then IMSI --- shall not be present in any service response other than the first one. --- - authenticationSetList AuthenticationSetList OPTIONAL, - currentSecurityContext [2] IMPLICIT CurrentSecurityContext OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ...} - -SendIdentificationResV2 ::= SEQUENCE { - imsi IMSI OPTIONAL, - tripletList TripletList OPTIONAL, - ...} - -AuthenticationSetList ::= CHOICE { - tripletList [0] IMPLICIT TripletList, - quintupletList [1] IMPLICIT QuintupletList } - -TripletList ::= SEQUENCE SIZE (1..5) OF - AuthenticationTriplet - -QuintupletList ::= SEQUENCE SIZE (1..5) OF - AuthenticationQuintuplet - -AuthenticationTriplet ::= SEQUENCE { - rand RAND, - sres SRES, - kc Kc, -...} - -AuthenticationQuintuplet ::= SEQUENCE { - rand RAND, - xres XRES, - ck CK, - ik IK, - autn AUTN, -...} - -CurrentSecurityContext ::= CHOICE { - gsm-SecurityContextData [0] IMPLICIT GSM-SecurityContextData, - umts-SecurityContextData [1] IMPLICIT UMTS-SecurityContextData } - -GSM-SecurityContextData ::= SEQUENCE { - kc Kc, - cksn Cksn, -... } - -UMTS-SecurityContextData ::= SEQUENCE { - ck CK, - ik IK, - ksi KSI, -... } - -RAND ::= OCTET STRING (SIZE (16)) - -SRES ::= OCTET STRING (SIZE (4)) - -Kc ::= OCTET STRING (SIZE (8)) - -XRES ::= OCTET STRING (SIZE (4..16)) - -CK ::= OCTET STRING (SIZE (16)) - -IK ::= OCTET STRING (SIZE (16)) - -AUTN ::= OCTET STRING (SIZE (16)) - -AUTS ::= OCTET STRING (SIZE (14)) - -Cksn ::= OCTET STRING (SIZE (1)) --- The internal structure is defined in 3GPP TS 24.008 - -KSI ::= OCTET STRING (SIZE (1)) --- The internal structure is defined in 3GPP TS 24.008 - --- ERRORS { --- dataMissing localValue : 35, --- unidentifiedSubscriber localValue : 5} --- ::= localValue : 55 - ---prepareHandover OPERATION --- ARGUMENT -PrepareHO-Arg ::= SEQUENCE { +PrepareHO-ArgOld ::= SEQUENCE { targetCellId GlobalCellId OPTIONAL, ho-NumberNotRequired NULL OPTIONAL, bss-APDU Bss-APDU OPTIONAL, ... } --- RESULT --- V3 def: ? --- prepareHandover OPERATION ::= { --- ARGUMENT [3] IMPLICIT SEQUENCE { -PrepareHO-ArgV3 ::= [3] IMPLICIT SEQUENCE { - targetCellId [0] IMPLICIT GlobalCellId OPTIONAL, - ho-NumberNotRequired NULL OPTIONAL, - targetRNCId [1] IMPLICIT RNCId OPTIONAL, - an-APDU [2] IMPLICIT AccessNetworkSignalInfo OPTIONAL, - multipleBearerRequested [3] IMPLICIT NULL OPTIONAL, - imsi [4] IMPLICIT IMSI OPTIONAL, - integrityProtectionInfo [5] IMPLICIT IntegrityProtectionInformation OPTIONAL, - encryptionInfo [6] IMPLICIT EncryptionInformation OPTIONAL, - radioResourceInformation [7] IMPLICIT RadioResourceInformation OPTIONAL, - allowedGSM-Algorithms [9] IMPLICIT AllowedGSM-Algorithms OPTIONAL, - allowedUMTS-Algorithms [10] IMPLICIT AllowedUMTS-Algorithms OPTIONAL, - radioResourceList [11] IMPLICIT RadioResourceList OPTIONAL, - extensionContainer [8] IMPLICIT ExtensionContainer OPTIONAL, - ... , - rab-Id [12] IMPLICIT RAB-Id OPTIONAL, - bssmap-ServiceHandover [13] IMPLICIT BSSMAP-ServiceHandover OPTIONAL, - ranap-ServiceHandover [14] IMPLICIT RANAP-ServiceHandover OPTIONAL, - bssmap-ServiceHandoverList [15] IMPLICIT BSSMAP-ServiceHandoverList OPTIONAL, - asciCallReference [20] IMPLICIT ASCI-CallReference OPTIONAL, - geran-classmark [16] IMPLICIT GERAN-Classmark OPTIONAL, - iuCurrentlyUsedCodec [17] IMPLICIT Codec OPTIONAL, - iuSupportedCodecsList [18] IMPLICIT SupportedCodecsList OPTIONAL, - rab-ConfigurationIndicator [19] IMPLICIT NULL OPTIONAL, - uesbi-Iu [21] IMPLICIT UESBI-Iu OPTIONAL, - imeisv [22] IMPLICIT IMEI OPTIONAL, - alternativeChannelType [23] IMPLICIT RadioResourceInformation OPTIONAL, - tracePropagationList [25] IMPLICIT TracePropagationList OPTIONAL } - -BSSMAP-ServiceHandoverList ::= SEQUENCE SIZE (1.. 7) OF -BSSMAP-ServiceHandoverInfo -BSSMAP-ServiceHandoverInfo ::= SEQUENCE { - bssmap-ServiceHandover BSSMAP-ServiceHandover, - rab-Id RAB-Id, --- RAB Identity is needed to relate the service handovers with the radio access bearers. -...} - -BSSMAP-ServiceHandover ::= OCTET STRING (SIZE (1)) --- Octets are coded according the Service Handover information element in --- 3GPP TS 48.008. - -RANAP-ServiceHandover ::= OCTET STRING (SIZE (1)) --- Octet contains a complete Service-Handover data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413 --- Padding bits are included in the least significant bits. - -RadioResourceList ::= SEQUENCE SIZE (1.. maxNumOfRadioResources) OF -RadioResource - -RadioResource ::= SEQUENCE { - radioResourceInformation RadioResourceInformation, - rab-Id RAB-Id, --- RAB Identity is needed to relate the radio resources with the radio access bearers. -...} - - - -PrepareHO-Res ::= SEQUENCE { +PrepareHO-ResOld ::= SEQUENCE { handoverNumber ISDN-AddressString OPTIONAL, bss-APDU Bss-APDU OPTIONAL, ... } --- Not used --- HandoverNumber ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - -PrepareHO-ResV3 ::= [3] IMPLICIT SEQUENCE { - handoverNumber [0] IMPLICIT ISDN-AddressString OPTIONAL, - relocationNumberList [1] IMPLICIT RelocationNumberList OPTIONAL, - an-APDU [2] IMPLICIT AccessNetworkSignalInfo OPTIONAL, - multicallBearerInfo [3] IMPLICIT MulticallBearerInfo OPTIONAL, - multipleBearerNotSupported NULL OPTIONAL, - selectedUMTS-Algorithms [5] IMPLICIT SelectedUMTS-Algorithms OPTIONAL, - chosenRadioResourceInformation [6] IMPLICIT ChosenRadioResourceInformation OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ..., - iuSelectedCodec [7] Codec OPTIONAL, - iuAvailableCodecsList [8] CodecList OPTIONAL } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- noAvailable localValue : 25} --- ::= localValue : 68 - -SelectedUMTS-Algorithms ::= SEQUENCE { - integrityProtectionAlgorithm [0] IMPLICIT ChosenIntegrityProtectionAlgorithm OPTIONAL, - encryptionAlgorithm [1] IMPLICIT ChosenEncryptionAlgorithm OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} - -ChosenIntegrityProtectionAlgorithm ::= OCTET STRING (SIZE (1)) --- Octet contains a complete IntegrityProtectionAlgorithm data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413 --- Padding bits are included in the least significant bits. - -ChosenEncryptionAlgorithm ::= OCTET STRING (SIZE (1)) --- Octet contains a complete EncryptionAlgorithm data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413 --- Padding bits are included in the least significant bits. - -ChosenRadioResourceInformation ::= SEQUENCE { - chosenChannelInfo [0] IMPLICIT ChosenChannelInfo OPTIONAL, - chosenSpeechVersion [1] IMPLICIT ChosenSpeechVersion OPTIONAL, -...} - -ChosenChannelInfo ::= OCTET STRING (SIZE (1)) --- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008 - -ChosenSpeechVersion ::= OCTET STRING (SIZE (1)) --- Octets are coded according the Speech Version (chosen) information element in 3GPP TS --- 48.008 - - - -ProtocolId ::= ENUMERATED { - gsm-0408 ( 1 ), - gsm-0806 ( 2 ), - gsm-BSSMAP ( 3 ), - ets-300102-1 ( 4 ) -} - --- Not used --- Sgsn-Number ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) ---Vlr-Number ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - --- End Wireshark adaptation -- ---sendEndSignal OPERATION --- ARGUMENT ---Bss-APDU ::= SEQUENCE { ... defined elsewhere --- ::= localValue : 29 --- V9 ??? ---sendEndSignal OPERATION ::= { --- ARGUMENT [3] IMPLICIT SEQUENCE { --- an-APDU --- : - -SendEndSignalArgV3 ::= [3] IMPLICIT SEQUENCE { - an-APDU AccessNetworkSignalInfo, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -SendEndSignalRes ::= SEQUENCE { - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -RNCId ::= OCTET STRING (SIZE (7)) --- The internal structure is defined as follows: --- octet 1 bits 4321 Mobile Country Code 1st digit --- bits 8765 Mobile Country Code 2nd digit --- octet 2 bits 4321 Mobile Country Code 3rd digit --- bits 8765 Mobile Network Code 3rd digit --- or filler (1111) for 2 digit MNCs --- octet 3 bits 4321 Mobile Network Code 1st digit --- bits 8765 Mobile Network Code 2nd digit --- octets 4 and 5 Location Area Code according to 3GPP TS 24.008 --- octets 6 and 7 RNC Id value according to 3GPP TS 25.413 - -RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF - RelocationNumber - -MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber) - -RelocationNumber ::= SEQUENCE { - handoverNumber ISDN-AddressString, - rab-Id RAB-Id, --- RAB Identity is needed to relate the calls with the radio access bearers. -...} - -RAB-Id ::= INTEGER (1..maxNrOfRABs) - -maxNrOfRABs INTEGER ::= 255 - -maxNumOfRelocationNumber INTEGER ::= 7 - -RadioResourceInformation ::= OCTET STRING (SIZE (3..13)) --- Octets are coded according the Channel Type information element in 3GPP TS 48.008 - -IntegrityProtectionInformation ::= OCTET STRING (SIZE (18..maxNumOfIntegrityInfo)) --- Octets contain a complete IntegrityProtectionInformation data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413 --- Padding bits are included, if needed, in the least significant bits of the --- last octet of the octet string. -maxNumOfIntegrityInfo INTEGER ::= 100 - -EncryptionInformation ::= OCTET STRING (SIZE (18..maxNumOfEncryptionInfo)) --- Octets contain a complete EncryptionInformation data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413 --- Padding bits are included, if needed, in the least significant bits of the --- last octet of the octet string. -maxNumOfEncryptionInfo INTEGER ::= 100 - ---processAccessSignalling OPERATION --- ARGUMENT ---Bss-APDU ::= SEQUENCE { ... defined elsewhere --- ::= localValue : 33 - -ProcessAccessSignallingArgV3 ::= [3] IMPLICIT SEQUENCE { - an-APDU AccessNetworkSignalInfo, - selectedUMTS-Algorithms [1] IMPLICIT SelectedUMTS-Algorithms OPTIONAL, - selectedGSM-Algorithm [2] IMPLICIT SelectedGSM-Algorithm OPTIONAL, - chosenRadioResourceInformation [3] IMPLICIT ChosenRadioResourceInformation OPTIONAL, - selectedRab-Id [4] IMPLICIT RAB-Id OPTIONAL, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ..., - iUSelectedCodec [5] IMPLICIT Codec OPTIONAL, - iuAvailableCodecsList [6] IMPLICIT CodecList OPTIONAL } - -SupportedCodecsList ::= SEQUENCE { - utranCodecList [0] IMPLICIT CodecList OPTIONAL, - geranCodecList [1] IMPLICIT CodecList OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} - -CodecList ::= SEQUENCE { - codec1 [1] IMPLICIT Codec, - codec2 [2] IMPLICIT Codec OPTIONAL, - codec3 [3] IMPLICIT Codec OPTIONAL, - codec4 [4] IMPLICIT Codec OPTIONAL, - codec5 [5] IMPLICIT Codec OPTIONAL, - codec6 [6] IMPLICIT Codec OPTIONAL, - codec7 [7] IMPLICIT Codec OPTIONAL, - codec8 [8] IMPLICIT Codec OPTIONAL, - extensionContainer [9] IMPLICIT ExtensionContainer OPTIONAL, -...} --- Codecs are sent in priority order where codec1 has highest priority - -Codec ::= OCTET STRING (SIZE (1..4)) --- The internal structure is defined as follows: --- octet 1 Coded as Codec Identification code in 3GPP TS 26.103 --- octets 2,3,4 Parameters for the Codec as defined in 3GPP TS --- 26.103, if available, length depending on the codec - -GERAN-Classmark ::= OCTET STRING (SIZE (2..87)) --- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008 - -SelectedGSM-Algorithm ::= OCTET STRING (SIZE (1)) --- internal structure is coded as Algorithm identifier octet from Chosen Encryption --- Algorithm defined in 3GPP TS 48.008 --- A node shall mark only the selected GSM algorithm - - ---forwardAccessSignalling OPERATION --- ARGUMENT - -ForwardAccessSignallingArgV3 ::= [3] SEQUENCE { - an-APDU AccessNetworkSignalInfo, - integrityProtectionInfo [0] IMPLICIT IntegrityProtectionInformation OPTIONAL, - encryptionInfo [1] IMPLICIT EncryptionInformation OPTIONAL, - keyStatus [2] IMPLICIT KeyStatus OPTIONAL, - allowedGSM-Algorithms [4] IMPLICIT AllowedGSM-Algorithms OPTIONAL, - allowedUMTS-Algorithms [5] IMPLICIT AllowedUMTS-Algorithms OPTIONAL, - radioResourceInformation [6] IMPLICIT RadioResourceInformation OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ..., - radioResourceList [7] IMPLICIT RadioResourceList OPTIONAL, - bssmap-ServiceHandover [9] IMPLICIT BSSMAP-ServiceHandover OPTIONAL, - ranap-ServiceHandover [8] IMPLICIT RANAP-ServiceHandover OPTIONAL, - bssmap-ServiceHandoverList [10] IMPLICIT BSSMAP-ServiceHandoverList OPTIONAL, - currentlyUsedCodec [11] IMPLICIT Codec OPTIONAL, - iuSupportedCodecsList [12] IMPLICIT SupportedCodecsList OPTIONAL, - rab-ConfigurationIndicator [13] IMPLICIT NULL OPTIONAL, - iuSelectedCodec [14] IMPLICIT Codec OPTIONAL, - alternativeChannelType [15] IMPLICIT RadioResourceInformation OPTIONAL, - tracePropagationList [17] IMPLICIT TracePropagationList OPTIONAL } - ---Bss-APDU ::= SEQUENCE { ... defined elsewhere --- ::= localValue : 34 -AllowedGSM-Algorithms ::= OCTET STRING (SIZE (1)) --- internal structure is coded as Algorithm identifier octet from --- Permitted Algorithms defined in 3GPP TS 48.008 --- A node shall mark all GSM algorithms that are allowed in MSC-B +SendAuthenticationInfoArgOld ::= IMSI -AllowedUMTS-Algorithms ::= SEQUENCE { - integrityProtectionAlgorithms [0] IMPLICIT PermittedIntegrityProtectionAlgorithms OPTIONAL, - encryptionAlgorithms [1] IMPLICIT PermittedEncryptionAlgorithms OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} - -PermittedIntegrityProtectionAlgorithms ::= OCTET STRING (SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength)) --- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413. --- Padding bits are included, if needed, in the least significant bits of the --- last octet of the octet string. -maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::= 9 - -PermittedEncryptionAlgorithms ::= OCTET STRING (SIZE (1..maxPermittedEncryptionAlgorithmsLength)) --- Octets contain a complete PermittedEncryptionAlgorithms data type --- as defined in 3GPP TS 25.413, encoded according to the encoding scheme --- mandated by 3GPP TS 25.413 --- Padding bits are included, if needed, in the least significant bits of the --- last octet of the octet string. -maxPermittedEncryptionAlgorithmsLength INTEGER ::= 9 - -KeyStatus ::= ENUMERATED { - old (0), - new (1), -...} --- exception handling: --- received values in range 2-31 shall be treated as "old" --- received values greater than 31 shall be treated as "new" - - - ---prepareSubsequentHandover OPERATION --- ARGUMENT -PrepareSubsequentHOArg ::= SEQUENCE { - targetCellId GlobalCellId, - targetMSC-Number ISDN-AddressString, - bss-APDU Bss-APDU, - ... } - -PrepareSubsequentHOArgV3 ::= [3] SEQUENCE { - targetCellId [0] IMPLICIT GlobalCellId OPTIONAL, - targetMSC-Number [1] IMPLICIT ISDN-AddressString, - targetRNCId [2] IMPLICIT RNCId OPTIONAL, - an-APDU [3] IMPLICIT AccessNetworkSignalInfo OPTIONAL, - selectedRab-Id [4] IMPLICIT RAB-Id OPTIONAL, - extensionContainer [5] IMPLICIT ExtensionContainer OPTIONAL, - ..., - geran-classmark [6] IMPLICIT GERAN-Classmark OPTIONAL, - rab-ConfigurationIndicator [7] IMPLICIT NULL OPTIONAL } - --- RESULT ---bss-APDU ::= SEQUENCE { ... defined elsewhere -PrepareSubsequentHOResV3 ::= [3] IMPLICIT SEQUENCE { - an-APDU AccessNetworkSignalInfo, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - --- ERRORS { --- unexpectedDataValue localValue : 36, --- dataMissing localValue : 35, --- unknownMSC localValue : 3, --- subsequentHandoverFailure localValue : 26} --- ::= localValue : 69 - ---sendAuthenticationInfo OPERATION --- ARGUMENT - -SendAuthenticationInfoArg ::= IMSI - -SendAuthenticationInfoArgV2 ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - numberOfRequestedVectors NumberOfRequestedVectors, - segmentationProhibited NULL OPTIONAL, - immediateResponsePreferred [1] IMPLICIT NULL OPTIONAL, - re-synchronisationInfo Re-synchronisationInfo OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ..., - requestingNodeType [3] IMPLICIT RequestingNodeType OPTIONAL, - requestingPLMN-Id [4] IMPLICIT PLMN-Id OPTIONAL } - --- RESULT - -SendAuthenticationInfoRes ::= SEQUENCE ( SIZE( 1 .. 5 ) ) OF +SendAuthenticationInfoResOld ::= SEQUENCE ( SIZE( 1 .. 5 ) ) OF SEQUENCE { rand RAND, sres SRES, kc Kc, ... } --- RESULT [3] IMPLICIT SEQUENCE { - -SendAuthenticationInfoResV3 ::= [3] IMPLICIT SEQUENCE { - authenticationSetList AuthenticationSetList OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 56 - -PLMN-Id ::= OCTET STRING (SIZE (3)) --- The internal structure is defined as follows: --- octet 1 bits 4321 Mobile Country Code 1st digit --- bits 8765 Mobile Country Code 2nd digit --- octet 2 bits 4321 Mobile Country Code 3rd digit --- bits 8765 Mobile Network Code 3rd digit --- or filler (1111) for 2 digit MNCs --- octet 3 bits 4321 Mobile Network Code 1st digit --- bits 8765 Mobile Network Code 2nd digit - -NumberOfRequestedVectors ::= INTEGER (1..5) - -Re-synchronisationInfo ::= SEQUENCE { - rand RAND, - auts AUTS, -...} - -RequestingNodeType ::= ENUMERATED { - vlr (0), - sgsn (1), - ..., - s-cscf (2), - bsf (3), - gan-aaa-server (4), - wlan-aaa-server (5) - } --- the values 2, 3, 4 and 5 shall not be used on the MAP-D or Gr interfaces --- exception handling: --- received values in the range (6-15) shall be treated as "vlr" --- received values greater than 15 shall be treated as "sgsn" - ---checkIMEI OPERATION --- ARGUMENT --- CheckIMEIArg ::= IMEI --- calling dissect_gsm_map_IMEI directly from template - - --- V3 --- checkIMEI OPERATION ::= { --- ARGUMENT SEQUENCE { - -CheckIMEIArgV3 ::= SEQUENCE { - imei IMEI, - requestedEquipmentInfo RequestedEquipmentInfo, - extensionContainer ExtensionContainer OPTIONAL, - ... -} - --- RESULT --- equipmentStatus EquipmentStatus - --- V3 --- RESULT SEQUENCE { -CheckIMEIRes ::= SEQUENCE { - equipmentStatus EquipmentStatus OPTIONAL, - bmuef UESBI-Iu OPTIONAL, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -RequestedEquipmentInfo::= BIT STRING { - equipmentStatus (0), - bmuef (1)} (SIZE (2..8)) --- exception handling: reception of unknown bit assignments in the --- RequestedEquipmentInfo data type shall be discarded by the receiver - -UESBI-Iu ::= SEQUENCE { - uesbi-IuA [0] IMPLICIT UESBI-IuA OPTIONAL, - uesbi-IuB [1] IMPLICIT UESBI-IuB OPTIONAL, -...} - -UESBI-IuA ::= BIT STRING (SIZE(1..128)) --- See 3GPP TS 25.413 - -UESBI-IuB ::= BIT STRING (SIZE(1..128)) --- See 3GPP TS 25.413 - -EquipmentStatus ::= ENUMERATED { - whiteListed ( 0 ), - blackListed ( 1 ), - greyListed ( 2 ) } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unknownEquipment localValue : 7} --- ::= localValue : 43 - - -OverrideCategory ::= ENUMERATED { - overrideEnabled ( 0 ), - overrideDisabled ( 1 ) } - --- Not used anymore --- BasicService ::= CHOICE { --- bearerservice [2] IMPLICIT Bearerservice, --- teleservice [3] IMPLICIT Teleservice} - --- BasicServiceGroupList ::= SEQUENCE OF BasicService -BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF - BasicServiceCode - -maxNumOfBasicServiceGroups INTEGER ::= 13 - - -ODB-GeneralData ::= BIT STRING { - allOG-CallsBarred (0), - internationalOGCallsBarred (1), - internationalOGCallsNotToHPLMN-CountryBarred (2), - interzonalOGCallsBarred (6), - interzonalOGCallsNotToHPLMN-CountryBarred (7), - interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8), - premiumRateInformationOGCallsBarred (3), - premiumRateEntertainementOGCallsBarred (4), - ss-AccessBarred (5), - allECT-Barred (9), - chargeableECT-Barred (10), - internationalECT-Barred (11), - interzonalECT-Barred (12), - doublyChargeableECT-Barred (13), - multipleECT-Barred (14), - allPacketOrientedServicesBarred (15), - roamerAccessToHPLMN-AP-Barred (16), - roamerAccessToVPLMN-AP-Barred (17), - roamingOutsidePLMNOG-CallsBarred (18), - allIC-CallsBarred (19), - roamingOutsidePLMNIC-CallsBarred (20), - roamingOutsidePLMNICountryIC-CallsBarred (21), - roamingOutsidePLMN-Barred (22), - roamingOutsidePLMN-CountryBarred (23), - registrationAllCF-Barred (24), - registrationCFNotToHPLMN-Barred (25), - registrationInterzonalCF-Barred (26), - registrationInterzonalCFNotToHPLMN-Barred (27), - registrationInternationalCF-Barred (28)} (SIZE (15..32)) - -ODB-HPLMN-Data ::= BIT STRING { - plmn-SpecificBarringType1 (0 ), - plmn-SpecificBarringType2 (1 ), - plmn-SpecificBarringType3 (2 ), - plmn-SpecificBarringType4 (3 )} (SIZE (4..32)) - -SubscriberStatus ::= ENUMERATED { - serviceGranted ( 0 ), - operatorDeterminedBarring ( 1 ) } - --- not used --- BcsmTriggerDetectionPoint ::= ENUMERATED { --- collectedInfo ( 2 ), --- routeSelectFailure (4 ), --- termAttemptAuthorized ( 12 ), --- tBusy (13 ), --- tNoAnswer (14 ), --- ... } - -ServiceKey ::= INTEGER ( 0 .. 2147483647 ) - --- not used --- BcsmCamelTDPData ::= SEQUENCE { --- bcsmTriggerDetectionPoint BcsmTriggerDetectionPoint, --- serviceKey ServiceKey, --- gsmSCFAddress [0] IMPLICIT GsmSCF-Address, --- defaultCallHandling [1] IMPLICIT DefaultCallHandling, --- extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, --- ... } - --- not used --- BcsmCamelTDPDataList ::= SEQUENCE OF BcsmCamelTDPData - --- not used --- GsmSCF-Address ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - --- Moved --- DefaultCallHandling ::= ENUMERATED { --- continueCall ( 0 ), --- releaseCall ( 1 ), --- ... } - -O-CSI ::= SEQUENCE { - o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList, - extensionContainer ExtensionContainer OPTIONAL, - ..., - camelCapabilityHandling [0] IMPLICIT CamelCapabilityHandling OPTIONAL, - notificationToCSE [1] IMPLICIT NULL OPTIONAL, - csiActive [2] IMPLICIT NULL OPTIONAL} --- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC. --- They may only be included in ATSI/ATM ack/NSDC message. --- O-CSI shall not be segmented. - -O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF -O-BcsmCamelTDPData --- O-BcsmCamelTDPDataList shall not contain more than one instance of --- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint. --- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed --- with o-BcsmTriggerDetectionPoint being equal to DP2. -maxNumOfCamelTDPData INTEGER ::= 10 - -O-BcsmCamelTDPData ::= SEQUENCE { - o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint, - serviceKey ServiceKey, - gsmSCF-Address [0] IMPLICIT ISDN-AddressString, - defaultCallHandling [1] IMPLICIT DefaultCallHandling, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -... -} - ---insertSubscriberData OPERATION --- ARGUMENT -InsertSubscriberDataArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI OPTIONAL, - msisdn [1] IMPLICIT ISDN-AddressString OPTIONAL, - category [2] IMPLICIT Category OPTIONAL, - subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL, - bearerserviceList [4] IMPLICIT BearerServiceList OPTIONAL, - teleserviceList [6] IMPLICIT TeleserviceList OPTIONAL, - provisionedSS [7] IMPLICIT Ext-SS-InfoList OPTIONAL, - odb-Data [8] IMPLICIT ODB-Data OPTIONAL, - roamingRestrictionDueToUnsupportedFeature [9] IMPLICIT NULL OPTIONAL, - regionalSubscriptionData [10] IMPLICIT ZoneCodeList OPTIONAL, - vbsSubscriptionData [11] IMPLICIT VBSDataList OPTIONAL, - vgcsSubscriptionData [12] IMPLICIT VGCSDataList OPTIONAL, - vlrCamelSubscriptionInfo [13] IMPLICIT VlrCamelSubscriptionInfo OPTIONAL, - extensionContainer [14] IMPLICIT ExtensionContainer OPTIONAL, - ... , - naea-PreferredCI [15] IMPLICIT NAEA-PreferredCI OPTIONAL, --- naea-PreferredCI is included at the discretion of the HLR operator. - gprsSubscriptionData [16] IMPLICIT GPRSSubscriptionData OPTIONAL, - roamingRestrictedInSgsnDueToUnsupportedFeature [23] IMPLICIT NULL OPTIONAL, - networkAccessMode [24] IMPLICIT NetworkAccessMode OPTIONAL, - lsaInformation [25] IMPLICIT LSAInformation OPTIONAL, - lmu-Indicator [21] IMPLICIT NULL OPTIONAL, - lcsInformation [22] IMPLICIT LCSInformation OPTIONAL, - istAlertTimer [26] IMPLICIT IST-AlertTimerValue OPTIONAL, - superChargerSupportedInHLR [27] IMPLICIT AgeIndicator OPTIONAL, - mc-SS-Info [28] IMPLICIT MC-SS-Info OPTIONAL, - cs-AllocationRetentionPriority [29] IMPLICIT CS-AllocationRetentionPriority OPTIONAL, - sgsn-CAMEL-SubscriptionInfo [17] IMPLICIT SGSN-CAMEL-SubscriptionInfo OPTIONAL, - chargingCharacteristics [18] IMPLICIT ChargingCharacteristics OPTIONAL, - accessRestrictionData [19] IMPLICIT AccessRestrictionData OPTIONAL -} --- If the Network Access Mode parameter is sent, it shall be present only in --- the first sequence if seqmentation is used - -AccessRestrictionData ::= BIT STRING { - utranNotAllowed (0), - geranNotAllowed (1) } (SIZE (2..8)) --- exception handling: --- bits 2 to 7 shall be ignored if received and not understood - -CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1)) --- This data type encodes each priority level defined in TS 23.107 as the binary value --- of the priority level. - -IST-AlertTimerValue ::= INTEGER (15..255) - -LCSInformation ::= SEQUENCE { - gmlc-List [0] IMPLICIT GMLC-List OPTIONAL, - lcs-PrivacyExceptionList [1] IMPLICIT LCS-PrivacyExceptionList OPTIONAL, - molr-List [2] IMPLICIT MOLR-List OPTIONAL, - ..., - add-lcs-PrivacyExceptionList [3] LCS-PrivacyExceptionList OPTIONAL } --- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is --- present and contains four instances of LCS-PrivacyClass. If the mentioned condition --- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList. --- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in --- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected --- data value shall be returned. - -GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF ISDN-AddressString --- if segmentation is used, the complete GMLC-List shall be sent in one segment -maxNumOfGMLC INTEGER ::= 5 - -NetworkAccessMode ::= ENUMERATED { - bothMSCAndSGSN (0), - onlyMSC (1), - onlySGSN (2), -...} --- if unknown values are received in NetworkAccessMode --- they shall be discarded. - -GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF PDP-Context -maxNumOfPDP-Contexts INTEGER ::= 50 - -PDP-Context ::= SEQUENCE { - pdp-ContextId ContextId, - pdp-Type [16] IMPLICIT PDP-Type, - pdp-Address [17] IMPLICIT PDP-Address OPTIONAL, - qos-Subscribed [18] IMPLICIT QoS-Subscribed, - vplmnAddressAllowed [19] IMPLICIT NULL OPTIONAL, - apn [20] IMPLICIT APN, - extensionContainer [21] IMPLICIT ExtensionContainer OPTIONAL, - ... , - ext-QoS-Subscribed [0] IMPLICIT Ext-QoS-Subscribed OPTIONAL, - pdp-ChargingCharacteristics [1] IMPLICIT ChargingCharacteristics OPTIONAL, - ext2-QoS-Subscribed [2] IMPLICIT Ext2-QoS-Subscribed OPTIONAL --- ext2-QoS-Subscribed may be present only if ext-QoS-Subscribed is present. -} - -ContextId ::= INTEGER (1..maxNumOfPDP-Contexts) - -GPRSSubscriptionData ::= SEQUENCE { - completeDataListIncluded NULL OPTIONAL, --- If segmentation is used, completeDataListIncluded may only be present in the --- first segment. - gprsDataList [1] IMPLICIT GPRSDataList, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -... } - -SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE { - gprs-CSI [0] IMPLICIT GPRS-CSI OPTIONAL, - mo-sms-CSI [1] IMPLICIT SMS-CSI OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ..., - mt-sms-CSI [3] IMPLICIT SMS-CSI OPTIONAL, - mt-smsCAMELTDP-CriteriaList [4] IMPLICIT MT-smsCAMELTDP-CriteriaList OPTIONAL, - mg-csi [5] IMPLICIT MG-CSI OPTIONAL -} - -GPRS-CSI ::= SEQUENCE { - gprs-CamelTDPDataList [0] IMPLICIT GPRS-CamelTDPDataList OPTIONAL, - camelCapabilityHandling [1] IMPLICIT CamelCapabilityHandling OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - notificationToCSE [3] IMPLICIT NULL OPTIONAL, - csi-Active [4] IMPLICIT NULL OPTIONAL, -...} --- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN. --- They may only be included in ATSI/ATM ack/NSDC message. --- GPRS-CamelTDPData and camelCapabilityHandling shall be present in --- the GPRS-CSI sequence. --- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be --- present in the first segment - -GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF -GPRS-CamelTDPData --- GPRS-CamelTDPDataList shall not contain more than one instance of --- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint. - -GPRS-CamelTDPData ::= SEQUENCE { - gprs-TriggerDetectionPoint [0] IMPLICIT GPRS-TriggerDetectionPoint, - serviceKey [1] IMPLICIT ServiceKey, - gsmSCF-Address [2] IMPLICIT ISDN-AddressString, - defaultSessionHandling [3] IMPLICIT DefaultGPRS-Handling, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, -... -} - -DefaultGPRS-Handling ::= ENUMERATED { - continueTransaction (0) , - releaseTransaction (1) , -...} --- exception handling: --- reception of values in range 2-31 shall be treated as "continueTransaction" --- reception of values greater than 31 shall be treated as "releaseTransaction" - -GPRS-TriggerDetectionPoint ::= ENUMERATED { - attach (1), - attachChangeOfPosition (2), - pdp-ContextEstablishment (11), - pdp-ContextEstablishmentAcknowledgement (12), - pdp-ContextChangeOfPosition (14), -... } --- exception handling: --- For GPRS-CamelTDPData sequences containing this parameter with any --- other value than the ones listed the receiver shall ignore the whole --- GPRS-CamelTDPDatasequence. - -APN ::= OCTET STRING (SIZE (2..63)) --- Octets are coded according to TS 3GPP TS 23.003 [17] - -PDP-Type ::= OCTET STRING (SIZE (2)) --- Octets are coded according to TS 3GPP TS 29.060 [105] - -PDP-Address ::= OCTET STRING (SIZE (1..16)) --- Octets are coded according to TS 3GPP TS 29.060 [105] --- The possible size values are: --- 1-7 octets X.25 address type --- 4 octets IPv4 address type --- 16 octets Ipv6 address type - -QoS-Subscribed ::= OCTET STRING (SIZE (3)) --- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets --- 3-5. - -Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9)) --- 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. - -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. - -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 - -LSAOnlyAccessIndicator ::= ENUMERATED { - accessOutsideLSAsAllowed (0), - accessOutsideLSAsRestricted (1)} - -LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF LSAData -maxNumOfLSAs INTEGER ::= 20 - -LSAData ::= SEQUENCE { - lsaIdentity [0] IMPLICIT LSAIdentity, - lsaAttributes [1] IMPLICIT LSAAttributes, - lsaActiveModeIndicator [2] IMPLICIT NULL OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} - -LSAInformation ::= SEQUENCE { - completeDataListIncluded NULL OPTIONAL, --- If segmentation is used, completeDataListIncluded may only be present in the --- first segment. - lsaOnlyAccessIndicator [1] IMPLICIT LSAOnlyAccessIndicator OPTIONAL, - lsaDataList [2] IMPLICIT LSADataList OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} - -LSAIdentity ::= OCTET STRING (SIZE (3)) --- Octets are coded according to TS 3GPP TS 23.003 [17] - -LSAAttributes ::= OCTET STRING (SIZE (1)) --- Octets are coded according to TS 3GPP TS 48.008 [49] - - --- RESULT -InsertSubscriberDataRes ::= SEQUENCE { - teleserviceList [1] IMPLICIT TeleserviceList OPTIONAL, - bearerServiceList [2] IMPLICIT BearerServiceList OPTIONAL, - ss-List [3] IMPLICIT SS-List OPTIONAL, - odb-GeneralData [4] IMPLICIT ODB-GeneralData OPTIONAL, - regionalSubscriptionResponse [5] IMPLICIT RegionalSubscriptionResponse OPTIONAL, - supportedCamelPhases [6] IMPLICIT SupportedCamelPhases OPTIONAL, - extensionContainer [7] IMPLICIT ExtensionContainer OPTIONAL, - ... , - offeredCamel4CSIs [8] IMPLICIT OfferedCamel4CSIs OPTIONAL } - --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unidentifiedSubscriber localValue : 5} --- ::= localValue : 7 - -RegionalSubscriptionResponse ::= ENUMERATED { - networkNodeAreaRestricted ( 0 ), - tooManyZoneCodes ( 1 ), - zoneCodesConflict ( 2 ), - regionalSubscNotSupported ( 3 ) -} -CallTypeCriteria ::= ENUMERATED { - forwarded ( 0 ), - notForwarded ( 1 ) -} - ---deleteSubscriberData OPERATION --- ARGUMENT - -DeleteSubscriberDataArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - basicServiceList [1] IMPLICIT BasicServiceList OPTIONAL, --- The exception handling for reception of unsupported/not allocated --- basicServiceCodes is defined in section 6.8.2 - ss-List [2] IMPLICIT SS-List OPTIONAL, - roamingRestrictionDueToUnsupportedFeature [4] IMPLICIT NULL OPTIONAL, - regionalSubscriptionIdentifier [5] IMPLICIT ZoneCode OPTIONAL, - vbsGroupIndication [7] IMPLICIT NULL OPTIONAL, - vgcsGroupIndication [8] IMPLICIT NULL OPTIONAL, - camelSubscriptionInfoWithdraw [9] IMPLICIT NULL OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, - ..., - gprsSubscriptionDataWithdraw [10] IMPLICIT GPRSSubscriptionDataWithdraw OPTIONAL, - roamingRestrictedInSgsnDueToUnsuppportedFeature [11] IMPLICIT NULL OPTIONAL, - lsaInformationWithdraw [12] IMPLICIT LSAInformationWithdraw OPTIONAL, - gmlc-ListWithdraw [13] IMPLICIT NULL OPTIONAL, - istInformationWithdraw [14] NULL OPTIONAL, - specificCSI-Withdraw [15] IMPLICIT SpecificCSI-Withdraw OPTIONAL, - chargingCharacteristicsWithdraw [16] IMPLICIT NULL OPTIONAL } - --- RESULT -DeleteSubscriberDataRes ::= SEQUENCE { - regionalSubscriptionResponse [0] IMPLICIT RegionalSubscriptionResponse OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unidentifiedSubscriber localValue : 5} --- ::= localValue : 8 - -SpecificCSI-Withdraw ::= BIT STRING { - o-csi (0), - ss-csi (1), - tif-csi (2), - d-csi (3), - vt-csi (4), - mo-sms-csi (5), - m-csi (6), - gprs-csi (7), - t-csi (8), - mt-sms-csi (9), - mg-csi (10), - o-IM-CSI (11), - d-IM-CSI (12), - vt-IM-CSI (13) } (SIZE(8..32)) --- exception handling: --- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity. --- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity. --- bits 11-13 are only applicable in an IP Multimedia Core Network. --- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation. - -GPRSSubscriptionDataWithdraw ::= CHOICE { - allGPRSData NULL, - contextIdList ContextIdList} - -ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF -ContextId - -LSAInformationWithdraw ::= CHOICE { - allLSAData NULL, - lsaIdentityList LSAIdentityList } - -LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF -LSAIdentity - - -BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF -Ext-BasicServiceCode -maxNumOfBasicServices INTEGER ::= 70 - -VlrCamelSubscriptionInfo ::= SEQUENCE { - o-CSI [0] IMPLICIT O-CSI OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ..., - ss-CSI [2] IMPLICIT SS-CSI OPTIONAL, - o-BcsmCamelTDP-CriteriaList [4] IMPLICIT O-BcsmCamelTDPCriteriaList OPTIONAL, - tif-CSI [3] IMPLICIT NULL OPTIONAL, - m-CSI [5] IMPLICIT M-CSI OPTIONAL, - mo-sms-CSI [6] IMPLICIT SMS-CSI OPTIONAL, - vt-CSI [7] IMPLICIT T-CSI OPTIONAL, - t-BCSM-CAMEL-TDP-CriteriaList [8] IMPLICIT T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, - d-CSI [9] IMPLICIT D-CSI OPTIONAL, - mt-sms-CSI [10] IMPLICIT SMS-CSI OPTIONAL, - mt-smsCAMELTDP-CriteriaList [11] IMPLICIT MT-smsCAMELTDP-CriteriaList OPTIONAL -} - - -MT-smsCAMELTDP-CriteriaList ::= SEQUENCE SIZE (1.. maxNumOfCamelTDPData) OF -MT-smsCAMELTDP-Criteria - -MT-smsCAMELTDP-Criteria ::= SEQUENCE { - sms-TriggerDetectionPoint SMS-TriggerDetectionPoint, - tpdu-TypeCriterion [0] IMPLICIT TPDU-TypeCriterion OPTIONAL, -... } - -TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF -MT-SMS-TPDU-Type -maxNumOfTPDUTypes INTEGER ::= 5 - -MT-SMS-TPDU-Type ::= ENUMERATED { - sms-DELIVER (0), - sms-SUBMIT-REPORT (1), - sms-STATUS-REPORT (2), -... } --- exception handling: --- For TPDU-TypeCriterion sequences containing this parameter with any --- other value than the ones listed above the receiver shall ignore --- the whole TPDU-TypeCriterion sequence. --- In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion --- sequence containing sms-SUBMIT-REPORT shall be wholly ignored. - -D-CSI ::= SEQUENCE { - dp-AnalysedInfoCriteriaList [0] IMPLICIT DP-AnalysedInfoCriteriaList OPTIONAL, - camelCapabilityHandling [1] IMPLICIT CamelCapabilityHandling OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - notificationToCSE [3] IMPLICIT NULL OPTIONAL, - csi-Active [4] IMPLICIT NULL OPTIONAL, -...} --- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC. --- They may only be included in ATSI/ATM ack/NSDC message. --- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in --- the D-CSI sequence. --- If D-CSI is segmented, then the first segment shall contain dp-AnalysedInfoCriteriaList --- and camelCapabilityHandling. Subsequent segments shall not contain --- camelCapabilityHandling, but may contain dp-AnalysedInfoCriteriaList. - -DP-AnalysedInfoCriteriaList ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF -DP-AnalysedInfoCriterium -maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10 - -DP-AnalysedInfoCriterium ::= SEQUENCE { - dialledNumber ISDN-AddressString, - serviceKey ServiceKey, - gsmSCF-Address ISDN-AddressString, - defaultCallHandling DefaultCallHandling, - extensionContainer ExtensionContainer OPTIONAL, -...} - -SS-CSI ::= SEQUENCE { - ss-CamelData SS-CamelData, - extensionContainer ExtensionContainer OPTIONAL, - ..., - notificationToCSE [0] IMPLICIT NULL OPTIONAL, - csi-Active [1] IMPLICIT NULL OPTIONAL --- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR. --- They may only be included in ATSI/ATM ack/NSDC message. -} - -SS-CamelData ::= SEQUENCE { - ss-EventList SS-EventList, - gsmSCF-Address ISDN-AddressString, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - - - - -MG-CSI ::= SEQUENCE { - mobilityTriggers MobilityTriggers, - serviceKey ServiceKey, - gsmSCF-Address [0] IMPLICIT ISDN-AddressString, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - notificationToCSE [2] IMPLICIT NULL OPTIONAL, - csi-Active [3] IMPLICIT NULL OPTIONAL, -...} --- notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN. --- They may only be included in ATSI/ATM ack/NSDC message. - - - --- Wireshark adaptation -- -Category ::= OCTET STRING (SIZE (1)) --- The internal structure is defined in ITU-T Rec Q.763. - -BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF -Ext-BearerServiceCode -maxNumOfBearerServices INTEGER ::= 50 - -TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF -Ext-TeleserviceCode -maxNumOfTeleservices INTEGER ::= 20 - -Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF -Ext-SS-Info - -Ext-SS-Info ::= CHOICE { - forwardingInfo [0] IMPLICIT Ext-ForwInfo, - callBarringInfo [1] IMPLICIT Ext-CallBarInfo, - cug-Info [2] IMPLICIT CUG-Info, - ss-Data [3] IMPLICIT Ext-SS-Data, - emlpp-Info [4] IMPLICIT EMLPP-Info} - -Ext-ForwInfo ::= SEQUENCE { - ss-Code SS-Code, - forwardingFeatureList Ext-ForwFeatureList, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-ForwFeature - -Ext-ForwFeature ::= SEQUENCE { - basicService Ext-BasicServiceCode OPTIONAL, - ss-Status [4] IMPLICIT Ext-SS-Status, - forwardedToNumber [5] IMPLICIT ISDN-AddressString OPTIONAL, --- When this data type is sent from an HLR which supports CAMEL Phase 2 --- to a VLR that supports CAMEL Phase 2 the VLR shall not check the --- format of the number - forwardedToSubaddress [8] IMPLICIT ISDN-SubaddressString OPTIONAL, - forwardingOptions [6] IMPLICIT Ext-ForwOptions OPTIONAL, - noReplyConditionTime [7] IMPLICIT Ext-NoRepCondTime OPTIONAL, - extensionContainer [9] IMPLICIT ExtensionContainer OPTIONAL, - ..., - longForwardedToNumber [10] IMPLICIT FTN-AddressString OPTIONAL } - -Ext-ForwOptions ::= OCTET STRING (SIZE (1..5)) --- OCTET 1: --- bit 8: notification to forwarding party --- 0 no notification --- 1 notification --- bit 7: redirecting presentation --- 0 no presentation --- 1 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 --- bits 21: 00 (unused) --- OCTETS 2-5: reserved for future use. They shall be discarded if --- received and not understood. - -Ext-NoRepCondTime ::= INTEGER (1..100) --- Only values 5-30 are used. --- Values in the ranges 1-4 and 31-100 are reserved for future use --- If received: --- values 1-4 shall be mapped on to value 5 --- values 31-100 shall be mapped on to value 30 - -Ext-CallBarInfo ::= SEQUENCE { - ss-Code SS-Code, - callBarringFeatureList Ext-CallBarFeatureList, - extensionContainer ExtensionContainer OPTIONAL, -...} - -Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF -Ext-CallBarringFeature - -Ext-CallBarringFeature ::= SEQUENCE { - basicService Ext-BasicServiceCode OPTIONAL, - ss-Status [4] IMPLICIT Ext-SS-Status, - extensionContainer ExtensionContainer OPTIONAL, -...} - -ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes) -OF ZoneCode - -ZoneCode ::= OCTET STRING (SIZE (2)) --- internal structure is defined in TS 3GPP TS 23.003 [17] -maxNumOfZoneCodes INTEGER ::= 10 - -EMLPP-Info ::= SEQUENCE { - maximumentitledPriority EMLPP-Priority, - defaultPriority EMLPP-Priority, - extensionContainer ExtensionContainer OPTIONAL, -...} - -EMLPP-Priority ::= INTEGER (0..15) --- The mapping from the values A,B,0,1,2,3,4 to the integer-value is --- specified as follows where A is the highest and 4 is the lowest --- priority level --- the integer values 7-15 are spare and shall be mapped to value 4 - -CliRestrictionOption ::= ENUMERATED { - permanent ( 0 ), - temporaryDefaultRestricted ( 1 ), - temporaryDefaultAllowed ( 2 ) -} - - -CUG-Info ::= SEQUENCE { - cug-SubscriptionList CUG-SubscriptionList, - cug-FeatureList CUG-FeatureList OPTIONAL, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF -CUG-Subscription -maxNumOfCUG INTEGER ::= 10 - -CUG-Subscription ::= SEQUENCE { - cug-Index CUG-Index, - cug-Interlock CUG-Interlock, - intraCUG-Options IntraCUG-Options, - basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -CUG-Index ::= INTEGER (0..32767) --- The internal structure is defined in ETS 300 138. - -CUG-Interlock ::= OCTET STRING (SIZE (4)) - -IntraCUG-Options ::= ENUMERATED { - noCUG-Restrictions (0), - cugIC-CallBarred (1), - cugOG-CallBarred (2)} - -CUG-FeatureList ::= SEQUENCE SIZE (1..32) OF -CUG-Feature - -Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF -Ext-BasicServiceCode -maxNumOfExt-BasicServiceGroups INTEGER ::= 32 - -CUG-Feature ::= SEQUENCE { - basicService Ext-BasicServiceCode OPTIONAL, - preferentialCUG-Indicator CUG-Index OPTIONAL, - interCUG-Restrictions InterCUG-Restrictions, - extensionContainer ExtensionContainer OPTIONAL, -...} - -InterCUG-Restrictions ::= OCTET STRING (SIZE (1)) --- bits 876543: 000000 (unused) --- Exception handling: --- bits 876543 shall be ignored if received and not understood --- bits 21 --- 00 CUG only facilities --- 01 CUG with outgoing access --- 10 CUG with incoming access --- 11 CUG with both outgoing and incoming access - -Ext-SS-Data ::= SEQUENCE { - ss-Code SS-Code, - ss-Status [4] IMPLICIT Ext-SS-Status, - ss-SubscriptionOption SS-SubscriptionOption OPTIONAL, - basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL, - extensionContainer [5] IMPLICIT ExtensionContainer OPTIONAL, -...} - -LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF -LCS-PrivacyClass -maxNumOfPrivacyClass INTEGER ::= 4 - -LCS-PrivacyClass ::= SEQUENCE { - ss-Code SS-Code, - ss-Status Ext-SS-Status, - notificationToMSUser [0] IMPLICIT NotificationToMSUser OPTIONAL, --- --- notificationToMSUser may be sent only for SS-codes callSessionRelated --- and callSessionUnrelated. If not received for SS-codes callSessionRelated --- and callSessionUnrelated, --- the default values according to 3GPP TS 23.271 shall be assumed. --- - externalClientList [1] IMPLICIT ExternalClientList OPTIONAL, --- --- externalClientList may be sent only for SS-code callSessionUnrelated to a --- visited node that does not support LCS Release 4 or later versions. --- externalClientList may be sent only for SS-codes callSessionUnrelated and --- callSessionRelated to a visited node that supports LCS Release 4 or later versions. --- - plmnClientList [2] IMPLICIT PLMNClientList OPTIONAL, --- --- plmnClientList may be sent only for SS-code plmnoperator. - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ..., - ext-externalClientList [4] IMPLICIT Ext-ExternalClientList OPTIONAL, --- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or --- later versions, the user did specify more than 5 clients, and White Book SCCP is used. --- - serviceTypeList [5] IMPLICIT ServiceTypeList OPTIONAL --- --- serviceTypeList may be sent only for SS-code serviceType and if the visited node --- supports LCS Release 5 or later versions. --- --- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment -} - -ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF -ExternalClient -maxNumOfExternalClient INTEGER ::= 5 - -PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF -LCSClientInternalID -maxNumOfPLMNClient INTEGER ::= 5 - -Ext-ExternalClientList ::= SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF -ExternalClient -maxNumOfExt-ExternalClient INTEGER ::= 35 - -ExternalClient ::= SEQUENCE { - clientIdentity LCSClientExternalID, - gmlc-Restriction [0] IMPLICIT GMLC-Restriction OPTIONAL, - notificationToMSUser [1] IMPLICIT NotificationToMSUser OPTIONAL, --- If notificationToMSUser is not received, the default value according to --- 3GPP TS 23.271 shall be assumed. - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -... } - -GMLC-Restriction ::= ENUMERATED { - gmlc-List (0), - home-Country (1) , -... } --- exception handling: --- At reception of any other value than the ones listed the receiver shall ignore --- GMLC-Restriction. - -NotificationToMSUser ::= ENUMERATED { - notifyLocationAllowed (0), - notifyAndVerify-LocationAllowedIfNoResponse (1), - notifyAndVerify-LocationNotAllowedIfNoResponse (2), - ..., - locationNotAllowed (3) } --- exception handling: --- At reception of any other value than the ones listed the receiver shall ignore --- NotificationToMSUser. - - -ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF -ServiceType -maxNumOfServiceType INTEGER ::= 32 - -ServiceType ::= SEQUENCE { - serviceTypeIdentity LCSServiceTypeID, - gmlc-Restriction [0] IMPLICIT GMLC-Restriction OPTIONAL, - notificationToMSUser [1] IMPLICIT NotificationToMSUser OPTIONAL, --- If notificationToMSUser is not received, the default value according to --- 3GPP TS 23.271 shall be assumed. - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ... } - -MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF -MOLR-Class -maxNumOfMOLR-Class INTEGER ::= 3 - -MOLR-Class ::= SEQUENCE { - ss-Code SS-Code, - ss-Status Ext-SS-Status, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ...} - -CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF -CallBarringFeature - -CallBarringFeature ::= SEQUENCE { - basicService BasicServiceCode OPTIONAL, - ss-Status [4] IMPLICIT SS-Status OPTIONAL, -...} - -ForwardingFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF ForwardingFeature - -ForwardingFeature ::= SEQUENCE { - basicService BasicServiceCode OPTIONAL, - ss-Status [4] IMPLICIT SS-Status OPTIONAL, - forwardedToNumber [5] IMPLICIT ISDN-AddressString OPTIONAL, - forwardedToSubaddress [8] IMPLICIT ISDN-SubaddressString OPTIONAL, - forwardingOptions [6] IMPLICIT ForwardingOptions OPTIONAL, - noReplyConditionTime [7] IMPLICIT NoReplyConditionTime OPTIONAL, - ..., - longForwardedToNumber [9] IMPLICIT FTN-AddressString OPTIONAL } - --- not used --- LongForwardedToNumber ::= OCTET STRING ( SIZE (1 .. 20 ) ) - - -DestinationNumberCriteria ::= SEQUENCE { - matchType [0] IMPLICIT MatchType, - destinationNumberList [1] IMPLICIT DestinationNumberList OPTIONAL, - destinationNumberLengthList [2] IMPLICIT DestinationNumberLengthList OPTIONAL, --- one or both of destinationNumberList and destinationNumberLengthList --- shall be present -...} - - -DestinationNumberList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF -ISDN-AddressString --- The receiving entity shall not check the format of a number in --- the dialled number list -maxNumOfCamelDestinationNumbers INTEGER ::= 10 - --- Syntax in GSM specification is the following: --- DestinationNumberLengthList ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF --- INTEGER(1..maxNumOfISDN-AddressDigits) -DestinationNumberLengthList ::= SEQUENCE SIZE (1..3) OF INTEGER(1..15) -maxNumOfCamelDestinationNumberLengths INTEGER ::= 3 -maxNumOfISDN-AddressDigits INTEGER ::= 15 - -ForwardingInfo ::= SEQUENCE { - ss-Code SS-Code OPTIONAL, - forwardingFeatureList ForwardingFeatureList, -...} - -ForwardingOptions ::= OCTET STRING ( SIZE( 1 ) ) --- bit 8: notification to forwarding party --- 0 no notification --- 1 notification --- bit 7: redirecting presentation --- 0 no presentation --- 1 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 --- bits 21: 00 (unused) - -CallBarringInfo ::= SEQUENCE { - ss-Code SS-Code OPTIONAL, - callBarringFeatureList CallBarringFeatureList, -...} - --- noReplyConditionTime [7] IMPLICIT INTEGER ( 1 .. 100 ) OPTIONAL, --- Changed to no size - - -MC-SS-Info ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - ss-Status [1] IMPLICIT Ext-SS-Status, - nbrSB [2] IMPLICIT MaxMC-Bearers, - nbrUser [3] IMPLICIT MC-Bearers, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, -...} - -MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers) - -MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers) -maxNumOfMC-Bearers INTEGER ::= 7 - ---reset OPERATION --- ARGUMENT -ResetArg ::= SEQUENCE { - hlr-Number ISDN-AddressString, - hlr-List HLR-List OPTIONAL, -...} - --- ::= localValue : 37 - --- not used --- Hlr-Number ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) ---forwardCheckSS-Indication OPERATION --- ::= localValue : 38 - ---restoreData OPERATION --- ARGUMENT -RestoreDataArg ::= SEQUENCE { - imsi IMSI, - lmsi LMSI OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - vlr-Capability [6] IMPLICIT VLR-Capability OPTIONAL} --- RESULT -RestoreDataRes ::= SEQUENCE { - hlr-Number ISDN-AddressString, - msNotReachable NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 57 - -VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF VoiceBroadcastData -maxNumOfVBSGroupIds INTEGER ::= 50 - -VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF VoiceGroupCallData -maxNumOfVGCSGroupIds INTEGER ::= 50 - -VoiceGroupCallData ::= SEQUENCE { - groupId GroupId, - extensionContainer ExtensionContainer OPTIONAL, -...} - -VoiceBroadcastData ::= SEQUENCE { - groupid GroupId, - broadcastInitEntitlement NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ..., - additionalSubscriptions AdditionalSubscriptions OPTIONAL, - additionalInfo [0] IMPLICIT AdditionalInfo OPTIONAL } - -AdditionalInfo ::= BIT STRING (SIZE (1..136)) --- Refers to Additional Info as specified in 3GPP TS 43.068 - -AdditionalSubscriptions ::= BIT STRING { - privilegedUplinkRequest (0), - emergencyUplinkRequest (1), - emergencyReset (2)} (SIZE (3..8)) --- Other bits than listed above shall be discarded. - - -GroupId ::= TBCD-STRING (SIZE (3)) --- When Group-Id is less than six characters in length, the TBCD filler (1111) --- is used to fill unused half octets. --- Refers to the Group Identification as specified in 3GPP TS 23.003 --- and 3GPP TS 43.068/ 43.069 - - --- --- Operation and maintenance data types --- - ---activateTraceMode OPERATION --- ARGUMENT -ActivateTraceModeArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI OPTIONAL, - traceReference [1] IMPLICIT TraceReference, - traceType [2] IMPLICIT TraceType, - omc-Id [3] IMPLICIT AddressString OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ..., - traceReference2 [5] IMPLICIT TraceReference2 OPTIONAL, - traceDepthList [6] IMPLICIT TraceDepthList OPTIONAL, - traceNE-TypeList [7] IMPLICIT TraceNE-TypeList OPTIONAL, - traceInterfaceList [8] IMPLICIT TraceInterfaceList OPTIONAL, - traceEventList [9] IMPLICIT TraceEventList OPTIONAL } - -- RESULT - -TraceReference ::= OCTET STRING (SIZE (1..2)) - -TraceReference2 ::= OCTET STRING (SIZE (3)) - -TraceRecordingSessionReference ::= OCTET STRING (SIZE (2)) - -TraceType ::= INTEGER (0..255) --- Trace types are fully defined in 3GPP TS 52.008. [61] - -TraceDepthList ::= SEQUENCE { - msc-s-TraceDepth [0] IMPLICIT TraceDepth OPTIONAL, - mgw-TraceDepth [1] IMPLICIT TraceDepth OPTIONAL, - sgsn-TraceDepth [2] IMPLICIT TraceDepth OPTIONAL, - ggsn-TraceDepth [3] IMPLICIT TraceDepth OPTIONAL, - rnc-TraceDepth [4] IMPLICIT TraceDepth OPTIONAL, - bmsc-TraceDepth [5] IMPLICIT TraceDepth OPTIONAL, - ...} - -TraceDepth ::= ENUMERATED { - minimum (0), - medium (1), - maximum (2), - ...} --- The value medium is applicable only for RNC. For other network elements, if value medium --- is received, value minimum shall be applied. - -TraceNE-TypeList ::= BIT STRING { - msc-s (0), - mgw (1), - sgsn (2), - ggsn (3), - rnc (4), - bm-sc (5)} (SIZE (6..16)) --- Other bits than listed above shall be discarded. - -TraceInterfaceList ::= SEQUENCE { - msc-s-IList [0] IMPLICIT MSC-S-InterfaceList OPTIONAL, - mgw-IList [1] IMPLICIT MGW-InterfaceList OPTIONAL, - sgsn-IList [2] IMPLICIT SGSN-InterfaceList OPTIONAL, - ggsn-IList [3] IMPLICIT GGSN-InterfaceList OPTIONAL, - rnc-IList [4] IMPLICIT RNC-InterfaceList OPTIONAL, - bmsc-IList [5] IMPLICIT BMSC-InterfaceList OPTIONAL, - ...} - -MSC-S-InterfaceList ::= BIT STRING { - a (0), - iu (1), - mc (2), - map-g (3), - map-b (4), - map-e (5), - map-f (6), - cap (7), - map-d (8), - map-c (9)} (SIZE (10..16)) --- Other bits than listed above shall be discarded. - -MGW-InterfaceList ::= BIT STRING { - mc (0), - nb-up (1), - iu-up (2)} (SIZE (3..8)) --- Other bits than listed above shall be discarded. - -SGSN-InterfaceList ::= BIT STRING { - gb (0), - iu (1), - gn (2), - map-gr (3), - map-gd (4), - map-gf (5), - gs (6), - ge (7)} (SIZE (8..16)) --- Other bits than listed above shall be discarded. - -GGSN-InterfaceList ::= BIT STRING { - gn (0), - gi (1), - gmb (2)} (SIZE (3..8)) --- Other bits than listed above shall be discarded. - -RNC-InterfaceList ::= BIT STRING { - iu (0), - iur (1), - iub (2), - uu (3)} (SIZE (4..8)) --- Other bits than listed above shall be discarded. - -BMSC-InterfaceList ::= BIT STRING { - gmb (0)} (SIZE (1..8)) --- Other bits than listed above shall be discarded. - -TraceEventList ::= SEQUENCE { - msc-s-EList [0] IMPLICIT MSC-S-EventList OPTIONAL, - mgw-EList [1] IMPLICIT MGW-EventList OPTIONAL, - sgsn-EList [2] IMPLICIT SGSN-EventList OPTIONAL, - ggsn-EList [3] IMPLICIT GGSN-EventList OPTIONAL, - bmsc-EList [4] IMPLICIT BMSC-EventList OPTIONAL, - ...} - -MSC-S-EventList ::= BIT STRING { - mo-mtCall (0), - mo-mt-sms (1), - lu-imsiAttach-imsiDetach (2), - handovers (3), - ss (4)} (SIZE (5..16)) --- Other bits than listed above shall be discarded. - -MGW-EventList ::= BIT STRING { - context (0)} (SIZE (1..8)) --- Other bits than listed above shall be discarded. +RAND ::= OCTET STRING (SIZE (16)) -SGSN-EventList ::= BIT STRING { - pdpContext (0), - mo-mt-sms (1), - rau-gprsAttach-gprsDetach (2), - mbmsContext (3)} (SIZE (4..16)) --- Other bits than listed above shall be discarded. +SRES ::= OCTET STRING (SIZE (4)) -GGSN-EventList ::= BIT STRING { - pdpContext (0), - mbmsContext (1)} (SIZE (2..8)) --- Other bits than listed above shall be discarded. +Kc ::= OCTET STRING (SIZE (8)) -BMSC-EventList ::= BIT STRING { - mbmsMulticastServiceActivation (0)} (SIZE (1..8)) --- Other bits than listed above shall be discarded. +SendIdentificationResV2 ::= SEQUENCE { + imsi IMSI OPTIONAL, + tripletList TripletListold OPTIONAL, + ...} +TripletListold ::= SEQUENCE SIZE (1..5) OF + AuthenticationTriplet-v2 -TracePropagationList ::= SEQUENCE { - traceReference [0] IMPLICIT TraceReference OPTIONAL, - traceType [1] IMPLICIT TraceType OPTIONAL, - traceReference2 [2] IMPLICIT TraceReference2 OPTIONAL, - traceRecordingSessionReference [3] IMPLICIT TraceRecordingSessionReference OPTIONAL, - rnc-TraceDepth [4] IMPLICIT TraceDepth OPTIONAL, - rnc-InterfaceList [5] IMPLICIT RNC-InterfaceList OPTIONAL, - msc-s-TraceDepth [6] IMPLICIT TraceDepth OPTIONAL, - msc-s-InterfaceList [7] IMPLICIT MSC-S-InterfaceList OPTIONAL, - msc-s-EventList [8] IMPLICIT MSC-S-EventList OPTIONAL, - mgw-TraceDepth [9] IMPLICIT TraceDepth OPTIONAL, - mgw-InterfaceList [10] IMPLICIT MGW-InterfaceList OPTIONAL, - mgw-EventList [11] IMPLICIT MGW-EventList OPTIONAL, +AuthenticationTriplet-v2 ::= SEQUENCE { + rand RAND, + sres SRES, + kc Kc, ...} -ActivateTraceModeRes ::= SEQUENCE { - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ..., - traceSupportIndicator [1] IMPLICIT NULL OPTIONAL} --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unidentifiedSubscriber localValue : 5, --- tracingBufferFull localValue : 40} --- ::= localValue : 50 - ---deactivateTraceMode OPERATION --- ARGUMENT -DeactivateTraceModeArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI OPTIONAL, - traceReference [1] IMPLICIT TraceReference, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ..., - traceReference2 [3] IMPLICIT TraceReference2 OPTIONAL } - --- RESULT -DeactivateTraceModeRes ::= SEQUENCE { - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unidentifiedSubscriber localValue : 5} --- ::= localValue : 51 - ---sendIMSI OPERATION --- ARGUMENT ---Msisdn ::=defined elsewhere --- RESULT ---IMSI ::= defined elsewhere --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 58 - ---sendRoutingInfo OPERATION --- ARGUMENT - -SendRoutingInfoArg ::= SEQUENCE { - msisdn [0] IMPLICIT ISDN-AddressString, - cug-CheckInfo [1] IMPLICIT CUG-CheckInfo OPTIONAL, - numberOfForwarding [2] IMPLICIT NumberOfForwarding OPTIONAL, - interrogationType [3] IMPLICIT InterrogationType, - or-Interrogation [4] IMPLICIT NULL OPTIONAL, - or-Capability [5] IMPLICIT OR-Phase OPTIONAL, - gmsc-OrGsmSCF-Address [6] IMPLICIT ISDN-AddressString, - callReferenceNumber [7] IMPLICIT CallReferenceNumber OPTIONAL, - forwardingReason [8] IMPLICIT ForwardingReason OPTIONAL, - basicServiceGroup [9] IMPLICIT Ext-BasicServiceCode OPTIONAL, - networkSignalInfo [10] IMPLICIT ExternalSignalInfo OPTIONAL, - camelInfo [11] IMPLICIT CamelInfo OPTIONAL, - suppressionOfAnnouncement [12] IMPLICIT SuppressionOfAnnouncement OPTIONAL, - extensionContainer [13] IMPLICIT ExtensionContainer OPTIONAL, - ..., - alertingPattern [14] IMPLICIT AlertingPattern OPTIONAL, - ccbs-Call [15] IMPLICIT NULL OPTIONAL, - supportedCCBS-Phase [16] IMPLICIT SupportedCCBS-Phase OPTIONAL, - additionalSignalInfo [17] IMPLICIT Ext-ExternalSignalInfo OPTIONAL, - istSupportIndicator [18] IMPLICIT IST-SupportIndicator OPTIONAL, - pre-pagingSupported [19] IMPLICIT NULL OPTIONAL, - callDiversionTreatmentIndicator [20] IMPLICIT CallDiversionTreatmentIndicator OPTIONAL, - longFTN-Supported [21] IMPLICIT NULL OPTIONAL, - suppress-VT-CSI [22] NULL OPTIONAL, - suppressIncomingCallBarring [23] NULL OPTIONAL, - gsmSCF-InitiatedCall [24] NULL OPTIONAL, - basicServiceGroup2 [25] IMPLICIT Ext-BasicServiceCode OPTIONAL, - networkSignalInfo2 [26] IMPLICIT ExternalSignalInfo OPTIONAL -} --- RESULT -SendRoutingInfoRes ::= [3] SEQUENCE { - imsi [9] IMPLICIT IMSI OPTIONAL, - -- IMSI must be present if SendRoutingInfoRes is not segmented. - -- If the TC-Result-NL segmentation option is taken the IMSI must be - -- present in one segmented transmission of SendRoutingInfoRes. - extendedRoutingInfo ExtendedRoutingInfo OPTIONAL, - cug-CheckInfo [3] IMPLICIT CUG-CheckInfo OPTIONAL, - cugSubscriptionFlag [6] IMPLICIT NULL OPTIONAL, - subscriberInfo [7] IMPLICIT SubscriberInfo OPTIONAL, - ss-List [1] IMPLICIT SS-List OPTIONAL, - basicService [5] IMPLICIT Ext-BasicServiceCode OPTIONAL, - forwardingInterrogationRequired [4] IMPLICIT NULL OPTIONAL, - vmsc-Address [2] IMPLICIT ISDN-AddressString OPTIONAL, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ... , - naea-PreferredCI [10] IMPLICIT NAEA-PreferredCI OPTIONAL, - -- naea-PreferredCI is included at the discretion of the HLR operator. - ccbs-Indicators [11] IMPLICIT CCBS-Indicators OPTIONAL, - msisdn [12] IMPLICIT ISDN-AddressString OPTIONAL, - numberPortabilityStatus [13] IMPLICIT NumberPortabilityStatus OPTIONAL, - istAlertTimer [14] IMPLICIT IST-AlertTimerValue OPTIONAL, - supportedCamelPhasesInVMSC [15] IMPLICIT SupportedCamelPhases OPTIONAL, - offeredCamel4CSIsInVMSC [16] IMPLICIT OfferedCamel4CSIs OPTIONAL, - routingInfo2 [17] IMPLICIT RoutingInfo OPTIONAL, - ss-List2 [18] IMPLICIT SS-List OPTIONAL, - basicService2 [19] IMPLICIT Ext-BasicServiceCode OPTIONAL, - allowedServices [20] IMPLICIT AllowedServices OPTIONAL, - unavailabilityCause [21] IMPLICIT UnavailabilityCause OPTIONAL, - releaseResourcesSupported [22] IMPLICIT NULL OPTIONAL, - gsm-BearerCapability [23] IMPLICIT ExternalSignalInfo OPTIONAL -} --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- or-NotAllowed localValue : 48, --- unknownSubscriber localValue : 1, --- numberChanged localValue : 44, --- bearerServiceNotProvisioned localValue : 10, --- teleserviceNotProvisioned localValue : 11, --- absentSubscriber localValue : 27, --- busySubscriber localValue : 45, --- noSubscriberReply localValue : 46, --- callBarred localValue : 13, --- cug-Reject localValue : 15, --- forwardingViolation localValue : 14} --- ::= localValue : 22 - -NumberOfForwarding ::= INTEGER (1..5) - -InterrogationType ::= ENUMERATED { - basicCall (0), - forwarding (1)} - -OR-Phase ::= INTEGER (1..127) - -CallReferenceNumber ::= OCTET STRING (SIZE (1..8)) - -ForwardingReason ::= ENUMERATED { - notReachable (0), - busy (1), - noReply (2)} - -ExternalSignalInfo ::= SEQUENCE { - protocolId ProtocolId, - signalInfo SignalInfo, --- Information about the internal structure is given in --- clause 7.6.9. - extensionContainer ExtensionContainer OPTIONAL, --- extensionContainer must not be used in version 2 -...} - -SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength)) - -maxSignalInfoLength INTEGER ::= 200 --- This NamedValue represents the theoretical maximum number of octets which is --- available to carry a single instance of the SignalInfo data type, --- without requiring segmentation to cope with the network layer service. --- However, the actual maximum size available for an instance of the data --- type may be lower, especially when other information elements --- have to be included in the same component. - -Ext-ExternalSignalInfo ::= SEQUENCE { - ext-ProtocolId Ext-ProtocolId, - signalInfo SignalInfo, --- Information about the internal structure is given in --- clause 7.6.9.10 - extensionContainer ExtensionContainer OPTIONAL, -...} - -Ext-ProtocolId ::= ENUMERATED { - ets-300356 (1), -... -} - -AccessNetworkSignalInfo ::= SEQUENCE { - accessNetworkProtocolId AccessNetworkProtocolId, - signalInfo LongSignalInfo, --- Information about the internal structure is given in clause 7.6.9.1 - extensionContainer ExtensionContainer OPTIONAL, -...} - -LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength)) - -maxLongSignalInfoLength INTEGER ::= 2560 - -- This Named Value represents the maximum number of octets which is available - -- to carry a single instance of the LongSignalInfo data type using - -- White Book SCCP with the maximum number of segments. - -- It takes account of the octets used by the lower layers of the protocol, and - -- other information elements which may be included in the same component. - -CamelInfo ::= SEQUENCE { - supportedCamelPhases SupportedCamelPhases, - suppress-T-CSI NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - offeredCamel4CSIs [0] IMPLICIT OfferedCamel4CSIs OPTIONAL } - --- exception handling: --- For Ext-ExternalSignalInfo sequences containing this parameter with any --- other value than the ones listed the receiver shall ignore the whole --- Ext-ExternalSignalInfo sequence. - -SuppressionOfAnnouncement ::= NULL - -AccessNetworkProtocolId ::= ENUMERATED { - ts3G-48006 (1), - ts3G-25413 (2), -...} - --- exception handling: --- For AccessNetworkSignalInfo sequences containing this parameter with any --- other value than the ones listed the receiver shall ignore the whole --- AccessNetworkSignalInfo sequence. - -AlertingPattern ::= OCTET STRING (SIZE (1) ) --- This type is used to represent Alerting Pattern --- bits 8765 : 0000 (unused) --- bits 43 : type of Pattern --- 00 level --- 01 category --- 10 category --- all other values are reserved. --- bits 21 : type of alerting - --- Definition should be the following, but it doesn't work with gsmmap.cnf --- IMSI ::= TBCD-STRING (SIZE (3..8)) --- digits of MCC, MNC, MSIN are concatenated in this order. -IMSI ::= OCTET STRING (SIZE (3..8)) --- digits of MCC, MNC, MSIN are concatenated in this order. - -TBCD-STRING ::= OCTET STRING --- This type (Telephony Binary Coded Decimal String) is used to --- represent several digits from 0 through 9, *, #, a, b, c, two --- digits per octet, each digit encoded 0000 to 1001 (0 to 9), --- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used --- as filler when there is an odd number of digits. --- bits 8765 of octet n encoding digit 2n --- bits 4321 of octet n encoding digit 2(n-1) +1 - - -LMSI ::= OCTET STRING ( SIZE( 4 ) ) - - -Identity ::= CHOICE { - imsi IMSI, - imsi-WithLMSI IMSI-WithLMSI} - -IMSI-WithLMSI ::= SEQUENCE { - imsi IMSI, - lmsi LMSI, --- a special value 00000000 indicates that the LMSI is not in use -...} - -ASCI-CallReference ::= TBCD-STRING (SIZE (1..8)) --- digits of VGCS/VBC-area,Group-ID are concatenated in this order. - -TMSI ::= OCTET STRING (SIZE (1..4)) - --- not used --- SubscriberId ::= CHOICE { --- imsi [0] IMSI, --- tmsi [1] TMSI} - -IMEI ::= TBCD-STRING (SIZE (8)) - --- Refers to International Mobile Station Equipment Identity --- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17]. --- If the SVN is not present the last octet shall contain the --- digit 0 and a filler. --- If present the SVN shall be included in the last octet. - -HLR-Id ::= IMSI --- leading digits of IMSI, i.e. (MCC, MNC, leading digits of --- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17]. - -HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF HLR-Id -maxNumOfHLR-Id INTEGER ::= 50 - -SupportedCCBS-Phase ::= INTEGER (1..127) --- exception handling: --- Only value 1 is used. --- Values in the ranges 2-127 are reserved for future use. --- If received values 2-127 shall be mapped on to value 1. - -CallDiversionTreatmentIndicator ::= OCTET STRING (SIZE(1)) --- callDiversionAllowed (xxxx xx01) --- callDiversionNotAllowed (xxxx xx10) --- network default is call diversion allowed - - -SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF -SS-Code -maxNumOfSS INTEGER ::= 30 - -NAEA-PreferredCI ::= SEQUENCE { - naea-PreferredCIC [0] IMPLICIT NAEA-CIC, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, -...} - -NAEA-CIC ::= OCTET STRING (SIZE (3)) --- The internal structure is defined by the Carrier Identification --- parameter in ANSI T1.113.3. Carrier codes between '000' and '999' may --- be encoded as 3 digits using '000' to '999' or as 4 digits using --- '0000' to '0999'. Carrier codes between '1000' and '9999' are encoded --- using 4 digits. - -SubscriberIdentity ::= CHOICE { - imsi [0] IMPLICIT IMSI, - msisdn [1] IMPLICIT ISDN-AddressString - } - -LCSClientExternalID ::= SEQUENCE { - externalAddress [0] IMPLICIT ISDN-AddressString OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, -... } - -LCSClientInternalID ::= ENUMERATED { - broadcastService (0), - o-andM-HPLMN (1), - o-andM-VPLMN (2), - anonymousLocation (3), - targetMSsubscribedService (4), -... } --- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used - -LCSServiceTypeID ::= INTEGER (0..127) --- the integer values 0-63 are reserved for Standard LCS service types --- the integer values 64-127 are reserved for Non Standard LCS service types - -CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE { - cellGlobalIdOrServiceAreaIdFixedLength [0] IMPLICIT CellGlobalIdOrServiceAreaIdFixedLength, - laiFixedLength [1] IMPLICIT LAIFixedLength} - -CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7)) --- Refers to Cell Global Identification or Service Area Identification --- defined in 3GPP TS 23.003. --- The internal structure is defined as follows: --- octet 1 bits 4321 Mobile Country Code 1st digit --- bits 8765 Mobile Country Code 2nd digit --- octet 2 bits 4321 Mobile Country Code 3rd digit --- bits 8765 Mobile Network Code 3rd digit --- or filler (1111) for 2 digit MNCs --- octet 3 bits 4321 Mobile Network Code 1st digit --- bits 8765 Mobile Network Code 2nd digit --- octets 4 and 5 Location Area Code according to 3GPP TS 24.008 --- octets 6 and 7 Cell Identity (CI) value or --- Service Area Code (SAC) value --- according to 3GPP TS 23.003 - -LAIFixedLength ::= OCTET STRING (SIZE (5)) --- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17]. --- The internal structure is defined as follows: --- octet 1 bits 4321 Mobile Country Code 1st digit --- bits 8765 Mobile Country Code 2nd digit --- octet 2 bits 4321 Mobile Country Code 3rd digit --- bits 8765 Mobile Network Code 3rd digit --- or filler (1111) for 2 digit MNCs --- octet 3 bits 4321 Mobile Network Code 1st digit --- bits 8765 Mobile Network Code 2nd digit --- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008[35] - -AllowedServices ::= BIT STRING { - firstServiceAllowed (0), - secondServiceAllowed (1) } (SIZE (2..8)) --- firstService is the service indicated in the networkSignalInfo --- secondService is the service indicated in the networkSignalInfo2 --- Other bits than listed above shall be discarded - -UnavailabilityCause ::= ENUMERATED { - bearerServiceNotProvisioned (1), - teleserviceNotProvisioned (2), - absentSubscriber (3), - busySubscriber (4), - callBarred (5), - cug-Reject (6), -...} --- exception handling: --- Reception of other values than the ones listed shall result in the service --- being unavailable for that call. - -CCBS-Indicators ::= SEQUENCE { - ccbs-Possible [0] IMPLICIT NULL OPTIONAL, - keepCCBS-CallIndicator [1] IMPLICIT NULL OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} - -RoutingInfo ::= CHOICE { - roamingNumber ISDN-AddressString, - forwardingData ForwardingData} - -ExtendedRoutingInfo ::= CHOICE { - routingInfo RoutingInfo, - camelRoutingInfo [8] IMPLICIT CamelRoutingInfo} - -CamelRoutingInfo ::= SEQUENCE { - forwardingData ForwardingData OPTIONAL, - gmscCamelSubscriptionInfo [0] IMPLICIT GmscCamelSubscriptionInfo, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, -...} - -GmscCamelSubscriptionInfo ::= SEQUENCE { - t-CSI [0] IMPLICIT T-CSI OPTIONAL, - o-CSI [1] IMPLICIT O-CSI OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ..., - o-BcsmCamelTDP-CriteriaList [3] IMPLICIT O-BcsmCamelTDPCriteriaList OPTIONAL, - t-BCSM-CAMEL-TDP-CriteriaList [4] IMPLICIT T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, - d-csi [5] IMPLICIT D-CSI OPTIONAL} - - -MatchType ::= ENUMERATED { - inhibiting ( 0 ), - enabling ( 1 ) -} - - -LocationInformation ::= SEQUENCE { - ageOfLocationInformation AgeOfLocationInformation OPTIONAL, - geographicalInformation [0] IMPLICIT GeographicalInformation OPTIONAL, - vlr-number [1] IMPLICIT ISDN-AddressString OPTIONAL, - locationNumber [2] IMPLICIT LocationNumber OPTIONAL, - cellGlobalIdOrServiceAreaIdOrLAI [3] IMPLICIT CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ... , - selectedLSA-Id [5] IMPLICIT LSAIdentity OPTIONAL, - msc-Number [6] IMPLICIT ISDN-AddressString OPTIONAL, - geodeticInformation [7] IMPLICIT GeodeticInformation OPTIONAL, - currentLocationRetrieved [8] IMPLICIT NULL OPTIONAL, - sai-Present [9] IMPLICIT NULL OPTIONAL } --- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains --- a Service Area Identity. --- currentLocationRetrieved shall be present --- if the location information were retrieved after a successfull paging. - -LocationInformationGPRS ::= SEQUENCE { - cellGlobalIdOrServiceAreaIdOrLAI [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL, - routeingAreaIdentity [1] RAIdentity OPTIONAL, - geographicalInformation [2] GeographicalInformation OPTIONAL, - sgsn-Number [3] ISDN-AddressString OPTIONAL, - selectedLSAIdentity [4] LSAIdentity OPTIONAL, - extensionContainer [5] ExtensionContainer OPTIONAL, - ..., - sai-Present [6] NULL OPTIONAL, - geodeticInformation [7] GeodeticInformation OPTIONAL, - currentLocationRetrieved [8] NULL OPTIONAL, - ageOfLocationInformation [9] AgeOfLocationInformation OPTIONAL } --- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains --- a Service Area Identity. --- currentLocationRetrieved shall be present if the location information --- was retrieved after successful paging. - -RAIdentity ::= OCTET STRING (SIZE (6)) --- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105]. --- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060 --- type identifier octet shall not be included. - -GeographicalInformation ::= OCTET STRING (SIZE (8)) --- Refers to geographical Information defined in 3GPP TS 23.032. --- Only the description of an ellipsoid point with uncertainty circle --- as specified in 3GPP TS 23.032 is allowed to be used --- The internal structure according to 3GPP TS 23.032 is as follows: --- Type of shape (ellipsoid point with uncertainty circle) 1 octet --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets --- Uncertainty code 1 octet - -GeodeticInformation ::= OCTET STRING (SIZE (10)) --- Refers to Calling Geodetic Location defined in Q.763 (1999). --- Only the description of an ellipsoid point with uncertainty circle --- as specified in Q.763 (1999) is allowed to be used --- The internal structure according to Q.763 (1999) is as follows: --- Screening and presentation indicators 1 octet --- Type of shape (ellipsoid point with uncertainty circle) 1 octet --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets --- Uncertainty code 1 octet --- Confidence 1 octet - -LocationNumber ::= OCTET STRING (SIZE (2..10)) --- the internal structure is defined in ITU-T Rec Q.763 - -SubscriberState ::= CHOICE { - assumedIdle [0] IMPLICIT NULL, - camelBusy [1] IMPLICIT NULL, - netDetNotReachable NotReachableReason, - notProvidedFromVLR [2] IMPLICIT NULL -} - --- not used --- NetDetNotReachable ::= ENUMERATED { --- msPurged ( 0 ), --- imsiDetached ( 1 ), --- restrictedArea ( 2 ), --- notRegistered ( 3 ) } - -PS-SubscriberState ::= CHOICE { - notProvidedFromSGSN [0] IMPLICIT NULL, - ps-Detached [1] IMPLICIT NULL, - ps-AttachedNotReachableForPaging [2] IMPLICIT NULL, - ps-AttachedReachableForPaging [3] IMPLICIT NULL, - ps-PDP-ActiveNotReachableForPaging [4] IMPLICIT PDP-ContextInfoList, - ps-PDP-ActiveReachableForPaging [5] IMPLICIT PDP-ContextInfoList, - netDetNotReachable NotReachableReason } - -PDP-ContextInfoList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF PDP-ContextInfo - -PDP-ContextInfo ::= SEQUENCE { - pdp-ContextIdentifier [0] IMPLICIT ContextId, - pdp-ContextActive [1] IMPLICIT NULL OPTIONAL, - pdp-Type [2] IMPLICIT PDP-Type, - pdp-Address [3] IMPLICIT PDP-Address OPTIONAL, - apn-Subscribed [4] IMPLICIT APN OPTIONAL, - apn-InUse [5] IMPLICIT APN OPTIONAL, - nsapi [6] IMPLICIT NSAPI OPTIONAL, - transactionId [7] IMPLICIT TransactionId OPTIONAL, - teid-ForGnAndGp [8] IMPLICIT TEID OPTIONAL, - teid-ForIu [9] IMPLICIT TEID OPTIONAL, - ggsn-Address [10] IMPLICIT GSN-Address OPTIONAL, - qos-Subscribed [11] IMPLICIT Ext-QoS-Subscribed OPTIONAL, - qos-Requested [12] IMPLICIT Ext-QoS-Subscribed OPTIONAL, - qos-Negotiated [13] IMPLICIT Ext-QoS-Subscribed OPTIONAL, - chargingId [14] IMPLICIT GPRSChargingID OPTIONAL, - chargingCharacteristics [15] IMPLICIT ChargingCharacteristics OPTIONAL, - rnc-Address [16] IMPLICIT GSN-Address OPTIONAL, - extensionContainer [17] IMPLICIT ExtensionContainer OPTIONAL, - ..., - qos2-Subscribed [18] IMPLICIT Ext2-QoS-Subscribed OPTIONAL, --- qos2-Subscribed may be present only if qos-Subscribed is present. - qos2-Requested [19] IMPLICIT Ext2-QoS-Subscribed OPTIONAL, --- qos2-Requested may be present only if qos-Requested is present. - qos2-Negotiated [ 20] IMPLICIT Ext2-QoS-Subscribed OPTIONAL --- qos2-Negotiated may be present only if qos-Negotiated is present. -} - -NSAPI ::= INTEGER (0..15) --- This type is used to indicate the Network layer Service Access Point - -TransactionId ::= OCTET STRING (SIZE (1..2)) --- This type carries the value part of the transaction identifier which is used in the --- session management messages on the access interface. The encoding is defined in --- 3GPP TS 24.008 - -TEID ::= OCTET STRING (SIZE (4)) --- This type carries the value part of the Tunnel Endpoint Identifier which is used to --- distinguish between different tunnels between the same pair of entities which communicate --- using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060. - -GPRSChargingID ::= OCTET STRING (SIZE (4)) --- The Charging ID is a unique four octet value generated by the GGSN when --- a PDP Context is activated. A Charging ID is generated for each activated context. --- The encoding is defined in 3GPP TS 29.060. - -NotReachableReason ::= ENUMERATED { - msPurged (0), - imsiDetached (1), - restrictedArea (2), - notRegistered (3)} - --- not used --- RoamingNumber ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - --- not used --- Qos-Subscribed ::= OCTET STRING ( SIZE (1 .. 9 ) ) - --- not used --- ExtSignalInfo ::= OCTET STRING ( SIZE( 1 .. 200 ) ) - -CUG-CheckInfo ::= SEQUENCE { - cug-Interlock CUG-Interlock, - cug-OutgoingAccess NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } -ForwardingData ::= SEQUENCE { - forwardedToNumber [5] IMPLICIT ISDN-AddressString OPTIONAL, - forwardedToSubaddress [4] IMPLICIT ISDN-SubaddressString OPTIONAL, - forwardingOptions [6] IMPLICIT ForwardingOptions OPTIONAL, - extensionContainer [7] IMPLICIT ExtensionContainer OPTIONAL, - ..., - longForwardedToNumber [8] IMPLICIT FTN-AddressString OPTIONAL } - --- not used --- Gmsc-Address ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - ---provideRoamingNumber OPERATION --- ARGUMENT -ProvideRoamingNumberArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - msc-Number [1] IMPLICIT ISDN-AddressString, - msisdn [2] IMPLICIT ISDN-AddressString OPTIONAL, - lmsi [4] IMPLICIT LMSI OPTIONAL, - gsm-BearerCapability [5] IMPLICIT ExternalSignalInfo OPTIONAL, - networkSignalInfo [6] IMPLICIT ExternalSignalInfo OPTIONAL, - suppressionOfAnnouncement [7] IMPLICIT SuppressionOfAnnouncement OPTIONAL, - gmsc-Address [8] IMPLICIT ISDN-AddressString OPTIONAL, - callReferenceNumber [9] IMPLICIT CallReferenceNumber OPTIONAL, - or-Interrogation [10] IMPLICIT NULL OPTIONAL, - extensionContainer [11] IMPLICIT ExtensionContainer OPTIONAL, - ... , - alertingPattern [12] IMPLICIT AlertingPattern OPTIONAL, - ccbs-Call [13] IMPLICIT NULL OPTIONAL, - supportedCamelPhasesInInterrogatingNode [15] IMPLICIT SupportedCamelPhases OPTIONAL, - additionalSignalInfo [14] IMPLICIT Ext-ExternalSignalInfo OPTIONAL, - orNotSupportedInGMSC [16] IMPLICIT NULL OPTIONAL, - pre-pagingSupported [17] IMPLICIT NULL OPTIONAL, - longFTN-Supported [18] IMPLICIT NULL OPTIONAL, - suppress-VT-CSI [19] IMPLICIT NULL OPTIONAL, - offeredCamel4CSIsInInterrogatingNode [20] IMPLICIT OfferedCamel4CSIs OPTIONAL -} - --- RESULT -ProvideRoamingNumberRes ::= SEQUENCE { - roamingNumber ISDN-AddressString, - extensionContainer ExtensionContainer OPTIONAL, - ..., - releaseResourcesSupported NULL OPTIONAL } - --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- or-NotAllowed localValue : 48, --- absentSubscriber localValue : 27, --- noRoamingNumberAvailable localValue : 39} --- ::= localValue : 4 - ---resumeCallHandling OPERATION --- ARGUMENT -ResumeCallHandlingArg ::= SEQUENCE { - callReferenceNumber [0] IMPLICIT CallReferenceNumber OPTIONAL, - basicServiceGroup [1] Ext-BasicServiceCode OPTIONAL, - forwardingData [2] IMPLICIT ForwardingData OPTIONAL, - imsi [3] IMPLICIT IMSI OPTIONAL, - cug-CheckInfo [4] IMPLICIT CUG-CheckInfo OPTIONAL, - o-CSI [5] IMPLICIT O-CSI OPTIONAL, - extensionContainer [7] IMPLICIT ExtensionContainer OPTIONAL, - ccbs-Possible [8] IMPLICIT NULL OPTIONAL, - msisdn [9] IMPLICIT ISDN-AddressString OPTIONAL, - uu-Data [10] IMPLICIT UU-Data OPTIONAL, - allInformationSent [11] IMPLICIT NULL OPTIONAL, - ..., - d-csi [12] IMPLICIT D-CSI OPTIONAL, - o-BcsmCamelTDPCriteriaList [13] IMPLICIT O-BcsmCamelTDPCriteriaList OPTIONAL, - basicServiceGroup2 [14] IMPLICIT Ext-BasicServiceCode OPTIONAL -} - --- RESULT -ResumeCallHandlingRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- forwardingFailed localValue : 47, --- or-NotAllowed localValue : 48, --- unexpectedDataValue localValue : 36, --- dataMissing localValue : 35} --- ::= localValue : 6 - -UU-Data ::= SEQUENCE { - uuIndicator [0] IMPLICIT UUIndicator OPTIONAL, - uui [1] IMPLICIT UUI OPTIONAL, - uusCFInteraction [2] IMPLICIT NULL OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} - -UUIndicator ::= OCTET STRING (SIZE (1)) --- Octets are coded according to ETS 300 356 - -UUI ::= OCTET STRING (SIZE (1..131)) --- Octets are coded according to ETS 300 356 - - ---provideSIWFSNumber OPERATION --- ARGUMENT - -ProvideSIWFSNumberArg ::= SEQUENCE { - gsm-BearerCapability [0] IMPLICIT ExternalSignalInfo, - isdn-BearerCapability [1] IMPLICIT ExternalSignalInfo, - call-Direction [2] IMPLICIT CallDirection, - b-Subscriber-Address [3] IMPLICIT ISDN-AddressString, - chosenChannel [4] IMPLICIT ExternalSignalInfo, - lowerLayerCompatibility [5] IMPLICIT ExternalSignalInfo OPTIONAL, - highLayerCompatibility [6] IMPLICIT ExternalSignalInfo OPTIONAL, - extensionContainer [7] IMPLICIT ExtensionContainer OPTIONAL, -...} --- RESULT -ProvideSIWFSNumberRes ::= SEQUENCE { - sIWFSNumber [0] IMPLICIT ISDN-AddressString, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, -...} --- ERRORS { --- resourceLimitation localValue : 51, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- systemFailure localValue : 34} --- ::= localValue : 31 - -CallDirection ::= OCTET STRING (SIZE (1)) --- OCTET 1 --- bit 1 (direction of call) --- 0 Mobile Originated Call (MOC) --- 1 Mobile Terminated Call (MTC) - - --sIWFSSignallingModify OPERATION -- ARGUMENT SIWFSSignallingModifyArg ::= SEQUENCE { - channelType [0] IMPLICIT ExternalSignalInfo OPTIONAL, - chosenChannel [1] IMPLICIT ExternalSignalInfo OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, + channelType [0] ExternalSignalInfo OPTIONAL, + chosenChannel [1] ExternalSignalInfo OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, ...} -- RESULT SIWFSSignallingModifyRes ::= SEQUENCE { - channelType [0] IMPLICIT ExternalSignalInfo OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, + channelType [0] ExternalSignalInfo OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, ... } -- ERRORS { -- resourceLimitation localValue : 51, @@ -2913,424 +418,9 @@ SIWFSSignallingModifyRes ::= SEQUENCE { --setReportingState OPERATION -- ARGUMENT -SetReportingStateArg ::= SEQUENCE { - imsi [0] IMSI OPTIONAL, - lmsi [1] LMSI OPTIONAL, - ccbs-Monitoring [2] ReportingState OPTIONAL, - extensionContainer [3] ExtensionContainer OPTIONAL, -...} --- RESULT - -ReportingState ::= ENUMERATED { - stopMonitoring (0), - startMonitoring (1), -...} --- exception handling: --- reception of values 2-10 shall be mapped to 'stopMonitoring' --- reception of values > 10 shall be mapped to 'startMonitoring' - -CCBS-SubscriberStatus ::= ENUMERATED { - ccbsNotIdle ( 0 ), - ccbsIdle ( 1 ), - ccbsNotReachable ( 2 ), - ... } - -SetReportingStateRes ::= SEQUENCE { - ccbs-SubscriberStatus [0] IMPLICIT CCBS-SubscriberStatus OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- unidentifiedSubscriber localValue : 5, --- unexpectedDataValue localValue : 36, --- dataMissing localValue : 35, --- resourceLimitation localValue : 51, --- facilityNotSupported localValue : 21} --- ::= localValue : 73 - - ---statusReport OPERATION --- ARGUMENT -StatusReportArg ::= SEQUENCE{ - imsi [0] IMPLICIT IMSI, - eventReportData [1] IMPLICIT EventReportData OPTIONAL, - callReportdata [2] IMPLICIT CallReportData OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} --- RESULT -StatusReportRes ::= SEQUENCE { - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- unknownSubscriber localValue : 1, --- systemFailure localValue : 34, --- unexpectedDataValue localValue : 36, --- dataMissing localValue : 35} --- ::= localValue : 74 -EventReportData ::= SEQUENCE{ - ccbs-SubscriberStatus [0] IMPLICIT CCBS-SubscriberStatus OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, -...} - -CallReportData ::= SEQUENCE{ - monitoringMode [0] IMPLICIT MonitoringMode OPTIONAL, - callOutcome [1] IMPLICIT CallOutcome OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} -MonitoringMode ::= ENUMERATED { - a-side ( 0 ), - b-side ( 1 ), - ... } -CallOutcome ::= ENUMERATED { - success ( 0 ), - failure ( 1 ), - busy ( 2 ), - ... } - -Ruf-Outcome ::= ENUMERATED { - accepted ( 0 ), - rejected ( 1 ), - noResponseFromFreeMS ( 2 ), - noResponseFromBusyMS ( 3 ), - udubFromFreeMS ( 4 ), - udubFromBusyMS ( 5 ), - ... } - -IST-AlertArg ::= SEQUENCE{ - imsi [0] IMPLICIT IMSI, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ...} - -IST-AlertRes ::= SEQUENCE{ - istAlertTimer [0] IMPLICIT IST-AlertTimerValue OPTIONAL, - istInformationWithdraw [1] IMPLICIT NULL OPTIONAL, - callTerminationIndicator [2] IMPLICIT CallTerminationIndicator OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ...} --- ERRORS { --- unexpectedDataValue | --- resourceLimitation | --- unknownSubscriber | --- systemFailure | --- facilityNotSupported } --- CODE local : 87 --- } - -CallTerminationIndicator ::= ENUMERATED { - terminateCallActivityReferred (0), - terminateAllCallActivities (1), -...} --- exception handling: --- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred ' --- reception of values > 10 shall be mapped to ' terminateAllCallActivities ' --- In MSCs not supporting linkage of all call activities, any value received shall --- be interpreted as ' terminateCallActivityReferred ' - -IST-CommandArg ::= SEQUENCE{ - imsi [0] IMPLICIT IMSI, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, -...} - -IST-CommandRes ::= SEQUENCE{ - extensionContainer ExtensionContainer OPTIONAL, - ...} --- ERRORS { --- unexpectedDataValue | --- resourceLimitation | --- unknownSubscriber | --- systemFailure | --- facilityNotSupported } --- CODE local : 88 --- } - -ReleaseResourcesArg ::= SEQUENCE{ - msrn ISDN-AddressString OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} - -ReleaseResourcesRes ::= SEQUENCE{ - extensionContainer ExtensionContainer OPTIONAL, -...} - --- ERRORS { --- unexpectedDataValue | --- systemFailure } --- CODE local : 20 --- ---} - ---remoteUserFree OPERATION --- ARGUMENT -RemoteUserFreeArg ::= SEQUENCE{ - imsi [0] IMPLICIT IMSI, - callInfo [1] IMPLICIT ExternalSignalInfo, - ccbs-Feature [2] IMPLICIT CCBS-Feature, - translatedB-Number [3] IMPLICIT ISDN-AddressString, - replaceB-Number [4] IMPLICIT NULL OPTIONAL, - alertingPattern [5] IMPLICIT AlertingPattern OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, -...} - --- RESULT -RemoteUserFreeRes ::= SEQUENCE { - ruf-Outcome [0] IMPLICIT Ruf-Outcome, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- unexpectedDataValue localValue : 36, --- dataMissing localValue : 35, --- incompatibleTerminal localValue : 28, --- absentSubscriber localValue : 27, --- systemFailure localValue : 34, --- busySubscriber localValue : 45} --- localValue : 75 - --- not used --- TranslatedB-Number ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - -SS-Data ::= SEQUENCE { - ss-Code SS-Code OPTIONAL, - ss-Status [4] IMPLICIT SS-Status OPTIONAL, - ss-SubscriptionOption SS-SubscriptionOption OPTIONAL, - basicServiceGroupList BasicServiceGroupList OPTIONAL, - ..., - defaultPriority EMLPP-Priority OPTIONAL, - nbrUser [5] IMPLICIT MC-Bearers OPTIONAL -} - -SS-SubscriptionOption ::= CHOICE { - cliRestrictionOption [2] IMPLICIT CliRestrictionOption, - overrideCategory [1] IMPLICIT OverrideCategory} - ---registerSS OPERATION --- ARGUMENT - -RegisterSS-Arg ::= SEQUENCE { - ss-Code SS-Code, - basicService BasicServiceCode OPTIONAL, - forwardedToNumber [4] IMPLICIT AddressString OPTIONAL, - forwardedToSubaddress [6] IMPLICIT ISDN-SubaddressString OPTIONAL, - noReplyConditionTime [5] IMPLICIT NoReplyConditionTime OPTIONAL, - ..., - defaultPriority [7] IMPLICIT EMLPP-Priority OPTIONAL, - nbrUser [8] IMPLICIT MC-Bearers OPTIONAL, - longFTN-Supported [9] IMPLICIT NULL OPTIONAL } - -NoReplyConditionTime ::= INTEGER (5..30) - --- RESULT -SS-Info ::= CHOICE { - forwardingInfo [0] IMPLICIT ForwardingInfo, - callBarringInfo [1] IMPLICIT CallBarringInfo, - ss-Data [3] IMPLICIT SS-Data} - --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- bearerServiceNotProvisioned localValue : 10, --- teleserviceNotProvisioned localValue : 11, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-ErrorStatus localValue : 17, --- ss-Incompatibility localValue : 20} --- ::= localValue : 10 - --- not used --- B-subscriberNumber ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) - ---eraseSS OPERATION --- ARGUMENT - - --- RESULT ---Ss-Info ::= CHOICE {.. defined elsewhere --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- bearerServiceNotProvisioned localValue : 10, --- teleserviceNotProvisioned localValue : 11, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-ErrorStatus localValue : 17} --- ::= localValue : 11 - ---activateSS OPERATION --- ARGUMENT ---Ss-ForBS ::= SEQUENCE { defined elsewhere --- RESULT ---Ss-Info ::= CHOICE {.. defined elsewhere --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- bearerServiceNotProvisioned localValue : 10, --- teleserviceNotProvisioned localValue : 11, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-ErrorStatus localValue : 17, --- ss-SubscriptionViolation localValue : 19, --- ss-Incompatibility localValue : 20, --- negativePW-Check localValue : 38, --- numberOfPW-AttemptsViolation localValue : 43} --- ::= localValue : 12 - ---deactivateSS OPERATION --- ARGUMENT ---Ss-ForBS ::= SEQUENCE { defined elsewhere --- RESULT ---Ss-Info ::= CHOICE {.. defined elsewhere --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- bearerServiceNotProvisioned localValue : 10, --- teleserviceNotProvisioned localValue : 11, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-ErrorStatus localValue : 17, --- ss-SubscriptionViolation localValue : 19, --- negativePW-Check localValue : 38, --- numberOfPW-AttemptsViolation localValue : 43} --- ::= localValue : 13 - ---interrogateSS OPERATION --- ARGUMENT ---Ss-ForBS ::= SEQUENCE { defined elsewhere --- RESULT -InterrogateSS-Res ::= CHOICE { - ss-Status [0] IMPLICIT SS-Status, - basicServiceGroupList [2] IMPLICIT BasicServiceGroupList, - forwardingFeatureList [3] IMPLICIT ForwardingFeatureList, - genericServiceInfo [4] IMPLICIT GenericServiceInfo } - --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- bearerServiceNotProvisioned localValue : 10, --- teleserviceNotProvisioned localValue : 11, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-NotAvailable localValue : 18} --- ::= localValue : 14 - - - - ---processUnstructuredSS-Request OPERATION --- ARGUMENT -Ussd-Arg ::= SEQUENCE { - ussd-DataCodingScheme USSD-DataCodingScheme, - ussd-String USSD-String, - ... , - alertingPattern AlertingPattern OPTIONAL, - msisdn [0] IMPLICIT ISDN-AddressString OPTIONAL} --- RESULT -Ussd-Res ::= SEQUENCE { - ussd-DataCodingScheme USSD-DataCodingScheme, - ussd-String USSD-String, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownAlphabet localValue : 71, --- callBarred localValue : 13} --- ::= localValue : 59 - -USSD-DataCodingScheme ::= OCTET STRING (SIZE (1)) --- The structure of the USSD-DataCodingScheme is defined by --- the Cell Broadcast Data Coding Scheme as described in --- TS 3GPP TS 23.038 [25] - -USSD-String ::= OCTET STRING (SIZE (1..160)) --- The structure of the contents of the USSD-String is dependent --- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25]. - ---unstructuredSS-Request OPERATION --- ARGUMENT ---ussd-Arg ::= SEQUENCE { .. defined elsewhere --- RESULT ---ussd-Res ::= SEQUENCE { ... defined elsewhere --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- absentSubscriber localValue : 27, --- illegalSubscriber localValue : 9, --- illegalEquipment localValue : 12, --- unknownAlphabet localValue : 71, --- ussd-Busy localValue : 72} --- ::= localValue : 60 - ---unstructuredSS-Notify OPERATION --- ARGUMENT ---ussd-Arg ::= SEQUENCE { .. defined elsewhere --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- absentSubscriber localValue : 27, --- illegalSubscriber localValue : 9, --- illegalEquipment localValue : 12, --- unknownAlphabet localValue : 71, --- ussd-Busy localValue : 72} --- ::= localValue : 61 - -AuthenticationFailureReportArg ::= SEQUENCE { - imsi IMSI, - failureCause FailureCause, - extensionContainer ExtensionContainer OPTIONAL, - ... , - re-attempt BOOLEAN OPTIONAL, - accessType AccessType OPTIONAL, - rand RAND OPTIONAL, - vlr-Number [0] IMPLICIT ISDN-AddressString OPTIONAL, - sgsn-Number [1] IMPLICIT ISDN-AddressString OPTIONAL } - -AccessType ::= ENUMERATED { - call (0), - emergencyCall (1), - locationUpdating (2), - supplementaryService (3), - shortMessage (4), - gprsAttach (5), - routingAreaUpdating (6), - serviceRequest (7), - pdpContextActivation (8), - pdpContextDeactivation (9), - ..., - gprsDetach (10)} --- exception handling: --- received values greater than 10 shall be ignored. - -AuthenticationFailureReportRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, -...} - -FailureCause ::= ENUMERATED { - wrongUserResponse (0), - wrongNetworkSignature (1)} - ---registerPassword OPERATION --- ARGUMENT - -SS-Code ::= OCTET STRING (SIZE (1)) --- This type is used to represent the code identifying a single --- supplementary service, a group of supplementary services, or --- all supplementary services. The services and abbreviations --- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is --- defined as follows: --- --- bits 87654321: group (bits 8765), and specific service --- (bits 4321) - --- RESULT NewPassword ::= NumericString (SIZE( 4 ) ) -- ERRORS { -- systemFailure localValue : 34, @@ -3359,2096 +449,20 @@ CurrentPassword ::= NumericString (SIZE( 4 ) ) --registerCC-Entry OPERATION -- ARGUMENT -RegisterCC-EntryArg ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - ccbs-Data [1] IMPLICIT CCBS-Data OPTIONAL, -...} --- RESULT -RegisterCC-EntryRes ::= SEQUENCE { - ccbs-Feature [0] IMPLICIT CCBS-Feature OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-ErrorStatus localValue : 17, --- ss-Incompatibility localValue : 20, --- shortTermDenial localValue : 29, --- longTermDenial localValue : 30, --- facilityNotSupported localValue : 21} --- ::= localValue : 76 - -CCBS-Data ::= SEQUENCE { - ccbs-Feature [0] CCBS-Feature, - translatedB-Number [1] ISDN-AddressString, - serviceIndicator [2] ServiceIndicator OPTIONAL, - callInfo [3] ExternalSignalInfo, - networkSignalInfo [4] ExternalSignalInfo, -...} - -ServiceIndicator ::= BIT STRING { - clir-invoked (0), - camel-invoked (1)} (SIZE(2..32)) --- exception handling: --- bits 2 to 31 shall be ignored if received and not understood - ---eraseCC-Entry OPERATION --- ARGUMENT -EraseCC-EntryArg ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - ccbs-Index [1] IMPLICIT CCBS-Index, - ... } --- RESULT -EraseCC-EntryRes ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - ss-Status [1] IMPLICIT SS-Status OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- callBarred localValue : 13, --- illegalSS-Operation localValue : 16, --- ss-ErrorStatus localValue : 17} --- ::= localValue : 77 - ---sendRoutingInfoForSM OPERATION --- ARGUMENT -RoutingInfoForSMArg ::= SEQUENCE { - msisdn [0] IMPLICIT ISDN-AddressString, - sm-RP-PRI [1] IMPLICIT BOOLEAN, - serviceCentreAddress [2] IMPLICIT ServiceCentreAddress, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, - ... , - gprsSupportIndicator [7] IMPLICIT NULL OPTIONAL, - sm-RP-MTI [8] IMPLICIT SM-RP-MTI OPTIONAL, - sm-RP-SMEA [9] IMPLICIT SM-RP-SMEA OPTIONAL } --- RESULT - -SM-RP-MTI ::= INTEGER (0..10) --- 0 SMS Deliver --- 1 SMS Status Report --- other values are reserved for future use and shall be discarded if --- received - -SM-RP-SMEA ::= OCTET STRING (SIZE (1..12)) --- this parameter contains an address field which is encoded --- as defined in 3GPP TS 23.040. An address field contains 3 elements : --- address-length --- type-of-address --- address-value - -RoutingInfoForSM-Res ::= SEQUENCE { - imsi IMSI, - locationInfoWithLMSI [0] IMPLICIT LocationInfoWithLMSI, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, -...} - -LocationInfoWithLMSI ::= SEQUENCE { - networkNode-Number [1] IMPLICIT ISDN-AddressString, - lmsi LMSI OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ..., - gprsNodeIndicator [5] IMPLICIT NULL OPTIONAL, --- gprsNodeIndicator is set only if the SGSN number is sent as the --- Network Node Number - additional-Number [6] IMPLICIT Additional-Number OPTIONAL --- NetworkNode-number can be either msc-number or sgsn-number -} - -Additional-Number ::= CHOICE { - msc-Number [0] IMPLICIT ISDN-AddressString, - sgsn-Number [1] IMPLICIT ISDN-AddressString} --- additional-number can be either msc-number or sgsn-number --- if received networkNode-number is msc-number then the --- additional number is sgsn-number --- if received networkNode-number is sgsn-number then the --- additional number is msc-number - --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unknownSubscriber localValue : 1, --- teleserviceNotProvisioned localValue : 11, --- callBarred localValue : 13, --- absentsubscriberSM localValue : 6} --- ::= localValue : 45 - ---mo-forwardSM OPERATION --- ARGUMENT -Mo-forwardSM-Arg ::= SEQUENCE { - sm-RP-DA Sm-RP-DA, - sm-RP-OA Sm-RP-OA, - sm-RP-UI Sm-RP-UI, - extensionContainer ExtensionContainer OPTIONAL, - ... , - imsi IMSI OPTIONAL} --- RESULT -Mo-forwardSM-Res ::= SEQUENCE { - sm-RP-UI Sm-RP-UI OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- sm-DeliveryFailure localValue : 32} --- ::= localValue : 46 -Sm-RP-OA ::= CHOICE { - msisdn [2] IMPLICIT ISDN-AddressString, - serviceCentreAddressOA [4] IMPLICIT ServiceCentreAddress, - noSM-RP-OA [5] IMPLICIT NULL} - -Sm-RP-DA ::= CHOICE { - imsi [0] IMPLICIT IMSI, - lmsi [1] IMPLICIT LMSI, - serviceCentreAddressDA [4] IMPLICIT ServiceCentreAddress, - noSM-RP-DA [5] IMPLICIT NULL -} - --- In fact, the 3GPP uses SignalInfo instead, but it is used for SMS content decoding -Sm-RP-UI ::= OCTET STRING ( SIZE( 1 .. 200 ) ) ServiceCentreAddress ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ---mt-forwardSM OPERATION --- ARGUMENT -Mt-forwardSM-Arg ::= SEQUENCE { - sm-RP-DA Sm-RP-DA, - sm-RP-OA Sm-RP-OA, - sm-RP-UI Sm-RP-UI, - moreMessagesToSend NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- RESULT -Mt-forwardSM-Res ::= SEQUENCE { - sm-RP-UI Sm-RP-UI OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unidentifiedSubscriber localValue : 5, --- illegalSubscriber localValue : 9, --- illegalEquipment localValue : 12, --- subscriberBusyForMT-SMS localValue : 31, --- sm-DeliveryFailure localValue : 32, --- absentsubscriberSM localValue : 6} --- ::= localValue : 44 - ---ForwardSM OPERATION --- ARGUMENT -ForwardSM-Arg ::= SEQUENCE { - sm-RP-DA Sm-RP-DA, - sm-RP-OA Sm-RP-OA, - sm-RP-UI Sm-RP-UI, - moreMessagesToSend NULL OPTIONAL, - ... } --- RESULT - --- not used --- StoredMSISDN ::= ISDN-AddressString - -Sm-DeliveryOutcome ::= ENUMERATED { - memoryCapacityExceeded ( 0 ), - absentSubscriber ( 1 ), - successfulTransfer ( 2 ) } - ---reportSM-DeliveryStatus OPERATION --- ARGUMENT -ReportSM-DeliveryStatusArg ::= SEQUENCE { - msisdn ISDN-AddressString, - serviceCentreAddress ServiceCentreAddress, - sm-DeliveryOutcome Sm-DeliveryOutcome, - absentSubscriberDiagnosticSM [0] IMPLICIT AbsentSubscriberDiagnosticSM OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... , - gprsSupportIndicator [2] IMPLICIT NULL OPTIONAL, - deliveryOutcomeIndicator [3] IMPLICIT NULL OPTIONAL, - additionalSM-DeliveryOutcome [4] IMPLICIT Sm-DeliveryOutcome OPTIONAL, - additionalAbsentSubscriberDiagnosticSM [5] IMPLICIT AbsentSubscriberDiagnosticSM OPTIONAL} --- RESULT -ReportSM-DeliveryStatusRes ::= SEQUENCE { - storedMSISDN ISDN-AddressString OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1, --- messageWaitingListFull localValue : 33} --- ::= localValue : 47 - ---informServiceCentre OPERATION --- ARGUMENT -InformServiceCentreArg ::= SEQUENCE { - storedMSISDN ISDN-AddressString OPTIONAL, - mw-Status MW-Status OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL, - additionalAbsentSubscriberDiagnosticSM [0] IMPLICIT AbsentSubscriberDiagnosticSM OPTIONAL } --- additionalAbsentSubscriberDiagnosticSM may be present only if --- absentSubscriberDiagnosticSM is present. --- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and --- absentSubscriberDiagnosticSM is for non-GPRS --- ::= localValue : 63 - -MW-Status ::= BIT STRING { - sc-AddressNotIncluded (0), - mnrf-Set (1), - mcef-Set (2) , - mnrg-Set (3)} (SIZE (6..16)) --- exception handling: --- bits 4 to 15 shall be ignored if received and not understood - ---alertServiceCentre OPERATION --- ARGUMENT -AlertServiceCentreArg ::= SEQUENCE { - msisdn ISDN-AddressString, - serviceCentreAddress ServiceCentreAddress, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36} --- ::= localValue : 64 - ---readyForSM OPERATION --- ARGUMENT -ReadyForSM-Arg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - alertReason AlertReason, - alertReasonIndicator NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- RESULT -ReadyForSM-Res ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unknownSubscriber localValue : 1} --- ::= localValue : 66 -AlertReason ::= ENUMERATED { - ms-Present (0), - memoryAvailable (1)} - - --- currently not implemented --- -Mt-ForwardSM-VGCS-Arg ::= SEQUENCE { - asciCallReference ASCI-CallReference, - sm-RP-OA Sm-RP-OA, - sm-RP-UI Sm-RP-UI, - extensionContainer ExtensionContainer OPTIONAL, - ...} - --- currently not implemented --- -Mt-ForwardSM-VGCS-Res ::= SEQUENCE { - sm-RP-UI [0] IMPLICIT Sm-RP-UI OPTIONAL, - dispatcherList [1] IMPLICIT DispatcherList OPTIONAL, - ongoingCall NULL OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ...} - -DispatcherList ::= - SEQUENCE SIZE (1..maxNumOfDispatchers) OF - ISDN-AddressString - -maxNumOfDispatchers INTEGER ::= 5 - - ---provideSubscriberInfo OPERATION --- ARGUMENT -ProvideSubscriberInfoArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - lmsi [1] IMPLICIT LMSI OPTIONAL, - requestedInfo [2] IMPLICIT RequestedInfo, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- RESULT -ProvideSubscriberInfoRes ::= SEQUENCE { - subscriberInfo SubscriberInfo, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36} --- ::= localValue : 70 - -SubscriberInfo ::= SEQUENCE { - locationInformation [0] IMPLICIT LocationInformation OPTIONAL, - subscriberState [1] SubscriberState OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ... , - locationInformationGPRS [3] IMPLICIT LocationInformationGPRS OPTIONAL, - ps-SubscriberState [4] IMPLICIT PS-SubscriberState OPTIONAL, - imei [5] IMPLICIT IMEI OPTIONAL, - ms-Classmark2 [6] IMPLICIT MS-Classmark2 OPTIONAL, - gprs-MS-Class [7] IMPLICIT GPRSMSClass OPTIONAL, - mnpInfoRes [8] IMPLICIT MNPInfoRes OPTIONAL } --- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN --- it shall discard them. --- If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from --- a VLR it shall discard them. --- If the HLR receives parameters which it has not requested, it shall discard them. - -MNPInfoRes ::= SEQUENCE { - routeingNumber [0] IMPLICIT RouteingNumber OPTIONAL, - imsi [1] IMPLICIT IMSI OPTIONAL, - msisdn [2] IMPLICIT ISDN-AddressString OPTIONAL, - numberPortabilityStatus [3] IMPLICIT NumberPortabilityStatus OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- The IMSI parameter contains a generic IMSI, i.e. it is not tied necessarily to the --- Subscriber. MCC and MNC values in this IMSI shall point to the Subscription Network of --- the Subscriber. See 3GPP TS 23.066 [108]. - -RouteingNumber ::= TBCD-STRING (SIZE (1..5)) - -NumberPortabilityStatus ::= ENUMERATED { - notKnownToBePorted (0 ), - ownNumberPortedOut (1 ), - foreignNumberPortedToForeignNetwork (2 ), - ... , - ownNumberNotPortedOut (4 ), - foreignNumberPortedIn (5 ) - } --- exception handling: --- reception of other values than the ones listed the receiver shall ignore the --- whole NumberPortabilityStatus; --- ownNumberNotPortedOut or foreignNumberPortedIn may only be included in Any Time --- Interrogation message. - -MS-Classmark2 ::= OCTET STRING (SIZE (3)) --- This parameter carries the value part of the MS Classmark 2 IE defined in --- 3GPP TS 24.008 [35]. - -GPRSMSClass ::= SEQUENCE { - mSNetworkCapability [0] IMPLICIT MSNetworkCapability, - mSRadioAccessCapability [1] IMPLICIT MSRadioAccessCapability OPTIONAL -} - -MSNetworkCapability ::= OCTET STRING (SIZE (1..8)) --- This parameter carries the value part of the MS Network Capability IE defined in --- 3GPP TS 24.008 [35]. - -MSRadioAccessCapability ::= OCTET STRING (SIZE (1..50)) --- This parameter carries the value part of the MS Radio Access Capability IE defined in --- 3GPP TS 24.008 [35]. - -RequestedInfo ::= SEQUENCE { - locationInformation [0] IMPLICIT NULL OPTIONAL, - subscriberState [1] IMPLICIT NULL OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ..., - currentLocation [3] IMPLICIT NULL OPTIONAL, - requestedDomain [4] IMPLICIT DomainType OPTIONAL, - imei [6] IMPLICIT NULL OPTIONAL, - ms-classmark [5] IMPLICIT NULL OPTIONAL, - mnpRequestedInfo [7] IMPLICIT NULL OPTIONAL } - -DomainType ::= ENUMERATED { - cs-Domain (0), - ps-Domain (1), - ...} --- exception handling: --- reception of values > 1 shall be mapped to 'cs-Domain' - ---anyTimeInterrogation OPERATION --- ARGUMENT -AnyTimeInterrogationArg ::= SEQUENCE { - subscriberIdentity [0] SubscriberIdentity, - requestedInfo [1] IMPLICIT RequestedInfo, - gsmSCF-Address [3] IMPLICIT ISDN-AddressString, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- RESULT -AnyTimeInterrogationRes ::= SEQUENCE { - subscriberInfo SubscriberInfo, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- ati-NotAllowed localValue : 49, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 71 - --- anyTimeSubscriptionInterrogation OPERATION ::= { --- ARGUMENT SEQUENCE { -AnyTimeSubscriptionInterrogationArg ::= SEQUENCE { - subscriberIdentity [0] IMPLICIT SubscriberIdentity, - requestedSubscriptionInfo [1] IMPLICIT RequestedSubscriptionInfo, - gsmSCF-Address [2] IMPLICIT ISDN-AddressString, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - longFTN-Supported [4] IMPLICIT NULL OPTIONAL, -...} - --- RESULT SEQUENCE { -AnyTimeSubscriptionInterrogationRes ::= SEQUENCE { - callForwardingData [1] IMPLICIT CallForwardingData OPTIONAL, - callBarringData [2] IMPLICIT CallBarringData OPTIONAL, - odb-Info [3] IMPLICIT ODB-Info OPTIONAL, - camel-SubscriptionInfo [4] IMPLICIT CAMEL-SubscriptionInfo OPTIONAL, - supportedVLR-CAMEL-Phases [5] IMPLICIT SupportedCamelPhases OPTIONAL, - supportedSGSN-CAMEL-Phases [6] IMPLICIT SupportedCamelPhases OPTIONAL, - extensionContainer [7] IMPLICIT ExtensionContainer OPTIONAL, - ... , - offeredCamel4CSIsInVLR [8] IMPLICIT OfferedCamel4CSIs OPTIONAL, - offeredCamel4CSIsInSGSN [9] IMPLICIT OfferedCamel4CSIs OPTIONAL, - msisdn-BS-List [10] IMPLICIT MSISDN-BS-List OPTIONAL } - - --- ERRORS { --- atsi-NotAllowed | --- dataMissing | --- unexpectedDataValue | --- unknownSubscriber | --- bearerServiceNotProvisioned | --- teleserviceNotProvisioned | --- callBarred | --- illegalSS-Operation | --- ss-NotAvailable | --- informationNotAvailable } --- CODE local : 62 --- } - -RequestedSubscriptionInfo ::= SEQUENCE { - requestedSS-Info [1] IMPLICIT SS-ForBS-Code OPTIONAL, - odb [2] IMPLICIT NULL OPTIONAL, - requestedCAMEL-SubscriptionInfo [3] IMPLICIT RequestedCAMEL-SubscriptionInfo OPTIONAL, - supportedVLR-CAMEL-Phases [4] IMPLICIT NULL OPTIONAL, - supportedSGSN-CAMEL-Phases [5] IMPLICIT NULL OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, - ..., - additionalRequestedCAMEL-SubscriptionInfo [7] IMPLICIT AdditionalRequestedCAMEL-SubscriptionInfo OPTIONAL, - msisdn-BS-List-flag [8] IMPLICIT NULL OPTIONAL } - -MSISDN-BS-List ::= SEQUENCE SIZE (1..maxNumOfMSISDN) OF MSISDN-BS -maxNumOfMSISDN INTEGER ::= 50 - - -MSISDN-BS ::= SEQUENCE { - msisdn ISDN-AddressString, - basicServiceList [0] IMPLICIT BasicServiceList OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ...} - -RequestedCAMEL-SubscriptionInfo ::= ENUMERATED { - o-CSI (0), - t-CSI (1), - vt-CSI (2), - tif-CSI (3), - gprs-CSI (4), - mo-sms-CSI (5), - ss-CSI (6), - m-CSI (7), - d-csi (8)} - -AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED { - mt-sms-CSI (0), - mg-csi (1), - o-IM-CSI (2), - d-IM-CSI (3), - vt-IM-CSI (4), -...} --- exception handling: unknown values shall be discarded by the receiver. - -CallForwardingData ::= SEQUENCE { - forwardingFeatureList Ext-ForwFeatureList, - notificationToCSE NULL OPTIONAL, - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, -...} - -CallBarringData ::= SEQUENCE { - callBarringFeatureList Ext-CallBarFeatureList, - password Password OPTIONAL, - wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter OPTIONAL, - notificationToCSE NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} - ---Password ::= NumericString ( FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9" )) (SIZE( 4 ) ) -Password ::= NumericString (SIZE( 4 ) ) - --- GuidanceInfo is the previous GetPasswordArg -GuidanceInfo ::= ENUMERATED { - enterPW (0), - enterNewPW (1), - enterNewPW-Again (2)} --- How this information is really delivered to the subscriber --- (display, announcement, ...) is not part of this --- specification. - -BasicServiceCode ::= CHOICE { - bearerService [2] IMPLICIT BearerServiceCode, - teleservice [3] IMPLICIT TeleserviceCode} - -BearerServiceCode ::= OCTET STRING (SIZE (1)) --- This type is used to represent the code identifying a single --- bearer service, a group of bearer services, or all bearer --- services. The services are defined in TS 3GPP TS 22.002 [3]. --- The internal structure is defined as follows: --- --- plmn-specific bearer services: --- bits 87654321: defined by the HPLMN operator --- rest of bearer services: --- bit 8: 0 (unused) --- bits 7654321: group (bits 7654), and rate, if applicable --- (bits 321) - -Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5)) --- This type is used to represent the code identifying a single --- bearer service, a group of bearer services, or all bearer --- services. The services are defined in TS 3GPP TS 22.002 [3]. --- The internal structure is defined as follows: --- --- OCTET 1: --- plmn-specific bearer services: --- bits 87654321: defined by the HPLMN operator --- --- rest of bearer services: --- bit 8: 0 (unused) --- bits 7654321: group (bits 7654), and rate, if applicable --- (bits 321) --- OCTETS 2-5: reserved for future use. If received the --- Ext-TeleserviceCode shall be --- treated according to the exception handling defined for the --- operation that uses this type. --- Ext-BearerServiceCode includes all values defined for BearerServiceCode. - -TeleserviceCode ::= OCTET STRING (SIZE (1)) --- This type is used to represent the code identifying a single --- teleservice, a group of teleservices, or all teleservices. The --- services are defined in TS GSM 22.003 [4]. --- The internal structure is defined as follows: --- bits 87654321: group (bits 8765) and specific service --- (bits 4321) - -O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF -O-BcsmCamelTDP-Criteria - -T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF -T-BCSM-CAMEL-TDP-Criteria - -O-BcsmCamelTDP-Criteria ::= SEQUENCE { - o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint, - destinationNumberCriteria [0] IMPLICIT DestinationNumberCriteria OPTIONAL, - basicServiceCriteria [1] IMPLICIT BasicServiceCriteria OPTIONAL, - callTypeCriteria [2] IMPLICIT CallTypeCriteria OPTIONAL, - ..., - o-CauseValueCriteria [3] IMPLICIT O-CauseValueCriteria OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL } - -T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE { - t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint, - basicServiceCriteria [0] IMPLICIT BasicServiceCriteria OPTIONAL, - t-CauseValueCriteria [1] IMPLICIT T-CauseValueCriteria OPTIONAL, -... } - -O-BcsmTriggerDetectionPoint ::= ENUMERATED { - collectedInfo (2), - ..., - routeSelectFailure (4) } --- exception handling: --- For O-BcsmCamelTDPData sequences containing this parameter with any --- other value than the ones listed the receiver shall ignore the whole --- O-BcsmCamelTDPDatasequence. --- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any --- other value than the ones listed the receiver shall ignore the whole --- O-BcsmCamelTDP-Criteria sequence. - -T-BcsmTriggerDetectionPoint ::= ENUMERATED { - termAttemptAuthorized (12), - ... , - tBusy (13), - tNoAnswer (14)} --- exception handling: --- For T-BcsmCamelTDPData sequences containing this parameter with any other --- value than the ones listed above, the receiver shall ignore the whole --- T-BcsmCamelTDPData sequence. - - -WrongPasswordAttemptsCounter ::= INTEGER (0..4) - -OfferedCamel4CSIs ::= BIT STRING { - o-csi (0), - d-csi (1), - vt-csi (2), - t-csi (3), - mt-sms-csi (4), - mg-csi (5), - psi-enhancements (6) -} (SIZE (7..16)) --- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs --- it offers. --- Other values than listed above shall be discarded. - -OfferedCamel4Functionalities ::= BIT STRING { - initiateCallAttempt (0), - splitLeg (1), - moveLeg (2), - disconnectLeg (3), - entityReleased (4), - dfc-WithArgument (5), - playTone (6), - dtmf-MidCall (7), - chargingIndicator (8), - alertingDP (9), - locationAtAlerting (10), - changeOfPositionDP (11), - or-Interactions (12), - warningToneEnhancements (13), - cf-Enhancements (14), - subscribedEnhancedDialledServices (15), - servingNetworkEnhancedDialledServices (16), - criteriaForChangeOfPositionDP (17), - serviceChangeDP (18), - collectInformation (19) -} (SIZE (15..64)) --- A node supporting Camel phase 4 shall mark in the BIT STRING all CAMEL4 --- functionalities it offers. --- Other values than listed above shall be discarded. - - -SS-ForBS-Code ::= SEQUENCE { - ss-Code SS-Code, - basicService BasicServiceCode OPTIONAL, - ..., - longFTN-Supported [4] IMPLICIT NULL OPTIONAL } - -GenericServiceInfo ::= SEQUENCE { - ss-Status SS-Status, - cliRestrictionOption CliRestrictionOption OPTIONAL, - ..., - maximumEntitledPriority [0] IMPLICIT EMLPP-Priority OPTIONAL, - defaultPriority [1] IMPLICIT EMLPP-Priority OPTIONAL, - ccbs-FeatureList [2] IMPLICIT CCBS-FeatureList OPTIONAL, - nbrSB [3] IMPLICIT MaxMC-Bearers OPTIONAL, - nbrUser [4] IMPLICIT MC-Bearers OPTIONAL, - nbrSN [5] IMPLICIT MC-Bearers OPTIONAL } - -CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF CCBS-Feature -maxNumOfCCBS-Requests INTEGER ::= 5 - -CCBS-Feature ::= SEQUENCE { - ccbs-Index [0] IMPLICIT CCBS-Index OPTIONAL, - b-subscriberNumber [1] IMPLICIT ISDN-AddressString OPTIONAL, - b-subscriberSubaddress [2] IMPLICIT ISDN-SubaddressString OPTIONAL, - basicServiceGroup [3] IMPLICIT BasicServiceCode OPTIONAL, -...} - -CCBS-Index ::= INTEGER (1..maxNumOfCCBS-Requests) - -T-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF -CauseValue -maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5 - -O-CauseValueCriteria ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF -CauseValue -maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5 - -CauseValue ::= OCTET STRING (SIZE(1)) --- Type extracted from Cause parameter in ITU-T Recommendation Q.763. --- For the use of cause value refer to ITU-T Recommendation Q.850. - - - -BasicServiceCriteria ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF -Ext-BasicServiceCode -maxNumOfCamelBasicServiceCriteria INTEGER ::= 5 - ---anyTimeModification OPERATION ::= { --- ARGUMENT SEQUENCE { - -AnyTimeModificationArg ::= SEQUENCE { - subscriberIdentity [0] IMPLICIT SubscriberIdentity, - gsmSCF-Address [1] IMPLICIT ISDN-AddressString, - modificationRequestFor-CF-Info [2] IMPLICIT ModificationRequestFor-CF-Info OPTIONAL, - modificationRequestFor-CB-Info [3] IMPLICIT ModificationRequestFor-CB-Info OPTIONAL, - modificationRequestFor-CSI [4] IMPLICIT ModificationRequestFor-CSI OPTIONAL, - extensionContainer [5] IMPLICIT ExtensionContainer OPTIONAL, - longFTN-Supported [6] IMPLICIT NULL OPTIONAL, -..., -modificationRequestFor-ODB-data [7] ModificationRequestFor-ODB-data OPTIONAL } - --- RESULT SEQUENCE { -AnyTimeModificationRes ::= SEQUENCE { - ss-InfoFor-CSE [0] IMPLICIT Ext-SS-InfoFor-CSE OPTIONAL, - camel-SubscriptionInfo [1] IMPLICIT CAMEL-SubscriptionInfo OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ..., - odb-Info [3] IMPLICIT ODB-Info OPTIONAL } - -ModificationRequestFor-CF-Info ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - basicService [1] IMPLICIT Ext-BasicServiceCode OPTIONAL, - ss-Status [2] IMPLICIT Ext-SS-Status OPTIONAL, - forwardedToNumber [3] IMPLICIT AddressString OPTIONAL, - forwardedToSubaddress [4] IMPLICIT ISDN-SubaddressString OPTIONAL, - noReplyConditionTime [5] IMPLICIT Ext-NoRepCondTime OPTIONAL, - modifyNotificationToCSE [6] IMPLICIT ModificationInstruction OPTIONAL, - extensionContainer [7] IMPLICIT ExtensionContainer OPTIONAL, -...} - -ModificationRequestFor-CB-Info ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - basicService [1] IMPLICIT Ext-BasicServiceCode OPTIONAL, - ss-Status [2] IMPLICIT Ext-SS-Status OPTIONAL, - password [3] IMPLICIT Password OPTIONAL, - wrongPasswordAttemptsCounter [4] IMPLICIT WrongPasswordAttemptsCounter OPTIONAL, - modifyNotificationToCSE [5] IMPLICIT ModificationInstruction OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, -...} - -ModificationRequestFor-ODB-data ::= SEQUENCE { - odb-data [0] IMPLICIT ODB-Data OPTIONAL, - modifyNotificationToCSE [1] IMPLICIT ModificationInstruction OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} - -ModificationRequestFor-CSI ::= SEQUENCE { - requestedCamel-SubscriptionInfo [0] IMPLICIT RequestedCAMEL-SubscriptionInfo, - modifyNotificationToCSE [1] IMPLICIT ModificationInstruction OPTIONAL, - modifyCSI-State [2] IMPLICIT ModificationInstruction OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ..., - additionalRequestedCAMEL-SubscriptionInfo - [4] AdditionalRequestedCAMEL-SubscriptionInfo - OPTIONAL } --- requestedCamel-SubscriptionInfo shall be discarded if --- additionalRequestedCAMEL-SubscriptionInfo is received - -ModificationInstruction ::= ENUMERATED { - deactivate (0), - activate (1)} - -Ext-SS-InfoFor-CSE ::= CHOICE { - forwardingInfoFor-CSE [0] IMPLICIT Ext-ForwardingInfoFor-CSE, - callBarringInfoFor-CSE [1] IMPLICIT Ext-CallBarringInfoFor-CSE -} -NoteSubscriberDataModifiedArg ::= SEQUENCE { - imsi IMSI, - msisdn ISDN-AddressString, - forwardingInfoFor-CSE [0] IMPLICIT Ext-ForwardingInfoFor-CSE OPTIONAL, - callBarringInfoFor-CSE [1] IMPLICIT Ext-CallBarringInfoFor-CSE OPTIONAL, - odb-Info [2] IMPLICIT ODB-Info OPTIONAL, - camel-SubscriptionInfo [3] IMPLICIT CAMEL-SubscriptionInfo OPTIONAL, - allInformationSent [4] NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} - - -NoteSubscriberDataModifiedRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, -...} - -NoteMM-EventArg::= SEQUENCE { - serviceKey ServiceKey, - eventMet [0] IMPLICIT MM-Code, - imsi [1] IMPLICIT IMSI, - msisdn [2] IMPLICIT ISDN-AddressString, - locationInformation [3] IMPLICIT LocationInformation OPTIONAL, - supportedCAMELPhases [5] IMPLICIT SupportedCamelPhases OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, - ..., - locationInformationGPRS [7] LocationInformationGPRS OPTIONAL, - offeredCamel4Functionalities [8] OfferedCamel4Functionalities OPTIONAL -} - -NoteMM-EventRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, -...} - -CAMEL-SubscriptionInfo ::= SEQUENCE { - o-CSI [0] IMPLICIT O-CSI OPTIONAL, - o-BcsmCamelTDP-CriteriaList [1] IMPLICIT O-BcsmCamelTDPCriteriaList OPTIONAL, - d-CSI [2] IMPLICIT D-CSI OPTIONAL, - t-CSI [3] IMPLICIT T-CSI OPTIONAL, - t-BCSM-CAMEL-TDP-CriteriaList [4] IMPLICIT T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, - vt-CSI [5] IMPLICIT T-CSI OPTIONAL, - vt-BCSM-CAMEL-TDP-CriteriaList [6] IMPLICIT T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, - tif-CSI [7] IMPLICIT NULL OPTIONAL, - tif-CSI-NotificationToCSE [8] IMPLICIT NULL OPTIONAL, - gprs-CSI [9] IMPLICIT GPRS-CSI OPTIONAL, - mo-sms-CSI [10] IMPLICIT SMS-CSI OPTIONAL, - ss-CSI [11] IMPLICIT SS-CSI OPTIONAL, - m-CSI [12] IMPLICIT M-CSI OPTIONAL, - extensionContainer [13] IMPLICIT ExtensionContainer OPTIONAL, - ..., - specificCSIDeletedList [14] IMPLICIT SpecificCSI-Withdraw OPTIONAL, - mt-sms-CSI [15] IMPLICIT SMS-CSI OPTIONAL, - mt-smsCAMELTDP-CriteriaList [16] IMPLICIT MT-smsCAMELTDP-CriteriaList OPTIONAL, - mg-csi [17] IMPLICIT MG-CSI OPTIONAL, - o-IM-CSI [18] IMPLICIT O-CSI OPTIONAL, - o-IM-BcsmCamelTDP-CriteriaList [19] IMPLICIT O-BcsmCamelTDPCriteriaList OPTIONAL, - d-IM-CSI [20] IMPLICIT D-CSI OPTIONAL, - vt-IM-CSI [21] IMPLICIT T-CSI OPTIONAL, - vt-IM-BCSM-CAMEL-TDP-CriteriaList [22] IMPLICIT T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL -} - -Ext-ForwardingInfoFor-CSE ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - forwardingFeatureList [1] IMPLICIT Ext-ForwFeatureList, - notificationToCSE [2] IMPLICIT NULL OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} - - -SS-Status ::= OCTET STRING ( SIZE( 1 .. 5 ) ) - -Ext-SS-Status ::= OCTET STRING (SIZE (1..5)) --- OCTET 1: --- --- bits 8765: 0000 (unused) --- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit", --- representing supplementary service state information --- as defined in TS 3GPP TS 23.011 [22] --- bit 4: "Q bit" --- bit 3: "P bit" --- bit 2: "R bit" --- bit 1: "A bit" --- OCTETS 2-5: reserved for future use. They shall be discarded if --- received and not understood. - -AgeOfLocationInformation ::= INTEGER (0..32767) --- the value represents the elapsed time in minutes since the last --- network contact of the mobile station (i.e. the actuality of the --- location information). --- value '0' indicates that the MS is currently in contact with the --- network --- value '32767' indicates that the location information is at least --- 32767 minutes old - -Ext-BasicServiceCode ::= CHOICE { - ext-BearerService [2] IMPLICIT Ext-BearerServiceCode, - ext-Teleservice [3] IMPLICIT Ext-TeleserviceCode} - - -Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5)) --- This type is used to represent the code identifying a single --- teleservice, a group of teleservices, or all teleservices. The --- services are defined in TS GSM 22.003 [4]. --- The internal structure is defined as follows: --- OCTET 1: --- bits 87654321: group (bits 8765) and specific service --- (bits 4321) --- OCTETS 2-5: reserved for future use. If received the --- Ext-TeleserviceCode shall be --- treated according to the exception handling defined for the --- operation that uses this type. --- Ext-TeleserviceCode includes all values defined for TeleserviceCode. - -FTN-AddressString ::= -AddressString (SIZE (1..maxFTN-AddressLength)) --- This type is used to represent forwarded-to numbers. --- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown; --- if NAI = international the first digits represent the country code (CC) --- and the network destination code (NDC) as for E.164. -maxFTN-AddressLength INTEGER ::= 15 - -AddressString ::= OCTET STRING (SIZE (1..maxAddressLength)) --- This type is used to represent a number for addressing --- purposes. It is composed of --- a) one octet for nature of address, and numbering plan --- indicator. --- b) digits of an address encoded as TBCD-String. --- a) The first octet includes a one bit extension indicator, a --- 3 bits nature of address indicator and a 4 bits numbering --- plan indicator, encoded as follows: --- bit 8: 1 (no extension) --- bits 765: nature of address indicator --- 000 unknown --- 001 international number --- 010 national significant number --- 011 network specific number --- 100 subscriber number --- 101 reserved --- 110 abbreviated number --- 111 reserved for extension --- bits 4321: numbering plan indicator --- 0000 unknown --- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164) --- 0010 spare --- 0011 data numbering plan (ITU-T Rec X.121) --- 0100 telex numbering plan (ITU-T Rec F.69) --- 0101 spare --- 0110 land mobile numbering plan (ITU-T Rec E.212) --- 0111 spare --- 1000 national numbering plan --- 1001 private numbering plan --- 1111 reserved for extension --- all other values are reserved. --- b) The following octets representing digits of an address --- encoded as a TBCD-STRING. -maxAddressLength INTEGER ::= 20 - -ISDN-AddressString ::= OCTET STRING --- It should be this definition, but it doesn't compile --- ISDN-AddressString ::= --- AddressString (SIZE (1..maxISDN-AddressLength)) --- This type is used to represent ISDN numbers. --- maxISDN-AddressLength INTEGER ::= 9 - -ISDN-SubaddressString ::= OCTET STRING (SIZE (1..maxISDN-SubaddressLength)) --- This type is used to represent ISDN subaddresses. --- It is composed of --- a) one octet for type of subaddress and odd/even indicator. --- b) 20 octets for subaddress information. --- a) The first octet includes a one bit extension indicator, a --- 3 bits type of subaddress and a one bit odd/even indicator, --- encoded as follows: --- bit 8: 1 (no extension) --- bits 765: type of subaddress --- 000 NSAP (X.213/ISO 8348 AD2) --- 010 User Specified --- All other values are reserved --- bit 4: odd/even indicator --- 0 even number of address signals --- 1 odd number of address signals --- The odd/even indicator is used when the type of subaddress --- is "user specified" and the coding is BCD. --- bits 321: 000 (unused) --- b) Subaddress information. --- The NSAP X.213/ISO8348AD2 address shall be formatted as specified --- by octet 4 which contains the Authority and Format Identifier --- (AFI). The encoding is made according to the "preferred binary --- encoding" as defined in X.213/ISO834AD2. For the definition --- of this type of subaddress, see ITU-T Rec I.334. --- For User-specific subaddress, this field is encoded according --- to the user specification, subject to a maximum length of 20 --- octets. When interworking with X.25 networks BCD coding should --- be applied. -maxISDN-SubaddressLength INTEGER ::= 21 - -Ext-CallBarringInfoFor-CSE ::= SEQUENCE { - ss-Code [0] IMPLICIT SS-Code, - callBarringFeatureList [1] IMPLICIT Ext-CallBarFeatureList, - password [2] IMPLICIT Password OPTIONAL, - wrongPasswordAttemptsCounter [3] IMPLICIT WrongPasswordAttemptsCounter OPTIONAL, - notificationToCSE [4] IMPLICIT NULL OPTIONAL, - extensionContainer [5] IMPLICIT ExtensionContainer OPTIONAL, -...} - -ODB-Info ::= SEQUENCE { - odb-Data ODB-Data, - notificationToCSE NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} - -ODB-Data ::= SEQUENCE { - odb-GeneralData ODB-GeneralData, - odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} - --- not used --- ModifyNotificationToCSE ::= ENUMERATED { --- deactivate (0 ), --- activate (1 )} - - -M-CSI ::= SEQUENCE { - mobilityTriggers MobilityTriggers, - serviceKey ServiceKey, - gsmSCF-Address [0] IMPLICIT ISDN-AddressString, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - notificationToCSE [2] IMPLICIT NULL OPTIONAL, - csi-Active [3] IMPLICIT NULL OPTIONAL, -...} --- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR. --- They may only be included in ATSI/ATM ack/NSDC message. - - - - -SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code --- Actions for the following SS-Code values are defined in CAMEL Phase 3: --- ect SS-Code ::= '00110001'B --- multiPTY SS-Code ::= '01010001'B --- cd SS-Code ::= '00100100'B --- ccbs SS-Code ::= '01000100'B --- all other SS codes shall be ignored --- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs. --- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the --- ccbs marking in SS-CSI. -maxNumOfCamelSSEvents INTEGER ::= 10 - -T-CSI ::= SEQUENCE { - t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList, - extensionContainer ExtensionContainer OPTIONAL, - ..., - camelCapabilityHandling [0] IMPLICIT CamelCapabilityHandling OPTIONAL, - notificationToCSE [1] IMPLICIT NULL OPTIONAL, - csi-Active [2] IMPLICIT NULL OPTIONAL} --- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent --- to VLR/GMSC. --- They may only be included in ATSI/ATM ack/NSDC message. --- T-CSI shall not be segmented. - -T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF -T-BcsmCamelTDPData ---- T-BcsmCamelTDPDataList shall not contain more than one instance of ---- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint. ---- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed ---- with t-BcsmTriggerDetectionPoint being equal to DP12. ---- For CAMEL Phase 3, more TDP"s are allowed. - -T-BcsmCamelTDPData ::= SEQUENCE { - t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint, - serviceKey ServiceKey, - gsmSCF-Address [0] IMPLICIT ISDN-AddressString, - defaultCallHandling [1] IMPLICIT DefaultCallHandling, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, -...} - - -SMS-CSI ::= SEQUENCE { - sms-CAMEL-TDP-DataList [0] IMPLICIT SMS-CAMEL-TDP-DataList OPTIONAL, - camelCapabilityHandling [1] IMPLICIT CamelCapabilityHandling OPTIONAL, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - notificationToCSE [3] IMPLICIT NULL OPTIONAL, - csi-Active [4] IMPLICIT NULL OPTIONAL, -...} --- notificationToCSE and csi-Active shall not be present --- when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN. --- They may only be included in ATSI/ATM ack/NSDC message. --- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in --- the SMS-CSI sequence. --- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be --- present in the first segment - -SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF -SMS-CAMEL-TDP-Data --- SMS-CAMEL-TDP-DataList shall not contain more than one instance of --- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint. - -SMS-CAMEL-TDP-Data ::= SEQUENCE { - sms-TriggerDetectionPoint [0] IMPLICIT SMS-TriggerDetectionPoint, - serviceKey [1] IMPLICIT ServiceKey, - gsmSCF-Address [2] ISDN-AddressString, - defaultSMS-Handling [3] IMPLICIT DefaultSMS-Handling, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, -... -} - -SMS-TriggerDetectionPoint ::= ENUMERATED { - sms-CollectedInfo (1), - ..., - sms-DeliveryRequest (2) +SecureTransportArg ::= SEQUENCE { + securityHeader SecurityHeader, + protectedPayload ProtectedPayload OPTIONAL } --- exception handling: --- For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this --- parameter with any other value than the ones listed the receiver shall ignore --- the whole sequence. --- --- If this parameter is received with any other value than sms-CollectedInfo --- in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall --- ignore the whole SMS-CAMEL-TDP-Data sequence. --- --- If this parameter is received with any other value than sms-DeliveryRequest --- in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall --- ignore the whole SMS-CAMEL-TDP-Data sequence. --- --- If this parameter is received with any other value than sms-DeliveryRequest --- in an MT-smsCAMELTDP-Criteria sequence then the receiver shall --- ignore the whole MT-smsCAMELTDP-Criteria sequence. -DefaultSMS-Handling ::= ENUMERATED { - continueTransaction (0) , - releaseTransaction (1) , -...} --- exception handling: --- reception of values in range 2-31 shall be treated as "continueTransaction" --- reception of values greater than 31 shall be treated as "releaseTransaction" - - -DefaultCallHandling ::= ENUMERATED { - continueCall (0) , - releaseCall (1) , - ...} --- exception handling: --- reception of values in range 2-31 shall be treated as "continueCall" --- reception of values greater than 31 shall be treated as "releaseCall" - -CamelCapabilityHandling ::= INTEGER(1..16) --- value 1 = CAMEL phase 1, --- value 2 = CAMEL phase 2, --- value 3 = CAMEL Phase 3, --- value 4 = CAMEL phase 4: --- reception of values greater than 4 shall be treated as CAMEL phase 4. - - - -MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF -MM-Code -maxNumOfMobilityTriggers INTEGER ::= 10 - -MM-Code ::= OCTET STRING (SIZE (1)) - --- This type is used to indicate a Mobility Management event. --- Actions for the following MM-Code values are defined in CAMEL Phase 4: --- --- CS domain MM events: --- Location-update-in-same-VLR MM-Code ::= '00000000'B --- Location-update-to-other-VLR MM-Code ::= '00000001'B --- IMSI-Attach MM-Code ::= '00000010'B --- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B --- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B --- --- PS domain MM events: --- Routeing-Area-update-in-same-SGSN MM-Code ::= '10000000'B --- Routeing-Area-update-to-other-SGSN-update-from-new-SGSN --- MM-Code ::= '10000001'B --- Routeing-Area-update-to-other-SGSN-disconnect-by-detach --- MM-Code ::= '10000010'B --- GPRS-Attach MM-Code ::= '10000011'B --- MS-initiated-GPRS-Detach MM-Code ::= '10000100'B --- Network-initiated-GPRS-Detach MM-Code ::= '10000101'B --- Network-initiated-transfer-to-MS-not-reachable-for-paging --- MM-Code ::= '10000110'B --- --- If the MSC receives any other MM-code than the ones listed above for the --- CS domain, then the MSC shall ignore that MM-code. --- If the SGSN receives any other MM-code than the ones listed above for the --- PS domain, then the SGSN shall ignore that MM-code. - - - --- ERRORS { --- atm-NotAllowed | --- dataMissing | --- unexpectedDataValue | --- unknownSubscriber | --- bearerServiceNotProvisioned | --- teleserviceNotProvisioned | --- callBarred | --- illegalSS-Operation | --- ss-SubscriptionViolation | --- ss-ErrorStatus | --- ss-Incompatibility | --- informationNotAvailable } --- CODE local : 65 --- } - ---ss-InvocationNotification OPERATION --- ARGUMENT -Ss-InvocationNotificationArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - msisdn [1] IMPLICIT ISDN-AddressString, - ss-Event [2] IMPLICIT SS-Code, - ss-EventSpecification [3] IMPLICIT SS-EventSpecification OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ..., - b-subscriberNumber [5] IMPLICIT ISDN-AddressString OPTIONAL, - ccbs-RequestState [6] IMPLICIT CCBS-RequestState OPTIONAL } --- RESULT --- The following SS-Code values are allowed : --- ect SS-Code ::= '00110001'B --- multiPTY SS-Code ::= '01010001'B --- cd SS-Code ::= '00100100'B --- ccbs SS-Code ::= '01000100'B - -CCBS-RequestState ::= ENUMERATED { - request (0), - recall (1), - active (2), - completed (3), - suspended (4), - frozen (5), - deleted (6) - } - -SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF - AddressString - -maxEventSpecification INTEGER ::= 2 - -Ss-InvocationNotificationRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 72 - ---prepareGroupCall OPERATION --- ARGUMENT - -PrepareGroupCallArg ::= SEQUENCE { - teleservice Ext-TeleserviceCode, - asciCallReference ASCI-CallReference, - codec-Info CODEC-Info, - cipheringAlgorithm CipheringAlgorithm, - groupKeyNumber-Vk-Id [0] IMPLICIT GroupKeyNumber OPTIONAL, - groupKey [1] IMPLICIT Kc OPTIONAL, --- this parameter shall not be sent and shall be discarded if received - priority [2] IMPLICIT EMLPP-Priority OPTIONAL, - uplinkFree [3] IMPLICIT NULL OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ..., - vstk [5] IMPLICIT VSTK OPTIONAL, - vstk-rand [6] IMPLICIT VSTK-RAND OPTIONAL } --- RESULT - -VSTK ::= OCTET STRING (SIZE (16)) - -VSTK-RAND ::= OCTET STRING (SIZE (5)) --- The 36 bit value is carried in bit 7 of octet 1 to bit 4 of octet 5 --- bits 3, 2, 1, and 0 of octet 5 are padded with zeros. - -CODEC-Info ::= OCTET STRING (SIZE (5..10)) --- Refers to channel type --- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length - -CipheringAlgorithm ::= OCTET STRING (SIZE (1)) --- Refers to 'permitted algorithms' in 'encryption information' --- coded according to 3GPP TS 48.008 [49]: --- Bits 8-1 --- 8765 4321 --- 0000 0001 No encryption --- 0000 0010 GSM A5/1 --- 0000 0100 GSM A5/2 --- 0000 1000 GSM A5/3 --- 0001 0000 GSM A5/4 --- 0010 0000 GSM A5/5 --- 0100 0000 GSM A5/6 --- 1000 0000 GSM A5/7 - -PrepareGroupCallRes ::= SEQUENCE { - groupCallNumber ISDN-AddressString, - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- noGroupCallNumberAvailable localValue : 50, --- unexpectedDataValue localValue : 36} --- ::= localValue : 39 - ---sendGroupCallEndSignal OPERATION --- ARGUMENT -SendGroupCallEndSignalArg ::= SEQUENCE { - imsi IMSI OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - talkerPriority [0] IMPLICIT TalkerPriority OPTIONAL, - additionalInfo [1] IMPLICIT AdditionalInfo OPTIONAL } --- RESULT - -TalkerPriority ::= ENUMERATED { - normal (0), - privileged (1), - emergency (2)} - -SendGroupCallEndSignalRes ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 40 - ---processGroupCallSignalling OPERATION --- ARGUMENT -ProcessGroupCallSignallingArg ::= SEQUENCE { - uplinkRequest [0] IMPLICIT NULL OPTIONAL, - uplinkReleaseIndication [1] IMPLICIT NULL OPTIONAL, - releaseGroupCall [2] IMPLICIT NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - talkerPriority [3] IMPLICIT TalkerPriority OPTIONAL, - additionalInfo [4] IMPLICIT AdditionalInfo OPTIONAL, - emergencyModeResetCommandFlag [5] IMPLICIT NULL OPTIONAL } --- ::= localValue : 41 - -GroupKeyNumber ::= INTEGER (0..15) - -StateAttributes ::= SEQUENCE { - downlinkAttached [5] IMPLICIT NULL OPTIONAL, - uplinkAttached [6] IMPLICIT NULL OPTIONAL, - dualCommunication [7] IMPLICIT NULL OPTIONAL, - callOriginator [8] IMPLICIT NULL OPTIONAL } --- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields. - - --- currently not implemented --- -SendGroupCallInfoArg ::= SEQUENCE { - groupRequestedInfo GroupRequestedInfo, - groupId GroupId, - cellId [0] IMPLICIT GlobalCellId OPTIONAL, - imsi [1] IMPLICIT IMSI OPTIONAL, - tmsi [2] IMPLICIT TMSI OPTIONAL, - additionalInfo [3] IMPLICIT AdditionalInfo OPTIONAL, - talkerPriority [4] IMPLICIT TalkerPriority OPTIONAL, - cksn [5] IMPLICIT Cksn OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, - ... } - --- RequestedInfo changed to GroupRequestedInfo --- -GroupRequestedInfo ::= ENUMERATED { - anchorMSC-AddressAndASCI-CallReference (0), - imsiAndAdditionalInfoAndAdditionalSubscription (1), - ... } --- exception handling: --- an unrecognized value shall be rejected by the receiver with a return error cause of --- unexpected data value - --- currently not implemented --- -SendGroupCallInfoRes ::= SEQUENCE { - anchorMSC-Address [0] IMPLICIT ISDN-AddressString OPTIONAL, - asciCallReference [1] IMPLICIT ASCI-CallReference OPTIONAL, - imsi [2] IMPLICIT IMSI OPTIONAL, - additionalInfo [3] IMPLICIT AdditionalInfo OPTIONAL, - additionalSubscriptions [4] IMPLICIT AdditionalSubscriptions OPTIONAL, - kc [5] IMPLICIT Kc OPTIONAL, - extensionContainer [6] IMPLICIT ExtensionContainer OPTIONAL, - ... } - - ---forwardGroupCallSignalling OPERATION --- ARGUMENT -ForwardGroupCallSignallingArg ::= SEQUENCE { - imsi IMSI OPTIONAL, - uplinkRequestAck [0] IMPLICIT NULL OPTIONAL, - uplinkReleaseIndication [1] IMPLICIT NULL OPTIONAL, - uplinkRejectCommand [2] IMPLICIT NULL OPTIONAL, - uplinkSeizedCommand [3] IMPLICIT NULL OPTIONAL, - uplinkReleaseCommand [4] IMPLICIT NULL OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - stateAttributes [5] IMPLICIT StateAttributes OPTIONAL, - talkerPriority [6] IMPLICIT TalkerPriority OPTIONAL, - additionalInfo [7] IMPLICIT AdditionalInfo OPTIONAL, - emergencyModeResetCommandFlag [8] IMPLICIT NULL OPTIONAL, - sm-RP-UI [9] IMPLICIT Sm-RP-UI OPTIONAL } --- ::= localValue : 42 - ---updateGprsLocation OPERATION --- ARGUMENT - -UpdateGprsLocationArg ::= SEQUENCE { - imsi IMSI, - sgsn-Number ISDN-AddressString, - sgsn-Address GSN-Address, - extensionContainer ExtensionContainer OPTIONAL, - ... , - sgsn-Capability [0] IMPLICIT SGSN-Capability OPTIONAL, - informPreviousNetworkEntity [1] IMPLICIT NULL OPTIONAL, - ps-LCS-NotSupportedByUE [2] IMPLICIT NULL OPTIONAL, - v-gmlc-Address [3] IMPLICIT GSN-Address OPTIONAL, - add-info [4] IMPLICIT ADD-Info OPTIONAL } - --- RESULT -UpdateGprsLocationRes ::= SEQUENCE { - hlr-Number ISDN-AddressString, - extensionContainer ExtensionContainer OPTIONAL, - ..., - add-Capability NULL OPTIONAL } - --- ERRORS { --- systemFailure localValue : 34, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1, --- roamingNotAllowed localValue : 8} --- ::= localValue : 23 - -SGSN-Capability ::= SEQUENCE{ - solsaSupportIndicator NULL OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... , - superChargerSupportedInServingNetworkEntity [2] IMPLICIT SuperChargerInfo OPTIONAL , - gprsEnhancementsSupportIndicator [3] IMPLICIT NULL OPTIONAL, - supportedCamelPhases [4] IMPLICIT SupportedCamelPhases OPTIONAL, - supportedLCS-CapabilitySets [5] IMPLICIT SupportedLCS-CapabilitySets OPTIONAL, - offeredCamel4CSIs [6] IMPLICIT OfferedCamel4CSIs OPTIONAL, - smsCallBarringSupportIndicator [7] IMPLICIT NULL OPTIONAL, - supportedRAT-TypesIndicator [8] IMPLICIT SupportedRAT-Types OPTIONAL } - -GSN-Address ::= OCTET STRING (SIZE (5..17)) --- Octets are coded according to TS 3GPP TS 23.003 [17] - - ---sendRoutingInfoForGprs OPERATION --- ARGUMENT -SendRoutingInfoForGprsArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - ggsn-Address [1] IMPLICIT GSN-Address OPTIONAL, - ggsn-Number [2] IMPLICIT ISDN-AddressString, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- RESULT - -SendRoutingInfoForGprsRes ::= SEQUENCE { - sgsn-Address [0] IMPLICIT GSN-Address, - ggsn-Address [1] IMPLICIT GSN-Address OPTIONAL, - mobileNotReachableReason [2] IMPLICIT AbsentSubscriberDiagnosticSM OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} --- ERRORS { --- absentSubscriber localValue : 27, --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 24 - ---failureReport OPERATION --- ARGUMENT -FailureReportArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - ggsn-Number [1] IMPLICIT ISDN-AddressString, - ggsn-Address [2] IMPLICIT GSN-Address OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- RESULT -FailureReportRes ::= SEQUENCE { - ggsn-Address [0] IMPLICIT GSN-Address OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... } - --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 25 - ---noteMsPresentForGprs OPERATION --- ARGUMENT - -NoteMsPresentForGprsArg ::= SEQUENCE { - imsi [0] IMPLICIT IMSI, - sgsn-Address [1] IMPLICIT GSN-Address, - ggsn-Address [2] IMPLICIT GSN-Address OPTIONAL, - extensionContainer [3] IMPLICIT ExtensionContainer OPTIONAL, -...} --- RESULT -NoteMsPresentForGprsRes ::= SEQUENCE { - extensionContainer [0] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- unknownSubscriber localValue : 1} --- ::= localValue : 26 - - - ---provideSubscriberLocation OPERATION --- ARGUMENT - -ProvideSubscriberLocation-Arg ::= SEQUENCE { - locationType LocationType, - mlc-Number ISDN-AddressString, - lcs-ClientID [0] IMPLICIT LCS-ClientID OPTIONAL, - privacyOverride [1] IMPLICIT NULL OPTIONAL, - imsi [2] IMPLICIT IMSI OPTIONAL, - msisdn [3] IMPLICIT ISDN-AddressString OPTIONAL, - lmsi [4] IMPLICIT LMSI OPTIONAL, - imei [5] IMPLICIT IMEI OPTIONAL, - lcs-Priority [6] IMPLICIT LCS-Priority OPTIONAL, - lcs-QoS [7] IMPLICIT LCS-QoS OPTIONAL, - extensionContainer [8] IMPLICIT ExtensionContainer OPTIONAL, - ... , - supportedGADShapes [9] IMPLICIT SupportedGADShapes OPTIONAL, - lcs-ReferenceNumber [10] IMPLICIT LCS-ReferenceNumber OPTIONAL, - lcsServiceTypeID [11] IMPLICIT LCSServiceTypeID OPTIONAL, - lcsCodeword [12] IMPLICIT LCSCodeword OPTIONAL, - lcs-PrivacyCheck [13] IMPLICIT LCS-PrivacyCheck OPTIONAL, - areaEventInfo [14] IMPLICIT AreaEventInfo OPTIONAL, - h-gmlc-Address [15] IMPLICIT GSN-Address OPTIONAL, - mo-lrShortCircuitIndicator [16] IMPLICIT NULL OPTIONAL, - periodicLDRInfo [17] IMPLICIT PeriodicLDRInfo OPTIONAL, - reportingPLMNList [18] IMPLICIT ReportingPLMNList OPTIONAL } - --- one of imsi or msisdn is mandatory --- If a location estimate type indicates activate deferred location or cancel deferred --- location, a lcs-Reference number shall be included. - -LocationType ::= SEQUENCE { - locationEstimateType [0] IMPLICIT LocationEstimateType, - ..., - deferredLocationEventType [1] IMPLICIT DeferredLocationEventType OPTIONAL } - -LocationEstimateType ::= ENUMERATED { - currentLocation (0), - currentOrLastKnownLocation (1), - initialLocation (2), - ..., - activateDeferredLocation (3), - cancelDeferredLocation (4), - notificationVerificationOnly (5) } --- exception handling: --- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType --- shall be rejected by the receiver with a return error cause of unexpected data value - -DeferredLocationEventType ::= BIT STRING { - msAvailable (0) , - enteringIntoArea (1), - leavingFromArea (2), - beingInsideArea (3), - periodicLDR (4) } (SIZE (1..16)) --- beingInsideArea is always treated as oneTimeEvent regardless of the possible value --- of occurrenceInfo inside areaEventInfo. --- exception handling: --- a ProvideSubscriberLocation-Arg containing other values than listed above in --- DeferredLocationEventType shall be rejected by the receiver with a return error cause of --- unexpected data value. - -LCS-ClientID ::= SEQUENCE { - lcsClientType [0] IMPLICIT LCSClientType, - lcsClientExternalID [1] IMPLICIT LCSClientExternalID OPTIONAL, - lcsClientDialedByMS [2] IMPLICIT AddressString OPTIONAL, - lcsClientInternalID [3] IMPLICIT LCSClientInternalID OPTIONAL, - lcsClientName [4] IMPLICIT LCSClientName OPTIONAL, - ..., - lcsAPN [5] IMPLICIT APN OPTIONAL, - lcsRequestorID [6] IMPLICIT LCSRequestorID OPTIONAL } - -LCSClientType ::= ENUMERATED { - emergencyServices (0), - valueAddedServices (1), - plmnOperatorServices (2), - lawfulInterceptServices (3), - ... } --- exception handling: --- unrecognized values may be ignored if the LCS client uses the privacy override --- otherwise, an unrecognized value shall be treated as unexpected data by a receiver --- a return error shall then be returned if received in a MAP invoke - -LCSClientName ::= SEQUENCE { - dataCodingScheme [0] IMPLICIT USSD-DataCodingScheme, - nameString [2] IMPLICIT NameString, - ..., - lcs-FormatIndicator [3] IMPLICIT LCS-FormatIndicator OPTIONAL } - -NameString ::= USSD-String (SIZE (1..maxNameStringLength)) - -maxNameStringLength INTEGER ::= 63 - -LCSRequestorID ::= SEQUENCE { - dataCodingScheme [0] IMPLICIT USSD-DataCodingScheme, - requestorIDString [1] IMPLICIT RequestorIDString, - ..., - lcs-FormatIndicator [2] IMPLICIT LCS-FormatIndicator OPTIONAL } - -RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength)) - -maxRequestorIDStringLength INTEGER ::= 63 - -LCS-FormatIndicator ::= ENUMERATED { - logicalName (0), - e-mailAddress (1), - msisdn (2), - url (3), - sipUrl (4), - ... } -LCS-Priority ::= OCTET STRING (SIZE (1)) --- 0 = highest priority --- 1 = normal priority --- all other values treated as 1 - -LCS-QoS ::= SEQUENCE { - horizontal-accuracy [0] IMPLICIT Horizontal-Accuracy OPTIONAL, - verticalCoordinateRequest [1] IMPLICIT NULL OPTIONAL, - vertical-accuracy [2] IMPLICIT Vertical-Accuracy OPTIONAL, - responseTime [3] IMPLICIT ResponseTime OPTIONAL, - extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL, - ..., - velocityRequest [5] IMPLICIT NULL OPTIONAL} - -Horizontal-Accuracy ::= OCTET STRING (SIZE (1)) - -Vertical-Accuracy ::= OCTET STRING (SIZE (1)) - -ResponseTime ::= SEQUENCE { - responseTimeCategory ResponseTimeCategory, - ...} --- note: an expandable SEQUENCE simplifies later addition of a numeric response time. - -ResponseTimeCategory ::= ENUMERATED { - lowdelay (0), - delaytolerant (1), - ... } - -SupportedGADShapes ::= BIT STRING { - ellipsoidPoint (0), - ellipsoidPointWithUncertaintyCircle (1), - ellipsoidPointWithUncertaintyEllipse (2), - polygon (3), - ellipsoidPointWithAltitude (4), - ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5), - ellipsoidArc (6) } (SIZE (7..16)) --- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports. --- exception handling: bits 7 to 15 shall be ignored if received. - -LCS-ReferenceNumber::= OCTET STRING (SIZE(1)) - -LCSCodeword ::= SEQUENCE { - dataCodingScheme [0] IMPLICIT USSD-DataCodingScheme, - lcsCodewordString [1] IMPLICIT LCSCodewordString, - ...} - -LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength)) - -maxLCSCodewordStringLength INTEGER ::= 20 - -LCS-PrivacyCheck ::= SEQUENCE { - callSessionUnrelated [0] IMPLICIT PrivacyCheckRelatedAction, - callSessionRelated [1] IMPLICIT PrivacyCheckRelatedAction OPTIONAL, - ...} - -PrivacyCheckRelatedAction ::= ENUMERATED { - allowedWithoutNotification (0), - allowedWithNotification (1), - allowedIfNoResponse (2), - restrictedIfNoResponse (3), - notAllowed (4), - ...} --- exception handling: --- a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction --- shall be rejected by the receiver with a return error cause of unexpected data value - -AreaEventInfo ::= SEQUENCE { - areaDefinition [0] IMPLICIT AreaDefinition, - occurrenceInfo [1] IMPLICIT OccurrenceInfo OPTIONAL, - intervalTime [2] IMPLICIT IntervalTime OPTIONAL, - ...} -AreaDefinition ::= SEQUENCE { - areaList [0] IMPLICIT AreaList, - ...} -AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area - -maxNumOfAreas INTEGER ::= 10 - -Area ::= SEQUENCE { - areaType [0] IMPLICIT AreaType, - areaIdentification [1] IMPLICIT AreaIdentification, - ...} - -AreaType ::= ENUMERATED { - countryCode (0), - plmnId (1), - locationAreaId (2), - routingAreaId (3), - cellGlobalId (4), - ..., - utranCellId (5) } - -AreaIdentification ::= OCTET STRING (SIZE (2..7)) --- The internal structure is defined as follows: --- octet 1 bits 4321 Mobile Country Code 1st digit --- bits 8765 Mobile Country Code 2nd digit --- octet 2 bits 4321 Mobile Country Code 3rd digit --- bits 8765 Mobile Network Code 3rd digit if 3 digit MNC included --- or filler (1111) --- octet 3 bits 4321 Mobile Network Code 1st digit --- bits 8765 Mobile Network Code 2nd digit --- octets 4 and 5 Location Area Code (LAC) --- octet 6 Routing Area Code (RAC) for Routing Area Id --- octets 6 and 7 Cell Identity (CI) for Cell Global Id - -OccurrenceInfo ::= ENUMERATED { - oneTimeEvent (0), - multipleTimeEvent (1), - ...} - -IntervalTime ::= INTEGER (1..32767) --- minimum interval time between area reports in seconds - -PeriodicLDRInfo ::= SEQUENCE { - reportingAmount ReportingAmount, - reportingInterval ReportingInterval, - ...} --- reportingInterval x reportingAmount shall not exceed 8639999 (99 days, 23 hours, --- 59 minutes and 59 seconds) for compatibility with OMA MLP and RLP - -ReportingAmount ::= INTEGER (1..maxReportingAmount) - -maxReportingAmount INTEGER ::= 8639999 - -ReportingInterval ::= INTEGER (1..maxReportingInterval) - --- ReportingInterval is in seconds - -maxReportingInterval INTEGER ::= 8639999 - -ReportingPLMNList::= SEQUENCE { - plmn-ListPrioritized [0] IMPLICIT NULL OPTIONAL, - plmn-List [1] IMPLICIT PLMNList, - ...} - -PLMNList::= SEQUENCE SIZE (1..maxNumOfReportingPLMN) OF -ReportingPLMN - -maxNumOfReportingPLMN INTEGER ::= 20 - -ReportingPLMN::= SEQUENCE { - plmn-Id [0] IMPLICIT PLMN-Id, - ran-Technology [1] IMPLICIT RAN-Technology OPTIONAL, - ran-PeriodicLocationSupport [2] IMPLICIT NULL OPTIONAL, - ...} - -RAN-Technology ::= ENUMERATED { - gsm (0), - umts (1), - ...} - --- RESULT - -ProvideSubscriberLocation-Res ::= SEQUENCE { - locationEstimate Ext-GeographicalInformation, - ageOfLocationEstimate [0] IMPLICIT AgeOfLocationInformation OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... , - add-LocationEstimate [2] IMPLICIT Add-GeographicalInformation OPTIONAL, - deferredmt-lrResponseIndicator [3] IMPLICIT NULL OPTIONAL, - geranPositioningData [4] IMPLICIT PositioningDataInformation OPTIONAL, - utranPositioningData [5] IMPLICIT UtranPositioningDataInfo OPTIONAL, - cellIdOrSai [6] IMPLICIT CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL, - sai-Present [7] IMPLICIT NULL OPTIONAL, - accuracyFulfilmentIndicator [8] IMPLICIT AccuracyFulfilmentIndicator OPTIONAL, - velocityEstimate [9] IMPLICIT VelocityEstimate OPTIONAL, - mo-lrShortCircuitIndicator [10] IMPLICIT NULL OPTIONAL } - --- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored. - --- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the --- geographic shapes supported in the ProvideSubscriberLocation-Arg --- The locationEstimate and the add-locationEstimate parameters shall not be sent if --- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg --- and the shape encoded in locationEstimate or add-LocationEstimate is not marked --- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation --- shall be rejected with error FacilityNotSupported with additional indication --- shapeOfLocationEstimateNotSupported. --- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity. - --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unidentifiedSubscriber localValue : 5, --- illegalSubscriber localValue : 9, --- illegalEquipment localValue : 12, --- absentSubscriber localValue : 27, --- unauthorizedRequestingNetwork localValue : 52, --- unauthorizedLCSClient localValue : 53, --- positionMethodFailure localValue : 54} --- ::= localValue : 83 - -AccuracyFulfilmentIndicator ::= ENUMERATED { - requestedAccuracyFulfilled (0), - requestedAccuracyNotFulfilled (1), - ... } - -Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation)) --- Refers to geographical Information defined in 3GPP TS 23.032. --- This is composed of 1 or more octets with an internal structure according to --- 3GPP TS 23.032 --- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed: --- (a) Ellipsoid point with uncertainty circle --- (b) Ellipsoid point with uncertainty ellipse --- (c) Ellipsoid point with altitude and uncertainty ellipsoid --- (d) Ellipsoid Arc --- (e) Ellipsoid Point --- Any other value in octet 1 shall be treated as invalid --- Octets 2 to 8 for case (a) - Ellipsoid point with uncertainty circle --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets --- Uncertainty code 1 octet --- Octets 2 to 11 for case (b) - Ellipsoid point with uncertainty ellipse: --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets --- Uncertainty semi-major axis 1 octet --- Uncertainty semi-minor axis 1 octet --- Angle of major axis 1 octet --- Confidence 1 octet --- Octets 2 to 14 for case (c) - Ellipsoid point with altitude and uncertainty ellipsoid --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets --- Altitude 2 octets --- Uncertainty semi-major axis 1 octet --- Uncertainty semi-minor axis 1 octet --- Angle of major axis 1 octet --- Uncertainty altitude 1 octet --- Confidence 1 octet --- Octets 2 to 13 for case (d) - Ellipsoid Arc --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets --- Inner radius 2 octets --- Uncertainty radius 1 octet --- Offset angle 1 octet --- Included angle 1 octet --- Confidence 1 octet --- Octets 2 to 7 for case (e) - Ellipsoid Point --- Degrees of Latitude 3 octets --- Degrees of Longitude 3 octets - --- --- An Ext-GeographicalInformation parameter comprising more than one octet and --- containing any other shape or an incorrect number of octets or coding according --- to 3GPP TS 23.032 shall be treated as invalid data by a receiver. --- --- An Ext-GeographicalInformation parameter comprising one octet shall be discarded --- by the receiver if an Add-GeographicalInformation parameter is received --- in the same message. --- --- An Ext-GeographicalInformation parameter comprising one octet shall be treated as --- invalid data by the receiver if an Add-GeographicalInformation parameter is not --- received in the same message. - -maxExt-GeographicalInformation INTEGER ::= 20 --- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later --- versions of 3GPP TS 29.002 - -VelocityEstimate ::= OCTET STRING (SIZE (4..7)) --- Refers to Velocity description defined in 3GPP TS 23.032. --- This is composed of 4 or more octets with an internal structure according to --- 3GPP TS 23.032 --- Octet 1: Type of velocity, only the following types in 3GPP TS 23.032 are allowed: --- (a) Horizontal Velocity --- (b) Horizontal with Vertical Velocity --- (c) Horizontal Velocity with Uncertainty --- (d) Horizontal with Vertical Velocity and Uncertainty --- For types Horizontal with Vertical Velocity and Horizontal with Vertical Velocity --- and Uncertainty, the direction of the Vertical Speed is also included in Octet 1 --- Any other value in octet 1 shall be treated as invalid --- Octets 2 to 4 for case (a) Horizontal velocity: --- Bearing 1 octet --- Horizontal Speed 2 octets --- Octets 2 to 5 for case (b) - Horizontal with Vertical Velocity: --- Bearing 1 octet --- Horizontal Speed 2 octets --- Vertical Speed 1 octet --- Octets 2 to 5 for case (c) - Horizontal velocity with Uncertainty: --- Bearing 1 octet --- Horizontal Speed 2 octets --- Uncertainty Speed 1 octet --- Octets 2 to 7 for case (d) - Horizontal with Vertical Velocity and Uncertainty: --- Bearing 1 octet --- Horizontal Speed 2 octets --- Vertical Speed 1 octet --- Horizontal Uncertainty Speed 1 octet --- Vertical Uncertainty Speed 1 octet - -PositioningDataInformation ::= OCTET STRING (SIZE (2..maxPositioningDataInformation)) --- Refers to the Positioning Data defined in 3GPP TS 49.031. --- This is composed of 2 or more octets with an internal structure according to --- 3GPP TS 49.031. - -maxPositioningDataInformation INTEGER ::= 10 - - -UtranPositioningDataInfo ::= OCTET STRING (SIZE (3..maxUtranPositioningDataInfo)) --- Refers to the Position Data defined in 3GPP TS 25.413. --- This is composed of the positioningDataDiscriminator and the positioningDataSet --- included in positionData as defined in 3GPP TS 25.413. - -maxUtranPositioningDataInfo INTEGER ::= 11 - -Add-GeographicalInformation ::= OCTET STRING (SIZE (1..maxAdd-GeographicalInformation)) --- Refers to geographical Information defined in 3GPP TS 23.032. --- This is composed of 1 or more octets with an internal structure according to --- 3GPP TS 23.032 --- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed: --- Octets 2 to n (where n is the total number of octets necessary to encode the shape --- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the --- encoding defined in 3GPP TS 23.032 --- --- An Add-GeographicalInformation parameter, whether valid or invalid, received --- together with a valid Ext-GeographicalInformation parameter in the same message --- shall be discarded. --- --- An Add-GeographicalInformation parameter containing any shape not defined in --- 3GPP TS 23.032 or an incorrect number of octets or coding according to --- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received --- together with a valid Ext-GeographicalInformation parameter in the same message. - -maxAdd-GeographicalInformation INTEGER ::= 91 --- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032 - --- not used --- TargetMS ::= CHOICE { --- imsi [0] IMPLICIT IMSI, --- msisdn [1] IMPLICIT ISDN-AddressString} - ---sendRoutingInfoForLCS OPERATION --- ARGUMENT -RoutingInfoForLCS-Arg ::= SEQUENCE { - mlcNumber [0] IMPLICIT ISDN-AddressString, - targetMS [1] IMPLICIT SubscriberIdentity, - extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- RESULT - -RoutingInfoForLCS-Res ::= SEQUENCE { - targetMS [0] SubscriberIdentity, - lcsLocationInfo [1] LCSLocationInfo, - extensionContainer [2] ExtensionContainer OPTIONAL, - ..., - v-gmlc-Address [3] GSN-Address OPTIONAL, - h-gmlc-Address [4] GSN-Address OPTIONAL, - ppr-Address [5] GSN-Address OPTIONAL, - additional-v-gmlc-Address [6] GSN-Address OPTIONAL } --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- facilityNotSupported localValue : 21, --- unknownSubscriber localValue : 1, --- absentSubscriber localValue : 27, --- unauthorizedRequestingNetwork localValue : 52} --- ::= localValue : 85 - -LCSLocationInfo ::= SEQUENCE { - networkNode-Number ISDN-AddressString, --- NetworkNode-number can be either msc-number or sgsn-number - lmsi [0] IMPLICIT LMSI OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... , - gprsNodeIndicator [2] IMPLICIT NULL OPTIONAL, --- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number - additional-Number [3] IMPLICIT Additional-Number OPTIONAL, - supportedLCS-CapabilitySets [4] IMPLICIT SupportedLCS-CapabilitySets OPTIONAL, - additional-LCS-CapabilitySets [5] IMPLICIT SupportedLCS-CapabilitySets OPTIONAL - } - ---subscriberLocationReport OPERATION --- ARGUMENT - -SubscriberLocationReport-Arg ::= SEQUENCE { - lcs-Event LCS-Event, - lcs-ClientID LCS-ClientID, - lcsLocationInfo LCSLocationInfo, - msisdn [0] IMPLICIT ISDN-AddressString OPTIONAL, - imsi [1] IMPLICIT IMSI OPTIONAL, - imei [2] IMPLICIT IMEI OPTIONAL, - na-ESRD [3] IMPLICIT ISDN-AddressString OPTIONAL, - na-ESRK [4] IMPLICIT ISDN-AddressString OPTIONAL, - locationEstimate [5] IMPLICIT Ext-GeographicalInformation OPTIONAL, - ageOfLocationEstimate [6] IMPLICIT AgeOfLocationInformation OPTIONAL, - slr-ArgExtensionContainer [7] IMPLICIT SLR-ArgExtensionContainer OPTIONAL, - ... , - add-LocationEstimate [8] IMPLICIT Add-GeographicalInformation OPTIONAL, - deferredmt-lrData [9] IMPLICIT Deferredmt-lrData OPTIONAL, - lcs-ReferenceNumber [10] IMPLICIT LCS-ReferenceNumber OPTIONAL, - geranPositioningData [11] IMPLICIT PositioningDataInformation OPTIONAL, - utranPositioningData [12] IMPLICIT UtranPositioningDataInfo OPTIONAL, - cellIdOrSai [13] IMPLICIT CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL, - h-gmlc-Address [14] IMPLICIT GSN-Address OPTIONAL, - lcsServiceTypeID [15] IMPLICIT LCSServiceTypeID OPTIONAL, - sai-Present [17] IMPLICIT NULL OPTIONAL, - pseudonymIndicator [18] IMPLICIT NULL OPTIONAL, - velocityEstimate [19] IMPLICIT VelocityEstimate OPTIONAL, - accuracyFulfilmentIndicator [20] IMPLICIT AccuracyFulfilmentIndicator OPTIONAL, - sequenceNumber [21] IMPLICIT SequenceNumber OPTIONAL, - periodicLDRInfo [22] IMPLICIT PeriodicLDRInfo OPTIONAL, - mo-lrShortCircuitIndicator [23] IMPLICIT NULL OPTIONAL } - --- one of msisdn or imsi is mandatory --- a location estimate that is valid for the locationEstimate parameter should --- be transferred in this parameter in preference to the add-LocationEstimate. --- the deferredmt-lrData parameter shall be included if and only if the lcs-Event --- indicates a deferredmt-lrResponse. --- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate --- and the add-locationEstimate parameters shall not be sent if the --- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg --- and the shape encoded in locationEstimate or add-LocationEstimate was not marked --- as supported in supportedGADShapes. In such a case terminationCause --- in deferredmt-lrData shall be present with value --- shapeOfLocationEstimateNotSupported. --- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be --- included. --- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity. - -Deferredmt-lrData ::= SEQUENCE { - deferredLocationEventType DeferredLocationEventType, - terminationCause [0] IMPLICIT TerminationCause OPTIONAL, - lcsLocationInfo [1] IMPLICIT LCSLocationInfo OPTIONAL, - ...} --- lcsLocationInfo may be included only if a terminationCause is present --- indicating mt-lrRestart. - -LCS-Event ::= ENUMERATED { - emergencyCallOrigination (0), - emergencyCallRelease (1), - mo-lr (2), - ..., - deferredmt-lrResponse (3), - deferredmo-lrTTTPInitiation (4) } --- exception handling: --- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event --- shall be rejected by a receiver with a return error cause of unexpected data value - -TerminationCause ::= ENUMERATED { - normal (0), - errorundefined (1), - internalTimeout (2), - congestion (3), - mt-lrRestart (4), - privacyViolation (5), - ..., - shapeOfLocationEstimateNotSupported (6), - subscriberTermination (7), - uETermination (8), - networkTermination (9) } --- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure, --- either because the sending node knows that the terminal has moved under coverage --- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber --- has been deregistered due to a Cancel Location received from HLR. --- --- exception handling --- an unrecognized value shall be treated the same as value 1 (errorundefined) - -SequenceNumber ::= INTEGER (1..maxReportingAmount) - - --- RESULT -SubscriberLocationReport-Res ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ..., - na-ESRK [0] IMPLICIT ISDN-AddressString OPTIONAL, - na-ESRD [1] IMPLICIT ISDN-AddressString OPTIONAL, - h-gmlc-Address [2] IMPLICIT GSN-Address OPTIONAL, - mo-lrShortCircuitIndicator [3] IMPLICIT NULL OPTIONAL, - reportingPLMNList [4] IMPLICIT ReportingPLMNList OPTIONAL, - lcs-ReferenceNumber [5] IMPLICIT LCS-ReferenceNumber OPTIONAL } - --- na-ESRK and na-ESRD are mutually exclusive --- --- exception handling --- receipt of both na-ESRK and na-ESRD shall be treated the same as a return error --- ERRORS { --- systemFailure localValue : 34, --- dataMissing localValue : 35, --- unexpectedDataValue localValue : 36, --- resourceLimitation localValue : 51, --- unknownSubscriber localValue : 1, --- unauthorizedRequestingNetwork localValue : 52, --- unknownOrUnreachableLCSClient localValue : 58} --- ::= localValue : 86 - - -SecureTransportArg ::= SEQUENCE { +SecureTransportErrorParam ::= SEQUENCE { securityHeader SecurityHeader, protectedPayload ProtectedPayload OPTIONAL } + -- The protectedPayload carries the result of applying the security function -- defined in 3GPP TS 33.200 to the encoding of the argument of the securely -- transported operation @@ -5504,9 +518,9 @@ InitialisationVector ::= OCTET STRING (SIZE(14)) -- The content is not standardized. OriginalComponentIdentifier ::= CHOICE { - operationCode [0] IMPLICIT OperationCode, - errorCode [1] IMPLICIT ErrorCode, - userInfo [2] IMPLICIT NULL} + operationCode [0] OperationCode, + errorCode [1] ErrorCode, + userInfo [2] NULL} OperationCode ::= CHOICE { localValue INTEGER, @@ -5516,547 +530,42 @@ ErrorCode ::= CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER} -GlobalCellId ::= OCTET STRING (SIZE (5..7)) --- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17]. --- The internal structure is defined as follows: --- octet 1 bits 4321 Mobile Country Code 1st digit --- bits 8765 Mobile Country Code 2nd digit --- octet 2 bits 4321 Mobile Country Code 3rd digit --- bits 8765 Mobile Network Code 3rd digit --- or filler (1111) for 2 digit MNCs --- octet 3 bits 4321 Mobile Network Code 1st digit --- bits 8765 Mobile Network Code 2nd digit --- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008[35] --- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008[35] - -NetworkResource ::= ENUMERATED { - plmn ( 0 ), - hlr ( 1 ), - vlr ( 2 ), - pvlr ( 3 ), - controllingMSC ( 4 ), - vmsc ( 5 ), - eir ( 6 ), - rss ( 7 ) } - -AdditionalNetworkResource ::= ENUMERATED { - sgsn (0), - ggsn (1), - gmlc (2), - gsmSCF (3), - nplr (4), - auc (5), - ...} --- if unknown value is received in AdditionalNetworkResource --- it shall be ignored. --PLMN_Data -- Alcatel Specific extension container -PlmnContainer ::= [0] IMPLICIT SEQUENCE { - msisdn [0] IMPLICIT ISDN-AddressString OPTIONAL, - category [1] IMPLICIT Category OPTIONAL, +PlmnContainer ::= [0] SEQUENCE { + msisdn [0] ISDN-AddressString OPTIONAL, + category [1] Category OPTIONAL, basicService BasicServiceCode OPTIONAL, - operatorSS-Code [4] IMPLICIT SEQUENCE ( SIZE( 1 .. 16 ) ) OF + operatorSS-Code [4] SEQUENCE ( SIZE( 1 .. 16 ) ) OF OCTET STRING ( SIZE ( 1 ) ) OPTIONAL, ... } +Category ::= OCTET STRING (SIZE (1)) + -- The internal structure is defined in ITU-T Rec Q.763. - ---systemFailure ERROR --- PARAMETER -SystemFailureParam ::= CHOICE { - networkResource NetworkResource, - -- networkResource must not be used in version 3 - extensibleSystemFailureParam ExtensibleSystemFailureParam - -- extensibleSystemFailureParam must not be used in version <3 - } --- ::= localValue : 34 - -ExtensibleSystemFailureParam ::= SEQUENCE { - networkResource NetworkResource OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ..., - additionalNetworkResource [0] IMPLICIT AdditionalNetworkResource OPTIONAL } - ---dataMissing ERROR --- PARAMETER -DataMissingParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 35 - ---unexpectedDataValue ERROR --- PARAMETER -UnexpectedDataParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 36 - ---facilityNotSupported ERROR --- PARAMETER -FacilityNotSupParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ..., - shapeOfLocationEstimateNotSupported [0] IMPLICIT NULL OPTIONAL, - neededLcsCapabilityNotSupportedInServingNode [1] IMPLICIT NULL OPTIONAL } --- ::= localValue : 21 - ---incompatibleTerminal ERROR --- PARAMETER -IncompatibleTerminalParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 28 - ---resourceLimitation ERROR --- PARAMETER -ResourceLimitationParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 51 - ---unknownSubscriber ERROR --- PARAMETER -UnknownSubscriberParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ..., - unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL} - -UnknownSubscriberDiagnostic ::= ENUMERATED { - imsiUnknown (0), - gprsSubscriptionUnknown (1), - ..., - npdbMismatch (2)} - -- if unknown values are received in - -- UnknownSubscriberDiagnostic they shall be discarded --- ::= localValue : 1 - ---numberChanged ERROR --- PARAMETER -NumberChangedParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 44 - ---unknownMSC ERROR --- ::= localValue : 3 - ---unidentifiedSubscriber ERROR --- PARAMETER -UnidentifiedSubParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 5 - ---unknownEquipment ERROR --- ::= localValue : 7 - ---roamingNotAllowed ERROR --- PARAMETER -RoamingNotAllowedParam ::= SEQUENCE { - roamingNotAllowedCause RoamingNotAllowedCause, - extensionContainer ExtensionContainer OPTIONAL, - ..., - additionalRoamingNotAllowedCause [0] IMPLICIT AdditionalRoamingNotAllowedCause OPTIONAL } - --- if the additionalRoamingNotallowedCause is received by the MSC/VLR or SGSN then the --- roamingNotAllowedCause shall be discarded. --- ::= localValue : 8 - -AdditionalRoamingNotAllowedCause ::= ENUMERATED { - supportedRAT-TypesNotAllowed (0), - ...} - -RoamingNotAllowedCause ::= ENUMERATED { - plmnRoamingNotAllowed (0), - operatorDeterminedBarring (3)} - ---illegalSubscriber ERROR --- PARAMETER -IllegalSubscriberParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 9 - ---illegalEquipment ERROR --- PARAMETER -IllegalEquipmentParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 12 - ---bearerServiceNotProvisioned ERROR --- PARAMETER -BearerServNotProvParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 10 - ---teleserviceNotProvisioned ERROR --- PARAMETER -TeleservNotProvParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 11 - ---noHandoverNumberAvailable ERROR --- ::= localValue : 25 - ---subsequentHandoverFailure ERROR --- ::= localValue : 26 - ---tracingBufferFull ERROR --- PARAMETER -TracingBufferFullParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 40 - ---noRoamingNumberAvailable ERROR --- PARAMETER -NoRoamingNbParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 39 - ---absentSubscriber ERROR --- PARAMETER - -AbsentSubscriberParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ..., - absentSubscriberReason [0] IMPLICIT AbsentSubscriberReason OPTIONAL - } - --- ::= localValue : 27 -AbsentSubscriberReason ::= ENUMERATED { - imsiDetach (0), - restrictedArea (1), - noPageResponse (2), - ... , - purgedMS (3) - } - --- exception handling: at reception of other values than the ones listed the --- AbsentSubscriberReason shall be ignored. --- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature --- (see TS 23.116). If this value is received in a Provide Roaming Number response --- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing --- Information response - ---busySubscriber ERROR --- PARAMETER -BusySubscriberParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... , - ccbs-Possible [0] IMPLICIT NULL OPTIONAL, - ccbs-Busy [1] IMPLICIT NULL OPTIONAL} --- ::= localValue : 45 - ---noSubscriberReply ERROR --- PARAMETER -NoSubscriberReplyParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 46 - ---forwardingViolation ERROR --- PARAMETER -ForwardingViolationParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 14 - ---forwardingFailed ERROR --- PARAMETER -ForwardingFailedParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 47 - ---ati-NotAllowed ERROR --- PARAMETER -ATI-NotAllowedParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 49 - -ATSI-NotAllowedParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } - -ATM-NotAllowedParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } - -IllegalSS-OperationParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } -SS-NotAvailableParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } - -SS-SubscriptionViolationParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } - -InformationNotAvailableParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } - ---subscriberBusyForMT-SMS ERROR --- PARAMETER -SubBusyForMT-SMS-Param ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... , - gprsConnectionSuspended NULL OPTIONAL} --- ::= localValue : 31 - ---callBarred ERROR --- PARAMETER -CallBarredParam ::= CHOICE { - callBarringCause CallBarringCause, - extensibleCallBarredParam ExtensibleCallBarredParam - } --- ::= localValue : 13 - -CallBarringCause ::= ENUMERATED { - barringServiceActive ( 0 ), - operatorBarring ( 1 ) -} - -ExtensibleCallBarredParam ::= SEQUENCE { - callBarringCause CallBarringCause OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... , - unauthorisedMessageOriginator [1] IMPLICIT NULL OPTIONAL - } - ---cug-Reject ERROR --- PARAMETER -CUG-RejectParam ::= SEQUENCE { - cug-RejectCause CUG-RejectCause OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, - ... - } --- ::= localValue : 15 - -CUG-RejectCause ::= ENUMERATED { - incomingCallsBarredWithinCUG (0), - subscriberNotMemberOfCUG (1), - requestedBasicServiceViolatesCUG-Constraints (5), - calledPartySS-InteractionViolation (7) - } - - ---or-NotAllowed ERROR --- PARAMETER -Or-NotAllowedParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 48 - ---noGroupCallNumberAvailable ERROR --- PARAMETER -NoGroupCallNbParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 50 - ---illegalSS-Operation ERROR --- ::= localValue : 16 - ---ss-ErrorStatus ERROR --- PARAMETER --- Ss-Statis is also declared as OCTET STRING ( SIZE( 1..5 ) ) ??? --- SS-Status ::= OCTET STRING ( SIZE( 1 ) ) --- ::= localValue : 17 - ---ss-NotAvailable ERROR --- ::= localValue : 18 - ---ss-SubscriptionViolation ERROR --- ::= localValue : 19 - ---ss-Incompatibility ERROR --- PARAMETER -SS-IncompatibilityCause ::= SEQUENCE { - ss-Code [1] IMPLICIT SS-Code OPTIONAL, - basicService BasicServiceCode OPTIONAL, - ss-Status [4] IMPLICIT SS-Status OPTIONAL, -...} ---unknownAlphabet ERROR --- ::= localValue : 71 - ---ussd-Busy ERROR --- ::= localValue : 72 - ---pw-RegistrationFailure ERROR --- PARAMETER - -PW-RegistrationFailureCause ::= ENUMERATED { - undetermined (0), - invalidFormat (1), - newPasswordsMismatch (2) - } --- ::= localValue : 37 - ---negativePW-Check ERROR --- ::= localValue : 38 - ---numberOfPW-AttemptsViolation ERROR --- ::= localValue : 43 - ---shortTermDenial ERROR --- PARAMETER -ShortTermDenialParam ::= SEQUENCE { - ... } --- ::= localValue : 29 - ---longTermDenial ERROR --- PARAMETER -LongTermDenialParam ::= SEQUENCE { - ... } --- ::= localValue : 30 - - ---sm-DeliveryFailure ERROR --- PARAMETER -SM-EnumeratedDeliveryFailureCause ::= ENUMERATED { - memoryCapacityExceeded (0), - equipmentProtocolError (1), - equipmentNotSM-Equipped (2), - unknownServiceCentre (3), - sc-Congestion (4), - invalidSME-Address (5), - subscriberNotSC-Subscriber (6) - } - -SM-DeliveryFailureCause ::= SEQUENCE { - sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause, - diagnosticInfo SignalInfo OPTIONAL, - extensionContainer ExtensionContainer OPTIONAL, -...} --- ::= localValue : 32 - - ---messageWaitingListFull ERROR --- PARAMETER -MessageWaitListFullParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 33 - ---absentsubscriberSM ERROR --- PARAMETER -AbsentSubscriberSM-Param ::= SEQUENCE { - absentSubscriberDiagnosticSM AbsentSubscriberDiagnosticSM OPTIONAL, --- AbsentSubscriberDiagnosticSM can be either for non-GPRS --- or for GPRS - extensionContainer ExtensionContainer OPTIONAL, - ..., - additionalAbsentSubscriberDiagnosticSM [0] IMPLICIT AbsentSubscriberDiagnosticSM OPTIONAL } --- if received, additionalAbsentSubscriberDiagnosticSM --- is for GPRS and absentSubscriberDiagnosticSM is --- for non-GPRS --- ::= localValue : 6 - -AbsentSubscriberDiagnosticSM ::= INTEGER (0..255) --- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040 - - ---unauthorizedRequestingNetwork ERROR --- PARAMETER -UnauthorizedRequestingNetwork-Param ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 52 - ---unauthorizedLCSClient ERROR --- PARAMETER -UnauthorizedLCSClient-Param ::= SEQUENCE { - unauthorizedLCSClient-Diagnostic [0] IMPLICIT UnauthorizedLCSClient-Diagnostic OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... } --- ::= localValue : 53 - -UnauthorizedLCSClient-Diagnostic ::= ENUMERATED { - noAdditionalInformation (0), - clientNotInMSPrivacyExceptionList (1), - callToClientNotSetup (2), - privacyOverrideNotApplicable (3), - disallowedByLocalRegulatoryRequirements (4), - ..., - unauthorizedPrivacyClass (5), - unauthorizedCallSessionUnrelatedExternalClient (6), - unauthorizedCallSessionRelatedExternalClient (7) } --- exception handling: --- any unrecognized value shall be ignored - ---positionMethodFailure ERROR --- PARAMETER -PositionMethodFailure-Param ::= SEQUENCE { - positionMethodFailure-Diagnostic [0] IMPLICIT PositionMethodFailure-Diagnostic OPTIONAL, - extensionContainer [1] IMPLICIT ExtensionContainer OPTIONAL, - ... - } - - -PositionMethodFailure-Diagnostic ::= ENUMERATED { - congestion (0), - insufficientResources (1), - insufficientMeasurementData (2), - inconsistentMeasurementData (3), - locationProcedureNotCompleted (4), - locationProcedureNotSupportedByTargetMS (5), - qoSNotAttainable (6), - positionMethodNotAvailableInNetwork (7), - positionMethodNotAvailableInLocationArea (8), - ... - } --- exception handling: --- any unrecognized value shall be ignored --- ::= localValue : 54 - ---unknownOrUnreachableLCSClient ERROR --- PARAMETER -UnknownOrUnreachableLCSClient-Param ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, +-- Special stuff from older spec's +--ForwardSM OPERATION +-- ARGUMENT +ForwardSM-Arg ::= SEQUENCE { + sm-RP-DA SM-RP-DAold, + sm-RP-OA SM-RP-OAold, + sm-RP-UI SignalInfo, + moreMessagesToSend NULL OPTIONAL, ... } --- ::= localValue : 58 - -MM-EventNotSupported-Param ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... - } - -TargetCellOutsideGCA-Param ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ... -} - -OngoingGroupCallParam ::= SEQUENCE { - extensionContainer ExtensionContainer OPTIONAL, - ...} - -SecureTransportErrorParam ::= SEQUENCE { - securityHeader SecurityHeader, - protectedPayload ProtectedPayload OPTIONAL -} --- The protectedPayload carries the result of applying the security function --- defined in 3GPP TS 33.200 to the encoding of the securely transported error --- parameter - -ExtensionContainer ::= SEQUENCE { - privateExtensionList [0] IMPLICIT PrivateExtensionList OPTIONAL, - pcsExtensions [1] IMPLICIT PcsExtensions OPTIONAL, - ... } +-- In fact, the 3GPP uses SignalInfo instead, but it is used for SMS content decoding +--Sm-RP-UI ::= OCTET STRING ( SIZE( 1 .. 200 ) ) +-- Must be locally defined as they are not exported from SM-datatypes +SM-RP-DAold ::= CHOICE { + imsi [0] IMSI, + lmsi [1] LMSI, + serviceCentreAddressDA [4] AddressString, + noSM-RP-DA [5] NULL} + +SM-RP-OAold ::= CHOICE { + msisdn [2] ISDN-AddressString, + serviceCentreAddressOA [4] AddressString, + noSM-RP-OA [5] NULL} -- Private extensions accessType-id OBJECT IDENTIFIER ::= @@ -6085,23 +594,6 @@ accessTypeNotAllowed-id OBJECT IDENTIFIER ::= --proprietary-extensions (1) --accessTypeNotAllowed (2) ---accessType MAP-EXTENSION ::= { --- &ExtensionType AccessType, --- &extensionId accessType-id} - --- not used --- AccessTypePriv ::= SEQUENCE { --- access Access, --- version Version, --- ...} - --- Access ::= ENUMERATED { --- gsm (1), --- geran (2), --- utran (3), --- ...} - --- Version ::= INTEGER (1..20) END diff --git a/asn1/gsmmap/MAP-MS-DataTypes.asn b/asn1/gsmmap/MAP-MS-DataTypes.asn index 185ef07bdc..8946285746 100644 --- a/asn1/gsmmap/MAP-MS-DataTypes.asn +++ b/asn1/gsmmap/MAP-MS-DataTypes.asn @@ -1,6 +1,5 @@ --- $Id$ -- 17.7.1 Mobile Service data types --- 3GPP TS 29.002 V8.1.0 (2007-03) + MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-MS-DataTypes (11) version11 (11)} @@ -313,13 +312,6 @@ CancelLocationArg ::= [3] SEQUENCE { extensionContainer ExtensionContainer OPTIONAL, ...} --- V2 ARGUMENT WS adaptation - -CancelLocationArgV2 ::= CHOICE { - imsi IMSI, - imsi-WithLMSI IMSI-WithLMSI} - - CancellationType ::= ENUMERATED { updateProcedure (0), subscriptionWithdraw (1), @@ -336,11 +328,6 @@ PurgeMS-Arg ::= [3] SEQUENCE { sgsn-Number [1] ISDN-AddressString OPTIONAL, extensionContainer ExtensionContainer OPTIONAL, ...} --- WS adaptation -PurgeMSArgV2 ::= SEQUENCE { - imsi IMSI, - vlr-Number ISDN-AddressString OPTIONAL, - ... } PurgeMS-Res ::= SEQUENCE { freezeTMSI [0] NULL OPTIONAL, @@ -372,12 +359,6 @@ SendIdentificationRes ::= [3] SEQUENCE { currentSecurityContext [2]CurrentSecurityContext OPTIONAL, extensionContainer [3] ExtensionContainer OPTIONAL, ...} --- WS adaptation -SendIdentificationResV2 ::= SEQUENCE { - imsi IMSI OPTIONAL, - tripletList TripletList OPTIONAL, - ...} - -- authentication management types @@ -575,12 +556,6 @@ KeyStatus ::= ENUMERATED { -- received values in range 2-31 shall be treated as "old" -- received values greater than 31 shall be treated as "new" -PrepareHO-ArgOld ::= SEQUENCE { - targetCellId GlobalCellId OPTIONAL, - ho-NumberNotRequired NULL OPTIONAL, - bss-APDU Bss-APDU OPTIONAL, - ... } - PrepareHO-Arg ::= [3] SEQUENCE { targetCellId [0] GlobalCellId OPTIONAL, ho-NumberNotRequired NULL OPTIONAL, @@ -643,11 +618,6 @@ RadioResource ::= SEQUENCE { maxNumOfRadioResources INTEGER ::= 7 -PrepareHO-ResOld ::= SEQUENCE { - handoverNumber ISDN-AddressString OPTIONAL, - bss-APDU Bss-APDU OPTIONAL, - ... } - PrepareHO-Res ::= [3] SEQUENCE { handoverNumber [0] ISDN-AddressString OPTIONAL, relocationNumberList [1] RelocationNumberList OPTIONAL, @@ -691,12 +661,6 @@ ChosenSpeechVersion ::= OCTET STRING (SIZE (1)) -- Octets are coded according the Speech Version (chosen) information element in 3GPP TS -- 48.008 -PrepareSubsequentHO-ArgOld ::= SEQUENCE { - targetCellId GlobalCellId, - targetMSC-Number ISDN-AddressString, - bss-APDU Bss-APDU, - ... } - PrepareSubsequentHO-Arg ::= [3] SEQUENCE { targetCellId [0] GlobalCellId OPTIONAL, targetMSC-Number [1] ISDN-AddressString, @@ -819,8 +783,6 @@ maxNumOfEncryptionInfo INTEGER ::= 100 -- authentication management types -SendAuthenticationInfoArgOld ::= IMSI - SendAuthenticationInfoArg ::= SEQUENCE { imsi [0] IMSI, numberOfRequestedVectors NumberOfRequestedVectors, @@ -840,13 +802,6 @@ Re-synchronisationInfo ::= SEQUENCE { auts AUTS, ...} -SendAuthenticationInfoResOld ::= SEQUENCE ( SIZE( 1 .. 5 ) ) OF - SEQUENCE { - rand RAND, - sres SRES, - kc Kc, - ... } - SendAuthenticationInfoRes ::= [3] SEQUENCE { authenticationSetList AuthenticationSetList OPTIONAL, extensionContainer ExtensionContainer OPTIONAL, @@ -906,21 +861,7 @@ EquipmentStatus ::= ENUMERATED { InsertSubscriberDataArg ::= SEQUENCE { imsi [0] IMSI OPTIONAL, --- COMPONENTS OF SubscriberData, --- WS expanded here - msisdn [1] IMPLICIT ISDN-AddressString OPTIONAL, - category [2] IMPLICIT Category OPTIONAL, - subscriberStatus [3] IMPLICIT SubscriberStatus OPTIONAL, - bearerserviceList [4] IMPLICIT BearerServiceList OPTIONAL, - teleserviceList [6] IMPLICIT TeleserviceList OPTIONAL, - provisionedSS [7] IMPLICIT Ext-SS-InfoList OPTIONAL, - odb-Data [8] IMPLICIT ODB-Data OPTIONAL, - roamingRestrictionDueToUnsupportedFeature [9] IMPLICIT NULL OPTIONAL, - regionalSubscriptionData [10] IMPLICIT ZoneCodeList OPTIONAL, - vbsSubscriptionData [11] IMPLICIT VBSDataList OPTIONAL, - vgcsSubscriptionData [12] IMPLICIT VGCSDataList OPTIONAL, - vlrCamelSubscriptionInfo [13] IMPLICIT VlrCamelSubscriptionInfo OPTIONAL, --- End expansion + COMPONENTS OF SubscriberData, extensionContainer [14] ExtensionContainer OPTIONAL, ... , naea-PreferredCI [15] NAEA-PreferredCI OPTIONAL, @@ -2182,16 +2123,16 @@ MSRadioAccessCapability ::= OCTET STRING (SIZE (1..50)) -- This parameter carries the value part of the MS Radio Access Capability IE defined in -- 3GPP TS 24.008 [35]. --- RequestedInfo ::= SEQUENCE { --- locationInformation [0] NULL OPTIONAL, --- subscriberState [1] NULL OPTIONAL, --- extensionContainer [2] ExtensionContainer OPTIONAL, --- ..., --- currentLocation [3] NULL OPTIONAL, --- requestedDomain [4] DomainType OPTIONAL, --- imei [6] NULL OPTIONAL, --- ms-classmark [5] NULL OPTIONAL, --- mnpRequestedInfo [7] NULL OPTIONAL } +RequestedInfo ::= SEQUENCE { + locationInformation [0] NULL OPTIONAL, + subscriberState [1] NULL OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + currentLocation [3] NULL OPTIONAL, + requestedDomain [4] DomainType OPTIONAL, + imei [6] NULL OPTIONAL, + ms-classmark [5] NULL OPTIONAL, + mnpRequestedInfo [7] NULL OPTIONAL } -- currentLocation shall be absent if locationInformation is absent diff --git a/asn1/gsmmap/MAP-MobileServiceOperations.asn b/asn1/gsmmap/MAP-MobileServiceOperations.asn index 15c7b1e951..34c71a4949 100644 --- a/asn1/gsmmap/MAP-MobileServiceOperations.asn +++ b/asn1/gsmmap/MAP-MobileServiceOperations.asn @@ -1,6 +1,5 @@ --- $Id$ --- 3GPP TS 29.002 V8.1.0 (2007-03) ---17.6.1 Mobile Service Operations +-- 17.6.1 Mobile Service Operations + MAP-MobileServiceOperations { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-MobileServiceOperations (5) diff --git a/asn1/gsmmap/Makefile.nmake b/asn1/gsmmap/Makefile.nmake index 18df8f4d6f..dd858f2b9a 100644 --- a/asn1/gsmmap/Makefile.nmake +++ b/asn1/gsmmap/Makefile.nmake @@ -8,14 +8,19 @@ UNIX2DOS=$(PERL) ../../tools/unix2dos.pl PROTOCOL_NAME=gsm_map DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h +DATATYPES_ASN_FILES=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 +OPERATIONS_ASN_FILES=MAP-LocationServiceOperations.asn MAP-Group-Call-Operations.asn MAP-ShortMessageServiceOperations.asn MAP-SupplementaryServiceOperations.asn MAP-CallHandlingOperations.asn MAP-OperationAndMaintenanceOperations.asn MAP-MobileServiceOperations.asn +SS_ASN_FILES=SS-DataTypes.asn SS-Operations.asn +ROS_ASN= ../ros/Remote-Operations-Information-Objects.asn +ASN_FILE_LIST= $(ROS_ASN) MobileDomainDefinitions.asn MAP-ApplicationContexts.asn MAP-SS-Code.asn MAP-BS-Code.asn MAP-TS-Code.asn $(DATATYPES_ASN_FILES) MAP-DialogueInformation.asn $(OPERATIONS_ASN_FILES) MAP-Protocol.asn GSMMAP.asn $(SS_ASN_FILES) all: generate_dissector generate_dissector: $(DISSECTOR_FILES) -$(DISSECTOR_FILES): ../../tools/asn2wrs.py GSMMAP.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h gsmmap.cnf +$(DISSECTOR_FILES): ../../tools/asn2wrs.py $(ASN_FILE_LIST) packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h gsm_map.cnf !IFDEF PYTHON - $(PYTHON) "../../tools/asn2wrs.py" -b -e -p $(PROTOCOL_NAME) -c gsmmap.cnf -s packet-$(PROTOCOL_NAME)-template GSMMAP.asn + $(PYTHON) "../../tools/asn2wrs.py" -b -X -T -k -e -c gsm_map.cnf -s packet-$(PROTOCOL_NAME)-template $(ASN_FILE_LIST) !ELSE @echo Error: You need Python to use asn2wrs.py @exit 1 diff --git a/asn1/gsmmap/gsm_map-exp.cnf b/asn1/gsmmap/gsm_map-exp.cnf index 8659c9e92b..7b63083f09 100644 --- a/asn1/gsmmap/gsm_map-exp.cnf +++ b/asn1/gsmmap/gsm_map-exp.cnf @@ -1,23 +1,149 @@ # Do not modify this file. # It is created automatically by the ASN.1 to Wireshark dissector compiler # .\gsm_map-exp.cnf -# ../../tools/asn2wrs.py -b -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module Remote-Operations-Information-Objects --- --- --- #.MODULE -MAP-Protocol gsm_map +Remote-Operations-Information-Objects Remote-Operations-Information-Objects #.END #.IMPORT_TAG -GSMMAPLocalErrorcode BER_CLASS_UNI BER_UNI_TAG_INTEGER -SupportedCamelPhases BER_CLASS_UNI BER_UNI_TAG_BITSTRING -QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -Ext-QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -Ext2-QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -LSAIdentity BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -CUG-Info BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -CUG-Index BER_CLASS_UNI BER_UNI_TAG_INTEGER -CUG-Interlock BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -NotificationToMSUser BER_CLASS_UNI BER_UNI_TAG_ENUMERATED +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MobileDomainDefinitions --- --- --- + +#.MODULE +MobileDomainDefinitions MobileDomainDefinitions +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-ApplicationContexts --- --- --- + +#.MODULE +MAP-ApplicationContexts gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-SS-Code --- --- --- + +#.MODULE +MAP-SS-Code gsm_map +#.END + +#.IMPORT_TAG +SS-Code BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +#.END + +#.TYPE_ATTR +SS-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ssCode_vals) BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-BS-Code --- --- --- + +#.MODULE +MAP-BS-Code gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-TS-Code --- --- --- + +#.MODULE +MAP-TS-Code gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-ExtensionDataTypes --- --- --- + +#.MODULE +MAP-ExtensionDataTypes gsm_map +#.END + +#.IMPORT_TAG +ExtensionContainer BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +#.END + +#.TYPE_ATTR +ExtensionContainer TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-CommonDataTypes --- --- --- + +#.MODULE +MAP-CommonDataTypes gsm_map +#.END + +#.IMPORT_TAG +AddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +ISDN-AddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +ISDN-SubaddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING AlertingPattern BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING IMSI BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING IMEI BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING @@ -25,56 +151,157 @@ LCSClientExternalID BER_CLASS_UNI BER_UNI_TAG_SEQUENCE LCSServiceTypeID BER_CLASS_UNI BER_UNI_TAG_INTEGER CellGlobalIdOrServiceAreaIdFixedLength BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING LAIFixedLength BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -LocationInformation BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -RAIdentity BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -SubscriberState BER_CLASS_ANY/*choice*/ -1/*choice*/ -GPRSChargingID BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -UU-Data BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Ext-BasicServiceCode BER_CLASS_ANY/*choice*/ -1/*choice*/ +AgeOfLocationInformation BER_CLASS_UNI BER_UNI_TAG_INTEGER +#.END + +#.TYPE_ATTR +AddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +ISDN-AddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +ISDN-SubaddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +AlertingPattern TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +IMSI TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +IMEI TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +LCSClientExternalID TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +LCSServiceTypeID TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_LCSServiceTypeID_vals) BITMASK = 0 +CellGlobalIdOrServiceAreaIdFixedLength TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +LAIFixedLength TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +Ext-BasicServiceCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_Ext_BasicServiceCode_vals) BITMASK = 0 +AgeOfLocationInformation TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-SS-DataTypes --- --- --- + +#.MODULE +MAP-SS-DataTypes gsm_map.ss +#.END + +#.IMPORT_TAG RegisterSS-Arg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE SS-Info BER_CLASS_ANY/*choice*/ -1/*choice*/ +SS-Status BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +SS-ForBS-Code BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CCBS-Feature BER_CLASS_UNI BER_UNI_TAG_SEQUENCE InterrogateSS-Res BER_CLASS_ANY/*choice*/ -1/*choice*/ -Ussd-Arg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -Ussd-Res BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +USSD-Arg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +USSD-Res BER_CLASS_UNI BER_UNI_TAG_SEQUENCE USSD-DataCodingScheme BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING USSD-String BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -SS-Code BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -NewPassword BER_CLASS_UNI BER_UNI_TAG_NumericString -GetPasswordArg BER_CLASS_UNI BER_UNI_TAG_ENUMERATED -CurrentPassword BER_CLASS_UNI BER_UNI_TAG_NumericString RegisterCC-EntryRes BER_CLASS_UNI BER_UNI_TAG_SEQUENCE EraseCC-EntryArg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE EraseCC-EntryRes BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -MS-Classmark2 BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -OfferedCamel4Functionalities BER_CLASS_UNI BER_UNI_TAG_BITSTRING -SS-ForBS-Code BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -CCBS-Feature BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -SS-Status BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -AgeOfLocationInformation BER_CLASS_UNI BER_UNI_TAG_INTEGER -Ext-BasicServiceCode BER_CLASS_ANY/*choice*/ -1/*choice*/ -AddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -ISDN-AddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -ISDN-SubaddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +#.END + +#.TYPE_ATTR +RegisterSS-Arg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SS-Info TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_ss_SS_Info_vals) BITMASK = 0 +SS-Status TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +SS-ForBS-Code TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +CCBS-Feature TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +InterrogateSS-Res TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_ss_InterrogateSS_Res_vals) BITMASK = 0 +USSD-Arg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +USSD-Res TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +USSD-DataCodingScheme TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +USSD-String TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +RegisterCC-EntryRes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +EraseCC-EntryArg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +EraseCC-EntryRes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-ER-DataTypes --- --- --- + +#.MODULE +MAP-ER-DataTypes gsm_map.er +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-SM-DataTypes --- --- --- + +#.MODULE +MAP-SM-DataTypes gsm_map.sm +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-OM-DataTypes --- --- --- + +#.MODULE +MAP-OM-DataTypes gsm_map.om +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-MS-DataTypes --- --- --- + +#.MODULE +MAP-MS-DataTypes gsm_map.ms +#.END + +#.IMPORT_TAG GSN-Address BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -LocationType BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -DeferredLocationEventType BER_CLASS_UNI BER_UNI_TAG_BITSTRING -LCSClientName BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -LCSRequestorID BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -LCS-QoS BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -SupportedGADShapes BER_CLASS_UNI BER_UNI_TAG_BITSTRING -LCS-ReferenceNumber BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -LCSCodeword BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -AreaEventInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -Ext-GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -Add-GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -SecurityHeader BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -ProtectedPayload BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING -ExtensionContainer BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +Ext-QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +Ext2-QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +LSAIdentity BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +CUG-Info BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CUG-Index BER_CLASS_UNI BER_UNI_TAG_INTEGER +CUG-Interlock BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +NotificationToMSUser BER_CLASS_UNI BER_UNI_TAG_ENUMERATED +SupportedCamelPhases BER_CLASS_UNI BER_UNI_TAG_BITSTRING +OfferedCamel4Functionalities BER_CLASS_UNI BER_UNI_TAG_BITSTRING +MS-Classmark2 BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +LocationInformation BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +RAIdentity BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +SubscriberState BER_CLASS_ANY/*choice*/ -1/*choice*/ +GPRSChargingID BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING #.END #.TYPE_ATTR -GSMMAPLocalErrorcode TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_GSMMAPLocalErrorcode_vals) BITMASK = 0 -SupportedCamelPhases TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +GSN-Address TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 QoS-Subscribed TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 Ext-QoS-Subscribed TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 Ext2-QoS-Subscribed TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 @@ -82,45 +309,65 @@ LSAIdentity TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL CUG-Info TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 CUG-Index TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 CUG-Interlock TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -NotificationToMSUser TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_NotificationToMSUser_vals) BITMASK = 0 -AlertingPattern TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -IMSI TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -IMEI TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -LCSClientExternalID TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -LCSServiceTypeID TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 -CellGlobalIdOrServiceAreaIdFixedLength TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -LAIFixedLength TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +NotificationToMSUser TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_ms_NotificationToMSUser_vals) BITMASK = 0 +SupportedCamelPhases TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +OfferedCamel4Functionalities TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +MS-Classmark2 TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 LocationInformation TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 RAIdentity TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 GeographicalInformation TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -SubscriberState TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_SubscriberState_vals) BITMASK = 0 +SubscriberState TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_ms_SubscriberState_vals) BITMASK = 0 GPRSChargingID TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-CH-DataTypes --- --- --- + +#.MODULE +MAP-CH-DataTypes gsm_map.ch +#.END + +#.IMPORT_TAG +UU-Data BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +#.END + +#.TYPE_ATTR UU-Data TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -RegisterSS-Arg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -SS-Info TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_SS_Info_vals) BITMASK = 0 -InterrogateSS-Res TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_InterrogateSS_Res_vals) BITMASK = 0 -Ussd-Arg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -Ussd-Res TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -USSD-DataCodingScheme TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -USSD-String TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -SS-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ssCode_vals) BITMASK = 0 -NewPassword TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -GetPasswordArg TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_GetPasswordArg_vals) BITMASK = 0 -CurrentPassword TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -RegisterCC-EntryRes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -EraseCC-EntryArg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -EraseCC-EntryRes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -MS-Classmark2 TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -OfferedCamel4Functionalities TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -SS-ForBS-Code TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -CCBS-Feature TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 -SS-Status TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -AgeOfLocationInformation TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 -Ext-BasicServiceCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_Ext_BasicServiceCode_vals) BITMASK = 0 -AddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -ISDN-AddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -ISDN-SubaddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -GSN-Address TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-LCS-DataTypes --- --- --- + +#.MODULE +MAP-LCS-DataTypes gsm_map.lcs +#.END + +#.IMPORT_TAG +LocationType BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +DeferredLocationEventType BER_CLASS_UNI BER_UNI_TAG_BITSTRING +LCSClientName BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +LCSRequestorID BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +LCS-QoS BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SupportedGADShapes BER_CLASS_UNI BER_UNI_TAG_BITSTRING +LCS-ReferenceNumber BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +LCSCodeword BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +AreaEventInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Ext-GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +VelocityEstimate BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +Add-GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +#.END + +#.TYPE_ATTR LocationType TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 DeferredLocationEventType TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 LCSClientName TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 @@ -131,9 +378,253 @@ LCS-ReferenceNumber TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL LCSCodeword TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 AreaEventInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 Ext-GeographicalInformation TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +VelocityEstimate TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 Add-GeographicalInformation TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-GR-DataTypes --- --- --- + +#.MODULE +MAP-GR-DataTypes gsm_map.gr +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-DialogueInformation --- --- --- + +#.MODULE +MAP-DialogueInformation gsm_map.dialogue +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-LocationServiceOperations --- --- --- + +#.MODULE +MAP-LocationServiceOperations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-Group-Call-Operations --- --- --- + +#.MODULE +MAP-Group-Call-Operations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-ShortMessageServiceOperations --- --- --- + +#.MODULE +MAP-ShortMessageServiceOperations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-SupplementaryServiceOperations --- --- --- + +#.MODULE +MAP-SupplementaryServiceOperations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-CallHandlingOperations --- --- --- + +#.MODULE +MAP-CallHandlingOperations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-OperationAndMaintenanceOperations --- --- --- + +#.MODULE +MAP-OperationAndMaintenanceOperations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-MobileServiceOperations --- --- --- + +#.MODULE +MAP-MobileServiceOperations gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module MAP-Protocol --- --- --- + +#.MODULE +MAP-Protocol gsm_map +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module DummyMAP --- --- --- + +#.MODULE +DummyMAP gsm_old +#.END + +#.IMPORT_TAG +GSMMAPLocalErrorcode BER_CLASS_UNI BER_UNI_TAG_INTEGER +NewPassword BER_CLASS_UNI BER_UNI_TAG_NumericString +GetPasswordArg BER_CLASS_UNI BER_UNI_TAG_ENUMERATED +CurrentPassword BER_CLASS_UNI BER_UNI_TAG_NumericString +SecurityHeader BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ProtectedPayload BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +#.END + +#.TYPE_ATTR +GSMMAPLocalErrorcode TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_old_GSMMAPLocalErrorcode_vals) BITMASK = 0 +NewPassword TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +GetPasswordArg TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_old_GetPasswordArg_vals) BITMASK = 0 +CurrentPassword TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 SecurityHeader TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 ProtectedPayload TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 -ExtensionContainer TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module SS-DataTypes --- --- --- + +#.MODULE +SS-DataTypes gsm_ss +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR +#.END + +# Do not modify this file. +# It is created automatically by the ASN.1 to Wireshark dissector compiler +# .\gsm_map-exp.cnf +# ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn + + +# --- Module SS-Operations --- --- --- + +#.MODULE +SS-Operations gsm_ss +#.END + +#.IMPORT_TAG +#.END + +#.TYPE_ATTR #.END diff --git a/asn1/gsmmap/packet-gsm_map-template.c b/asn1/gsmmap/packet-gsm_map-template.c index 133b8ab6dc..10275104ca 100644 --- a/asn1/gsmmap/packet-gsm_map-template.c +++ b/asn1/gsmmap/packet-gsm_map-template.c @@ -1,6 +1,6 @@ /* packet-gsm_map-template.c * Routines for GSM MobileApplication packet dissection - * Copyright 2004 - 2006 , Anders Broman <anders.broman [AT] ericsson.com> + * Copyright 2004 - 2007 , Anders Broman <anders.broman [AT] ericsson.com> * Based on the dissector by: * Felix Fei <felix.fei [AT] utstar.com> * and Michael Lum <mlum [AT] telostech.com> @@ -26,6 +26,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * References: ETSI TS 129 002 * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7) + * Updated to ETSI TS 129 002 V8.1.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8) */ #ifdef HAVE_CONFIG_H @@ -64,6 +65,7 @@ /* Initialize the protocol and registered fields */ int proto_gsm_map = -1; +int proto_gsm_map_dialogue = -1; static int hf_gsm_map_SendAuthenticationInfoArg = -1; static int hf_gsm_map_SendAuthenticationInfoRes = -1; @@ -78,6 +80,7 @@ static int hf_gsm_map_isdn_address_digits = -1; static int hf_gsm_map_address_digits = -1; static int hf_gsm_map_servicecentreaddress_digits = -1; static int hf_gsm_map_imsi_digits = -1; +static int hf_gsm_map_TBCD_digits = -1; static int hf_gsm_map_Ss_Status_unused = -1; static int hf_gsm_map_Ss_Status_q_bit = -1; static int hf_gsm_map_Ss_Status_p_bit = -1; @@ -863,158 +866,162 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ switch(opcode){ case 2: /*updateLocation*/ - offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1); + 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_identity, - FALSE, dissect_gsm_map_CancelLocationArgV2, -1,/*undefined*/ - TRUE , dissect_gsm_map_CancelLocationArg, -1); + FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity, + FALSE, dissect_gsm_old_CancelLocationArgV2, -1,/*undefined*/ + TRUE , dissect_gsm_map_ms_CancelLocationArg_U, -1); break; case 4: /*provideRoamingNumber*/ - offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1); break; case 5: /*noteSubscriberDataModified*/ - offset=dissect_gsm_map_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1); break; case 6: /*resumeCallHandling*/ - offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1); break; case 7: /*insertSubscriberData*/ - offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); break; case 8: /*deleteSubscriberData*/ - offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); break; /* TODO find out why this isn't in the ASN1 file */ /* reserved sendParameters (9) */ case 10: /*registerSS*/ - offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 11: /*eraseSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 12: /*activateSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 13: /*deactivateSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 14: /*interrogateSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 15: /*authenticationFailureReport*/ - offset=dissect_gsm_map_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1); + 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; - /* undefined 16 */ case 17: /*registerPassword*/ offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); break; case 18: /*getPassword*/ - offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword); + 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, -1); break; - /* reserved processUnstructuredSS-Data (19) */ case 20: /*releaseResources*/ - offset=dissect_gsm_map_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1); break; case 21: /*mt-ForwardSM-VGCS*/ - offset=dissect_gsm_map_Mt_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ - offset=dissect_gsm_map_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 23: /*updateGprsLocation*/ - offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); break; case 24: /*sendRoutingInfoForGprs*/ - offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1); break; case 25: /*failureReport*/ - offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 26: /*noteMsPresentForGprs*/ - offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1); + 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_map_Bss_APDU, -1, - TRUE , dissect_gsm_map_SendEndSignalArgV3, -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_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1); break; case 32: /*sIWFSSignallingModify*/ - offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1); + 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_map_Bss_APDU, -1, - TRUE , dissect_gsm_map_ProcessAccessSignallingArgV3, -1); + FALSE, dissect_gsm_old_Bss_APDU, -1, + TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U, -1); break; case 34: /*forwardAccessSignalling*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, - FALSE, dissect_gsm_map_Bss_APDU, -1, - TRUE , dissect_gsm_map_ForwardAccessSignallingArgV3, -1); + FALSE, dissect_gsm_old_Bss_APDU, -1, + TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1); break; /* reserved noteInternalHandover (35) */ /* undefined 36 */ case 37: /*reset*/ - offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, actx, tree, -1); + 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_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1); break; case 40: /*sendGroupCallEndSignal*/ - dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1); + offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1); break; case 41: /*processGroupCallSignalling*/ - dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); + offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); break; case 42: /*forwardGroupCallSignalling*/ - offset=dissect_gsm_map_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); break; case 43: /*checkIMEI*/ offset=dissect_mc_message(tvb, offset, actx, tree, - FALSE, dissect_gsm_map_IMEI, hf_gsm_map_imei, - FALSE, dissect_gsm_map_CheckIMEIArgV3, -1, + 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_Mt_forwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); else { - offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); } break; case 45: /*sendRoutingInfoForSM*/ - offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, actx, tree, -1); + 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_Mo_forwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); else { - offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); } break; case 47: /*reportSM-DeliveryStatus*/ - offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1); break; /* reserved noteSubscriberPresent (48) */ /* reserved alertServiceCentreWithoutResult (49) */ case 50: /*activateTraceMode*/ - offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); break; case 51: /*deactivateTraceMode*/ - offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); break; /* reserved traceSubscriberActivity (52) */ /* undefined 53 */ @@ -1022,114 +1029,163 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ case 55: /*sendIdentification*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi, - FALSE, dissect_gsm_map_SendIdentificationArg, -1, + 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_SendAuthenticationInfoArgV2, -1, + FALSE, dissect_gsm_old_SendAuthenticationInfoArgOld, -1, TRUE, NULL, -1); break; case 57: /*restoreData*/ - offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1); + 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_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 60: /*unstructuredSS-Request*/ - offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 61: /*unstructuredSS-Notify*/ - offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 62: /*AnyTimeSubscriptionInterrogation*/ - offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1); break; case 63: /*informServiceCentre*/ - offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 64: /*alertServiceCentre*/ - offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 65: /*AnyTimeModification*/ - offset=dissect_gsm_map_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 66: /*readyForSM*/ - offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1); + 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_map_PurgeMSArgV2, -1, /*undefined*/ - TRUE , dissect_gsm_map_PurgeMSArg, -1); + 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_map_PrepareHO_Arg, -1, - TRUE, dissect_gsm_map_PrepareHO_ArgV3, -1); + FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1, + TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U, -1); break; case 69: /*prepareSubsequentHandover*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, NULL, -1, - TRUE, dissect_gsm_map_PrepareSubsequentHOArg, -1); + TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1); break; case 70: /*provideSubscriberInfo*/ - offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 71: /*anyTimeInterrogation*/ - offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1); break; case 72: /*ss-InvocationNotificatio*/ - offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 73: /*setReportingState*/ - offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1); break; case 74: /*statusReport*/ - offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 75: /*remoteUserFree*/ - offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1); break; case 76: /*registerCC-Entry*/ - offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); break; case 77: /*eraseCC-Entry*/ - offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); + 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_map_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1); break; /* undefined 82 */ case 83: /*provideSubscriberLocation*/ - offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 84: /*sendGroupCallInfo*/ - offset=dissect_gsm_map_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ - offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 86: /*subscriberLocationReport*/ - offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 87: /*ist-Alert*/ - offset=dissect_gsm_map_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1); break; case 88: /*ist-Command*/ - offset=dissect_gsm_map_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1); break; case 89: /*noteMM-Event*/ - offset=dissect_gsm_map_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteMM_EventArg(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*/ + 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: cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob"); @@ -1148,26 +1204,26 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, case 2: /*updateLocation*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, - FALSE, dissect_gsm_map_UpdateLocationRes, -1, + FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1, TRUE , NULL, -1); break; case 3: /*cancelLocation*/ - offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 4: /*provideRoamingNumber*/ - offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1); break; case 5: /*noteSubscriberDataModified*/ - offset=dissect_gsm_map_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1); break; case 6: /*resumeCallHandling*/ - offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1); break; case 7: /*insertSubscriberData*/ - offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); break; case 8: /*deleteSubscriberData*/ - offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); break; /* TODO find out why this isn't in the ASN1 file case 9: sendParameters @@ -1175,205 +1231,249 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, break; */ case 10: /*registerSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 11: /*eraseSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 12: /*activateSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 13: /*deactivateSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 14: /*interrogateSS*/ - offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 15: /*authenticationFailureReport*/ - offset=dissect_gsm_map_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1); + 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_map_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); + offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); break; case 18: /*getPassword*/ - offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword); + 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, -1); break; case 20: /*releaseResources*/ - offset=dissect_gsm_map_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1); break; case 21: /*mt-ForwardSM-VGCS*/ - offset=dissect_gsm_map_Mt_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, FALSE, NULL, -1, - TRUE , dissect_gsm_map_SendRoutingInfoRes, -1); + TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); break; case 23: /*updateGprsLocation*/ - offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 24: /*sendRoutingInfoForGprs*/ - offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1); break; case 25: /*failureReport*/ - offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 26: /*noteMsPresentForGprs*/ - offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1); + 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_SendEndSignalRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1); break; case 31: /*provideSIWFSNumber*/ - offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1); break; case 32: /*provideSIWFSSignallingModify*/ - offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1); break; case 39: /*prepareGroupCall*/ - offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1); break; case 40: /*sendGroupCallEndSignal*/ - dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1); + 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_EquipmentStatus, hf_gsm_map_equipmentStatus, - FALSE, dissect_gsm_map_CheckIMEIRes, -1, + 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_Mt_forwardSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 45: /*sendRoutingInfoForSM*/ - offset=dissect_gsm_map_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 46: /*mo-forwardSM*/ - offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 47: /*reportSM-DeliveryStatus*/ - offset=dissect_gsm_map_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1); break; - case 48: /*reportSM-DeliveryStatus*/ - offset=dissect_gsm_map_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1); + case 48: /*noteSubscriberPresent*/ break; case 50: /*activateTraceMode*/ - offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); break; case 51: /*deactivateTraceMode*/ - offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); break; case 55: /*sendIdentification */ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, - FALSE, dissect_gsm_map_SendIdentificationResV2, -1,/*undefined*/ - TRUE, dissect_gsm_map_SendIdentificationRes, -1); + 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_map_SendAuthenticationInfoRes, -1, - TRUE , dissect_gsm_map_SendAuthenticationInfoResV3, -1); + FALSE, dissect_gsm_old_SendAuthenticationInfoResOld_item, -1, + TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1); break; case 57: /*restoreData*/ - offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1); + 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_imsi); + offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi); break; case 59: /*unstructuredSS-Request*/ - offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1); break; case 60: /*unstructuredSS-Request*/ - offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1); break; case 61: /*unstructuredSS-Notify*/ /* TRUE ? */ proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); break; case 62: /*AnyTimeSubscriptionInterrogation*/ - offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1); + 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_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 66: /*readyForSM*/ - offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 67: /*purgeMS*/ - offset=dissect_gsm_map_PurgeMSRes(FALSE, tvb, offset, actx, tree, -1); + 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_map_PrepareHO_Res, -1, - TRUE , dissect_gsm_map_PrepareHO_ResV3, -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_PrepareSubsequentHOResV3, -1); + TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1); break; case 70: /*provideSubscriberInfo*/ - offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1); break; case 71: /*anyTimeInterrogation*/ - offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1); break; case 72: /*ss-InvocationNotificatio*/ - offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 73: /*setReportingState*/ - offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1); break; case 74: /*statusReport*/ - offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 75: /*remoteUserFree*/ - offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1); break; case 76: /*registerCC-Entry*/ - offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); break; case 77: /*eraseCC-Entry*/ - offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); + 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_map_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1); break; case 83: /*provideSubscriberLocation*/ - offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1); break; case 84: /*sendGroupCallInfo*/ - offset=dissect_gsm_map_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ - offset=dissect_gsm_map_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 86: /*subscriberLocationReport*/ - offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1); break; case 87: /*ist-Alert*/ - offset=dissect_gsm_map_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1); break; case 88: /*ist-Command*/ - offset=dissect_gsm_map_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1); break; case 89: /*noteMM-Event*/ - offset=dissect_gsm_map_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1); + break; + case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/ + break; + case 110: /*SS-protocol lcs-LocationUpdate*/ + 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*/ + offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1); + 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: cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN); @@ -1389,151 +1489,151 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, switch(errorCode){ case 1: /* UnknownSubscriberParam */ - offset=dissect_gsm_map_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 4: /* SecureTransportErrorParam */ - offset=dissect_gsm_map_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1); break; case 5: /* UnidentifiedSubParam */ - offset=dissect_gsm_map_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1); break; case 6: /* AbsentSubscriberSM-Param */ - offset=dissect_gsm_map_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1); break; case 8: /* RoamingNotAllowedParam */ - offset=dissect_gsm_map_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 9: /* IllegalSubscriberParam */ - offset=dissect_gsm_map_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 10: /* BearerServNotProvParam */ - offset=dissect_gsm_map_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1); break; case 11: /* TeleservNotProvParam */ - offset=dissect_gsm_map_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1); break; case 12: /* IllegalEquipmentParam */ - offset=dissect_gsm_map_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1); break; case 13: /* CallBarredParam */ - offset=dissect_gsm_map_CallBarredParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1); break; case 14: /* ForwardingViolationParam */ - offset=dissect_gsm_map_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1); break; case 15: /* CUG-RejectParam */ - offset=dissect_gsm_map_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1); break; case 16: /* IllegalSS-OperationParam */ - offset=dissect_gsm_map_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1); break; case 17: /* SS-ErrorStatus */ - offset=dissect_gsm_map_SS_Status(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, -1); break; case 18: /* SS-NotAvailableParam */ - offset=dissect_gsm_map_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1); break; case 19: /* SS-SubscriptionViolationParam */ - offset=dissect_gsm_map_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1); break; case 20: /* SS-IncompatibilityCause */ - offset=dissect_gsm_map_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1); break; case 21: /* FacilityNotSupParam */ - offset=dissect_gsm_map_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1); break; case 22: /* OngoingGroupCallParam */ - offset=dissect_gsm_map_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1); break; case 27: /* AbsentSubscriberParam */ - offset=dissect_gsm_map_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 28: /* IncompatibleTerminalParam */ - offset=dissect_gsm_map_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1); break; case 29: /* ShortTermDenialParam */ - offset=dissect_gsm_map_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1); break; case 30: /* LongTermDenialParam */ - offset=dissect_gsm_map_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1); break; case 31: /* SubBusyForMT-SMS-Param */ - offset=dissect_gsm_map_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1); break; case 32: /* SM-DeliveryFailureCause */ - offset=dissect_gsm_map_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1); break; case 33: /* MessageWaitListFullParam */ - offset=dissect_gsm_map_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1); break; case 34: /* SystemFailureParam */ - offset=dissect_gsm_map_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1); break; case 35: /* DataMissingParam */ - offset=dissect_gsm_map_DataMissingParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1); break; case 36: /* UnexpectedDataParam */ - offset=dissect_gsm_map_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1); break; case 37: /* PW-RegistrationFailureCause */ - offset=dissect_gsm_map_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1); break; case 39: /* NoRoamingNbParam */ - offset=dissect_gsm_map_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1); break; case 40: /* TracingBufferFullParam */ - offset=dissect_gsm_map_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1); break; case 42: /* TargetCellOutsideGCA-Param */ - offset=dissect_gsm_map_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1); break; case 44: /* NumberChangedParam */ - offset=dissect_gsm_map_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1); break; case 45: /* BusySubscriberParam */ - offset=dissect_gsm_map_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 46: /* NoSubscriberReplyParam */ - offset=dissect_gsm_map_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1); break; case 47: /* ForwardingFailedParam */ - offset=dissect_gsm_map_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1); break; case 48: /* OR-NotAllowedParam */ - offset=dissect_gsm_map_Or_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 49: /* ATI-NotAllowedParam */ - offset=dissect_gsm_map_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 50: /* NoGroupCallNbParam */ - offset=dissect_gsm_map_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1); break; case 51: /* ResourceLimitationParam */ - offset=dissect_gsm_map_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1); break; case 52: /* UnauthorizedRequestingNetwork-Param */ - offset=dissect_gsm_map_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1); break; case 53: /* UnauthorizedLCSClient-Param */ - offset=dissect_gsm_map_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); break; case 54: /* PositionMethodFailure-Param */ - offset=dissect_gsm_map_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1); break; case 58: /* UnknownOrUnreachableLCSClient-Param */ - offset=dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); break; case 59: /* MM-EventNotSupported-Param */ - offset=dissect_gsm_map_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1); break; case 60: /* ATSI-NotAllowedParam */ - offset=dissect_gsm_map_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 61: /* ATM-NotAllowedParam */ - offset=dissect_gsm_map_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 62: /* InformationNotAvailableParam */ - offset=dissect_gsm_map_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1); break; default: cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob"); @@ -1553,9 +1653,9 @@ static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, /* create display subtree for the protocol */ if(parent_tree){ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container"); - tree = proto_item_add_subtree(item, ett_gsm_map_PlmnContainer); + tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U); } - dissect_gsm_map_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_PlmnContainer_PDU); + dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1); } @@ -1584,10 +1684,10 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2; if (check_col(actx->pinfo->cinfo, COL_INFO)){ - col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_map_Component_vals, "Unknown GSM-MAP PDU (%u)")); + col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP PDU (%u)")); col_append_fstr(actx->pinfo->cinfo, COL_INFO, " "); } - offset = dissect_gsm_map_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_Component_PDU); + offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_old_Component_PDU); return offset; /* offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -2068,9 +2168,13 @@ void proto_register_gsm_map(void) { FT_STRING, BASE_NONE, NULL, 0, "ServiceCentreAddress digits", HFILL }}, { &hf_gsm_map_imsi_digits, - { "Imsi digits", "gsm_map.imsi_digits", + { "IMSI digits", "gsm_map.imsi_digits", + FT_STRING, BASE_NONE, NULL, 0, + "IMSI digits", HFILL }}, + { &hf_gsm_map_TBCD_digits, + { "TBCD digits", "gsm_map.imsi_digits", FT_STRING, BASE_NONE, NULL, 0, - "Imsi digits", HFILL }}, + "TBCD digits", HFILL }}, { &hf_gsm_map_Ss_Status_unused, { "Unused", "gsm_map.unused", FT_UINT8, BASE_HEX, NULL, 0xf0, @@ -2309,7 +2413,7 @@ void proto_register_gsm_map(void) { }; /* Register protocol */ - proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME); + proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME); register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map); @@ -2323,7 +2427,7 @@ void proto_register_gsm_map(void) { gsm_map_tap = register_tap("gsm_map"); -/* #include "packet-gsm_map-dis-tab.c" */ +#include "packet-gsm_map-dis-tab.c" */ add_oid_str_name("1.2.826.0.1249.58.1.0","iso(1) member-body(2) bsi(826) disc(0) ericsson(1249) gsmNetworkApplicationsDefinition(58) gsm-Map(1) gsm-Map-Ext(0)" ); add_oid_str_name("1.3.12.2.1107.3.66.1.2","accessTypeNotAllowed-id" ); /*add_oid_str_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" ); diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common index a231c8d9fc..27584ec194 100644 --- a/epan/dissectors/Makefile.common +++ b/epan/dissectors/Makefile.common @@ -97,7 +97,6 @@ ASN_DISSECTOR_SRC = \ packet-ftbp.c \ packet-gnm.c \ packet-gsm_map.c \ - packet-gsm_ss.c \ packet-h225.c \ packet-h235.c \ packet-h245.c \ @@ -106,7 +105,6 @@ ASN_DISSECTOR_SRC = \ packet-inap.c \ packet-ldap.c \ packet-logotypecertextn.c \ - packet-MAP_DialoguePDU.c \ packet-mms.c \ packet-mpeg-audio.c \ packet-mpeg-pes.c \ @@ -864,7 +862,6 @@ DISSECTOR_INCLUDES = \ packet-gsm_a.h \ packet-gsm_map.h \ packet-gsm_sms.h \ - packet-gsm_ss.h \ packet-gssapi.h \ packet-h225.h \ packet-h235.h \ @@ -904,7 +901,6 @@ DISSECTOR_INCLUDES = \ packet-ldp.h \ packet-llc.h \ packet-logotypecertextn.h \ - packet-MAP_DialoguePDU.h \ packet-mikey.h \ packet-mip6.h \ packet-mms.h \ diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c index 2448baa07d..39a89528c1 100644 --- a/epan/dissectors/packet-camel.c +++ b/epan/dissectors/packet-camel.c @@ -3587,7 +3587,7 @@ dissect_camel_T_tDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb static const ber_sequence_t T_oTermSeizedSpecificInfo_sequence[] = { - { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LocationInformation }, + { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { NULL, 0, 0, 0, NULL } }; @@ -3601,7 +3601,7 @@ dissect_camel_T_oTermSeizedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb static const ber_sequence_t T_callAcceptedSpecificInfo_sequence[] = { - { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LocationInformation }, + { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { NULL, 0, 0, 0, NULL } }; @@ -3695,7 +3695,7 @@ dissect_camel_MetDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in static const ber_sequence_t T_oChangeOfPositionSpecificInfo_sequence[] = { - { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LocationInformation }, + { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_camel_metDPCriteriaList, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_MetDPCriteriaList }, { NULL, 0, 0, 0, NULL } }; @@ -3710,7 +3710,7 @@ dissect_camel_T_oChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_ static const ber_sequence_t T_tChangeOfPositionSpecificInfo_sequence[] = { - { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LocationInformation }, + { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_camel_metDPCriteriaList, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_MetDPCriteriaList }, { NULL, 0, 0, 0, NULL } }; @@ -4293,8 +4293,8 @@ static const value_string camel_GPRS_QoS_vals[] = { }; static const ber_choice_t GPRS_QoS_choice[] = { - { 0, &hf_camel_short_QoS_format, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_QoS_Subscribed }, - { 1, &hf_camel_long_QoS_format, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_QoS_Subscribed }, + { 0, &hf_camel_short_QoS_format, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed }, + { 1, &hf_camel_long_QoS_format, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed }, { 0, NULL, 0, 0, 0, NULL } }; @@ -4309,7 +4309,7 @@ dissect_camel_GPRS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static const ber_sequence_t GPRS_QoS_Extension_sequence[] = { - { &hf_camel_supplement_to_long_QoS_format, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext2_QoS_Subscribed }, + { &hf_camel_supplement_to_long_QoS_format, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed }, { NULL, 0, 0, 0, NULL } }; @@ -4462,10 +4462,10 @@ dissect_camel_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i static const ber_sequence_t LocationInformationGPRS_sequence[] = { { &hf_camel_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CellGlobalIdOrServiceAreaIdOrLAI }, - { &hf_camel_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_RAIdentity }, - { &hf_camel_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GeographicalInformation }, + { &hf_camel_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity }, + { &hf_camel_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation }, { &hf_camel_sgsn_Number , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, - { &hf_camel_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LSAIdentity }, + { &hf_camel_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity }, { &hf_camel_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ExtensionContainer }, { &hf_camel_saiPresent , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, { NULL, 0, 0, 0, NULL } @@ -4636,12 +4636,12 @@ dissect_camel_TimeAndTimezone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static const ber_sequence_t T_pdp_ContextchangeOfPositionSpecificInformation_sequence[] = { { &hf_camel_accessPointName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName }, - { &hf_camel_chargingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GPRSChargingID }, + { &hf_camel_chargingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID }, { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS }, { &hf_camel_pDPType , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPType }, { &hf_camel_qualityOfService, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService }, { &hf_camel_timeAndTimeZone, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone }, - { &hf_camel_gGSNAddress , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, + { &hf_camel_gGSNAddress , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, { NULL, 0, 0, 0, NULL } }; @@ -4740,12 +4740,12 @@ dissect_camel_T_pDPContextEstablishmentSpecificInformation(gboolean implicit_tag static const ber_sequence_t T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence[] = { { &hf_camel_accessPointName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName }, - { &hf_camel_chargingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GPRSChargingID }, + { &hf_camel_chargingID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID }, { &hf_camel_pDPType , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPType }, { &hf_camel_qualityOfService, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService }, { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS }, { &hf_camel_timeAndTimeZone, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone }, - { &hf_camel_gGSNAddress , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, + { &hf_camel_gGSNAddress , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, { NULL, 0, 0, 0, NULL } }; @@ -5691,7 +5691,7 @@ dissect_camel_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t * static const ber_sequence_t InitialDPArgExtension_sequence[] = { { &hf_camel_gmscAddress , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, { &hf_camel_forwardingDestinationNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber }, - { &hf_camel_ms_Classmark2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MS_Classmark2 }, + { &hf_camel_ms_Classmark2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 }, { &hf_camel_iMEI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_camel_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SupportedCamelPhases }, { &hf_camel_offeredCamel4Functionalities, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OfferedCamel4Functionalities }, @@ -5701,7 +5701,7 @@ static const ber_sequence_t InitialDPArgExtension_sequence[] = { { &hf_camel_lowLayerCompatibility, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LowLayerCompatibility }, { &hf_camel_lowLayerCompatibility2, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LowLayerCompatibility }, { &hf_camel_enhancedDialledServicesAllowed, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, - { &hf_camel_uu_Data , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_UU_Data }, + { &hf_camel_uu_Data , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data }, { &hf_camel_collectInformationAllowed, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, { NULL, 0, 0, 0, NULL } }; @@ -5862,7 +5862,7 @@ static const ber_sequence_t ConnectArg_sequence[] = { { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo }, { &hf_camel_chargeNumber , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeNumber }, { &hf_camel_legToBeConnected, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_LegID }, - { &hf_camel_cug_Interlock , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CUG_Interlock }, + { &hf_camel_cug_Interlock , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_camel_cug_OutgoingAccess, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, { &hf_camel_suppressionOfAnnouncement, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SuppressionOfAnnouncement }, { &hf_camel_oCSIApplicable, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCSIApplicable }, @@ -5943,7 +5943,7 @@ static const ber_sequence_t ContinueWithArgumentArg_sequence[] = { { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo }, { &hf_camel_callingPartysCategory, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallingPartysCategory }, { &hf_camel_genericNumbers, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GenericNumbers }, - { &hf_camel_cug_Interlock , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CUG_Interlock }, + { &hf_camel_cug_Interlock , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_camel_cug_OutgoingAccess, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, { &hf_camel_chargeNumber , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeNumber }, { &hf_camel_carrier , BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Carrier }, @@ -6274,13 +6274,13 @@ static const ber_sequence_t InitialDPGPRSArg_sequence[] = { { &hf_camel_pDPType , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPType }, { &hf_camel_qualityOfService, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService }, { &hf_camel_accessPointName, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName }, - { &hf_camel_routeingAreaIdentity, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_RAIdentity }, - { &hf_camel_chargingID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GPRSChargingID }, + { &hf_camel_routeingAreaIdentity, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity }, + { &hf_camel_chargingID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID }, { &hf_camel_sGSNCapabilities, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SGSNCapabilities }, { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS }, { &hf_camel_pDPInitiationType, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPInitiationType }, { &hf_camel_extensions , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ExtensionsArray }, - { &hf_camel_gGSNAddress , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address }, + { &hf_camel_gGSNAddress , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, { &hf_camel_secondaryPDPContext, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, { &hf_camel_iMEI , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { NULL, 0, 0, 0, NULL } @@ -6332,12 +6332,12 @@ static const ber_sequence_t InitialDPArg_sequence[] = { { &hf_camel_cause , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause }, { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo }, { &hf_camel_carrier , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Carrier }, - { &hf_camel_cug_Index , BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CUG_Index }, - { &hf_camel_cug_Interlock , BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_CUG_Interlock }, + { &hf_camel_cug_Index , BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index }, + { &hf_camel_cug_Interlock , BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock }, { &hf_camel_cug_OutgoingAccess, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL }, { &hf_camel_iMSI , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, { &hf_camel_subscriberState, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_SubscriberState }, - { &hf_camel_locationInformation, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LocationInformation }, + { &hf_camel_locationInformation, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_camel_ext_basicServiceCode, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode }, { &hf_camel_callReferenceNumber, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallReferenceNumber }, { &hf_camel_mscAddress , BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, @@ -6363,7 +6363,7 @@ static const ber_sequence_t InitialDPSMSArg_sequence[] = { { &hf_camel_callingPartyNumberas, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SMS_AddressString }, { &hf_camel_eventTypeSMS , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EventTypeSMS }, { &hf_camel_iMSI , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, - { &hf_camel_locationInformationMSC, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LocationInformation }, + { &hf_camel_locationInformationMSC, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation }, { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS }, { &hf_camel_sMSCAddress , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, { &hf_camel_timeAndTimezone, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone }, @@ -6375,7 +6375,7 @@ static const ber_sequence_t InitialDPSMSArg_sequence[] = { { &hf_camel_smsReferenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallReferenceNumber }, { &hf_camel_mscAddress , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, { &hf_camel_sgsnNumber , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, - { &hf_camel_ms_Classmark2 , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_MS_Classmark2 }, + { &hf_camel_ms_Classmark2 , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 }, { &hf_camel_gPRSMSClass , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GPRSMSClass }, { &hf_camel_iMEI , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, { &hf_camel_calledPartyNumberSMS, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ISDN_AddressString }, @@ -7894,7 +7894,7 @@ void proto_register_camel(void) { { &hf_camel_locationInformation, { "locationInformation", "camel.locationInformation", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LocationInformation", HFILL }}, + "gsm_map_ms.LocationInformation", HFILL }}, { &hf_camel_callAcceptedSpecificInfo, { "callAcceptedSpecificInfo", "camel.callAcceptedSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, @@ -7978,15 +7978,15 @@ void proto_register_camel(void) { { &hf_camel_short_QoS_format, { "short-QoS-format", "camel.short_QoS_format", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.QoS_Subscribed", HFILL }}, + "gsm_map_ms.QoS_Subscribed", HFILL }}, { &hf_camel_long_QoS_format, { "long-QoS-format", "camel.long_QoS_format", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext_QoS_Subscribed", HFILL }}, + "gsm_map_ms.Ext_QoS_Subscribed", HFILL }}, { &hf_camel_supplement_to_long_QoS_format, { "supplement-to-long-QoS-format", "camel.supplement_to_long_QoS_format", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext2_QoS_Subscribed", HFILL }}, + "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }}, { &hf_camel_gPRSEventType, { "gPRSEventType", "camel.gPRSEventType", FT_UINT32, BASE_DEC, VALS(camel_GPRSEventType_vals), 0, @@ -8010,7 +8010,7 @@ void proto_register_camel(void) { { &hf_camel_chargingID, { "chargingID", "camel.chargingID", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GPRSChargingID", HFILL }}, + "gsm_map_ms.GPRSChargingID", HFILL }}, { &hf_camel_pDPType, { "pDPType", "camel.pDPType", FT_NONE, BASE_NONE, NULL, 0, @@ -8026,7 +8026,7 @@ void proto_register_camel(void) { { &hf_camel_gGSNAddress, { "gGSNAddress", "camel.gGSNAddress", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, + "gsm_map_ms.GSN_Address", HFILL }}, { &hf_camel_detachSpecificInformation, { "detachSpecificInformation", "camel.detachSpecificInformation", FT_NONE, BASE_NONE, NULL, 0, @@ -8098,11 +8098,11 @@ void proto_register_camel(void) { { &hf_camel_routeingAreaIdentity, { "routeingAreaIdentity", "camel.routeingAreaIdentity", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RAIdentity", HFILL }}, + "gsm_map_ms.RAIdentity", HFILL }}, { &hf_camel_geographicalInformation, { "geographicalInformation", "camel.geographicalInformation", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GeographicalInformation", HFILL }}, + "gsm_map_ms.GeographicalInformation", HFILL }}, { &hf_camel_sgsn_Number, { "sgsn-Number", "camel.sgsn_Number", FT_BYTES, BASE_HEX, NULL, 0, @@ -8110,7 +8110,7 @@ void proto_register_camel(void) { { &hf_camel_selectedLSAIdentity, { "selectedLSAIdentity", "camel.selectedLSAIdentity", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LSAIdentity", HFILL }}, + "gsm_map_ms.LSAIdentity", HFILL }}, { &hf_camel_extensionContainer, { "extensionContainer", "camel.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, @@ -8486,7 +8486,7 @@ void proto_register_camel(void) { { &hf_camel_ms_Classmark2, { "ms-Classmark2", "camel.ms_Classmark2", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MS_Classmark2", HFILL }}, + "gsm_map_ms.MS_Classmark2", HFILL }}, { &hf_camel_iMEI, { "iMEI", "camel.iMEI", FT_BYTES, BASE_HEX, NULL, 0, @@ -8522,7 +8522,7 @@ void proto_register_camel(void) { { &hf_camel_uu_Data, { "uu-Data", "camel.uu_Data", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.UU_Data", HFILL }}, + "gsm_map_ch.UU_Data", HFILL }}, { &hf_camel_collectInformationAllowed, { "collectInformationAllowed", "camel.collectInformationAllowed", FT_NONE, BASE_NONE, NULL, 0, @@ -8654,7 +8654,7 @@ void proto_register_camel(void) { { &hf_camel_cug_Interlock, { "cug-Interlock", "camel.cug_Interlock", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CUG_Interlock", HFILL }}, + "gsm_map_ms.CUG_Interlock", HFILL }}, { &hf_camel_cug_OutgoingAccess, { "cug-OutgoingAccess", "camel.cug_OutgoingAccess", FT_NONE, BASE_NONE, NULL, 0, @@ -8870,10 +8870,10 @@ void proto_register_camel(void) { { &hf_camel_cug_Index, { "cug-Index", "camel.cug_Index", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CUG_Index", HFILL }}, + "gsm_map_ms.CUG_Index", HFILL }}, { &hf_camel_subscriberState, { "subscriberState", "camel.subscriberState", - FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberState_vals), 0, + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0, "camel.SubscriberState", HFILL }}, { &hf_camel_mscAddress, { "mscAddress", "camel.mscAddress", @@ -8902,7 +8902,7 @@ void proto_register_camel(void) { { &hf_camel_locationInformationMSC, { "locationInformationMSC", "camel.locationInformationMSC", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LocationInformation", HFILL }}, + "gsm_map_ms.LocationInformation", HFILL }}, { &hf_camel_tPShortMessageSpecificInfo, { "tPShortMessageSpecificInfo", "camel.tPShortMessageSpecificInfo", FT_BYTES, BASE_HEX, NULL, 0, diff --git a/epan/dissectors/packet-gsm_a.c b/epan/dissectors/packet-gsm_a.c index e456a32d1f..9adaec4aea 100644 --- a/epan/dissectors/packet-gsm_a.c +++ b/epan/dissectors/packet-gsm_a.c @@ -102,7 +102,6 @@ #include <epan/asn1.h> #include "packet-bssap.h" -#include "packet-gsm_ss.h" #include "packet-ber.h" #include "packet-q931.h" #include "packet-gsm_a.h" @@ -1162,29 +1161,6 @@ static int hf_gsm_a_rr_geran_iu_cm_cng_msg_req = -1; static int hf_gsm_a_rr_chnl_needed_ch1 = -1; static int hf_gsm_a_rr_chnl_needed_ch2 = -1; static int hf_gsm_a_rr_suspension_cause = -1; -static int hf_ROS_component = -1; -static int hf_ROS_invoke = -1; /* Invoke */ -static int hf_ROS_returnResultLast = -1; /* ReturnResult */ -static int hf_ROS_returnError = -1; /* ReturnError */ -static int hf_ROS_reject = -1; /* Reject */ -static int hf_ROS_invokeID = -1; /* InvokeIdType */ -static int hf_ROS_linkedID = -1; /* InvokeIdType */ -static int hf_ROS_opCode = -1; /* OPERATION */ -static int hf_ROS_parameter = -1; /* Parameter */ -static int hf_ROS_resultretres = -1; /* T_resultretres */ -static int hf_ROS_errorCode = -1; /* ErrorCode */ -static int hf_ROS_invokeIDRej = -1; /* T_invokeIDRej */ -static int hf_ROS_derivable = -1; /* InvokeIdType */ -static int hf_ROS_not_derivable = -1; /* NULL */ -static int hf_ROS_problem = -1; /* T_problem */ -static int hf_ROS_generalProblem = -1; /* GeneralProblem */ -static int hf_ROS_invokeProblem = -1; /* InvokeProblem */ -static int hf_ROS_returnResultProblem = -1; /* ReturnResultProblem */ -static int hf_ROS_returnErrorProblem = -1; /* ReturnErrorProblem */ -static int hf_ROS_localValue = -1; /* INTEGER */ -static int hf_ROS_globalValue = -1; /* OBJECT_IDENTIFIER */ -static int hf_ROS_nationaler = -1; /* INTEGER_M32768_32767 */ -static int hf_ROS_privateer = -1; /* INTEGER */ static int hf_gsm_a_rr_set_of_amr_codec_modes_v1_b8 = -1; static int hf_gsm_a_rr_set_of_amr_codec_modes_v1_b7 = -1; static int hf_gsm_a_rr_set_of_amr_codec_modes_v1_b6 = -1; @@ -1265,24 +1241,13 @@ static gint ett_gmm_context_stat = -1; static gint ett_gmm_update_type = -1; static gint ett_gmm_radio_cap = -1; -static gint ett_ros = -1; -static gint ett_ROS_Component = -1; -static gint ett_ROS_Invoke = -1; -static gint ett_ROS_ReturnResult = -1; -static gint ett_ROS_T_resultretres = -1; -static gint ett_ROS_ReturnError = -1; -static gint ett_ROS_Reject = -1; -static gint ett_ROS_T_invokeIDRej = -1; -static gint ett_ROS_T_problem = -1; -static gint ett_ROS_OPERATION = -1; -static gint ett_ROS_ERROR = -1; -static gint ett_ROS_ErrorCode = -1; static gint ett_sm_tft = -1; static char a_bigbuf[1024]; static dissector_handle_t data_handle; +static dissector_handle_t gsm_map_handle; static dissector_handle_t bssmap_handle; static dissector_handle_t dtap_handle; static dissector_handle_t rp_handle; @@ -7605,414 +7570,8 @@ de_llc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st /* * [6] 3.6 */ - static int -dissect_ROS_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_invokeID( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_InvokeIdType(FALSE, tvb, offset, actx, tree, hf_ROS_invokeID); -} -static int dissect_linkedID_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_InvokeIdType(TRUE, tvb, offset, actx, tree, hf_ROS_linkedID); -} -static int dissect_derivable( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_InvokeIdType(FALSE, tvb, offset, actx, tree, hf_ROS_derivable); -} - - - -static int -dissect_ROS_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - &localValue); - - return offset; -} -static int dissect_localValue( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_INTEGER(FALSE, tvb, offset, actx, tree, hf_ROS_localValue); -} -static int dissect_privateer_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_INTEGER(TRUE, tvb, offset, actx, tree, hf_ROS_privateer); -} - - - -static int -dissect_ROS_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_globalValue( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_ROS_globalValue); -} - - -static const value_string ROS_OPERATION_vals[] = { - { 0, "localValue" }, - { 1, "globalValue" }, - { 0, NULL } -}; - -static const ber_old_choice_t OPERATION_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_ROS_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - OPERATION_choice, hf_index, ett_ROS_OPERATION, NULL); - - return offset; -} -static int dissect_opCode( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_OPERATION(FALSE, tvb, offset, actx, tree, hf_ROS_opCode); -} - - - -static int -dissect_ROS_Parameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = gsm_ss_dissect(tvb, tree, offset, actx, localValue, comp_type_tag); - - return offset; -} -static int dissect_parameter( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_Parameter(FALSE, tvb, offset, actx, tree, hf_ROS_parameter); -} - -static const ber_old_sequence_t Invoke_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl }, - { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter }, - { 0, 0, 0, NULL } -}; - -static int -dissect_ROS_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Invoke_sequence, hf_index, ett_ROS_Invoke); - - return offset; -} -static int dissect_invoke_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_Invoke(TRUE, tvb, offset, actx, tree, hf_ROS_invoke); -} - -static const ber_old_sequence_t T_resultretres_sequence[] = { - { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter }, - { 0, 0, 0, NULL } -}; - -static int -dissect_ROS_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - T_resultretres_sequence, hf_index, ett_ROS_T_resultretres); - - return offset; -} -static int dissect_resultretres( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_T_resultretres(FALSE, tvb, offset, actx, tree, hf_ROS_resultretres); -} - -static const ber_old_sequence_t ReturnResult_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_resultretres }, - { 0, 0, 0, NULL } -}; - -static int -dissect_ROS_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReturnResult_sequence, hf_index, ett_ROS_ReturnResult); - - return offset; -} -static int dissect_returnResultLast_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_ReturnResult(TRUE, tvb, offset, actx, tree, hf_ROS_returnResultLast); -} - - - -static int -dissect_ROS_INTEGER_M32768_32767(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_nationaler_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_INTEGER_M32768_32767(TRUE, tvb, offset, actx, tree, hf_ROS_nationaler); -} - - -static const value_string ROS_ErrorCode_vals[] = { - { 19, "nationaler" }, - { 20, "privateer" }, - { 0, NULL } -}; - -static const ber_old_choice_t ErrorCode_choice[] = { - { 19, BER_CLASS_PRI, 19, BER_FLAGS_IMPLTAG, dissect_nationaler_impl }, - { 20, BER_CLASS_PRI, 20, BER_FLAGS_IMPLTAG, dissect_privateer_impl }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_ROS_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - ErrorCode_choice, hf_index, ett_ROS_ErrorCode, NULL); - - return offset; -} -static int dissect_errorCode( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_ErrorCode(FALSE, tvb, offset, actx, tree, hf_ROS_errorCode); -} - -static const ber_old_sequence_t ReturnError_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID }, - { BER_CLASS_PRI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorCode }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter }, - { 0, 0, 0, NULL } -}; - -static int -dissect_ROS_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReturnError_sequence, hf_index, ett_ROS_ReturnError); - - return offset; -} -static int dissect_returnError_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_ReturnError(TRUE, tvb, offset, actx, tree, hf_ROS_returnError); -} - - - -static int -dissect_ROS_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); - - return offset; -} -static int dissect_not_derivable( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_NULL(FALSE, tvb, offset, actx, tree, hf_ROS_not_derivable); -} -static const value_string ROS_T_invokeIDRej_vals[] = { - { 0, "derivable" }, - { 1, "not-derivable" }, - { 0, NULL } -}; - -static const ber_old_choice_t T_invokeIDRej_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_derivable }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_not_derivable }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_ROS_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - T_invokeIDRej_choice, hf_index, ett_ROS_T_invokeIDRej, NULL); - - return offset; -} -static int dissect_invokeIDRej( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_T_invokeIDRej(FALSE, tvb, offset, actx, tree, hf_ROS_invokeIDRej); -} - - -static const value_string ROS_GeneralProblem_vals[] = { - { 0, "unrecognizedComponent" }, - { 1, "mistypedComponent" }, - { 2, "badlyStructuredComponent" }, - { 0, NULL } -}; - - -static int -dissect_ROS_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_generalProblem_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_GeneralProblem(TRUE, tvb, offset, actx, tree, hf_ROS_generalProblem); -} - - -static const value_string ROS_InvokeProblem_vals[] = { - { 0, "duplicateInvokeID" }, - { 1, "unrecognizedOperation" }, - { 2, "mistypedParameter" }, - { 3, "resourceLimitation" }, - { 4, "initiatingRelease" }, - { 5, "unrecognizedLinkedID" }, - { 6, "linkedResponseUnexpected" }, - { 7, "unexpectedLinkedOperation" }, - { 0, NULL } -}; - - -static int -dissect_ROS_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_invokeProblem_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_InvokeProblem(TRUE, tvb, offset, actx, tree, hf_ROS_invokeProblem); -} - - -static const value_string ROS_ReturnResultProblem_vals[] = { - { 0, "unrecognizedInvokeID" }, - { 1, "returnResultUnexpected" }, - { 2, "mistypedParameter" }, - { 0, NULL } -}; - - -static int -dissect_ROS_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_returnResultProblem_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_ReturnResultProblem(TRUE, tvb, offset, actx, tree, hf_ROS_returnResultProblem); -} - - -static const value_string ROS_ReturnErrorProblem_vals[] = { - { 0, "unrecognizedInvokeID" }, - { 1, "returnErrorUnexpected" }, - { 2, "unrecognizedError" }, - { 3, "unexpectedError" }, - { 4, "mistypedParameter" }, - { 0, NULL } -}; - - -static int -dissect_ROS_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_returnErrorProblem_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_ReturnErrorProblem(TRUE, tvb, offset, actx, tree, hf_ROS_returnErrorProblem); -} - - -static const value_string ROS_T_problem_vals[] = { - { 0, "generalProblem" }, - { 1, "invokeProblem" }, - { 2, "returnResultProblem" }, - { 3, "returnErrorProblem" }, - { 0, NULL } -}; - -static const ber_old_choice_t T_problem_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_ROS_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - T_problem_choice, hf_index, ett_ROS_T_problem, NULL); - - return offset; -} -static int dissect_problem( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_T_problem(FALSE, tvb, offset, actx, tree, hf_ROS_problem); -} - -static const ber_old_sequence_t Reject_sequence[] = { - { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeIDRej }, - { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problem }, - { 0, 0, 0, NULL } -}; - -static int -dissect_ROS_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Reject_sequence, hf_index, ett_ROS_Reject); - - return offset; -} -static int dissect_reject_impl( proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_) { - return dissect_ROS_Reject(TRUE, tvb, offset, actx, tree, hf_ROS_reject); -} - - -static const value_string ROS_Component_vals[] = { - { 1, "invoke" }, - { 2, "returnResultLast" }, - { 3, "returnError" }, - { 4, "reject" }, - { 0, NULL } -}; - -static const ber_old_choice_t Component_choice[] = { - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultLast_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_ROS_Component(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Component_choice, hf_index, ett_ROS_Component, NULL); - /* branch taken will be component type -1 */ - - return offset; -} - - -#if 0 -static const value_string ROS_ERROR_vals[] = { - { 0, "localValue" }, - { 1, "globalValue" }, - { 0, NULL } -}; - -static const ber_old_choice_t ERROR_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_ROS_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - ERROR_choice, hf_index, ett_ROS_ERROR, NULL); - - return offset; -} -#endif - static guint8 de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gchar *add_string _U_, int string_len _U_) { @@ -8024,10 +7583,15 @@ de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gcha guint32 header_end_offset; guint32 header_len; asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, g_pinfo); + tvbuff_t *SS_tvb = NULL; + void *save_private_data; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, g_pinfo); + + save_private_data= g_pinfo->private_data; saved_offset = offset; + g_pinfo->private_data = NULL; while ( fac_len > (offset - saved_offset)){ /* Get the length of the component there can be more tnan one component in a facility message */ @@ -8041,10 +7605,15 @@ de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gcha } header_len = header_end_offset - offset; component_len = header_len + component_len; + /* dissect_ROS_Component(FALSE, tvb, offset, &asn1_ctx, tree, hf_ROS_component); + TODO Call gsm map here + */ + SS_tvb = tvb_new_subset(tvb, offset, component_len, component_len); + call_dissector(gsm_map_handle, SS_tvb, g_pinfo, g_tree); offset = offset + component_len; - } + g_pinfo->private_data = save_private_data; return(fac_len); @@ -18984,98 +18553,6 @@ proto_register_gsm_a(void) FT_UINT8,BASE_DEC, VALS(gsm_a_rr_suspension_cause_vals), 0x0, "Suspension cause value", HFILL } }, - { &hf_ROS_component, - { "component", "ROS.component", - FT_UINT8, BASE_DEC, VALS(ROS_Component_vals), 0, - "Component", HFILL }}, - { &hf_ROS_invoke, - { "invoke", "ROS.invoke", - FT_NONE, BASE_NONE, NULL, 0, - "Component/invoke", HFILL }}, - { &hf_ROS_returnResultLast, - { "returnResultLast", "ROS.returnResultLast", - FT_NONE, BASE_NONE, NULL, 0, - "Component/returnResultLast", HFILL }}, - { &hf_ROS_returnError, - { "returnError", "ROS.returnError", - FT_NONE, BASE_NONE, NULL, 0, - "Component/returnError", HFILL }}, - { &hf_ROS_reject, - { "reject", "ROS.reject", - FT_NONE, BASE_NONE, NULL, 0, - "Component/reject", HFILL }}, - { &hf_ROS_invokeID, - { "invokeID", "ROS.invokeID", - FT_UINT32, BASE_DEC, NULL, 0, - "", HFILL }}, - { &hf_ROS_linkedID, - { "linkedID", "ROS.linkedID", - FT_UINT32, BASE_DEC, NULL, 0, - "Invoke/linkedID", HFILL }}, - { &hf_ROS_opCode, - { "opCode", "ROS.opCode", - FT_UINT32, BASE_DEC, VALS(ROS_OPERATION_vals), 0, - "", HFILL }}, - { &hf_ROS_parameter, - { "parameter", "ROS.parameter", - FT_NONE, BASE_NONE, NULL, 0, - "", HFILL }}, - { &hf_ROS_resultretres, - { "resultretres", "ROS.resultretres", - FT_NONE, BASE_NONE, NULL, 0, - "ReturnResult/resultretres", HFILL }}, - { &hf_ROS_errorCode, - { "errorCode", "ROS.errorCode", - FT_UINT32, BASE_DEC, VALS(ROS_ErrorCode_vals), 0, - "ReturnError/errorCode", HFILL }}, - { &hf_ROS_invokeIDRej, - { "invokeIDRej", "ROS.invokeIDRej", - FT_UINT32, BASE_DEC, VALS(ROS_T_invokeIDRej_vals), 0, - "Reject/invokeIDRej", HFILL }}, - { &hf_ROS_derivable, - { "derivable", "ROS.derivable", - FT_UINT32, BASE_DEC, NULL, 0, - "Reject/invokeIDRej/derivable", HFILL }}, - { &hf_ROS_not_derivable, - { "not-derivable", "ROS.not_derivable", - FT_NONE, BASE_NONE, NULL, 0, - "Reject/invokeIDRej/not-derivable", HFILL }}, - { &hf_ROS_problem, - { "problem", "ROS.problem", - FT_UINT32, BASE_DEC, VALS(ROS_T_problem_vals), 0, - "Reject/problem", HFILL }}, - { &hf_ROS_generalProblem, - { "generalProblem", "ROS.generalProblem", - FT_INT32, BASE_DEC, VALS(ROS_GeneralProblem_vals), 0, - "Reject/problem/generalProblem", HFILL }}, - { &hf_ROS_invokeProblem, - { "invokeProblem", "ROS.invokeProblem", - FT_INT32, BASE_DEC, VALS(ROS_InvokeProblem_vals), 0, - "Reject/problem/invokeProblem", HFILL }}, - { &hf_ROS_returnResultProblem, - { "returnResultProblem", "ROS.returnResultProblem", - FT_INT32, BASE_DEC, VALS(ROS_ReturnResultProblem_vals), 0, - "Reject/problem/returnResultProblem", HFILL }}, - { &hf_ROS_returnErrorProblem, - { "returnErrorProblem", "ROS.returnErrorProblem", - FT_INT32, BASE_DEC, VALS(ROS_ReturnErrorProblem_vals), 0, - "Reject/problem/returnErrorProblem", HFILL }}, - { &hf_ROS_localValue, - { "localValue", "ROS.localValue", - FT_INT32, BASE_DEC, VALS(gsm_ss_opr_code_strings), 0, - "", HFILL }}, - { &hf_ROS_globalValue, - { "globalValue", "ROS.globalValue", - FT_STRING, BASE_NONE, NULL, 0, - "", HFILL }}, - { &hf_ROS_nationaler, - { "nationaler", "ROS.nationaler", - FT_UINT32, BASE_DEC, NULL, 0, - "ErrorCode/nationaler", HFILL }}, - { &hf_ROS_privateer, - { "privateer", "ROS.privateer", - FT_INT32, BASE_DEC, NULL, 0, - "ErrorCode/privateer", HFILL }}, { &hf_gsm_a_rr_set_of_amr_codec_modes_v1_b8, { "12,2 kbit/s codec rate", "gsm_a.rr.set_of_amr_codec_modes_v1b8", FT_BOOLEAN,8, TFS(&gsm_a_rr_set_of_amr_codec_modes), 0x80, @@ -19223,7 +18700,7 @@ proto_register_gsm_a(void) }; /* Setup protocol subtree array */ -#define NUM_INDIVIDUAL_ELEMS 50 +#define NUM_INDIVIDUAL_ELEMS 38 static gint *ett[NUM_INDIVIDUAL_ELEMS + NUM_GSM_BSSMAP_MSG + NUM_GSM_DTAP_MSG_MM + NUM_GSM_DTAP_MSG_RR + NUM_GSM_DTAP_MSG_CC + NUM_GSM_DTAP_MSG_GMM + NUM_GSM_DTAP_MSG_SMS + @@ -19272,18 +18749,6 @@ proto_register_gsm_a(void) ett[37] = &ett_sm_tft; - ett[38] = &ett_ros, - ett[39] = &ett_ROS_Component, - ett[40] = &ett_ROS_Invoke, - ett[41] = &ett_ROS_ReturnResult, - ett[42] = &ett_ROS_T_resultretres, - ett[43] = &ett_ROS_ReturnError, - ett[44] = &ett_ROS_Reject, - ett[45] = &ett_ROS_T_invokeIDRej, - ett[46] = &ett_ROS_T_problem, - ett[47] = &ett_ROS_OPERATION, - ett[48] = &ett_ROS_ERROR, - ett[49] = &ett_ROS_ErrorCode, last_offset = NUM_INDIVIDUAL_ELEMS; @@ -19398,5 +18863,6 @@ proto_reg_handoff_gsm_a(void) dissector_add("ranap.nas_pdu", BSSAP_PDU_TYPE_DTAP, dtap_handle); dissector_add("llcgprs.sapi", 1 , dtap_handle); data_handle = find_dissector("data"); + gsm_map_handle = find_dissector("gsm_map"); } diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c index 26edd39770..4cb4046962 100644 --- a/epan/dissectors/packet-gsm_map.c +++ b/epan/dissectors/packet-gsm_map.c @@ -1,14 +1,14 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Wireshark dissector compiler */ /* .\packet-gsm_map.c */ -/* ../../tools/asn2wrs.py -b -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */ +/* ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn */ /* Input file: packet-gsm_map-template.c */ #line 1 "packet-gsm_map-template.c" /* packet-gsm_map-template.c * Routines for GSM MobileApplication packet dissection - * Copyright 2004 - 2006 , Anders Broman <anders.broman [AT] ericsson.com> + * Copyright 2004 - 2007 , Anders Broman <anders.broman [AT] ericsson.com> * Based on the dissector by: * Felix Fei <felix.fei [AT] utstar.com> * and Michael Lum <mlum [AT] telostech.com> @@ -34,6 +34,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * References: ETSI TS 129 002 * Updated to ETSI TS 129 002 V7.5.0 (3GPP TS 29.002 V7.5.0 (2006-09) Release 7) + * Updated to ETSI TS 129 002 V8.1.0 (3GPP TS 29.002 V8.1.0 (2007-06) Release 8) */ #ifdef HAVE_CONFIG_H @@ -72,6 +73,7 @@ /* Initialize the protocol and registered fields */ int proto_gsm_map = -1; +int proto_gsm_map_dialogue = -1; static int hf_gsm_map_SendAuthenticationInfoArg = -1; static int hf_gsm_map_SendAuthenticationInfoRes = -1; @@ -86,6 +88,7 @@ static int hf_gsm_map_isdn_address_digits = -1; static int hf_gsm_map_address_digits = -1; static int hf_gsm_map_servicecentreaddress_digits = -1; static int hf_gsm_map_imsi_digits = -1; +static int hf_gsm_map_TBCD_digits = -1; static int hf_gsm_map_Ss_Status_unused = -1; static int hf_gsm_map_Ss_Status_q_bit = -1; static int hf_gsm_map_Ss_Status_p_bit = -1; @@ -138,949 +141,1215 @@ static int hf_gsm_map_PlmnContainer_PDU = -1; /*--- Included file: packet-gsm_map-hf.c ---*/ #line 1 "packet-gsm_map-hf.c" -static int hf_gsm_map_Component_PDU = -1; /* Component */ -static int hf_gsm_map_invoke = -1; /* Invoke */ -static int hf_gsm_map_returnResultLast = -1; /* ReturnResult */ -static int hf_gsm_map_returnError = -1; /* ReturnError */ -static int hf_gsm_map_reject = -1; /* Reject */ -static int hf_gsm_map_returnResultNotLast = -1; /* ReturnResult */ -static int hf_gsm_map_invokeID = -1; /* InvokeIdType */ -static int hf_gsm_map_linkedID = -1; /* InvokeIdType */ -static int hf_gsm_map_opCode = -1; /* OPERATION */ -static int hf_gsm_map_invokeparameter = -1; /* InvokeParameter */ -static int hf_gsm_map_resultretres = -1; /* T_resultretres */ -static int hf_gsm_map_returnparameter = -1; /* ReturnResultParameter */ -static int hf_gsm_map_returnErrorCode = -1; /* ERROR */ -static int hf_gsm_map_parameter = -1; /* ReturnErrorParameter */ -static int hf_gsm_map_invokeIDRej = -1; /* T_invokeIDRej */ -static int hf_gsm_map_derivable = -1; /* InvokeIdType */ -static int hf_gsm_map_not_derivable = -1; /* NULL */ -static int hf_gsm_map_problem = -1; /* T_problem */ -static int hf_gsm_map_generalProblem = -1; /* GeneralProblem */ -static int hf_gsm_map_invokeProblem = -1; /* InvokeProblem */ -static int hf_gsm_map_returnResultProblem = -1; /* ReturnResultProblem */ -static int hf_gsm_map_returnErrorProblem = -1; /* ReturnErrorProblem */ -static int hf_gsm_map_operationLocalvalue = -1; /* OperationLocalvalue */ -static int hf_gsm_map_globalValue = -1; /* OBJECT_IDENTIFIER */ -static int hf_gsm_map_localErrorcode = -1; /* LocalErrorcode */ -static int hf_gsm_map_protocolId = -1; /* ProtocolId */ -static int hf_gsm_map_signalInfo = -1; /* SignalInfo */ -static int hf_gsm_map_extensionContainer = -1; /* ExtensionContainer */ -static int hf_gsm_map_imsi = -1; /* IMSI */ -static int hf_gsm_map_msc_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_vlr_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_lmsi = -1; /* LMSI */ -static int hf_gsm_map_vlr_Capability = -1; /* VLR_Capability */ -static int hf_gsm_map_informPreviousNetworkEntity = -1; /* NULL */ -static int hf_gsm_map_cs_LCS_NotSupportedByUE = -1; /* NULL */ -static int hf_gsm_map_v_gmlc_Address = -1; /* GSN_Address */ -static int hf_gsm_map_add_info = -1; /* ADD_Info */ -static int hf_gsm_map_hlr_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_add_Capability = -1; /* NULL */ -static int hf_gsm_map_supportedCamelPhases = -1; /* SupportedCamelPhases */ -static int hf_gsm_map_solsaSupportIndicator = -1; /* NULL */ -static int hf_gsm_map_istSupportIndicator = -1; /* IST_SupportIndicator */ -static int hf_gsm_map_superChargerSupportedInServingNetworkEntity = -1; /* SuperChargerInfo */ -static int hf_gsm_map_longFTN_Supported = -1; /* NULL */ -static int hf_gsm_map_supportedLCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */ -static int hf_gsm_map_offeredCamel4CSIs = -1; /* OfferedCamel4CSIs */ -static int hf_gsm_map_supportedRAT_TypesIndicator = -1; /* SupportedRAT_Types */ -static int hf_gsm_map_sendSubscriberData = -1; /* NULL */ -static int hf_gsm_map_subscriberDataStored = -1; /* AgeIndicator */ -static int hf_gsm_map_imeisv = -1; /* IMEI */ -static int hf_gsm_map_skipSubscriberDataUpdate = -1; /* NULL */ + +/* --- Module Remote-Operations-Information-Objects --- --- --- */ + +static int hf_Remote_Operations_Information_Objects_local = -1; /* INTEGER */ +static int hf_Remote_Operations_Information_Objects_global = -1; /* OBJECT_IDENTIFIER */ + +/* --- Module MAP-ExtensionDataTypes --- --- --- */ + +static int hf_gsm_map_privateExtensionList = -1; /* PrivateExtensionList */ +static int hf_gsm_map_pcs_Extensions = -1; /* PCS_Extensions */ +static int hf_gsm_map_slr_Arg_PCS_Extensions = -1; /* SLR_Arg_PCS_Extensions */ static int hf_gsm_map_PrivateExtensionList_item = -1; /* PrivateExtension */ static int hf_gsm_map_extId = -1; /* T_extId */ static int hf_gsm_map_extType = -1; /* T_extType */ -static int hf_gsm_map_privateExtensionList = -1; /* PrivateExtensionList */ -static int hf_gsm_map_slr_Arg_PCS_Extensions = -1; /* SLR_Arg_PCS_Extensions */ static int hf_gsm_map_na_ESRK_Request = -1; /* NULL */ -static int hf_gsm_map_identity = -1; /* Identity */ -static int hf_gsm_map_cancellationType = -1; /* CancellationType */ -static int hf_gsm_map_imsi_WithLMSI = -1; /* IMSI_WithLMSI */ -static int hf_gsm_map_sgsn_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_freezeTMSI = -1; /* NULL */ -static int hf_gsm_map_freezeP_TMSI = -1; /* NULL */ -static int hf_gsm_map_tmsi = -1; /* TMSI */ -static int hf_gsm_map_numberOfRequestedVectors = -1; /* NumberOfRequestedVectors */ -static int hf_gsm_map_segmentationProhibited = -1; /* NULL */ -static int hf_gsm_map_previous_LAI = -1; /* LAIFixedLength */ -static int hf_gsm_map_hopCounter = -1; /* HopCounter */ -static int hf_gsm_map_authenticationSetList = -1; /* AuthenticationSetList */ -static int hf_gsm_map_currentSecurityContext = -1; /* CurrentSecurityContext */ -static int hf_gsm_map_tripletList = -1; /* TripletList */ -static int hf_gsm_map_quintupletList = -1; /* QuintupletList */ -static int hf_gsm_map_TripletList_item = -1; /* AuthenticationTriplet */ -static int hf_gsm_map_QuintupletList_item = -1; /* AuthenticationQuintuplet */ -static int hf_gsm_map_rand = -1; /* RAND */ -static int hf_gsm_map_sres = -1; /* SRES */ -static int hf_gsm_map_kc = -1; /* Kc */ -static int hf_gsm_map_xres = -1; /* XRES */ -static int hf_gsm_map_ck = -1; /* CK */ -static int hf_gsm_map_ik = -1; /* IK */ -static int hf_gsm_map_autn = -1; /* AUTN */ -static int hf_gsm_map_gsm_SecurityContextData = -1; /* GSM_SecurityContextData */ -static int hf_gsm_map_umts_SecurityContextData = -1; /* UMTS_SecurityContextData */ -static int hf_gsm_map_cksn = -1; /* Cksn */ -static int hf_gsm_map_ksi = -1; /* KSI */ -static int hf_gsm_map_targetCellId = -1; /* GlobalCellId */ -static int hf_gsm_map_ho_NumberNotRequired = -1; /* NULL */ -static int hf_gsm_map_bss_APDU = -1; /* Bss_APDU */ -static int hf_gsm_map_targetRNCId = -1; /* RNCId */ -static int hf_gsm_map_an_APDU = -1; /* AccessNetworkSignalInfo */ -static int hf_gsm_map_multipleBearerRequested = -1; /* NULL */ -static int hf_gsm_map_integrityProtectionInfo = -1; /* IntegrityProtectionInformation */ -static int hf_gsm_map_encryptionInfo = -1; /* EncryptionInformation */ -static int hf_gsm_map_radioResourceInformation = -1; /* RadioResourceInformation */ -static int hf_gsm_map_allowedGSM_Algorithms = -1; /* AllowedGSM_Algorithms */ -static int hf_gsm_map_allowedUMTS_Algorithms = -1; /* AllowedUMTS_Algorithms */ -static int hf_gsm_map_radioResourceList = -1; /* RadioResourceList */ -static int hf_gsm_map_rab_Id = -1; /* RAB_Id */ -static int hf_gsm_map_bssmap_ServiceHandover = -1; /* BSSMAP_ServiceHandover */ -static int hf_gsm_map_ranap_ServiceHandover = -1; /* RANAP_ServiceHandover */ -static int hf_gsm_map_bssmap_ServiceHandoverList = -1; /* BSSMAP_ServiceHandoverList */ -static int hf_gsm_map_asciCallReference = -1; /* ASCI_CallReference */ -static int hf_gsm_map_geran_classmark = -1; /* GERAN_Classmark */ -static int hf_gsm_map_iuCurrentlyUsedCodec = -1; /* Codec */ -static int hf_gsm_map_iuSupportedCodecsList = -1; /* SupportedCodecsList */ -static int hf_gsm_map_rab_ConfigurationIndicator = -1; /* NULL */ -static int hf_gsm_map_uesbi_Iu = -1; /* UESBI_Iu */ -static int hf_gsm_map_alternativeChannelType = -1; /* RadioResourceInformation */ -static int hf_gsm_map_tracePropagationList = -1; /* TracePropagationList */ -static int hf_gsm_map_BSSMAP_ServiceHandoverList_item = -1; /* BSSMAP_ServiceHandoverInfo */ -static int hf_gsm_map_RadioResourceList_item = -1; /* RadioResource */ -static int hf_gsm_map_handoverNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_relocationNumberList = -1; /* RelocationNumberList */ -static int hf_gsm_map_multicallBearerInfo = -1; /* MulticallBearerInfo */ -static int hf_gsm_map_multipleBearerNotSupported = -1; /* NULL */ -static int hf_gsm_map_selectedUMTS_Algorithms = -1; /* SelectedUMTS_Algorithms */ -static int hf_gsm_map_chosenRadioResourceInformation = -1; /* ChosenRadioResourceInformation */ -static int hf_gsm_map_iuSelectedCodec = -1; /* Codec */ -static int hf_gsm_map_iuAvailableCodecsList = -1; /* CodecList */ -static int hf_gsm_map_integrityProtectionAlgorithm = -1; /* ChosenIntegrityProtectionAlgorithm */ -static int hf_gsm_map_encryptionAlgorithm = -1; /* ChosenEncryptionAlgorithm */ -static int hf_gsm_map_chosenChannelInfo = -1; /* ChosenChannelInfo */ -static int hf_gsm_map_chosenSpeechVersion = -1; /* ChosenSpeechVersion */ -static int hf_gsm_map_RelocationNumberList_item = -1; /* RelocationNumber */ -static int hf_gsm_map_selectedGSM_Algorithm = -1; /* SelectedGSM_Algorithm */ -static int hf_gsm_map_selectedRab_Id = -1; /* RAB_Id */ -static int hf_gsm_map_iUSelectedCodec = -1; /* Codec */ -static int hf_gsm_map_utranCodecList = -1; /* CodecList */ -static int hf_gsm_map_geranCodecList = -1; /* CodecList */ -static int hf_gsm_map_codec1 = -1; /* Codec */ -static int hf_gsm_map_codec2 = -1; /* Codec */ -static int hf_gsm_map_codec3 = -1; /* Codec */ -static int hf_gsm_map_codec4 = -1; /* Codec */ -static int hf_gsm_map_codec5 = -1; /* Codec */ -static int hf_gsm_map_codec6 = -1; /* Codec */ -static int hf_gsm_map_codec7 = -1; /* Codec */ -static int hf_gsm_map_codec8 = -1; /* Codec */ -static int hf_gsm_map_keyStatus = -1; /* KeyStatus */ -static int hf_gsm_map_currentlyUsedCodec = -1; /* Codec */ -static int hf_gsm_map_integrityProtectionAlgorithms = -1; /* PermittedIntegrityProtectionAlgorithms */ -static int hf_gsm_map_encryptionAlgorithms = -1; /* PermittedEncryptionAlgorithms */ -static int hf_gsm_map_targetMSC_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_immediateResponsePreferred = -1; /* NULL */ -static int hf_gsm_map_re_synchronisationInfo = -1; /* Re_synchronisationInfo */ -static int hf_gsm_map_requestingNodeType = -1; /* RequestingNodeType */ -static int hf_gsm_map_requestingPLMN_Id = -1; /* PLMN_Id */ -static int hf_gsm_map_SendAuthenticationInfoRes_item = -1; /* SendAuthenticationInfoRes_item */ -static int hf_gsm_map_auts = -1; /* AUTS */ -static int hf_gsm_map_imei = -1; /* IMEI */ -static int hf_gsm_map_requestedEquipmentInfo = -1; /* RequestedEquipmentInfo */ -static int hf_gsm_map_equipmentStatus = -1; /* EquipmentStatus */ -static int hf_gsm_map_bmuef = -1; /* UESBI_Iu */ -static int hf_gsm_map_uesbi_IuA = -1; /* UESBI_IuA */ -static int hf_gsm_map_uesbi_IuB = -1; /* UESBI_IuB */ -static int hf_gsm_map_BasicServiceGroupList_item = -1; /* BasicServiceCode */ -static int hf_gsm_map_o_BcsmCamelTDPDataList = -1; /* O_BcsmCamelTDPDataList */ -static int hf_gsm_map_camelCapabilityHandling = -1; /* CamelCapabilityHandling */ -static int hf_gsm_map_notificationToCSE = -1; /* NULL */ -static int hf_gsm_map_csiActive = -1; /* NULL */ -static int hf_gsm_map_O_BcsmCamelTDPDataList_item = -1; /* O_BcsmCamelTDPData */ -static int hf_gsm_map_o_BcsmTriggerDetectionPoint = -1; /* O_BcsmTriggerDetectionPoint */ -static int hf_gsm_map_serviceKey = -1; /* ServiceKey */ -static int hf_gsm_map_gsmSCF_Address = -1; /* ISDN_AddressString */ -static int hf_gsm_map_defaultCallHandling = -1; /* DefaultCallHandling */ -static int hf_gsm_map_msisdn = -1; /* ISDN_AddressString */ -static int hf_gsm_map_category = -1; /* Category */ -static int hf_gsm_map_subscriberStatus = -1; /* SubscriberStatus */ -static int hf_gsm_map_bearerserviceList = -1; /* BearerServiceList */ -static int hf_gsm_map_teleserviceList = -1; /* TeleserviceList */ -static int hf_gsm_map_provisionedSS = -1; /* Ext_SS_InfoList */ -static int hf_gsm_map_odb_Data = -1; /* ODB_Data */ -static int hf_gsm_map_roamingRestrictionDueToUnsupportedFeature = -1; /* NULL */ -static int hf_gsm_map_regionalSubscriptionData = -1; /* ZoneCodeList */ -static int hf_gsm_map_vbsSubscriptionData = -1; /* VBSDataList */ -static int hf_gsm_map_vgcsSubscriptionData = -1; /* VGCSDataList */ -static int hf_gsm_map_vlrCamelSubscriptionInfo = -1; /* VlrCamelSubscriptionInfo */ -static int hf_gsm_map_naea_PreferredCI = -1; /* NAEA_PreferredCI */ -static int hf_gsm_map_gprsSubscriptionData = -1; /* GPRSSubscriptionData */ -static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature = -1; /* NULL */ -static int hf_gsm_map_networkAccessMode = -1; /* NetworkAccessMode */ -static int hf_gsm_map_lsaInformation = -1; /* LSAInformation */ -static int hf_gsm_map_lmu_Indicator = -1; /* NULL */ -static int hf_gsm_map_lcsInformation = -1; /* LCSInformation */ -static int hf_gsm_map_istAlertTimer = -1; /* IST_AlertTimerValue */ -static int hf_gsm_map_superChargerSupportedInHLR = -1; /* AgeIndicator */ -static int hf_gsm_map_mc_SS_Info = -1; /* MC_SS_Info */ -static int hf_gsm_map_cs_AllocationRetentionPriority = -1; /* CS_AllocationRetentionPriority */ -static int hf_gsm_map_sgsn_CAMEL_SubscriptionInfo = -1; /* SGSN_CAMEL_SubscriptionInfo */ -static int hf_gsm_map_chargingCharacteristics = -1; /* ChargingCharacteristics */ -static int hf_gsm_map_accessRestrictionData = -1; /* AccessRestrictionData */ -static int hf_gsm_map_gmlc_List = -1; /* GMLC_List */ -static int hf_gsm_map_lcs_PrivacyExceptionList = -1; /* LCS_PrivacyExceptionList */ -static int hf_gsm_map_molr_List = -1; /* MOLR_List */ -static int hf_gsm_map_add_lcs_PrivacyExceptionList = -1; /* LCS_PrivacyExceptionList */ -static int hf_gsm_map_GMLC_List_item = -1; /* ISDN_AddressString */ -static int hf_gsm_map_GPRSDataList_item = -1; /* PDP_Context */ -static int hf_gsm_map_pdp_ContextId = -1; /* ContextId */ -static int hf_gsm_map_pdp_Type = -1; /* PDP_Type */ -static int hf_gsm_map_pdp_Address = -1; /* PDP_Address */ -static int hf_gsm_map_qos_Subscribed = -1; /* QoS_Subscribed */ -static int hf_gsm_map_vplmnAddressAllowed = -1; /* NULL */ -static int hf_gsm_map_apn = -1; /* APN */ -static int hf_gsm_map_ext_QoS_Subscribed = -1; /* Ext_QoS_Subscribed */ -static int hf_gsm_map_pdp_ChargingCharacteristics = -1; /* ChargingCharacteristics */ -static int hf_gsm_map_ext2_QoS_Subscribed = -1; /* Ext2_QoS_Subscribed */ -static int hf_gsm_map_completeDataListIncluded = -1; /* NULL */ -static int hf_gsm_map_gprsDataList = -1; /* GPRSDataList */ -static int hf_gsm_map_gprs_CSI = -1; /* GPRS_CSI */ -static int hf_gsm_map_mo_sms_CSI = -1; /* SMS_CSI */ -static int hf_gsm_map_mt_sms_CSI = -1; /* SMS_CSI */ -static int hf_gsm_map_mt_smsCAMELTDP_CriteriaList = -1; /* MT_smsCAMELTDP_CriteriaList */ -static int hf_gsm_map_mg_csi = -1; /* MG_CSI */ -static int hf_gsm_map_gprs_CamelTDPDataList = -1; /* GPRS_CamelTDPDataList */ -static int hf_gsm_map_csi_Active = -1; /* NULL */ -static int hf_gsm_map_GPRS_CamelTDPDataList_item = -1; /* GPRS_CamelTDPData */ -static int hf_gsm_map_gprs_TriggerDetectionPoint = -1; /* GPRS_TriggerDetectionPoint */ -static int hf_gsm_map_defaultSessionHandling = -1; /* DefaultGPRS_Handling */ -static int hf_gsm_map_LSADataList_item = -1; /* LSAData */ -static int hf_gsm_map_lsaIdentity = -1; /* LSAIdentity */ -static int hf_gsm_map_lsaAttributes = -1; /* LSAAttributes */ -static int hf_gsm_map_lsaActiveModeIndicator = -1; /* NULL */ -static int hf_gsm_map_lsaOnlyAccessIndicator = -1; /* LSAOnlyAccessIndicator */ -static int hf_gsm_map_lsaDataList = -1; /* LSADataList */ -static int hf_gsm_map_bearerServiceList = -1; /* BearerServiceList */ -static int hf_gsm_map_ss_List = -1; /* SS_List */ -static int hf_gsm_map_odb_GeneralData = -1; /* ODB_GeneralData */ -static int hf_gsm_map_regionalSubscriptionResponse = -1; /* RegionalSubscriptionResponse */ -static int hf_gsm_map_basicServiceList = -1; /* BasicServiceList */ -static int hf_gsm_map_regionalSubscriptionIdentifier = -1; /* ZoneCode */ -static int hf_gsm_map_vbsGroupIndication = -1; /* NULL */ -static int hf_gsm_map_vgcsGroupIndication = -1; /* NULL */ -static int hf_gsm_map_camelSubscriptionInfoWithdraw = -1; /* NULL */ -static int hf_gsm_map_gprsSubscriptionDataWithdraw = -1; /* GPRSSubscriptionDataWithdraw */ -static int hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1; /* NULL */ -static int hf_gsm_map_lsaInformationWithdraw = -1; /* LSAInformationWithdraw */ -static int hf_gsm_map_gmlc_ListWithdraw = -1; /* NULL */ -static int hf_gsm_map_istInformationWithdraw = -1; /* NULL */ -static int hf_gsm_map_specificCSI_Withdraw = -1; /* SpecificCSI_Withdraw */ -static int hf_gsm_map_chargingCharacteristicsWithdraw = -1; /* NULL */ -static int hf_gsm_map_allGPRSData = -1; /* NULL */ -static int hf_gsm_map_contextIdList = -1; /* ContextIdList */ -static int hf_gsm_map_ContextIdList_item = -1; /* ContextId */ -static int hf_gsm_map_allLSAData = -1; /* NULL */ -static int hf_gsm_map_lsaIdentityList = -1; /* LSAIdentityList */ -static int hf_gsm_map_LSAIdentityList_item = -1; /* LSAIdentity */ -static int hf_gsm_map_BasicServiceList_item = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_o_CSI = -1; /* O_CSI */ -static int hf_gsm_map_ss_CSI = -1; /* SS_CSI */ -static int hf_gsm_map_o_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ -static int hf_gsm_map_tif_CSI = -1; /* NULL */ -static int hf_gsm_map_m_CSI = -1; /* M_CSI */ -static int hf_gsm_map_vt_CSI = -1; /* T_CSI */ -static int hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ -static int hf_gsm_map_d_CSI = -1; /* D_CSI */ -static int hf_gsm_map_MT_smsCAMELTDP_CriteriaList_item = -1; /* MT_smsCAMELTDP_Criteria */ -static int hf_gsm_map_sms_TriggerDetectionPoint = -1; /* SMS_TriggerDetectionPoint */ -static int hf_gsm_map_tpdu_TypeCriterion = -1; /* TPDU_TypeCriterion */ -static int hf_gsm_map_TPDU_TypeCriterion_item = -1; /* MT_SMS_TPDU_Type */ -static int hf_gsm_map_dp_AnalysedInfoCriteriaList = -1; /* DP_AnalysedInfoCriteriaList */ -static int hf_gsm_map_DP_AnalysedInfoCriteriaList_item = -1; /* DP_AnalysedInfoCriterium */ -static int hf_gsm_map_dialledNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_ss_CamelData = -1; /* SS_CamelData */ -static int hf_gsm_map_ss_EventList = -1; /* SS_EventList */ -static int hf_gsm_map_mobilityTriggers = -1; /* MobilityTriggers */ -static int hf_gsm_map_BearerServiceList_item = -1; /* Ext_BearerServiceCode */ -static int hf_gsm_map_TeleserviceList_item = -1; /* Ext_TeleserviceCode */ -static int hf_gsm_map_Ext_SS_InfoList_item = -1; /* Ext_SS_Info */ -static int hf_gsm_map_ext_forwardingInfo = -1; /* Ext_ForwInfo */ -static int hf_gsm_map_ext_callBarringInfo = -1; /* Ext_CallBarInfo */ -static int hf_gsm_map_cug_Info = -1; /* CUG_Info */ -static int hf_gsm_map_ext_ss_Data = -1; /* Ext_SS_Data */ -static int hf_gsm_map_emlpp_Info = -1; /* EMLPP_Info */ -static int hf_gsm_map_ss_Code = -1; /* SS_Code */ -static int hf_gsm_map_ext_forwardingFeatureList = -1; /* Ext_ForwFeatureList */ -static int hf_gsm_map_Ext_ForwFeatureList_item = -1; /* Ext_ForwFeature */ -static int hf_gsm_map_ext_basicService = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_ext_ss_Status = -1; /* Ext_SS_Status */ -static int hf_gsm_map_forwardedToNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_forwardedToSubaddress = -1; /* ISDN_SubaddressString */ -static int hf_gsm_map_ext_forwardingOptions = -1; /* T_ext_forwardingOptions */ -static int hf_gsm_map_ext_noReplyConditionTime = -1; /* Ext_NoRepCondTime */ -static int hf_gsm_map_longForwardedToNumber = -1; /* FTN_AddressString */ -static int hf_gsm_map_ext_callBarringFeatureList = -1; /* Ext_CallBarFeatureList */ -static int hf_gsm_map_Ext_CallBarFeatureList_item = -1; /* Ext_CallBarringFeature */ -static int hf_gsm_map_ZoneCodeList_item = -1; /* ZoneCode */ -static int hf_gsm_map_maximumentitledPriority = -1; /* EMLPP_Priority */ -static int hf_gsm_map_defaultPriority = -1; /* EMLPP_Priority */ -static int hf_gsm_map_cug_SubscriptionList = -1; /* CUG_SubscriptionList */ -static int hf_gsm_map_cug_FeatureList = -1; /* CUG_FeatureList */ -static int hf_gsm_map_CUG_SubscriptionList_item = -1; /* CUG_Subscription */ -static int hf_gsm_map_cug_Index = -1; /* CUG_Index */ -static int hf_gsm_map_cug_Interlock = -1; /* CUG_Interlock */ -static int hf_gsm_map_intraCUG_Options = -1; /* IntraCUG_Options */ -static int hf_gsm_map_basicServiceGroupList = -1; /* Ext_BasicServiceGroupList */ -static int hf_gsm_map_CUG_FeatureList_item = -1; /* CUG_Feature */ -static int hf_gsm_map_Ext_BasicServiceGroupList_item = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_preferentialCUG_Indicator = -1; /* CUG_Index */ -static int hf_gsm_map_interCUG_Restrictions = -1; /* InterCUG_Restrictions */ -static int hf_gsm_map_ss_SubscriptionOption = -1; /* SS_SubscriptionOption */ -static int hf_gsm_map_LCS_PrivacyExceptionList_item = -1; /* LCS_PrivacyClass */ -static int hf_gsm_map_notificationToMSUser = -1; /* NotificationToMSUser */ -static int hf_gsm_map_externalClientList = -1; /* ExternalClientList */ -static int hf_gsm_map_plmnClientList = -1; /* PLMNClientList */ -static int hf_gsm_map_ext_externalClientList = -1; /* Ext_ExternalClientList */ -static int hf_gsm_map_serviceTypeList = -1; /* ServiceTypeList */ -static int hf_gsm_map_ExternalClientList_item = -1; /* ExternalClient */ -static int hf_gsm_map_PLMNClientList_item = -1; /* LCSClientInternalID */ -static int hf_gsm_map_Ext_ExternalClientList_item = -1; /* ExternalClient */ -static int hf_gsm_map_clientIdentity = -1; /* LCSClientExternalID */ -static int hf_gsm_map_gmlc_Restriction = -1; /* GMLC_Restriction */ -static int hf_gsm_map_ServiceTypeList_item = -1; /* ServiceType */ -static int hf_gsm_map_serviceTypeIdentity = -1; /* LCSServiceTypeID */ -static int hf_gsm_map_MOLR_List_item = -1; /* MOLR_Class */ -static int hf_gsm_map_CallBarringFeatureList_item = -1; /* CallBarringFeature */ -static int hf_gsm_map_basicService = -1; /* BasicServiceCode */ -static int hf_gsm_map_ss_Status = -1; /* SS_Status */ -static int hf_gsm_map_ForwardingFeatureList_item = -1; /* ForwardingFeature */ -static int hf_gsm_map_forwardingOptions = -1; /* ForwardingOptions */ -static int hf_gsm_map_noReplyConditionTime = -1; /* NoReplyConditionTime */ -static int hf_gsm_map_matchType = -1; /* MatchType */ -static int hf_gsm_map_destinationNumberList = -1; /* DestinationNumberList */ -static int hf_gsm_map_destinationNumberLengthList = -1; /* DestinationNumberLengthList */ -static int hf_gsm_map_DestinationNumberList_item = -1; /* ISDN_AddressString */ -static int hf_gsm_map_DestinationNumberLengthList_item = -1; /* INTEGER_1_15 */ -static int hf_gsm_map_forwardingFeatureList = -1; /* ForwardingFeatureList */ -static int hf_gsm_map_callBarringFeatureList = -1; /* CallBarringFeatureList */ -static int hf_gsm_map_nbrSB = -1; /* MaxMC_Bearers */ -static int hf_gsm_map_nbrUser = -1; /* MC_Bearers */ -static int hf_gsm_map_hlr_List = -1; /* HLR_List */ -static int hf_gsm_map_msNotReachable = -1; /* NULL */ -static int hf_gsm_map_VBSDataList_item = -1; /* VoiceBroadcastData */ -static int hf_gsm_map_VGCSDataList_item = -1; /* VoiceGroupCallData */ -static int hf_gsm_map_groupId = -1; /* GroupId */ -static int hf_gsm_map_groupid = -1; /* GroupId */ -static int hf_gsm_map_broadcastInitEntitlement = -1; /* NULL */ -static int hf_gsm_map_additionalSubscriptions = -1; /* AdditionalSubscriptions */ -static int hf_gsm_map_additionalInfo = -1; /* AdditionalInfo */ -static int hf_gsm_map_traceReference = -1; /* TraceReference */ -static int hf_gsm_map_traceType = -1; /* TraceType */ -static int hf_gsm_map_omc_Id = -1; /* AddressString */ -static int hf_gsm_map_traceReference2 = -1; /* TraceReference2 */ -static int hf_gsm_map_traceDepthList = -1; /* TraceDepthList */ -static int hf_gsm_map_traceNE_TypeList = -1; /* TraceNE_TypeList */ -static int hf_gsm_map_traceInterfaceList = -1; /* TraceInterfaceList */ -static int hf_gsm_map_traceEventList = -1; /* TraceEventList */ -static int hf_gsm_map_msc_s_TraceDepth = -1; /* TraceDepth */ -static int hf_gsm_map_mgw_TraceDepth = -1; /* TraceDepth */ -static int hf_gsm_map_sgsn_TraceDepth = -1; /* TraceDepth */ -static int hf_gsm_map_ggsn_TraceDepth = -1; /* TraceDepth */ -static int hf_gsm_map_rnc_TraceDepth = -1; /* TraceDepth */ -static int hf_gsm_map_bmsc_TraceDepth = -1; /* TraceDepth */ -static int hf_gsm_map_msc_s_IList = -1; /* MSC_S_InterfaceList */ -static int hf_gsm_map_mgw_IList = -1; /* MGW_InterfaceList */ -static int hf_gsm_map_sgsn_IList = -1; /* SGSN_InterfaceList */ -static int hf_gsm_map_ggsn_IList = -1; /* GGSN_InterfaceList */ -static int hf_gsm_map_rnc_IList = -1; /* RNC_InterfaceList */ -static int hf_gsm_map_bmsc_IList = -1; /* BMSC_InterfaceList */ -static int hf_gsm_map_msc_s_EList = -1; /* MSC_S_EventList */ -static int hf_gsm_map_mgw_EList = -1; /* MGW_EventList */ -static int hf_gsm_map_sgsn_EList = -1; /* SGSN_EventList */ -static int hf_gsm_map_ggsn_EList = -1; /* GGSN_EventList */ -static int hf_gsm_map_bmsc_EList = -1; /* BMSC_EventList */ -static int hf_gsm_map_traceRecordingSessionReference = -1; /* TraceRecordingSessionReference */ -static int hf_gsm_map_rnc_InterfaceList = -1; /* RNC_InterfaceList */ -static int hf_gsm_map_msc_s_InterfaceList = -1; /* MSC_S_InterfaceList */ -static int hf_gsm_map_msc_s_EventList = -1; /* MSC_S_EventList */ -static int hf_gsm_map_mgw_InterfaceList = -1; /* MGW_InterfaceList */ -static int hf_gsm_map_mgw_EventList = -1; /* MGW_EventList */ -static int hf_gsm_map_traceSupportIndicator = -1; /* NULL */ -static int hf_gsm_map_cug_CheckInfo = -1; /* CUG_CheckInfo */ -static int hf_gsm_map_numberOfForwarding = -1; /* NumberOfForwarding */ -static int hf_gsm_map_interrogationType = -1; /* InterrogationType */ -static int hf_gsm_map_or_Interrogation = -1; /* NULL */ -static int hf_gsm_map_or_Capability = -1; /* OR_Phase */ -static int hf_gsm_map_gmsc_OrGsmSCF_Address = -1; /* ISDN_AddressString */ -static int hf_gsm_map_callReferenceNumber = -1; /* CallReferenceNumber */ -static int hf_gsm_map_forwardingReason = -1; /* ForwardingReason */ -static int hf_gsm_map_ext_basicServiceGroup = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_networkSignalInfo = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_camelInfo = -1; /* CamelInfo */ -static int hf_gsm_map_suppressionOfAnnouncement = -1; /* SuppressionOfAnnouncement */ -static int hf_gsm_map_alertingPattern = -1; /* AlertingPattern */ -static int hf_gsm_map_ccbs_Call = -1; /* NULL */ -static int hf_gsm_map_supportedCCBS_Phase = -1; /* SupportedCCBS_Phase */ -static int hf_gsm_map_additionalSignalInfo = -1; /* Ext_ExternalSignalInfo */ -static int hf_gsm_map_pre_pagingSupported = -1; /* NULL */ -static int hf_gsm_map_callDiversionTreatmentIndicator = -1; /* CallDiversionTreatmentIndicator */ -static int hf_gsm_map_suppress_VT_CSI = -1; /* NULL */ -static int hf_gsm_map_suppressIncomingCallBarring = -1; /* NULL */ -static int hf_gsm_map_gsmSCF_InitiatedCall = -1; /* NULL */ -static int hf_gsm_map_basicServiceGroup2 = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_networkSignalInfo2 = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_extendedRoutingInfo = -1; /* ExtendedRoutingInfo */ -static int hf_gsm_map_cugSubscriptionFlag = -1; /* NULL */ -static int hf_gsm_map_subscriberInfo = -1; /* SubscriberInfo */ -static int hf_gsm_map_forwardingInterrogationRequired = -1; /* NULL */ -static int hf_gsm_map_vmsc_Address = -1; /* ISDN_AddressString */ -static int hf_gsm_map_ccbs_Indicators = -1; /* CCBS_Indicators */ -static int hf_gsm_map_numberPortabilityStatus = -1; /* NumberPortabilityStatus */ -static int hf_gsm_map_supportedCamelPhasesInVMSC = -1; /* SupportedCamelPhases */ -static int hf_gsm_map_offeredCamel4CSIsInVMSC = -1; /* OfferedCamel4CSIs */ -static int hf_gsm_map_routingInfo2 = -1; /* RoutingInfo */ -static int hf_gsm_map_ss_List2 = -1; /* SS_List */ -static int hf_gsm_map_basicService2 = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_allowedServices = -1; /* AllowedServices */ -static int hf_gsm_map_unavailabilityCause = -1; /* UnavailabilityCause */ -static int hf_gsm_map_releaseResourcesSupported = -1; /* NULL */ -static int hf_gsm_map_gsm_BearerCapability = -1; /* ExternalSignalInfo */ + +/* --- Module MAP-CommonDataTypes --- --- --- */ + +static int hf_gsm_map_protocolId = -1; /* ProtocolId */ +static int hf_gsm_map_signalInfo = -1; /* SignalInfo */ +static int hf_gsm_map_extensionContainer = -1; /* ExtensionContainer */ static int hf_gsm_map_ext_ProtocolId = -1; /* Ext_ProtocolId */ static int hf_gsm_map_accessNetworkProtocolId = -1; /* AccessNetworkProtocolId */ -static int hf_gsm_map_longsignalInfo = -1; /* LongSignalInfo */ -static int hf_gsm_map_suppress_T_CSI = -1; /* NULL */ +static int hf_gsm_map_signalInfo_01 = -1; /* LongSignalInfo */ +static int hf_gsm_map_imsi = -1; /* IMSI */ +static int hf_gsm_map_imsi_WithLMSI = -1; /* IMSI_WithLMSI */ +static int hf_gsm_map_lmsi = -1; /* LMSI */ +static int hf_gsm_map_tmsi = -1; /* TMSI */ static int hf_gsm_map_HLR_List_item = -1; /* HLR_Id */ -static int hf_gsm_map_SS_List_item = -1; /* SS_Code */ static int hf_gsm_map_naea_PreferredCIC = -1; /* NAEA_CIC */ +static int hf_gsm_map_msisdn = -1; /* ISDN_AddressString */ static int hf_gsm_map_externalAddress = -1; /* ISDN_AddressString */ static int hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ static int hf_gsm_map_laiFixedLength = -1; /* LAIFixedLength */ -static int hf_gsm_map_ccbs_Possible = -1; /* NULL */ -static int hf_gsm_map_keepCCBS_CallIndicator = -1; /* NULL */ -static int hf_gsm_map_roamingNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_forwardingData = -1; /* ForwardingData */ -static int hf_gsm_map_routingInfo = -1; /* RoutingInfo */ -static int hf_gsm_map_camelRoutingInfo = -1; /* CamelRoutingInfo */ -static int hf_gsm_map_gmscCamelSubscriptionInfo = -1; /* GmscCamelSubscriptionInfo */ -static int hf_gsm_map_t_CSI = -1; /* T_CSI */ -static int hf_gsm_map_d_csi = -1; /* D_CSI */ -static int hf_gsm_map_ageOfLocationInformation = -1; /* AgeOfLocationInformation */ -static int hf_gsm_map_geographicalInformation = -1; /* GeographicalInformation */ -static int hf_gsm_map_vlr_number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_locationNumber = -1; /* LocationNumber */ -static int hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */ -static int hf_gsm_map_selectedLSA_Id = -1; /* LSAIdentity */ -static int hf_gsm_map_geodeticInformation = -1; /* GeodeticInformation */ -static int hf_gsm_map_currentLocationRetrieved = -1; /* NULL */ -static int hf_gsm_map_sai_Present = -1; /* NULL */ -static int hf_gsm_map_routeingAreaIdentity = -1; /* RAIdentity */ -static int hf_gsm_map_selectedLSAIdentity = -1; /* LSAIdentity */ -static int hf_gsm_map_assumedIdle = -1; /* NULL */ -static int hf_gsm_map_camelBusy = -1; /* NULL */ -static int hf_gsm_map_netDetNotReachable = -1; /* NotReachableReason */ -static int hf_gsm_map_notProvidedFromVLR = -1; /* NULL */ -static int hf_gsm_map_notProvidedFromSGSN = -1; /* NULL */ -static int hf_gsm_map_ps_Detached = -1; /* NULL */ -static int hf_gsm_map_ps_AttachedNotReachableForPaging = -1; /* NULL */ -static int hf_gsm_map_ps_AttachedReachableForPaging = -1; /* NULL */ -static int hf_gsm_map_ps_PDP_ActiveNotReachableForPaging = -1; /* PDP_ContextInfoList */ -static int hf_gsm_map_ps_PDP_ActiveReachableForPaging = -1; /* PDP_ContextInfoList */ -static int hf_gsm_map_PDP_ContextInfoList_item = -1; /* PDP_ContextInfo */ -static int hf_gsm_map_pdp_ContextIdentifier = -1; /* ContextId */ -static int hf_gsm_map_pdp_ContextActive = -1; /* NULL */ -static int hf_gsm_map_apn_Subscribed = -1; /* APN */ -static int hf_gsm_map_apn_InUse = -1; /* APN */ -static int hf_gsm_map_nsapi = -1; /* NSAPI */ -static int hf_gsm_map_transactionId = -1; /* TransactionId */ -static int hf_gsm_map_teid_ForGnAndGp = -1; /* TEID */ -static int hf_gsm_map_teid_ForIu = -1; /* TEID */ -static int hf_gsm_map_ggsn_Address = -1; /* GSN_Address */ -static int hf_gsm_map_ext_qos_Subscribed = -1; /* Ext_QoS_Subscribed */ -static int hf_gsm_map_qos_Requested = -1; /* Ext_QoS_Subscribed */ -static int hf_gsm_map_qos_Negotiated = -1; /* Ext_QoS_Subscribed */ -static int hf_gsm_map_chargingId = -1; /* GPRSChargingID */ -static int hf_gsm_map_rnc_Address = -1; /* GSN_Address */ -static int hf_gsm_map_qos2_Subscribed = -1; /* Ext2_QoS_Subscribed */ -static int hf_gsm_map_qos2_Requested = -1; /* Ext2_QoS_Subscribed */ -static int hf_gsm_map_qos2_Negotiated = -1; /* Ext2_QoS_Subscribed */ -static int hf_gsm_map_cug_OutgoingAccess = -1; /* NULL */ -static int hf_gsm_map_gmsc_Address = -1; /* ISDN_AddressString */ -static int hf_gsm_map_supportedCamelPhasesInInterrogatingNode = -1; /* SupportedCamelPhases */ -static int hf_gsm_map_orNotSupportedInGMSC = -1; /* NULL */ -static int hf_gsm_map_offeredCamel4CSIsInInterrogatingNode = -1; /* OfferedCamel4CSIs */ -static int hf_gsm_map_uu_Data = -1; /* UU_Data */ -static int hf_gsm_map_allInformationSent = -1; /* NULL */ -static int hf_gsm_map_o_BcsmCamelTDPCriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ -static int hf_gsm_map_uuIndicator = -1; /* UUIndicator */ -static int hf_gsm_map_uui = -1; /* UUI */ -static int hf_gsm_map_uusCFInteraction = -1; /* NULL */ -static int hf_gsm_map_isdn_BearerCapability = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_call_Direction = -1; /* CallDirection */ -static int hf_gsm_map_b_Subscriber_Address = -1; /* ISDN_AddressString */ -static int hf_gsm_map_chosenChannel = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_lowerLayerCompatibility = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_highLayerCompatibility = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_sIWFSNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_channelType = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_ccbs_Monitoring = -1; /* ReportingState */ -static int hf_gsm_map_ccbs_SubscriberStatus = -1; /* CCBS_SubscriberStatus */ -static int hf_gsm_map_eventReportData = -1; /* EventReportData */ -static int hf_gsm_map_callReportdata = -1; /* CallReportData */ -static int hf_gsm_map_monitoringMode = -1; /* MonitoringMode */ -static int hf_gsm_map_callOutcome = -1; /* CallOutcome */ -static int hf_gsm_map_callTerminationIndicator = -1; /* CallTerminationIndicator */ -static int hf_gsm_map_msrn = -1; /* ISDN_AddressString */ -static int hf_gsm_map_callInfo = -1; /* ExternalSignalInfo */ -static int hf_gsm_map_ccbs_Feature = -1; /* CCBS_Feature */ -static int hf_gsm_map_translatedB_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_replaceB_Number = -1; /* NULL */ -static int hf_gsm_map_ruf_Outcome = -1; /* Ruf_Outcome */ -static int hf_gsm_map_ext_basicServiceGroupList = -1; /* BasicServiceGroupList */ -static int hf_gsm_map_cliRestrictionOption = -1; /* CliRestrictionOption */ -static int hf_gsm_map_overrideCategory = -1; /* OverrideCategory */ -static int hf_gsm_map_forwardedToNumber_addr = -1; /* AddressString */ -static int hf_gsm_map_forwardingInfo = -1; /* ForwardingInfo */ -static int hf_gsm_map_callBarringInfo = -1; /* CallBarringInfo */ -static int hf_gsm_map_ss_Data = -1; /* SS_Data */ -static int hf_gsm_map_genericServiceInfo = -1; /* GenericServiceInfo */ -static int hf_gsm_map_ussd_DataCodingScheme = -1; /* USSD_DataCodingScheme */ -static int hf_gsm_map_ussd_String = -1; /* USSD_String */ -static int hf_gsm_map_failureCause = -1; /* FailureCause */ -static int hf_gsm_map_re_attempt = -1; /* BOOLEAN */ -static int hf_gsm_map_accessType = -1; /* AccessType */ -static int hf_gsm_map_ccbs_Data = -1; /* CCBS_Data */ -static int hf_gsm_map_serviceIndicator = -1; /* ServiceIndicator */ -static int hf_gsm_map_ccbs_Index = -1; /* CCBS_Index */ -static int hf_gsm_map_sm_RP_PRI = -1; /* BOOLEAN */ -static int hf_gsm_map_serviceCentreAddress = -1; /* ServiceCentreAddress */ -static int hf_gsm_map_gprsSupportIndicator = -1; /* NULL */ -static int hf_gsm_map_sm_RP_MTI = -1; /* SM_RP_MTI */ -static int hf_gsm_map_sm_RP_SMEA = -1; /* SM_RP_SMEA */ -static int hf_gsm_map_locationInfoWithLMSI = -1; /* LocationInfoWithLMSI */ -static int hf_gsm_map_networkNode_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_gprsNodeIndicator = -1; /* NULL */ -static int hf_gsm_map_additional_Number = -1; /* Additional_Number */ -static int hf_gsm_map_sm_RP_DA = -1; /* Sm_RP_DA */ -static int hf_gsm_map_sm_RP_OA = -1; /* Sm_RP_OA */ -static int hf_gsm_map_sm_RP_UI = -1; /* Sm_RP_UI */ -static int hf_gsm_map_serviceCentreAddressOA = -1; /* ServiceCentreAddress */ -static int hf_gsm_map_noSM_RP_OA = -1; /* NULL */ -static int hf_gsm_map_serviceCentreAddressDA = -1; /* ServiceCentreAddress */ -static int hf_gsm_map_noSM_RP_DA = -1; /* NULL */ -static int hf_gsm_map_moreMessagesToSend = -1; /* NULL */ -static int hf_gsm_map_sm_DeliveryOutcome = -1; /* Sm_DeliveryOutcome */ -static int hf_gsm_map_absentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */ -static int hf_gsm_map_deliveryOutcomeIndicator = -1; /* NULL */ -static int hf_gsm_map_additionalSM_DeliveryOutcome = -1; /* Sm_DeliveryOutcome */ -static int hf_gsm_map_additionalAbsentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */ -static int hf_gsm_map_storedMSISDN = -1; /* ISDN_AddressString */ -static int hf_gsm_map_mw_Status = -1; /* MW_Status */ -static int hf_gsm_map_alertReason = -1; /* AlertReason */ -static int hf_gsm_map_alertReasonIndicator = -1; /* NULL */ -static int hf_gsm_map_dispatcherList = -1; /* DispatcherList */ -static int hf_gsm_map_ongoingCall = -1; /* NULL */ -static int hf_gsm_map_DispatcherList_item = -1; /* ISDN_AddressString */ -static int hf_gsm_map_requestedInfo = -1; /* RequestedInfo */ -static int hf_gsm_map_locationInformation = -1; /* LocationInformation */ -static int hf_gsm_map_subscriberState = -1; /* SubscriberState */ -static int hf_gsm_map_locationInformationGPRS = -1; /* LocationInformationGPRS */ -static int hf_gsm_map_ps_SubscriberState = -1; /* PS_SubscriberState */ -static int hf_gsm_map_ms_Classmark2 = -1; /* MS_Classmark2 */ -static int hf_gsm_map_gprs_MS_Class = -1; /* GPRSMSClass */ -static int hf_gsm_map_mnpInfoRes = -1; /* MNPInfoRes */ -static int hf_gsm_map_routeingNumber = -1; /* RouteingNumber */ -static int hf_gsm_map_mSNetworkCapability = -1; /* MSNetworkCapability */ -static int hf_gsm_map_mSRadioAccessCapability = -1; /* MSRadioAccessCapability */ -static int hf_gsm_map_locationInformation_flg = -1; /* NULL */ -static int hf_gsm_map_subscriberState_flg = -1; /* NULL */ -static int hf_gsm_map_currentLocation = -1; /* NULL */ -static int hf_gsm_map_requestedDomain = -1; /* DomainType */ -static int hf_gsm_map_imei_flg = -1; /* NULL */ -static int hf_gsm_map_ms_classmark = -1; /* NULL */ -static int hf_gsm_map_mnpRequestedInfo = -1; /* NULL */ -static int hf_gsm_map_subscriberIdentity = -1; /* SubscriberIdentity */ -static int hf_gsm_map_requestedSubscriptionInfo = -1; /* RequestedSubscriptionInfo */ -static int hf_gsm_map_callForwardingData = -1; /* CallForwardingData */ -static int hf_gsm_map_callBarringData = -1; /* CallBarringData */ -static int hf_gsm_map_odb_Info = -1; /* ODB_Info */ -static int hf_gsm_map_camel_SubscriptionInfo = -1; /* CAMEL_SubscriptionInfo */ -static int hf_gsm_map_supportedVLR_CAMEL_Phases = -1; /* SupportedCamelPhases */ -static int hf_gsm_map_supportedSGSN_CAMEL_Phases = -1; /* SupportedCamelPhases */ -static int hf_gsm_map_offeredCamel4CSIsInVLR = -1; /* OfferedCamel4CSIs */ -static int hf_gsm_map_offeredCamel4CSIsInSGSN = -1; /* OfferedCamel4CSIs */ -static int hf_gsm_map_msisdn_BS_List = -1; /* MSISDN_BS_List */ -static int hf_gsm_map_requestedSS_Info = -1; /* SS_ForBS_Code */ -static int hf_gsm_map_odb = -1; /* NULL */ -static int hf_gsm_map_requestedCAMEL_SubscriptionInfo = -1; /* RequestedCAMEL_SubscriptionInfo */ -static int hf_gsm_map_supportedVLR_CAMEL_Phases_flg = -1; /* NULL */ -static int hf_gsm_map_supportedSGSN_CAMEL_Phases_flg = -1; /* NULL */ -static int hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo = -1; /* AdditionalRequestedCAMEL_SubscriptionInfo */ -static int hf_gsm_map_msisdn_BS_List_flag = -1; /* NULL */ -static int hf_gsm_map_MSISDN_BS_List_item = -1; /* MSISDN_BS */ -static int hf_gsm_map_password = -1; /* Password */ -static int hf_gsm_map_wrongPasswordAttemptsCounter = -1; /* WrongPasswordAttemptsCounter */ static int hf_gsm_map_bearerService = -1; /* BearerServiceCode */ -static int hf_gsm_map_teleservice_code = -1; /* TeleserviceCode */ -static int hf_gsm_map_O_BcsmCamelTDPCriteriaList_item = -1; /* O_BcsmCamelTDP_Criteria */ -static int hf_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList_item = -1; /* T_BCSM_CAMEL_TDP_Criteria */ -static int hf_gsm_map_destinationNumberCriteria = -1; /* DestinationNumberCriteria */ -static int hf_gsm_map_basicServiceCriteria = -1; /* BasicServiceCriteria */ -static int hf_gsm_map_callTypeCriteria = -1; /* CallTypeCriteria */ -static int hf_gsm_map_o_CauseValueCriteria = -1; /* O_CauseValueCriteria */ -static int hf_gsm_map_t_BCSM_TriggerDetectionPoint = -1; /* T_BcsmTriggerDetectionPoint */ -static int hf_gsm_map_t_CauseValueCriteria = -1; /* T_CauseValueCriteria */ -static int hf_gsm_map_maximumEntitledPriority = -1; /* EMLPP_Priority */ -static int hf_gsm_map_ccbs_FeatureList = -1; /* CCBS_FeatureList */ -static int hf_gsm_map_nbrSN = -1; /* MC_Bearers */ -static int hf_gsm_map_CCBS_FeatureList_item = -1; /* CCBS_Feature */ -static int hf_gsm_map_b_subscriberNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_b_subscriberSubaddress = -1; /* ISDN_SubaddressString */ -static int hf_gsm_map_basicServiceGroup = -1; /* BasicServiceCode */ -static int hf_gsm_map_T_CauseValueCriteria_item = -1; /* CauseValue */ -static int hf_gsm_map_O_CauseValueCriteria_item = -1; /* CauseValue */ -static int hf_gsm_map_BasicServiceCriteria_item = -1; /* Ext_BasicServiceCode */ -static int hf_gsm_map_modificationRequestFor_CF_Info = -1; /* ModificationRequestFor_CF_Info */ -static int hf_gsm_map_modificationRequestFor_CB_Info = -1; /* ModificationRequestFor_CB_Info */ -static int hf_gsm_map_modificationRequestFor_CSI = -1; /* ModificationRequestFor_CSI */ -static int hf_gsm_map_modificationRequestFor_ODB_data = -1; /* ModificationRequestFor_ODB_data */ -static int hf_gsm_map_ss_InfoFor_CSE = -1; /* Ext_SS_InfoFor_CSE */ -static int hf_gsm_map_modifyNotificationToCSE = -1; /* ModificationInstruction */ -static int hf_gsm_map_odb_data = -1; /* ODB_Data */ -static int hf_gsm_map_requestedCamel_SubscriptionInfo = -1; /* RequestedCAMEL_SubscriptionInfo */ -static int hf_gsm_map_modifyCSI_State = -1; /* ModificationInstruction */ -static int hf_gsm_map_forwardingInfoFor_CSE = -1; /* Ext_ForwardingInfoFor_CSE */ -static int hf_gsm_map_callBarringInfoFor_CSE = -1; /* Ext_CallBarringInfoFor_CSE */ -static int hf_gsm_map_eventMet = -1; /* MM_Code */ -static int hf_gsm_map_supportedCAMELPhases = -1; /* SupportedCamelPhases */ -static int hf_gsm_map_offeredCamel4Functionalities = -1; /* OfferedCamel4Functionalities */ -static int hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ -static int hf_gsm_map_tif_CSI_NotificationToCSE = -1; /* NULL */ -static int hf_gsm_map_specificCSIDeletedList = -1; /* SpecificCSI_Withdraw */ -static int hf_gsm_map_o_IM_CSI = -1; /* O_CSI */ -static int hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ -static int hf_gsm_map_d_IM_CSI = -1; /* D_CSI */ -static int hf_gsm_map_vt_IM_CSI = -1; /* T_CSI */ -static int hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ +static int hf_gsm_map_teleservice = -1; /* TeleserviceCode */ static int hf_gsm_map_ext_BearerService = -1; /* Ext_BearerServiceCode */ static int hf_gsm_map_ext_Teleservice = -1; /* Ext_TeleserviceCode */ -static int hf_gsm_map_odb_HPLMN_Data = -1; /* ODB_HPLMN_Data */ -static int hf_gsm_map_SS_EventList_item = -1; /* SS_Code */ -static int hf_gsm_map_t_BcsmCamelTDPDataList = -1; /* T_BcsmCamelTDPDataList */ -static int hf_gsm_map_T_BcsmCamelTDPDataList_item = -1; /* T_BcsmCamelTDPData */ -static int hf_gsm_map_t_BcsmTriggerDetectionPoint = -1; /* T_BcsmTriggerDetectionPoint */ -static int hf_gsm_map_sms_CAMEL_TDP_DataList = -1; /* SMS_CAMEL_TDP_DataList */ -static int hf_gsm_map_SMS_CAMEL_TDP_DataList_item = -1; /* SMS_CAMEL_TDP_Data */ -static int hf_gsm_map_defaultSMS_Handling = -1; /* DefaultSMS_Handling */ -static int hf_gsm_map_MobilityTriggers_item = -1; /* MM_Code */ -static int hf_gsm_map_ss_Event = -1; /* SS_Code */ -static int hf_gsm_map_ss_EventSpecification = -1; /* SS_EventSpecification */ -static int hf_gsm_map_ccbs_RequestState = -1; /* CCBS_RequestState */ -static int hf_gsm_map_SS_EventSpecification_item = -1; /* AddressString */ -static int hf_gsm_map_ext_teleservice = -1; /* Ext_TeleserviceCode */ -static int hf_gsm_map_codec_Info = -1; /* CODEC_Info */ -static int hf_gsm_map_cipheringAlgorithm = -1; /* CipheringAlgorithm */ -static int hf_gsm_map_groupKeyNumber_Vk_Id = -1; /* GroupKeyNumber */ -static int hf_gsm_map_groupKey = -1; /* Kc */ -static int hf_gsm_map_priority = -1; /* EMLPP_Priority */ -static int hf_gsm_map_uplinkFree = -1; /* NULL */ -static int hf_gsm_map_vstk = -1; /* VSTK */ -static int hf_gsm_map_vstk_rand = -1; /* VSTK_RAND */ -static int hf_gsm_map_groupCallNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_talkerPriority = -1; /* TalkerPriority */ -static int hf_gsm_map_uplinkRequest = -1; /* NULL */ -static int hf_gsm_map_uplinkReleaseIndication = -1; /* NULL */ -static int hf_gsm_map_releaseGroupCall = -1; /* NULL */ -static int hf_gsm_map_emergencyModeResetCommandFlag = -1; /* NULL */ -static int hf_gsm_map_downlinkAttached = -1; /* NULL */ -static int hf_gsm_map_uplinkAttached = -1; /* NULL */ -static int hf_gsm_map_dualCommunication = -1; /* NULL */ -static int hf_gsm_map_callOriginator = -1; /* NULL */ -static int hf_gsm_map_groupRequestedInfo = -1; /* GroupRequestedInfo */ -static int hf_gsm_map_cellId = -1; /* GlobalCellId */ -static int hf_gsm_map_anchorMSC_Address = -1; /* ISDN_AddressString */ -static int hf_gsm_map_uplinkRequestAck = -1; /* NULL */ -static int hf_gsm_map_uplinkRejectCommand = -1; /* NULL */ -static int hf_gsm_map_uplinkSeizedCommand = -1; /* NULL */ -static int hf_gsm_map_uplinkReleaseCommand = -1; /* NULL */ -static int hf_gsm_map_stateAttributes = -1; /* StateAttributes */ -static int hf_gsm_map_sgsn_Address = -1; /* GSN_Address */ -static int hf_gsm_map_sgsn_Capability = -1; /* SGSN_Capability */ -static int hf_gsm_map_ps_LCS_NotSupportedByUE = -1; /* NULL */ -static int hf_gsm_map_gprsEnhancementsSupportIndicator = -1; /* NULL */ -static int hf_gsm_map_smsCallBarringSupportIndicator = -1; /* NULL */ -static int hf_gsm_map_ggsn_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_mobileNotReachableReason = -1; /* AbsentSubscriberDiagnosticSM */ -static int hf_gsm_map_locationType = -1; /* LocationType */ -static int hf_gsm_map_mlc_Number = -1; /* ISDN_AddressString */ -static int hf_gsm_map_lcs_ClientID = -1; /* LCS_ClientID */ -static int hf_gsm_map_privacyOverride = -1; /* NULL */ -static int hf_gsm_map_lcs_Priority = -1; /* LCS_Priority */ -static int hf_gsm_map_lcs_QoS = -1; /* LCS_QoS */ -static int hf_gsm_map_supportedGADShapes = -1; /* SupportedGADShapes */ -static int hf_gsm_map_lcs_ReferenceNumber = -1; /* LCS_ReferenceNumber */ -static int hf_gsm_map_lcsServiceTypeID = -1; /* LCSServiceTypeID */ -static int hf_gsm_map_lcsCodeword = -1; /* LCSCodeword */ -static int hf_gsm_map_lcs_PrivacyCheck = -1; /* LCS_PrivacyCheck */ -static int hf_gsm_map_areaEventInfo = -1; /* AreaEventInfo */ -static int hf_gsm_map_h_gmlc_Address = -1; /* GSN_Address */ -static int hf_gsm_map_mo_lrShortCircuitIndicator = -1; /* NULL */ -static int hf_gsm_map_periodicLDRInfo = -1; /* PeriodicLDRInfo */ -static int hf_gsm_map_reportingPLMNList = -1; /* ReportingPLMNList */ -static int hf_gsm_map_locationEstimateType = -1; /* LocationEstimateType */ -static int hf_gsm_map_deferredLocationEventType = -1; /* DeferredLocationEventType */ -static int hf_gsm_map_lcsClientType = -1; /* LCSClientType */ -static int hf_gsm_map_lcsClientExternalID = -1; /* LCSClientExternalID */ -static int hf_gsm_map_lcsClientDialedByMS = -1; /* AddressString */ -static int hf_gsm_map_lcsClientInternalID = -1; /* LCSClientInternalID */ -static int hf_gsm_map_lcsClientName = -1; /* LCSClientName */ -static int hf_gsm_map_lcsAPN = -1; /* APN */ -static int hf_gsm_map_lcsRequestorID = -1; /* LCSRequestorID */ -static int hf_gsm_map_dataCodingScheme = -1; /* USSD_DataCodingScheme */ -static int hf_gsm_map_nameString = -1; /* NameString */ -static int hf_gsm_map_lcs_FormatIndicator = -1; /* LCS_FormatIndicator */ -static int hf_gsm_map_requestorIDString = -1; /* RequestorIDString */ -static int hf_gsm_map_horizontal_accuracy = -1; /* Horizontal_Accuracy */ -static int hf_gsm_map_verticalCoordinateRequest = -1; /* NULL */ -static int hf_gsm_map_vertical_accuracy = -1; /* Vertical_Accuracy */ -static int hf_gsm_map_responseTime = -1; /* ResponseTime */ -static int hf_gsm_map_velocityRequest = -1; /* NULL */ -static int hf_gsm_map_responseTimeCategory = -1; /* ResponseTimeCategory */ -static int hf_gsm_map_lcsCodewordString = -1; /* LCSCodewordString */ -static int hf_gsm_map_callSessionUnrelated = -1; /* PrivacyCheckRelatedAction */ -static int hf_gsm_map_callSessionRelated = -1; /* PrivacyCheckRelatedAction */ -static int hf_gsm_map_areaDefinition = -1; /* AreaDefinition */ -static int hf_gsm_map_occurrenceInfo = -1; /* OccurrenceInfo */ -static int hf_gsm_map_intervalTime = -1; /* IntervalTime */ -static int hf_gsm_map_areaList = -1; /* AreaList */ -static int hf_gsm_map_AreaList_item = -1; /* Area */ -static int hf_gsm_map_areaType = -1; /* AreaType */ -static int hf_gsm_map_areaIdentification = -1; /* AreaIdentification */ -static int hf_gsm_map_reportingAmount = -1; /* ReportingAmount */ -static int hf_gsm_map_reportingInterval = -1; /* ReportingInterval */ -static int hf_gsm_map_plmn_ListPrioritized = -1; /* NULL */ -static int hf_gsm_map_plmn_List = -1; /* PLMNList */ -static int hf_gsm_map_PLMNList_item = -1; /* ReportingPLMN */ -static int hf_gsm_map_plmn_Id = -1; /* PLMN_Id */ -static int hf_gsm_map_ran_Technology = -1; /* RAN_Technology */ -static int hf_gsm_map_ran_PeriodicLocationSupport = -1; /* NULL */ -static int hf_gsm_map_locationEstimate = -1; /* Ext_GeographicalInformation */ -static int hf_gsm_map_ageOfLocationEstimate = -1; /* AgeOfLocationInformation */ -static int hf_gsm_map_add_LocationEstimate = -1; /* Add_GeographicalInformation */ -static int hf_gsm_map_deferredmt_lrResponseIndicator = -1; /* NULL */ -static int hf_gsm_map_geranPositioningData = -1; /* PositioningDataInformation */ -static int hf_gsm_map_utranPositioningData = -1; /* UtranPositioningDataInfo */ -static int hf_gsm_map_cellIdOrSai = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */ -static int hf_gsm_map_accuracyFulfilmentIndicator = -1; /* AccuracyFulfilmentIndicator */ -static int hf_gsm_map_velocityEstimate = -1; /* VelocityEstimate */ -static int hf_gsm_map_mlcNumber = -1; /* ISDN_AddressString */ -static int hf_gsm_map_targetMS = -1; /* SubscriberIdentity */ -static int hf_gsm_map_lcsLocationInfo = -1; /* LCSLocationInfo */ -static int hf_gsm_map_ppr_Address = -1; /* GSN_Address */ -static int hf_gsm_map_additional_v_gmlc_Address = -1; /* GSN_Address */ -static int hf_gsm_map_additional_LCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */ -static int hf_gsm_map_lcs_Event = -1; /* LCS_Event */ -static int hf_gsm_map_na_ESRD = -1; /* ISDN_AddressString */ -static int hf_gsm_map_na_ESRK = -1; /* ISDN_AddressString */ -static int hf_gsm_map_slr_ArgExtensionContainer = -1; /* SLR_ArgExtensionContainer */ -static int hf_gsm_map_deferredmt_lrData = -1; /* Deferredmt_lrData */ -static int hf_gsm_map_pseudonymIndicator = -1; /* NULL */ -static int hf_gsm_map_sequenceNumber = -1; /* SequenceNumber */ -static int hf_gsm_map_terminationCause = -1; /* TerminationCause */ -static int hf_gsm_map_securityHeader = -1; /* SecurityHeader */ -static int hf_gsm_map_protectedPayload = -1; /* ProtectedPayload */ -static int hf_gsm_map_securityParametersIndex = -1; /* SecurityParametersIndex */ -static int hf_gsm_map_originalComponentIdentifier = -1; /* OriginalComponentIdentifier */ -static int hf_gsm_map_initialisationVector = -1; /* InitialisationVector */ -static int hf_gsm_map_operationCode = -1; /* OperationCode */ -static int hf_gsm_map_errorCode = -1; /* ErrorCode */ -static int hf_gsm_map_userInfo = -1; /* NULL */ -static int hf_gsm_map_localValue = -1; /* INTEGER */ -static int hf_gsm_map_operatorSS_Code = -1; /* T_operatorSS_Code */ -static int hf_gsm_map_operatorSS_Code_item = -1; /* OCTET_STRING_SIZE_1 */ -static int hf_gsm_map_networkResource = -1; /* NetworkResource */ -static int hf_gsm_map_extensibleSystemFailureParam = -1; /* ExtensibleSystemFailureParam */ -static int hf_gsm_map_additionalNetworkResource = -1; /* AdditionalNetworkResource */ -static int hf_gsm_map_shapeOfLocationEstimateNotSupported = -1; /* NULL */ -static int hf_gsm_map_neededLcsCapabilityNotSupportedInServingNode = -1; /* NULL */ -static int hf_gsm_map_unknownSubscriberDiagnostic = -1; /* UnknownSubscriberDiagnostic */ -static int hf_gsm_map_roamingNotAllowedCause = -1; /* RoamingNotAllowedCause */ -static int hf_gsm_map_additionalRoamingNotAllowedCause = -1; /* AdditionalRoamingNotAllowedCause */ -static int hf_gsm_map_absentSubscriberReason = -1; /* AbsentSubscriberReason */ -static int hf_gsm_map_ccbs_Busy = -1; /* NULL */ -static int hf_gsm_map_gprsConnectionSuspended = -1; /* NULL */ -static int hf_gsm_map_callBarringCause = -1; /* CallBarringCause */ -static int hf_gsm_map_extensibleCallBarredParam = -1; /* ExtensibleCallBarredParam */ -static int hf_gsm_map_unauthorisedMessageOriginator = -1; /* NULL */ -static int hf_gsm_map_cug_RejectCause = -1; /* CUG_RejectCause */ -static int hf_gsm_map_sm_EnumeratedDeliveryFailureCause = -1; /* SM_EnumeratedDeliveryFailureCause */ -static int hf_gsm_map_diagnosticInfo = -1; /* SignalInfo */ -static int hf_gsm_map_unauthorizedLCSClient_Diagnostic = -1; /* UnauthorizedLCSClient_Diagnostic */ -static int hf_gsm_map_positionMethodFailure_Diagnostic = -1; /* PositionMethodFailure_Diagnostic */ -static int hf_gsm_map_pcsExtensions = -1; /* PcsExtensions */ +static int hf_gsm_map_maximumentitledPriority = -1; /* EMLPP_Priority */ +static int hf_gsm_map_defaultPriority = -1; /* EMLPP_Priority */ +static int hf_gsm_map_ss_Code = -1; /* SS_Code */ +static int hf_gsm_map_ss_Status = -1; /* Ext_SS_Status */ +static int hf_gsm_map_nbrSB = -1; /* MaxMC_Bearers */ +static int hf_gsm_map_nbrUser = -1; /* MC_Bearers */ + +/* --- Module MAP-SS-DataTypes --- --- --- */ + +static int hf_gsm_map_ss_ss_Code = -1; /* SS_Code */ +static int hf_gsm_map_ss_basicService = -1; /* BasicServiceCode */ +static int hf_gsm_map_ss_forwardedToNumber = -1; /* AddressString */ +static int hf_gsm_map_ss_forwardedToSubaddress = -1; /* ISDN_SubaddressString */ +static int hf_gsm_map_ss_noReplyConditionTime = -1; /* NoReplyConditionTime */ +static int hf_gsm_map_ss_defaultPriority = -1; /* EMLPP_Priority */ +static int hf_gsm_map_ss_nbrUser = -1; /* MC_Bearers */ +static int hf_gsm_map_ss_longFTN_Supported = -1; /* NULL */ +static int hf_gsm_map_ss_forwardingInfo = -1; /* ForwardingInfo */ +static int hf_gsm_map_ss_callBarringInfo = -1; /* CallBarringInfo */ +static int hf_gsm_map_ss_ss_Data = -1; /* SS_Data */ +static int hf_gsm_map_ss_forwardingFeatureList = -1; /* ForwardingFeatureList */ +static int hf_gsm_map_ss_ForwardingFeatureList_item = -1; /* ForwardingFeature */ +static int hf_gsm_map_ss_ss_Status = -1; /* SS_Status */ +static int hf_gsm_map_ss_forwardedToNumber_01 = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ss_forwardingOptions = -1; /* ForwardingOptions */ +static int hf_gsm_map_ss_longForwardedToNumber = -1; /* FTN_AddressString */ +static int hf_gsm_map_ss_callBarringFeatureList = -1; /* CallBarringFeatureList */ +static int hf_gsm_map_ss_CallBarringFeatureList_item = -1; /* CallBarringFeature */ +static int hf_gsm_map_ss_ss_SubscriptionOption = -1; /* SS_SubscriptionOption */ +static int hf_gsm_map_ss_basicServiceGroupList = -1; /* BasicServiceGroupList */ +static int hf_gsm_map_ss_cliRestrictionOption = -1; /* CliRestrictionOption */ +static int hf_gsm_map_ss_overrideCategory = -1; /* OverrideCategory */ +static int hf_gsm_map_ss_maximumEntitledPriority = -1; /* EMLPP_Priority */ +static int hf_gsm_map_ss_ccbs_FeatureList = -1; /* CCBS_FeatureList */ +static int hf_gsm_map_ss_nbrSB = -1; /* MaxMC_Bearers */ +static int hf_gsm_map_ss_nbrSN = -1; /* MC_Bearers */ +static int hf_gsm_map_ss_CCBS_FeatureList_item = -1; /* CCBS_Feature */ +static int hf_gsm_map_ss_ccbs_Index = -1; /* CCBS_Index */ +static int hf_gsm_map_ss_b_subscriberNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ss_b_subscriberSubaddress = -1; /* ISDN_SubaddressString */ +static int hf_gsm_map_ss_basicServiceGroup = -1; /* BasicServiceCode */ +static int hf_gsm_map_ss_genericServiceInfo = -1; /* GenericServiceInfo */ +static int hf_gsm_map_ss_ussd_DataCodingScheme = -1; /* USSD_DataCodingScheme */ +static int hf_gsm_map_ss_ussd_String = -1; /* USSD_String */ +static int hf_gsm_map_ss_alertingPattern = -1; /* AlertingPattern */ +static int hf_gsm_map_ss_msisdn = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ss_SS_List_item = -1; /* SS_Code */ +static int hf_gsm_map_ss_SS_InfoList_item = -1; /* SS_Info */ +static int hf_gsm_map_ss_BasicServiceGroupList_item = -1; /* BasicServiceCode */ +static int hf_gsm_map_ss_imsi = -1; /* IMSI */ +static int hf_gsm_map_ss_ss_Event = -1; /* SS_Code */ +static int hf_gsm_map_ss_ss_EventSpecification = -1; /* SS_EventSpecification */ +static int hf_gsm_map_ss_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_ss_ccbs_RequestState = -1; /* CCBS_RequestState */ +static int hf_gsm_map_ss_SS_EventSpecification_item = -1; /* AddressString */ +static int hf_gsm_map_ss_ccbs_Data = -1; /* CCBS_Data */ +static int hf_gsm_map_ss_ccbs_Feature = -1; /* CCBS_Feature */ +static int hf_gsm_map_ss_translatedB_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ss_serviceIndicator = -1; /* ServiceIndicator */ +static int hf_gsm_map_ss_callInfo = -1; /* ExternalSignalInfo */ +static int hf_gsm_map_ss_networkSignalInfo = -1; /* ExternalSignalInfo */ +/* named bits */ +static int hf_gsm_map_ss_ServiceIndicator_clir_invoked = -1; +static int hf_gsm_map_ss_ServiceIndicator_camel_invoked = -1; + +/* --- Module MAP-ER-DataTypes --- --- --- */ + +static int hf_gsm_map_er_roamingNotAllowedCause = -1; /* RoamingNotAllowedCause */ +static int hf_gsm_map_er_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_er_additionalRoamingNotAllowedCause = -1; /* AdditionalRoamingNotAllowedCause */ +static int hf_gsm_map_er_callBarringCause = -1; /* CallBarringCause */ +static int hf_gsm_map_er_extensibleCallBarredParam = -1; /* ExtensibleCallBarredParam */ +static int hf_gsm_map_er_unauthorisedMessageOriginator = -1; /* NULL */ +static int hf_gsm_map_er_cug_RejectCause = -1; /* CUG_RejectCause */ +static int hf_gsm_map_er_ss_Code = -1; /* SS_Code */ +static int hf_gsm_map_er_basicService = -1; /* BasicServiceCode */ +static int hf_gsm_map_er_ss_Status = -1; /* SS_Status */ +static int hf_gsm_map_er_sm_EnumeratedDeliveryFailureCause = -1; /* SM_EnumeratedDeliveryFailureCause */ +static int hf_gsm_map_er_diagnosticInfo = -1; /* SignalInfo */ +static int hf_gsm_map_er_absentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */ +static int hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */ +static int hf_gsm_map_er_networkResource = -1; /* NetworkResource */ +static int hf_gsm_map_er_extensibleSystemFailureParam = -1; /* ExtensibleSystemFailureParam */ +static int hf_gsm_map_er_additionalNetworkResource = -1; /* AdditionalNetworkResource */ +static int hf_gsm_map_er_shapeOfLocationEstimateNotSupported = -1; /* NULL */ +static int hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode = -1; /* NULL */ +static int hf_gsm_map_er_unknownSubscriberDiagnostic = -1; /* UnknownSubscriberDiagnostic */ +static int hf_gsm_map_er_absentSubscriberReason = -1; /* AbsentSubscriberReason */ +static int hf_gsm_map_er_ccbs_Possible = -1; /* NULL */ +static int hf_gsm_map_er_ccbs_Busy = -1; /* NULL */ +static int hf_gsm_map_er_gprsConnectionSuspended = -1; /* NULL */ +static int hf_gsm_map_er_unauthorizedLCSClient_Diagnostic = -1; /* UnauthorizedLCSClient_Diagnostic */ +static int hf_gsm_map_er_positionMethodFailure_Diagnostic = -1; /* PositionMethodFailure_Diagnostic */ + +/* --- Module MAP-SM-DataTypes --- --- --- */ + +static int hf_gsm_map_sm_msisdn = -1; /* ISDN_AddressString */ +static int hf_gsm_map_sm_sm_RP_PRI = -1; /* BOOLEAN */ +static int hf_gsm_map_sm_serviceCentreAddress = -1; /* AddressString */ +static int hf_gsm_map_sm_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_sm_gprsSupportIndicator = -1; /* NULL */ +static int hf_gsm_map_sm_sm_RP_MTI = -1; /* SM_RP_MTI */ +static int hf_gsm_map_sm_sm_RP_SMEA = -1; /* SM_RP_SMEA */ +static int hf_gsm_map_sm_imsi = -1; /* IMSI */ +static int hf_gsm_map_sm_locationInfoWithLMSI = -1; /* LocationInfoWithLMSI */ +static int hf_gsm_map_sm_networkNode_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_sm_lmsi = -1; /* LMSI */ +static int hf_gsm_map_sm_gprsNodeIndicator = -1; /* NULL */ +static int hf_gsm_map_sm_additional_Number = -1; /* Additional_Number */ +static int hf_gsm_map_sm_msc_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_sm_sgsn_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_sm_sm_RP_DA = -1; /* SM_RP_DA */ +static int hf_gsm_map_sm_sm_RP_OA = -1; /* SM_RP_OA */ +static int hf_gsm_map_sm_sm_RP_UI = -1; /* SignalInfo */ +static int hf_gsm_map_sm_moreMessagesToSend = -1; /* NULL */ +static int hf_gsm_map_sm_serviceCentreAddressDA = -1; /* AddressString */ +static int hf_gsm_map_sm_noSM_RP_DA = -1; /* NULL */ +static int hf_gsm_map_sm_msisdn_01 = -1; /* T_msisdn */ +static int hf_gsm_map_sm_serviceCentreAddressOA = -1; /* T_serviceCentreAddressOA */ +static int hf_gsm_map_sm_noSM_RP_OA = -1; /* NULL */ +static int hf_gsm_map_sm_sm_DeliveryOutcome = -1; /* SM_DeliveryOutcome */ +static int hf_gsm_map_sm_absentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */ +static int hf_gsm_map_sm_deliveryOutcomeIndicator = -1; /* NULL */ +static int hf_gsm_map_sm_additionalSM_DeliveryOutcome = -1; /* SM_DeliveryOutcome */ +static int hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM = -1; /* AbsentSubscriberDiagnosticSM */ +static int hf_gsm_map_sm_storedMSISDN = -1; /* ISDN_AddressString */ +static int hf_gsm_map_sm_mw_Status = -1; /* MW_Status */ +static int hf_gsm_map_sm_alertReason = -1; /* AlertReason */ +static int hf_gsm_map_sm_alertReasonIndicator = -1; /* NULL */ +static int hf_gsm_map_sm_asciCallReference = -1; /* ASCI_CallReference */ +static int hf_gsm_map_sm_dispatcherList = -1; /* DispatcherList */ +static int hf_gsm_map_sm_ongoingCall = -1; /* NULL */ +static int hf_gsm_map_sm_DispatcherList_item = -1; /* ISDN_AddressString */ +/* named bits */ +static int hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded = -1; +static int hf_gsm_map_sm_MW_Status_mnrf_Set = -1; +static int hf_gsm_map_sm_MW_Status_mcef_Set = -1; +static int hf_gsm_map_sm_MW_Status_mnrg_Set = -1; + +/* --- Module MAP-OM-DataTypes --- --- --- */ + +static int hf_gsm_map_om_imsi = -1; /* IMSI */ +static int hf_gsm_map_om_traceReference = -1; /* TraceReference */ +static int hf_gsm_map_om_traceType = -1; /* TraceType */ +static int hf_gsm_map_om_omc_Id = -1; /* AddressString */ +static int hf_gsm_map_om_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_om_traceReference2 = -1; /* TraceReference2 */ +static int hf_gsm_map_om_traceDepthList = -1; /* TraceDepthList */ +static int hf_gsm_map_om_traceNE_TypeList = -1; /* TraceNE_TypeList */ +static int hf_gsm_map_om_traceInterfaceList = -1; /* TraceInterfaceList */ +static int hf_gsm_map_om_traceEventList = -1; /* TraceEventList */ +static int hf_gsm_map_om_msc_s_TraceDepth = -1; /* TraceDepth */ +static int hf_gsm_map_om_mgw_TraceDepth = -1; /* TraceDepth */ +static int hf_gsm_map_om_sgsn_TraceDepth = -1; /* TraceDepth */ +static int hf_gsm_map_om_ggsn_TraceDepth = -1; /* TraceDepth */ +static int hf_gsm_map_om_rnc_TraceDepth = -1; /* TraceDepth */ +static int hf_gsm_map_om_bmsc_TraceDepth = -1; /* TraceDepth */ +static int hf_gsm_map_om_msc_s_List = -1; /* MSC_S_InterfaceList */ +static int hf_gsm_map_om_mgw_List = -1; /* MGW_InterfaceList */ +static int hf_gsm_map_om_sgsn_List = -1; /* SGSN_InterfaceList */ +static int hf_gsm_map_om_ggsn_List = -1; /* GGSN_InterfaceList */ +static int hf_gsm_map_om_rnc_List = -1; /* RNC_InterfaceList */ +static int hf_gsm_map_om_bmsc_List = -1; /* BMSC_InterfaceList */ +static int hf_gsm_map_om_msc_s_List_01 = -1; /* MSC_S_EventList */ +static int hf_gsm_map_om_mgw_List_01 = -1; /* MGW_EventList */ +static int hf_gsm_map_om_sgsn_List_01 = -1; /* SGSN_EventList */ +static int hf_gsm_map_om_ggsn_List_01 = -1; /* GGSN_EventList */ +static int hf_gsm_map_om_bmsc_List_01 = -1; /* BMSC_EventList */ +static int hf_gsm_map_om_traceRecordingSessionReference = -1; /* TraceRecordingSessionReference */ +static int hf_gsm_map_om_rnc_InterfaceList = -1; /* RNC_InterfaceList */ +static int hf_gsm_map_om_msc_s_InterfaceList = -1; /* MSC_S_InterfaceList */ +static int hf_gsm_map_om_msc_s_EventList = -1; /* MSC_S_EventList */ +static int hf_gsm_map_om_mgw_InterfaceList = -1; /* MGW_InterfaceList */ +static int hf_gsm_map_om_mgw_EventList = -1; /* MGW_EventList */ +static int hf_gsm_map_om_traceSupportIndicator = -1; /* NULL */ /* named bits */ -static int hf_gsm_map_SupportedCamelPhases_phase1 = -1; -static int hf_gsm_map_SupportedCamelPhases_phase2 = -1; -static int hf_gsm_map_SupportedCamelPhases_phase3 = -1; -static int hf_gsm_map_SupportedCamelPhases_phase4 = -1; -static int hf_gsm_map_SupportedRAT_Types_utran = -1; -static int hf_gsm_map_SupportedRAT_Types_geran = -1; -static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1; -static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1; -static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1; -static int hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1; -static int hf_gsm_map_RequestedEquipmentInfo_equipmentStatus = -1; -static int hf_gsm_map_RequestedEquipmentInfo_bmuef = -1; -static int hf_gsm_map_ODB_GeneralData_allOG_CallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1; -static int hf_gsm_map_ODB_GeneralData_interzonalOGCallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1; -static int hf_gsm_map_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1; -static int hf_gsm_map_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_ss_AccessBarred = -1; -static int hf_gsm_map_ODB_GeneralData_allECT_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_chargeableECT_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_internationalECT_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_interzonalECT_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_doublyChargeableECT_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_multipleECT_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_allPacketOrientedServicesBarred = -1; -static int hf_gsm_map_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_allIC_CallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1; -static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1; -static int hf_gsm_map_ODB_GeneralData_registrationAllCF_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_registrationInterzonalCF_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1; -static int hf_gsm_map_ODB_GeneralData_registrationInternationalCF_Barred = -1; -static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1; -static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1; -static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1; -static int hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1; -static int hf_gsm_map_AccessRestrictionData_utranNotAllowed = -1; -static int hf_gsm_map_AccessRestrictionData_geranNotAllowed = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_o_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_ss_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_tif_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_d_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_vt_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_mo_sms_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_m_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_gprs_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_t_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_mt_sms_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_mg_csi = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_o_IM_CSI = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_d_IM_CSI = -1; -static int hf_gsm_map_SpecificCSI_Withdraw_vt_IM_CSI = -1; -static int hf_gsm_map_AdditionalSubscriptions_privilegedUplinkRequest = -1; -static int hf_gsm_map_AdditionalSubscriptions_emergencyUplinkRequest = -1; -static int hf_gsm_map_AdditionalSubscriptions_emergencyReset = -1; -static int hf_gsm_map_TraceNE_TypeList_msc_s = -1; -static int hf_gsm_map_TraceNE_TypeList_mgw = -1; -static int hf_gsm_map_TraceNE_TypeList_sgsn = -1; -static int hf_gsm_map_TraceNE_TypeList_ggsn = -1; -static int hf_gsm_map_TraceNE_TypeList_rnc = -1; -static int hf_gsm_map_TraceNE_TypeList_bm_sc = -1; -static int hf_gsm_map_MSC_S_InterfaceList_a = -1; -static int hf_gsm_map_MSC_S_InterfaceList_iu = -1; -static int hf_gsm_map_MSC_S_InterfaceList_mc = -1; -static int hf_gsm_map_MSC_S_InterfaceList_map_g = -1; -static int hf_gsm_map_MSC_S_InterfaceList_map_b = -1; -static int hf_gsm_map_MSC_S_InterfaceList_map_e = -1; -static int hf_gsm_map_MSC_S_InterfaceList_map_f = -1; -static int hf_gsm_map_MSC_S_InterfaceList_cap = -1; -static int hf_gsm_map_MSC_S_InterfaceList_map_d = -1; -static int hf_gsm_map_MSC_S_InterfaceList_map_c = -1; -static int hf_gsm_map_MGW_InterfaceList_mc = -1; -static int hf_gsm_map_MGW_InterfaceList_nb_up = -1; -static int hf_gsm_map_MGW_InterfaceList_iu_up = -1; -static int hf_gsm_map_SGSN_InterfaceList_gb = -1; -static int hf_gsm_map_SGSN_InterfaceList_iu = -1; -static int hf_gsm_map_SGSN_InterfaceList_gn = -1; -static int hf_gsm_map_SGSN_InterfaceList_map_gr = -1; -static int hf_gsm_map_SGSN_InterfaceList_map_gd = -1; -static int hf_gsm_map_SGSN_InterfaceList_map_gf = -1; -static int hf_gsm_map_SGSN_InterfaceList_gs = -1; -static int hf_gsm_map_SGSN_InterfaceList_ge = -1; -static int hf_gsm_map_GGSN_InterfaceList_gn = -1; -static int hf_gsm_map_GGSN_InterfaceList_gi = -1; -static int hf_gsm_map_GGSN_InterfaceList_gmb = -1; -static int hf_gsm_map_RNC_InterfaceList_iu = -1; -static int hf_gsm_map_RNC_InterfaceList_iur = -1; -static int hf_gsm_map_RNC_InterfaceList_iub = -1; -static int hf_gsm_map_RNC_InterfaceList_uu = -1; -static int hf_gsm_map_BMSC_InterfaceList_gmb = -1; -static int hf_gsm_map_MSC_S_EventList_mo_mtCall = -1; -static int hf_gsm_map_MSC_S_EventList_mo_mt_sms = -1; -static int hf_gsm_map_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1; -static int hf_gsm_map_MSC_S_EventList_handovers = -1; -static int hf_gsm_map_MSC_S_EventList_ss = -1; -static int hf_gsm_map_MGW_EventList_context = -1; -static int hf_gsm_map_SGSN_EventList_pdpContext = -1; -static int hf_gsm_map_SGSN_EventList_mo_mt_sms = -1; -static int hf_gsm_map_SGSN_EventList_rau_gprsAttach_gprsDetach = -1; -static int hf_gsm_map_SGSN_EventList_mbmsContext = -1; -static int hf_gsm_map_GGSN_EventList_pdpContext = -1; -static int hf_gsm_map_GGSN_EventList_mbmsContext = -1; -static int hf_gsm_map_BMSC_EventList_mbmsMulticastServiceActivation = -1; -static int hf_gsm_map_AllowedServices_firstServiceAllowed = -1; -static int hf_gsm_map_AllowedServices_secondServiceAllowed = -1; -static int hf_gsm_map_ServiceIndicator_clir_invoked = -1; -static int hf_gsm_map_ServiceIndicator_camel_invoked = -1; -static int hf_gsm_map_MW_Status_sc_AddressNotIncluded = -1; -static int hf_gsm_map_MW_Status_mnrf_Set = -1; -static int hf_gsm_map_MW_Status_mcef_Set = -1; -static int hf_gsm_map_MW_Status_mnrg_Set = -1; -static int hf_gsm_map_OfferedCamel4CSIs_o_csi = -1; -static int hf_gsm_map_OfferedCamel4CSIs_d_csi = -1; -static int hf_gsm_map_OfferedCamel4CSIs_vt_csi = -1; -static int hf_gsm_map_OfferedCamel4CSIs_t_csi = -1; -static int hf_gsm_map_OfferedCamel4CSIs_mt_sms_csi = -1; -static int hf_gsm_map_OfferedCamel4CSIs_mg_csi = -1; -static int hf_gsm_map_OfferedCamel4CSIs_psi_enhancements = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_splitLeg = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_moveLeg = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_disconnectLeg = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_entityReleased = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_dfc_WithArgument = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_playTone = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_dtmf_MidCall = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_chargingIndicator = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_alertingDP = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_locationAtAlerting = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_changeOfPositionDP = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_or_Interactions = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_warningToneEnhancements = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_cf_Enhancements = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_serviceChangeDP = -1; -static int hf_gsm_map_OfferedCamel4Functionalities_collectInformation = -1; -static int hf_gsm_map_DeferredLocationEventType_msAvailable = -1; -static int hf_gsm_map_DeferredLocationEventType_enteringIntoArea = -1; -static int hf_gsm_map_DeferredLocationEventType_leavingFromArea = -1; -static int hf_gsm_map_DeferredLocationEventType_beingInsideArea = -1; -static int hf_gsm_map_DeferredLocationEventType_periodicLDR = -1; -static int hf_gsm_map_SupportedGADShapes_ellipsoidPoint = -1; -static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1; -static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1; -static int hf_gsm_map_SupportedGADShapes_polygon = -1; -static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitude = -1; -static int hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1; -static int hf_gsm_map_SupportedGADShapes_ellipsoidArc = -1; +static int hf_gsm_map_om_TraceNE_TypeList_msc_s = -1; +static int hf_gsm_map_om_TraceNE_TypeList_mgw = -1; +static int hf_gsm_map_om_TraceNE_TypeList_sgsn = -1; +static int hf_gsm_map_om_TraceNE_TypeList_ggsn = -1; +static int hf_gsm_map_om_TraceNE_TypeList_rnc = -1; +static int hf_gsm_map_om_TraceNE_TypeList_bm_sc = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_a = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_iu = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_mc = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_map_g = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_map_b = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_map_e = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_map_f = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_cap = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_map_d = -1; +static int hf_gsm_map_om_MSC_S_InterfaceList_map_c = -1; +static int hf_gsm_map_om_MGW_InterfaceList_mc = -1; +static int hf_gsm_map_om_MGW_InterfaceList_nb_up = -1; +static int hf_gsm_map_om_MGW_InterfaceList_iu_up = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_gb = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_iu = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_gn = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_map_gr = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_map_gd = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_map_gf = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_gs = -1; +static int hf_gsm_map_om_SGSN_InterfaceList_ge = -1; +static int hf_gsm_map_om_GGSN_InterfaceList_gn = -1; +static int hf_gsm_map_om_GGSN_InterfaceList_gi = -1; +static int hf_gsm_map_om_GGSN_InterfaceList_gmb = -1; +static int hf_gsm_map_om_RNC_InterfaceList_iu = -1; +static int hf_gsm_map_om_RNC_InterfaceList_iur = -1; +static int hf_gsm_map_om_RNC_InterfaceList_iub = -1; +static int hf_gsm_map_om_RNC_InterfaceList_uu = -1; +static int hf_gsm_map_om_BMSC_InterfaceList_gmb = -1; +static int hf_gsm_map_om_MSC_S_EventList_mo_mtCall = -1; +static int hf_gsm_map_om_MSC_S_EventList_mo_mt_sms = -1; +static int hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach = -1; +static int hf_gsm_map_om_MSC_S_EventList_handovers = -1; +static int hf_gsm_map_om_MSC_S_EventList_ss = -1; +static int hf_gsm_map_om_MGW_EventList_context = -1; +static int hf_gsm_map_om_SGSN_EventList_pdpContext = -1; +static int hf_gsm_map_om_SGSN_EventList_mo_mt_sms = -1; +static int hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach = -1; +static int hf_gsm_map_om_SGSN_EventList_mbmsContext = -1; +static int hf_gsm_map_om_GGSN_EventList_pdpContext = -1; +static int hf_gsm_map_om_GGSN_EventList_mbmsContext = -1; +static int hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation = -1; + +/* --- Module MAP-MS-DataTypes --- --- --- */ + +static int hf_gsm_map_ms_imsi = -1; /* IMSI */ +static int hf_gsm_map_ms_msc_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_vlr_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_lmsi = -1; /* LMSI */ +static int hf_gsm_map_ms_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_ms_vlr_Capability = -1; /* VLR_Capability */ +static int hf_gsm_map_ms_informPreviousNetworkEntity = -1; /* NULL */ +static int hf_gsm_map_ms_cs_LCS_NotSupportedByUE = -1; /* NULL */ +static int hf_gsm_map_ms_v_gmlc_Address = -1; /* GSN_Address */ +static int hf_gsm_map_ms_add_info = -1; /* ADD_Info */ +static int hf_gsm_map_ms_supportedCamelPhases = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ms_solsaSupportIndicator = -1; /* NULL */ +static int hf_gsm_map_ms_istSupportIndicator = -1; /* IST_SupportIndicator */ +static int hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity = -1; /* SuperChargerInfo */ +static int hf_gsm_map_ms_longFTN_Supported = -1; /* NULL */ +static int hf_gsm_map_ms_supportedLCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */ +static int hf_gsm_map_ms_offeredCamel4CSIs = -1; /* OfferedCamel4CSIs */ +static int hf_gsm_map_ms_supportedRAT_TypesIndicator = -1; /* SupportedRAT_Types */ +static int hf_gsm_map_ms_longGroupID_Supported = -1; /* NULL */ +static int hf_gsm_map_ms_sendSubscriberData = -1; /* NULL */ +static int hf_gsm_map_ms_subscriberDataStored = -1; /* AgeIndicator */ +static int hf_gsm_map_ms_hlr_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_add_Capability = -1; /* NULL */ +static int hf_gsm_map_ms_imeisv = -1; /* IMEI */ +static int hf_gsm_map_ms_skipSubscriberDataUpdate = -1; /* NULL */ +static int hf_gsm_map_ms_identity = -1; /* Identity */ +static int hf_gsm_map_ms_cancellationType = -1; /* CancellationType */ +static int hf_gsm_map_ms_sgsn_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_freezeTMSI = -1; /* NULL */ +static int hf_gsm_map_ms_freezeP_TMSI = -1; /* NULL */ +static int hf_gsm_map_ms_tmsi = -1; /* TMSI */ +static int hf_gsm_map_ms_numberOfRequestedVectors = -1; /* NumberOfRequestedVectors */ +static int hf_gsm_map_ms_segmentationProhibited = -1; /* NULL */ +static int hf_gsm_map_ms_previous_LAI = -1; /* LAIFixedLength */ +static int hf_gsm_map_ms_hopCounter = -1; /* HopCounter */ +static int hf_gsm_map_ms_authenticationSetList = -1; /* AuthenticationSetList */ +static int hf_gsm_map_ms_currentSecurityContext = -1; /* CurrentSecurityContext */ +static int hf_gsm_map_ms_tripletList = -1; /* TripletList */ +static int hf_gsm_map_ms_quintupletList = -1; /* QuintupletList */ +static int hf_gsm_map_ms_TripletList_item = -1; /* AuthenticationTriplet */ +static int hf_gsm_map_ms_QuintupletList_item = -1; /* AuthenticationQuintuplet */ +static int hf_gsm_map_ms_rand = -1; /* RAND */ +static int hf_gsm_map_ms_sres = -1; /* SRES */ +static int hf_gsm_map_ms_kc = -1; /* Kc */ +static int hf_gsm_map_ms_xres = -1; /* XRES */ +static int hf_gsm_map_ms_ck = -1; /* CK */ +static int hf_gsm_map_ms_ik = -1; /* IK */ +static int hf_gsm_map_ms_autn = -1; /* AUTN */ +static int hf_gsm_map_ms_gsm_SecurityContextData = -1; /* GSM_SecurityContextData */ +static int hf_gsm_map_ms_umts_SecurityContextData = -1; /* UMTS_SecurityContextData */ +static int hf_gsm_map_ms_cksn = -1; /* Cksn */ +static int hf_gsm_map_ms_ksi = -1; /* KSI */ +static int hf_gsm_map_ms_failureCause = -1; /* FailureCause */ +static int hf_gsm_map_ms_re_attempt = -1; /* BOOLEAN */ +static int hf_gsm_map_ms_accessType = -1; /* AccessType */ +static int hf_gsm_map_ms_sgsn_Address = -1; /* GSN_Address */ +static int hf_gsm_map_ms_sgsn_Capability = -1; /* SGSN_Capability */ +static int hf_gsm_map_ms_ps_LCS_NotSupportedByUE = -1; /* NULL */ +static int hf_gsm_map_ms_gprsEnhancementsSupportIndicator = -1; /* NULL */ +static int hf_gsm_map_ms_smsCallBarringSupportIndicator = -1; /* NULL */ +static int hf_gsm_map_ms_an_APDU = -1; /* AccessNetworkSignalInfo */ +static int hf_gsm_map_ms_integrityProtectionInfo = -1; /* IntegrityProtectionInformation */ +static int hf_gsm_map_ms_encryptionInfo = -1; /* EncryptionInformation */ +static int hf_gsm_map_ms_keyStatus = -1; /* KeyStatus */ +static int hf_gsm_map_ms_allowedGSM_Algorithms = -1; /* AllowedGSM_Algorithms */ +static int hf_gsm_map_ms_allowedUMTS_Algorithms = -1; /* AllowedUMTS_Algorithms */ +static int hf_gsm_map_ms_radioResourceInformation = -1; /* RadioResourceInformation */ +static int hf_gsm_map_ms_radioResourceList = -1; /* RadioResourceList */ +static int hf_gsm_map_ms_bssmap_ServiceHandover = -1; /* BSSMAP_ServiceHandover */ +static int hf_gsm_map_ms_ranap_ServiceHandover = -1; /* RANAP_ServiceHandover */ +static int hf_gsm_map_ms_bssmap_ServiceHandoverList = -1; /* BSSMAP_ServiceHandoverList */ +static int hf_gsm_map_ms_currentlyUsedCodec = -1; /* Codec */ +static int hf_gsm_map_ms_iuSupportedCodecsList = -1; /* SupportedCodecsList */ +static int hf_gsm_map_ms_rab_ConfigurationIndicator = -1; /* NULL */ +static int hf_gsm_map_ms_iuSelectedCodec = -1; /* Codec */ +static int hf_gsm_map_ms_alternativeChannelType = -1; /* RadioResourceInformation */ +static int hf_gsm_map_ms_tracePropagationList = -1; /* TracePropagationList */ +static int hf_gsm_map_ms_integrityProtectionAlgorithms = -1; /* PermittedIntegrityProtectionAlgorithms */ +static int hf_gsm_map_ms_encryptionAlgorithms = -1; /* PermittedEncryptionAlgorithms */ +static int hf_gsm_map_ms_targetCellId = -1; /* GlobalCellId */ +static int hf_gsm_map_ms_ho_NumberNotRequired = -1; /* NULL */ +static int hf_gsm_map_ms_targetRNCId = -1; /* RNCId */ +static int hf_gsm_map_ms_multipleBearerRequested = -1; /* NULL */ +static int hf_gsm_map_ms_rab_Id = -1; /* RAB_Id */ +static int hf_gsm_map_ms_asciCallReference = -1; /* ASCI_CallReference */ +static int hf_gsm_map_ms_geran_classmark = -1; /* GERAN_Classmark */ +static int hf_gsm_map_ms_iuCurrentlyUsedCodec = -1; /* Codec */ +static int hf_gsm_map_ms_uesbi_Iu = -1; /* UESBI_Iu */ +static int hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item = -1; /* BSSMAP_ServiceHandoverInfo */ +static int hf_gsm_map_ms_RadioResourceList_item = -1; /* RadioResource */ +static int hf_gsm_map_ms_handoverNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_relocationNumberList = -1; /* RelocationNumberList */ +static int hf_gsm_map_ms_multicallBearerInfo = -1; /* MulticallBearerInfo */ +static int hf_gsm_map_ms_multipleBearerNotSupported = -1; /* NULL */ +static int hf_gsm_map_ms_selectedUMTS_Algorithms = -1; /* SelectedUMTS_Algorithms */ +static int hf_gsm_map_ms_chosenRadioResourceInformation = -1; /* ChosenRadioResourceInformation */ +static int hf_gsm_map_ms_iuAvailableCodecsList = -1; /* CodecList */ +static int hf_gsm_map_ms_integrityProtectionAlgorithm = -1; /* ChosenIntegrityProtectionAlgorithm */ +static int hf_gsm_map_ms_encryptionAlgorithm = -1; /* ChosenEncryptionAlgorithm */ +static int hf_gsm_map_ms_chosenChannelInfo = -1; /* ChosenChannelInfo */ +static int hf_gsm_map_ms_chosenSpeechVersion = -1; /* ChosenSpeechVersion */ +static int hf_gsm_map_ms_targetMSC_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_selectedRab_Id = -1; /* RAB_Id */ +static int hf_gsm_map_ms_selectedGSM_Algorithm = -1; /* SelectedGSM_Algorithm */ +static int hf_gsm_map_ms_iUSelectedCodec = -1; /* Codec */ +static int hf_gsm_map_ms_utranCodecList = -1; /* CodecList */ +static int hf_gsm_map_ms_geranCodecList = -1; /* CodecList */ +static int hf_gsm_map_ms_codec1 = -1; /* Codec */ +static int hf_gsm_map_ms_codec2 = -1; /* Codec */ +static int hf_gsm_map_ms_codec3 = -1; /* Codec */ +static int hf_gsm_map_ms_codec4 = -1; /* Codec */ +static int hf_gsm_map_ms_codec5 = -1; /* Codec */ +static int hf_gsm_map_ms_codec6 = -1; /* Codec */ +static int hf_gsm_map_ms_codec7 = -1; /* Codec */ +static int hf_gsm_map_ms_codec8 = -1; /* Codec */ +static int hf_gsm_map_ms_RelocationNumberList_item = -1; /* RelocationNumber */ +static int hf_gsm_map_ms_immediateResponsePreferred = -1; /* NULL */ +static int hf_gsm_map_ms_re_synchronisationInfo = -1; /* Re_synchronisationInfo */ +static int hf_gsm_map_ms_requestingNodeType = -1; /* RequestingNodeType */ +static int hf_gsm_map_ms_requestingPLMN_Id = -1; /* PLMN_Id */ +static int hf_gsm_map_ms_auts = -1; /* AUTS */ +static int hf_gsm_map_ms_imei = -1; /* IMEI */ +static int hf_gsm_map_ms_requestedEquipmentInfo = -1; /* RequestedEquipmentInfo */ +static int hf_gsm_map_ms_equipmentStatus = -1; /* EquipmentStatus */ +static int hf_gsm_map_ms_bmuef = -1; /* UESBI_Iu */ +static int hf_gsm_map_ms_uesbi_IuA = -1; /* UESBI_IuA */ +static int hf_gsm_map_ms_uesbi_IuB = -1; /* UESBI_IuB */ +static int hf_gsm_map_ms_gmlc_List = -1; /* GMLC_List */ +static int hf_gsm_map_ms_lcs_PrivacyExceptionList = -1; /* LCS_PrivacyExceptionList */ +static int hf_gsm_map_ms_molr_List = -1; /* MOLR_List */ +static int hf_gsm_map_ms_add_lcs_PrivacyExceptionList = -1; /* LCS_PrivacyExceptionList */ +static int hf_gsm_map_ms_GMLC_List_item = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_GPRSDataList_item = -1; /* PDP_Context */ +static int hf_gsm_map_ms_pdp_ContextId = -1; /* ContextId */ +static int hf_gsm_map_ms_pdp_Type = -1; /* PDP_Type */ +static int hf_gsm_map_ms_pdp_Address = -1; /* PDP_Address */ +static int hf_gsm_map_ms_qos_Subscribed = -1; /* QoS_Subscribed */ +static int hf_gsm_map_ms_vplmnAddressAllowed = -1; /* NULL */ +static int hf_gsm_map_ms_apn = -1; /* APN */ +static int hf_gsm_map_ms_ext_QoS_Subscribed = -1; /* Ext_QoS_Subscribed */ +static int hf_gsm_map_ms_pdp_ChargingCharacteristics = -1; /* ChargingCharacteristics */ +static int hf_gsm_map_ms_ext2_QoS_Subscribed = -1; /* Ext2_QoS_Subscribed */ +static int hf_gsm_map_ms_completeDataListIncluded = -1; /* NULL */ +static int hf_gsm_map_ms_gprsDataList = -1; /* GPRSDataList */ +static int hf_gsm_map_ms_gprs_CSI = -1; /* GPRS_CSI */ +static int hf_gsm_map_ms_mo_sms_CSI = -1; /* SMS_CSI */ +static int hf_gsm_map_ms_mt_sms_CSI = -1; /* SMS_CSI */ +static int hf_gsm_map_ms_mt_smsCAMELTDP_CriteriaList = -1; /* MT_smsCAMELTDP_CriteriaList */ +static int hf_gsm_map_ms_mg_csi = -1; /* MG_CSI */ +static int hf_gsm_map_ms_gprs_CamelTDPDataList = -1; /* GPRS_CamelTDPDataList */ +static int hf_gsm_map_ms_camelCapabilityHandling = -1; /* CamelCapabilityHandling */ +static int hf_gsm_map_ms_notificationToCSE = -1; /* NULL */ +static int hf_gsm_map_ms_csi_Active = -1; /* NULL */ +static int hf_gsm_map_ms_GPRS_CamelTDPDataList_item = -1; /* GPRS_CamelTDPData */ +static int hf_gsm_map_ms_gprs_TriggerDetectionPoint = -1; /* GPRS_TriggerDetectionPoint */ +static int hf_gsm_map_ms_serviceKey = -1; /* ServiceKey */ +static int hf_gsm_map_ms_gsmSCF_Address = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_defaultSessionHandling = -1; /* DefaultGPRS_Handling */ +static int hf_gsm_map_ms_LSADataList_item = -1; /* LSAData */ +static int hf_gsm_map_ms_lsaIdentity = -1; /* LSAIdentity */ +static int hf_gsm_map_ms_lsaAttributes = -1; /* LSAAttributes */ +static int hf_gsm_map_ms_lsaActiveModeIndicator = -1; /* NULL */ +static int hf_gsm_map_ms_lsaOnlyAccessIndicator = -1; /* LSAOnlyAccessIndicator */ +static int hf_gsm_map_ms_lsaDataList = -1; /* LSADataList */ +static int hf_gsm_map_ms_msisdn = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_category = -1; /* Category */ +static int hf_gsm_map_ms_subscriberStatus = -1; /* SubscriberStatus */ +static int hf_gsm_map_ms_bearerServiceList = -1; /* BearerServiceList */ +static int hf_gsm_map_ms_teleserviceList = -1; /* TeleserviceList */ +static int hf_gsm_map_ms_provisionedSS = -1; /* Ext_SS_InfoList */ +static int hf_gsm_map_ms_odb_Data = -1; /* ODB_Data */ +static int hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature = -1; /* NULL */ +static int hf_gsm_map_ms_regionalSubscriptionData = -1; /* ZoneCodeList */ +static int hf_gsm_map_ms_vbsSubscriptionData = -1; /* VBSDataList */ +static int hf_gsm_map_ms_vgcsSubscriptionData = -1; /* VGCSDataList */ +static int hf_gsm_map_ms_vlrCamelSubscriptionInfo = -1; /* VlrCamelSubscriptionInfo */ +static int hf_gsm_map_ms_BearerServiceList_item = -1; /* Ext_BearerServiceCode */ +static int hf_gsm_map_ms_TeleserviceList_item = -1; /* Ext_TeleserviceCode */ +static int hf_gsm_map_ms_odb_GeneralData = -1; /* ODB_GeneralData */ +static int hf_gsm_map_ms_odb_HPLMN_Data = -1; /* ODB_HPLMN_Data */ +static int hf_gsm_map_ms_Ext_SS_InfoList_item = -1; /* Ext_SS_Info */ +static int hf_gsm_map_ms_forwardingInfo = -1; /* Ext_ForwInfo */ +static int hf_gsm_map_ms_callBarringInfo = -1; /* Ext_CallBarInfo */ +static int hf_gsm_map_ms_cug_Info = -1; /* CUG_Info */ +static int hf_gsm_map_ms_ss_Data = -1; /* Ext_SS_Data */ +static int hf_gsm_map_ms_emlpp_Info = -1; /* EMLPP_Info */ +static int hf_gsm_map_ms_ss_Code = -1; /* SS_Code */ +static int hf_gsm_map_ms_forwardingFeatureList = -1; /* Ext_ForwFeatureList */ +static int hf_gsm_map_ms_Ext_ForwFeatureList_item = -1; /* Ext_ForwFeature */ +static int hf_gsm_map_ms_basicService = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ms_ss_Status = -1; /* Ext_SS_Status */ +static int hf_gsm_map_ms_forwardedToNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_forwardedToSubaddress = -1; /* ISDN_SubaddressString */ +static int hf_gsm_map_ms_forwardingOptions = -1; /* T_forwardingOptions */ +static int hf_gsm_map_ms_noReplyConditionTime = -1; /* Ext_NoRepCondTime */ +static int hf_gsm_map_ms_longForwardedToNumber = -1; /* FTN_AddressString */ +static int hf_gsm_map_ms_callBarringFeatureList = -1; /* Ext_CallBarFeatureList */ +static int hf_gsm_map_ms_Ext_CallBarFeatureList_item = -1; /* Ext_CallBarringFeature */ +static int hf_gsm_map_ms_cug_SubscriptionList = -1; /* CUG_SubscriptionList */ +static int hf_gsm_map_ms_cug_FeatureList = -1; /* CUG_FeatureList */ +static int hf_gsm_map_ms_CUG_SubscriptionList_item = -1; /* CUG_Subscription */ +static int hf_gsm_map_ms_cug_Index = -1; /* CUG_Index */ +static int hf_gsm_map_ms_cug_Interlock = -1; /* CUG_Interlock */ +static int hf_gsm_map_ms_intraCUG_Options = -1; /* IntraCUG_Options */ +static int hf_gsm_map_ms_basicServiceGroupList = -1; /* Ext_BasicServiceGroupList */ +static int hf_gsm_map_ms_CUG_FeatureList_item = -1; /* CUG_Feature */ +static int hf_gsm_map_ms_Ext_BasicServiceGroupList_item = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ms_preferentialCUG_Indicator = -1; /* CUG_Index */ +static int hf_gsm_map_ms_interCUG_Restrictions = -1; /* InterCUG_Restrictions */ +static int hf_gsm_map_ms_ss_SubscriptionOption = -1; /* SS_SubscriptionOption */ +static int hf_gsm_map_ms_LCS_PrivacyExceptionList_item = -1; /* LCS_PrivacyClass */ +static int hf_gsm_map_ms_notificationToMSUser = -1; /* NotificationToMSUser */ +static int hf_gsm_map_ms_externalClientList = -1; /* ExternalClientList */ +static int hf_gsm_map_ms_plmnClientList = -1; /* PLMNClientList */ +static int hf_gsm_map_ms_ext_externalClientList = -1; /* Ext_ExternalClientList */ +static int hf_gsm_map_ms_serviceTypeList = -1; /* ServiceTypeList */ +static int hf_gsm_map_ms_ExternalClientList_item = -1; /* ExternalClient */ +static int hf_gsm_map_ms_PLMNClientList_item = -1; /* LCSClientInternalID */ +static int hf_gsm_map_ms_Ext_ExternalClientList_item = -1; /* ExternalClient */ +static int hf_gsm_map_ms_clientIdentity = -1; /* LCSClientExternalID */ +static int hf_gsm_map_ms_gmlc_Restriction = -1; /* GMLC_Restriction */ +static int hf_gsm_map_ms_ServiceTypeList_item = -1; /* ServiceType */ +static int hf_gsm_map_ms_serviceTypeIdentity = -1; /* LCSServiceTypeID */ +static int hf_gsm_map_ms_MOLR_List_item = -1; /* MOLR_Class */ +static int hf_gsm_map_ms_ZoneCodeList_item = -1; /* ZoneCode */ +static int hf_gsm_map_ms_ss_List = -1; /* SS_List */ +static int hf_gsm_map_ms_regionalSubscriptionResponse = -1; /* RegionalSubscriptionResponse */ +static int hf_gsm_map_ms_basicServiceList = -1; /* BasicServiceList */ +static int hf_gsm_map_ms_regionalSubscriptionIdentifier = -1; /* ZoneCode */ +static int hf_gsm_map_ms_vbsGroupIndication = -1; /* NULL */ +static int hf_gsm_map_ms_vgcsGroupIndication = -1; /* NULL */ +static int hf_gsm_map_ms_camelSubscriptionInfoWithdraw = -1; /* NULL */ +static int hf_gsm_map_ms_gprsSubscriptionDataWithdraw = -1; /* GPRSSubscriptionDataWithdraw */ +static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature = -1; /* NULL */ +static int hf_gsm_map_ms_lsaInformationWithdraw = -1; /* LSAInformationWithdraw */ +static int hf_gsm_map_ms_gmlc_ListWithdraw = -1; /* NULL */ +static int hf_gsm_map_ms_istInformationWithdraw = -1; /* NULL */ +static int hf_gsm_map_ms_specificCSI_Withdraw = -1; /* SpecificCSI_Withdraw */ +static int hf_gsm_map_ms_chargingCharacteristicsWithdraw = -1; /* NULL */ +static int hf_gsm_map_ms_allGPRSData = -1; /* NULL */ +static int hf_gsm_map_ms_contextIdList = -1; /* ContextIdList */ +static int hf_gsm_map_ms_ContextIdList_item = -1; /* ContextId */ +static int hf_gsm_map_ms_allLSAData = -1; /* NULL */ +static int hf_gsm_map_ms_lsaIdentityList = -1; /* LSAIdentityList */ +static int hf_gsm_map_ms_LSAIdentityList_item = -1; /* LSAIdentity */ +static int hf_gsm_map_ms_BasicServiceList_item = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ms_o_CSI = -1; /* O_CSI */ +static int hf_gsm_map_ms_ss_CSI = -1; /* SS_CSI */ +static int hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ +static int hf_gsm_map_ms_tif_CSI = -1; /* NULL */ +static int hf_gsm_map_ms_m_CSI = -1; /* M_CSI */ +static int hf_gsm_map_ms_vt_CSI = -1; /* T_CSI */ +static int hf_gsm_map_ms_t_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ +static int hf_gsm_map_ms_d_CSI = -1; /* D_CSI */ +static int hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item = -1; /* MT_smsCAMELTDP_Criteria */ +static int hf_gsm_map_ms_sms_TriggerDetectionPoint = -1; /* SMS_TriggerDetectionPoint */ +static int hf_gsm_map_ms_tpdu_TypeCriterion = -1; /* TPDU_TypeCriterion */ +static int hf_gsm_map_ms_TPDU_TypeCriterion_item = -1; /* MT_SMS_TPDU_Type */ +static int hf_gsm_map_ms_dp_AnalysedInfoCriteriaList = -1; /* DP_AnalysedInfoCriteriaList */ +static int hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item = -1; /* DP_AnalysedInfoCriterium */ +static int hf_gsm_map_ms_dialledNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_defaultCallHandling = -1; /* DefaultCallHandling */ +static int hf_gsm_map_ms_ss_CamelData = -1; /* SS_CamelData */ +static int hf_gsm_map_ms_ss_EventList = -1; /* SS_EventList */ +static int hf_gsm_map_ms_SS_EventList_item = -1; /* SS_Code */ +static int hf_gsm_map_ms_o_BcsmCamelTDPDataList = -1; /* O_BcsmCamelTDPDataList */ +static int hf_gsm_map_ms_csiActive = -1; /* NULL */ +static int hf_gsm_map_ms_O_BcsmCamelTDPDataList_item = -1; /* O_BcsmCamelTDPData */ +static int hf_gsm_map_ms_o_BcsmTriggerDetectionPoint = -1; /* O_BcsmTriggerDetectionPoint */ +static int hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item = -1; /* O_BcsmCamelTDP_Criteria */ +static int hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item = -1; /* T_BCSM_CAMEL_TDP_Criteria */ +static int hf_gsm_map_ms_destinationNumberCriteria = -1; /* DestinationNumberCriteria */ +static int hf_gsm_map_ms_basicServiceCriteria = -1; /* BasicServiceCriteria */ +static int hf_gsm_map_ms_callTypeCriteria = -1; /* CallTypeCriteria */ +static int hf_gsm_map_ms_o_CauseValueCriteria = -1; /* O_CauseValueCriteria */ +static int hf_gsm_map_ms_t_BCSM_TriggerDetectionPoint = -1; /* T_BcsmTriggerDetectionPoint */ +static int hf_gsm_map_ms_t_CauseValueCriteria = -1; /* T_CauseValueCriteria */ +static int hf_gsm_map_ms_matchType = -1; /* MatchType */ +static int hf_gsm_map_ms_destinationNumberList = -1; /* DestinationNumberList */ +static int hf_gsm_map_ms_destinationNumberLengthList = -1; /* DestinationNumberLengthList */ +static int hf_gsm_map_ms_DestinationNumberList_item = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_DestinationNumberLengthList_item = -1; /* INTEGER_1_maxNumOfISDN_AddressDigits */ +static int hf_gsm_map_ms_BasicServiceCriteria_item = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ms_O_CauseValueCriteria_item = -1; /* CauseValue */ +static int hf_gsm_map_ms_T_CauseValueCriteria_item = -1; /* CauseValue */ +static int hf_gsm_map_ms_sms_CAMEL_TDP_DataList = -1; /* SMS_CAMEL_TDP_DataList */ +static int hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item = -1; /* SMS_CAMEL_TDP_Data */ +static int hf_gsm_map_ms_defaultSMS_Handling = -1; /* DefaultSMS_Handling */ +static int hf_gsm_map_ms_mobilityTriggers = -1; /* MobilityTriggers */ +static int hf_gsm_map_ms_MobilityTriggers_item = -1; /* MM_Code */ +static int hf_gsm_map_ms_t_BcsmCamelTDPDataList = -1; /* T_BcsmCamelTDPDataList */ +static int hf_gsm_map_ms_T_BcsmCamelTDPDataList_item = -1; /* T_BcsmCamelTDPData */ +static int hf_gsm_map_ms_t_BcsmTriggerDetectionPoint = -1; /* T_BcsmTriggerDetectionPoint */ +static int hf_gsm_map_ms_ggsn_Address = -1; /* GSN_Address */ +static int hf_gsm_map_ms_ggsn_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_mobileNotReachableReason = -1; /* AbsentSubscriberDiagnosticSM */ +static int hf_gsm_map_ms_hlr_List = -1; /* HLR_List */ +static int hf_gsm_map_ms_msNotReachable = -1; /* NULL */ +static int hf_gsm_map_ms_VBSDataList_item = -1; /* VoiceBroadcastData */ +static int hf_gsm_map_ms_VGCSDataList_item = -1; /* VoiceGroupCallData */ +static int hf_gsm_map_ms_groupId = -1; /* GroupId */ +static int hf_gsm_map_ms_additionalSubscriptions = -1; /* AdditionalSubscriptions */ +static int hf_gsm_map_ms_additionalInfo = -1; /* AdditionalInfo */ +static int hf_gsm_map_ms_longGroupId = -1; /* Long_GroupId */ +static int hf_gsm_map_ms_groupid = -1; /* GroupId */ +static int hf_gsm_map_ms_broadcastInitEntitlement = -1; /* NULL */ +static int hf_gsm_map_ms_requestedInfo = -1; /* RequestedInfo */ +static int hf_gsm_map_ms_subscriberInfo = -1; /* SubscriberInfo */ +static int hf_gsm_map_ms_locationInformation = -1; /* LocationInformation */ +static int hf_gsm_map_ms_subscriberState = -1; /* SubscriberState */ +static int hf_gsm_map_ms_locationInformationGPRS = -1; /* LocationInformationGPRS */ +static int hf_gsm_map_ms_ps_SubscriberState = -1; /* PS_SubscriberState */ +static int hf_gsm_map_ms_ms_Classmark2 = -1; /* MS_Classmark2 */ +static int hf_gsm_map_ms_gprs_MS_Class = -1; /* GPRSMSClass */ +static int hf_gsm_map_ms_mnpInfoRes = -1; /* MNPInfoRes */ +static int hf_gsm_map_ms_routeingNumber = -1; /* RouteingNumber */ +static int hf_gsm_map_ms_numberPortabilityStatus = -1; /* NumberPortabilityStatus */ +static int hf_gsm_map_ms_mSNetworkCapability = -1; /* MSNetworkCapability */ +static int hf_gsm_map_ms_mSRadioAccessCapability = -1; /* MSRadioAccessCapability */ +static int hf_gsm_map_ms_locationInformation_01 = -1; /* NULL */ +static int hf_gsm_map_ms_subscriberState_01 = -1; /* NULL */ +static int hf_gsm_map_ms_currentLocation = -1; /* NULL */ +static int hf_gsm_map_ms_requestedDomain = -1; /* DomainType */ +static int hf_gsm_map_ms_imei_01 = -1; /* NULL */ +static int hf_gsm_map_ms_ms_classmark = -1; /* NULL */ +static int hf_gsm_map_ms_mnpRequestedInfo = -1; /* NULL */ +static int hf_gsm_map_ms_ageOfLocationInformation = -1; /* AgeOfLocationInformation */ +static int hf_gsm_map_ms_geographicalInformation = -1; /* GeographicalInformation */ +static int hf_gsm_map_ms_vlr_number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ms_locationNumber = -1; /* LocationNumber */ +static int hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */ +static int hf_gsm_map_ms_selectedLSA_Id = -1; /* LSAIdentity */ +static int hf_gsm_map_ms_geodeticInformation = -1; /* GeodeticInformation */ +static int hf_gsm_map_ms_currentLocationRetrieved = -1; /* NULL */ +static int hf_gsm_map_ms_sai_Present = -1; /* NULL */ +static int hf_gsm_map_ms_routeingAreaIdentity = -1; /* RAIdentity */ +static int hf_gsm_map_ms_selectedLSAIdentity = -1; /* LSAIdentity */ +static int hf_gsm_map_ms_assumedIdle = -1; /* NULL */ +static int hf_gsm_map_ms_camelBusy = -1; /* NULL */ +static int hf_gsm_map_ms_netDetNotReachable = -1; /* NotReachableReason */ +static int hf_gsm_map_ms_notProvidedFromVLR = -1; /* NULL */ +static int hf_gsm_map_ms_notProvidedFromSGSN = -1; /* NULL */ +static int hf_gsm_map_ms_ps_Detached = -1; /* NULL */ +static int hf_gsm_map_ms_ps_AttachedNotReachableForPaging = -1; /* NULL */ +static int hf_gsm_map_ms_ps_AttachedReachableForPaging = -1; /* NULL */ +static int hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging = -1; /* PDP_ContextInfoList */ +static int hf_gsm_map_ms_ps_PDP_ActiveReachableForPaging = -1; /* PDP_ContextInfoList */ +static int hf_gsm_map_ms_PDP_ContextInfoList_item = -1; /* PDP_ContextInfo */ +static int hf_gsm_map_ms_pdp_ContextIdentifier = -1; /* ContextId */ +static int hf_gsm_map_ms_pdp_ContextActive = -1; /* NULL */ +static int hf_gsm_map_ms_apn_Subscribed = -1; /* APN */ +static int hf_gsm_map_ms_apn_InUse = -1; /* APN */ +static int hf_gsm_map_ms_nsapi = -1; /* NSAPI */ +static int hf_gsm_map_ms_transactionId = -1; /* TransactionId */ +static int hf_gsm_map_ms_teid_ForGnAndGp = -1; /* TEID */ +static int hf_gsm_map_ms_teid_ForIu = -1; /* TEID */ +static int hf_gsm_map_ms_qos_Subscribed_01 = -1; /* Ext_QoS_Subscribed */ +static int hf_gsm_map_ms_qos_Requested = -1; /* Ext_QoS_Subscribed */ +static int hf_gsm_map_ms_qos_Negotiated = -1; /* Ext_QoS_Subscribed */ +static int hf_gsm_map_ms_chargingId = -1; /* GPRSChargingID */ +static int hf_gsm_map_ms_chargingCharacteristics = -1; /* ChargingCharacteristics */ +static int hf_gsm_map_ms_rnc_Address = -1; /* GSN_Address */ +static int hf_gsm_map_ms_qos2_Subscribed = -1; /* Ext2_QoS_Subscribed */ +static int hf_gsm_map_ms_qos2_Requested = -1; /* Ext2_QoS_Subscribed */ +static int hf_gsm_map_ms_qos2_Negotiated = -1; /* Ext2_QoS_Subscribed */ +static int hf_gsm_map_ms_subscriberIdentity = -1; /* SubscriberIdentity */ +static int hf_gsm_map_ms_requestedSubscriptionInfo = -1; /* RequestedSubscriptionInfo */ +static int hf_gsm_map_ms_callForwardingData = -1; /* CallForwardingData */ +static int hf_gsm_map_ms_callBarringData = -1; /* CallBarringData */ +static int hf_gsm_map_ms_odb_Info = -1; /* ODB_Info */ +static int hf_gsm_map_ms_camel_SubscriptionInfo = -1; /* CAMEL_SubscriptionInfo */ +static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ms_offeredCamel4CSIsInVLR = -1; /* OfferedCamel4CSIs */ +static int hf_gsm_map_ms_offeredCamel4CSIsInSGSN = -1; /* OfferedCamel4CSIs */ +static int hf_gsm_map_ms_msisdn_BS_List = -1; /* MSISDN_BS_List */ +static int hf_gsm_map_ms_requestedSS_Info = -1; /* SS_ForBS_Code */ +static int hf_gsm_map_ms_odb = -1; /* NULL */ +static int hf_gsm_map_ms_requestedCAMEL_SubscriptionInfo = -1; /* RequestedCAMEL_SubscriptionInfo */ +static int hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01 = -1; /* NULL */ +static int hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01 = -1; /* NULL */ +static int hf_gsm_map_ms_additionalRequestedCAMEL_SubscriptionInfo = -1; /* AdditionalRequestedCAMEL_SubscriptionInfo */ +static int hf_gsm_map_ms_msisdn_BS_List_01 = -1; /* NULL */ +static int hf_gsm_map_ms_MSISDN_BS_List_item = -1; /* MSISDN_BS */ +static int hf_gsm_map_ms_password = -1; /* Password */ +static int hf_gsm_map_ms_wrongPasswordAttemptsCounter = -1; /* WrongPasswordAttemptsCounter */ +static int hf_gsm_map_ms_t_CSI = -1; /* T_CSI */ +static int hf_gsm_map_ms_vt_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ +static int hf_gsm_map_ms_tif_CSI_NotificationToCSE = -1; /* NULL */ +static int hf_gsm_map_ms_specificCSIDeletedList = -1; /* SpecificCSI_Withdraw */ +static int hf_gsm_map_ms_o_IM_CSI = -1; /* O_CSI */ +static int hf_gsm_map_ms_o_IM_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ +static int hf_gsm_map_ms_d_IM_CSI = -1; /* D_CSI */ +static int hf_gsm_map_ms_vt_IM_CSI = -1; /* T_CSI */ +static int hf_gsm_map_ms_vt_IM_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ +static int hf_gsm_map_ms_modificationRequestFor_CF_Info = -1; /* ModificationRequestFor_CF_Info */ +static int hf_gsm_map_ms_modificationRequestFor_CB_Info = -1; /* ModificationRequestFor_CB_Info */ +static int hf_gsm_map_ms_modificationRequestFor_CSI = -1; /* ModificationRequestFor_CSI */ +static int hf_gsm_map_ms_modificationRequestFor_ODB_data = -1; /* ModificationRequestFor_ODB_data */ +static int hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data = -1; /* ModificationRequestFor_IP_SM_GW_Data */ +static int hf_gsm_map_ms_ss_InfoFor_CSE = -1; /* Ext_SS_InfoFor_CSE */ +static int hf_gsm_map_ms_forwardedToNumber_01 = -1; /* AddressString */ +static int hf_gsm_map_ms_modifyNotificationToCSE = -1; /* ModificationInstruction */ +static int hf_gsm_map_ms_odb_data = -1; /* ODB_Data */ +static int hf_gsm_map_ms_requestedCamel_SubscriptionInfo = -1; /* RequestedCAMEL_SubscriptionInfo */ +static int hf_gsm_map_ms_modifyCSI_State = -1; /* ModificationInstruction */ +static int hf_gsm_map_ms_modifyRegistrationStatus = -1; /* ModificationInstruction */ +static int hf_gsm_map_ms_forwardingInfoFor_CSE = -1; /* Ext_ForwardingInfoFor_CSE */ +static int hf_gsm_map_ms_callBarringInfoFor_CSE = -1; /* Ext_CallBarringInfoFor_CSE */ +static int hf_gsm_map_ms_allInformationSent = -1; /* NULL */ +static int hf_gsm_map_ms_eventMet = -1; /* MM_Code */ +static int hf_gsm_map_ms_supportedCAMELPhases = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ms_offeredCamel4Functionalities = -1; /* OfferedCamel4Functionalities */ +static int hf_gsm_map_ms_naea_PreferredCI = -1; /* NAEA_PreferredCI */ +static int hf_gsm_map_ms_gprsSubscriptionData = -1; /* GPRSSubscriptionData */ +static int hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature = -1; /* NULL */ +static int hf_gsm_map_ms_networkAccessMode = -1; /* NetworkAccessMode */ +static int hf_gsm_map_ms_lsaInformation = -1; /* LSAInformation */ +static int hf_gsm_map_ms_lmu_Indicator = -1; /* NULL */ +static int hf_gsm_map_ms_lcsInformation = -1; /* LCSInformation */ +static int hf_gsm_map_ms_istAlertTimer = -1; /* IST_AlertTimerValue */ +static int hf_gsm_map_ms_superChargerSupportedInHLR = -1; /* AgeIndicator */ +static int hf_gsm_map_ms_mc_SS_Info = -1; /* MC_SS_Info */ +static int hf_gsm_map_ms_cs_AllocationRetentionPriority = -1; /* CS_AllocationRetentionPriority */ +static int hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo = -1; /* SGSN_CAMEL_SubscriptionInfo */ +static int hf_gsm_map_ms_accessRestrictionData = -1; /* AccessRestrictionData */ +/* named bits */ +static int hf_gsm_map_ms_SupportedRAT_Types_utran = -1; +static int hf_gsm_map_ms_SupportedRAT_Types_geran = -1; +static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1 = -1; +static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2 = -1; +static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3 = -1; +static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4 = -1; +static int hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5 = -1; +static int hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus = -1; +static int hf_gsm_map_ms_RequestedEquipmentInfo_bmuef = -1; +static int hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed = -1; +static int hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed = -1; +static int hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_allECT_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred = -1; +static int hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred = -1; +static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1 = -1; +static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2 = -1; +static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3 = -1; +static int hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4 = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI = -1; +static int hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI = -1; +static int hf_gsm_map_ms_SupportedCamelPhases_phase1 = -1; +static int hf_gsm_map_ms_SupportedCamelPhases_phase2 = -1; +static int hf_gsm_map_ms_SupportedCamelPhases_phase3 = -1; +static int hf_gsm_map_ms_SupportedCamelPhases_phase4 = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_o_csi = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_d_csi = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_t_csi = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi = -1; +static int hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_playTone = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP = -1; +static int hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation = -1; +static int hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest = -1; +static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest = -1; +static int hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset = -1; + +/* --- Module MAP-CH-DataTypes --- --- --- */ + +static int hf_gsm_map_ch_cug_Interlock = -1; /* CUG_Interlock */ +static int hf_gsm_map_ch_cug_OutgoingAccess = -1; /* NULL */ +static int hf_gsm_map_ch_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_ch_msisdn = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_cug_CheckInfo = -1; /* CUG_CheckInfo */ +static int hf_gsm_map_ch_numberOfForwarding = -1; /* NumberOfForwarding */ +static int hf_gsm_map_ch_interrogationType = -1; /* InterrogationType */ +static int hf_gsm_map_ch_or_Interrogation = -1; /* NULL */ +static int hf_gsm_map_ch_or_Capability = -1; /* OR_Phase */ +static int hf_gsm_map_ch_gmsc_OrGsmSCF_Address = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_callReferenceNumber = -1; /* CallReferenceNumber */ +static int hf_gsm_map_ch_forwardingReason = -1; /* ForwardingReason */ +static int hf_gsm_map_ch_basicServiceGroup = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ch_networkSignalInfo = -1; /* ExternalSignalInfo */ +static int hf_gsm_map_ch_camelInfo = -1; /* CamelInfo */ +static int hf_gsm_map_ch_suppressionOfAnnouncement = -1; /* SuppressionOfAnnouncement */ +static int hf_gsm_map_ch_alertingPattern = -1; /* AlertingPattern */ +static int hf_gsm_map_ch_ccbs_Call = -1; /* NULL */ +static int hf_gsm_map_ch_supportedCCBS_Phase = -1; /* SupportedCCBS_Phase */ +static int hf_gsm_map_ch_additionalSignalInfo = -1; /* Ext_ExternalSignalInfo */ +static int hf_gsm_map_ch_istSupportIndicator = -1; /* IST_SupportIndicator */ +static int hf_gsm_map_ch_pre_pagingSupported = -1; /* NULL */ +static int hf_gsm_map_ch_callDiversionTreatmentIndicator = -1; /* CallDiversionTreatmentIndicator */ +static int hf_gsm_map_ch_longFTN_Supported = -1; /* NULL */ +static int hf_gsm_map_ch_suppress_VT_CSI = -1; /* NULL */ +static int hf_gsm_map_ch_suppressIncomingCallBarring = -1; /* NULL */ +static int hf_gsm_map_ch_gsmSCF_InitiatedCall = -1; /* NULL */ +static int hf_gsm_map_ch_basicServiceGroup2 = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ch_networkSignalInfo2 = -1; /* ExternalSignalInfo */ +static int hf_gsm_map_ch_suppressMTSS = -1; /* SuppressMTSS */ +static int hf_gsm_map_ch_imsi = -1; /* IMSI */ +static int hf_gsm_map_ch_extendedRoutingInfo = -1; /* ExtendedRoutingInfo */ +static int hf_gsm_map_ch_cugSubscriptionFlag = -1; /* NULL */ +static int hf_gsm_map_ch_subscriberInfo = -1; /* SubscriberInfo */ +static int hf_gsm_map_ch_ss_List = -1; /* SS_List */ +static int hf_gsm_map_ch_basicService = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ch_forwardingInterrogationRequired = -1; /* NULL */ +static int hf_gsm_map_ch_vmsc_Address = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_naea_PreferredCI = -1; /* NAEA_PreferredCI */ +static int hf_gsm_map_ch_ccbs_Indicators = -1; /* CCBS_Indicators */ +static int hf_gsm_map_ch_numberPortabilityStatus = -1; /* NumberPortabilityStatus */ +static int hf_gsm_map_ch_istAlertTimer = -1; /* IST_AlertTimerValue */ +static int hf_gsm_map_ch_supportedCamelPhasesInVMSC = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ch_offeredCamel4CSIsInVMSC = -1; /* OfferedCamel4CSIs */ +static int hf_gsm_map_ch_routingInfo2 = -1; /* RoutingInfo */ +static int hf_gsm_map_ch_ss_List2 = -1; /* SS_List */ +static int hf_gsm_map_ch_basicService2 = -1; /* Ext_BasicServiceCode */ +static int hf_gsm_map_ch_allowedServices = -1; /* AllowedServices */ +static int hf_gsm_map_ch_unavailabilityCause = -1; /* UnavailabilityCause */ +static int hf_gsm_map_ch_releaseResourcesSupported = -1; /* NULL */ +static int hf_gsm_map_ch_gsm_BearerCapability = -1; /* ExternalSignalInfo */ +static int hf_gsm_map_ch_ccbs_Possible = -1; /* NULL */ +static int hf_gsm_map_ch_keepCCBS_CallIndicator = -1; /* NULL */ +static int hf_gsm_map_ch_roamingNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_forwardingData = -1; /* ForwardingData */ +static int hf_gsm_map_ch_forwardedToNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_forwardedToSubaddress = -1; /* ISDN_SubaddressString */ +static int hf_gsm_map_ch_forwardingOptions = -1; /* ForwardingOptions */ +static int hf_gsm_map_ch_longForwardedToNumber = -1; /* FTN_AddressString */ +static int hf_gsm_map_ch_msc_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_lmsi = -1; /* LMSI */ +static int hf_gsm_map_ch_gmsc_Address = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ch_orNotSupportedInGMSC = -1; /* NULL */ +static int hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode = -1; /* OfferedCamel4CSIs */ +static int hf_gsm_map_ch_o_CSI = -1; /* O_CSI */ +static int hf_gsm_map_ch_uu_Data = -1; /* UU_Data */ +static int hf_gsm_map_ch_allInformationSent = -1; /* NULL */ +static int hf_gsm_map_ch_d_csi = -1; /* D_CSI */ +static int hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ +static int hf_gsm_map_ch_uuIndicator = -1; /* UUIndicator */ +static int hf_gsm_map_ch_uui = -1; /* UUI */ +static int hf_gsm_map_ch_uusCFInteraction = -1; /* NULL */ +static int hf_gsm_map_ch_supportedCamelPhases = -1; /* SupportedCamelPhases */ +static int hf_gsm_map_ch_suppress_T_CSI = -1; /* NULL */ +static int hf_gsm_map_ch_offeredCamel4CSIs = -1; /* OfferedCamel4CSIs */ +static int hf_gsm_map_ch_routingInfo = -1; /* RoutingInfo */ +static int hf_gsm_map_ch_camelRoutingInfo = -1; /* CamelRoutingInfo */ +static int hf_gsm_map_ch_gmscCamelSubscriptionInfo = -1; /* GmscCamelSubscriptionInfo */ +static int hf_gsm_map_ch_t_CSI = -1; /* T_CSI */ +static int hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList = -1; /* O_BcsmCamelTDPCriteriaList */ +static int hf_gsm_map_ch_t_BCSM_CAMEL_TDP_CriteriaList = -1; /* T_BCSM_CAMEL_TDP_CriteriaList */ +static int hf_gsm_map_ch_ccbs_Monitoring = -1; /* ReportingState */ +static int hf_gsm_map_ch_ccbs_SubscriberStatus = -1; /* CCBS_SubscriberStatus */ +static int hf_gsm_map_ch_eventReportData = -1; /* EventReportData */ +static int hf_gsm_map_ch_callReportdata = -1; /* CallReportData */ +static int hf_gsm_map_ch_monitoringMode = -1; /* MonitoringMode */ +static int hf_gsm_map_ch_callOutcome = -1; /* CallOutcome */ +static int hf_gsm_map_ch_callInfo = -1; /* ExternalSignalInfo */ +static int hf_gsm_map_ch_ccbs_Feature = -1; /* CCBS_Feature */ +static int hf_gsm_map_ch_translatedB_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_ch_replaceB_Number = -1; /* NULL */ +static int hf_gsm_map_ch_ruf_Outcome = -1; /* RUF_Outcome */ +static int hf_gsm_map_ch_istInformationWithdraw = -1; /* NULL */ +static int hf_gsm_map_ch_callTerminationIndicator = -1; /* CallTerminationIndicator */ +static int hf_gsm_map_ch_msrn = -1; /* ISDN_AddressString */ +/* named bits */ +static int hf_gsm_map_ch_SuppressMTSS_suppressCUG = -1; +static int hf_gsm_map_ch_SuppressMTSS_suppressCCBS = -1; +static int hf_gsm_map_ch_AllowedServices_firstServiceAllowed = -1; +static int hf_gsm_map_ch_AllowedServices_secondServiceAllowed = -1; + +/* --- Module MAP-LCS-DataTypes --- --- --- */ + +static int hf_gsm_map_lcs_mlcNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_lcs_targetMS = -1; /* SubscriberIdentity */ +static int hf_gsm_map_lcs_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_lcs_lcsLocationInfo = -1; /* LCSLocationInfo */ +static int hf_gsm_map_lcs_v_gmlc_Address = -1; /* GSN_Address */ +static int hf_gsm_map_lcs_h_gmlc_Address = -1; /* GSN_Address */ +static int hf_gsm_map_lcs_ppr_Address = -1; /* GSN_Address */ +static int hf_gsm_map_lcs_additional_v_gmlc_Address = -1; /* GSN_Address */ +static int hf_gsm_map_lcs_networkNode_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_lcs_lmsi = -1; /* LMSI */ +static int hf_gsm_map_lcs_gprsNodeIndicator = -1; /* NULL */ +static int hf_gsm_map_lcs_additional_Number = -1; /* Additional_Number */ +static int hf_gsm_map_lcs_supportedLCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */ +static int hf_gsm_map_lcs_additional_LCS_CapabilitySets = -1; /* SupportedLCS_CapabilitySets */ +static int hf_gsm_map_lcs_locationType = -1; /* LocationType */ +static int hf_gsm_map_lcs_mlc_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_map_lcs_lcs_ClientID = -1; /* LCS_ClientID */ +static int hf_gsm_map_lcs_privacyOverride = -1; /* NULL */ +static int hf_gsm_map_lcs_imsi = -1; /* IMSI */ +static int hf_gsm_map_lcs_msisdn = -1; /* ISDN_AddressString */ +static int hf_gsm_map_lcs_imei = -1; /* IMEI */ +static int hf_gsm_map_lcs_lcs_Priority = -1; /* LCS_Priority */ +static int hf_gsm_map_lcs_lcs_QoS = -1; /* LCS_QoS */ +static int hf_gsm_map_lcs_supportedGADShapes = -1; /* SupportedGADShapes */ +static int hf_gsm_map_lcs_lcs_ReferenceNumber = -1; /* LCS_ReferenceNumber */ +static int hf_gsm_map_lcs_lcsServiceTypeID = -1; /* LCSServiceTypeID */ +static int hf_gsm_map_lcs_lcsCodeword = -1; /* LCSCodeword */ +static int hf_gsm_map_lcs_lcs_PrivacyCheck = -1; /* LCS_PrivacyCheck */ +static int hf_gsm_map_lcs_areaEventInfo = -1; /* AreaEventInfo */ +static int hf_gsm_map_lcs_mo_lrShortCircuitIndicator = -1; /* NULL */ +static int hf_gsm_map_lcs_periodicLDRInfo = -1; /* PeriodicLDRInfo */ +static int hf_gsm_map_lcs_reportingPLMNList = -1; /* ReportingPLMNList */ +static int hf_gsm_map_lcs_locationEstimateType = -1; /* LocationEstimateType */ +static int hf_gsm_map_lcs_deferredLocationEventType = -1; /* DeferredLocationEventType */ +static int hf_gsm_map_lcs_lcsClientType = -1; /* LCSClientType */ +static int hf_gsm_map_lcs_lcsClientExternalID = -1; /* LCSClientExternalID */ +static int hf_gsm_map_lcs_lcsClientDialedByMS = -1; /* AddressString */ +static int hf_gsm_map_lcs_lcsClientInternalID = -1; /* LCSClientInternalID */ +static int hf_gsm_map_lcs_lcsClientName = -1; /* LCSClientName */ +static int hf_gsm_map_lcs_lcsAPN = -1; /* APN */ +static int hf_gsm_map_lcs_lcsRequestorID = -1; /* LCSRequestorID */ +static int hf_gsm_map_lcs_dataCodingScheme = -1; /* USSD_DataCodingScheme */ +static int hf_gsm_map_lcs_nameString = -1; /* NameString */ +static int hf_gsm_map_lcs_lcs_FormatIndicator = -1; /* LCS_FormatIndicator */ +static int hf_gsm_map_lcs_requestorIDString = -1; /* RequestorIDString */ +static int hf_gsm_map_lcs_horizontal_accuracy = -1; /* Horizontal_Accuracy */ +static int hf_gsm_map_lcs_verticalCoordinateRequest = -1; /* NULL */ +static int hf_gsm_map_lcs_vertical_accuracy = -1; /* Vertical_Accuracy */ +static int hf_gsm_map_lcs_responseTime = -1; /* ResponseTime */ +static int hf_gsm_map_lcs_velocityRequest = -1; /* NULL */ +static int hf_gsm_map_lcs_responseTimeCategory = -1; /* ResponseTimeCategory */ +static int hf_gsm_map_lcs_lcsCodewordString = -1; /* LCSCodewordString */ +static int hf_gsm_map_lcs_callSessionUnrelated = -1; /* PrivacyCheckRelatedAction */ +static int hf_gsm_map_lcs_callSessionRelated = -1; /* PrivacyCheckRelatedAction */ +static int hf_gsm_map_lcs_areaDefinition = -1; /* AreaDefinition */ +static int hf_gsm_map_lcs_occurrenceInfo = -1; /* OccurrenceInfo */ +static int hf_gsm_map_lcs_intervalTime = -1; /* IntervalTime */ +static int hf_gsm_map_lcs_areaList = -1; /* AreaList */ +static int hf_gsm_map_lcs_AreaList_item = -1; /* Area */ +static int hf_gsm_map_lcs_areaType = -1; /* AreaType */ +static int hf_gsm_map_lcs_areaIdentification = -1; /* AreaIdentification */ +static int hf_gsm_map_lcs_reportingAmount = -1; /* ReportingAmount */ +static int hf_gsm_map_lcs_reportingInterval = -1; /* ReportingInterval */ +static int hf_gsm_map_lcs_plmn_ListPrioritized = -1; /* NULL */ +static int hf_gsm_map_lcs_plmn_List = -1; /* PLMNList */ +static int hf_gsm_map_lcs_PLMNList_item = -1; /* ReportingPLMN */ +static int hf_gsm_map_lcs_plmn_Id = -1; /* PLMN_Id */ +static int hf_gsm_map_lcs_ran_Technology = -1; /* RAN_Technology */ +static int hf_gsm_map_lcs_ran_PeriodicLocationSupport = -1; /* NULL */ +static int hf_gsm_map_lcs_locationEstimate = -1; /* Ext_GeographicalInformation */ +static int hf_gsm_map_lcs_ageOfLocationEstimate = -1; /* AgeOfLocationInformation */ +static int hf_gsm_map_lcs_add_LocationEstimate = -1; /* Add_GeographicalInformation */ +static int hf_gsm_map_lcs_deferredmt_lrResponseIndicator = -1; /* NULL */ +static int hf_gsm_map_lcs_geranPositioningData = -1; /* PositioningDataInformation */ +static int hf_gsm_map_lcs_utranPositioningData = -1; /* UtranPositioningDataInfo */ +static int hf_gsm_map_lcs_cellIdOrSai = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */ +static int hf_gsm_map_lcs_sai_Present = -1; /* NULL */ +static int hf_gsm_map_lcs_accuracyFulfilmentIndicator = -1; /* AccuracyFulfilmentIndicator */ +static int hf_gsm_map_lcs_velocityEstimate = -1; /* VelocityEstimate */ +static int hf_gsm_map_lcs_lcs_Event = -1; /* LCS_Event */ +static int hf_gsm_map_lcs_na_ESRD = -1; /* ISDN_AddressString */ +static int hf_gsm_map_lcs_na_ESRK = -1; /* ISDN_AddressString */ +static int hf_gsm_map_lcs_slr_ArgExtensionContainer = -1; /* SLR_ArgExtensionContainer */ +static int hf_gsm_map_lcs_deferredmt_lrData = -1; /* Deferredmt_lrData */ +static int hf_gsm_map_lcs_pseudonymIndicator = -1; /* NULL */ +static int hf_gsm_map_lcs_sequenceNumber = -1; /* SequenceNumber */ +static int hf_gsm_map_lcs_terminationCause = -1; /* TerminationCause */ +/* named bits */ +static int hf_gsm_map_lcs_DeferredLocationEventType_msAvailable = -1; +static int hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea = -1; +static int hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea = -1; +static int hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea = -1; +static int hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_polygon = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid = -1; +static int hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc = -1; + +/* --- Module MAP-GR-DataTypes --- --- --- */ + +static int hf_gsm_map_gr_teleservice = -1; /* Ext_TeleserviceCode */ +static int hf_gsm_map_gr_asciCallReference = -1; /* ASCI_CallReference */ +static int hf_gsm_map_gr_codec_Info = -1; /* CODEC_Info */ +static int hf_gsm_map_gr_cipheringAlgorithm = -1; /* CipheringAlgorithm */ +static int hf_gsm_map_gr_groupKeyNumber_Vk_Id = -1; /* GroupKeyNumber */ +static int hf_gsm_map_gr_groupKey = -1; /* Kc */ +static int hf_gsm_map_gr_priority = -1; /* EMLPP_Priority */ +static int hf_gsm_map_gr_uplinkFree = -1; /* NULL */ +static int hf_gsm_map_gr_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_gr_vstk = -1; /* VSTK */ +static int hf_gsm_map_gr_vstk_rand = -1; /* VSTK_RAND */ +static int hf_gsm_map_gr_groupCallNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_map_gr_imsi = -1; /* IMSI */ +static int hf_gsm_map_gr_talkerPriority = -1; /* TalkerPriority */ +static int hf_gsm_map_gr_additionalInfo = -1; /* AdditionalInfo */ +static int hf_gsm_map_gr_uplinkRequestAck = -1; /* NULL */ +static int hf_gsm_map_gr_uplinkReleaseIndication = -1; /* NULL */ +static int hf_gsm_map_gr_uplinkRejectCommand = -1; /* NULL */ +static int hf_gsm_map_gr_uplinkSeizedCommand = -1; /* NULL */ +static int hf_gsm_map_gr_uplinkReleaseCommand = -1; /* NULL */ +static int hf_gsm_map_gr_stateAttributes = -1; /* StateAttributes */ +static int hf_gsm_map_gr_emergencyModeResetCommandFlag = -1; /* NULL */ +static int hf_gsm_map_gr_sm_RP_UI = -1; /* SignalInfo */ +static int hf_gsm_map_gr_notificationData = -1; /* SignalInfo */ +static int hf_gsm_map_gr_uplinkRequest = -1; /* NULL */ +static int hf_gsm_map_gr_releaseGroupCall = -1; /* NULL */ +static int hf_gsm_map_gr_downlinkAttached = -1; /* NULL */ +static int hf_gsm_map_gr_uplinkAttached = -1; /* NULL */ +static int hf_gsm_map_gr_dualCommunication = -1; /* NULL */ +static int hf_gsm_map_gr_callOriginator = -1; /* NULL */ +static int hf_gsm_map_gr_requestedInfo = -1; /* RequestedInfo */ +static int hf_gsm_map_gr_groupId = -1; /* Long_GroupId */ +static int hf_gsm_map_gr_cellId = -1; /* GlobalCellId */ +static int hf_gsm_map_gr_tmsi = -1; /* TMSI */ +static int hf_gsm_map_gr_cksn = -1; /* Cksn */ +static int hf_gsm_map_gr_anchorMSC_Address = -1; /* ISDN_AddressString */ +static int hf_gsm_map_gr_additionalSubscriptions = -1; /* AdditionalSubscriptions */ +static int hf_gsm_map_gr_kc = -1; /* Kc */ + +/* --- Module MAP-DialogueInformation --- --- --- */ + +static int hf_gsm_map_dialogue_MAP_DialoguePDU_PDU = -1; /* MAP_DialoguePDU */ +static int hf_gsm_map_dialogue_map_open = -1; /* MAP_OpenInfo */ +static int hf_gsm_map_dialogue_map_accept = -1; /* MAP_AcceptInfo */ +static int hf_gsm_map_dialogue_map_close = -1; /* MAP_CloseInfo */ +static int hf_gsm_map_dialogue_map_refuse = -1; /* MAP_RefuseInfo */ +static int hf_gsm_map_dialogue_map_userAbort = -1; /* MAP_UserAbortInfo */ +static int hf_gsm_map_dialogue_map_providerAbort = -1; /* MAP_ProviderAbortInfo */ +static int hf_gsm_map_dialogue_destinationReference = -1; /* AddressString */ +static int hf_gsm_map_dialogue_originationReference = -1; /* AddressString */ +static int hf_gsm_map_dialogue_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_map_dialogue_reason = -1; /* Reason */ +static int hf_gsm_map_dialogue_alternativeApplicationContext = -1; /* OBJECT_IDENTIFIER */ +static int hf_gsm_map_dialogue_map_UserAbortChoice = -1; /* MAP_UserAbortChoice */ +static int hf_gsm_map_dialogue_userSpecificReason = -1; /* NULL */ +static int hf_gsm_map_dialogue_userResourceLimitation = -1; /* NULL */ +static int hf_gsm_map_dialogue_resourceUnavailable = -1; /* ResourceUnavailableReason */ +static int hf_gsm_map_dialogue_applicationProcedureCancellation = -1; /* ProcedureCancellationReason */ +static int hf_gsm_map_dialogue_map_ProviderAbortReason = -1; /* MAP_ProviderAbortReason */ + +/* --- Module DummyMAP --- --- --- */ + +static int hf_gsm_old_Component_PDU = -1; /* Component */ +static int hf_gsm_old_invoke = -1; /* Invoke */ +static int hf_gsm_old_returnResultLast = -1; /* ReturnResult */ +static int hf_gsm_old_returnError = -1; /* ReturnError */ +static int hf_gsm_old_reject = -1; /* Reject */ +static int hf_gsm_old_returnResultNotLast = -1; /* ReturnResult */ +static int hf_gsm_old_invokeID = -1; /* InvokeIdType */ +static int hf_gsm_old_linkedID = -1; /* InvokeIdType */ +static int hf_gsm_old_opCode = -1; /* MAP_OPERATION */ +static int hf_gsm_old_invokeparameter = -1; /* InvokeParameter */ +static int hf_gsm_old_resultretres = -1; /* T_resultretres */ +static int hf_gsm_old_returnparameter = -1; /* ReturnResultParameter */ +static int hf_gsm_old_errorCode = -1; /* MAP_ERROR */ +static int hf_gsm_old_parameter = -1; /* ReturnErrorParameter */ +static int hf_gsm_old_invokeIDRej = -1; /* T_invokeIDRej */ +static int hf_gsm_old_derivable = -1; /* InvokeIdType */ +static int hf_gsm_old_not_derivable = -1; /* NULL */ +static int hf_gsm_old_problem = -1; /* T_problem */ +static int hf_gsm_old_generalProblem = -1; /* GeneralProblem */ +static int hf_gsm_old_invokeProblem = -1; /* InvokeProblem */ +static int hf_gsm_old_returnResultProblem = -1; /* ReturnResultProblem */ +static int hf_gsm_old_returnErrorProblem = -1; /* ReturnErrorProblem */ +static int hf_gsm_old_localValue = -1; /* OperationLocalvalue */ +static int hf_gsm_old_globalValue = -1; /* OBJECT_IDENTIFIER */ +static int hf_gsm_old_localValue_01 = -1; /* LocalErrorcode */ +static int hf_gsm_old_protocolId = -1; /* ProtocolId */ +static int hf_gsm_old_signalInfo = -1; /* SignalInfo */ +static int hf_gsm_old_extensionContainer = -1; /* ExtensionContainer */ +static int hf_gsm_old_imsi = -1; /* IMSI */ +static int hf_gsm_old_imsi_WithLMSI = -1; /* IMSI_WithLMSI */ +static int hf_gsm_old_gsm_BearerCapability = -1; /* ExternalSignalInfo */ +static int hf_gsm_old_isdn_BearerCapability = -1; /* ExternalSignalInfo */ +static int hf_gsm_old_call_Direction = -1; /* CallDirection */ +static int hf_gsm_old_b_Subscriber_Address = -1; /* ISDN_AddressString */ +static int hf_gsm_old_chosenChannel = -1; /* ExternalSignalInfo */ +static int hf_gsm_old_lowerLayerCompatibility = -1; /* ExternalSignalInfo */ +static int hf_gsm_old_highLayerCompatibility = -1; /* ExternalSignalInfo */ +static int hf_gsm_old_sIWFSNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_old_vlr_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_old_targetCellId = -1; /* GlobalCellId */ +static int hf_gsm_old_ho_NumberNotRequired = -1; /* NULL */ +static int hf_gsm_old_bss_APDU = -1; /* Bss_APDU */ +static int hf_gsm_old_handoverNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_old_SendAuthenticationInfoResOld_item = -1; /* SendAuthenticationInfoResOld_item */ +static int hf_gsm_old_rand = -1; /* RAND */ +static int hf_gsm_old_sres = -1; /* SRES */ +static int hf_gsm_old_kc = -1; /* Kc */ +static int hf_gsm_old_tripletList = -1; /* TripletListold */ +static int hf_gsm_old_TripletListold_item = -1; /* AuthenticationTriplet_v2 */ +static int hf_gsm_old_channelType = -1; /* ExternalSignalInfo */ +static int hf_gsm_old_securityHeader = -1; /* SecurityHeader */ +static int hf_gsm_old_protectedPayload = -1; /* ProtectedPayload */ +static int hf_gsm_old_securityParametersIndex = -1; /* SecurityParametersIndex */ +static int hf_gsm_old_originalComponentIdentifier = -1; /* OriginalComponentIdentifier */ +static int hf_gsm_old_initialisationVector = -1; /* InitialisationVector */ +static int hf_gsm_old_operationCode = -1; /* OperationCode */ +static int hf_gsm_old_errorCode_01 = -1; /* ErrorCode */ +static int hf_gsm_old_userInfo = -1; /* NULL */ +static int hf_gsm_old_localValue_02 = -1; /* INTEGER */ +static int hf_gsm_old_msisdn = -1; /* ISDN_AddressString */ +static int hf_gsm_old_category = -1; /* Category */ +static int hf_gsm_old_basicService = -1; /* BasicServiceCode */ +static int hf_gsm_old_operatorSS_Code = -1; /* T_operatorSS_Code */ +static int hf_gsm_old_operatorSS_Code_item = -1; /* OCTET_STRING_SIZE_1 */ +static int hf_gsm_old_sm_RP_DA = -1; /* SM_RP_DAold */ +static int hf_gsm_old_sm_RP_OA = -1; /* SM_RP_OAold */ +static int hf_gsm_old_sm_RP_UI = -1; /* SignalInfo */ +static int hf_gsm_old_moreMessagesToSend = -1; /* NULL */ +static int hf_gsm_old_lmsi = -1; /* LMSI */ +static int hf_gsm_old_serviceCentreAddressDA = -1; /* AddressString */ +static int hf_gsm_old_noSM_RP_DA = -1; /* NULL */ +static int hf_gsm_old_msisdn_01 = -1; /* T_msisdn */ +static int hf_gsm_old_serviceCentreAddressOA = -1; /* T_serviceCentreAddressOA */ +static int hf_gsm_old_noSM_RP_OA = -1; /* NULL */ + +/* --- Module SS-DataTypes --- --- --- */ + +static int hf_gsm_ss_ss_Code = -1; /* SS_Code */ +static int hf_gsm_ss_ss_Status = -1; /* SS_Status */ +static int hf_gsm_ss_ss_Notification = -1; /* SS_Notification */ +static int hf_gsm_ss_callIsWaiting_Indicator = -1; /* NULL */ +static int hf_gsm_ss_callOnHold_Indicator = -1; /* CallOnHold_Indicator */ +static int hf_gsm_ss_mpty_Indicator = -1; /* NULL */ +static int hf_gsm_ss_cug_Index = -1; /* CUG_Index */ +static int hf_gsm_ss_clirSuppressionRejected = -1; /* NULL */ +static int hf_gsm_ss_ect_Indicator = -1; /* ECT_Indicator */ +static int hf_gsm_ss_nameIndicator = -1; /* NameIndicator */ +static int hf_gsm_ss_ccbs_Feature = -1; /* CCBS_Feature */ +static int hf_gsm_ss_alertingPattern = -1; /* AlertingPattern */ +static int hf_gsm_ss_multicall_Indicator = -1; /* Multicall_Indicator */ +static int hf_gsm_ss_chargingInformation = -1; /* ChargingInformation */ +static int hf_gsm_ss_e1 = -1; /* E1 */ +static int hf_gsm_ss_e2 = -1; /* E2 */ +static int hf_gsm_ss_e3 = -1; /* E3 */ +static int hf_gsm_ss_e4 = -1; /* E4 */ +static int hf_gsm_ss_e5 = -1; /* E5 */ +static int hf_gsm_ss_e6 = -1; /* E6 */ +static int hf_gsm_ss_e7 = -1; /* E7 */ +static int hf_gsm_ss_suppressPrefCUG = -1; /* NULL */ +static int hf_gsm_ss_suppressOA = -1; /* NULL */ +static int hf_gsm_ss_ect_CallState = -1; /* ECT_CallState */ +static int hf_gsm_ss_rdn = -1; /* RDN */ +static int hf_gsm_ss_callingName = -1; /* Name */ +static int hf_gsm_ss_namePresentationAllowed = -1; /* NameSet */ +static int hf_gsm_ss_presentationRestricted = -1; /* NULL */ +static int hf_gsm_ss_nameUnavailable = -1; /* NULL */ +static int hf_gsm_ss_namePresentationRestricted = -1; /* NameSet */ +static int hf_gsm_ss_dataCodingScheme = -1; /* USSD_DataCodingScheme */ +static int hf_gsm_ss_lengthInCharacters = -1; /* INTEGER */ +static int hf_gsm_ss_nameString = -1; /* USSD_String */ +static int hf_gsm_ss_presentationAllowedAddress = -1; /* RemotePartyNumber */ +static int hf_gsm_ss_numberNotAvailableDueToInterworking = -1; /* NULL */ +static int hf_gsm_ss_presentationRestrictedAddress = -1; /* RemotePartyNumber */ +static int hf_gsm_ss_partyNumber = -1; /* ISDN_AddressString */ +static int hf_gsm_ss_partyNumberSubaddress = -1; /* ISDN_SubaddressString */ +static int hf_gsm_ss_deflectedToNumber = -1; /* AddressString */ +static int hf_gsm_ss_deflectedToSubaddress = -1; /* ISDN_SubaddressString */ +static int hf_gsm_ss_uUS_Service = -1; /* UUS_Service */ +static int hf_gsm_ss_uUS_Required = -1; /* BOOLEAN */ +static int hf_gsm_ss_notificationType = -1; /* NotificationToMSUser */ +static int hf_gsm_ss_locationType = -1; /* LocationType */ +static int hf_gsm_ss_lcsClientExternalID = -1; /* LCSClientExternalID */ +static int hf_gsm_ss_lcsClientName = -1; /* LCSClientName */ +static int hf_gsm_ss_lcsRequestorID = -1; /* LCSRequestorID */ +static int hf_gsm_ss_lcsCodeword = -1; /* LCSCodeword */ +static int hf_gsm_ss_lcsServiceTypeID = -1; /* LCSServiceTypeID */ +static int hf_gsm_ss_verificationResponse = -1; /* VerificationResponse */ +static int hf_gsm_ss_molr_Type = -1; /* MOLR_Type */ +static int hf_gsm_ss_locationMethod = -1; /* LocationMethod */ +static int hf_gsm_ss_lcs_QoS = -1; /* LCS_QoS */ +static int hf_gsm_ss_mlc_Number = -1; /* ISDN_AddressString */ +static int hf_gsm_ss_gpsAssistanceData = -1; /* GPSAssistanceData */ +static int hf_gsm_ss_supportedGADShapes = -1; /* SupportedGADShapes */ +static int hf_gsm_ss_ageOfLocationInfo = -1; /* AgeOfLocationInformation */ +static int hf_gsm_ss_pseudonymIndicator = -1; /* NULL */ +static int hf_gsm_ss_h_gmlc_address = -1; /* GSN_Address */ +static int hf_gsm_ss_locationEstimate = -1; /* Ext_GeographicalInformation */ +static int hf_gsm_ss_velocityEstimate = -1; /* VelocityEstimate */ +static int hf_gsm_ss_referenceNumber = -1; /* LCS_ReferenceNumber */ +static int hf_gsm_ss_periodicLDRInfo = -1; /* PeriodicLDRInfo */ +static int hf_gsm_ss_locationUpdateRequest = -1; /* NULL */ +static int hf_gsm_ss_sequenceNumber = -1; /* SequenceNumber */ +static int hf_gsm_ss_terminationCause = -1; /* TerminationCause */ +static int hf_gsm_ss_mo_lrShortCircuit = -1; /* NULL */ +static int hf_gsm_ss_decipheringKeys = -1; /* DecipheringKeys */ +static int hf_gsm_ss_add_LocationEstimate = -1; /* Add_GeographicalInformation */ +static int hf_gsm_ss_reportingPLMNList = -1; /* ReportingPLMNList */ +static int hf_gsm_ss_deferredLocationEventType = -1; /* DeferredLocationEventType */ +static int hf_gsm_ss_areaEventInfo = -1; /* AreaEventInfo */ +static int hf_gsm_ss_qoS = -1; /* LCS_QoS */ /*--- End of included file: packet-gsm_map-hf.c ---*/ -#line 131 "packet-gsm_map-template.c" +#line 134 "packet-gsm_map-template.c" /* Initialize the subtree pointers */ static gint ett_gsm_map = -1; @@ -1103,434 +1372,560 @@ static gint ett_gsm_map_RadioResourceInformation =-1; /*--- Included file: packet-gsm_map-ett.c ---*/ #line 1 "packet-gsm_map-ett.c" -static gint ett_gsm_map_Component = -1; -static gint ett_gsm_map_Invoke = -1; -static gint ett_gsm_map_ReturnResult = -1; -static gint ett_gsm_map_T_resultretres = -1; -static gint ett_gsm_map_ReturnError = -1; -static gint ett_gsm_map_Reject = -1; -static gint ett_gsm_map_T_invokeIDRej = -1; -static gint ett_gsm_map_T_problem = -1; -static gint ett_gsm_map_OPERATION = -1; -static gint ett_gsm_map_ERROR = -1; -static gint ett_gsm_map_Bss_APDU = -1; -static gint ett_gsm_map_SupportedCamelPhases = -1; -static gint ett_gsm_map_UpdateLocationArg = -1; -static gint ett_gsm_map_UpdateLocationRes = -1; -static gint ett_gsm_map_VLR_Capability = -1; -static gint ett_gsm_map_SupportedRAT_Types = -1; -static gint ett_gsm_map_SuperChargerInfo = -1; -static gint ett_gsm_map_SupportedLCS_CapabilitySets = -1; -static gint ett_gsm_map_ADD_Info = -1; + +/* --- Module Remote-Operations-Information-Objects --- --- --- */ + +static gint ett_Remote_Operations_Information_Objects_Code = -1; + +/* --- Module MobileDomainDefinitions --- --- --- */ + + +/* --- Module MAP-ApplicationContexts --- --- --- */ + + +/* --- Module MAP-SS-Code --- --- --- */ + + +/* --- Module MAP-BS-Code --- --- --- */ + + +/* --- Module MAP-TS-Code --- --- --- */ + + +/* --- Module MAP-ExtensionDataTypes --- --- --- */ + +static gint ett_gsm_map_ExtensionContainer = -1; +static gint ett_gsm_map_SLR_ArgExtensionContainer = -1; static gint ett_gsm_map_PrivateExtensionList = -1; static gint ett_gsm_map_PrivateExtension = -1; -static gint ett_gsm_map_SLR_ArgExtensionContainer = -1; -static gint ett_gsm_map_PcsExtensions = -1; +static gint ett_gsm_map_PCS_Extensions = -1; static gint ett_gsm_map_SLR_Arg_PCS_Extensions = -1; -static gint ett_gsm_map_CancelLocationArg = -1; -static gint ett_gsm_map_CancelLocationArgV2 = -1; -static gint ett_gsm_map_CancelLocationRes = -1; -static gint ett_gsm_map_PurgeMSArg = -1; -static gint ett_gsm_map_PurgeMSArgV2 = -1; -static gint ett_gsm_map_PurgeMSRes = -1; -static gint ett_gsm_map_SendIdentificationArg = -1; -static gint ett_gsm_map_SendIdentificationRes = -1; -static gint ett_gsm_map_SendIdentificationResV2 = -1; -static gint ett_gsm_map_AuthenticationSetList = -1; -static gint ett_gsm_map_TripletList = -1; -static gint ett_gsm_map_QuintupletList = -1; -static gint ett_gsm_map_AuthenticationTriplet = -1; -static gint ett_gsm_map_AuthenticationQuintuplet = -1; -static gint ett_gsm_map_CurrentSecurityContext = -1; -static gint ett_gsm_map_GSM_SecurityContextData = -1; -static gint ett_gsm_map_UMTS_SecurityContextData = -1; -static gint ett_gsm_map_PrepareHO_Arg = -1; -static gint ett_gsm_map_PrepareHO_ArgV3 = -1; -static gint ett_gsm_map_BSSMAP_ServiceHandoverList = -1; -static gint ett_gsm_map_BSSMAP_ServiceHandoverInfo = -1; -static gint ett_gsm_map_RadioResourceList = -1; -static gint ett_gsm_map_RadioResource = -1; -static gint ett_gsm_map_PrepareHO_Res = -1; -static gint ett_gsm_map_PrepareHO_ResV3 = -1; -static gint ett_gsm_map_SelectedUMTS_Algorithms = -1; -static gint ett_gsm_map_ChosenRadioResourceInformation = -1; -static gint ett_gsm_map_SendEndSignalArgV3 = -1; -static gint ett_gsm_map_SendEndSignalRes = -1; -static gint ett_gsm_map_RelocationNumberList = -1; -static gint ett_gsm_map_RelocationNumber = -1; -static gint ett_gsm_map_ProcessAccessSignallingArgV3 = -1; -static gint ett_gsm_map_SupportedCodecsList = -1; -static gint ett_gsm_map_CodecList = -1; -static gint ett_gsm_map_ForwardAccessSignallingArgV3 = -1; -static gint ett_gsm_map_AllowedUMTS_Algorithms = -1; -static gint ett_gsm_map_PrepareSubsequentHOArg = -1; -static gint ett_gsm_map_PrepareSubsequentHOArgV3 = -1; -static gint ett_gsm_map_PrepareSubsequentHOResV3 = -1; -static gint ett_gsm_map_SendAuthenticationInfoArgV2 = -1; -static gint ett_gsm_map_SendAuthenticationInfoRes = -1; -static gint ett_gsm_map_SendAuthenticationInfoRes_item = -1; -static gint ett_gsm_map_SendAuthenticationInfoResV3 = -1; -static gint ett_gsm_map_Re_synchronisationInfo = -1; -static gint ett_gsm_map_CheckIMEIArgV3 = -1; -static gint ett_gsm_map_CheckIMEIRes = -1; -static gint ett_gsm_map_RequestedEquipmentInfo = -1; -static gint ett_gsm_map_UESBI_Iu = -1; -static gint ett_gsm_map_BasicServiceGroupList = -1; -static gint ett_gsm_map_ODB_GeneralData = -1; -static gint ett_gsm_map_ODB_HPLMN_Data = -1; -static gint ett_gsm_map_O_CSI = -1; -static gint ett_gsm_map_O_BcsmCamelTDPDataList = -1; -static gint ett_gsm_map_O_BcsmCamelTDPData = -1; -static gint ett_gsm_map_InsertSubscriberDataArg = -1; -static gint ett_gsm_map_AccessRestrictionData = -1; -static gint ett_gsm_map_LCSInformation = -1; -static gint ett_gsm_map_GMLC_List = -1; -static gint ett_gsm_map_GPRSDataList = -1; -static gint ett_gsm_map_PDP_Context = -1; -static gint ett_gsm_map_GPRSSubscriptionData = -1; -static gint ett_gsm_map_SGSN_CAMEL_SubscriptionInfo = -1; -static gint ett_gsm_map_GPRS_CSI = -1; -static gint ett_gsm_map_GPRS_CamelTDPDataList = -1; -static gint ett_gsm_map_GPRS_CamelTDPData = -1; -static gint ett_gsm_map_LSADataList = -1; -static gint ett_gsm_map_LSAData = -1; -static gint ett_gsm_map_LSAInformation = -1; -static gint ett_gsm_map_InsertSubscriberDataRes = -1; -static gint ett_gsm_map_DeleteSubscriberDataArg = -1; -static gint ett_gsm_map_DeleteSubscriberDataRes = -1; -static gint ett_gsm_map_SpecificCSI_Withdraw = -1; -static gint ett_gsm_map_GPRSSubscriptionDataWithdraw = -1; -static gint ett_gsm_map_ContextIdList = -1; -static gint ett_gsm_map_LSAInformationWithdraw = -1; -static gint ett_gsm_map_LSAIdentityList = -1; -static gint ett_gsm_map_BasicServiceList = -1; -static gint ett_gsm_map_VlrCamelSubscriptionInfo = -1; -static gint ett_gsm_map_MT_smsCAMELTDP_CriteriaList = -1; -static gint ett_gsm_map_MT_smsCAMELTDP_Criteria = -1; -static gint ett_gsm_map_TPDU_TypeCriterion = -1; -static gint ett_gsm_map_D_CSI = -1; -static gint ett_gsm_map_DP_AnalysedInfoCriteriaList = -1; -static gint ett_gsm_map_DP_AnalysedInfoCriterium = -1; -static gint ett_gsm_map_SS_CSI = -1; -static gint ett_gsm_map_SS_CamelData = -1; -static gint ett_gsm_map_MG_CSI = -1; -static gint ett_gsm_map_BearerServiceList = -1; -static gint ett_gsm_map_TeleserviceList = -1; -static gint ett_gsm_map_Ext_SS_InfoList = -1; -static gint ett_gsm_map_Ext_SS_Info = -1; -static gint ett_gsm_map_Ext_ForwInfo = -1; -static gint ett_gsm_map_Ext_ForwFeatureList = -1; -static gint ett_gsm_map_Ext_ForwFeature = -1; -static gint ett_gsm_map_Ext_CallBarInfo = -1; -static gint ett_gsm_map_Ext_CallBarFeatureList = -1; -static gint ett_gsm_map_Ext_CallBarringFeature = -1; -static gint ett_gsm_map_ZoneCodeList = -1; -static gint ett_gsm_map_EMLPP_Info = -1; -static gint ett_gsm_map_CUG_Info = -1; -static gint ett_gsm_map_CUG_SubscriptionList = -1; -static gint ett_gsm_map_CUG_Subscription = -1; -static gint ett_gsm_map_CUG_FeatureList = -1; -static gint ett_gsm_map_Ext_BasicServiceGroupList = -1; -static gint ett_gsm_map_CUG_Feature = -1; -static gint ett_gsm_map_Ext_SS_Data = -1; -static gint ett_gsm_map_LCS_PrivacyExceptionList = -1; -static gint ett_gsm_map_LCS_PrivacyClass = -1; -static gint ett_gsm_map_ExternalClientList = -1; -static gint ett_gsm_map_PLMNClientList = -1; -static gint ett_gsm_map_Ext_ExternalClientList = -1; -static gint ett_gsm_map_ExternalClient = -1; -static gint ett_gsm_map_ServiceTypeList = -1; -static gint ett_gsm_map_ServiceType = -1; -static gint ett_gsm_map_MOLR_List = -1; -static gint ett_gsm_map_MOLR_Class = -1; -static gint ett_gsm_map_CallBarringFeatureList = -1; -static gint ett_gsm_map_CallBarringFeature = -1; -static gint ett_gsm_map_ForwardingFeatureList = -1; -static gint ett_gsm_map_ForwardingFeature = -1; -static gint ett_gsm_map_DestinationNumberCriteria = -1; -static gint ett_gsm_map_DestinationNumberList = -1; -static gint ett_gsm_map_DestinationNumberLengthList = -1; -static gint ett_gsm_map_ForwardingInfo = -1; -static gint ett_gsm_map_CallBarringInfo = -1; -static gint ett_gsm_map_MC_SS_Info = -1; -static gint ett_gsm_map_ResetArg = -1; -static gint ett_gsm_map_RestoreDataArg = -1; -static gint ett_gsm_map_RestoreDataRes = -1; -static gint ett_gsm_map_VBSDataList = -1; -static gint ett_gsm_map_VGCSDataList = -1; -static gint ett_gsm_map_VoiceGroupCallData = -1; -static gint ett_gsm_map_VoiceBroadcastData = -1; -static gint ett_gsm_map_AdditionalSubscriptions = -1; -static gint ett_gsm_map_ActivateTraceModeArg = -1; -static gint ett_gsm_map_TraceDepthList = -1; -static gint ett_gsm_map_TraceNE_TypeList = -1; -static gint ett_gsm_map_TraceInterfaceList = -1; -static gint ett_gsm_map_MSC_S_InterfaceList = -1; -static gint ett_gsm_map_MGW_InterfaceList = -1; -static gint ett_gsm_map_SGSN_InterfaceList = -1; -static gint ett_gsm_map_GGSN_InterfaceList = -1; -static gint ett_gsm_map_RNC_InterfaceList = -1; -static gint ett_gsm_map_BMSC_InterfaceList = -1; -static gint ett_gsm_map_TraceEventList = -1; -static gint ett_gsm_map_MSC_S_EventList = -1; -static gint ett_gsm_map_MGW_EventList = -1; -static gint ett_gsm_map_SGSN_EventList = -1; -static gint ett_gsm_map_GGSN_EventList = -1; -static gint ett_gsm_map_BMSC_EventList = -1; -static gint ett_gsm_map_TracePropagationList = -1; -static gint ett_gsm_map_ActivateTraceModeRes = -1; -static gint ett_gsm_map_DeactivateTraceModeArg = -1; -static gint ett_gsm_map_DeactivateTraceModeRes = -1; -static gint ett_gsm_map_SendRoutingInfoArg = -1; -static gint ett_gsm_map_SendRoutingInfoRes = -1; + +/* --- Module MAP-CommonDataTypes --- --- --- */ + static gint ett_gsm_map_ExternalSignalInfo = -1; static gint ett_gsm_map_Ext_ExternalSignalInfo = -1; static gint ett_gsm_map_AccessNetworkSignalInfo = -1; -static gint ett_gsm_map_CamelInfo = -1; static gint ett_gsm_map_Identity = -1; static gint ett_gsm_map_IMSI_WithLMSI = -1; +static gint ett_gsm_map_SubscriberId = -1; static gint ett_gsm_map_HLR_List = -1; -static gint ett_gsm_map_SS_List = -1; static gint ett_gsm_map_NAEA_PreferredCI = -1; static gint ett_gsm_map_SubscriberIdentity = -1; static gint ett_gsm_map_LCSClientExternalID = -1; static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI = -1; -static gint ett_gsm_map_AllowedServices = -1; -static gint ett_gsm_map_CCBS_Indicators = -1; -static gint ett_gsm_map_RoutingInfo = -1; -static gint ett_gsm_map_ExtendedRoutingInfo = -1; -static gint ett_gsm_map_CamelRoutingInfo = -1; -static gint ett_gsm_map_GmscCamelSubscriptionInfo = -1; -static gint ett_gsm_map_LocationInformation = -1; -static gint ett_gsm_map_LocationInformationGPRS = -1; -static gint ett_gsm_map_SubscriberState = -1; -static gint ett_gsm_map_PS_SubscriberState = -1; -static gint ett_gsm_map_PDP_ContextInfoList = -1; -static gint ett_gsm_map_PDP_ContextInfo = -1; -static gint ett_gsm_map_CUG_CheckInfo = -1; -static gint ett_gsm_map_ForwardingData = -1; -static gint ett_gsm_map_ProvideRoamingNumberArg = -1; -static gint ett_gsm_map_ProvideRoamingNumberRes = -1; -static gint ett_gsm_map_ResumeCallHandlingArg = -1; -static gint ett_gsm_map_ResumeCallHandlingRes = -1; -static gint ett_gsm_map_UU_Data = -1; -static gint ett_gsm_map_ProvideSIWFSNumberArg = -1; -static gint ett_gsm_map_ProvideSIWFSNumberRes = -1; -static gint ett_gsm_map_SIWFSSignallingModifyArg = -1; -static gint ett_gsm_map_SIWFSSignallingModifyRes = -1; -static gint ett_gsm_map_SetReportingStateArg = -1; -static gint ett_gsm_map_SetReportingStateRes = -1; -static gint ett_gsm_map_StatusReportArg = -1; -static gint ett_gsm_map_StatusReportRes = -1; -static gint ett_gsm_map_EventReportData = -1; -static gint ett_gsm_map_CallReportData = -1; -static gint ett_gsm_map_IST_AlertArg = -1; -static gint ett_gsm_map_IST_AlertRes = -1; -static gint ett_gsm_map_IST_CommandArg = -1; -static gint ett_gsm_map_IST_CommandRes = -1; -static gint ett_gsm_map_ReleaseResourcesArg = -1; -static gint ett_gsm_map_ReleaseResourcesRes = -1; -static gint ett_gsm_map_RemoteUserFreeArg = -1; -static gint ett_gsm_map_RemoteUserFreeRes = -1; -static gint ett_gsm_map_SS_Data = -1; -static gint ett_gsm_map_SS_SubscriptionOption = -1; -static gint ett_gsm_map_RegisterSS_Arg = -1; -static gint ett_gsm_map_SS_Info = -1; -static gint ett_gsm_map_InterrogateSS_Res = -1; -static gint ett_gsm_map_Ussd_Arg = -1; -static gint ett_gsm_map_Ussd_Res = -1; -static gint ett_gsm_map_AuthenticationFailureReportArg = -1; -static gint ett_gsm_map_AuthenticationFailureReportRes = -1; -static gint ett_gsm_map_RegisterCC_EntryArg = -1; -static gint ett_gsm_map_RegisterCC_EntryRes = -1; -static gint ett_gsm_map_CCBS_Data = -1; -static gint ett_gsm_map_ServiceIndicator = -1; -static gint ett_gsm_map_EraseCC_EntryArg = -1; -static gint ett_gsm_map_EraseCC_EntryRes = -1; -static gint ett_gsm_map_RoutingInfoForSMArg = -1; -static gint ett_gsm_map_RoutingInfoForSM_Res = -1; -static gint ett_gsm_map_LocationInfoWithLMSI = -1; -static gint ett_gsm_map_Additional_Number = -1; -static gint ett_gsm_map_Mo_forwardSM_Arg = -1; -static gint ett_gsm_map_Mo_forwardSM_Res = -1; -static gint ett_gsm_map_Sm_RP_OA = -1; -static gint ett_gsm_map_Sm_RP_DA = -1; -static gint ett_gsm_map_Mt_forwardSM_Arg = -1; -static gint ett_gsm_map_Mt_forwardSM_Res = -1; -static gint ett_gsm_map_ForwardSM_Arg = -1; -static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1; -static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1; -static gint ett_gsm_map_InformServiceCentreArg = -1; -static gint ett_gsm_map_MW_Status = -1; -static gint ett_gsm_map_AlertServiceCentreArg = -1; -static gint ett_gsm_map_ReadyForSM_Arg = -1; -static gint ett_gsm_map_ReadyForSM_Res = -1; -static gint ett_gsm_map_Mt_ForwardSM_VGCS_Arg = -1; -static gint ett_gsm_map_Mt_ForwardSM_VGCS_Res = -1; -static gint ett_gsm_map_DispatcherList = -1; -static gint ett_gsm_map_ProvideSubscriberInfoArg = -1; -static gint ett_gsm_map_ProvideSubscriberInfoRes = -1; -static gint ett_gsm_map_SubscriberInfo = -1; -static gint ett_gsm_map_MNPInfoRes = -1; -static gint ett_gsm_map_GPRSMSClass = -1; -static gint ett_gsm_map_RequestedInfo = -1; -static gint ett_gsm_map_AnyTimeInterrogationArg = -1; -static gint ett_gsm_map_AnyTimeInterrogationRes = -1; -static gint ett_gsm_map_AnyTimeSubscriptionInterrogationArg = -1; -static gint ett_gsm_map_AnyTimeSubscriptionInterrogationRes = -1; -static gint ett_gsm_map_RequestedSubscriptionInfo = -1; -static gint ett_gsm_map_MSISDN_BS_List = -1; -static gint ett_gsm_map_MSISDN_BS = -1; -static gint ett_gsm_map_CallForwardingData = -1; -static gint ett_gsm_map_CallBarringData = -1; static gint ett_gsm_map_BasicServiceCode = -1; -static gint ett_gsm_map_O_BcsmCamelTDPCriteriaList = -1; -static gint ett_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList = -1; -static gint ett_gsm_map_O_BcsmCamelTDP_Criteria = -1; -static gint ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria = -1; -static gint ett_gsm_map_OfferedCamel4CSIs = -1; -static gint ett_gsm_map_OfferedCamel4Functionalities = -1; -static gint ett_gsm_map_SS_ForBS_Code = -1; -static gint ett_gsm_map_GenericServiceInfo = -1; -static gint ett_gsm_map_CCBS_FeatureList = -1; -static gint ett_gsm_map_CCBS_Feature = -1; -static gint ett_gsm_map_T_CauseValueCriteria = -1; -static gint ett_gsm_map_O_CauseValueCriteria = -1; -static gint ett_gsm_map_BasicServiceCriteria = -1; -static gint ett_gsm_map_AnyTimeModificationArg = -1; -static gint ett_gsm_map_AnyTimeModificationRes = -1; -static gint ett_gsm_map_ModificationRequestFor_CF_Info = -1; -static gint ett_gsm_map_ModificationRequestFor_CB_Info = -1; -static gint ett_gsm_map_ModificationRequestFor_ODB_data = -1; -static gint ett_gsm_map_ModificationRequestFor_CSI = -1; -static gint ett_gsm_map_Ext_SS_InfoFor_CSE = -1; -static gint ett_gsm_map_NoteSubscriberDataModifiedArg = -1; -static gint ett_gsm_map_NoteSubscriberDataModifiedRes = -1; -static gint ett_gsm_map_NoteMM_EventArg = -1; -static gint ett_gsm_map_NoteMM_EventRes = -1; -static gint ett_gsm_map_CAMEL_SubscriptionInfo = -1; -static gint ett_gsm_map_Ext_ForwardingInfoFor_CSE = -1; static gint ett_gsm_map_Ext_BasicServiceCode = -1; -static gint ett_gsm_map_Ext_CallBarringInfoFor_CSE = -1; -static gint ett_gsm_map_ODB_Info = -1; -static gint ett_gsm_map_ODB_Data = -1; -static gint ett_gsm_map_M_CSI = -1; -static gint ett_gsm_map_SS_EventList = -1; -static gint ett_gsm_map_T_CSI = -1; -static gint ett_gsm_map_T_BcsmCamelTDPDataList = -1; -static gint ett_gsm_map_T_BcsmCamelTDPData = -1; -static gint ett_gsm_map_SMS_CSI = -1; -static gint ett_gsm_map_SMS_CAMEL_TDP_DataList = -1; -static gint ett_gsm_map_SMS_CAMEL_TDP_Data = -1; -static gint ett_gsm_map_MobilityTriggers = -1; -static gint ett_gsm_map_Ss_InvocationNotificationArg = -1; -static gint ett_gsm_map_SS_EventSpecification = -1; -static gint ett_gsm_map_Ss_InvocationNotificationRes = -1; -static gint ett_gsm_map_PrepareGroupCallArg = -1; -static gint ett_gsm_map_PrepareGroupCallRes = -1; -static gint ett_gsm_map_SendGroupCallEndSignalArg = -1; -static gint ett_gsm_map_SendGroupCallEndSignalRes = -1; -static gint ett_gsm_map_ProcessGroupCallSignallingArg = -1; -static gint ett_gsm_map_StateAttributes = -1; -static gint ett_gsm_map_SendGroupCallInfoArg = -1; -static gint ett_gsm_map_SendGroupCallInfoRes = -1; -static gint ett_gsm_map_ForwardGroupCallSignallingArg = -1; -static gint ett_gsm_map_UpdateGprsLocationArg = -1; -static gint ett_gsm_map_UpdateGprsLocationRes = -1; -static gint ett_gsm_map_SGSN_Capability = -1; -static gint ett_gsm_map_SendRoutingInfoForGprsArg = -1; -static gint ett_gsm_map_SendRoutingInfoForGprsRes = -1; -static gint ett_gsm_map_FailureReportArg = -1; -static gint ett_gsm_map_FailureReportRes = -1; -static gint ett_gsm_map_NoteMsPresentForGprsArg = -1; -static gint ett_gsm_map_NoteMsPresentForGprsRes = -1; -static gint ett_gsm_map_ProvideSubscriberLocation_Arg = -1; -static gint ett_gsm_map_LocationType = -1; -static gint ett_gsm_map_DeferredLocationEventType = -1; -static gint ett_gsm_map_LCS_ClientID = -1; -static gint ett_gsm_map_LCSClientName = -1; -static gint ett_gsm_map_LCSRequestorID = -1; -static gint ett_gsm_map_LCS_QoS = -1; -static gint ett_gsm_map_ResponseTime = -1; -static gint ett_gsm_map_SupportedGADShapes = -1; -static gint ett_gsm_map_LCSCodeword = -1; -static gint ett_gsm_map_LCS_PrivacyCheck = -1; -static gint ett_gsm_map_AreaEventInfo = -1; -static gint ett_gsm_map_AreaDefinition = -1; -static gint ett_gsm_map_AreaList = -1; -static gint ett_gsm_map_Area = -1; -static gint ett_gsm_map_PeriodicLDRInfo = -1; -static gint ett_gsm_map_ReportingPLMNList = -1; -static gint ett_gsm_map_PLMNList = -1; -static gint ett_gsm_map_ReportingPLMN = -1; -static gint ett_gsm_map_ProvideSubscriberLocation_Res = -1; -static gint ett_gsm_map_RoutingInfoForLCS_Arg = -1; -static gint ett_gsm_map_RoutingInfoForLCS_Res = -1; -static gint ett_gsm_map_LCSLocationInfo = -1; -static gint ett_gsm_map_SubscriberLocationReport_Arg = -1; -static gint ett_gsm_map_Deferredmt_lrData = -1; -static gint ett_gsm_map_SubscriberLocationReport_Res = -1; -static gint ett_gsm_map_SecureTransportArg = -1; -static gint ett_gsm_map_SecureTransportRes = -1; -static gint ett_gsm_map_SecurityHeader = -1; -static gint ett_gsm_map_OriginalComponentIdentifier = -1; -static gint ett_gsm_map_OperationCode = -1; -static gint ett_gsm_map_ErrorCode = -1; -static gint ett_gsm_map_PlmnContainer = -1; -static gint ett_gsm_map_T_operatorSS_Code = -1; -static gint ett_gsm_map_SystemFailureParam = -1; -static gint ett_gsm_map_ExtensibleSystemFailureParam = -1; -static gint ett_gsm_map_DataMissingParam = -1; -static gint ett_gsm_map_UnexpectedDataParam = -1; -static gint ett_gsm_map_FacilityNotSupParam = -1; -static gint ett_gsm_map_IncompatibleTerminalParam = -1; -static gint ett_gsm_map_ResourceLimitationParam = -1; -static gint ett_gsm_map_UnknownSubscriberParam = -1; -static gint ett_gsm_map_NumberChangedParam = -1; -static gint ett_gsm_map_UnidentifiedSubParam = -1; -static gint ett_gsm_map_RoamingNotAllowedParam = -1; -static gint ett_gsm_map_IllegalSubscriberParam = -1; -static gint ett_gsm_map_IllegalEquipmentParam = -1; -static gint ett_gsm_map_BearerServNotProvParam = -1; -static gint ett_gsm_map_TeleservNotProvParam = -1; -static gint ett_gsm_map_TracingBufferFullParam = -1; -static gint ett_gsm_map_NoRoamingNbParam = -1; -static gint ett_gsm_map_AbsentSubscriberParam = -1; -static gint ett_gsm_map_BusySubscriberParam = -1; -static gint ett_gsm_map_NoSubscriberReplyParam = -1; -static gint ett_gsm_map_ForwardingViolationParam = -1; -static gint ett_gsm_map_ForwardingFailedParam = -1; -static gint ett_gsm_map_ATI_NotAllowedParam = -1; -static gint ett_gsm_map_ATSI_NotAllowedParam = -1; -static gint ett_gsm_map_ATM_NotAllowedParam = -1; -static gint ett_gsm_map_IllegalSS_OperationParam = -1; -static gint ett_gsm_map_SS_NotAvailableParam = -1; -static gint ett_gsm_map_SS_SubscriptionViolationParam = -1; -static gint ett_gsm_map_InformationNotAvailableParam = -1; -static gint ett_gsm_map_SubBusyForMT_SMS_Param = -1; -static gint ett_gsm_map_CallBarredParam = -1; -static gint ett_gsm_map_ExtensibleCallBarredParam = -1; -static gint ett_gsm_map_CUG_RejectParam = -1; -static gint ett_gsm_map_Or_NotAllowedParam = -1; -static gint ett_gsm_map_NoGroupCallNbParam = -1; -static gint ett_gsm_map_SS_IncompatibilityCause = -1; -static gint ett_gsm_map_ShortTermDenialParam = -1; -static gint ett_gsm_map_LongTermDenialParam = -1; -static gint ett_gsm_map_SM_DeliveryFailureCause = -1; -static gint ett_gsm_map_MessageWaitListFullParam = -1; -static gint ett_gsm_map_AbsentSubscriberSM_Param = -1; -static gint ett_gsm_map_UnauthorizedRequestingNetwork_Param = -1; -static gint ett_gsm_map_UnauthorizedLCSClient_Param = -1; -static gint ett_gsm_map_PositionMethodFailure_Param = -1; -static gint ett_gsm_map_UnknownOrUnreachableLCSClient_Param = -1; -static gint ett_gsm_map_MM_EventNotSupported_Param = -1; -static gint ett_gsm_map_TargetCellOutsideGCA_Param = -1; -static gint ett_gsm_map_OngoingGroupCallParam = -1; -static gint ett_gsm_map_SecureTransportErrorParam = -1; -static gint ett_gsm_map_ExtensionContainer = -1; +static gint ett_gsm_map_EMLPP_Info = -1; +static gint ett_gsm_map_MC_SS_Info = -1; + +/* --- Module MAP-SS-DataTypes --- --- --- */ + +static gint ett_gsm_map_ss_RegisterSS_Arg = -1; +static gint ett_gsm_map_ss_SS_Info = -1; +static gint ett_gsm_map_ss_ForwardingInfo = -1; +static gint ett_gsm_map_ss_ForwardingFeatureList = -1; +static gint ett_gsm_map_ss_ForwardingFeature = -1; +static gint ett_gsm_map_ss_CallBarringInfo = -1; +static gint ett_gsm_map_ss_CallBarringFeatureList = -1; +static gint ett_gsm_map_ss_CallBarringFeature = -1; +static gint ett_gsm_map_ss_SS_Data = -1; +static gint ett_gsm_map_ss_SS_SubscriptionOption = -1; +static gint ett_gsm_map_ss_SS_ForBS_Code = -1; +static gint ett_gsm_map_ss_GenericServiceInfo = -1; +static gint ett_gsm_map_ss_CCBS_FeatureList = -1; +static gint ett_gsm_map_ss_CCBS_Feature = -1; +static gint ett_gsm_map_ss_InterrogateSS_Res = -1; +static gint ett_gsm_map_ss_USSD_Arg = -1; +static gint ett_gsm_map_ss_USSD_Res = -1; +static gint ett_gsm_map_ss_SS_List = -1; +static gint ett_gsm_map_ss_SS_InfoList = -1; +static gint ett_gsm_map_ss_BasicServiceGroupList = -1; +static gint ett_gsm_map_ss_SS_InvocationNotificationArg = -1; +static gint ett_gsm_map_ss_SS_InvocationNotificationRes = -1; +static gint ett_gsm_map_ss_SS_EventSpecification = -1; +static gint ett_gsm_map_ss_RegisterCC_EntryArg = -1; +static gint ett_gsm_map_ss_CCBS_Data = -1; +static gint ett_gsm_map_ss_ServiceIndicator = -1; +static gint ett_gsm_map_ss_RegisterCC_EntryRes = -1; +static gint ett_gsm_map_ss_EraseCC_EntryArg = -1; +static gint ett_gsm_map_ss_EraseCC_EntryRes = -1; + +/* --- Module MAP-ER-DataTypes --- --- --- */ + +static gint ett_gsm_map_er_RoamingNotAllowedParam = -1; +static gint ett_gsm_map_er_CallBarredParam = -1; +static gint ett_gsm_map_er_ExtensibleCallBarredParam = -1; +static gint ett_gsm_map_er_CUG_RejectParam = -1; +static gint ett_gsm_map_er_SS_IncompatibilityCause = -1; +static gint ett_gsm_map_er_SM_DeliveryFailureCause = -1; +static gint ett_gsm_map_er_AbsentSubscriberSM_Param = -1; +static gint ett_gsm_map_er_SystemFailureParam = -1; +static gint ett_gsm_map_er_ExtensibleSystemFailureParam = -1; +static gint ett_gsm_map_er_DataMissingParam = -1; +static gint ett_gsm_map_er_UnexpectedDataParam = -1; +static gint ett_gsm_map_er_FacilityNotSupParam = -1; +static gint ett_gsm_map_er_OR_NotAllowedParam = -1; +static gint ett_gsm_map_er_UnknownSubscriberParam = -1; +static gint ett_gsm_map_er_NumberChangedParam = -1; +static gint ett_gsm_map_er_UnidentifiedSubParam = -1; +static gint ett_gsm_map_er_IllegalSubscriberParam = -1; +static gint ett_gsm_map_er_IllegalEquipmentParam = -1; +static gint ett_gsm_map_er_BearerServNotProvParam = -1; +static gint ett_gsm_map_er_TeleservNotProvParam = -1; +static gint ett_gsm_map_er_TracingBufferFullParam = -1; +static gint ett_gsm_map_er_NoRoamingNbParam = -1; +static gint ett_gsm_map_er_AbsentSubscriberParam = -1; +static gint ett_gsm_map_er_BusySubscriberParam = -1; +static gint ett_gsm_map_er_NoSubscriberReplyParam = -1; +static gint ett_gsm_map_er_ForwardingViolationParam = -1; +static gint ett_gsm_map_er_ForwardingFailedParam = -1; +static gint ett_gsm_map_er_ATI_NotAllowedParam = -1; +static gint ett_gsm_map_er_ATSI_NotAllowedParam = -1; +static gint ett_gsm_map_er_ATM_NotAllowedParam = -1; +static gint ett_gsm_map_er_IllegalSS_OperationParam = -1; +static gint ett_gsm_map_er_SS_NotAvailableParam = -1; +static gint ett_gsm_map_er_SS_SubscriptionViolationParam = -1; +static gint ett_gsm_map_er_InformationNotAvailableParam = -1; +static gint ett_gsm_map_er_SubBusyForMT_SMS_Param = -1; +static gint ett_gsm_map_er_MessageWaitListFullParam = -1; +static gint ett_gsm_map_er_ResourceLimitationParam = -1; +static gint ett_gsm_map_er_NoGroupCallNbParam = -1; +static gint ett_gsm_map_er_IncompatibleTerminalParam = -1; +static gint ett_gsm_map_er_ShortTermDenialParam = -1; +static gint ett_gsm_map_er_LongTermDenialParam = -1; +static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param = -1; +static gint ett_gsm_map_er_UnauthorizedLCSClient_Param = -1; +static gint ett_gsm_map_er_PositionMethodFailure_Param = -1; +static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param = -1; +static gint ett_gsm_map_er_MM_EventNotSupported_Param = -1; +static gint ett_gsm_map_er_TargetCellOutsideGCA_Param = -1; +static gint ett_gsm_map_er_OngoingGroupCallParam = -1; + +/* --- Module MAP-SM-DataTypes --- --- --- */ + +static gint ett_gsm_map_sm_RoutingInfoForSM_Arg = -1; +static gint ett_gsm_map_sm_RoutingInfoForSM_Res = -1; +static gint ett_gsm_map_sm_LocationInfoWithLMSI = -1; +static gint ett_gsm_map_sm_Additional_Number = -1; +static gint ett_gsm_map_sm_MO_ForwardSM_Arg = -1; +static gint ett_gsm_map_sm_MO_ForwardSM_Res = -1; +static gint ett_gsm_map_sm_MT_ForwardSM_Arg = -1; +static gint ett_gsm_map_sm_MT_ForwardSM_Res = -1; +static gint ett_gsm_map_sm_SM_RP_DA = -1; +static gint ett_gsm_map_sm_SM_RP_OA = -1; +static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg = -1; +static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes = -1; +static gint ett_gsm_map_sm_AlertServiceCentreArg = -1; +static gint ett_gsm_map_sm_InformServiceCentreArg = -1; +static gint ett_gsm_map_sm_MW_Status = -1; +static gint ett_gsm_map_sm_ReadyForSM_Arg = -1; +static gint ett_gsm_map_sm_ReadyForSM_Res = -1; +static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg = -1; +static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res = -1; +static gint ett_gsm_map_sm_DispatcherList = -1; + +/* --- Module MAP-OM-DataTypes --- --- --- */ + +static gint ett_gsm_map_om_ActivateTraceModeArg = -1; +static gint ett_gsm_map_om_TraceDepthList = -1; +static gint ett_gsm_map_om_TraceNE_TypeList = -1; +static gint ett_gsm_map_om_TraceInterfaceList = -1; +static gint ett_gsm_map_om_MSC_S_InterfaceList = -1; +static gint ett_gsm_map_om_MGW_InterfaceList = -1; +static gint ett_gsm_map_om_SGSN_InterfaceList = -1; +static gint ett_gsm_map_om_GGSN_InterfaceList = -1; +static gint ett_gsm_map_om_RNC_InterfaceList = -1; +static gint ett_gsm_map_om_BMSC_InterfaceList = -1; +static gint ett_gsm_map_om_TraceEventList = -1; +static gint ett_gsm_map_om_MSC_S_EventList = -1; +static gint ett_gsm_map_om_MGW_EventList = -1; +static gint ett_gsm_map_om_SGSN_EventList = -1; +static gint ett_gsm_map_om_GGSN_EventList = -1; +static gint ett_gsm_map_om_BMSC_EventList = -1; +static gint ett_gsm_map_om_TracePropagationList = -1; +static gint ett_gsm_map_om_ActivateTraceModeRes = -1; +static gint ett_gsm_map_om_DeactivateTraceModeArg = -1; +static gint ett_gsm_map_om_DeactivateTraceModeRes = -1; + +/* --- Module MAP-MS-DataTypes --- --- --- */ + +static gint ett_gsm_map_ms_UpdateLocationArg = -1; +static gint ett_gsm_map_ms_VLR_Capability = -1; +static gint ett_gsm_map_ms_SupportedRAT_Types = -1; +static gint ett_gsm_map_ms_SuperChargerInfo = -1; +static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets = -1; +static gint ett_gsm_map_ms_UpdateLocationRes = -1; +static gint ett_gsm_map_ms_ADD_Info = -1; +static gint ett_gsm_map_ms_CancelLocationArg_U = -1; +static gint ett_gsm_map_ms_CancelLocationRes = -1; +static gint ett_gsm_map_ms_PurgeMS_Arg_U = -1; +static gint ett_gsm_map_ms_PurgeMS_Res = -1; +static gint ett_gsm_map_ms_SendIdentificationArg = -1; +static gint ett_gsm_map_ms_SendIdentificationRes_U = -1; +static gint ett_gsm_map_ms_AuthenticationSetList = -1; +static gint ett_gsm_map_ms_TripletList = -1; +static gint ett_gsm_map_ms_QuintupletList = -1; +static gint ett_gsm_map_ms_AuthenticationTriplet = -1; +static gint ett_gsm_map_ms_AuthenticationQuintuplet = -1; +static gint ett_gsm_map_ms_CurrentSecurityContext = -1; +static gint ett_gsm_map_ms_GSM_SecurityContextData = -1; +static gint ett_gsm_map_ms_UMTS_SecurityContextData = -1; +static gint ett_gsm_map_ms_AuthenticationFailureReportArg = -1; +static gint ett_gsm_map_ms_AuthenticationFailureReportRes = -1; +static gint ett_gsm_map_ms_UpdateGprsLocationArg = -1; +static gint ett_gsm_map_ms_SGSN_Capability = -1; +static gint ett_gsm_map_ms_UpdateGprsLocationRes = -1; +static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U = -1; +static gint ett_gsm_map_ms_AllowedUMTS_Algorithms = -1; +static gint ett_gsm_map_ms_PrepareHO_Arg_U = -1; +static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList = -1; +static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo = -1; +static gint ett_gsm_map_ms_RadioResourceList = -1; +static gint ett_gsm_map_ms_RadioResource = -1; +static gint ett_gsm_map_ms_PrepareHO_Res_U = -1; +static gint ett_gsm_map_ms_SelectedUMTS_Algorithms = -1; +static gint ett_gsm_map_ms_ChosenRadioResourceInformation = -1; +static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U = -1; +static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U = -1; +static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U = -1; +static gint ett_gsm_map_ms_SupportedCodecsList = -1; +static gint ett_gsm_map_ms_CodecList = -1; +static gint ett_gsm_map_ms_SendEndSignal_Arg_U = -1; +static gint ett_gsm_map_ms_SendEndSignal_Res = -1; +static gint ett_gsm_map_ms_RelocationNumberList = -1; +static gint ett_gsm_map_ms_RelocationNumber = -1; +static gint ett_gsm_map_ms_SendAuthenticationInfoArg = -1; +static gint ett_gsm_map_ms_Re_synchronisationInfo = -1; +static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U = -1; +static gint ett_gsm_map_ms_CheckIMEI_Arg = -1; +static gint ett_gsm_map_ms_CheckIMEI_Res = -1; +static gint ett_gsm_map_ms_RequestedEquipmentInfo = -1; +static gint ett_gsm_map_ms_UESBI_Iu = -1; +static gint ett_gsm_map_ms_InsertSubscriberDataArg = -1; +static gint ett_gsm_map_ms_AccessRestrictionData = -1; +static gint ett_gsm_map_ms_LCSInformation = -1; +static gint ett_gsm_map_ms_GMLC_List = -1; +static gint ett_gsm_map_ms_GPRSDataList = -1; +static gint ett_gsm_map_ms_PDP_Context = -1; +static gint ett_gsm_map_ms_GPRSSubscriptionData = -1; +static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo = -1; +static gint ett_gsm_map_ms_GPRS_CSI = -1; +static gint ett_gsm_map_ms_GPRS_CamelTDPDataList = -1; +static gint ett_gsm_map_ms_GPRS_CamelTDPData = -1; +static gint ett_gsm_map_ms_LSADataList = -1; +static gint ett_gsm_map_ms_LSAData = -1; +static gint ett_gsm_map_ms_LSAInformation = -1; +static gint ett_gsm_map_ms_SubscriberData = -1; +static gint ett_gsm_map_ms_BearerServiceList = -1; +static gint ett_gsm_map_ms_TeleserviceList = -1; +static gint ett_gsm_map_ms_ODB_Data = -1; +static gint ett_gsm_map_ms_ODB_GeneralData = -1; +static gint ett_gsm_map_ms_ODB_HPLMN_Data = -1; +static gint ett_gsm_map_ms_Ext_SS_InfoList = -1; +static gint ett_gsm_map_ms_Ext_SS_Info = -1; +static gint ett_gsm_map_ms_Ext_ForwInfo = -1; +static gint ett_gsm_map_ms_Ext_ForwFeatureList = -1; +static gint ett_gsm_map_ms_Ext_ForwFeature = -1; +static gint ett_gsm_map_ms_Ext_CallBarInfo = -1; +static gint ett_gsm_map_ms_Ext_CallBarFeatureList = -1; +static gint ett_gsm_map_ms_Ext_CallBarringFeature = -1; +static gint ett_gsm_map_ms_CUG_Info = -1; +static gint ett_gsm_map_ms_CUG_SubscriptionList = -1; +static gint ett_gsm_map_ms_CUG_Subscription = -1; +static gint ett_gsm_map_ms_CUG_FeatureList = -1; +static gint ett_gsm_map_ms_Ext_BasicServiceGroupList = -1; +static gint ett_gsm_map_ms_CUG_Feature = -1; +static gint ett_gsm_map_ms_Ext_SS_Data = -1; +static gint ett_gsm_map_ms_LCS_PrivacyExceptionList = -1; +static gint ett_gsm_map_ms_LCS_PrivacyClass = -1; +static gint ett_gsm_map_ms_ExternalClientList = -1; +static gint ett_gsm_map_ms_PLMNClientList = -1; +static gint ett_gsm_map_ms_Ext_ExternalClientList = -1; +static gint ett_gsm_map_ms_ExternalClient = -1; +static gint ett_gsm_map_ms_ServiceTypeList = -1; +static gint ett_gsm_map_ms_ServiceType = -1; +static gint ett_gsm_map_ms_MOLR_List = -1; +static gint ett_gsm_map_ms_MOLR_Class = -1; +static gint ett_gsm_map_ms_ZoneCodeList = -1; +static gint ett_gsm_map_ms_InsertSubscriberDataRes = -1; +static gint ett_gsm_map_ms_DeleteSubscriberDataArg = -1; +static gint ett_gsm_map_ms_SpecificCSI_Withdraw = -1; +static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw = -1; +static gint ett_gsm_map_ms_ContextIdList = -1; +static gint ett_gsm_map_ms_LSAInformationWithdraw = -1; +static gint ett_gsm_map_ms_LSAIdentityList = -1; +static gint ett_gsm_map_ms_BasicServiceList = -1; +static gint ett_gsm_map_ms_DeleteSubscriberDataRes = -1; +static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo = -1; +static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList = -1; +static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria = -1; +static gint ett_gsm_map_ms_TPDU_TypeCriterion = -1; +static gint ett_gsm_map_ms_D_CSI = -1; +static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList = -1; +static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium = -1; +static gint ett_gsm_map_ms_SS_CSI = -1; +static gint ett_gsm_map_ms_SS_CamelData = -1; +static gint ett_gsm_map_ms_SS_EventList = -1; +static gint ett_gsm_map_ms_O_CSI = -1; +static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList = -1; +static gint ett_gsm_map_ms_O_BcsmCamelTDPData = -1; +static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList = -1; +static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList = -1; +static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria = -1; +static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria = -1; +static gint ett_gsm_map_ms_DestinationNumberCriteria = -1; +static gint ett_gsm_map_ms_DestinationNumberList = -1; +static gint ett_gsm_map_ms_DestinationNumberLengthList = -1; +static gint ett_gsm_map_ms_BasicServiceCriteria = -1; +static gint ett_gsm_map_ms_O_CauseValueCriteria = -1; +static gint ett_gsm_map_ms_T_CauseValueCriteria = -1; +static gint ett_gsm_map_ms_SupportedCamelPhases = -1; +static gint ett_gsm_map_ms_OfferedCamel4CSIs = -1; +static gint ett_gsm_map_ms_OfferedCamel4Functionalities = -1; +static gint ett_gsm_map_ms_SMS_CSI = -1; +static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList = -1; +static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data = -1; +static gint ett_gsm_map_ms_M_CSI = -1; +static gint ett_gsm_map_ms_MG_CSI = -1; +static gint ett_gsm_map_ms_MobilityTriggers = -1; +static gint ett_gsm_map_ms_T_CSI = -1; +static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList = -1; +static gint ett_gsm_map_ms_T_BcsmCamelTDPData = -1; +static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg = -1; +static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes = -1; +static gint ett_gsm_map_ms_FailureReportArg = -1; +static gint ett_gsm_map_ms_FailureReportRes = -1; +static gint ett_gsm_map_ms_NoteMsPresentForGprsArg = -1; +static gint ett_gsm_map_ms_NoteMsPresentForGprsRes = -1; +static gint ett_gsm_map_ms_ResetArg = -1; +static gint ett_gsm_map_ms_RestoreDataArg = -1; +static gint ett_gsm_map_ms_RestoreDataRes = -1; +static gint ett_gsm_map_ms_VBSDataList = -1; +static gint ett_gsm_map_ms_VGCSDataList = -1; +static gint ett_gsm_map_ms_VoiceGroupCallData = -1; +static gint ett_gsm_map_ms_AdditionalSubscriptions = -1; +static gint ett_gsm_map_ms_VoiceBroadcastData = -1; +static gint ett_gsm_map_ms_ProvideSubscriberInfoArg = -1; +static gint ett_gsm_map_ms_ProvideSubscriberInfoRes = -1; +static gint ett_gsm_map_ms_SubscriberInfo = -1; +static gint ett_gsm_map_ms_MNPInfoRes = -1; +static gint ett_gsm_map_ms_GPRSMSClass = -1; +static gint ett_gsm_map_ms_RequestedInfo = -1; +static gint ett_gsm_map_ms_LocationInformation = -1; +static gint ett_gsm_map_ms_LocationInformationGPRS = -1; +static gint ett_gsm_map_ms_SubscriberState = -1; +static gint ett_gsm_map_ms_PS_SubscriberState = -1; +static gint ett_gsm_map_ms_PDP_ContextInfoList = -1; +static gint ett_gsm_map_ms_PDP_ContextInfo = -1; +static gint ett_gsm_map_ms_AnyTimeInterrogationArg = -1; +static gint ett_gsm_map_ms_AnyTimeInterrogationRes = -1; +static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg = -1; +static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes = -1; +static gint ett_gsm_map_ms_RequestedSubscriptionInfo = -1; +static gint ett_gsm_map_ms_MSISDN_BS_List = -1; +static gint ett_gsm_map_ms_MSISDN_BS = -1; +static gint ett_gsm_map_ms_CallForwardingData = -1; +static gint ett_gsm_map_ms_CallBarringData = -1; +static gint ett_gsm_map_ms_ODB_Info = -1; +static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo = -1; +static gint ett_gsm_map_ms_AnyTimeModificationArg = -1; +static gint ett_gsm_map_ms_AnyTimeModificationRes = -1; +static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info = -1; +static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info = -1; +static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data = -1; +static gint ett_gsm_map_ms_ModificationRequestFor_CSI = -1; +static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data = -1; +static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg = -1; +static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes = -1; +static gint ett_gsm_map_ms_NoteMM_EventArg = -1; +static gint ett_gsm_map_ms_NoteMM_EventRes = -1; +static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE = -1; +static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE = -1; +static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE = -1; + +/* --- Module MAP-CH-DataTypes --- --- --- */ + +static gint ett_gsm_map_ch_CUG_CheckInfo = -1; +static gint ett_gsm_map_ch_SendRoutingInfoArg = -1; +static gint ett_gsm_map_ch_SuppressMTSS = -1; +static gint ett_gsm_map_ch_SendRoutingInfoRes_U = -1; +static gint ett_gsm_map_ch_AllowedServices = -1; +static gint ett_gsm_map_ch_CCBS_Indicators = -1; +static gint ett_gsm_map_ch_RoutingInfo = -1; +static gint ett_gsm_map_ch_ForwardingData = -1; +static gint ett_gsm_map_ch_ProvideRoamingNumberArg = -1; +static gint ett_gsm_map_ch_ProvideRoamingNumberRes = -1; +static gint ett_gsm_map_ch_ResumeCallHandlingArg = -1; +static gint ett_gsm_map_ch_UU_Data = -1; +static gint ett_gsm_map_ch_ResumeCallHandlingRes = -1; +static gint ett_gsm_map_ch_CamelInfo = -1; +static gint ett_gsm_map_ch_ExtendedRoutingInfo = -1; +static gint ett_gsm_map_ch_CamelRoutingInfo = -1; +static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo = -1; +static gint ett_gsm_map_ch_SetReportingStateArg = -1; +static gint ett_gsm_map_ch_SetReportingStateRes = -1; +static gint ett_gsm_map_ch_StatusReportArg = -1; +static gint ett_gsm_map_ch_EventReportData = -1; +static gint ett_gsm_map_ch_CallReportData = -1; +static gint ett_gsm_map_ch_StatusReportRes = -1; +static gint ett_gsm_map_ch_RemoteUserFreeArg = -1; +static gint ett_gsm_map_ch_RemoteUserFreeRes = -1; +static gint ett_gsm_map_ch_IST_AlertArg = -1; +static gint ett_gsm_map_ch_IST_AlertRes = -1; +static gint ett_gsm_map_ch_IST_CommandArg = -1; +static gint ett_gsm_map_ch_IST_CommandRes = -1; +static gint ett_gsm_map_ch_ReleaseResourcesArg = -1; +static gint ett_gsm_map_ch_ReleaseResourcesRes = -1; + +/* --- Module MAP-LCS-DataTypes --- --- --- */ + +static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg = -1; +static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res = -1; +static gint ett_gsm_map_lcs_LCSLocationInfo = -1; +static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg = -1; +static gint ett_gsm_map_lcs_LocationType = -1; +static gint ett_gsm_map_lcs_DeferredLocationEventType = -1; +static gint ett_gsm_map_lcs_LCS_ClientID = -1; +static gint ett_gsm_map_lcs_LCSClientName = -1; +static gint ett_gsm_map_lcs_LCSRequestorID = -1; +static gint ett_gsm_map_lcs_LCS_QoS = -1; +static gint ett_gsm_map_lcs_ResponseTime = -1; +static gint ett_gsm_map_lcs_SupportedGADShapes = -1; +static gint ett_gsm_map_lcs_LCSCodeword = -1; +static gint ett_gsm_map_lcs_LCS_PrivacyCheck = -1; +static gint ett_gsm_map_lcs_AreaEventInfo = -1; +static gint ett_gsm_map_lcs_AreaDefinition = -1; +static gint ett_gsm_map_lcs_AreaList = -1; +static gint ett_gsm_map_lcs_Area = -1; +static gint ett_gsm_map_lcs_PeriodicLDRInfo = -1; +static gint ett_gsm_map_lcs_ReportingPLMNList = -1; +static gint ett_gsm_map_lcs_PLMNList = -1; +static gint ett_gsm_map_lcs_ReportingPLMN = -1; +static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res = -1; +static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg = -1; +static gint ett_gsm_map_lcs_Deferredmt_lrData = -1; +static gint ett_gsm_map_lcs_SubscriberLocationReport_Res = -1; + +/* --- Module MAP-GR-DataTypes --- --- --- */ + +static gint ett_gsm_map_gr_PrepareGroupCallArg = -1; +static gint ett_gsm_map_gr_PrepareGroupCallRes = -1; +static gint ett_gsm_map_gr_SendGroupCallEndSignalArg = -1; +static gint ett_gsm_map_gr_SendGroupCallEndSignalRes = -1; +static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg = -1; +static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg = -1; +static gint ett_gsm_map_gr_StateAttributes = -1; +static gint ett_gsm_map_gr_SendGroupCallInfoArg = -1; +static gint ett_gsm_map_gr_SendGroupCallInfoRes = -1; + +/* --- Module MAP-DialogueInformation --- --- --- */ + +static gint ett_gsm_map_dialogue_MAP_DialoguePDU = -1; +static gint ett_gsm_map_dialogue_MAP_OpenInfo = -1; +static gint ett_gsm_map_dialogue_MAP_AcceptInfo = -1; +static gint ett_gsm_map_dialogue_MAP_CloseInfo = -1; +static gint ett_gsm_map_dialogue_MAP_RefuseInfo = -1; +static gint ett_gsm_map_dialogue_MAP_UserAbortInfo = -1; +static gint ett_gsm_map_dialogue_MAP_UserAbortChoice = -1; +static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo = -1; + +/* --- 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-Protocol --- --- --- */ + + +/* --- Module DummyMAP --- --- --- */ + +static gint ett_gsm_old_Component = -1; +static gint ett_gsm_old_Invoke = -1; +static gint ett_gsm_old_ReturnResult = -1; +static gint ett_gsm_old_T_resultretres = -1; +static gint ett_gsm_old_ReturnError = -1; +static gint ett_gsm_old_Reject = -1; +static gint ett_gsm_old_T_invokeIDRej = -1; +static gint ett_gsm_old_T_problem = -1; +static gint ett_gsm_old_MAP_OPERATION = -1; +static gint ett_gsm_old_MAP_ERROR = -1; +static gint ett_gsm_old_Bss_APDU = -1; +static gint ett_gsm_old_CancelLocationArgV2 = -1; +static gint ett_gsm_old_ProvideSIWFSNumberArg = -1; +static gint ett_gsm_old_ProvideSIWFSNumberRes = -1; +static gint ett_gsm_old_PurgeMSArgV2 = -1; +static gint ett_gsm_old_PrepareHO_ArgOld = -1; +static gint ett_gsm_old_PrepareHO_ResOld = -1; +static gint ett_gsm_old_SendAuthenticationInfoResOld = -1; +static gint ett_gsm_old_SendAuthenticationInfoResOld_item = -1; +static gint ett_gsm_old_SendIdentificationResV2 = -1; +static gint ett_gsm_old_TripletListold = -1; +static gint ett_gsm_old_AuthenticationTriplet_v2 = -1; +static gint ett_gsm_old_SIWFSSignallingModifyArg = -1; +static gint ett_gsm_old_SIWFSSignallingModifyRes = -1; +static gint ett_gsm_old_SecureTransportArg = -1; +static gint ett_gsm_old_SecureTransportErrorParam = -1; +static gint ett_gsm_old_SecureTransportRes = -1; +static gint ett_gsm_old_SecurityHeader = -1; +static gint ett_gsm_old_OriginalComponentIdentifier = -1; +static gint ett_gsm_old_OperationCode = -1; +static gint ett_gsm_old_ErrorCode = -1; +static gint ett_gsm_old_PlmnContainer_U = -1; +static gint ett_gsm_old_T_operatorSS_Code = -1; +static gint ett_gsm_old_ForwardSM_Arg = -1; +static gint ett_gsm_old_SM_RP_DAold = -1; +static gint ett_gsm_old_SM_RP_OAold = -1; + +/* --- Module SS-DataTypes --- --- --- */ + +static gint ett_gsm_ss_NotifySS_Arg = -1; +static gint ett_gsm_ss_ForwardChargeAdviceArg = -1; +static gint ett_gsm_ss_ChargingInformation = -1; +static gint ett_gsm_ss_ForwardCUG_InfoArg = -1; +static gint ett_gsm_ss_ECT_Indicator = -1; +static gint ett_gsm_ss_NameIndicator = -1; +static gint ett_gsm_ss_Name = -1; +static gint ett_gsm_ss_NameSet = -1; +static gint ett_gsm_ss_RDN = -1; +static gint ett_gsm_ss_RemotePartyNumber = -1; +static gint ett_gsm_ss_AccessRegisterCCEntryArg = -1; +static gint ett_gsm_ss_CallDeflectionArg = -1; +static gint ett_gsm_ss_UserUserServiceArg = -1; +static gint ett_gsm_ss_LocationNotificationArg = -1; +static gint ett_gsm_ss_LocationNotificationRes = -1; +static gint ett_gsm_ss_LCS_MOLRArg = -1; +static gint ett_gsm_ss_LCS_MOLRRes = -1; +static gint ett_gsm_ss_LCS_AreaEventRequestArg = -1; +static gint ett_gsm_ss_LCS_AreaEventReportArg = -1; +static gint ett_gsm_ss_LCS_AreaEventCancellationArg = -1; +static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg = -1; +static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes = -1; +static gint ett_gsm_ss_LCS_LocationUpdateArg = -1; +static gint ett_gsm_ss_LCS_LocationUpdateRes = -1; +static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg = -1; + +/* --- Module SS-Operations --- --- --- */ + /*--- End of included file: packet-gsm_map-ett.c ---*/ -#line 151 "packet-gsm_map-template.c" +#line 154 "packet-gsm_map-template.c" static dissector_table_t sms_dissector_table; /* SMS TPDU */ static dissector_handle_t data_handle; @@ -1942,337 +2337,152 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr /*--- Included file: packet-gsm_map-fn.c ---*/ #line 1 "packet-gsm_map-fn.c" -/*--- Fields for imported types ---*/ +/* --- Module Remote-Operations-Information-Objects --- --- --- */ static int -dissect_gsm_map_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_Remote_Operations_Information_Objects_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_invokeID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InvokeIdType(FALSE, tvb, offset, actx, tree, hf_gsm_map_invokeID); -} -static int dissect_linkedID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InvokeIdType(TRUE, tvb, offset, actx, tree, hf_gsm_map_linkedID); -} -static int dissect_derivable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InvokeIdType(FALSE, tvb, offset, actx, tree, hf_gsm_map_derivable); -} -static const value_string gsm_map_GSMMAPOperationLocalvalue_vals[] = { - { 2, "updateLocation" }, - { 3, "cancelLocation" }, - { 4, "provideRoamingNumber" }, - { 5, "noteSubscriberDataModified" }, - { 6, "resumeCallHandling" }, - { 7, "insertSubscriberData" }, - { 8, "deleteSubscriberData" }, - { 9, "sendParameters" }, - { 10, "registerSS" }, - { 11, "eraseSS" }, - { 12, "activateSS" }, - { 13, "deactivateSS" }, - { 14, "interrogateSS" }, - { 15, "authenticationFailureReport" }, - { 17, "registerPassword" }, - { 18, "getPassword" }, - { 19, "processUnstructuredSS-Data" }, - { 20, "releaseResources" }, - { 21, "mt-ForwardSM-VGCS" }, - { 22, "sendRoutingInfo" }, - { 23, "updateGprsLocation" }, - { 24, "sendRoutingInfoForGprs" }, - { 25, "failureReport" }, - { 26, "noteMsPresentForGprs" }, - { 28, "performHandover" }, - { 29, "sendEndSignal" }, - { 30, "performSubsequentHandover" }, - { 31, "provideSIWFSNumber" }, - { 32, "sIWFSSignallingModify" }, - { 33, "processAccessSignalling" }, - { 34, "forwardAccessSignalling" }, - { 35, "noteInternalHandover" }, - { 37, "reset" }, - { 38, "forwardCheckSS" }, - { 39, "prepareGroupCall" }, - { 40, "sendGroupCallEndSignal" }, - { 41, "processGroupCallSignalling" }, - { 42, "forwardGroupCallSignalling" }, - { 43, "checkIMEI" }, - { 44, "mt-forwardSM" }, - { 45, "sendRoutingInfoForSM" }, - { 46, "mo-forwardSM" }, - { 47, "reportSM-DeliveryStatus" }, - { 48, "noteSubscriberPresent" }, - { 49, "alertServiceCentreWithoutResult" }, - { 50, "activateTraceMode" }, - { 51, "deactivateTraceMode" }, - { 52, "traceSubscriberActivity" }, - { 54, "beginSubscriberActivity" }, - { 55, "sendIdentification" }, - { 56, "sendAuthenticationInfo" }, - { 57, "restoreData" }, - { 58, "sendIMSI" }, - { 59, "processUnstructuredSS-Request" }, - { 60, "unstructuredSS-Request" }, - { 61, "unstructuredSS-Notify" }, - { 62, "anyTimeSubscriptionInterrogation" }, - { 63, "informServiceCentre" }, - { 64, "alertServiceCentre" }, - { 65, "anyTimeModification" }, - { 66, "readyForSM" }, - { 67, "purgeMS" }, - { 68, "prepareHandover" }, - { 69, "prepareSubsequentHandover" }, - { 70, "provideSubscriberInfo" }, - { 71, "anyTimeInterrogation" }, - { 72, "ss-InvocationNotification" }, - { 73, "setReportingState" }, - { 74, "statusReport" }, - { 75, "remoteUserFree" }, - { 76, "registerCC-Entry" }, - { 77, "eraseCC-Entry" }, - { 78, "secureTransportClass1" }, - { 79, "secureTransportClass2" }, - { 80, "secureTransportClass3" }, - { 81, "secureTransportClass4" }, - { 83, "provideSubscriberLocation" }, - { 84, "sendGroupCallInfo" }, - { 85, "sendRoutingInfoForLCS" }, - { 86, "subscriberLocationReport" }, - { 87, "ist-Alert" }, - { 88, "ist-Command" }, - { 89, "noteMM-Event" }, - { 0, NULL } -}; - static int -dissect_gsm_map_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 142 "gsmmap.cnf" - - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - &opcode); - - if (check_col(actx->pinfo->cinfo, COL_INFO)){ - col_append_fstr(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode)); - } - - +dissect_Remote_Operations_Information_Objects_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } +static const value_string Remote_Operations_Information_Objects_Code_vals[] = { + { 0, "local" }, + { 1, "global" }, + { 0, NULL } +}; + +static const ber_choice_t Code_choice[] = { + { 0, &hf_Remote_Operations_Information_Objects_local, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_Remote_Operations_Information_Objects_INTEGER }, + { 1, &hf_Remote_Operations_Information_Objects_global, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_Remote_Operations_Information_Objects_OBJECT_IDENTIFIER }, + { 0, NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_Remote_Operations_Information_Objects_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Code_choice, hf_index, ett_Remote_Operations_Information_Objects_Code, + NULL); return offset; } -static int dissect_operationLocalvalue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OperationLocalvalue(FALSE, tvb, offset, actx, tree, hf_gsm_map_operationLocalvalue); -} static int -dissect_gsm_map_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); +dissect_Remote_Operations_Information_Objects_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_globalValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OBJECT_IDENTIFIER(FALSE, tvb, offset, actx, tree, hf_gsm_map_globalValue); -} -static const value_string gsm_map_OPERATION_vals[] = { - { 0, "localValue" }, - { 1, "globalValue" }, +/* --- Module MobileDomainDefinitions --- --- --- */ + + +static const value_string MobileDomainDefinitions_CommonComponentId_vals[] = { + { 0, "ac-Id" }, + { 1, "as-Id" }, + { 2, "ase-Id" }, + { 3, "moduleId" }, + { 4, "er-Id" }, { 0, NULL } }; -static const ber_old_choice_t OPERATION_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_operationLocalvalue }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - OPERATION_choice, hf_index, ett_gsm_map_OPERATION, - NULL); +dissect_MobileDomainDefinitions_CommonComponentId(gboolean implicit_tag _U_, tvbuff_t *tvb _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_opCode(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OPERATION(FALSE, tvb, offset, actx, tree, hf_gsm_map_opCode); -} +/* --- Module MAP-ApplicationContexts --- --- --- */ -static int -dissect_gsm_map_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 129 "gsmmap.cnf" - offset = dissect_invokeData(tree, tvb, offset, actx); +/* --- Module MAP-SS-Code --- --- --- */ + +int +dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + return offset; } -static int dissect_invokeparameter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InvokeParameter(FALSE, tvb, offset, actx, tree, hf_gsm_map_invokeparameter); -} -static const ber_old_sequence_t Invoke_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_invokeparameter }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-BS-Code --- --- --- */ + + static int -dissect_gsm_map_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Invoke_sequence, hf_index, ett_gsm_map_Invoke); +dissect_gsm_map_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_invoke_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Invoke(TRUE, tvb, offset, actx, tree, hf_gsm_map_invoke); -} static int -dissect_gsm_map_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 132 "gsmmap.cnf" - offset = dissect_returnResultData(tree, tvb, offset, actx); - - +dissect_gsm_map_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_returnparameter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnResultParameter(FALSE, tvb, offset, actx, tree, hf_gsm_map_returnparameter); -} -static const ber_old_sequence_t T_resultretres_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_returnparameter }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-TS-Code --- --- --- */ + + static int -dissect_gsm_map_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - T_resultretres_sequence, hf_index, ett_gsm_map_T_resultretres); +dissect_gsm_map_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_resultretres(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_resultretres(FALSE, tvb, offset, actx, tree, hf_gsm_map_resultretres); -} -static const ber_old_sequence_t ReturnResult_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_resultretres }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReturnResult_sequence, hf_index, ett_gsm_map_ReturnResult); +dissect_gsm_map_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_returnResultLast_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnResult(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnResultLast); -} -static int dissect_returnResultNotLast_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnResult(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnResultNotLast); -} -const value_string gsm_map_GSMMAPLocalErrorcode_vals[] = { - { 34, "systemFailure" }, - { 35, "dataMissing" }, - { 36, "unexpectedDataValue" }, - { 21, "facilityNotSupported" }, - { 28, "incompatibleTerminal" }, - { 51, "resourceLimitation" }, - { 1, "unknownSubscriber" }, - { 44, "numberChanged" }, - { 3, "unknownMSC" }, - { 5, "unidentifiedSubscriber" }, - { 7, "unknownEquipment" }, - { 8, "roamingNotAllowed" }, - { 9, "illegalSubscriber" }, - { 12, "illegalEquipment" }, - { 10, "bearerServiceNotProvisioned" }, - { 11, "teleserviceNotProvisioned" }, - { 25, "noHandoverNumberAvailable" }, - { 26, "subsequentHandoverFailure" }, - { 42, "targetCellOutsideGroupCallArea" }, - { 40, "tracingBufferFull" }, - { 39, "noRoamingNumberAvailable" }, - { 27, "absentSubscriber" }, - { 45, "busySubscriber" }, - { 46, "noSubscriberReply" }, - { 13, "callBarred" }, - { 14, "forwardingViolation" }, - { 47, "forwardingFailed" }, - { 15, "cug-Reject" }, - { 48, "or-NotAllowed" }, - { 49, "ati-NotAllowed" }, - { 60, "atsi-NotAllowed" }, - { 61, "atm-NotAllowed" }, - { 62, "informationNotAvailabl" }, - { 16, "illegalSS-Operation" }, - { 17, "ss-ErrorStatus" }, - { 18, "ss-NotAvailable" }, - { 19, "ss-SubscriptionViolatio" }, - { 20, "ss-Incompatibility" }, - { 71, "unknownAlphabe" }, - { 72, "ussd-Busy" }, - { 37, "pw-RegistrationFailur" }, - { 38, "negativePW-Check" }, - { 43, "numberOfPW-AttemptsViolation" }, - { 29, "shortTermDenial" }, - { 30, "longTermDenial" }, - { 31, "subscriberBusyForMT-SMS" }, - { 32, "sm-DeliveryFailure" }, - { 33, "messageWaitingListFull" }, - { 6, "absentSubscriberSM" }, - { 50, "noGroupCallNumberAvailable" }, - { 52, "unauthorizedRequestingNetwork" }, - { 53, "unauthorizedLCSClient" }, - { 54, "positionMethodFailure" }, - { 58, "unknownOrUnreachableLCSClient" }, - { 59, "mm-EventNotSupported" }, - { 4, "secureTransportError" }, - { 0, NULL } -}; +/* --- Module MAP-ExtensionDataTypes --- --- --- */ -int -dissect_gsm_map_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - &errorCode); + +static int +dissect_gsm_map_T_extId(gboolean implicit_tag _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, &obj_id); return offset; } @@ -2280,72 +2490,75 @@ dissect_gsm_map_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U static int -dissect_gsm_map_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 145 "gsm_map.cnf" + proto_tree_add_text(tree, tvb, offset, -1, "Extension Data"); + if (obj_id){ + offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree); + }else{ + call_dissector(data_handle, tvb, actx->pinfo, tree); + offset = tvb_length_remaining(tvb,offset); + } + + return offset; } -static int dissect_localErrorcode(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocalErrorcode(FALSE, tvb, offset, actx, tree, hf_gsm_map_localErrorcode); -} -static const value_string gsm_map_ERROR_vals[] = { - { 0, "localValue" }, - { 1, "globalValue" }, - { 0, NULL } -}; - -static const ber_old_choice_t ERROR_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localErrorcode }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t 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_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - ERROR_choice, hf_index, ett_gsm_map_ERROR, - NULL); +dissect_gsm_map_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension); return offset; } -static int dissect_returnErrorCode(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ERROR(FALSE, tvb, offset, actx, tree, hf_gsm_map_returnErrorCode); -} +static const ber_sequence_t 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_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 135 "gsmmap.cnf" - offset = dissect_returnErrorData(tree, tvb, offset, actx); - - +dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList); return offset; } -static int dissect_parameter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnErrorParameter(FALSE, tvb, offset, actx, tree, hf_gsm_map_parameter); -} -static const ber_old_sequence_t ReturnError_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnErrorCode }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter }, - { 0, 0, 0, NULL } +static const ber_sequence_t PCS_Extensions_sequence[] = { + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReturnError_sequence, hf_index, ett_gsm_map_ReturnError); +dissect_gsm_map_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PCS_Extensions_sequence, hf_index, ett_gsm_map_PCS_Extensions); return offset; } -static int dissect_returnError_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnError(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnError); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer); + + return offset; } @@ -2356,594 +2569,240 @@ dissect_gsm_map_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U return offset; } -static int dissect_not_derivable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_not_derivable); -} -static int dissect_informPreviousNetworkEntity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_informPreviousNetworkEntity); -} -static int dissect_cs_LCS_NotSupportedByUE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_cs_LCS_NotSupportedByUE); -} -static int dissect_add_Capability(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_add_Capability); -} -static int dissect_solsaSupportIndicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_solsaSupportIndicator); -} -static int dissect_solsaSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_solsaSupportIndicator); -} -static int dissect_longFTN_Supported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_longFTN_Supported); -} -static int dissect_sendSubscriberData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_sendSubscriberData); -} -static int dissect_skipSubscriberDataUpdate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_skipSubscriberDataUpdate); -} -static int dissect_na_ESRK_Request_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_na_ESRK_Request); -} -static int dissect_freezeTMSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_freezeTMSI); -} -static int dissect_freezeP_TMSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_freezeP_TMSI); -} -static int dissect_segmentationProhibited(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_segmentationProhibited); -} -static int dissect_ho_NumberNotRequired(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_ho_NumberNotRequired); -} -static int dissect_multipleBearerRequested_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_multipleBearerRequested); -} -static int dissect_rab_ConfigurationIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_rab_ConfigurationIndicator); -} -static int dissect_multipleBearerNotSupported(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_multipleBearerNotSupported); -} -static int dissect_immediateResponsePreferred_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_immediateResponsePreferred); -} -static int dissect_notificationToCSE(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_notificationToCSE); -} -static int dissect_notificationToCSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_notificationToCSE); -} -static int dissect_csiActive_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_csiActive); -} -static int dissect_roamingRestrictionDueToUnsupportedFeature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_roamingRestrictionDueToUnsupportedFeature); -} -static int dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature); -} -static int dissect_lmu_Indicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_lmu_Indicator); -} -static int dissect_vplmnAddressAllowed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_vplmnAddressAllowed); -} -static int dissect_completeDataListIncluded(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_completeDataListIncluded); -} -static int dissect_csi_Active_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_csi_Active); -} -static int dissect_lsaActiveModeIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaActiveModeIndicator); -} -static int dissect_vbsGroupIndication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_vbsGroupIndication); -} -static int dissect_vgcsGroupIndication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_vgcsGroupIndication); -} -static int dissect_camelSubscriptionInfoWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelSubscriptionInfoWithdraw); -} -static int dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature); -} -static int dissect_gmlc_ListWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmlc_ListWithdraw); -} -static int dissect_istInformationWithdraw(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_istInformationWithdraw); -} -static int dissect_istInformationWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_istInformationWithdraw); -} -static int dissect_chargingCharacteristicsWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_chargingCharacteristicsWithdraw); -} -static int dissect_allGPRSData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_allGPRSData); -} -static int dissect_allLSAData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_allLSAData); -} -static int dissect_tif_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_tif_CSI); -} -static int dissect_msNotReachable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_msNotReachable); -} -static int dissect_broadcastInitEntitlement(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_broadcastInitEntitlement); -} -static int dissect_traceSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceSupportIndicator); -} -static int dissect_or_Interrogation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_or_Interrogation); -} -static int dissect_ccbs_Call_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Call); -} -static int dissect_pre_pagingSupported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_pre_pagingSupported); -} -static int dissect_suppress_VT_CSI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_suppress_VT_CSI); -} -static int dissect_suppress_VT_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_suppress_VT_CSI); -} -static int dissect_suppressIncomingCallBarring(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_suppressIncomingCallBarring); -} -static int dissect_gsmSCF_InitiatedCall(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_gsmSCF_InitiatedCall); -} -static int dissect_cugSubscriptionFlag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_cugSubscriptionFlag); -} -static int dissect_forwardingInterrogationRequired_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingInterrogationRequired); -} -static int dissect_releaseResourcesSupported(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_releaseResourcesSupported); -} -static int dissect_releaseResourcesSupported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_releaseResourcesSupported); -} -static int dissect_suppress_T_CSI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_suppress_T_CSI); -} -static int dissect_ccbs_Possible_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Possible); -} -static int dissect_keepCCBS_CallIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_keepCCBS_CallIndicator); -} -static int dissect_currentLocationRetrieved(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentLocationRetrieved); -} -static int dissect_currentLocationRetrieved_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentLocationRetrieved); -} -static int dissect_sai_Present(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_sai_Present); -} -static int dissect_sai_Present_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_sai_Present); -} -static int dissect_assumedIdle_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_assumedIdle); -} -static int dissect_camelBusy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelBusy); -} -static int dissect_notProvidedFromVLR_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_notProvidedFromVLR); -} -static int dissect_notProvidedFromSGSN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_notProvidedFromSGSN); -} -static int dissect_ps_Detached_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_Detached); -} -static int dissect_ps_AttachedNotReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_AttachedNotReachableForPaging); -} -static int dissect_ps_AttachedReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_AttachedReachableForPaging); -} -static int dissect_pdp_ContextActive_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_ContextActive); -} -static int dissect_cug_OutgoingAccess(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_OutgoingAccess); -} -static int dissect_orNotSupportedInGMSC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_orNotSupportedInGMSC); -} -static int dissect_allInformationSent(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_allInformationSent); -} -static int dissect_allInformationSent_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_allInformationSent); -} -static int dissect_uusCFInteraction_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uusCFInteraction); -} -static int dissect_replaceB_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_replaceB_Number); -} -static int dissect_gprsSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsSupportIndicator); -} -static int dissect_gprsNodeIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsNodeIndicator); -} -static int dissect_noSM_RP_OA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_noSM_RP_OA); -} -static int dissect_noSM_RP_DA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_noSM_RP_DA); -} -static int dissect_moreMessagesToSend(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_moreMessagesToSend); -} -static int dissect_deliveryOutcomeIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_deliveryOutcomeIndicator); -} -static int dissect_alertReasonIndicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_alertReasonIndicator); -} -static int dissect_ongoingCall(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_ongoingCall); -} -static int dissect_locationInformation_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInformation_flg); -} -static int dissect_subscriberState_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberState_flg); -} -static int dissect_currentLocation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentLocation); -} -static int dissect_imei_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_imei_flg); -} -static int dissect_ms_classmark_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ms_classmark); -} -static int dissect_mnpRequestedInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_mnpRequestedInfo); -} -static int dissect_odb_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb); -} -static int dissect_supportedVLR_CAMEL_Phases_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedVLR_CAMEL_Phases_flg); -} -static int dissect_supportedSGSN_CAMEL_Phases_flg_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases_flg); -} -static int dissect_msisdn_BS_List_flag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_msisdn_BS_List_flag); -} -static int dissect_tif_CSI_NotificationToCSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_tif_CSI_NotificationToCSE); -} -static int dissect_uplinkFree_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkFree); -} -static int dissect_uplinkRequest_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkRequest); -} -static int dissect_uplinkReleaseIndication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkReleaseIndication); -} -static int dissect_releaseGroupCall_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_releaseGroupCall); -} -static int dissect_emergencyModeResetCommandFlag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_emergencyModeResetCommandFlag); -} -static int dissect_downlinkAttached_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_downlinkAttached); -} -static int dissect_uplinkAttached_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkAttached); -} -static int dissect_dualCommunication_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_dualCommunication); -} -static int dissect_callOriginator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_callOriginator); -} -static int dissect_uplinkRequestAck_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkRequestAck); -} -static int dissect_uplinkRejectCommand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkRejectCommand); -} -static int dissect_uplinkSeizedCommand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkSeizedCommand); -} -static int dissect_uplinkReleaseCommand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_uplinkReleaseCommand); -} -static int dissect_ps_LCS_NotSupportedByUE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_LCS_NotSupportedByUE); -} -static int dissect_gprsEnhancementsSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsEnhancementsSupportIndicator); -} -static int dissect_smsCallBarringSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_smsCallBarringSupportIndicator); -} -static int dissect_privacyOverride_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_privacyOverride); -} -static int dissect_mo_lrShortCircuitIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_mo_lrShortCircuitIndicator); -} -static int dissect_verticalCoordinateRequest_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_verticalCoordinateRequest); -} -static int dissect_velocityRequest_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_velocityRequest); -} -static int dissect_plmn_ListPrioritized_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmn_ListPrioritized); -} -static int dissect_ran_PeriodicLocationSupport_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ran_PeriodicLocationSupport); -} -static int dissect_deferredmt_lrResponseIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_deferredmt_lrResponseIndicator); -} -static int dissect_pseudonymIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_pseudonymIndicator); -} -static int dissect_userInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_userInfo); -} -static int dissect_shapeOfLocationEstimateNotSupported_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_shapeOfLocationEstimateNotSupported); -} -static int dissect_neededLcsCapabilityNotSupportedInServingNode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_neededLcsCapabilityNotSupportedInServingNode); -} -static int dissect_ccbs_Busy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Busy); -} -static int dissect_gprsConnectionSuspended(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(FALSE, tvb, offset, actx, tree, hf_gsm_map_gprsConnectionSuspended); -} -static int dissect_unauthorisedMessageOriginator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NULL(TRUE, tvb, offset, actx, tree, hf_gsm_map_unauthorisedMessageOriginator); -} -static const value_string gsm_map_T_invokeIDRej_vals[] = { - { 0, "derivable" }, - { 1, "not-derivable" }, - { 0, NULL } -}; - -static const ber_old_choice_t T_invokeIDRej_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_derivable }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_not_derivable }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t 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_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - T_invokeIDRej_choice, hf_index, ett_gsm_map_T_invokeIDRej, - NULL); +dissect_gsm_map_SLR_Arg_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions); return offset; } -static int dissect_invokeIDRej(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_invokeIDRej(FALSE, tvb, offset, actx, tree, hf_gsm_map_invokeIDRej); -} -static const value_string gsm_map_GeneralProblem_vals[] = { - { 0, "unrecognizedComponent" }, - { 1, "mistypedComponent" }, - { 2, "badlyStructuredComponent" }, - { 0, NULL } +static const ber_sequence_t 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_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_SLR_ArgExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer); return offset; } -static int dissect_generalProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GeneralProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_generalProblem); -} -static const value_string gsm_map_InvokeProblem_vals[] = { - { 0, "duplicateInvokeID" }, - { 1, "unrecognizedOperation" }, - { 2, "mistypedParameter" }, - { 3, "resourceLimitation" }, - { 4, "initiatingRelease" }, - { 5, "unrecognizedLinkedID" }, - { 6, "linkedResponseUnexpected" }, - { 7, "unexpectedLinkedOperation" }, - { 0, NULL } -}; +/* --- Module MAP-CommonDataTypes --- --- --- */ + static int -dissect_gsm_map_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 184 "gsm_map.cnf" + tvbuff_t *parameter_tvb; + char *digit_str; + + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + digit_str = unpack_digits(parameter_tvb, 0); + proto_tree_add_string(tree, hf_gsm_map_TBCD_digits, parameter_tvb, 0, -1, digit_str); + + return offset; } -static int dissect_invokeProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InvokeProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_invokeProblem); + + + +int +dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 154 "gsm_map.cnf" + + tvbuff_t *parameter_tvb; + char *digit_str; + guint8 octet; + guint8 na; + guint8 np; + 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); + + proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); + + digit_str = unpack_digits(parameter_tvb, 1); + + proto_tree_add_string(tree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str); + + octet = tvb_get_guint8(parameter_tvb,0); + na = (octet & 0x70)>>4; + np = octet & 0x0f; + if ((na == 1) && (np==1))/*International Number & E164*/ + dissect_e164_cc(parameter_tvb, subtree, 1, TRUE); + + + + return offset; } -static const value_string gsm_map_ReturnResultProblem_vals[] = { - { 0, "unrecognizedInvokeID" }, - { 1, "returnResultUnexpected" }, - { 2, "mistypedParameter" }, - { 0, NULL } -}; + +int +dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; +} + static int -dissect_gsm_map_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_FTN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static int dissect_returnResultProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnResultProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnResultProblem); + + + +int +dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const value_string gsm_map_ReturnErrorProblem_vals[] = { - { 0, "unrecognizedInvokeID" }, - { 1, "returnErrorUnexpected" }, - { 2, "unrecognizedError" }, - { 3, "unexpectedError" }, - { 4, "mistypedParameter" }, +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_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_returnErrorProblem_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReturnErrorProblem(TRUE, tvb, offset, actx, tree, hf_gsm_map_returnErrorProblem); -} -static const value_string gsm_map_T_problem_vals[] = { - { 0, "generalProblem" }, - { 1, "invokeProblem" }, - { 2, "returnResultProblem" }, - { 3, "returnErrorProblem" }, - { 0, NULL } -}; - -static const ber_old_choice_t T_problem_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - T_problem_choice, hf_index, ett_gsm_map_T_problem, - NULL); +dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 256 "gsm_map.cnf" + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + ¶meter_tvb); + + actx->value_ptr = parameter_tvb; + + return offset; } -static int dissect_problem(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_problem(FALSE, tvb, offset, actx, tree, hf_gsm_map_problem); -} -static const ber_old_sequence_t Reject_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeIDRej }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problem }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; static int -dissect_gsm_map_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Reject_sequence, hf_index, ett_gsm_map_Reject); +dissect_gsm_map_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo); return offset; } -static int dissect_reject_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Reject(TRUE, tvb, offset, actx, tree, hf_gsm_map_reject); -} -static const value_string gsm_map_Component_vals[] = { - { 1, "invoke" }, - { 2, "returnResultLast" }, - { 3, "returnError" }, - { 4, "reject" }, - { 7, "returnResultNotLast" }, +static const value_string gsm_map_Ext_ProtocolId_vals[] = { + { 1, "ets-300356" }, { 0, NULL } }; -static const ber_old_choice_t Component_choice[] = { - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultLast_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl }, - { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_returnResultNotLast_impl }, - { 0, 0, 0, 0, NULL } + +static int +dissect_gsm_map_Ext_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t 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_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Component_choice, hf_index, ett_gsm_map_Component, - NULL); +dissect_gsm_map_Ext_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo); return offset; } -static const value_string gsm_map_ProtocolId_vals[] = { - { 1, "gsm-0408" }, - { 2, "gsm-0806" }, - { 3, "gsm-BSSMAP" }, - { 4, "ets-300102-1" }, +static const value_string gsm_map_AccessNetworkProtocolId_vals[] = { + { 1, "ts3G-48006" }, + { 2, "ts3G-25413" }, { 0, NULL } }; static int -dissect_gsm_map_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_AccessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - &protocolId); + NULL); return offset; } -static int dissect_protocolId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ProtocolId(FALSE, tvb, offset, actx, tree, hf_gsm_map_protocolId); -} static int -dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 366 "gsmmap.cnf" +dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 203 "gsm_map.cnf" tvbuff_t *parameter_tvb; guint8 octet; guint8 length; tvbuff_t *next_tvb; + proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2952,5593 +2811,5749 @@ dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off if (!parameter_tvb) return offset; - switch (protocolId){ - /* gsm-0408 */ + + subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_LongSignalInfo); + + switch (AccessNetworkProtocolId){ + /* ts3G-48006 */ case 1: - break; - /* gsm-0806 */ - case 2: - break; - /* gsm-BSSMAP TODO Is it correct to stripp off two first octets here?*/ - case 3: octet = tvb_get_guint8(parameter_tvb,0); length = tvb_get_guint8(parameter_tvb,1); if ( octet == 0) {/* DISCRIMINATION TS 48 006 */ + /* gsm-BSSMAP? */ next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1); dissect_bssmap(next_tvb, actx->pinfo, tree); } break; - /* ets-300102-1 (~Q.931 ) */ - case 4: - octet = tvb_get_guint8(parameter_tvb,0); - length = tvb_get_guint8(parameter_tvb,1); - if ( octet == 4 ) - dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree); + /* ts3G-25413 */ + case 2: + call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); break; default: break; + + } + + + return offset; } +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo); return offset; } -static int dissect_signalInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_signalInfo); + + + +int +dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static int dissect_diagnosticInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_diagnosticInfo); + + + +int +dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; } static int -dissect_gsm_map_T_extId(gboolean implicit_tag _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, &obj_id); +dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_extId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_extId(FALSE, tvb, offset, actx, tree, hf_gsm_map_extId); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI); + + return offset; } +static const value_string gsm_map_Identity_vals[] = { + { 0, "imsi" }, + { 1, "imsi-WithLMSI" }, + { 0, NULL } +}; + +static const ber_choice_t 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_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 520 "gsmmap.cnf" +dissect_gsm_map_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Identity_choice, hf_index, ett_gsm_map_Identity, + NULL); - - proto_tree_add_text(tree, tvb, offset, -1, "Extension Data"); - if (obj_id){ - offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, tree); - }else{ - call_dissector(data_handle, tvb, actx->pinfo, tree); - offset = tvb_length_remaining(tvb,offset); - } - + return offset; +} +static int +dissect_gsm_map_ASCI_CallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); + return offset; } -static int dissect_extType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_extType(FALSE, tvb, offset, actx, tree, hf_gsm_map_extType); + + + +static int +dissect_gsm_map_TMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t PrivateExtension_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId }, - { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extType }, - { 0, 0, 0, NULL } +static const value_string gsm_map_SubscriberId_vals[] = { + { 0, "imsi" }, + { 1, "tmsi" }, + { 0, NULL } +}; + +static const ber_choice_t 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_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrivateExtension_sequence, hf_index, ett_gsm_map_PrivateExtension); +dissect_gsm_map_SubscriberId(gboolean implicit_tag _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, + SubscriberId_choice, hf_index, ett_gsm_map_SubscriberId, + NULL); return offset; } -static int dissect_PrivateExtensionList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PrivateExtension(FALSE, tvb, offset, actx, tree, hf_gsm_map_PrivateExtensionList_item); + + + +int +dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; } -static const ber_old_sequence_t PrivateExtensionList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item }, -}; static int -dissect_gsm_map_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - PrivateExtensionList_sequence_of, hf_index, ett_gsm_map_PrivateExtensionList); +dissect_gsm_map_HLR_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static int dissect_privateExtensionList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PrivateExtensionList(TRUE, tvb, offset, actx, tree, hf_gsm_map_privateExtensionList); -} -static const ber_old_sequence_t PcsExtensions_sequence[] = { - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PcsExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PcsExtensions_sequence, hf_index, ett_gsm_map_PcsExtensions); +dissect_gsm_map_HLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List); return offset; } -static int dissect_pcsExtensions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PcsExtensions(TRUE, tvb, offset, actx, tree, hf_gsm_map_pcsExtensions); + + + +static int +dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t ExtensionContainer_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcsExtensions_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_NetworkResource_vals[] = { + { 0, "plmn" }, + { 1, "hlr" }, + { 2, "vlr" }, + { 3, "pvlr" }, + { 4, "controllingMSC" }, + { 5, "vmsc" }, + { 6, "eir" }, + { 7, "rss" }, + { 0, NULL } }; -int -dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ExtensionContainer_sequence, hf_index, ett_gsm_map_ExtensionContainer); + +static int +dissect_gsm_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_extensionContainer(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExtensionContainer(FALSE, tvb, offset, actx, tree, hf_gsm_map_extensionContainer); -} -static int dissect_extensionContainer_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExtensionContainer(TRUE, tvb, offset, actx, tree, hf_gsm_map_extensionContainer); -} -static const ber_old_sequence_t Bss_APDU_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const value_string gsm_map_AdditionalNetworkResource_vals[] = { + { 0, "sgsn" }, + { 1, "ggsn" }, + { 2, "gmlc" }, + { 3, "gsmSCF" }, + { 4, "nplr" }, + { 5, "auc" }, + { 0, NULL } }; + static int -dissect_gsm_map_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Bss_APDU_sequence, hf_index, ett_gsm_map_Bss_APDU); +dissect_gsm_map_AdditionalNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_bss_APDU(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, actx, tree, hf_gsm_map_bss_APDU); + + + +static int +dissect_gsm_map_NAEA_CIC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const asn_namedbit SupportedCamelPhases_bits[] = { - { 0, &hf_gsm_map_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL }, - { 1, &hf_gsm_map_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL }, - { 2, &hf_gsm_map_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL }, - { 3, &hf_gsm_map_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases, - NULL); +static int +dissect_gsm_map_NAEA_PreferredCI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI); return offset; } -static int dissect_supportedCamelPhases(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(FALSE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhases); -} -static int dissect_supportedCamelPhases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhases); -} -static int dissect_supportedCamelPhasesInVMSC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhasesInVMSC); -} -static int dissect_supportedCamelPhasesInInterrogatingNode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCamelPhasesInInterrogatingNode); -} -static int dissect_supportedVLR_CAMEL_Phases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedVLR_CAMEL_Phases); -} -static int dissect_supportedSGSN_CAMEL_Phases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedSGSN_CAMEL_Phases); -} -static int dissect_supportedCAMELPhases_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCamelPhases(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCAMELPhases); + + +static const value_string gsm_map_SubscriberIdentity_vals[] = { + { 0, "imsi" }, + { 1, "msisdn" }, + { 0, NULL } +}; + +static const ber_choice_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity, + NULL); + + return offset; } +static const ber_sequence_t 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_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 176 "gsmmap.cnf" +dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID); - tvbuff_t *parameter_tvb; - char *digit_str; + return offset; +} - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); + +static const value_string gsm_map_LCSClientInternalID_vals[] = { + { 0, "broadcastService" }, + { 1, "o-andM-HPLMN" }, + { 2, "o-andM-VPLMN" }, + { 3, "anonymousLocation" }, + { 4, "targetMSsubscribedService" }, + { 0, NULL } +}; - if (!parameter_tvb) - return offset; +static int +dissect_gsm_map_LCSClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); - digit_str = unpack_digits(parameter_tvb, 0); + return offset; +} - proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str); - +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(gboolean implicit_tag _U_, tvbuff_t *tvb _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_imsi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi); + + + +static int +dissect_gsm_map_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static int dissect_imsi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_imsi); + + + +int +dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } int -dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 223 "gsmmap.cnf" +dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 453 "gsm_map.cnf" - tvbuff_t *parameter_tvb; - char *digit_str; - guint8 octet; - guint8 na; - guint8 np; - proto_item *item; - proto_tree *subtree; + tvbuff_t *parameter_tvb; + proto_item *item; + proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); + + if (!parameter_tvb) + return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_gsm_map_LAIFixedLength); + dissect_e212_mcc_mnc(parameter_tvb, subtree, 0); - if (!parameter_tvb) - return offset; - item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_gsm_map_isdn_address_string); - proto_tree_add_item(subtree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(subtree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(subtree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); + return offset; +} - digit_str = unpack_digits(parameter_tvb, 1); - proto_tree_add_string(subtree, hf_gsm_map_isdn_address_digits, parameter_tvb, 1, -1, digit_str); +static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = { + { 0, "cellGlobalIdOrServiceAreaIdFixedLength" }, + { 1, "laiFixedLength" }, + { 0, NULL } +}; - octet = tvb_get_guint8(parameter_tvb,0); - na = (octet & 0x70)>>4; - np = octet & 0x0f; - if ((na == 1) && (np==1))/*International Number & E164*/ - dissect_e164_cc(parameter_tvb, subtree, 1, TRUE); +static const ber_choice_t 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 } +}; + +static int +dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI, + NULL); - actx->pinfo->p2p_dir = P2P_DIR_RECV; + return offset; +} +static const value_string gsm_map_BasicServiceCode_vals[] = { + { 2, "bearerService" }, + { 3, "teleservice" }, + { 0, NULL } +}; +static const ber_choice_t 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 } +}; + +static int +dissect_gsm_map_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode, + NULL); return offset; } -static int dissect_msc_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msc_Number); -} -static int dissect_msc_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_Number); -} -static int dissect_vlr_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_vlr_Number); -} -static int dissect_vlr_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlr_Number); -} -static int dissect_hlr_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_hlr_Number); -} -static int dissect_sgsn_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Number); -} -static int dissect_sgsn_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Number); -} -static int dissect_handoverNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_handoverNumber); -} -static int dissect_handoverNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_handoverNumber); -} -static int dissect_targetMSC_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_targetMSC_Number); -} -static int dissect_targetMSC_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetMSC_Number); -} -static int dissect_gsmSCF_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_gsmSCF_Address); -} -static int dissect_gsmSCF_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_gsmSCF_Address); -} -static int dissect_msisdn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msisdn); -} -static int dissect_msisdn_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_msisdn); -} -static int dissect_GMLC_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_GMLC_List_item); -} -static int dissect_dialledNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_dialledNumber); -} -static int dissect_forwardedToNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardedToNumber); -} -static int dissect_DestinationNumberList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_DestinationNumberList_item); -} -static int dissect_gmsc_OrGsmSCF_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmsc_OrGsmSCF_Address); -} -static int dissect_vmsc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_vmsc_Address); -} -static int dissect_externalAddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_externalAddress); -} -static int dissect_roamingNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_roamingNumber); -} -static int dissect_vlr_number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlr_number); -} -static int dissect_gmsc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmsc_Address); -} -static int dissect_b_Subscriber_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_b_Subscriber_Address); -} -static int dissect_sIWFSNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_sIWFSNumber); -} -static int dissect_msrn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_msrn); -} -static int dissect_translatedB_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_translatedB_Number); -} -static int dissect_translatedB_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_translatedB_Number); -} -static int dissect_networkNode_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_networkNode_Number); -} -static int dissect_networkNode_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkNode_Number); -} -static int dissect_storedMSISDN(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_storedMSISDN); -} -static int dissect_DispatcherList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_DispatcherList_item); -} -static int dissect_b_subscriberNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_b_subscriberNumber); -} -static int dissect_groupCallNumber(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupCallNumber); -} -static int dissect_anchorMSC_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_anchorMSC_Address); -} -static int dissect_ggsn_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_Number); -} -static int dissect_mlc_Number(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_mlc_Number); -} -static int dissect_mlcNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_mlcNumber); -} -static int dissect_na_ESRD_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_na_ESRD); -} -static int dissect_na_ESRK_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_na_ESRK); -} +const value_string gsm_map_Ext_BasicServiceCode_vals[] = { + { 2, "ext-BearerService" }, + { 3, "ext-Teleservice" }, + { 0, NULL } +}; -static int -dissect_gsm_map_LMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static const ber_choice_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode, + NULL); return offset; } -static int dissect_lmsi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_lmsi); -} -static int dissect_lmsi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_lmsi); -} -static const value_string gsm_map_IST_SupportIndicator_vals[] = { - { 0, "basicISTSupported" }, - { 1, "istCommandSupported" }, +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_IST_SupportIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_EMLPP_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_istSupportIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IST_SupportIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_istSupportIndicator); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info); + + return offset; } static int -dissect_gsm_map_AgeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 291 "gsm_map.cnf" + /* 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, - NULL); + ¶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_subscriberDataStored_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AgeIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberDataStored); -} -static int dissect_superChargerSupportedInHLR_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AgeIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_superChargerSupportedInHLR); -} -static const value_string gsm_map_SuperChargerInfo_vals[] = { - { 0, "sendSubscriberData" }, - { 1, "subscriberDataStored" }, - { 0, NULL } -}; - -static const ber_old_choice_t SuperChargerInfo_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendSubscriberData_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_subscriberDataStored_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_SuperChargerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - SuperChargerInfo_choice, hf_index, ett_gsm_map_SuperChargerInfo, - NULL); +dissect_gsm_map_MaxMC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_superChargerSupportedInServingNetworkEntity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SuperChargerInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity); -} -static int dissect_superChargerSupportedInServingNetworkEntity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SuperChargerInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_superChargerSupportedInServingNetworkEntity); -} -static const asn_namedbit SupportedLCS_CapabilitySets_bits[] = { - { 0, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL }, - { 1, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL }, - { 2, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL }, - { 3, &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL }, - { 0, NULL, 0, 0, NULL, NULL } -}; static int -dissect_gsm_map_SupportedLCS_CapabilitySets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_SupportedLCS_CapabilitySets, - NULL); +dissect_gsm_map_MC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_supportedLCS_CapabilitySets_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedLCS_CapabilitySets(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedLCS_CapabilitySets); -} -static int dissect_additional_LCS_CapabilitySets_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedLCS_CapabilitySets(TRUE, tvb, offset, actx, tree, hf_gsm_map_additional_LCS_CapabilitySets); -} -static const asn_namedbit OfferedCamel4CSIs_bits[] = { - { 0, &hf_gsm_map_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL }, - { 1, &hf_gsm_map_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL }, - { 2, &hf_gsm_map_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL }, - { 3, &hf_gsm_map_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL }, - { 4, &hf_gsm_map_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL }, - { 5, &hf_gsm_map_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL }, - { 6, &hf_gsm_map_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_OfferedCamel4CSIs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_OfferedCamel4CSIs, - NULL); +dissect_gsm_map_MC_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info); return offset; } -static int dissect_offeredCamel4CSIs_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIs); -} -static int dissect_offeredCamel4CSIsInVMSC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInVMSC); -} -static int dissect_offeredCamel4CSIsInInterrogatingNode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInInterrogatingNode); -} -static int dissect_offeredCamel4CSIsInVLR_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInVLR); -} -static int dissect_offeredCamel4CSIsInSGSN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OfferedCamel4CSIs(TRUE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4CSIsInSGSN); + + + +int +dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const asn_namedbit SupportedRAT_Types_bits[] = { - { 0, &hf_gsm_map_SupportedRAT_Types_utran, -1, -1, "utran", NULL }, - { 1, &hf_gsm_map_SupportedRAT_Types_geran, -1, -1, "geran", NULL }, - { 0, NULL, 0, 0, NULL, NULL } -}; +/* --- Module MAP-SS-DataTypes --- --- --- */ + + static int -dissect_gsm_map_SupportedRAT_Types(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SupportedRAT_Types_bits, hf_index, ett_gsm_map_SupportedRAT_Types, - NULL); +dissect_gsm_map_ss_NoReplyConditionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_supportedRAT_TypesIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedRAT_Types(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedRAT_TypesIndicator); -} -static const ber_old_sequence_t VLR_Capability_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_solsaSupportIndicator_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istSupportIndicator_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_superChargerSupportedInServingNetworkEntity }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedRAT_TypesIndicator_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_VLR_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - VLR_Capability_sequence, hf_index, ett_gsm_map_VLR_Capability); +dissect_gsm_map_ss_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_vlr_Capability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VLR_Capability(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlr_Capability); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RegisterSS_Arg_sequence, hf_index, ett_gsm_map_ss_RegisterSS_Arg); + + return offset; } int -dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 604 "gsmmap.cnf" +dissect_gsm_map_ss_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 271 "gsm_map.cnf" - tvbuff_t *parameter_tvb; - guint8 octet; - proto_item *item; - proto_tree *subtree; + 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; - item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_gsm_map_pdptypenumber); + if (!parameter_tvb) + return offset; - octet = tvb_get_guint8(parameter_tvb,0); - switch(octet){ - case 0x04: /* IPv4 */ - proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); - break; - case 0x50: /* IPv4 */ - proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); - break; - default: - break; - } + 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_v_gmlc_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_v_gmlc_Address); -} -static int dissect_v_gmlc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_v_gmlc_Address); -} -static int dissect_ggsn_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_Address); -} -static int dissect_rnc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_Address); -} -static int dissect_sgsn_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Address); -} -static int dissect_sgsn_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Address); -} -static int dissect_h_gmlc_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_h_gmlc_Address); -} -static int dissect_h_gmlc_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_h_gmlc_Address); -} -static int dissect_ppr_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_ppr_Address); -} -static int dissect_additional_v_gmlc_Address(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSN_Address(FALSE, tvb, offset, actx, tree, hf_gsm_map_additional_v_gmlc_Address); -} static int -dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ss_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); +#line 356 "gsm_map.cnf" + + proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE); + return offset; } +static const ber_sequence_t 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 } +}; -int -dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); +static int +dissect_gsm_map_ss_ForwardingFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardingFeature_sequence, hf_index, ett_gsm_map_ss_ForwardingFeature); return offset; } -static int dissect_imeisv_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IMEI(TRUE, tvb, offset, actx, tree, hf_gsm_map_imeisv); -} -static int dissect_imei(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IMEI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imei); -} -static int dissect_imei_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IMEI(TRUE, tvb, offset, actx, tree, hf_gsm_map_imei); -} -static const ber_old_sequence_t ADD_Info_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imeisv_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_skipSubscriberDataUpdate_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ADD_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ADD_Info_sequence, hf_index, ett_gsm_map_ADD_Info); +dissect_gsm_map_ss_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ss_ForwardingFeatureList); return offset; } -static int dissect_add_info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ADD_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_add_info); -} -static const ber_old_sequence_t UpdateLocationArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_vlr_Number }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_informPreviousNetworkEntity_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cs_LCS_NotSupportedByUE_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_v_gmlc_Address_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_info_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UpdateLocationArg_sequence, hf_index, ett_gsm_map_UpdateLocationArg); +dissect_gsm_map_ss_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardingInfo_sequence, hf_index, ett_gsm_map_ss_ForwardingInfo); return offset; } -static const ber_old_sequence_t UpdateLocationRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_add_Capability }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UpdateLocationRes_sequence, hf_index, ett_gsm_map_UpdateLocationRes); +dissect_gsm_map_ss_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CallBarringFeature_sequence, hf_index, ett_gsm_map_ss_CallBarringFeature); return offset; } -static const ber_old_sequence_t SLR_Arg_PCS_Extensions_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_Request_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SLR_Arg_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SLR_Arg_PCS_Extensions_sequence, hf_index, ett_gsm_map_SLR_Arg_PCS_Extensions); +dissect_gsm_map_ss_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_ss_CallBarringFeatureList); return offset; } -static int dissect_slr_Arg_PCS_Extensions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SLR_Arg_PCS_Extensions(TRUE, tvb, offset, actx, tree, hf_gsm_map_slr_Arg_PCS_Extensions); -} -static const ber_old_sequence_t SLR_ArgExtensionContainer_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_slr_Arg_PCS_Extensions_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SLR_ArgExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SLR_ArgExtensionContainer_sequence, hf_index, ett_gsm_map_SLR_ArgExtensionContainer); +dissect_gsm_map_ss_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CallBarringInfo_sequence, hf_index, ett_gsm_map_ss_CallBarringInfo); return offset; } -static int dissect_slr_ArgExtensionContainer_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SLR_ArgExtensionContainer(TRUE, tvb, offset, actx, tree, hf_gsm_map_slr_ArgExtensionContainer); -} -static const ber_old_sequence_t IMSI_WithLMSI_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_lmsi }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ss_CliRestrictionOption_vals[] = { + { 0, "permanent" }, + { 1, "temporaryDefaultRestricted" }, + { 2, "temporaryDefaultAllowed" }, + { 0, NULL } }; + static int -dissect_gsm_map_IMSI_WithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IMSI_WithLMSI_sequence, hf_index, ett_gsm_map_IMSI_WithLMSI); +dissect_gsm_map_ss_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_imsi_WithLMSI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IMSI_WithLMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_imsi_WithLMSI); -} -static const value_string gsm_map_Identity_vals[] = { - { 0, "imsi" }, - { 1, "imsi-WithLMSI" }, +static const value_string gsm_map_ss_OverrideCategory_vals[] = { + { 0, "overrideEnabled" }, + { 1, "overrideDisabled" }, { 0, NULL } }; -static const ber_old_choice_t Identity_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_Identity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Identity_choice, hf_index, ett_gsm_map_Identity, - NULL); +dissect_gsm_map_ss_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_identity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Identity(FALSE, tvb, offset, actx, tree, hf_gsm_map_identity); -} -static const value_string gsm_map_CancellationType_vals[] = { - { 0, "updateProcedure" }, - { 1, "subscriptionWithdraw" }, +static const value_string gsm_map_ss_SS_SubscriptionOption_vals[] = { + { 2, "cliRestrictionOption" }, + { 1, "overrideCategory" }, { 0, NULL } }; +static const ber_choice_t 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_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_SS_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SS_SubscriptionOption_choice, hf_index, ett_gsm_map_ss_SS_SubscriptionOption, + NULL); return offset; } -static int dissect_cancellationType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CancellationType(FALSE, tvb, offset, actx, tree, hf_gsm_map_cancellationType); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ss_BasicServiceGroupList); + + return offset; } -static const ber_old_sequence_t CancelLocationArg_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_identity }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cancellationType }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CancelLocationArg_sequence, hf_index, ett_gsm_map_CancelLocationArg); +dissect_gsm_map_ss_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_Data_sequence, hf_index, ett_gsm_map_ss_SS_Data); return offset; } -static const value_string gsm_map_CancelLocationArgV2_vals[] = { - { 0, "imsi" }, - { 1, "imsi-WithLMSI" }, +const value_string gsm_map_ss_SS_Info_vals[] = { + { 0, "forwardingInfo" }, + { 1, "callBarringInfo" }, + { 3, "ss-Data" }, { 0, NULL } }; -static const ber_old_choice_t CancelLocationArgV2_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_imsi_WithLMSI }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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 } }; -static int -dissect_gsm_map_CancelLocationArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - CancelLocationArgV2_choice, hf_index, ett_gsm_map_CancelLocationArgV2, - NULL); +int +dissect_gsm_map_ss_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SS_Info_choice, hf_index, ett_gsm_map_ss_SS_Info, + NULL); return offset; } -static const ber_old_sequence_t CancelLocationRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CancelLocationRes_sequence, hf_index, ett_gsm_map_CancelLocationRes); +int +dissect_gsm_map_ss_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_ForBS_Code_sequence, hf_index, ett_gsm_map_ss_SS_ForBS_Code); return offset; } -static const ber_old_sequence_t PurgeMSArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_PurgeMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PurgeMSArg_sequence, hf_index, ett_gsm_map_PurgeMSArg); +dissect_gsm_map_ss_CCBS_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t PurgeMSArgV2_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_vlr_Number }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_PurgeMSArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PurgeMSArgV2_sequence, hf_index, ett_gsm_map_PurgeMSArgV2); +int +dissect_gsm_map_ss_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CCBS_Feature_sequence, hf_index, ett_gsm_map_ss_CCBS_Feature); return offset; } -static const ber_old_sequence_t PurgeMSRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeTMSI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_freezeP_TMSI_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PurgeMSRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PurgeMSRes_sequence, hf_index, ett_gsm_map_PurgeMSRes); +dissect_gsm_map_ss_CCBS_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_ss_CCBS_FeatureList); return offset; } +static const ber_sequence_t 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_TMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_GenericServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GenericServiceInfo_sequence, hf_index, ett_gsm_map_ss_GenericServiceInfo); return offset; } -static int dissect_tmsi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_tmsi); -} -static int dissect_tmsi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_tmsi); -} +const value_string gsm_map_ss_InterrogateSS_Res_vals[] = { + { 0, "ss-Status" }, + { 2, "basicServiceGroupList" }, + { 3, "forwardingFeatureList" }, + { 4, "genericServiceInfo" }, + { 0, NULL } +}; -static int -dissect_gsm_map_NumberOfRequestedVectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static const ber_choice_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + InterrogateSS_Res_choice, hf_index, ett_gsm_map_ss_InterrogateSS_Res, + NULL); return offset; } -static int dissect_numberOfRequestedVectors(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NumberOfRequestedVectors(FALSE, tvb, offset, actx, tree, hf_gsm_map_numberOfRequestedVectors); + + + +int +dissect_gsm_map_ss_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 318 "gsm_map.cnf" + /*The structure of the USSD-DataCodingScheme is defined by + * the Cell Broadcast Data Coding Scheme as described in + * TS 3GPP TS 23.038 + * TODO: Should smpp_handle_dcs return encoding type? - like 7bit Alphabet + */ + int CodingScheme_offset = 0; + tvbuff_t *parameter_tvb; + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + ¶meter_tvb); + + if (!parameter_tvb) + return offset; + smpp_handle_dcs(tree, parameter_tvb, &CodingScheme_offset); + + + + return offset; } int -dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 652 "gsmmap.cnf" +dissect_gsm_map_ss_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 331 "gsm_map.cnf" - tvbuff_t *parameter_tvb; - proto_item *item; - proto_tree *subtree; + tvbuff_t *parameter_tvb; + int length; + guint8 out_len; + /* XXX - The maximum item label length is 240. Does this really need to be 1024? + * use ep_alloc ? + * TODO: Shouldent this function use USSD-DataCodingScheme to chose decoding method??? + */ + static unsigned char bigbuf[1024]; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); - - if (!parameter_tvb) - return offset; - item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_gsm_map_LAIFixedLength); - dissect_e212_mcc_mnc(parameter_tvb, subtree, 0); + if (!parameter_tvb) + return offset; + + length = tvb_length_remaining(parameter_tvb,0); + + out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(bigbuf), + tvb_get_ptr(parameter_tvb, 0, length), bigbuf); + + bigbuf[out_len] = '\0'; + gsm_sms_char_ascii_decode(bigbuf, bigbuf, out_len); + bigbuf[1023] = '\0'; + proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", bigbuf); return offset; } -static int dissect_previous_LAI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, actx, tree, hf_gsm_map_previous_LAI); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + USSD_Arg_sequence, hf_index, ett_gsm_map_ss_USSD_Arg); + + return offset; } -static int dissect_laiFixedLength_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, actx, tree, hf_gsm_map_laiFixedLength); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + USSD_Res_sequence, hf_index, ett_gsm_map_ss_USSD_Res); + + return offset; } static int -dissect_gsm_map_HopCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, + actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_hopCounter_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_HopCounter(TRUE, tvb, offset, actx, tree, hf_gsm_map_hopCounter); -} -static const ber_old_sequence_t SendIdentificationArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_tmsi }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msc_Number }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_previous_LAI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_hopCounter_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ss_GuidanceInfo_vals[] = { + { 0, "enterPW" }, + { 1, "enterNewPW" }, + { 2, "enterNewPW-Again" }, + { 0, NULL } }; + static int -dissect_gsm_map_SendIdentificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendIdentificationArg_sequence, hf_index, ett_gsm_map_SendIdentificationArg); +dissect_gsm_map_ss_GuidanceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } +static const ber_sequence_t 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_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_SS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SS_List_sequence_of, hf_index, ett_gsm_map_ss_SS_List); return offset; } -static int dissect_rand(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RAND(FALSE, tvb, offset, actx, tree, hf_gsm_map_rand); -} +static const ber_sequence_t SS_InfoList_sequence_of[1] = { + { &hf_gsm_map_ss_SS_InfoList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_gsm_map_ss_SS_Info }, +}; static int -dissect_gsm_map_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SS_InfoList_sequence_of, hf_index, ett_gsm_map_ss_SS_InfoList); return offset; } -static int dissect_sres(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SRES(FALSE, tvb, offset, actx, tree, hf_gsm_map_sres); -} +static const ber_sequence_t 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_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_SS_EventSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_ss_SS_EventSpecification); return offset; } -static int dissect_kc(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Kc(FALSE, tvb, offset, actx, tree, hf_gsm_map_kc); -} -static int dissect_kc_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Kc(TRUE, tvb, offset, actx, tree, hf_gsm_map_kc); -} -static int dissect_groupKey_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Kc(TRUE, tvb, offset, actx, tree, hf_gsm_map_groupKey); -} -static const ber_old_sequence_t AuthenticationTriplet_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc }, - { 0, 0, 0, NULL } +static 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_AuthenticationTriplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AuthenticationTriplet_sequence, hf_index, ett_gsm_map_AuthenticationTriplet); +dissect_gsm_map_ss_CCBS_RequestState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_TripletList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AuthenticationTriplet(FALSE, tvb, offset, actx, tree, hf_gsm_map_TripletList_item); -} -static const ber_old_sequence_t TripletList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_TripletList_item }, +static const ber_sequence_t 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_TripletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - TripletList_sequence_of, hf_index, ett_gsm_map_TripletList); +dissect_gsm_map_ss_SS_InvocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationArg); return offset; } -static int dissect_tripletList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TripletList(FALSE, tvb, offset, actx, tree, hf_gsm_map_tripletList); -} -static int dissect_tripletList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TripletList(TRUE, tvb, offset, actx, tree, hf_gsm_map_tripletList); -} +static const ber_sequence_t 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_XRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_SS_InvocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_ss_SS_InvocationNotificationRes); return offset; } -static int dissect_xres(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_XRES(FALSE, tvb, offset, actx, tree, hf_gsm_map_xres); -} +static const asn_namedbit ServiceIndicator_bits[] = { + { 0, &hf_gsm_map_ss_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL }, + { 1, &hf_gsm_map_ss_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_CK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + ServiceIndicator_bits, hf_index, ett_gsm_map_ss_ServiceIndicator, + NULL); return offset; } -static int dissect_ck(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CK(FALSE, tvb, offset, actx, tree, hf_gsm_map_ck); -} +static const ber_sequence_t 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_IK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_CCBS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CCBS_Data_sequence, hf_index, ett_gsm_map_ss_CCBS_Data); return offset; } -static int dissect_ik(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IK(FALSE, tvb, offset, actx, tree, hf_gsm_map_ik); -} +static const ber_sequence_t 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_AUTN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ss_RegisterCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryArg); return offset; } -static int dissect_autn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AUTN(FALSE, tvb, offset, actx, tree, hf_gsm_map_autn); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_RegisterCC_EntryRes); + + return offset; } -static const ber_old_sequence_t AuthenticationQuintuplet_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_xres }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_autn }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_AuthenticationQuintuplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_AuthenticationQuintuplet); +int +dissect_gsm_map_ss_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryArg); return offset; } -static int dissect_QuintupletList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AuthenticationQuintuplet(FALSE, tvb, offset, actx, tree, hf_gsm_map_QuintupletList_item); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_ss_EraseCC_EntryRes); + + return offset; } -static const ber_old_sequence_t QuintupletList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_QuintupletList_item }, +/* --- Module MAP-ER-DataTypes --- --- --- */ + + +static const value_string gsm_map_er_RoamingNotAllowedCause_vals[] = { + { 0, "plmnRoamingNotAllowed" }, + { 3, "operatorDeterminedBarring" }, + { 0, NULL } }; + static int -dissect_gsm_map_QuintupletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - QuintupletList_sequence_of, hf_index, ett_gsm_map_QuintupletList); +dissect_gsm_map_er_RoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_quintupletList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_QuintupletList(TRUE, tvb, offset, actx, tree, hf_gsm_map_quintupletList); -} -static const value_string gsm_map_AuthenticationSetList_vals[] = { - { 0, "tripletList" }, - { 1, "quintupletList" }, +static const value_string gsm_map_er_AdditionalRoamingNotAllowedCause_vals[] = { + { 0, "supportedRAT-TypesNotAllowed" }, { 0, NULL } }; -static const ber_old_choice_t AuthenticationSetList_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tripletList_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_quintupletList_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_AuthenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - AuthenticationSetList_choice, hf_index, ett_gsm_map_AuthenticationSetList, - NULL); +dissect_gsm_map_er_AdditionalRoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_authenticationSetList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AuthenticationSetList(FALSE, tvb, offset, actx, tree, hf_gsm_map_authenticationSetList); -} +static const ber_sequence_t 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_Cksn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_er_RoamingNotAllowedParam); return offset; } -static int dissect_cksn(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Cksn(FALSE, tvb, offset, actx, tree, hf_gsm_map_cksn); -} -static int dissect_cksn_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Cksn(TRUE, tvb, offset, actx, tree, hf_gsm_map_cksn); -} -static const ber_old_sequence_t GSM_SecurityContextData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cksn }, - { 0, 0, 0, NULL } +static const value_string gsm_map_er_CallBarringCause_vals[] = { + { 0, "barringServiceActive" }, + { 1, "operatorBarring" }, + { 0, NULL } }; + static int -dissect_gsm_map_GSM_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_GSM_SecurityContextData); +dissect_gsm_map_er_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_gsm_SecurityContextData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GSM_SecurityContextData(TRUE, tvb, offset, actx, tree, hf_gsm_map_gsm_SecurityContextData); -} static int -dissect_gsm_map_KSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_ksi(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_KSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ksi); -} -static const ber_old_sequence_t UMTS_SecurityContextData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ck }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ik }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ksi }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_UMTS_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_UMTS_SecurityContextData); +dissect_gsm_map_er_ExtensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_er_ExtensibleCallBarredParam); return offset; } -static int dissect_umts_SecurityContextData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UMTS_SecurityContextData(TRUE, tvb, offset, actx, tree, hf_gsm_map_umts_SecurityContextData); -} -static const value_string gsm_map_CurrentSecurityContext_vals[] = { - { 0, "gsm-SecurityContextData" }, - { 1, "umts-SecurityContextData" }, +static const value_string gsm_map_er_CallBarredParam_vals[] = { + { 0, "callBarringCause" }, + { 1, "extensibleCallBarredParam" }, { 0, NULL } }; -static const ber_old_choice_t CurrentSecurityContext_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_SecurityContextData_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_umts_SecurityContextData_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_CurrentSecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - CurrentSecurityContext_choice, hf_index, ett_gsm_map_CurrentSecurityContext, - NULL); +dissect_gsm_map_er_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + CallBarredParam_choice, hf_index, ett_gsm_map_er_CallBarredParam, + NULL); return offset; } -static int dissect_currentSecurityContext_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CurrentSecurityContext(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentSecurityContext); -} -static const ber_old_sequence_t SendIdentificationRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_currentSecurityContext_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static 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_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendIdentificationRes_sequence, hf_index, ett_gsm_map_SendIdentificationRes); +dissect_gsm_map_er_CUG_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t SendIdentificationResV2_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_tripletList }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendIdentificationResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendIdentificationResV2_sequence, hf_index, ett_gsm_map_SendIdentificationResV2); +dissect_gsm_map_er_CUG_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CUG_RejectParam_sequence, hf_index, ett_gsm_map_er_CUG_RejectParam); return offset; } +static const ber_sequence_t 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_AUTS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_SS_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_er_SS_IncompatibilityCause); return offset; } -static int dissect_auts(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AUTS(FALSE, tvb, offset, actx, tree, hf_gsm_map_auts); -} +static const value_string gsm_map_er_PW_RegistrationFailureCause_vals[] = { + { 0, "undetermined" }, + { 1, "invalidFormat" }, + { 2, "newPasswordsMismatch" }, + { 0, NULL } +}; + static int -dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_PW_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_targetCellId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GlobalCellId(FALSE, tvb, offset, actx, tree, hf_gsm_map_targetCellId); -} -static int dissect_targetCellId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GlobalCellId(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetCellId); -} -static int dissect_cellId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GlobalCellId(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellId); -} -static const ber_old_sequence_t PrepareHO_Arg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_targetCellId }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU }, - { 0, 0, 0, NULL } +static 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_PrepareHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareHO_Arg_sequence, hf_index, ett_gsm_map_PrepareHO_Arg); +dissect_gsm_map_er_SM_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } +static const ber_sequence_t 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_RNCId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_SM_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_er_SM_DeliveryFailureCause); return offset; } -static int dissect_targetRNCId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RNCId(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetRNCId); -} -static const value_string gsm_map_AccessNetworkProtocolId_vals[] = { - { 1, "ts3G-48006" }, - { 2, "ts3G-25413" }, - { 0, NULL } -}; - static int -dissect_gsm_map_AccessNetworkProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_er_AbsentSubscriberDiagnosticSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - &AccessNetworkProtocolId); + NULL); return offset; } -static int dissect_accessNetworkProtocolId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AccessNetworkProtocolId(FALSE, tvb, offset, actx, tree, hf_gsm_map_accessNetworkProtocolId); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 410 "gsmmap.cnf" +dissect_gsm_map_er_AbsentSubscriberSM_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberSM_Param); - tvbuff_t *parameter_tvb; - guint8 octet; - guint8 length; - tvbuff_t *next_tvb; - proto_item *item; - proto_tree *subtree; + return offset; +} - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; +static int +dissect_gsm_map_er_ExtensibleSystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_er_ExtensibleSystemFailureParam); - if (!parameter_tvb) - return offset; + return offset; +} - item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_gsm_map_LongSignalInfo); - switch (AccessNetworkProtocolId){ - /* ts3G-48006 */ - case 1: - octet = tvb_get_guint8(parameter_tvb,0); - length = tvb_get_guint8(parameter_tvb,1); - if ( octet == 0) {/* DISCRIMINATION TS 48 006 */ - /* gsm-BSSMAP? */ - next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1); - dissect_bssmap(next_tvb, actx->pinfo, tree); - } - break; - /* ts3G-25413 */ - case 2: - call_dissector(ranap_handle, parameter_tvb, actx->pinfo, tree); - break; - default: - break; +static const value_string gsm_map_er_SystemFailureParam_vals[] = { + { 0, "networkResource" }, + { 1, "extensibleSystemFailureParam" }, + { 0, NULL } +}; - } - +static const ber_choice_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SystemFailureParam_choice, hf_index, ett_gsm_map_er_SystemFailureParam, + NULL); return offset; } -static int dissect_longsignalInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LongSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_longsignalInfo); -} -static const ber_old_sequence_t AccessNetworkSignalInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_accessNetworkProtocolId }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_longsignalInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_AccessNetworkSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AccessNetworkSignalInfo_sequence, hf_index, ett_gsm_map_AccessNetworkSignalInfo); +dissect_gsm_map_er_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DataMissingParam_sequence, hf_index, ett_gsm_map_er_DataMissingParam); return offset; } -static int dissect_an_APDU(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AccessNetworkSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_an_APDU); -} -static int dissect_an_APDU_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AccessNetworkSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_an_APDU); -} +static const ber_sequence_t UnexpectedDataParam_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_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 695 "gsmmap.cnf" - tvbuff_t *parameter_tvb; - asn1_ctx_t asn1_ctx; - - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - +dissect_gsm_map_er_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UnexpectedDataParam_sequence, hf_index, ett_gsm_map_er_UnexpectedDataParam); - if (!parameter_tvb) - return offset; + return offset; +} - asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo); - dissect_ranap_IntegrityProtectionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_mapIntegrityProtectionInformation); +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + FacilityNotSupParam_sequence, hf_index, ett_gsm_map_er_FacilityNotSupParam); return offset; } -static int dissect_integrityProtectionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IntegrityProtectionInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_integrityProtectionInfo); -} +static const ber_sequence_t 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_EncryptionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 707 "gsmmap.cnf" - tvbuff_t *parameter_tvb; - asn1_ctx_t asn1_ctx; +dissect_gsm_map_er_OR_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + OR_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_OR_NotAllowedParam); - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - + return offset; +} - if (!parameter_tvb) - return offset; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo); - dissect_ranap_EncryptionInformation(parameter_tvb, 0, &asn1_ctx, tree, hf_gsm_mapEncryptionInformation); +static const value_string gsm_map_er_UnknownSubscriberDiagnostic_vals[] = { + { 0, "imsiUnknown" }, + { 1, "gprsSubscriptionUnknown" }, + { 2, "npdbMismatch" }, + { 0, NULL } +}; +static int +dissect_gsm_map_er_UnknownSubscriberDiagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_encryptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EncryptionInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_encryptionInfo); -} +static const ber_sequence_t 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_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 669 "gsmmap.cnf" - tvbuff_t *parameter_tvb; - proto_item *item; - proto_tree *subtree; +dissect_gsm_map_er_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_er_UnknownSubscriberParam); - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - + return offset; +} - if (!parameter_tvb) - return offset; - - item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_gsm_map_RadioResourceInformation); - be_chan_type(tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0); +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NumberChangedParam_sequence, hf_index, ett_gsm_map_er_NumberChangedParam); return offset; } -static int dissect_radioResourceInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RadioResourceInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_radioResourceInformation); -} -static int dissect_radioResourceInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RadioResourceInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_radioResourceInformation); -} -static int dissect_alternativeChannelType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RadioResourceInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_alternativeChannelType); -} +static const ber_sequence_t 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_AllowedGSM_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_er_UnidentifiedSubParam); return offset; } -static int dissect_allowedGSM_Algorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AllowedGSM_Algorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_allowedGSM_Algorithms); -} +static const ber_sequence_t 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_PermittedIntegrityProtectionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_er_IllegalSubscriberParam); return offset; } -static int dissect_integrityProtectionAlgorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PermittedIntegrityProtectionAlgorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_integrityProtectionAlgorithms); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_er_IllegalEquipmentParam); + + return offset; } +static const ber_sequence_t 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_PermittedEncryptionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + BearerServNotProvParam_sequence, hf_index, ett_gsm_map_er_BearerServNotProvParam); return offset; } -static int dissect_encryptionAlgorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PermittedEncryptionAlgorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_encryptionAlgorithms); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TeleservNotProvParam_sequence, hf_index, ett_gsm_map_er_TeleservNotProvParam); + + return offset; } -static const ber_old_sequence_t AllowedUMTS_Algorithms_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithms_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithms_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_AllowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_AllowedUMTS_Algorithms); +dissect_gsm_map_er_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TracingBufferFullParam_sequence, hf_index, ett_gsm_map_er_TracingBufferFullParam); return offset; } -static int dissect_allowedUMTS_Algorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AllowedUMTS_Algorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_allowedUMTS_Algorithms); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoRoamingNbParam_sequence, hf_index, ett_gsm_map_er_NoRoamingNbParam); + + return offset; } +static const value_string gsm_map_er_AbsentSubscriberReason_vals[] = { + { 0, "imsiDetach" }, + { 1, "restrictedArea" }, + { 2, "noPageResponse" }, + { 3, "purgedMS" }, + { 0, NULL } +}; + static int -dissect_gsm_map_RAB_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_er_AbsentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_rab_Id(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RAB_Id(FALSE, tvb, offset, actx, tree, hf_gsm_map_rab_Id); -} -static int dissect_rab_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RAB_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_rab_Id); -} -static int dissect_selectedRab_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RAB_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedRab_Id); -} -static const ber_old_sequence_t RadioResource_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_radioResourceInformation }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_RadioResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RadioResource_sequence, hf_index, ett_gsm_map_RadioResource); +dissect_gsm_map_er_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_er_AbsentSubscriberParam); return offset; } -static int dissect_RadioResourceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RadioResource(FALSE, tvb, offset, actx, tree, hf_gsm_map_RadioResourceList_item); -} -static const ber_old_sequence_t RadioResourceList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RadioResourceList_item }, +static const ber_sequence_t 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_RadioResourceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - RadioResourceList_sequence_of, hf_index, ett_gsm_map_RadioResourceList); +dissect_gsm_map_er_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + BusySubscriberParam_sequence, hf_index, ett_gsm_map_er_BusySubscriberParam); return offset; } -static int dissect_radioResourceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RadioResourceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_radioResourceList); -} +static const ber_sequence_t 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_BSSMAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_er_NoSubscriberReplyParam); return offset; } -static int dissect_bssmap_ServiceHandover(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BSSMAP_ServiceHandover(FALSE, tvb, offset, actx, tree, hf_gsm_map_bssmap_ServiceHandover); -} -static int dissect_bssmap_ServiceHandover_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BSSMAP_ServiceHandover(TRUE, tvb, offset, actx, tree, hf_gsm_map_bssmap_ServiceHandover); -} +static const ber_sequence_t 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_RANAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 683 "gsmmap.cnf" - tvbuff_t *parameter_tvb; - asn1_ctx_t asn1_ctx; - - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - +dissect_gsm_map_er_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardingViolationParam_sequence, hf_index, ett_gsm_map_er_ForwardingViolationParam); - if (!parameter_tvb) - return offset; + 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); +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardingFailedParam_sequence, hf_index, ett_gsm_map_er_ForwardingFailedParam); return offset; } -static int dissect_ranap_ServiceHandover_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RANAP_ServiceHandover(TRUE, tvb, offset, actx, tree, hf_gsm_map_ranap_ServiceHandover); -} -static const ber_old_sequence_t BSSMAP_ServiceHandoverInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bssmap_ServiceHandover }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_BSSMAP_ServiceHandoverInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_BSSMAP_ServiceHandoverInfo); +dissect_gsm_map_er_ATI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATI_NotAllowedParam); return offset; } -static int dissect_BSSMAP_ServiceHandoverList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BSSMAP_ServiceHandoverInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_BSSMAP_ServiceHandoverList_item); -} -static const ber_old_sequence_t BSSMAP_ServiceHandoverList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BSSMAP_ServiceHandoverList_item }, +static const ber_sequence_t 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_BSSMAP_ServiceHandoverList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_BSSMAP_ServiceHandoverList); +dissect_gsm_map_er_ATSI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATSI_NotAllowedParam); return offset; } -static int dissect_bssmap_ServiceHandoverList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BSSMAP_ServiceHandoverList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bssmap_ServiceHandoverList); -} +static const ber_sequence_t 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_ASCI_CallReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_er_ATM_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_er_ATM_NotAllowedParam); return offset; } -static int dissect_asciCallReference(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ASCI_CallReference(FALSE, tvb, offset, actx, tree, hf_gsm_map_asciCallReference); -} -static int dissect_asciCallReference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ASCI_CallReference(TRUE, tvb, offset, actx, tree, hf_gsm_map_asciCallReference); -} +static const ber_sequence_t 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_GERAN_Classmark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_IllegalSS_OperationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_er_IllegalSS_OperationParam); return offset; } -static int dissect_geran_classmark_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GERAN_Classmark(TRUE, tvb, offset, actx, tree, hf_gsm_map_geran_classmark); -} +static const ber_sequence_t 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_Codec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_SS_NotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_er_SS_NotAvailableParam); return offset; } -static int dissect_iuCurrentlyUsedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuCurrentlyUsedCodec); -} -static int dissect_iuSelectedCodec(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(FALSE, tvb, offset, actx, tree, hf_gsm_map_iuSelectedCodec); -} -static int dissect_iuSelectedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuSelectedCodec); -} -static int dissect_iUSelectedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_iUSelectedCodec); -} -static int dissect_codec1_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec1); -} -static int dissect_codec2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec2); -} -static int dissect_codec3_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec3); -} -static int dissect_codec4_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec4); -} -static int dissect_codec5_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec5); -} -static int dissect_codec6_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec6); -} -static int dissect_codec7_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec7); -} -static int dissect_codec8_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_codec8); -} -static int dissect_currentlyUsedCodec_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Codec(TRUE, tvb, offset, actx, tree, hf_gsm_map_currentlyUsedCodec); -} -static const ber_old_sequence_t CodecList_sequence[] = { - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_codec1_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec2_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec3_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec4_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec5_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec6_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec7_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_codec8_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CodecList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CodecList_sequence, hf_index, ett_gsm_map_CodecList); +dissect_gsm_map_er_SS_SubscriptionViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_er_SS_SubscriptionViolationParam); return offset; } -static int dissect_iuAvailableCodecsList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CodecList(FALSE, tvb, offset, actx, tree, hf_gsm_map_iuAvailableCodecsList); -} -static int dissect_iuAvailableCodecsList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CodecList(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuAvailableCodecsList); -} -static int dissect_utranCodecList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CodecList(TRUE, tvb, offset, actx, tree, hf_gsm_map_utranCodecList); -} -static int dissect_geranCodecList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CodecList(TRUE, tvb, offset, actx, tree, hf_gsm_map_geranCodecList); -} -static const ber_old_sequence_t SupportedCodecsList_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranCodecList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranCodecList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SupportedCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SupportedCodecsList_sequence, hf_index, ett_gsm_map_SupportedCodecsList); +dissect_gsm_map_er_InformationNotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_er_InformationNotAvailableParam); return offset; } -static int dissect_iuSupportedCodecsList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCodecsList(TRUE, tvb, offset, actx, tree, hf_gsm_map_iuSupportedCodecsList); -} +static const ber_sequence_t 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_UESBI_IuA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - NULL, hf_index, -1, - NULL); +dissect_gsm_map_er_SubBusyForMT_SMS_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_er_SubBusyForMT_SMS_Param); return offset; } -static int dissect_uesbi_IuA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UESBI_IuA(TRUE, tvb, offset, actx, tree, hf_gsm_map_uesbi_IuA); -} +static const ber_sequence_t 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_UESBI_IuB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - NULL, hf_index, -1, - NULL); +dissect_gsm_map_er_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_er_MessageWaitListFullParam); return offset; } -static int dissect_uesbi_IuB_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UESBI_IuB(TRUE, tvb, offset, actx, tree, hf_gsm_map_uesbi_IuB); -} -static const ber_old_sequence_t UESBI_Iu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuA_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_IuB_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_UESBI_Iu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UESBI_Iu_sequence, hf_index, ett_gsm_map_UESBI_Iu); +dissect_gsm_map_er_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ResourceLimitationParam_sequence, hf_index, ett_gsm_map_er_ResourceLimitationParam); return offset; } -static int dissect_uesbi_Iu_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UESBI_Iu(TRUE, tvb, offset, actx, tree, hf_gsm_map_uesbi_Iu); -} -static int dissect_bmuef(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UESBI_Iu(FALSE, tvb, offset, actx, tree, hf_gsm_map_bmuef); -} +static const ber_sequence_t 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_TraceReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_er_NoGroupCallNbParam); return offset; } -static int dissect_traceReference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceReference(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceReference); -} +static const ber_sequence_t 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_TraceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_er_IncompatibleTerminalParam); return offset; } -static int dissect_traceType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceType(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceType); -} +static const ber_sequence_t ShortTermDenialParam_sequence[] = { + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_TraceReference2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ShortTermDenialParam_sequence, hf_index, ett_gsm_map_er_ShortTermDenialParam); return offset; } -static int dissect_traceReference2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceReference2(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceReference2); -} +static const ber_sequence_t LongTermDenialParam_sequence[] = { + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_TraceRecordingSessionReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LongTermDenialParam_sequence, hf_index, ett_gsm_map_er_LongTermDenialParam); return offset; } -static int dissect_traceRecordingSessionReference_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceRecordingSessionReference(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceRecordingSessionReference); -} -static const value_string gsm_map_TraceDepth_vals[] = { - { 0, "minimum" }, - { 1, "medium" }, - { 2, "maximum" }, - { 0, NULL } +static const ber_sequence_t 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_TraceDepth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedRequestingNetwork_Param); return offset; } -static int dissect_msc_s_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_TraceDepth); -} -static int dissect_mgw_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_TraceDepth); -} -static int dissect_sgsn_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_TraceDepth); -} -static int dissect_ggsn_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_TraceDepth); -} -static int dissect_rnc_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_TraceDepth); -} -static int dissect_bmsc_TraceDepth_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepth(TRUE, tvb, offset, actx, tree, hf_gsm_map_bmsc_TraceDepth); -} -static const asn_namedbit RNC_InterfaceList_bits[] = { - { 0, &hf_gsm_map_RNC_InterfaceList_iu, -1, -1, "iu", NULL }, - { 1, &hf_gsm_map_RNC_InterfaceList_iur, -1, -1, "iur", NULL }, - { 2, &hf_gsm_map_RNC_InterfaceList_iub, -1, -1, "iub", NULL }, - { 3, &hf_gsm_map_RNC_InterfaceList_uu, -1, -1, "uu", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static 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 } }; + static int -dissect_gsm_map_RNC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - RNC_InterfaceList_bits, hf_index, ett_gsm_map_RNC_InterfaceList, - NULL); +dissect_gsm_map_er_UnauthorizedLCSClient_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_rnc_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RNC_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_IList); -} -static int dissect_rnc_InterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RNC_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_rnc_InterfaceList); -} -static const asn_namedbit MSC_S_InterfaceList_bits[] = { - { 0, &hf_gsm_map_MSC_S_InterfaceList_a, -1, -1, "a", NULL }, - { 1, &hf_gsm_map_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL }, - { 2, &hf_gsm_map_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL }, - { 3, &hf_gsm_map_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL }, - { 4, &hf_gsm_map_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL }, - { 5, &hf_gsm_map_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL }, - { 6, &hf_gsm_map_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL }, - { 7, &hf_gsm_map_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL }, - { 8, &hf_gsm_map_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL }, - { 9, &hf_gsm_map_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_MSC_S_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_MSC_S_InterfaceList, - NULL); +dissect_gsm_map_er_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnauthorizedLCSClient_Param); return offset; } -static int dissect_msc_s_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSC_S_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_IList); -} -static int dissect_msc_s_InterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSC_S_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_InterfaceList); -} -static const asn_namedbit MSC_S_EventList_bits[] = { - { 0, &hf_gsm_map_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL }, - { 1, &hf_gsm_map_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL }, - { 2, &hf_gsm_map_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL }, - { 3, &hf_gsm_map_MSC_S_EventList_handovers, -1, -1, "handovers", NULL }, - { 4, &hf_gsm_map_MSC_S_EventList_ss, -1, -1, "ss", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static 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 } }; + static int -dissect_gsm_map_MSC_S_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - MSC_S_EventList_bits, hf_index, ett_gsm_map_MSC_S_EventList, - NULL); +dissect_gsm_map_er_PositionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_msc_s_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSC_S_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_EList); -} -static int dissect_msc_s_EventList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSC_S_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_msc_s_EventList); -} -static const asn_namedbit MGW_InterfaceList_bits[] = { - { 0, &hf_gsm_map_MGW_InterfaceList_mc, -1, -1, "mc", NULL }, - { 1, &hf_gsm_map_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL }, - { 2, &hf_gsm_map_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_MGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - MGW_InterfaceList_bits, hf_index, ett_gsm_map_MGW_InterfaceList, - NULL); +dissect_gsm_map_er_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_er_PositionMethodFailure_Param); return offset; } -static int dissect_mgw_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MGW_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_IList); -} -static int dissect_mgw_InterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MGW_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_InterfaceList); -} -static const asn_namedbit MGW_EventList_bits[] = { - { 0, &hf_gsm_map_MGW_EventList_context, -1, -1, "context", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_MGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - MGW_EventList_bits, hf_index, ett_gsm_map_MGW_EventList, - NULL); +dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param); return offset; } -static int dissect_mgw_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MGW_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_EList); -} -static int dissect_mgw_EventList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MGW_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mgw_EventList); -} -static const ber_old_sequence_t TracePropagationList_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceType_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference2_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceRecordingSessionReference_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_TraceDepth_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_InterfaceList_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_TraceDepth_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_InterfaceList_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_EventList_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_TraceDepth_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_InterfaceList_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_EventList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_TracePropagationList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TracePropagationList_sequence, hf_index, ett_gsm_map_TracePropagationList); +dissect_gsm_map_er_MM_EventNotSupported_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_er_MM_EventNotSupported_Param); return offset; } -static int dissect_tracePropagationList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TracePropagationList(TRUE, tvb, offset, actx, tree, hf_gsm_map_tracePropagationList); -} -static const ber_old_sequence_t PrepareHO_ArgV3_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ho_NumberNotRequired }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetRNCId_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multipleBearerRequested_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionInfo_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionInfo_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceInformation_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedGSM_Algorithms_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedUMTS_Algorithms_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceList_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_Id_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandover_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ranap_ServiceHandover_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandoverList_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asciCallReference_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geran_classmark_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuCurrentlyUsedCodec_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSupportedCodecsList_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uesbi_Iu_impl }, - { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imeisv_impl }, - { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alternativeChannelType_impl }, - { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tracePropagationList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PrepareHO_ArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareHO_ArgV3_sequence, hf_index, ett_gsm_map_PrepareHO_ArgV3); +dissect_gsm_map_er_TargetCellOutsideGCA_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_er_TargetCellOutsideGCA_Param); return offset; } -static const ber_old_sequence_t PrepareHO_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_handoverNumber }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bss_APDU }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PrepareHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareHO_Res_sequence, hf_index, ett_gsm_map_PrepareHO_Res); +dissect_gsm_map_er_OngoingGroupCallParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_er_OngoingGroupCallParam); return offset; } -static const ber_old_sequence_t RelocationNumber_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_handoverNumber }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_rab_Id }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-SM-DataTypes --- --- --- */ + + static int -dissect_gsm_map_RelocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RelocationNumber_sequence, hf_index, ett_gsm_map_RelocationNumber); +dissect_gsm_map_sm_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_RelocationNumberList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RelocationNumber(FALSE, tvb, offset, actx, tree, hf_gsm_map_RelocationNumberList_item); -} -static const ber_old_sequence_t RelocationNumberList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RelocationNumberList_item }, -}; static int -dissect_gsm_map_RelocationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - RelocationNumberList_sequence_of, hf_index, ett_gsm_map_RelocationNumberList); +dissect_gsm_map_sm_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_relocationNumberList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RelocationNumberList(TRUE, tvb, offset, actx, tree, hf_gsm_map_relocationNumberList); -} static int -dissect_gsm_map_MulticallBearerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_sm_SM_RP_MTI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_multicallBearerInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MulticallBearerInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_multicallBearerInfo); -} static int -dissect_gsm_map_ChosenIntegrityProtectionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_sm_SM_RP_SMEA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_integrityProtectionAlgorithm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChosenIntegrityProtectionAlgorithm(TRUE, tvb, offset, actx, tree, hf_gsm_map_integrityProtectionAlgorithm); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_ChosenEncryptionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_sm_RoutingInfoForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RoutingInfoForSM_Arg_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Arg); return offset; } -static int dissect_encryptionAlgorithm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChosenEncryptionAlgorithm(TRUE, tvb, offset, actx, tree, hf_gsm_map_encryptionAlgorithm); -} -static const ber_old_sequence_t SelectedUMTS_Algorithms_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionAlgorithm_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionAlgorithm_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_sm_Additional_Number_vals[] = { + { 0, "msc-Number" }, + { 1, "sgsn-Number" }, + { 0, NULL } +}; + +static const ber_choice_t 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_SelectedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_SelectedUMTS_Algorithms); +dissect_gsm_map_sm_Additional_Number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Additional_Number_choice, hf_index, ett_gsm_map_sm_Additional_Number, + NULL); return offset; } -static int dissect_selectedUMTS_Algorithms_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SelectedUMTS_Algorithms(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedUMTS_Algorithms); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_ChosenChannelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_sm_LocationInfoWithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_sm_LocationInfoWithLMSI); return offset; } -static int dissect_chosenChannelInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChosenChannelInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenChannelInfo); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_ChosenSpeechVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_sm_RoutingInfoForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_sm_RoutingInfoForSM_Res); return offset; } -static int dissect_chosenSpeechVersion_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChosenSpeechVersion(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenSpeechVersion); -} -static const ber_old_sequence_t ChosenRadioResourceInformation_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannelInfo_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenSpeechVersion_impl }, - { 0, 0, 0, NULL } +static 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 SM_RP_DA_choice[] = { + { 0, &hf_gsm_map_sm_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, + { 1, &hf_gsm_map_sm_lmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, + { 4, &hf_gsm_map_sm_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, + { 5, &hf_gsm_map_sm_noSM_RP_DA, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_sm_NULL }, + { 0, NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ChosenRadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ChosenRadioResourceInformation); +dissect_gsm_map_sm_SM_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SM_RP_DA_choice, hf_index, ett_gsm_map_sm_SM_RP_DA, + NULL); return offset; } -static int dissect_chosenRadioResourceInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChosenRadioResourceInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenRadioResourceInformation); + + + +static int +dissect_gsm_map_sm_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 252 "gsm_map.cnf" +actx->pinfo->p2p_dir = P2P_DIR_RECV; + offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); + + + + + return offset; } -static const ber_old_sequence_t PrepareHO_ResV3_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_handoverNumber_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_relocationNumberList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_multicallBearerInfo_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_multipleBearerNotSupported }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenRadioResourceInformation_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_iuSelectedCodec }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_iuAvailableCodecsList }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_PrepareHO_ResV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareHO_ResV3_sequence, hf_index, ett_gsm_map_PrepareHO_ResV3); +dissect_gsm_map_sm_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 244 "gsm_map.cnf" + actx->pinfo->p2p_dir = P2P_DIR_SENT; + offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); + + + return offset; } -static const ber_old_sequence_t SendEndSignalArgV3_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static 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 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_NULL }, + { 0, NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SendEndSignalArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendEndSignalArgV3_sequence, hf_index, ett_gsm_map_SendEndSignalArgV3); +dissect_gsm_map_sm_SM_RP_OA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SM_RP_OA_choice, hf_index, ett_gsm_map_sm_SM_RP_OA, + NULL); return offset; } -static const ber_old_sequence_t SendEndSignalRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SendEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendEndSignalRes_sequence, hf_index, ett_gsm_map_SendEndSignalRes); +dissect_gsm_map_sm_MO_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MO_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Arg); return offset; } +static const ber_sequence_t 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_SelectedGSM_Algorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_sm_MO_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MO_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MO_ForwardSM_Res); return offset; } -static int dissect_selectedGSM_Algorithm_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SelectedGSM_Algorithm(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedGSM_Algorithm); -} -static const ber_old_sequence_t ProcessAccessSignallingArgV3_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedUMTS_Algorithms_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedGSM_Algorithm_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenRadioResourceInformation_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedRab_Id_impl }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iUSelectedCodec_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuAvailableCodecsList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ProcessAccessSignallingArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProcessAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ProcessAccessSignallingArgV3); +dissect_gsm_map_sm_MT_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MT_ForwardSM_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Arg); return offset; } -static const value_string gsm_map_KeyStatus_vals[] = { - { 0, "old" }, - { 1, "new" }, - { 0, NULL } +static const ber_sequence_t 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_KeyStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_sm_MT_ForwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MT_ForwardSM_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_Res); return offset; } -static int dissect_keyStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_KeyStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_keyStatus); -} -static const ber_old_sequence_t ForwardAccessSignallingArgV3_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_integrityProtectionInfo_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_encryptionInfo_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keyStatus_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedGSM_Algorithms_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedUMTS_Algorithms_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceInformation_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_radioResourceList_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandover_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ranap_ServiceHandover_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bssmap_ServiceHandoverList_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentlyUsedCodec_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSupportedCodecsList_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iuSelectedCodec_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alternativeChannelType_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tracePropagationList_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_sm_SM_DeliveryOutcome_vals[] = { + { 0, "memoryCapacityExceeded" }, + { 1, "absentSubscriber" }, + { 2, "successfulTransfer" }, + { 0, NULL } }; + static int -dissect_gsm_map_ForwardAccessSignallingArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardAccessSignallingArgV3_sequence, hf_index, ett_gsm_map_ForwardAccessSignallingArgV3); +dissect_gsm_map_sm_SM_DeliveryOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t PrepareSubsequentHOArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetCellId }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_targetMSC_Number }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bss_APDU }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_PrepareSubsequentHOArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareSubsequentHOArg_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArg); +dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusArg); return offset; } -static const ber_old_sequence_t PrepareSubsequentHOArgV3_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetCellId_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_targetMSC_Number_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_targetRNCId_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_an_APDU_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedRab_Id_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geran_classmark_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rab_ConfigurationIndicator_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PrepareSubsequentHOArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareSubsequentHOArgV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOArgV3); +dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_sm_ReportSM_DeliveryStatusRes); return offset; } -static const ber_old_sequence_t PrepareSubsequentHOResV3_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_an_APDU }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_PrepareSubsequentHOResV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareSubsequentHOResV3_sequence, hf_index, ett_gsm_map_PrepareSubsequentHOResV3); +dissect_gsm_map_sm_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_AlertServiceCentreArg); return offset; } +static const asn_namedbit MW_Status_bits[] = { + { 0, &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL }, + { 1, &hf_gsm_map_sm_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL }, + { 2, &hf_gsm_map_sm_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL }, + { 3, &hf_gsm_map_sm_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_sm_MW_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + MW_Status_bits, hf_index, ett_gsm_map_sm_MW_Status, + NULL); return offset; } -static const ber_old_sequence_t Re_synchronisationInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_auts }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Re_synchronisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_Re_synchronisationInfo); +dissect_gsm_map_sm_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + InformServiceCentreArg_sequence, hf_index, ett_gsm_map_sm_InformServiceCentreArg); return offset; } -static int dissect_re_synchronisationInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Re_synchronisationInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_re_synchronisationInfo); -} -static const value_string gsm_map_RequestingNodeType_vals[] = { - { 0, "vlr" }, - { 1, "sgsn" }, - { 2, "s-cscf" }, - { 3, "bsf" }, - { 4, "gan-aaa-server" }, - { 5, "wlan-aaa-server" }, +static const value_string gsm_map_sm_AlertReason_vals[] = { + { 0, "ms-Present" }, + { 1, "memoryAvailable" }, { 0, NULL } }; static int -dissect_gsm_map_RequestingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_sm_AlertReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_requestingNodeType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestingNodeType(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestingNodeType); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_sm_ReadyForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Arg); return offset; } -static int dissect_requestingPLMN_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PLMN_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestingPLMN_Id); -} -static int dissect_plmn_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PLMN_Id(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmn_Id); -} -static const ber_old_sequence_t SendAuthenticationInfoArgV2_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfRequestedVectors }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_segmentationProhibited }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immediateResponsePreferred_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_synchronisationInfo }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingNodeType_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestingPLMN_Id_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendAuthenticationInfoArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendAuthenticationInfoArgV2_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoArgV2); +dissect_gsm_map_sm_ReadyForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReadyForSM_Res_sequence, hf_index, ett_gsm_map_sm_ReadyForSM_Res); return offset; } -static const ber_old_sequence_t SendAuthenticationInfoRes_item_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_rand }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sres }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_kc }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendAuthenticationInfoRes_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendAuthenticationInfoRes_item_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoRes_item); +dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MT_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg); return offset; } -static int dissect_SendAuthenticationInfoRes_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SendAuthenticationInfoRes_item(FALSE, tvb, offset, actx, tree, hf_gsm_map_SendAuthenticationInfoRes_item); -} -static const ber_old_sequence_t SendAuthenticationInfoRes_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SendAuthenticationInfoRes_item }, +static const ber_sequence_t 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_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - SendAuthenticationInfoRes_sequence_of, hf_index, ett_gsm_map_SendAuthenticationInfoRes); +dissect_gsm_map_sm_DispatcherList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + DispatcherList_sequence_of, hf_index, ett_gsm_map_sm_DispatcherList); return offset; } -static const ber_old_sequence_t SendAuthenticationInfoResV3_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_authenticationSetList }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SendAuthenticationInfoResV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendAuthenticationInfoResV3_sequence, hf_index, ett_gsm_map_SendAuthenticationInfoResV3); +dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MT_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_sm_MT_ForwardSM_VGCS_Res); return offset; } -static const asn_namedbit RequestedEquipmentInfo_bits[] = { - { 0, &hf_gsm_map_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL }, - { 1, &hf_gsm_map_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL }, - { 0, NULL, 0, 0, NULL, NULL } -}; +/* --- Module MAP-OM-DataTypes --- --- --- */ + + static int -dissect_gsm_map_RequestedEquipmentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_RequestedEquipmentInfo, - NULL); +dissect_gsm_map_om_TraceReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_requestedEquipmentInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestedEquipmentInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_requestedEquipmentInfo); + + + +static int +dissect_gsm_map_om_TraceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t CheckIMEIArgV3_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imei }, - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_requestedEquipmentInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_CheckIMEIArgV3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CheckIMEIArgV3_sequence, hf_index, ett_gsm_map_CheckIMEIArgV3); +dissect_gsm_map_om_TraceReference2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const value_string gsm_map_EquipmentStatus_vals[] = { - { 0, "whiteListed" }, - { 1, "blackListed" }, - { 2, "greyListed" }, +static const value_string gsm_map_om_TraceDepth_vals[] = { + { 0, "minimum" }, + { 1, "medium" }, + { 2, "maximum" }, { 0, NULL } }; static int -dissect_gsm_map_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_om_TraceDepth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_equipmentStatus(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EquipmentStatus(FALSE, tvb, offset, actx, tree, hf_gsm_map_equipmentStatus); -} -static const ber_old_sequence_t CheckIMEIRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_equipmentStatus }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_bmuef }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_CheckIMEIRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CheckIMEIRes_sequence, hf_index, ett_gsm_map_CheckIMEIRes); +dissect_gsm_map_om_TraceDepthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TraceDepthList_sequence, hf_index, ett_gsm_map_om_TraceDepthList); return offset; } -static const value_string gsm_map_OverrideCategory_vals[] = { - { 0, "overrideEnabled" }, - { 1, "overrideDisabled" }, - { 0, NULL } +static const asn_namedbit TraceNE_TypeList_bits[] = { + { 0, &hf_gsm_map_om_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL }, + { 1, &hf_gsm_map_om_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL }, + { 2, &hf_gsm_map_om_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL }, + { 3, &hf_gsm_map_om_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL }, + { 4, &hf_gsm_map_om_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL }, + { 5, &hf_gsm_map_om_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; - static int -dissect_gsm_map_OverrideCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_TraceNE_TypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + TraceNE_TypeList_bits, hf_index, ett_gsm_map_om_TraceNE_TypeList, + NULL); return offset; } -static int dissect_overrideCategory_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OverrideCategory(TRUE, tvb, offset, actx, tree, hf_gsm_map_overrideCategory); -} +static const asn_namedbit MSC_S_InterfaceList_bits[] = { + { 0, &hf_gsm_map_om_MSC_S_InterfaceList_a, -1, -1, "a", NULL }, + { 1, &hf_gsm_map_om_MSC_S_InterfaceList_iu, -1, -1, "iu", NULL }, + { 2, &hf_gsm_map_om_MSC_S_InterfaceList_mc, -1, -1, "mc", NULL }, + { 3, &hf_gsm_map_om_MSC_S_InterfaceList_map_g, -1, -1, "map-g", NULL }, + { 4, &hf_gsm_map_om_MSC_S_InterfaceList_map_b, -1, -1, "map-b", NULL }, + { 5, &hf_gsm_map_om_MSC_S_InterfaceList_map_e, -1, -1, "map-e", NULL }, + { 6, &hf_gsm_map_om_MSC_S_InterfaceList_map_f, -1, -1, "map-f", NULL }, + { 7, &hf_gsm_map_om_MSC_S_InterfaceList_cap, -1, -1, "cap", NULL }, + { 8, &hf_gsm_map_om_MSC_S_InterfaceList_map_d, -1, -1, "map-d", NULL }, + { 9, &hf_gsm_map_om_MSC_S_InterfaceList_map_c, -1, -1, "map-c", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_MSC_S_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + MSC_S_InterfaceList_bits, hf_index, ett_gsm_map_om_MSC_S_InterfaceList, + NULL); return offset; } -static int dissect_bearerService_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BearerServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_bearerService); -} +static const asn_namedbit MGW_InterfaceList_bits[] = { + { 0, &hf_gsm_map_om_MGW_InterfaceList_mc, -1, -1, "mc", NULL }, + { 1, &hf_gsm_map_om_MGW_InterfaceList_nb_up, -1, -1, "nb-up", NULL }, + { 2, &hf_gsm_map_om_MGW_InterfaceList_iu_up, -1, -1, "iu-up", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_MGW_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + MGW_InterfaceList_bits, hf_index, ett_gsm_map_om_MGW_InterfaceList, + NULL); return offset; } -static int dissect_teleservice_code_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TeleserviceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_teleservice_code); -} -static const value_string gsm_map_BasicServiceCode_vals[] = { - { 2, "bearerService" }, - { 3, "teleservice" }, - { 0, NULL } -}; - -static const ber_old_choice_t BasicServiceCode_choice[] = { - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_bearerService_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_teleservice_code_impl }, - { 0, 0, 0, 0, NULL } +static const asn_namedbit SGSN_InterfaceList_bits[] = { + { 0, &hf_gsm_map_om_SGSN_InterfaceList_gb, -1, -1, "gb", NULL }, + { 1, &hf_gsm_map_om_SGSN_InterfaceList_iu, -1, -1, "iu", NULL }, + { 2, &hf_gsm_map_om_SGSN_InterfaceList_gn, -1, -1, "gn", NULL }, + { 3, &hf_gsm_map_om_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL }, + { 4, &hf_gsm_map_om_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL }, + { 5, &hf_gsm_map_om_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL }, + { 6, &hf_gsm_map_om_SGSN_InterfaceList_gs, -1, -1, "gs", NULL }, + { 7, &hf_gsm_map_om_SGSN_InterfaceList_ge, -1, -1, "ge", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - BasicServiceCode_choice, hf_index, ett_gsm_map_BasicServiceCode, - NULL); +dissect_gsm_map_om_SGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_SGSN_InterfaceList, + NULL); return offset; } -static int dissect_BasicServiceGroupList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BasicServiceGroupList_item); -} -static int dissect_basicService(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_basicService); -} -static int dissect_basicServiceGroup_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceGroup); -} -static const ber_old_sequence_t BasicServiceGroupList_sequence_of[1] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceGroupList_item }, +static const asn_namedbit GGSN_InterfaceList_bits[] = { + { 0, &hf_gsm_map_om_GGSN_InterfaceList_gn, -1, -1, "gn", NULL }, + { 1, &hf_gsm_map_om_GGSN_InterfaceList_gi, -1, -1, "gi", NULL }, + { 2, &hf_gsm_map_om_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_BasicServiceGroupList); +dissect_gsm_map_om_GGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + GGSN_InterfaceList_bits, hf_index, ett_gsm_map_om_GGSN_InterfaceList, + NULL); return offset; } -static int dissect_ext_basicServiceGroupList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceGroupList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroupList); -} -static int dissect_ext_basicServiceGroupList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceGroupList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroupList); -} -static const asn_namedbit ODB_GeneralData_bits[] = { - { 0, &hf_gsm_map_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL }, - { 1, &hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL }, - { 2, &hf_gsm_map_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL }, - { 6, &hf_gsm_map_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL }, - { 7, &hf_gsm_map_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL }, - { 8, &hf_gsm_map_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL }, - { 3, &hf_gsm_map_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL }, - { 4, &hf_gsm_map_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL }, - { 5, &hf_gsm_map_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL }, - { 9, &hf_gsm_map_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL }, - { 10, &hf_gsm_map_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL }, - { 11, &hf_gsm_map_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL }, - { 12, &hf_gsm_map_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL }, - { 13, &hf_gsm_map_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL }, - { 14, &hf_gsm_map_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL }, - { 15, &hf_gsm_map_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL }, - { 16, &hf_gsm_map_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL }, - { 17, &hf_gsm_map_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL }, - { 18, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL }, - { 19, &hf_gsm_map_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL }, - { 20, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL }, - { 21, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL }, - { 22, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL }, - { 23, &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL }, - { 24, &hf_gsm_map_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL }, - { 25, &hf_gsm_map_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL }, - { 26, &hf_gsm_map_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL }, - { 27, &hf_gsm_map_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL }, - { 28, &hf_gsm_map_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL }, +static const asn_namedbit RNC_InterfaceList_bits[] = { + { 0, &hf_gsm_map_om_RNC_InterfaceList_iu, -1, -1, "iu", NULL }, + { 1, &hf_gsm_map_om_RNC_InterfaceList_iur, -1, -1, "iur", NULL }, + { 2, &hf_gsm_map_om_RNC_InterfaceList_iub, -1, -1, "iub", NULL }, + { 3, &hf_gsm_map_om_RNC_InterfaceList_uu, -1, -1, "uu", NULL }, { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_ODB_GeneralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_om_RNC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - ODB_GeneralData_bits, hf_index, ett_gsm_map_ODB_GeneralData, + RNC_InterfaceList_bits, hf_index, ett_gsm_map_om_RNC_InterfaceList, NULL); return offset; } -static int dissect_odb_GeneralData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_GeneralData(FALSE, tvb, offset, actx, tree, hf_gsm_map_odb_GeneralData); -} -static int dissect_odb_GeneralData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_GeneralData(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_GeneralData); -} -static const asn_namedbit ODB_HPLMN_Data_bits[] = { - { 0, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL }, - { 1, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL }, - { 2, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL }, - { 3, &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL }, +static const asn_namedbit BMSC_InterfaceList_bits[] = { + { 0, &hf_gsm_map_om_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL }, { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_ODB_HPLMN_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_om_BMSC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ODB_HPLMN_Data, + BMSC_InterfaceList_bits, hf_index, ett_gsm_map_om_BMSC_InterfaceList, NULL); return offset; } -static int dissect_odb_HPLMN_Data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_HPLMN_Data(FALSE, tvb, offset, actx, tree, hf_gsm_map_odb_HPLMN_Data); -} -static const value_string gsm_map_SubscriberStatus_vals[] = { - { 0, "serviceGranted" }, - { 1, "operatorDeterminedBarring" }, - { 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; - static int -dissect_gsm_map_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_TraceInterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TraceInterfaceList_sequence, hf_index, ett_gsm_map_om_TraceInterfaceList); return offset; } -static int dissect_subscriberStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberStatus); -} +static const asn_namedbit MSC_S_EventList_bits[] = { + { 0, &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, -1, -1, "mo-mtCall", NULL }, + { 1, &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL }, + { 2, &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, -1, -1, "lu-imsiAttach-imsiDetach", NULL }, + { 3, &hf_gsm_map_om_MSC_S_EventList_handovers, -1, -1, "handovers", NULL }, + { 4, &hf_gsm_map_om_MSC_S_EventList_ss, -1, -1, "ss", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_MSC_S_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + MSC_S_EventList_bits, hf_index, ett_gsm_map_om_MSC_S_EventList, + NULL); return offset; } -static int dissect_serviceKey(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceKey(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceKey); -} -static int dissect_serviceKey_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceKey(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceKey); -} -static const value_string gsm_map_O_BcsmTriggerDetectionPoint_vals[] = { - { 2, "collectedInfo" }, - { 4, "routeSelectFailure" }, - { 0, NULL } +static const asn_namedbit MGW_EventList_bits[] = { + { 0, &hf_gsm_map_om_MGW_EventList_context, -1, -1, "context", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; - static int -dissect_gsm_map_O_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_MGW_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + MGW_EventList_bits, hf_index, ett_gsm_map_om_MGW_EventList, + NULL); return offset; } -static int dissect_o_BcsmTriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmTriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmTriggerDetectionPoint); -} -static const value_string gsm_map_DefaultCallHandling_vals[] = { - { 0, "continueCall" }, - { 1, "releaseCall" }, - { 0, NULL } +static const asn_namedbit SGSN_EventList_bits[] = { + { 0, &hf_gsm_map_om_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL }, + { 1, &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL }, + { 2, &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL }, + { 3, &hf_gsm_map_om_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; - static int -dissect_gsm_map_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_SGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SGSN_EventList_bits, hf_index, ett_gsm_map_om_SGSN_EventList, + NULL); return offset; } -static int dissect_defaultCallHandling(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DefaultCallHandling(FALSE, tvb, offset, actx, tree, hf_gsm_map_defaultCallHandling); -} -static int dissect_defaultCallHandling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DefaultCallHandling(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultCallHandling); -} -static const ber_old_sequence_t O_BcsmCamelTDPData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const asn_namedbit GGSN_EventList_bits[] = { + { 0, &hf_gsm_map_om_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL }, + { 1, &hf_gsm_map_om_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_O_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDPData); +dissect_gsm_map_om_GGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + GGSN_EventList_bits, hf_index, ett_gsm_map_om_GGSN_EventList, + NULL); return offset; } -static int dissect_O_BcsmCamelTDPDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmCamelTDPData(FALSE, tvb, offset, actx, tree, hf_gsm_map_O_BcsmCamelTDPDataList_item); -} -static const ber_old_sequence_t O_BcsmCamelTDPDataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDPDataList_item }, +static const asn_namedbit BMSC_EventList_bits[] = { + { 0, &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_O_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDPDataList); +dissect_gsm_map_om_BMSC_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + BMSC_EventList_bits, hf_index, ett_gsm_map_om_BMSC_EventList, + NULL); return offset; } -static int dissect_o_BcsmCamelTDPDataList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmCamelTDPDataList(FALSE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmCamelTDPDataList); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_CamelCapabilityHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_TraceEventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TraceEventList_sequence, hf_index, ett_gsm_map_om_TraceEventList); return offset; } -static int dissect_camelCapabilityHandling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CamelCapabilityHandling(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelCapabilityHandling); -} -static const ber_old_sequence_t O_CSI_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_o_BcsmCamelTDPDataList }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csiActive_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_O_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - O_CSI_sequence, hf_index, ett_gsm_map_O_CSI); +dissect_gsm_map_om_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeArg); return offset; } -static int dissect_o_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_CSI); -} -static int dissect_o_IM_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_IM_CSI); -} static int -dissect_gsm_map_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_om_TraceRecordingSessionReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_category_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Category(TRUE, tvb, offset, actx, tree, hf_gsm_map_category); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_TracePropagationList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + TracePropagationList_sequence, hf_index, ett_gsm_map_om_TracePropagationList); return offset; } -static int dissect_BearerServiceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BearerServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BearerServiceList_item); -} -static int dissect_ext_BearerService_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BearerServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_BearerService); -} -static const ber_old_sequence_t BearerServiceList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_BearerServiceList_item }, -}; static int -dissect_gsm_map_BearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - BearerServiceList_sequence_of, hf_index, ett_gsm_map_BearerServiceList); +dissect_gsm_map_om_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_bearerserviceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BearerServiceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bearerserviceList); -} -static int dissect_bearerServiceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BearerServiceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bearerServiceList); -} +static const ber_sequence_t 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_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_om_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_ActivateTraceModeRes); return offset; } -static int dissect_TeleserviceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_TeleserviceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_TeleserviceList_item); -} -static int dissect_ext_Teleservice_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_TeleserviceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_Teleservice); -} -static int dissect_ext_teleservice(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_TeleserviceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_teleservice); -} -static const ber_old_sequence_t TeleserviceList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_TeleserviceList_item }, +static const ber_sequence_t 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_TeleserviceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - TeleserviceList_sequence_of, hf_index, ett_gsm_map_TeleserviceList); +dissect_gsm_map_om_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeArg); return offset; } -static int dissect_teleserviceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TeleserviceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_teleserviceList); -} +static const ber_sequence_t 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 } +}; -int -dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_om_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_om_DeactivateTraceModeRes); return offset; } -static int dissect_ss_Code(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); -} -static int dissect_ss_Code_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); -} -static int dissect_SS_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_SS_List_item); -} -static int dissect_SS_EventList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_SS_EventList_item); -} -static int dissect_ss_Event_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Event); -} -const value_string gsm_map_Ext_BasicServiceCode_vals[] = { - { 2, "ext-BearerService" }, - { 3, "ext-Teleservice" }, - { 0, NULL } -}; +/* --- Module MAP-MS-DataTypes --- --- --- */ -static const ber_old_choice_t Ext_BasicServiceCode_choice[] = { - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_BearerService_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_Teleservice_impl }, - { 0, 0, 0, 0, NULL } + +static const asn_namedbit SupportedCamelPhases_bits[] = { + { 0, &hf_gsm_map_ms_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL }, + { 1, &hf_gsm_map_ms_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL }, + { 2, &hf_gsm_map_ms_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL }, + { 3, &hf_gsm_map_ms_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; int -dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode, - NULL); +dissect_gsm_map_ms_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SupportedCamelPhases_bits, hf_index, ett_gsm_map_ms_SupportedCamelPhases, + NULL); return offset; } -static int dissect_BasicServiceList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BasicServiceList_item); -} -static int dissect_ext_basicService(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_basicService); -} -static int dissect_ext_basicService_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_basicService); -} -static int dissect_Ext_BasicServiceGroupList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_BasicServiceGroupList_item); -} -static int dissect_ext_basicServiceGroup(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroup); -} -static int dissect_ext_basicServiceGroup_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_basicServiceGroup); -} -static int dissect_basicServiceGroup2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceGroup2); -} -static int dissect_basicService2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicService2); -} -static int dissect_BasicServiceCriteria_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_BasicServiceCriteria_item); -} static int -dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 328 "gsmmap.cnf" - /* Note Ext-SS-Status can have more than one byte */ +dissect_gsm_map_ms_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); - tvbuff_t *parameter_tvb; - guint8 octet; + return offset; +} - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); +static const value_string gsm_map_ms_IST_SupportIndicator_vals[] = { + { 0, "basicISTSupported" }, + { 1, "istCommandSupported" }, + { 0, NULL } +}; - if (!parameter_tvb) - return offset; - octet = tvb_get_guint8(parameter_tvb,0); +static int +dissect_gsm_map_ms_IST_SupportIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); - 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_ms_AgeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ext_ss_Status(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_ss_Status); -} -static int dissect_ext_ss_Status_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_SS_Status(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_ss_Status); -} +static const value_string gsm_map_ms_SuperChargerInfo_vals[] = { + { 0, "sendSubscriberData" }, + { 1, "subscriberDataStored" }, + { 0, NULL } +}; -int -dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static const ber_choice_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SuperChargerInfo_choice, hf_index, ett_gsm_map_ms_SuperChargerInfo, + NULL); return offset; } -static int dissect_forwardedToSubaddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_SubaddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardedToSubaddress); -} -static int dissect_b_subscriberSubaddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ISDN_SubaddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_b_subscriberSubaddress); -} +static const asn_namedbit SupportedLCS_CapabilitySets_bits[] = { + { 0, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, -1, -1, "lcsCapabilitySet1", NULL }, + { 1, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, -1, -1, "lcsCapabilitySet2", NULL }, + { 2, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, -1, -1, "lcsCapabilitySet3", NULL }, + { 3, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, -1, -1, "lcsCapabilitySet4", NULL }, + { 4, &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, -1, -1, "lcsCapabilitySet5", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_Ext_ForwOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_SupportedLCS_CapabilitySets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SupportedLCS_CapabilitySets_bits, hf_index, ett_gsm_map_ms_SupportedLCS_CapabilitySets, + NULL); return offset; } +static const asn_namedbit OfferedCamel4CSIs_bits[] = { + { 0, &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, -1, -1, "o-csi", NULL }, + { 1, &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, -1, -1, "d-csi", NULL }, + { 2, &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, -1, -1, "vt-csi", NULL }, + { 3, &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, -1, -1, "t-csi", NULL }, + { 4, &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, -1, -1, "mt-sms-csi", NULL }, + { 5, &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, -1, -1, "mg-csi", NULL }, + { 6, &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, -1, -1, "psi-enhancements", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; static int -dissect_gsm_map_T_ext_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_ms_OfferedCamel4CSIs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + OfferedCamel4CSIs_bits, hf_index, ett_gsm_map_ms_OfferedCamel4CSIs, + NULL); -#line 539 "gsmmap.cnf" + return offset; +} - proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE); +static const asn_namedbit SupportedRAT_Types_bits[] = { + { 0, &hf_gsm_map_ms_SupportedRAT_Types_utran, -1, -1, "utran", NULL }, + { 1, &hf_gsm_map_ms_SupportedRAT_Types_geran, -1, -1, "geran", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_gsm_map_ms_SupportedRAT_Types(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SupportedRAT_Types_bits, hf_index, ett_gsm_map_ms_SupportedRAT_Types, + NULL); return offset; } -static int dissect_ext_forwardingOptions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_ext_forwardingOptions(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingOptions); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_Ext_NoRepCondTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_VLR_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + VLR_Capability_sequence, hf_index, ett_gsm_map_ms_VLR_Capability); return offset; } -static int dissect_ext_noReplyConditionTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_NoRepCondTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_noReplyConditionTime); -} int -dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 264 "gsmmap.cnf" +dissect_gsm_map_ms_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 413 "gsm_map.cnf" - tvbuff_t *parameter_tvb; - char *digit_str; - guint8 octet; - guint8 na; - guint8 np; - proto_item *item; - proto_tree *subtree; + tvbuff_t *parameter_tvb; + guint8 octet; + proto_item *item; + proto_tree *subtree; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); - if (!parameter_tvb) - return offset; + if (!parameter_tvb) + return offset; + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_gsm_map_pdptypenumber); - item = get_ber_last_created_item(); - subtree = proto_item_add_subtree(item, ett_gsm_map_isdn_address_string); + octet = tvb_get_guint8(parameter_tvb,0); + switch(octet){ + case 0x04: /* IPv4 */ + proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); + break; + case 0x50: /* IPv4 */ + proto_tree_add_item(subtree, hf_gsm_map_GSNAddress_IPv4, parameter_tvb, 1, tvb_length_remaining(parameter_tvb, 1), FALSE); + break; + default: + break; + } - proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); - digit_str = unpack_digits(parameter_tvb, 1); - proto_tree_add_string(tree, hf_gsm_map_address_digits, parameter_tvb, 1, -1, digit_str); + return offset; +} - octet = tvb_get_guint8(parameter_tvb,0); - na = (octet & 0x70)>>4; - np = octet & 0x0f; - if ((na == 1) && (np==1))/*International Number & E164*/ - dissect_e164_cc(parameter_tvb, subtree, 1, TRUE); +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ADD_Info_sequence, hf_index, ett_gsm_map_ms_ADD_Info); return offset; } -static int dissect_omc_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_omc_Id); -} -static int dissect_forwardedToNumber_addr_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardedToNumber_addr); -} -static int dissect_SS_EventSpecification_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AddressString(FALSE, tvb, offset, actx, tree, hf_gsm_map_SS_EventSpecification_item); -} -static int dissect_lcsClientDialedByMS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientDialedByMS); -} +static const ber_sequence_t 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_ms_GSN_Address }, + { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_FTN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_ms_UpdateLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UpdateLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateLocationArg); return offset; } -static int dissect_longForwardedToNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_FTN_AddressString(TRUE, tvb, offset, actx, tree, hf_gsm_map_longForwardedToNumber); -} -static const ber_old_sequence_t Ext_ForwFeature_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_forwardingOptions_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_noReplyConditionTime_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ext_ForwFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_ForwFeature_sequence, hf_index, ett_gsm_map_Ext_ForwFeature); +dissect_gsm_map_ms_UpdateLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UpdateLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateLocationRes); return offset; } -static int dissect_Ext_ForwFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ForwFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_ForwFeatureList_item); -} -static const ber_old_sequence_t Ext_ForwFeatureList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Ext_ForwFeatureList_item }, +static const value_string gsm_map_ms_CancellationType_vals[] = { + { 0, "updateProcedure" }, + { 1, "subscriptionWithdraw" }, + { 0, NULL } }; + static int -dissect_gsm_map_Ext_ForwFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_Ext_ForwFeatureList); +dissect_gsm_map_ms_CancellationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ext_forwardingFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ForwFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingFeatureList); -} -static int dissect_ext_forwardingFeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ForwFeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingFeatureList); -} -static const ber_old_sequence_t Ext_ForwInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_forwardingFeatureList }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ext_ForwInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_ForwInfo_sequence, hf_index, ett_gsm_map_Ext_ForwInfo); +dissect_gsm_map_ms_CancelLocationArg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CancelLocationArg_U_sequence, hf_index, ett_gsm_map_ms_CancelLocationArg_U); return offset; } -static int dissect_ext_forwardingInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ForwInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_forwardingInfo); + + + +static int +dissect_gsm_map_ms_CancelLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_old_sequence_t Ext_CallBarringFeature_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_Ext_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_Ext_CallBarringFeature); +dissect_gsm_map_ms_CancelLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CancelLocationRes_sequence, hf_index, ett_gsm_map_ms_CancelLocationRes); return offset; } -static int dissect_Ext_CallBarFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_CallBarringFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_CallBarFeatureList_item); -} -static const ber_old_sequence_t Ext_CallBarFeatureList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Ext_CallBarFeatureList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ext_CallBarFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_Ext_CallBarFeatureList); +dissect_gsm_map_ms_PurgeMS_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PurgeMS_Arg_U_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Arg_U); return offset; } -static int dissect_ext_callBarringFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_CallBarFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_callBarringFeatureList); -} -static int dissect_ext_callBarringFeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_CallBarFeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_callBarringFeatureList); + + + +static int +dissect_gsm_map_ms_PurgeMS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_old_sequence_t Ext_CallBarInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_callBarringFeatureList }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ext_CallBarInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_Ext_CallBarInfo); +dissect_gsm_map_ms_PurgeMS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PurgeMS_Res_sequence, hf_index, ett_gsm_map_ms_PurgeMS_Res); return offset; } -static int dissect_ext_callBarringInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_CallBarInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_callBarringInfo); -} -int -dissect_gsm_map_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +static int +dissect_gsm_map_ms_NumberOfRequestedVectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_cug_Index(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_Index(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_Index); + + + +static int +dissect_gsm_map_ms_HopCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static int dissect_preferentialCUG_Indicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_Index(FALSE, tvb, offset, actx, tree, hf_gsm_map_preferentialCUG_Indicator); + + +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gsm_map_ms_SendIdentificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendIdentificationArg_sequence, hf_index, ett_gsm_map_ms_SendIdentificationArg); + + return offset; } -int -dissect_gsm_map_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +static int +dissect_gsm_map_ms_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_cug_Interlock(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_Interlock(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_Interlock); -} -static const value_string gsm_map_IntraCUG_Options_vals[] = { - { 0, "noCUG-Restrictions" }, - { 1, "cugIC-CallBarred" }, - { 2, "cugOG-CallBarred" }, - { 0, NULL } -}; - static int -dissect_gsm_map_IntraCUG_Options(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_intraCUG_Options(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IntraCUG_Options(FALSE, tvb, offset, actx, tree, hf_gsm_map_intraCUG_Options); -} -static const ber_old_sequence_t Ext_BasicServiceGroupList_sequence_of[1] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_BasicServiceGroupList_item }, -}; static int -dissect_gsm_map_Ext_BasicServiceGroupList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_Ext_BasicServiceGroupList); +dissect_gsm_map_ms_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_basicServiceGroupList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_BasicServiceGroupList(FALSE, tvb, offset, actx, tree, hf_gsm_map_basicServiceGroupList); -} -static const ber_old_sequence_t CUG_Subscription_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_cug_Index }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intraCUG_Options }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CUG_Subscription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CUG_Subscription_sequence, hf_index, ett_gsm_map_CUG_Subscription); +dissect_gsm_map_ms_AuthenticationTriplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AuthenticationTriplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationTriplet); return offset; } -static int dissect_CUG_SubscriptionList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_Subscription(FALSE, tvb, offset, actx, tree, hf_gsm_map_CUG_SubscriptionList_item); -} -static const ber_old_sequence_t CUG_SubscriptionList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CUG_SubscriptionList_item }, +static const ber_sequence_t 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_CUG_SubscriptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_CUG_SubscriptionList); +dissect_gsm_map_ms_TripletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + TripletList_sequence_of, hf_index, ett_gsm_map_ms_TripletList); return offset; } -static int dissect_cug_SubscriptionList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_SubscriptionList(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_SubscriptionList); -} static int -dissect_gsm_map_InterCUG_Restrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_XRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_interCUG_Restrictions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InterCUG_Restrictions(FALSE, tvb, offset, actx, tree, hf_gsm_map_interCUG_Restrictions); -} -static const ber_old_sequence_t CUG_Feature_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_preferentialCUG_Indicator }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_interCUG_Restrictions }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_CUG_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CUG_Feature_sequence, hf_index, ett_gsm_map_CUG_Feature); +dissect_gsm_map_ms_CK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_CUG_FeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_Feature(FALSE, tvb, offset, actx, tree, hf_gsm_map_CUG_FeatureList_item); -} -static const ber_old_sequence_t CUG_FeatureList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CUG_FeatureList_item }, -}; static int -dissect_gsm_map_CUG_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_CUG_FeatureList); +dissect_gsm_map_ms_IK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_cug_FeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_FeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_FeatureList); + + + +static int +dissect_gsm_map_ms_AUTN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t CUG_Info_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cug_SubscriptionList }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_FeatureList }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CUG_Info_sequence, hf_index, ett_gsm_map_CUG_Info); +static int +dissect_gsm_map_ms_AuthenticationQuintuplet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AuthenticationQuintuplet_sequence, hf_index, ett_gsm_map_ms_AuthenticationQuintuplet); return offset; } -static int dissect_cug_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_cug_Info); -} -static const value_string gsm_map_CliRestrictionOption_vals[] = { - { 0, "permanent" }, - { 1, "temporaryDefaultRestricted" }, - { 2, "temporaryDefaultAllowed" }, - { 0, NULL } +static const ber_sequence_t 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_CliRestrictionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_QuintupletList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + QuintupletList_sequence_of, hf_index, ett_gsm_map_ms_QuintupletList); return offset; } -static int dissect_cliRestrictionOption(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CliRestrictionOption(FALSE, tvb, offset, actx, tree, hf_gsm_map_cliRestrictionOption); -} -static int dissect_cliRestrictionOption_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CliRestrictionOption(TRUE, tvb, offset, actx, tree, hf_gsm_map_cliRestrictionOption); -} -static const value_string gsm_map_SS_SubscriptionOption_vals[] = { - { 2, "cliRestrictionOption" }, - { 1, "overrideCategory" }, +static const value_string gsm_map_ms_AuthenticationSetList_vals[] = { + { 0, "tripletList" }, + { 1, "quintupletList" }, { 0, NULL } }; -static const ber_old_choice_t SS_SubscriptionOption_choice[] = { - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cliRestrictionOption_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_overrideCategory_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_SS_SubscriptionOption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - SS_SubscriptionOption_choice, hf_index, ett_gsm_map_SS_SubscriptionOption, - NULL); +dissect_gsm_map_ms_AuthenticationSetList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + AuthenticationSetList_choice, hf_index, ett_gsm_map_ms_AuthenticationSetList, + NULL); return offset; } -static int dissect_ss_SubscriptionOption(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_SubscriptionOption(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_SubscriptionOption); + + + +static int +dissect_gsm_map_ms_Cksn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t Ext_SS_Data_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_basicServiceGroupList }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_Ext_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_SS_Data_sequence, hf_index, ett_gsm_map_Ext_SS_Data); +dissect_gsm_map_ms_GSM_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GSM_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_GSM_SecurityContextData); return offset; } -static int dissect_ext_ss_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_SS_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_ss_Data); -} static int -dissect_gsm_map_EMLPP_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_KSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_maximumentitledPriority(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EMLPP_Priority(FALSE, tvb, offset, actx, tree, hf_gsm_map_maximumentitledPriority); -} -static int dissect_defaultPriority(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EMLPP_Priority(FALSE, tvb, offset, actx, tree, hf_gsm_map_defaultPriority); -} -static int dissect_defaultPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultPriority); -} -static int dissect_maximumEntitledPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_maximumEntitledPriority); -} -static int dissect_priority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EMLPP_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_priority); -} -static const ber_old_sequence_t EMLPP_Info_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_maximumentitledPriority }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_defaultPriority }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_EMLPP_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - EMLPP_Info_sequence, hf_index, ett_gsm_map_EMLPP_Info); +dissect_gsm_map_ms_UMTS_SecurityContextData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UMTS_SecurityContextData_sequence, hf_index, ett_gsm_map_ms_UMTS_SecurityContextData); return offset; } -static int dissect_emlpp_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EMLPP_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_emlpp_Info); -} -static const value_string gsm_map_Ext_SS_Info_vals[] = { - { 0, "forwardingInfo" }, - { 1, "callBarringInfo" }, - { 2, "cug-Info" }, - { 3, "ss-Data" }, - { 4, "emlpp-Info" }, +static const value_string gsm_map_ms_CurrentSecurityContext_vals[] = { + { 0, "gsm-SecurityContextData" }, + { 1, "umts-SecurityContextData" }, { 0, NULL } }; -static const ber_old_choice_t Ext_SS_Info_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ext_forwardingInfo_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_callBarringInfo_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_cug_Info_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ext_ss_Data_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_emlpp_Info_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_Ext_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Ext_SS_Info_choice, hf_index, ett_gsm_map_Ext_SS_Info, - NULL); +dissect_gsm_map_ms_CurrentSecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + CurrentSecurityContext_choice, hf_index, ett_gsm_map_ms_CurrentSecurityContext, + NULL); return offset; } -static int dissect_Ext_SS_InfoList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_SS_Info(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_SS_InfoList_item); -} -static const ber_old_sequence_t Ext_SS_InfoList_sequence_of[1] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_Ext_SS_InfoList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ext_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_Ext_SS_InfoList); +dissect_gsm_map_ms_SendIdentificationRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendIdentificationRes_U_sequence, hf_index, ett_gsm_map_ms_SendIdentificationRes_U); return offset; } -static int dissect_provisionedSS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_SS_InfoList(TRUE, tvb, offset, actx, tree, hf_gsm_map_provisionedSS); -} -static const ber_old_sequence_t ODB_Data_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_odb_GeneralData }, - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_odb_HPLMN_Data }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ODB_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ODB_Data_sequence, hf_index, ett_gsm_map_ODB_Data); +dissect_gsm_map_ms_SendIdentificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_odb_Data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_Data(FALSE, tvb, offset, actx, tree, hf_gsm_map_odb_Data); -} -static int dissect_odb_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_Data); -} -static int dissect_odb_data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_data); -} static int -dissect_gsm_map_ZoneCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_AUTS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_regionalSubscriptionIdentifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ZoneCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_regionalSubscriptionIdentifier); -} -static int dissect_ZoneCodeList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ZoneCode(FALSE, tvb, offset, actx, tree, hf_gsm_map_ZoneCodeList_item); -} -static const ber_old_sequence_t ZoneCodeList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ZoneCodeList_item }, +static const value_string gsm_map_ms_FailureCause_vals[] = { + { 0, "wrongUserResponse" }, + { 1, "wrongNetworkSignature" }, + { 0, NULL } }; + static int -dissect_gsm_map_ZoneCodeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ZoneCodeList); +dissect_gsm_map_ms_FailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_regionalSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ZoneCodeList(TRUE, tvb, offset, actx, tree, hf_gsm_map_regionalSubscriptionData); -} static int -dissect_gsm_map_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_ms_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_groupId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GroupId(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupId); -} -static int dissect_groupid(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GroupId(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupid); -} -static const asn_namedbit AdditionalSubscriptions_bits[] = { - { 0, &hf_gsm_map_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL }, - { 1, &hf_gsm_map_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL }, - { 2, &hf_gsm_map_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static 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_AdditionalSubscriptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - AdditionalSubscriptions_bits, hf_index, ett_gsm_map_AdditionalSubscriptions, - NULL); +dissect_gsm_map_ms_AccessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_additionalSubscriptions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalSubscriptions(FALSE, tvb, offset, actx, tree, hf_gsm_map_additionalSubscriptions); -} -static int dissect_additionalSubscriptions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalSubscriptions(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalSubscriptions); -} +static const ber_sequence_t 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_AdditionalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - NULL, hf_index, -1, - NULL); +dissect_gsm_map_ms_AuthenticationFailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportArg); return offset; } -static int dissect_additionalInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalInfo); -} -static const ber_old_sequence_t VoiceBroadcastData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupid }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_broadcastInitEntitlement }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_additionalSubscriptions }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_VoiceBroadcastData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - VoiceBroadcastData_sequence, hf_index, ett_gsm_map_VoiceBroadcastData); +dissect_gsm_map_ms_AuthenticationFailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_ms_AuthenticationFailureReportRes); return offset; } -static int dissect_VBSDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VoiceBroadcastData(FALSE, tvb, offset, actx, tree, hf_gsm_map_VBSDataList_item); -} -static const ber_old_sequence_t VBSDataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_VBSDataList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_VBSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - VBSDataList_sequence_of, hf_index, ett_gsm_map_VBSDataList); +dissect_gsm_map_ms_SGSN_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SGSN_Capability_sequence, hf_index, ett_gsm_map_ms_SGSN_Capability); return offset; } -static int dissect_vbsSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VBSDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vbsSubscriptionData); -} -static const ber_old_sequence_t VoiceGroupCallData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_ms_GSN_Address }, + { &hf_gsm_map_ms_add_info , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ADD_Info }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_VoiceGroupCallData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - VoiceGroupCallData_sequence, hf_index, ett_gsm_map_VoiceGroupCallData); +dissect_gsm_map_ms_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationArg); return offset; } -static int dissect_VGCSDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VoiceGroupCallData(FALSE, tvb, offset, actx, tree, hf_gsm_map_VGCSDataList_item); -} -static const ber_old_sequence_t VGCSDataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_VGCSDataList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_VGCSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - VGCSDataList_sequence_of, hf_index, ett_gsm_map_VGCSDataList); +dissect_gsm_map_ms_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_ms_UpdateGprsLocationRes); return offset; } -static int dissect_vgcsSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VGCSDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vgcsSubscriptionData); -} -static const ber_old_sequence_t SS_EventList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_SS_EventList_item }, -}; static int -dissect_gsm_map_SS_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - SS_EventList_sequence_of, hf_index, ett_gsm_map_SS_EventList); +dissect_gsm_map_ms_IntegrityProtectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 493 "gsm_map.cnf" + tvbuff_t *parameter_tvb; + asn1_ctx_t asn1_ctx; - return offset; -} -static int dissect_ss_EventList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_EventList(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_EventList); -} + 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_mapIntegrityProtectionInformation); -static const ber_old_sequence_t SS_CamelData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_EventList }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_SS_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_CamelData_sequence, hf_index, ett_gsm_map_SS_CamelData); return offset; } -static int dissect_ss_CamelData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_CamelData(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_CamelData); -} -static const ber_old_sequence_t SS_CSI_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ss_CamelData }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_SS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_CSI_sequence, hf_index, ett_gsm_map_SS_CSI); +dissect_gsm_map_ms_EncryptionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 505 "gsm_map.cnf" + 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_mapEncryptionInformation); + + return offset; } -static int dissect_ss_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_CSI); -} -static const value_string gsm_map_MatchType_vals[] = { - { 0, "inhibiting" }, - { 1, "enabling" }, +static const value_string gsm_map_ms_KeyStatus_vals[] = { + { 0, "old" }, + { 1, "new" }, { 0, NULL } }; static int -dissect_gsm_map_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_KeyStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_matchType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MatchType(TRUE, tvb, offset, actx, tree, hf_gsm_map_matchType); + + + +static int +dissect_gsm_map_ms_AllowedGSM_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gsm_map_ms_PermittedIntegrityProtectionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gsm_map_ms_PermittedEncryptionAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t DestinationNumberList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DestinationNumberList_item }, +static const ber_sequence_t 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_DestinationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - DestinationNumberList_sequence_of, hf_index, ett_gsm_map_DestinationNumberList); +dissect_gsm_map_ms_AllowedUMTS_Algorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AllowedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_AllowedUMTS_Algorithms); return offset; } -static int dissect_destinationNumberList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DestinationNumberList(TRUE, tvb, offset, actx, tree, hf_gsm_map_destinationNumberList); + + + +static int +dissect_gsm_map_ms_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 467 "gsm_map.cnf" + tvbuff_t *parameter_tvb; + proto_item *item; + proto_tree *subtree; + + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + item = get_ber_last_created_item(); + subtree = proto_item_add_subtree(item, ett_gsm_map_RadioResourceInformation); + be_chan_type(tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0); + + + + return offset; } static int -dissect_gsm_map_INTEGER_1_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_RAB_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_DestinationNumberLengthList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_INTEGER_1_15(FALSE, tvb, offset, actx, tree, hf_gsm_map_DestinationNumberLengthList_item); -} -static const ber_old_sequence_t DestinationNumberLengthList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_DestinationNumberLengthList_item }, +static const ber_sequence_t 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_DestinationNumberLengthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_DestinationNumberLengthList); +dissect_gsm_map_ms_RadioResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RadioResource_sequence, hf_index, ett_gsm_map_ms_RadioResource); return offset; } -static int dissect_destinationNumberLengthList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DestinationNumberLengthList(TRUE, tvb, offset, actx, tree, hf_gsm_map_destinationNumberLengthList); -} -static const ber_old_sequence_t DestinationNumberCriteria_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_matchType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberLengthList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_DestinationNumberCriteria); +dissect_gsm_map_ms_RadioResourceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + RadioResourceList_sequence_of, hf_index, ett_gsm_map_ms_RadioResourceList); return offset; } -static int dissect_destinationNumberCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DestinationNumberCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_destinationNumberCriteria); -} -static const ber_old_sequence_t BasicServiceCriteria_sequence_of[1] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceCriteria_item }, -}; static int -dissect_gsm_map_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_BasicServiceCriteria); +dissect_gsm_map_ms_BSSMAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_basicServiceCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceCriteria); + + + +static int +dissect_gsm_map_ms_RANAP_ServiceHandover(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 481 "gsm_map.cnf" + 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 value_string gsm_map_CallTypeCriteria_vals[] = { - { 0, "forwarded" }, - { 1, "notForwarded" }, - { 0, NULL } +static const ber_sequence_t 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_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_BSSMAP_ServiceHandoverInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + BSSMAP_ServiceHandoverInfo_sequence, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo); return offset; } -static int dissect_callTypeCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallTypeCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_callTypeCriteria); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + BSSMAP_ServiceHandoverList_sequence_of, hf_index, ett_gsm_map_ms_BSSMAP_ServiceHandoverList); + + return offset; } static int -dissect_gsm_map_CauseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_Codec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_T_CauseValueCriteria_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CauseValue(FALSE, tvb, offset, actx, tree, hf_gsm_map_T_CauseValueCriteria_item); -} -static int dissect_O_CauseValueCriteria_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CauseValue(FALSE, tvb, offset, actx, tree, hf_gsm_map_O_CauseValueCriteria_item); -} -static const ber_old_sequence_t O_CauseValueCriteria_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_O_CauseValueCriteria_item }, +static const ber_sequence_t CodecList_sequence[] = { + { &hf_gsm_map_ms_codec1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec3 , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec4 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec5 , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec6 , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec7 , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Codec }, + { &hf_gsm_map_ms_codec8 , 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_O_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_O_CauseValueCriteria); +dissect_gsm_map_ms_CodecList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CodecList_sequence, hf_index, ett_gsm_map_ms_CodecList); return offset; } -static int dissect_o_CauseValueCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_CauseValueCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_CauseValueCriteria); -} -static const ber_old_sequence_t O_BcsmCamelTDP_Criteria_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_o_BcsmTriggerDetectionPoint }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberCriteria_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTypeCriteria_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CauseValueCriteria_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_O_BcsmCamelTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_O_BcsmCamelTDP_Criteria); +dissect_gsm_map_ms_SupportedCodecsList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SupportedCodecsList_sequence, hf_index, ett_gsm_map_ms_SupportedCodecsList); return offset; } -static int dissect_O_BcsmCamelTDPCriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmCamelTDP_Criteria(FALSE, tvb, offset, actx, tree, hf_gsm_map_O_BcsmCamelTDPCriteriaList_item); -} -static const ber_old_sequence_t O_BcsmCamelTDPCriteriaList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_O_BcsmCamelTDPCriteriaList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_O_BcsmCamelTDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_O_BcsmCamelTDPCriteriaList); +dissect_gsm_map_ms_ForwardAccessSignalling_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ForwardAccessSignalling_Arg_U); return offset; } -static int dissect_o_BcsmCamelTDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmCamelTDPCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmCamelTDP_CriteriaList); -} -static int dissect_o_BcsmCamelTDPCriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmCamelTDPCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_BcsmCamelTDPCriteriaList); + + + +static int +dissect_gsm_map_ms_ForwardAccessSignalling_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_o_IM_BcsmCamelTDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_O_BcsmCamelTDPCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList); + + + +static int +dissect_gsm_map_ms_RNCId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } static int -dissect_gsm_map_MM_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_GERAN_Classmark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_eventMet_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MM_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_eventMet); + + + +static int +dissect_gsm_map_ms_UESBI_IuA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + NULL, hf_index, -1, + NULL); + + return offset; } -static int dissect_MobilityTriggers_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MM_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_MobilityTriggers_item); + + + +static int +dissect_gsm_map_ms_UESBI_IuB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + NULL, hf_index, -1, + NULL); + + return offset; } -static const ber_old_sequence_t MobilityTriggers_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_MobilityTriggers_item }, +static const ber_sequence_t 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_MobilityTriggers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - MobilityTriggers_sequence_of, hf_index, ett_gsm_map_MobilityTriggers); +dissect_gsm_map_ms_UESBI_Iu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UESBI_Iu_sequence, hf_index, ett_gsm_map_ms_UESBI_Iu); return offset; } -static int dissect_mobilityTriggers(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MobilityTriggers(FALSE, tvb, offset, actx, tree, hf_gsm_map_mobilityTriggers); -} -static const ber_old_sequence_t M_CSI_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_M_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - M_CSI_sequence, hf_index, ett_gsm_map_M_CSI); +dissect_gsm_map_ms_PrepareHO_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Arg_U); return offset; } -static int dissect_m_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_M_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_m_CSI); + + + +static int +dissect_gsm_map_ms_PrepareHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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 value_string gsm_map_SMS_TriggerDetectionPoint_vals[] = { - { 1, "sms-CollectedInfo" }, - { 2, "sms-DeliveryRequest" }, - { 0, NULL } +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RelocationNumber_sequence, hf_index, ett_gsm_map_ms_RelocationNumber); + + return offset; +} + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + RelocationNumberList_sequence_of, hf_index, ett_gsm_map_ms_RelocationNumberList); + + return offset; +} + + static int -dissect_gsm_map_SMS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_MulticallBearerInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_sms_TriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SMS_TriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_sms_TriggerDetectionPoint); + + + +static int +dissect_gsm_map_ms_ChosenIntegrityProtectionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static int dissect_sms_TriggerDetectionPoint_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SMS_TriggerDetectionPoint(TRUE, tvb, offset, actx, tree, hf_gsm_map_sms_TriggerDetectionPoint); + + + +static int +dissect_gsm_map_ms_ChosenEncryptionAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const value_string gsm_map_DefaultSMS_Handling_vals[] = { - { 0, "continueTransaction" }, - { 1, "releaseTransaction" }, - { 0, NULL } +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SelectedUMTS_Algorithms_sequence, hf_index, ett_gsm_map_ms_SelectedUMTS_Algorithms); + + return offset; +} + + static int -dissect_gsm_map_DefaultSMS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_ChosenChannelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_defaultSMS_Handling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DefaultSMS_Handling(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultSMS_Handling); + + + +static int +dissect_gsm_map_ms_ChosenSpeechVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t SMS_CAMEL_TDP_Data_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sms_TriggerDetectionPoint_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, - { BER_CLASS_CON, 2, 0, dissect_gsmSCF_Address }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSMS_Handling_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SMS_CAMEL_TDP_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_SMS_CAMEL_TDP_Data); +dissect_gsm_map_ms_ChosenRadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ChosenRadioResourceInformation_sequence, hf_index, ett_gsm_map_ms_ChosenRadioResourceInformation); return offset; } -static int dissect_SMS_CAMEL_TDP_DataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SMS_CAMEL_TDP_Data(FALSE, tvb, offset, actx, tree, hf_gsm_map_SMS_CAMEL_TDP_DataList_item); -} -static const ber_old_sequence_t SMS_CAMEL_TDP_DataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SMS_CAMEL_TDP_DataList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SMS_CAMEL_TDP_DataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_SMS_CAMEL_TDP_DataList); +dissect_gsm_map_ms_PrepareHO_Res_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareHO_Res_U); return offset; } -static int dissect_sms_CAMEL_TDP_DataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SMS_CAMEL_TDP_DataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_sms_CAMEL_TDP_DataList); + + + +static int +dissect_gsm_map_ms_PrepareHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_old_sequence_t SMS_CSI_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sms_CAMEL_TDP_DataList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SMS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SMS_CSI_sequence, hf_index, ett_gsm_map_SMS_CSI); +dissect_gsm_map_ms_PrepareSubsequentHO_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareSubsequentHO_Arg_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Arg_U); return offset; } -static int dissect_mo_sms_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SMS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_mo_sms_CSI); -} -static int dissect_mt_sms_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SMS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_mt_sms_CSI); + + + +static int +dissect_gsm_map_ms_PrepareSubsequentHO_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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 value_string gsm_map_T_BcsmTriggerDetectionPoint_vals[] = { - { 12, "termAttemptAuthorized" }, - { 13, "tBusy" }, - { 14, "tNoAnswer" }, - { 0, NULL } +static const ber_sequence_t 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_T_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_PrepareSubsequentHO_Res_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareSubsequentHO_Res_U_sequence, hf_index, ett_gsm_map_ms_PrepareSubsequentHO_Res_U); return offset; } -static int dissect_t_BCSM_TriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BcsmTriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_t_BCSM_TriggerDetectionPoint); + + + +static int +dissect_gsm_map_ms_PrepareSubsequentHO_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_t_BcsmTriggerDetectionPoint(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BcsmTriggerDetectionPoint(FALSE, tvb, offset, actx, tree, hf_gsm_map_t_BcsmTriggerDetectionPoint); + + + +static int +dissect_gsm_map_ms_SelectedGSM_Algorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t T_BcsmCamelTDPData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BcsmTriggerDetectionPoint }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_defaultCallHandling_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_T_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_T_BcsmCamelTDPData); +dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProcessAccessSignalling_Arg_U_sequence, hf_index, ett_gsm_map_ms_ProcessAccessSignalling_Arg_U); return offset; } -static int dissect_T_BcsmCamelTDPDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BcsmCamelTDPData(FALSE, tvb, offset, actx, tree, hf_gsm_map_T_BcsmCamelTDPDataList_item); + + + +static int +dissect_gsm_map_ms_ProcessAccessSignalling_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_old_sequence_t T_BcsmCamelTDPDataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_T_BcsmCamelTDPDataList_item }, +static const ber_sequence_t 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_T_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_T_BcsmCamelTDPDataList); +dissect_gsm_map_ms_SendEndSignal_Arg_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendEndSignal_Arg_U_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Arg_U); return offset; } -static int dissect_t_BcsmCamelTDPDataList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BcsmCamelTDPDataList(FALSE, tvb, offset, actx, tree, hf_gsm_map_t_BcsmCamelTDPDataList); + + + +static int +dissect_gsm_map_ms_SendEndSignal_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_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_old_sequence_t T_CSI_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_t_BcsmCamelTDPDataList }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_T_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - T_CSI_sequence, hf_index, ett_gsm_map_T_CSI); +dissect_gsm_map_ms_SendEndSignal_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendEndSignal_Res_sequence, hf_index, ett_gsm_map_ms_SendEndSignal_Res); return offset; } -static int dissect_vt_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_CSI); -} -static int dissect_t_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_t_CSI); -} -static int dissect_vt_IM_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_IM_CSI); -} -static const ber_old_sequence_t T_CauseValueCriteria_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_T_CauseValueCriteria_item }, +static const ber_sequence_t 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_T_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_T_CauseValueCriteria); +dissect_gsm_map_ms_Re_synchronisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Re_synchronisationInfo_sequence, hf_index, ett_gsm_map_ms_Re_synchronisationInfo); return offset; } -static int dissect_t_CauseValueCriteria_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_CauseValueCriteria(TRUE, tvb, offset, actx, tree, hf_gsm_map_t_CauseValueCriteria); -} -static const ber_old_sequence_t T_BCSM_CAMEL_TDP_Criteria_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_t_BCSM_TriggerDetectionPoint }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceCriteria_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CauseValueCriteria_impl }, - { 0, 0, 0, NULL } +static 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" }, + { 0, NULL } }; + static int -dissect_gsm_map_T_BCSM_CAMEL_TDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria); +dissect_gsm_map_ms_RequestingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_T_BCSM_CAMEL_TDP_CriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BCSM_CAMEL_TDP_Criteria(FALSE, tvb, offset, actx, tree, hf_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList_item); -} -static const ber_old_sequence_t T_BCSM_CAMEL_TDP_CriteriaList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_T_BCSM_CAMEL_TDP_CriteriaList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList); +dissect_gsm_map_ms_SendAuthenticationInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendAuthenticationInfoArg_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoArg); return offset; } -static int dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList); -} -static int dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList); -} -static int dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList); -} -static const ber_old_sequence_t DP_AnalysedInfoCriterium_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_dialledNumber }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsmSCF_Address }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_defaultCallHandling }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_DP_AnalysedInfoCriterium(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_DP_AnalysedInfoCriterium); +dissect_gsm_map_ms_SendAuthenticationInfoRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendAuthenticationInfoRes_U_sequence, hf_index, ett_gsm_map_ms_SendAuthenticationInfoRes_U); return offset; } -static int dissect_DP_AnalysedInfoCriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DP_AnalysedInfoCriterium(FALSE, tvb, offset, actx, tree, hf_gsm_map_DP_AnalysedInfoCriteriaList_item); + + + +static int +dissect_gsm_map_ms_SendAuthenticationInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, + hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ms_SendAuthenticationInfoRes_U); + + return offset; } -static const ber_old_sequence_t DP_AnalysedInfoCriteriaList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_DP_AnalysedInfoCriteriaList_item }, +static const asn_namedbit RequestedEquipmentInfo_bits[] = { + { 0, &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, -1, -1, "equipmentStatus", NULL }, + { 1, &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, -1, -1, "bmuef", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_DP_AnalysedInfoCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_DP_AnalysedInfoCriteriaList); +dissect_gsm_map_ms_RequestedEquipmentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + RequestedEquipmentInfo_bits, hf_index, ett_gsm_map_ms_RequestedEquipmentInfo, + NULL); return offset; } -static int dissect_dp_AnalysedInfoCriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DP_AnalysedInfoCriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_dp_AnalysedInfoCriteriaList); -} -static const ber_old_sequence_t D_CSI_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dp_AnalysedInfoCriteriaList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_D_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - D_CSI_sequence, hf_index, ett_gsm_map_D_CSI); +dissect_gsm_map_ms_CheckIMEI_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CheckIMEI_Arg_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Arg); return offset; } -static int dissect_d_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_D_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_d_CSI); -} -static int dissect_d_csi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_D_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_d_csi); -} -static int dissect_d_IM_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_D_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_d_IM_CSI); -} -static const value_string gsm_map_MT_SMS_TPDU_Type_vals[] = { - { 0, "sms-DELIVER" }, - { 1, "sms-SUBMIT-REPORT" }, - { 2, "sms-STATUS-REPORT" }, +static const value_string gsm_map_ms_EquipmentStatus_vals[] = { + { 0, "whiteListed" }, + { 1, "blackListed" }, + { 2, "greyListed" }, { 0, NULL } }; static int -dissect_gsm_map_MT_SMS_TPDU_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_EquipmentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_TPDU_TypeCriterion_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MT_SMS_TPDU_Type(FALSE, tvb, offset, actx, tree, hf_gsm_map_TPDU_TypeCriterion_item); -} -static const ber_old_sequence_t TPDU_TypeCriterion_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_TPDU_TypeCriterion_item }, +static const ber_sequence_t 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_TPDU_TypeCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_TPDU_TypeCriterion); +dissect_gsm_map_ms_CheckIMEI_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CheckIMEI_Res_sequence, hf_index, ett_gsm_map_ms_CheckIMEI_Res); return offset; } -static int dissect_tpdu_TypeCriterion_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TPDU_TypeCriterion(TRUE, tvb, offset, actx, tree, hf_gsm_map_tpdu_TypeCriterion); + + + +static int +dissect_gsm_map_ms_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t MT_smsCAMELTDP_Criteria_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sms_TriggerDetectionPoint }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tpdu_TypeCriterion_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ms_SubscriberStatus_vals[] = { + { 0, "serviceGranted" }, + { 1, "operatorDeterminedBarring" }, + { 0, NULL } }; + static int -dissect_gsm_map_MT_smsCAMELTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_MT_smsCAMELTDP_Criteria); +dissect_gsm_map_ms_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_MT_smsCAMELTDP_CriteriaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MT_smsCAMELTDP_Criteria(FALSE, tvb, offset, actx, tree, hf_gsm_map_MT_smsCAMELTDP_CriteriaList_item); -} -static const ber_old_sequence_t MT_smsCAMELTDP_CriteriaList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_MT_smsCAMELTDP_CriteriaList_item }, +static const ber_sequence_t 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_MT_smsCAMELTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_MT_smsCAMELTDP_CriteriaList); +dissect_gsm_map_ms_BearerServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + BearerServiceList_sequence_of, hf_index, ett_gsm_map_ms_BearerServiceList); return offset; } -static int dissect_mt_smsCAMELTDP_CriteriaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MT_smsCAMELTDP_CriteriaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_mt_smsCAMELTDP_CriteriaList); -} -static const ber_old_sequence_t VlrCamelSubscriptionInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_m_CSI_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_CSI_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_CSI_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_VlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_VlrCamelSubscriptionInfo); +dissect_gsm_map_ms_TeleserviceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + TeleserviceList_sequence_of, hf_index, ett_gsm_map_ms_TeleserviceList); return offset; } -static int dissect_vlrCamelSubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VlrCamelSubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_vlrCamelSubscriptionInfo); -} static int -dissect_gsm_map_NAEA_CIC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_Ext_ForwOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_naea_PreferredCIC_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NAEA_CIC(TRUE, tvb, offset, actx, tree, hf_gsm_map_naea_PreferredCIC); -} -static const ber_old_sequence_t NAEA_PreferredCI_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_naea_PreferredCIC_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_NAEA_PreferredCI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NAEA_PreferredCI_sequence, hf_index, ett_gsm_map_NAEA_PreferredCI); +dissect_gsm_map_ms_T_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_ms_Ext_ForwOptions(implicit_tag, tvb, offset, actx, tree, hf_index); + +#line 362 "gsm_map.cnf" + + proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE); + proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE); + + return offset; } -static int dissect_naea_PreferredCI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NAEA_PreferredCI(TRUE, tvb, offset, actx, tree, hf_gsm_map_naea_PreferredCI); -} static int -dissect_gsm_map_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_Ext_NoRepCondTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_pdp_ContextId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ContextId(FALSE, tvb, offset, actx, tree, hf_gsm_map_pdp_ContextId); -} -static int dissect_ContextIdList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ContextId(FALSE, tvb, offset, actx, tree, hf_gsm_map_ContextIdList_item); -} -static int dissect_pdp_ContextIdentifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ContextId(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_ContextIdentifier); -} +static const ber_sequence_t 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_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 550 "gsmmap.cnf" - guint8 pdp_type_org; - tvbuff_t *parameter_tvb; +dissect_gsm_map_ms_Ext_ForwFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_ForwFeature_sequence, hf_index, ett_gsm_map_ms_Ext_ForwFeature); + return offset; +} - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); +static const ber_sequence_t 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 }, +}; - if (!parameter_tvb) - return offset; - proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE); - pdp_type_org = tvb_get_guint8(parameter_tvb,1); - switch (pdp_type_org){ - case 0: /* ETSI */ - proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE); - break; - case 1: /* IETF */ - proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE); - break; - default: - break; - } +static int +dissect_gsm_map_ms_Ext_ForwFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Ext_ForwFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ForwFeatureList); + return offset; +} +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_ForwInfo_sequence, hf_index, ett_gsm_map_ms_Ext_ForwInfo); + return offset; } -static int dissect_pdp_Type_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PDP_Type(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_Type); -} +static const ber_sequence_t 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_PDP_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_Ext_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_CallBarringFeature_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringFeature); return offset; } -static int dissect_pdp_Address_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PDP_Address(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_Address); -} +static const ber_sequence_t 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 }, +}; -int -dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 576 "gsmmap.cnf" +static int +dissect_gsm_map_ms_Ext_CallBarFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Ext_CallBarFeatureList_sequence_of, hf_index, ett_gsm_map_ms_Ext_CallBarFeatureList); - tvbuff_t *parameter_tvb; + return offset; +} - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); +static const ber_sequence_t 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 } +}; - if (!parameter_tvb) - return offset; - de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0); +static int +dissect_gsm_map_ms_Ext_CallBarInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_CallBarInfo_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarInfo); + + return offset; +} +int +dissect_gsm_map_ms_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + return offset; } -static int dissect_qos_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos_Subscribed); -} -static int -dissect_gsm_map_APN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +int +dissect_gsm_map_ms_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_apn_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_apn); -} -static int dissect_apn_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_apn_Subscribed); -} -static int dissect_apn_InUse_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_apn_InUse); -} -static int dissect_lcsAPN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_APN(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsAPN); -} +static const value_string gsm_map_ms_IntraCUG_Options_vals[] = { + { 0, "noCUG-Restrictions" }, + { 1, "cugIC-CallBarred" }, + { 2, "cugOG-CallBarred" }, + { 0, NULL } +}; -int -dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 590 "gsmmap.cnf" - - tvbuff_t *parameter_tvb; - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); +static int +dissect_gsm_map_ms_IntraCUG_Options(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + return offset; +} - if (!parameter_tvb) - return offset; - dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree); +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Ext_BasicServiceGroupList_sequence_of, hf_index, ett_gsm_map_ms_Ext_BasicServiceGroupList); return offset; } -static int dissect_ext_QoS_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_QoS_Subscribed); -} -static int dissect_ext_qos_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_qos_Subscribed); -} -static int dissect_qos_Requested_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos_Requested); -} -static int dissect_qos_Negotiated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos_Negotiated); -} +static const ber_sequence_t 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_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_CUG_Subscription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CUG_Subscription_sequence, hf_index, ett_gsm_map_ms_CUG_Subscription); return offset; } -static int dissect_chargingCharacteristics_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChargingCharacteristics(TRUE, tvb, offset, actx, tree, hf_gsm_map_chargingCharacteristics); -} -static int dissect_pdp_ChargingCharacteristics_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ChargingCharacteristics(TRUE, tvb, offset, actx, tree, hf_gsm_map_pdp_ChargingCharacteristics); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + CUG_SubscriptionList_sequence_of, hf_index, ett_gsm_map_ms_CUG_SubscriptionList); + + return offset; } -int -dissect_gsm_map_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +static int +dissect_gsm_map_ms_InterCUG_Restrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_ext2_QoS_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext2_QoS_Subscribed); -} -static int dissect_qos2_Subscribed_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos2_Subscribed); -} -static int dissect_qos2_Requested_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos2_Requested); -} -static int dissect_qos2_Negotiated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, actx, tree, hf_gsm_map_qos2_Negotiated); -} -static const ber_old_sequence_t PDP_Context_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pdp_ContextId }, - { BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_qos_Subscribed_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vplmnAddressAllowed_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_apn_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_QoS_Subscribed_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ChargingCharacteristics_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext2_QoS_Subscribed_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PDP_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PDP_Context_sequence, hf_index, ett_gsm_map_PDP_Context); +dissect_gsm_map_ms_CUG_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CUG_Feature_sequence, hf_index, ett_gsm_map_ms_CUG_Feature); return offset; } -static int dissect_GPRSDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PDP_Context(FALSE, tvb, offset, actx, tree, hf_gsm_map_GPRSDataList_item); -} -static const ber_old_sequence_t GPRSDataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GPRSDataList_item }, +static const ber_sequence_t 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_GPRSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - GPRSDataList_sequence_of, hf_index, ett_gsm_map_GPRSDataList); +dissect_gsm_map_ms_CUG_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + CUG_FeatureList_sequence_of, hf_index, ett_gsm_map_ms_CUG_FeatureList); return offset; } -static int dissect_gprsDataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRSDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsDataList); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CUG_Info_sequence, hf_index, ett_gsm_map_ms_CUG_Info); + + return offset; } -static const ber_old_sequence_t GPRSSubscriptionData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprsDataList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_GPRSSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_GPRSSubscriptionData); +dissect_gsm_map_ms_Ext_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_SS_Data_sequence, hf_index, ett_gsm_map_ms_Ext_SS_Data); return offset; } -static int dissect_gprsSubscriptionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRSSubscriptionData(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsSubscriptionData); -} -static const value_string gsm_map_NetworkAccessMode_vals[] = { - { 0, "bothMSCAndSGSN" }, - { 1, "onlyMSC" }, - { 2, "onlySGSN" }, +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 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_NetworkAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_Ext_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Ext_SS_Info_choice, hf_index, ett_gsm_map_ms_Ext_SS_Info, + NULL); return offset; } -static int dissect_networkAccessMode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NetworkAccessMode(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkAccessMode); -} -static const value_string gsm_map_LSAOnlyAccessIndicator_vals[] = { - { 0, "accessOutsideLSAsAllowed" }, - { 1, "accessOutsideLSAsRestricted" }, - { 0, NULL } +static const ber_sequence_t 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_LSAOnlyAccessIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_Ext_SS_InfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Ext_SS_InfoList_sequence_of, hf_index, ett_gsm_map_ms_Ext_SS_InfoList); return offset; } -static int dissect_lsaOnlyAccessIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAOnlyAccessIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaOnlyAccessIndicator); -} +static const asn_namedbit ODB_GeneralData_bits[] = { + { 0, &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, -1, -1, "allOG-CallsBarred", NULL }, + { 1, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, -1, -1, "internationalOGCallsBarred", NULL }, + { 2, &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "internationalOGCallsNotToHPLMN-CountryBarred", NULL }, + { 6, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, -1, -1, "interzonalOGCallsBarred", NULL }, + { 7, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsNotToHPLMN-CountryBarred", NULL }, + { 8, &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, -1, -1, "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", NULL }, + { 3, &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, -1, -1, "premiumRateInformationOGCallsBarred", NULL }, + { 4, &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, -1, -1, "premiumRateEntertainementOGCallsBarred", NULL }, + { 5, &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, -1, -1, "ss-AccessBarred", NULL }, + { 9, &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, -1, -1, "allECT-Barred", NULL }, + { 10, &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, -1, -1, "chargeableECT-Barred", NULL }, + { 11, &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, -1, -1, "internationalECT-Barred", NULL }, + { 12, &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, -1, -1, "interzonalECT-Barred", NULL }, + { 13, &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, -1, -1, "doublyChargeableECT-Barred", NULL }, + { 14, &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, -1, -1, "multipleECT-Barred", NULL }, + { 15, &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, -1, -1, "allPacketOrientedServicesBarred", NULL }, + { 16, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, -1, -1, "roamerAccessToHPLMN-AP-Barred", NULL }, + { 17, &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, -1, -1, "roamerAccessToVPLMN-AP-Barred", NULL }, + { 18, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, -1, -1, "roamingOutsidePLMNOG-CallsBarred", NULL }, + { 19, &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, -1, -1, "allIC-CallsBarred", NULL }, + { 20, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, -1, -1, "roamingOutsidePLMNIC-CallsBarred", NULL }, + { 21, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, -1, -1, "roamingOutsidePLMNICountryIC-CallsBarred", NULL }, + { 22, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, -1, -1, "roamingOutsidePLMN-Barred", NULL }, + { 23, &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, -1, -1, "roamingOutsidePLMN-CountryBarred", NULL }, + { 24, &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, -1, -1, "registrationAllCF-Barred", NULL }, + { 25, &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, -1, -1, "registrationCFNotToHPLMN-Barred", NULL }, + { 26, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, -1, -1, "registrationInterzonalCF-Barred", NULL }, + { 27, &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, -1, -1, "registrationInterzonalCFNotToHPLMN-Barred", NULL }, + { 28, &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, -1, -1, "registrationInternationalCF-Barred", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; -int -dissect_gsm_map_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ms_ODB_GeneralData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + ODB_GeneralData_bits, hf_index, ett_gsm_map_ms_ODB_GeneralData, + NULL); return offset; } -static int dissect_lsaIdentity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaIdentity); -} -static int dissect_LSAIdentityList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_LSAIdentityList_item); -} -static int dissect_selectedLSA_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_selectedLSA_Id); + + +static const asn_namedbit ODB_HPLMN_Data_bits[] = { + { 0, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, -1, -1, "plmn-SpecificBarringType1", NULL }, + { 1, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, -1, -1, "plmn-SpecificBarringType2", NULL }, + { 2, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, -1, -1, "plmn-SpecificBarringType3", NULL }, + { 3, &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, -1, -1, "plmn-SpecificBarringType4", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_gsm_map_ms_ODB_HPLMN_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + ODB_HPLMN_Data_bits, hf_index, ett_gsm_map_ms_ODB_HPLMN_Data, + NULL); + + return offset; } -static int dissect_selectedLSAIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_selectedLSAIdentity); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ODB_Data_sequence, hf_index, ett_gsm_map_ms_ODB_Data); + + return offset; } static int -dissect_gsm_map_LSAAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_ZoneCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_lsaAttributes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAAttributes(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaAttributes); -} -static const ber_old_sequence_t LSAData_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lsaIdentity_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lsaAttributes_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaActiveModeIndicator_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_LSAData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LSAData_sequence, hf_index, ett_gsm_map_LSAData); +dissect_gsm_map_ms_ZoneCodeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ZoneCodeList_sequence_of, hf_index, ett_gsm_map_ms_ZoneCodeList); return offset; } -static int dissect_LSADataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAData(FALSE, tvb, offset, actx, tree, hf_gsm_map_LSADataList_item); + + + +static int +dissect_gsm_map_ms_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; } -static const ber_old_sequence_t LSADataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_LSADataList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_LSADataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - LSADataList_sequence_of, hf_index, ett_gsm_map_LSADataList); +dissect_gsm_map_ms_VoiceBroadcastData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + VoiceBroadcastData_sequence, hf_index, ett_gsm_map_ms_VoiceBroadcastData); return offset; } -static int dissect_lsaDataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSADataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaDataList); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + VBSDataList_sequence_of, hf_index, ett_gsm_map_ms_VBSDataList); + + return offset; } -static const ber_old_sequence_t LSAInformation_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_completeDataListIncluded }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaOnlyAccessIndicator_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaDataList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const asn_namedbit AdditionalSubscriptions_bits[] = { + { 0, &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, -1, -1, "privilegedUplinkRequest", NULL }, + { 1, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, -1, -1, "emergencyUplinkRequest", NULL }, + { 2, &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, -1, -1, "emergencyReset", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_LSAInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LSAInformation_sequence, hf_index, ett_gsm_map_LSAInformation); +dissect_gsm_map_ms_AdditionalSubscriptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + AdditionalSubscriptions_bits, hf_index, ett_gsm_map_ms_AdditionalSubscriptions, + NULL); return offset; } -static int dissect_lsaInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaInformation); + + + +static int +dissect_gsm_map_ms_AdditionalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + NULL, hf_index, -1, + NULL); + + return offset; +} + + + +static int +dissect_gsm_map_ms_Long_GroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; } -static const ber_old_sequence_t GMLC_List_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_GMLC_List_item }, +static const ber_sequence_t 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_GMLC_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - GMLC_List_sequence_of, hf_index, ett_gsm_map_GMLC_List); +dissect_gsm_map_ms_VoiceGroupCallData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + VoiceGroupCallData_sequence, hf_index, ett_gsm_map_ms_VoiceGroupCallData); return offset; } -static int dissect_gmlc_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GMLC_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmlc_List); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + VGCSDataList_sequence_of, hf_index, ett_gsm_map_ms_VGCSDataList); + + return offset; } -const value_string gsm_map_NotificationToMSUser_vals[] = { - { 0, "notifyLocationAllowed" }, - { 1, "notifyAndVerify-LocationAllowedIfNoResponse" }, - { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" }, - { 3, "locationNotAllowed" }, +static const value_string gsm_map_ms_O_BcsmTriggerDetectionPoint_vals[] = { + { 2, "collectedInfo" }, + { 4, "routeSelectFailure" }, { 0, NULL } }; -int -dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +static int +dissect_gsm_map_ms_O_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_notificationToMSUser_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NotificationToMSUser(TRUE, tvb, offset, actx, tree, hf_gsm_map_notificationToMSUser); -} -static const ber_old_sequence_t LCSClientExternalID_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalAddress_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; -int -dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCSClientExternalID_sequence, hf_index, ett_gsm_map_LCSClientExternalID); +static int +dissect_gsm_map_ms_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_clientIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSClientExternalID(FALSE, tvb, offset, actx, tree, hf_gsm_map_clientIdentity); -} -static int dissect_lcsClientExternalID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSClientExternalID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientExternalID); -} -static const value_string gsm_map_GMLC_Restriction_vals[] = { - { 0, "gmlc-List" }, - { 1, "home-Country" }, +static const value_string gsm_map_ms_DefaultCallHandling_vals[] = { + { 0, "continueCall" }, + { 1, "releaseCall" }, { 0, NULL } }; static int -dissect_gsm_map_GMLC_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_DefaultCallHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_gmlc_Restriction_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GMLC_Restriction(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmlc_Restriction); -} -static const ber_old_sequence_t ExternalClient_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_clientIdentity }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ExternalClient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ExternalClient_sequence, hf_index, ett_gsm_map_ExternalClient); +dissect_gsm_map_ms_O_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + O_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPData); return offset; } -static int dissect_ExternalClientList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalClient(FALSE, tvb, offset, actx, tree, hf_gsm_map_ExternalClientList_item); -} -static int dissect_Ext_ExternalClientList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalClient(FALSE, tvb, offset, actx, tree, hf_gsm_map_Ext_ExternalClientList_item); -} -static const ber_old_sequence_t ExternalClientList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ExternalClientList_item }, +static const ber_sequence_t 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_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ExternalClientList_sequence_of, hf_index, ett_gsm_map_ExternalClientList); +dissect_gsm_map_ms_O_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + O_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPDataList); return offset; } -static int dissect_externalClientList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalClientList(TRUE, tvb, offset, actx, tree, hf_gsm_map_externalClientList); -} -static const value_string gsm_map_LCSClientInternalID_vals[] = { - { 0, "broadcastService" }, - { 1, "o-andM-HPLMN" }, - { 2, "o-andM-VPLMN" }, - { 3, "anonymousLocation" }, - { 4, "targetMSsubscribedService" }, - { 0, NULL } -}; - static int -dissect_gsm_map_LCSClientInternalID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_CamelCapabilityHandling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_PLMNClientList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSClientInternalID(FALSE, tvb, offset, actx, tree, hf_gsm_map_PLMNClientList_item); -} -static int dissect_lcsClientInternalID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSClientInternalID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientInternalID); -} -static const ber_old_sequence_t PLMNClientList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_PLMNClientList_item }, +static const ber_sequence_t 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 } }; static int -dissect_gsm_map_PLMNClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - PLMNClientList_sequence_of, hf_index, ett_gsm_map_PLMNClientList); +dissect_gsm_map_ms_O_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + O_CSI_sequence, hf_index, ett_gsm_map_ms_O_CSI); return offset; } -static int dissect_plmnClientList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PLMNClientList(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmnClientList); -} -static const ber_old_sequence_t Ext_ExternalClientList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Ext_ExternalClientList_item }, +static const ber_sequence_t 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_Ext_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_Ext_ExternalClientList); +dissect_gsm_map_ms_SS_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SS_EventList_sequence_of, hf_index, ett_gsm_map_ms_SS_EventList); return offset; } -static int dissect_ext_externalClientList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ExternalClientList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ext_externalClientList); -} +static const ber_sequence_t 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 } +}; -int -dissect_gsm_map_LCSServiceTypeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ms_SS_CamelData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_CamelData_sequence, hf_index, ett_gsm_map_ms_SS_CamelData); return offset; } -static int dissect_serviceTypeIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSServiceTypeID(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceTypeIdentity); -} -static int dissect_lcsServiceTypeID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSServiceTypeID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsServiceTypeID); -} -static const ber_old_sequence_t ServiceType_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceTypeIdentity }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_Restriction_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ServiceType_sequence, hf_index, ett_gsm_map_ServiceType); +dissect_gsm_map_ms_SS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SS_CSI_sequence, hf_index, ett_gsm_map_ms_SS_CSI); return offset; } -static int dissect_ServiceTypeList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceType(FALSE, tvb, offset, actx, tree, hf_gsm_map_ServiceTypeList_item); -} -static const ber_old_sequence_t ServiceTypeList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ServiceTypeList_item }, +static const value_string gsm_map_ms_MatchType_vals[] = { + { 0, "inhibiting" }, + { 1, "enabling" }, + { 0, NULL } }; + static int -dissect_gsm_map_ServiceTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ServiceTypeList); +dissect_gsm_map_ms_MatchType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_serviceTypeList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceTypeList(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceTypeList); -} -static const ber_old_sequence_t LCS_PrivacyClass_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_ss_Status }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToMSUser_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_externalClientList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmnClientList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_externalClientList_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceTypeList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_LCS_PrivacyClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_LCS_PrivacyClass); +dissect_gsm_map_ms_DestinationNumberList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + DestinationNumberList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberList); return offset; } -static int dissect_LCS_PrivacyExceptionList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_PrivacyClass(FALSE, tvb, offset, actx, tree, hf_gsm_map_LCS_PrivacyExceptionList_item); -} -static const ber_old_sequence_t LCS_PrivacyExceptionList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_LCS_PrivacyExceptionList_item }, -}; static int -dissect_gsm_map_LCS_PrivacyExceptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_LCS_PrivacyExceptionList); +dissect_gsm_map_ms_INTEGER_1_maxNumOfISDN_AddressDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _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_lcs_PrivacyExceptionList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_PrivacyExceptionList(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_PrivacyExceptionList); -} -static int dissect_add_lcs_PrivacyExceptionList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_PrivacyExceptionList(FALSE, tvb, offset, actx, tree, hf_gsm_map_add_lcs_PrivacyExceptionList); -} -static const ber_old_sequence_t MOLR_Class_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_ss_Status }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_MOLR_Class(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MOLR_Class_sequence, hf_index, ett_gsm_map_MOLR_Class); +dissect_gsm_map_ms_DestinationNumberLengthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + DestinationNumberLengthList_sequence_of, hf_index, ett_gsm_map_ms_DestinationNumberLengthList); return offset; } -static int dissect_MOLR_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MOLR_Class(FALSE, tvb, offset, actx, tree, hf_gsm_map_MOLR_List_item); -} -static const ber_old_sequence_t MOLR_List_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_MOLR_List_item }, +static const ber_sequence_t 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_MOLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - MOLR_List_sequence_of, hf_index, ett_gsm_map_MOLR_List); +dissect_gsm_map_ms_DestinationNumberCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DestinationNumberCriteria_sequence, hf_index, ett_gsm_map_ms_DestinationNumberCriteria); return offset; } -static int dissect_molr_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MOLR_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_molr_List); -} -static const ber_old_sequence_t LCSInformation_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_List_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyExceptionList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_molr_List_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_add_lcs_PrivacyExceptionList }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_LCSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCSInformation_sequence, hf_index, ett_gsm_map_LCSInformation); +dissect_gsm_map_ms_BasicServiceCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + BasicServiceCriteria_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceCriteria); return offset; } -static int dissect_lcsInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsInformation); -} +static const value_string gsm_map_ms_CallTypeCriteria_vals[] = { + { 0, "forwarded" }, + { 1, "notForwarded" }, + { 0, NULL } +}; + static int -dissect_gsm_map_IST_AlertTimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_CallTypeCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_istAlertTimer_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IST_AlertTimerValue(TRUE, tvb, offset, actx, tree, hf_gsm_map_istAlertTimer); -} static int -dissect_gsm_map_MaxMC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_CauseValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_nbrSB_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MaxMC_Bearers(TRUE, tvb, offset, actx, tree, hf_gsm_map_nbrSB); -} +static const ber_sequence_t 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_MC_Bearers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_O_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + O_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_O_CauseValueCriteria); return offset; } -static int dissect_nbrUser_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MC_Bearers(TRUE, tvb, offset, actx, tree, hf_gsm_map_nbrUser); -} -static int dissect_nbrSN_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MC_Bearers(TRUE, tvb, offset, actx, tree, hf_gsm_map_nbrSN); -} -static const ber_old_sequence_t MC_SS_Info_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nbrSB_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_nbrUser_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_MC_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MC_SS_Info_sequence, hf_index, ett_gsm_map_MC_SS_Info); +dissect_gsm_map_ms_O_BcsmCamelTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + O_BcsmCamelTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_O_BcsmCamelTDP_Criteria); return offset; } -static int dissect_mc_SS_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MC_SS_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_mc_SS_Info); + + +static const ber_sequence_t 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 }, +}; + +static int +dissect_gsm_map_ms_O_BcsmCamelTDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + O_BcsmCamelTDPCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList); + + return offset; } static int -dissect_gsm_map_CS_AllocationRetentionPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_MM_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_cs_AllocationRetentionPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CS_AllocationRetentionPriority(TRUE, tvb, offset, actx, tree, hf_gsm_map_cs_AllocationRetentionPriority); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + MobilityTriggers_sequence_of, hf_index, ett_gsm_map_ms_MobilityTriggers); + + return offset; } -static const value_string gsm_map_GPRS_TriggerDetectionPoint_vals[] = { - { 1, "attach" }, - { 2, "attachChangeOfPosition" }, - { 11, "pdp-ContextEstablishment" }, - { 12, "pdp-ContextEstablishmentAcknowledgement" }, - { 14, "pdp-ContextChangeOfPosition" }, +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + M_CSI_sequence, hf_index, ett_gsm_map_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_GPRS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_SMS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_gprs_TriggerDetectionPoint_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRS_TriggerDetectionPoint(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_TriggerDetectionPoint); -} -static const value_string gsm_map_DefaultGPRS_Handling_vals[] = { +static const value_string gsm_map_ms_DefaultSMS_Handling_vals[] = { { 0, "continueTransaction" }, { 1, "releaseTransaction" }, { 0, NULL } @@ -8546,423 +8561,320 @@ static const value_string gsm_map_DefaultGPRS_Handling_vals[] = { static int -dissect_gsm_map_DefaultGPRS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_DefaultSMS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_defaultSessionHandling_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DefaultGPRS_Handling(TRUE, tvb, offset, actx, tree, hf_gsm_map_defaultSessionHandling); -} -static const ber_old_sequence_t GPRS_CamelTDPData_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprs_TriggerDetectionPoint_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_defaultSessionHandling_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_GPRS_CamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_GPRS_CamelTDPData); +dissect_gsm_map_ms_SMS_CAMEL_TDP_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SMS_CAMEL_TDP_Data_sequence, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_Data); return offset; } -static int dissect_GPRS_CamelTDPDataList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRS_CamelTDPData(FALSE, tvb, offset, actx, tree, hf_gsm_map_GPRS_CamelTDPDataList_item); -} -static const ber_old_sequence_t GPRS_CamelTDPDataList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GPRS_CamelTDPDataList_item }, +static const ber_sequence_t 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_GPRS_CamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_GPRS_CamelTDPDataList); +dissect_gsm_map_ms_SMS_CAMEL_TDP_DataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SMS_CAMEL_TDP_DataList_sequence_of, hf_index, ett_gsm_map_ms_SMS_CAMEL_TDP_DataList); return offset; } -static int dissect_gprs_CamelTDPDataList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRS_CamelTDPDataList(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_CamelTDPDataList); -} -static const ber_old_sequence_t GPRS_CSI_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CamelTDPDataList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelCapabilityHandling_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_GPRS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GPRS_CSI_sequence, hf_index, ett_gsm_map_GPRS_CSI); +dissect_gsm_map_ms_SMS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SMS_CSI_sequence, hf_index, ett_gsm_map_ms_SMS_CSI); return offset; } -static int dissect_gprs_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRS_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_CSI); -} -static const ber_old_sequence_t MG_CSI_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mobilityTriggers }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_csi_Active_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ms_T_BcsmTriggerDetectionPoint_vals[] = { + { 12, "termAttemptAuthorized" }, + { 13, "tBusy" }, + { 14, "tNoAnswer" }, + { 0, NULL } }; + static int -dissect_gsm_map_MG_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MG_CSI_sequence, hf_index, ett_gsm_map_MG_CSI); +dissect_gsm_map_ms_T_BcsmTriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_mg_csi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MG_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_mg_csi); -} -static const ber_old_sequence_t SGSN_CAMEL_SubscriptionInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mg_csi_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SGSN_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_SGSN_CAMEL_SubscriptionInfo); +dissect_gsm_map_ms_T_BcsmCamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + T_BcsmCamelTDPData_sequence, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPData); return offset; } -static int dissect_sgsn_CAMEL_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SGSN_CAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_CAMEL_SubscriptionInfo); -} -static const asn_namedbit AccessRestrictionData_bits[] = { - { 0, &hf_gsm_map_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL }, - { 1, &hf_gsm_map_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_AccessRestrictionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - AccessRestrictionData_bits, hf_index, ett_gsm_map_AccessRestrictionData, - NULL); +dissect_gsm_map_ms_T_BcsmCamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + T_BcsmCamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_T_BcsmCamelTDPDataList); return offset; } -static int dissect_accessRestrictionData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AccessRestrictionData(TRUE, tvb, offset, actx, tree, hf_gsm_map_accessRestrictionData); -} -static const ber_old_sequence_t InsertSubscriberDataArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberStatus_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerserviceList_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provisionedSS_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Data_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionData_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsSubscriptionData_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsSubscriptionData_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlrCamelSubscriptionInfo_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSubscriptionData_impl }, - { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsupportedFeature_impl }, - { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkAccessMode_impl }, - { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lsaInformation_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmu_Indicator_impl }, - { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsInformation_impl }, - { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl }, - { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_superChargerSupportedInHLR_impl }, - { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mc_SS_Info_impl }, - { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cs_AllocationRetentionPriority_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_CAMEL_SubscriptionInfo_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessRestrictionData_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_InsertSubscriberDataArg); +dissect_gsm_map_ms_T_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + T_CSI_sequence, hf_index, ett_gsm_map_ms_T_CSI); return offset; } -static const ber_old_sequence_t SS_List_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_SS_List_item }, +static const ber_sequence_t 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_SS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - SS_List_sequence_of, hf_index, ett_gsm_map_SS_List); +dissect_gsm_map_ms_T_CauseValueCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + T_CauseValueCriteria_sequence_of, hf_index, ett_gsm_map_ms_T_CauseValueCriteria); return offset; } -static int dissect_ss_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_List); -} -static int dissect_ss_List2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_List2); -} -static const value_string gsm_map_RegionalSubscriptionResponse_vals[] = { - { 0, "networkNodeAreaRestricted" }, - { 1, "tooManyZoneCodes" }, - { 2, "zoneCodesConflict" }, - { 3, "regionalSubscNotSupported" }, - { 0, NULL } +static const ber_sequence_t 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_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + T_BCSM_CAMEL_TDP_Criteria_sequence, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria); return offset; } -static int dissect_regionalSubscriptionResponse_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RegionalSubscriptionResponse(TRUE, tvb, offset, actx, tree, hf_gsm_map_regionalSubscriptionResponse); -} -static const ber_old_sequence_t InsertSubscriberDataRes_sequence[] = { - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teleserviceList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bearerServiceList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_GeneralData_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_InsertSubscriberDataRes); +dissect_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + T_BCSM_CAMEL_TDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList); return offset; } -static const ber_old_sequence_t BasicServiceList_sequence_of[1] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_BasicServiceList_item }, +static const ber_sequence_t 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_BasicServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - BasicServiceList_sequence_of, hf_index, ett_gsm_map_BasicServiceList); +dissect_gsm_map_ms_DP_AnalysedInfoCriterium(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DP_AnalysedInfoCriterium_sequence, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriterium); return offset; } -static int dissect_basicServiceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BasicServiceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_basicServiceList); -} -static const ber_old_sequence_t ContextIdList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ContextIdList_item }, +static const ber_sequence_t 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_ContextIdList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ContextIdList_sequence_of, hf_index, ett_gsm_map_ContextIdList); +dissect_gsm_map_ms_DP_AnalysedInfoCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + DP_AnalysedInfoCriteriaList_sequence_of, hf_index, ett_gsm_map_ms_DP_AnalysedInfoCriteriaList); return offset; } -static int dissect_contextIdList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ContextIdList(FALSE, tvb, offset, actx, tree, hf_gsm_map_contextIdList); + + +static const ber_sequence_t 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 } +}; + +static int +dissect_gsm_map_ms_D_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + D_CSI_sequence, hf_index, ett_gsm_map_ms_D_CSI); + + return offset; } -static const value_string gsm_map_GPRSSubscriptionDataWithdraw_vals[] = { - { 0, "allGPRSData" }, - { 1, "contextIdList" }, +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 const ber_old_choice_t GPRSSubscriptionDataWithdraw_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allGPRSData }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextIdList }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_GPRSSubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_GPRSSubscriptionDataWithdraw, - NULL); +dissect_gsm_map_ms_MT_SMS_TPDU_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_gprsSubscriptionDataWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRSSubscriptionDataWithdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprsSubscriptionDataWithdraw); -} -static const ber_old_sequence_t LSAIdentityList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_LSAIdentityList_item }, +static const ber_sequence_t 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_LSAIdentityList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - LSAIdentityList_sequence_of, hf_index, ett_gsm_map_LSAIdentityList); +dissect_gsm_map_ms_TPDU_TypeCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + TPDU_TypeCriterion_sequence_of, hf_index, ett_gsm_map_ms_TPDU_TypeCriterion); return offset; } -static int dissect_lsaIdentityList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAIdentityList(FALSE, tvb, offset, actx, tree, hf_gsm_map_lsaIdentityList); -} -static const value_string gsm_map_LSAInformationWithdraw_vals[] = { - { 0, "allLSAData" }, - { 1, "lsaIdentityList" }, - { 0, NULL } -}; - -static const ber_old_choice_t LSAInformationWithdraw_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allLSAData }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lsaIdentityList }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t 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_LSAInformationWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - LSAInformationWithdraw_choice, hf_index, ett_gsm_map_LSAInformationWithdraw, - NULL); +dissect_gsm_map_ms_MT_smsCAMELTDP_Criteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MT_smsCAMELTDP_Criteria_sequence, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_Criteria); return offset; } -static int dissect_lsaInformationWithdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LSAInformationWithdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_lsaInformationWithdraw); -} -static const asn_namedbit SpecificCSI_Withdraw_bits[] = { - { 0, &hf_gsm_map_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL }, - { 1, &hf_gsm_map_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL }, - { 2, &hf_gsm_map_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL }, - { 3, &hf_gsm_map_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL }, - { 4, &hf_gsm_map_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL }, - { 5, &hf_gsm_map_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL }, - { 6, &hf_gsm_map_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL }, - { 7, &hf_gsm_map_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL }, - { 8, &hf_gsm_map_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL }, - { 9, &hf_gsm_map_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL }, - { 10, &hf_gsm_map_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL }, - { 11, &hf_gsm_map_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL }, - { 12, &hf_gsm_map_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL }, - { 13, &hf_gsm_map_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_SpecificCSI_Withdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_SpecificCSI_Withdraw, - NULL); +dissect_gsm_map_ms_MT_smsCAMELTDP_CriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + MT_smsCAMELTDP_CriteriaList_sequence_of, hf_index, ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList); return offset; } -static int dissect_specificCSI_Withdraw_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SpecificCSI_Withdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_specificCSI_Withdraw); -} -static int dissect_specificCSIDeletedList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SpecificCSI_Withdraw(TRUE, tvb, offset, actx, tree, hf_gsm_map_specificCSIDeletedList); -} -static const ber_old_sequence_t DeleteSubscriberDataArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictionDueToUnsupportedFeature_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionIdentifier_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vbsGroupIndication_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vgcsGroupIndication_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelSubscriptionInfoWithdraw_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprsSubscriptionDataWithdraw_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_roamingRestrictedInSgsnDueToUnsuppportedFeature_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_lsaInformationWithdraw_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmlc_ListWithdraw_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_istInformationWithdraw }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_specificCSI_Withdraw_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristicsWithdraw_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataArg); +dissect_gsm_map_ms_VlrCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + VlrCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_VlrCamelSubscriptionInfo); return offset; } -static const ber_old_sequence_t DeleteSubscriberDataRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_regionalSubscriptionResponse_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_DeleteSubscriberDataRes); +dissect_gsm_map_ms_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -int -dissect_gsm_map_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 301 "gsmmap.cnf" +static int +dissect_gsm_map_ms_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 370 "gsm_map.cnf" + guint8 pdp_type_org; + tvbuff_t *parameter_tvb; - tvbuff_t *parameter_tvb; - guint8 octet; offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, ¶meter_tvb); @@ -8970,1077 +8882,1179 @@ dissect_gsm_map_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs if (!parameter_tvb) return offset; + proto_tree_add_item(tree, hf_gsm_map_pdp_type_org, parameter_tvb, 0,1,FALSE); + pdp_type_org = tvb_get_guint8(parameter_tvb,1); + switch (pdp_type_org){ + case 0: /* ETSI */ + proto_tree_add_item(tree, hf_gsm_map_etsi_pdp_type_number, parameter_tvb, 0,1,FALSE); + break; + case 1: /* IETF */ + proto_tree_add_item(tree, hf_gsm_map_ietf_pdp_type_number, parameter_tvb, 0,1,FALSE); + break; + default: + break; + } - 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_ms_PDP_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + return offset; } -static int dissect_ss_Status(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Status); -} -static int dissect_ss_Status_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Status(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Status); -} -static const ber_old_sequence_t CallBarringFeature_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_CallBarringFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CallBarringFeature_sequence, hf_index, ett_gsm_map_CallBarringFeature); +int +dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 392 "gsm_map.cnf" + + + 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, 0, 3, NULL,0); + + return offset; } -static int dissect_CallBarringFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallBarringFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_CallBarringFeatureList_item); -} -static const ber_old_sequence_t CallBarringFeatureList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CallBarringFeatureList_item }, -}; static int -dissect_gsm_map_CallBarringFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - CallBarringFeatureList_sequence_of, hf_index, ett_gsm_map_CallBarringFeatureList); +dissect_gsm_map_ms_APN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_callBarringFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallBarringFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_callBarringFeatureList); -} -static int -dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +int +dissect_gsm_map_ms_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 403 "gsm_map.cnf" + + tvbuff_t *parameter_tvb; + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + dissect_gsm_map_ext_qos_subscribed(tvb, actx->pinfo, tree); -#line 533 "gsmmap.cnf" - proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_notification_to_calling_party, tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_forwarding_reason, tvb, 0,1,FALSE); return offset; } -static int dissect_forwardingOptions_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingOptions(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingOptions); -} static int -dissect_gsm_map_NoReplyConditionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_noReplyConditionTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NoReplyConditionTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_noReplyConditionTime); -} -static const ber_old_sequence_t ForwardingFeature_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_ForwardingFeature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardingFeature_sequence, hf_index, ett_gsm_map_ForwardingFeature); +int +dissect_gsm_map_ms_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ForwardingFeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingFeature(FALSE, tvb, offset, actx, tree, hf_gsm_map_ForwardingFeatureList_item); -} -static const ber_old_sequence_t ForwardingFeatureList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ForwardingFeatureList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ForwardingFeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ForwardingFeatureList_sequence_of, hf_index, ett_gsm_map_ForwardingFeatureList); +dissect_gsm_map_ms_PDP_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PDP_Context_sequence, hf_index, ett_gsm_map_ms_PDP_Context); return offset; } -static int dissect_forwardingFeatureList(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingFeatureList(FALSE, tvb, offset, actx, tree, hf_gsm_map_forwardingFeatureList); -} -static int dissect_forwardingFeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingFeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingFeatureList); -} -static const ber_old_sequence_t ForwardingInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingFeatureList }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ForwardingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardingInfo_sequence, hf_index, ett_gsm_map_ForwardingInfo); +dissect_gsm_map_ms_GPRSDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + GPRSDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRSDataList); return offset; } -static int dissect_forwardingInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingInfo); -} -static const ber_old_sequence_t CallBarringInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_callBarringFeatureList }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_CallBarringInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CallBarringInfo_sequence, hf_index, ett_gsm_map_CallBarringInfo); +dissect_gsm_map_ms_GPRSSubscriptionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GPRSSubscriptionData_sequence, hf_index, ett_gsm_map_ms_GPRSSubscriptionData); return offset; } -static int dissect_callBarringInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallBarringInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_callBarringInfo); -} +static const value_string gsm_map_ms_NetworkAccessMode_vals[] = { + { 0, "bothMSCAndSGSN" }, + { 1, "onlyMSC" }, + { 2, "onlySGSN" }, + { 0, NULL } +}; + static int -dissect_gsm_map_HLR_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_ms_NetworkAccessMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_HLR_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_HLR_Id(FALSE, tvb, offset, actx, tree, hf_gsm_map_HLR_List_item); -} -static const ber_old_sequence_t HLR_List_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_HLR_List_item }, +static const value_string gsm_map_ms_LSAOnlyAccessIndicator_vals[] = { + { 0, "accessOutsideLSAsAllowed" }, + { 1, "accessOutsideLSAsRestricted" }, + { 0, NULL } }; + static int -dissect_gsm_map_HLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - HLR_List_sequence_of, hf_index, ett_gsm_map_HLR_List); +dissect_gsm_map_ms_LSAOnlyAccessIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_hlr_List(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_HLR_List(FALSE, tvb, offset, actx, tree, hf_gsm_map_hlr_List); + + + +int +dissect_gsm_map_ms_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t ResetArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_hlr_List }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ResetArg_sequence, hf_index, ett_gsm_map_ResetArg); +dissect_gsm_map_ms_LSAAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t RestoreDataArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Capability_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RestoreDataArg_sequence, hf_index, ett_gsm_map_RestoreDataArg); +dissect_gsm_map_ms_LSAData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LSAData_sequence, hf_index, ett_gsm_map_ms_LSAData); return offset; } -static const ber_old_sequence_t RestoreDataRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msNotReachable }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_RestoreDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RestoreDataRes_sequence, hf_index, ett_gsm_map_RestoreDataRes); +dissect_gsm_map_ms_LSADataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + LSADataList_sequence_of, hf_index, ett_gsm_map_ms_LSADataList); return offset; } -static const ber_old_sequence_t TraceDepthList_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_TraceDepth_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_TraceDepth_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_TraceDepth_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_TraceDepth_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_TraceDepth_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bmsc_TraceDepth_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_TraceDepthList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TraceDepthList_sequence, hf_index, ett_gsm_map_TraceDepthList); +dissect_gsm_map_ms_LSAInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LSAInformation_sequence, hf_index, ett_gsm_map_ms_LSAInformation); return offset; } -static int dissect_traceDepthList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceDepthList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceDepthList); -} -static const asn_namedbit TraceNE_TypeList_bits[] = { - { 0, &hf_gsm_map_TraceNE_TypeList_msc_s, -1, -1, "msc-s", NULL }, - { 1, &hf_gsm_map_TraceNE_TypeList_mgw, -1, -1, "mgw", NULL }, - { 2, &hf_gsm_map_TraceNE_TypeList_sgsn, -1, -1, "sgsn", NULL }, - { 3, &hf_gsm_map_TraceNE_TypeList_ggsn, -1, -1, "ggsn", NULL }, - { 4, &hf_gsm_map_TraceNE_TypeList_rnc, -1, -1, "rnc", NULL }, - { 5, &hf_gsm_map_TraceNE_TypeList_bm_sc, -1, -1, "bm-sc", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_TraceNE_TypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - TraceNE_TypeList_bits, hf_index, ett_gsm_map_TraceNE_TypeList, - NULL); +dissect_gsm_map_ms_GMLC_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + GMLC_List_sequence_of, hf_index, ett_gsm_map_ms_GMLC_List); return offset; } -static int dissect_traceNE_TypeList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceNE_TypeList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceNE_TypeList); -} -static const asn_namedbit SGSN_InterfaceList_bits[] = { - { 0, &hf_gsm_map_SGSN_InterfaceList_gb, -1, -1, "gb", NULL }, - { 1, &hf_gsm_map_SGSN_InterfaceList_iu, -1, -1, "iu", NULL }, - { 2, &hf_gsm_map_SGSN_InterfaceList_gn, -1, -1, "gn", NULL }, - { 3, &hf_gsm_map_SGSN_InterfaceList_map_gr, -1, -1, "map-gr", NULL }, - { 4, &hf_gsm_map_SGSN_InterfaceList_map_gd, -1, -1, "map-gd", NULL }, - { 5, &hf_gsm_map_SGSN_InterfaceList_map_gf, -1, -1, "map-gf", NULL }, - { 6, &hf_gsm_map_SGSN_InterfaceList_gs, -1, -1, "gs", NULL }, - { 7, &hf_gsm_map_SGSN_InterfaceList_ge, -1, -1, "ge", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +const value_string gsm_map_ms_NotificationToMSUser_vals[] = { + { 0, "notifyLocationAllowed" }, + { 1, "notifyAndVerify-LocationAllowedIfNoResponse" }, + { 2, "notifyAndVerify-LocationNotAllowedIfNoResponse" }, + { 3, "locationNotAllowed" }, + { 0, NULL } }; -static int -dissect_gsm_map_SGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SGSN_InterfaceList_bits, hf_index, ett_gsm_map_SGSN_InterfaceList, - NULL); + +int +dissect_gsm_map_ms_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_sgsn_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SGSN_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_IList); -} -static const asn_namedbit GGSN_InterfaceList_bits[] = { - { 0, &hf_gsm_map_GGSN_InterfaceList_gn, -1, -1, "gn", NULL }, - { 1, &hf_gsm_map_GGSN_InterfaceList_gi, -1, -1, "gi", NULL }, - { 2, &hf_gsm_map_GGSN_InterfaceList_gmb, -1, -1, "gmb", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const value_string gsm_map_ms_GMLC_Restriction_vals[] = { + { 0, "gmlc-List" }, + { 1, "home-Country" }, + { 0, NULL } }; + static int -dissect_gsm_map_GGSN_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - GGSN_InterfaceList_bits, hf_index, ett_gsm_map_GGSN_InterfaceList, - NULL); +dissect_gsm_map_ms_GMLC_Restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ggsn_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GGSN_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_IList); -} -static const asn_namedbit BMSC_InterfaceList_bits[] = { - { 0, &hf_gsm_map_BMSC_InterfaceList_gmb, -1, -1, "gmb", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_BMSC_InterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - BMSC_InterfaceList_bits, hf_index, ett_gsm_map_BMSC_InterfaceList, - NULL); +dissect_gsm_map_ms_ExternalClient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ExternalClient_sequence, hf_index, ett_gsm_map_ms_ExternalClient); return offset; } -static int dissect_bmsc_IList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BMSC_InterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bmsc_IList); -} -static const ber_old_sequence_t TraceInterfaceList_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_IList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_IList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_IList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_IList_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_IList_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bmsc_IList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_TraceInterfaceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TraceInterfaceList_sequence, hf_index, ett_gsm_map_TraceInterfaceList); +dissect_gsm_map_ms_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_ExternalClientList); return offset; } -static int dissect_traceInterfaceList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceInterfaceList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceInterfaceList); -} -static const asn_namedbit SGSN_EventList_bits[] = { - { 0, &hf_gsm_map_SGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL }, - { 1, &hf_gsm_map_SGSN_EventList_mo_mt_sms, -1, -1, "mo-mt-sms", NULL }, - { 2, &hf_gsm_map_SGSN_EventList_rau_gprsAttach_gprsDetach, -1, -1, "rau-gprsAttach-gprsDetach", NULL }, - { 3, &hf_gsm_map_SGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_SGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SGSN_EventList_bits, hf_index, ett_gsm_map_SGSN_EventList, - NULL); +dissect_gsm_map_ms_PLMNClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + PLMNClientList_sequence_of, hf_index, ett_gsm_map_ms_PLMNClientList); return offset; } -static int dissect_sgsn_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SGSN_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_EList); -} -static const asn_namedbit GGSN_EventList_bits[] = { - { 0, &hf_gsm_map_GGSN_EventList_pdpContext, -1, -1, "pdpContext", NULL }, - { 1, &hf_gsm_map_GGSN_EventList_mbmsContext, -1, -1, "mbmsContext", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_GGSN_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - GGSN_EventList_bits, hf_index, ett_gsm_map_GGSN_EventList, - NULL); +dissect_gsm_map_ms_Ext_ExternalClientList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Ext_ExternalClientList_sequence_of, hf_index, ett_gsm_map_ms_Ext_ExternalClientList); return offset; } -static int dissect_ggsn_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GGSN_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ggsn_EList); -} -static const asn_namedbit BMSC_EventList_bits[] = { - { 0, &hf_gsm_map_BMSC_EventList_mbmsMulticastServiceActivation, -1, -1, "mbmsMulticastServiceActivation", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_BMSC_EventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - BMSC_EventList_bits, hf_index, ett_gsm_map_BMSC_EventList, - NULL); +dissect_gsm_map_ms_ServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ServiceType_sequence, hf_index, ett_gsm_map_ms_ServiceType); return offset; } -static int dissect_bmsc_EList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BMSC_EventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_bmsc_EList); -} -static const ber_old_sequence_t TraceEventList_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_s_EList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mgw_EList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_EList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_EList_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bmsc_EList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_TraceEventList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TraceEventList_sequence, hf_index, ett_gsm_map_TraceEventList); +dissect_gsm_map_ms_ServiceTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ServiceTypeList_sequence_of, hf_index, ett_gsm_map_ms_ServiceTypeList); return offset; } -static int dissect_traceEventList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TraceEventList(TRUE, tvb, offset, actx, tree, hf_gsm_map_traceEventList); -} -static const ber_old_sequence_t ActivateTraceModeArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_traceType_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_omc_Id_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference2_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceDepthList_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceNE_TypeList_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceInterfaceList_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceEventList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ActivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ActivateTraceModeArg_sequence, hf_index, ett_gsm_map_ActivateTraceModeArg); +dissect_gsm_map_ms_LCS_PrivacyClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_PrivacyClass_sequence, hf_index, ett_gsm_map_ms_LCS_PrivacyClass); return offset; } -static const ber_old_sequence_t ActivateTraceModeRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceSupportIndicator_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ActivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ActivateTraceModeRes_sequence, hf_index, ett_gsm_map_ActivateTraceModeRes); +dissect_gsm_map_ms_LCS_PrivacyExceptionList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + LCS_PrivacyExceptionList_sequence_of, hf_index, ett_gsm_map_ms_LCS_PrivacyExceptionList); return offset; } -static const ber_old_sequence_t DeactivateTraceModeArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_traceReference_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_traceReference2_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_DeactivateTraceModeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DeactivateTraceModeArg_sequence, hf_index, ett_gsm_map_DeactivateTraceModeArg); +dissect_gsm_map_ms_MOLR_Class(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MOLR_Class_sequence, hf_index, ett_gsm_map_ms_MOLR_Class); return offset; } -static const ber_old_sequence_t DeactivateTraceModeRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_DeactivateTraceModeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DeactivateTraceModeRes_sequence, hf_index, ett_gsm_map_DeactivateTraceModeRes); +dissect_gsm_map_ms_MOLR_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + MOLR_List_sequence_of, hf_index, ett_gsm_map_ms_MOLR_List); return offset; } -static const ber_old_sequence_t CUG_CheckInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cug_Interlock }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_OutgoingAccess }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CUG_CheckInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CUG_CheckInfo_sequence, hf_index, ett_gsm_map_CUG_CheckInfo); +dissect_gsm_map_ms_LCSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSInformation_sequence, hf_index, ett_gsm_map_ms_LCSInformation); return offset; } -static int dissect_cug_CheckInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_CheckInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_cug_CheckInfo); -} static int -dissect_gsm_map_NumberOfForwarding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_IST_AlertTimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_numberOfForwarding_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NumberOfForwarding(TRUE, tvb, offset, actx, tree, hf_gsm_map_numberOfForwarding); + + + +static int +dissect_gsm_map_ms_CS_AllocationRetentionPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const value_string gsm_map_InterrogationType_vals[] = { - { 0, "basicCall" }, - { 1, "forwarding" }, +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_InterrogationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_GPRS_TriggerDetectionPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_interrogationType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InterrogationType(TRUE, tvb, offset, actx, tree, hf_gsm_map_interrogationType); -} +static const value_string gsm_map_ms_DefaultGPRS_Handling_vals[] = { + { 0, "continueTransaction" }, + { 1, "releaseTransaction" }, + { 0, NULL } +}; + static int -dissect_gsm_map_OR_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_DefaultGPRS_Handling(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_or_Capability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OR_Phase(TRUE, tvb, offset, actx, tree, hf_gsm_map_or_Capability); -} +static const ber_sequence_t 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_CallReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_GPRS_CamelTDPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GPRS_CamelTDPData_sequence, hf_index, ett_gsm_map_ms_GPRS_CamelTDPData); return offset; } -static int dissect_callReferenceNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallReferenceNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_callReferenceNumber); -} -static const value_string gsm_map_ForwardingReason_vals[] = { - { 0, "notReachable" }, - { 1, "busy" }, - { 2, "noReply" }, - { 0, NULL } +static const ber_sequence_t 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_ForwardingReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_GPRS_CamelTDPDataList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + GPRS_CamelTDPDataList_sequence_of, hf_index, ett_gsm_map_ms_GPRS_CamelTDPDataList); return offset; } -static int dissect_forwardingReason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingReason(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingReason); -} -static const ber_old_sequence_t ExternalSignalInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_protocolId }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ExternalSignalInfo_sequence, hf_index, ett_gsm_map_ExternalSignalInfo); +dissect_gsm_map_ms_GPRS_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GPRS_CSI_sequence, hf_index, ett_gsm_map_ms_GPRS_CSI); return offset; } -static int dissect_networkSignalInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_networkSignalInfo); -} -static int dissect_networkSignalInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkSignalInfo); -} -static int dissect_networkSignalInfo2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_networkSignalInfo2); -} -static int dissect_gsm_BearerCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_gsm_BearerCapability); -} -static int dissect_isdn_BearerCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_isdn_BearerCapability); -} -static int dissect_chosenChannel_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_chosenChannel); -} -static int dissect_lowerLayerCompatibility_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_lowerLayerCompatibility); -} -static int dissect_highLayerCompatibility_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_highLayerCompatibility); -} -static int dissect_channelType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_channelType); -} -static int dissect_callInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_callInfo); -} -static int dissect_callInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_callInfo); -} -static const ber_old_sequence_t CamelInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_supportedCamelPhases }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_suppress_T_CSI }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CamelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CamelInfo_sequence, hf_index, ett_gsm_map_CamelInfo); +dissect_gsm_map_ms_MG_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MG_CSI_sequence, hf_index, ett_gsm_map_ms_MG_CSI); return offset; } -static int dissect_camelInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CamelInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelInfo); -} +static const ber_sequence_t 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_SuppressionOfAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); +dissect_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SGSN_CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo); return offset; } -static int dissect_suppressionOfAnnouncement_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SuppressionOfAnnouncement(TRUE, tvb, offset, actx, tree, hf_gsm_map_suppressionOfAnnouncement); -} +static const asn_namedbit AccessRestrictionData_bits[] = { + { 0, &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, -1, -1, "utranNotAllowed", NULL }, + { 1, &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, -1, -1, "geranNotAllowed", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; -int -dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ms_AccessRestrictionData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + AccessRestrictionData_bits, hf_index, ett_gsm_map_ms_AccessRestrictionData, + NULL); return offset; } -static int dissect_alertingPattern(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AlertingPattern(FALSE, tvb, offset, actx, tree, hf_gsm_map_alertingPattern); -} -static int dissect_alertingPattern_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AlertingPattern(TRUE, tvb, offset, actx, tree, hf_gsm_map_alertingPattern); -} +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; static int -dissect_gsm_map_SupportedCCBS_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_InsertSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + InsertSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataArg); return offset; } -static int dissect_supportedCCBS_Phase_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedCCBS_Phase(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedCCBS_Phase); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SubscriberData_sequence, hf_index, ett_gsm_map_ms_SubscriberData); + + return offset; } -static const value_string gsm_map_Ext_ProtocolId_vals[] = { - { 1, "ets-300356" }, +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_Ext_ProtocolId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_RegionalSubscriptionResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_ext_ProtocolId(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ProtocolId(FALSE, tvb, offset, actx, tree, hf_gsm_map_ext_ProtocolId); -} -static const ber_old_sequence_t Ext_ExternalSignalInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_ext_ProtocolId }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_signalInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ext_ExternalSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_ExternalSignalInfo_sequence, hf_index, ett_gsm_map_Ext_ExternalSignalInfo); +dissect_gsm_map_ms_InsertSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + InsertSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_InsertSubscriberDataRes); return offset; } -static int dissect_additionalSignalInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ExternalSignalInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalSignalInfo); -} +static const ber_sequence_t 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_CallDiversionTreatmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_BasicServiceList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + BasicServiceList_sequence_of, hf_index, ett_gsm_map_ms_BasicServiceList); return offset; } -static int dissect_callDiversionTreatmentIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallDiversionTreatmentIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_callDiversionTreatmentIndicator); -} -static const ber_old_sequence_t SendRoutingInfoArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfForwarding_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_interrogationType_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Capability_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gmsc_OrGsmSCF_Address_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingReason_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicServiceGroup_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camelInfo_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCCBS_Phase_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istSupportIndicator_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pre_pagingSupported_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callDiversionTreatmentIndicator_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_suppress_VT_CSI }, - { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_suppressIncomingCallBarring }, - { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_gsmSCF_InitiatedCall }, - { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup2_impl }, - { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo2_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoArg); +dissect_gsm_map_ms_ContextIdList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ContextIdList_sequence_of, hf_index, ett_gsm_map_ms_ContextIdList); return offset; } -static const ber_old_sequence_t ForwardingData_sequence[] = { - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingOptions_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longForwardedToNumber_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ms_GPRSSubscriptionDataWithdraw_vals[] = { + { 0, "allGPRSData" }, + { 1, "contextIdList" }, + { 0, NULL } +}; + +static const ber_choice_t 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_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardingData_sequence, hf_index, ett_gsm_map_ForwardingData); +dissect_gsm_map_ms_GPRSSubscriptionDataWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + GPRSSubscriptionDataWithdraw_choice, hf_index, ett_gsm_map_ms_GPRSSubscriptionDataWithdraw, + NULL); return offset; } -static int dissect_forwardingData(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingData(FALSE, tvb, offset, actx, tree, hf_gsm_map_forwardingData); -} -static int dissect_forwardingData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ForwardingData(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingData); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + LSAIdentityList_sequence_of, hf_index, ett_gsm_map_ms_LSAIdentityList); + + return offset; } -static const value_string gsm_map_RoutingInfo_vals[] = { - { 0, "roamingNumber" }, - { 1, "forwardingData" }, +static const value_string gsm_map_ms_LSAInformationWithdraw_vals[] = { + { 0, "allLSAData" }, + { 1, "lsaIdentityList" }, { 0, NULL } }; -static const ber_old_choice_t RoutingInfo_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_forwardingData }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_RoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - RoutingInfo_choice, hf_index, ett_gsm_map_RoutingInfo, - NULL); +dissect_gsm_map_ms_LSAInformationWithdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + LSAInformationWithdraw_choice, hf_index, ett_gsm_map_ms_LSAInformationWithdraw, + NULL); return offset; } -static int dissect_routingInfo2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RoutingInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_routingInfo2); -} -static int dissect_routingInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RoutingInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_routingInfo); -} -static const ber_old_sequence_t GmscCamelSubscriptionInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_csi_impl }, - { 0, 0, 0, NULL } +static const asn_namedbit SpecificCSI_Withdraw_bits[] = { + { 0, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, -1, -1, "o-csi", NULL }, + { 1, &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, -1, -1, "ss-csi", NULL }, + { 2, &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, -1, -1, "tif-csi", NULL }, + { 3, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, -1, -1, "d-csi", NULL }, + { 4, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, -1, -1, "vt-csi", NULL }, + { 5, &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, -1, -1, "mo-sms-csi", NULL }, + { 6, &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, -1, -1, "m-csi", NULL }, + { 7, &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, -1, -1, "gprs-csi", NULL }, + { 8, &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, -1, -1, "t-csi", NULL }, + { 9, &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, -1, -1, "mt-sms-csi", NULL }, + { 10, &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, -1, -1, "mg-csi", NULL }, + { 11, &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, -1, -1, "o-IM-CSI", NULL }, + { 12, &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, -1, -1, "d-IM-CSI", NULL }, + { 13, &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, -1, -1, "vt-IM-CSI", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_gsm_map_GmscCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_GmscCamelSubscriptionInfo); +dissect_gsm_map_ms_SpecificCSI_Withdraw(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SpecificCSI_Withdraw_bits, hf_index, ett_gsm_map_ms_SpecificCSI_Withdraw, + NULL); return offset; } -static int dissect_gmscCamelSubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GmscCamelSubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_gmscCamelSubscriptionInfo); -} -static const ber_old_sequence_t CamelRoutingInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_forwardingData }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gmscCamelSubscriptionInfo_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_CamelRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CamelRoutingInfo_sequence, hf_index, ett_gsm_map_CamelRoutingInfo); +dissect_gsm_map_ms_DeleteSubscriberDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DeleteSubscriberDataArg_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataArg); return offset; } -static int dissect_camelRoutingInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CamelRoutingInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_camelRoutingInfo); -} -static const value_string gsm_map_ExtendedRoutingInfo_vals[] = { - { 0, "routingInfo" }, - { 1, "camelRoutingInfo" }, - { 0, NULL } -}; - -static const ber_old_choice_t ExtendedRoutingInfo_choice[] = { - { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_routingInfo }, - { 1, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camelRoutingInfo_impl }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t 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_ExtendedRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ExtendedRoutingInfo, - NULL); +dissect_gsm_map_ms_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + DeleteSubscriberDataRes_sequence, hf_index, ett_gsm_map_ms_DeleteSubscriberDataRes); return offset; } -static int dissect_extendedRoutingInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExtendedRoutingInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_extendedRoutingInfo); -} +static const asn_namedbit OfferedCamel4Functionalities_bits[] = { + { 0, &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL }, + { 1, &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL }, + { 2, &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL }, + { 3, &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL }, + { 4, &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL }, + { 5, &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL }, + { 6, &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL }, + { 7, &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL }, + { 8, &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL }, + { 9, &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL }, + { 10, &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL }, + { 11, &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL }, + { 12, &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL }, + { 13, &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL }, + { 14, &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL }, + { 15, &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL }, + { 16, &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL }, + { 17, &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL }, + { 18, &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL }, + { 19, &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; int -dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_ms_OfferedCamel4Functionalities, + NULL); return offset; } -static int dissect_ageOfLocationInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AgeOfLocationInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_ageOfLocationInformation); + + +static const ber_sequence_t 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_ms_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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsArg); + + return offset; } -static int dissect_ageOfLocationEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AgeOfLocationInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_ageOfLocationEstimate); + + +static const ber_sequence_t SendRoutingInfoForGprsRes_sequence[] = { + { &hf_gsm_map_ms_sgsn_Address, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, + { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_ms_SendRoutingInfoForGprsRes); + + return offset; } +static const ber_sequence_t 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_ms_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 } +}; -int -dissect_gsm_map_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ms_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + FailureReportArg_sequence, hf_index, ett_gsm_map_ms_FailureReportArg); return offset; } -static int dissect_geographicalInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GeographicalInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_geographicalInformation); + + +static const ber_sequence_t FailureReportRes_sequence[] = { + { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + FailureReportRes_sequence, hf_index, ett_gsm_map_ms_FailureReportRes); + + return offset; } -static int dissect_geographicalInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GeographicalInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_geographicalInformation); + + +static const ber_sequence_t 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_ms_GSN_Address }, + { &hf_gsm_map_ms_ggsn_Address, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsArg); + + return offset; } +static const ber_sequence_t 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_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_ms_NoteMsPresentForGprsRes); return offset; } -static int dissect_locationNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationNumber); + + +static const ber_sequence_t ResetArg_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_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_map_ms_ResetArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ResetArg_sequence, hf_index, ett_gsm_map_ms_ResetArg); + + return offset; } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; -int -dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ms_RestoreDataArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RestoreDataArg_sequence, hf_index, ett_gsm_map_ms_RestoreDataArg); return offset; } -static int dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RestoreDataRes_sequence, hf_index, ett_gsm_map_ms_RestoreDataRes); + + return offset; } -static const value_string gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals[] = { - { 0, "cellGlobalIdOrServiceAreaIdFixedLength" }, - { 1, "laiFixedLength" }, +static const value_string gsm_map_ms_DomainType_vals[] = { + { 0, "cs-Domain" }, + { 1, "ps-Domain" }, { 0, NULL } }; -static const ber_old_choice_t CellGlobalIdOrServiceAreaIdOrLAI_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellGlobalIdOrServiceAreaIdFixedLength_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - CellGlobalIdOrServiceAreaIdOrLAI_choice, hf_index, ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI, - NULL); +dissect_gsm_map_ms_DomainType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_cellGlobalIdOrServiceAreaIdOrLAI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(FALSE, tvb, offset, actx, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI); + + +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gsm_map_ms_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RequestedInfo_sequence, hf_index, ett_gsm_map_ms_RequestedInfo); + + return offset; } -static int dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI); + + +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gsm_map_ms_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoArg); + + return offset; } -static int dissect_cellIdOrSai_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI(TRUE, tvb, offset, actx, tree, hf_gsm_map_cellIdOrSai); + + + +int +dissect_gsm_map_ms_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } static int -dissect_gsm_map_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_geodeticInformation(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GeodeticInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_geodeticInformation); -} -static int dissect_geodeticInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GeodeticInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_geodeticInformation); + + + +static int +dissect_gsm_map_ms_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t LocationInformation_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSA_Id_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_Number_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; int -dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation); +dissect_gsm_map_ms_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationInformation_sequence, hf_index, ett_gsm_map_ms_LocationInformation); return offset; } -static int dissect_locationInformation_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInformation); -} -static const value_string gsm_map_NotReachableReason_vals[] = { +static const value_string gsm_map_ms_NotReachableReason_vals[] = { { 0, "msPurged" }, { 1, "imsiDetached" }, { 2, "restrictedArea" }, @@ -10050,18 +10064,15 @@ static const value_string gsm_map_NotReachableReason_vals[] = { static int -dissect_gsm_map_NotReachableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_NotReachableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_netDetNotReachable(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NotReachableReason(FALSE, tvb, offset, actx, tree, hf_gsm_map_netDetNotReachable); -} -const value_string gsm_map_SubscriberState_vals[] = { +const value_string gsm_map_ms_SubscriberState_vals[] = { { 0, "assumedIdle" }, { 1, "camelBusy" }, { 2, "netDetNotReachable" }, @@ -10069,31 +10080,28 @@ const value_string gsm_map_SubscriberState_vals[] = { { 0, NULL } }; -static const ber_old_choice_t SubscriberState_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl }, - { 2, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable }, - { 3, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState, - NULL); +dissect_gsm_map_ms_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SubscriberState_choice, hf_index, ett_gsm_map_ms_SubscriberState, + NULL); return offset; } -static int dissect_subscriberState(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberState(FALSE, tvb, offset, actx, tree, hf_gsm_map_subscriberState); -} int -dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 634 "gsmmap.cnf" +dissect_gsm_map_ms_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 439 "gsm_map.cnf" tvbuff_t *parameter_tvb; proto_item *item; @@ -10113,152 +10121,119 @@ dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off return offset; } -static int dissect_routeingAreaIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RAIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_routeingAreaIdentity); -} -static const ber_old_sequence_t LocationInformationGPRS_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_cellGlobalIdOrServiceAreaIdOrLAI }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_routeingAreaIdentity }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_geographicalInformation }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_sgsn_Number }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_selectedLSAIdentity }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_extensionContainer }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_sai_Present }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_geodeticInformation }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_currentLocationRetrieved }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ageOfLocationInformation }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LocationInformationGPRS_sequence, hf_index, ett_gsm_map_LocationInformationGPRS); +dissect_gsm_map_ms_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationInformationGPRS_sequence, hf_index, ett_gsm_map_ms_LocationInformationGPRS); return offset; } -static int dissect_locationInformationGPRS(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationInformationGPRS(FALSE, tvb, offset, actx, tree, hf_gsm_map_locationInformationGPRS); -} -static int dissect_locationInformationGPRS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationInformationGPRS(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInformationGPRS); -} static int -dissect_gsm_map_NSAPI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_NSAPI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_nsapi_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NSAPI(TRUE, tvb, offset, actx, tree, hf_gsm_map_nsapi); -} static int -dissect_gsm_map_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_transactionId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TransactionId(TRUE, tvb, offset, actx, tree, hf_gsm_map_transactionId); -} static int -dissect_gsm_map_TEID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_TEID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_teid_ForGnAndGp_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TEID(TRUE, tvb, offset, actx, tree, hf_gsm_map_teid_ForGnAndGp); -} -static int dissect_teid_ForIu_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TEID(TRUE, tvb, offset, actx, tree, hf_gsm_map_teid_ForIu); -} int -dissect_gsm_map_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_chargingId_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRSChargingID(TRUE, tvb, offset, actx, tree, hf_gsm_map_chargingId); -} -static const ber_old_sequence_t PDP_ContextInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pdp_ContextIdentifier_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_ContextActive_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_pdp_Type_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdp_Address_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_Subscribed_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_apn_InUse_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nsapi_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transactionId_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForGnAndGp_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_teid_ForIu_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_qos_Subscribed_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Requested_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos_Negotiated_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingId_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingCharacteristics_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rnc_Address_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Subscribed_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Requested_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qos2_Negotiated_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_ms_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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_PDP_ContextInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PDP_ContextInfo_sequence, hf_index, ett_gsm_map_PDP_ContextInfo); +dissect_gsm_map_ms_PDP_ContextInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PDP_ContextInfo_sequence, hf_index, ett_gsm_map_ms_PDP_ContextInfo); return offset; } -static int dissect_PDP_ContextInfoList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PDP_ContextInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_PDP_ContextInfoList_item); -} -static const ber_old_sequence_t PDP_ContextInfoList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PDP_ContextInfoList_item }, +static const ber_sequence_t 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_PDP_ContextInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_PDP_ContextInfoList); +dissect_gsm_map_ms_PDP_ContextInfoList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + PDP_ContextInfoList_sequence_of, hf_index, ett_gsm_map_ms_PDP_ContextInfoList); return offset; } -static int dissect_ps_PDP_ActiveNotReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PDP_ContextInfoList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_PDP_ActiveNotReachableForPaging); -} -static int dissect_ps_PDP_ActiveReachableForPaging_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PDP_ContextInfoList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_PDP_ActiveReachableForPaging); -} -static const value_string gsm_map_PS_SubscriberState_vals[] = { +static const value_string gsm_map_ms_PS_SubscriberState_vals[] = { { 0, "notProvidedFromSGSN" }, { 1, "ps-Detached" }, { 2, "ps-AttachedNotReachableForPaging" }, @@ -10269,100 +10244,82 @@ static const value_string gsm_map_PS_SubscriberState_vals[] = { { 0, NULL } }; -static const ber_old_choice_t PS_SubscriberState_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_notProvidedFromSGSN_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ps_Detached_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ps_AttachedNotReachableForPaging_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ps_AttachedReachableForPaging_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveNotReachableForPaging_impl }, - { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ps_PDP_ActiveReachableForPaging_impl }, - { 6, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t PS_SubscriberState_choice[] = { + { 0, &hf_gsm_map_ms_notProvidedFromSGSN, 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_PS_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - PS_SubscriberState_choice, hf_index, ett_gsm_map_PS_SubscriberState, - NULL); +dissect_gsm_map_ms_PS_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + PS_SubscriberState_choice, hf_index, ett_gsm_map_ms_PS_SubscriberState, + NULL); return offset; } -static int dissect_ps_SubscriberState_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PS_SubscriberState(TRUE, tvb, offset, actx, tree, hf_gsm_map_ps_SubscriberState); -} int -dissect_gsm_map_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_ms_Classmark2_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MS_Classmark2(TRUE, tvb, offset, actx, tree, hf_gsm_map_ms_Classmark2); -} static int -dissect_gsm_map_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_mSNetworkCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSNetworkCapability(TRUE, tvb, offset, actx, tree, hf_gsm_map_mSNetworkCapability); -} static int -dissect_gsm_map_MSRadioAccessCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_MSRadioAccessCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_mSRadioAccessCapability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSRadioAccessCapability(TRUE, tvb, offset, actx, tree, hf_gsm_map_mSRadioAccessCapability); -} -static const ber_old_sequence_t GPRSMSClass_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mSNetworkCapability_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mSRadioAccessCapability_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; static int -dissect_gsm_map_GPRSMSClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GPRSMSClass_sequence, hf_index, ett_gsm_map_GPRSMSClass); +dissect_gsm_map_ms_GPRSMSClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GPRSMSClass_sequence, hf_index, ett_gsm_map_ms_GPRSMSClass); return offset; } -static int dissect_gprs_MS_Class_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GPRSMSClass(TRUE, tvb, offset, actx, tree, hf_gsm_map_gprs_MS_Class); -} static int -dissect_gsm_map_RouteingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_RouteingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static int dissect_routeingNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RouteingNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_routeingNumber); -} -static const value_string gsm_map_NumberPortabilityStatus_vals[] = { +static const value_string gsm_map_ms_NumberPortabilityStatus_vals[] = { { 0, "notKnownToBePorted" }, { 1, "ownNumberPortedOut" }, { 2, "foreignNumberPortedToForeignNetwork" }, @@ -10373,719 +10330,663 @@ static const value_string gsm_map_NumberPortabilityStatus_vals[] = { static int -dissect_gsm_map_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ms_NumberPortabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_numberPortabilityStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NumberPortabilityStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_numberPortabilityStatus); -} -static const ber_old_sequence_t MNPInfoRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingNumber_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_MNPInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MNPInfoRes_sequence, hf_index, ett_gsm_map_MNPInfoRes); +dissect_gsm_map_ms_MNPInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MNPInfoRes_sequence, hf_index, ett_gsm_map_ms_MNPInfoRes); return offset; } -static int dissect_mnpInfoRes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MNPInfoRes(TRUE, tvb, offset, actx, tree, hf_gsm_map_mnpInfoRes); -} -static const ber_old_sequence_t SubscriberInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_subscriberState }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ps_SubscriberState_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_Classmark2_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_MS_Class_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mnpInfoRes_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SubscriberInfo_sequence, hf_index, ett_gsm_map_SubscriberInfo); +dissect_gsm_map_ms_SubscriberInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SubscriberInfo_sequence, hf_index, ett_gsm_map_ms_SubscriberInfo); return offset; } -static int dissect_subscriberInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_subscriberInfo); -} -static int dissect_subscriberInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberInfo); -} -static const ber_old_sequence_t CCBS_Indicators_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepCCBS_CallIndicator_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CCBS_Indicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CCBS_Indicators_sequence, hf_index, ett_gsm_map_CCBS_Indicators); +dissect_gsm_map_ms_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ms_ProvideSubscriberInfoRes); return offset; } -static int dissect_ccbs_Indicators_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_Indicators(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Indicators); -} -static const asn_namedbit AllowedServices_bits[] = { - { 0, &hf_gsm_map_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL }, - { 1, &hf_gsm_map_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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_AllowedServices(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - AllowedServices_bits, hf_index, ett_gsm_map_AllowedServices, - NULL); +dissect_gsm_map_ms_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationArg); return offset; } -static int dissect_allowedServices_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AllowedServices(TRUE, tvb, offset, actx, tree, hf_gsm_map_allowedServices); -} -static const value_string gsm_map_UnavailabilityCause_vals[] = { - { 1, "bearerServiceNotProvisioned" }, - { 2, "teleserviceNotProvisioned" }, - { 3, "absentSubscriber" }, - { 4, "busySubscriber" }, - { 5, "callBarred" }, - { 6, "cug-Reject" }, - { 0, NULL } +static const ber_sequence_t 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_UnavailabilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeInterrogationRes); return offset; } -static int dissect_unavailabilityCause_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UnavailabilityCause(TRUE, tvb, offset, actx, tree, hf_gsm_map_unavailabilityCause); -} -static const ber_old_sequence_t SendRoutingInfoRes_sequence[] = { - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extendedRoutingInfo }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cugSubscriptionFlag_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberInfo_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInterrogationRequired_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vmsc_Address_impl }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naea_PreferredCI_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Indicators_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberPortabilityStatus_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInVMSC_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInVMSC_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_routingInfo2_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_List2_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService2_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allowedServices_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unavailabilityCause_impl }, - { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseResourcesSupported_impl }, - { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl }, - { 0, 0, 0, NULL } +static 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_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendRoutingInfoRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoRes); +dissect_gsm_map_ms_RequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const value_string gsm_map_SubscriberIdentity_vals[] = { - { 0, "imsi" }, - { 1, "msisdn" }, +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 const ber_old_choice_t SubscriberIdentity_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_SubscriberIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - SubscriberIdentity_choice, hf_index, ett_gsm_map_SubscriberIdentity, - NULL); +dissect_gsm_map_ms_AdditionalRequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_subscriberIdentity(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_subscriberIdentity); -} -static int dissect_subscriberIdentity_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_subscriberIdentity); -} -static int dissect_targetMS(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberIdentity(FALSE, tvb, offset, actx, tree, hf_gsm_map_targetMS); -} -static int dissect_targetMS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SubscriberIdentity(TRUE, tvb, offset, actx, tree, hf_gsm_map_targetMS); -} -static const ber_old_sequence_t ProvideRoamingNumberArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_networkSignalInfo_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmsc_Address_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Interrogation_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Call_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhasesInInterrogatingNode_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSignalInfo_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_orNotSupportedInGMSC_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pre_pagingSupported_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_VT_CSI_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInInterrogatingNode_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberArg); +dissect_gsm_map_ms_RequestedSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_RequestedSubscriptionInfo); return offset; } -static const ber_old_sequence_t ProvideRoamingNumberRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_roamingNumber }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_releaseResourcesSupported }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ProvideRoamingNumberRes); +dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg); return offset; } +static const ber_sequence_t 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_UUIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_CallForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CallForwardingData_sequence, hf_index, ett_gsm_map_ms_CallForwardingData); return offset; } -static int dissect_uuIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UUIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_uuIndicator); -} static int -dissect_gsm_map_UUI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_WrongPasswordAttemptsCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_uui_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UUI(TRUE, tvb, offset, actx, tree, hf_gsm_map_uui); -} -static const ber_old_sequence_t UU_Data_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uuIndicator_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uui_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uusCFInteraction_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UU_Data_sequence, hf_index, ett_gsm_map_UU_Data); +static int +dissect_gsm_map_ms_CallBarringData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CallBarringData_sequence, hf_index, ett_gsm_map_ms_CallBarringData); return offset; } -static int dissect_uu_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UU_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_uu_Data); -} -static const ber_old_sequence_t ResumeCallHandlingArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ext_basicServiceGroup }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingData_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_CheckInfo_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_allInformationSent_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_csi_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDPCriteriaList_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup2_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ResumeCallHandlingArg); +dissect_gsm_map_ms_ODB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ODB_Info_sequence, hf_index, ett_gsm_map_ms_ODB_Info); return offset; } -static const ber_old_sequence_t ResumeCallHandlingRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ResumeCallHandlingRes); +dissect_gsm_map_ms_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_ms_CAMEL_SubscriptionInfo); return offset; } +static const ber_sequence_t 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_CallDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_MSISDN_BS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MSISDN_BS_sequence, hf_index, ett_gsm_map_ms_MSISDN_BS); return offset; } -static int dissect_call_Direction_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallDirection(TRUE, tvb, offset, actx, tree, hf_gsm_map_call_Direction); -} -static const ber_old_sequence_t ProvideSIWFSNumberArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_BearerCapability_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_isdn_BearerCapability_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_call_Direction_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_b_Subscriber_Address_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowerLayerCompatibility_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberArg); +dissect_gsm_map_ms_MSISDN_BS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_ms_MSISDN_BS_List); return offset; } -static const ber_old_sequence_t ProvideSIWFSNumberRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sIWFSNumber_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_map_ProvideSIWFSNumberRes); +dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes); return offset; } -static const ber_old_sequence_t SIWFSSignallingModifyArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chosenChannel_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ms_ModificationInstruction_vals[] = { + { 0, "deactivate" }, + { 1, "activate" }, + { 0, NULL } }; + static int -dissect_gsm_map_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyArg); +dissect_gsm_map_ms_ModificationInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t SIWFSSignallingModifyRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_channelType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_map_SIWFSSignallingModifyRes); +dissect_gsm_map_ms_ModificationRequestFor_CF_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CF_Info); return offset; } -static const value_string gsm_map_ReportingState_vals[] = { - { 0, "stopMonitoring" }, - { 1, "startMonitoring" }, - { 0, NULL } +static const ber_sequence_t 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_ReportingState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_ModificationRequestFor_CB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CB_Info); return offset; } -static int dissect_ccbs_Monitoring(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReportingState(FALSE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Monitoring); -} -static const ber_old_sequence_t SetReportingStateArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_imsi }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_lmsi }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_ccbs_Monitoring }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SetReportingStateArg_sequence, hf_index, ett_gsm_map_SetReportingStateArg); +dissect_gsm_map_ms_ModificationRequestFor_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_CSI); return offset; } -static const value_string gsm_map_CCBS_SubscriberStatus_vals[] = { - { 0, "ccbsNotIdle" }, - { 1, "ccbsIdle" }, - { 2, "ccbsNotReachable" }, - { 0, NULL } +static const ber_sequence_t 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_CCBS_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_ModificationRequestFor_ODB_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_ODB_data); return offset; } -static int dissect_ccbs_SubscriberStatus_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_SubscriberStatus(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_SubscriberStatus); -} -static const ber_old_sequence_t SetReportingStateRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SetReportingStateRes_sequence, hf_index, ett_gsm_map_SetReportingStateRes); +dissect_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ModificationRequestFor_IP_SM_GW_Data_sequence, hf_index, ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data); return offset; } -static const ber_old_sequence_t EventReportData_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_SubscriberStatus_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_EventReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - EventReportData_sequence, hf_index, ett_gsm_map_EventReportData); +dissect_gsm_map_ms_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationArg); return offset; } -static int dissect_eventReportData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_EventReportData(TRUE, tvb, offset, actx, tree, hf_gsm_map_eventReportData); -} -static const value_string gsm_map_MonitoringMode_vals[] = { - { 0, "a-side" }, - { 1, "b-side" }, - { 0, NULL } +static const ber_sequence_t 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_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_Ext_ForwardingInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE); return offset; } -static int dissect_monitoringMode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MonitoringMode(TRUE, tvb, offset, actx, tree, hf_gsm_map_monitoringMode); -} -static const value_string gsm_map_CallOutcome_vals[] = { - { 0, "success" }, - { 1, "failure" }, - { 2, "busy" }, - { 0, NULL } +static const ber_sequence_t 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_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_Ext_CallBarringInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE); return offset; } -static int dissect_callOutcome_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallOutcome(TRUE, tvb, offset, actx, tree, hf_gsm_map_callOutcome); -} -static const ber_old_sequence_t CallReportData_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitoringMode_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOutcome_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ms_Ext_SS_InfoFor_CSE_vals[] = { + { 0, "forwardingInfoFor-CSE" }, + { 1, "callBarringInfoFor-CSE" }, + { 0, NULL } +}; + +static const ber_choice_t 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_CallReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CallReportData_sequence, hf_index, ett_gsm_map_CallReportData); +dissect_gsm_map_ms_Ext_SS_InfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_ms_Ext_SS_InfoFor_CSE, + NULL); return offset; } -static int dissect_callReportdata_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallReportData(TRUE, tvb, offset, actx, tree, hf_gsm_map_callReportdata); -} -static const ber_old_sequence_t StatusReportArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventReportData_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReportdata_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - StatusReportArg_sequence, hf_index, ett_gsm_map_StatusReportArg); +dissect_gsm_map_ms_AnyTimeModificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_ms_AnyTimeModificationRes); return offset; } -static const ber_old_sequence_t StatusReportRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - StatusReportRes_sequence, hf_index, ett_gsm_map_StatusReportRes); +dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedArg); return offset; } -static const value_string gsm_map_Ruf_Outcome_vals[] = { - { 0, "accepted" }, - { 1, "rejected" }, - { 2, "noResponseFromFreeMS" }, - { 3, "noResponseFromBusyMS" }, - { 4, "udubFromFreeMS" }, - { 5, "udubFromBusyMS" }, - { 0, NULL } +static const ber_sequence_t 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_Ruf_Outcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_ms_NoteSubscriberDataModifiedRes); return offset; } -static int dissect_ruf_Outcome_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ruf_Outcome(TRUE, tvb, offset, actx, tree, hf_gsm_map_ruf_Outcome); -} -static const ber_old_sequence_t IST_AlertArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_IST_AlertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IST_AlertArg_sequence, hf_index, ett_gsm_map_IST_AlertArg); +dissect_gsm_map_ms_NoteMM_EventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoteMM_EventArg_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventArg); return offset; } -static const value_string gsm_map_CallTerminationIndicator_vals[] = { - { 0, "terminateCallActivityReferred" }, - { 1, "terminateAllCallActivities" }, - { 0, NULL } +static const ber_sequence_t 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_CallTerminationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ms_NoteMM_EventRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NoteMM_EventRes_sequence, hf_index, ett_gsm_map_ms_NoteMM_EventRes); return offset; } -static int dissect_callTerminationIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallTerminationIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_callTerminationIndicator); -} -static const ber_old_sequence_t IST_AlertRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istAlertTimer_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_istInformationWithdraw_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callTerminationIndicator_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-CH-DataTypes --- --- --- */ + + static int -dissect_gsm_map_IST_AlertRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IST_AlertRes_sequence, hf_index, ett_gsm_map_IST_AlertRes); +dissect_gsm_map_ch_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static const ber_old_sequence_t IST_CommandArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; static int -dissect_gsm_map_IST_CommandArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IST_CommandArg_sequence, hf_index, ett_gsm_map_IST_CommandArg); +dissect_gsm_map_ch_CUG_CheckInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CUG_CheckInfo_sequence, hf_index, ett_gsm_map_ch_CUG_CheckInfo); return offset; } -static const ber_old_sequence_t IST_CommandRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_IST_CommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IST_CommandRes_sequence, hf_index, ett_gsm_map_IST_CommandRes); +dissect_gsm_map_ch_NumberOfForwarding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t ReleaseResourcesArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_msrn }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ch_InterrogationType_vals[] = { + { 0, "basicCall" }, + { 1, "forwarding" }, + { 0, NULL } }; + static int -dissect_gsm_map_ReleaseResourcesArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ReleaseResourcesArg); +dissect_gsm_map_ch_InterrogationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t ReleaseResourcesRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ReleaseResourcesRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ReleaseResourcesRes); +dissect_gsm_map_ch_OR_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } @@ -11093,1526 +10994,1302 @@ dissect_gsm_map_ReleaseResourcesRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_ static int -dissect_gsm_map_CCBS_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ch_CallReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ccbs_Index_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_Index(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Index); -} -static const ber_old_sequence_t CCBS_Feature_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberSubaddress_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicServiceGroup_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ch_ForwardingReason_vals[] = { + { 0, "notReachable" }, + { 1, "busy" }, + { 2, "noReply" }, + { 0, NULL } }; -int -dissect_gsm_map_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CCBS_Feature_sequence, hf_index, ett_gsm_map_CCBS_Feature); + +static int +dissect_gsm_map_ch_ForwardingReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ccbs_Feature(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_Feature(FALSE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Feature); -} -static int dissect_ccbs_Feature_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_Feature(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Feature); -} -static int dissect_CCBS_FeatureList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_Feature(FALSE, tvb, offset, actx, tree, hf_gsm_map_CCBS_FeatureList_item); -} -static const ber_old_sequence_t RemoteUserFreeArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callInfo_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_translatedB_Number_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_replaceB_Number_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_RemoteUserFreeArg); +dissect_gsm_map_ch_CamelInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CamelInfo_sequence, hf_index, ett_gsm_map_ch_CamelInfo); return offset; } -static const ber_old_sequence_t RemoteUserFreeRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ruf_Outcome_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_RemoteUserFreeRes); +dissect_gsm_map_ch_SuppressionOfAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static const ber_old_sequence_t SS_Data_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_SubscriptionOption }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ext_basicServiceGroupList }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_defaultPriority }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_SS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_Data_sequence, hf_index, ett_gsm_map_SS_Data); +dissect_gsm_map_ch_SupportedCCBS_Phase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ss_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_Data); -} -static const ber_old_sequence_t RegisterSS_Arg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_addr_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_noReplyConditionTime_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { 0, 0, 0, NULL } -}; -int -dissect_gsm_map_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RegisterSS_Arg_sequence, hf_index, ett_gsm_map_RegisterSS_Arg); +static int +dissect_gsm_map_ch_CallDiversionTreatmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -const value_string gsm_map_SS_Info_vals[] = { - { 0, "forwardingInfo" }, - { 1, "callBarringInfo" }, - { 3, "ss-Data" }, - { 0, NULL } -}; - -static const ber_old_choice_t SS_Info_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfo_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfo_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ss_Data_impl }, - { 0, 0, 0, 0, NULL } +static const asn_namedbit SuppressMTSS_bits[] = { + { 0, &hf_gsm_map_ch_SuppressMTSS_suppressCUG, -1, -1, "suppressCUG", NULL }, + { 1, &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, -1, -1, "suppressCCBS", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; -int -dissect_gsm_map_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - SS_Info_choice, hf_index, ett_gsm_map_SS_Info, - NULL); +static int +dissect_gsm_map_ch_SuppressMTSS(gboolean implicit_tag _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, + SuppressMTSS_bits, hf_index, ett_gsm_map_ch_SuppressMTSS, + NULL); return offset; } -static const ber_old_sequence_t CCBS_FeatureList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CCBS_FeatureList_item }, +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_CCBS_FeatureList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - CCBS_FeatureList_sequence_of, hf_index, ett_gsm_map_CCBS_FeatureList); +dissect_gsm_map_ch_SendRoutingInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendRoutingInfoArg_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoArg); return offset; } -static int dissect_ccbs_FeatureList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_FeatureList(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_FeatureList); -} -static const ber_old_sequence_t GenericServiceInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Status }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cliRestrictionOption }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumEntitledPriority_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_defaultPriority_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_FeatureList_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrSB_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrUser_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nbrSN_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_GenericServiceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - GenericServiceInfo_sequence, hf_index, ett_gsm_map_GenericServiceInfo); +dissect_gsm_map_ch_ForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardingData_sequence, hf_index, ett_gsm_map_ch_ForwardingData); return offset; } -static int dissect_genericServiceInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GenericServiceInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_genericServiceInfo); -} -const value_string gsm_map_InterrogateSS_Res_vals[] = { - { 0, "ss-Status" }, - { 2, "basicServiceGroupList" }, - { 3, "forwardingFeatureList" }, - { 4, "genericServiceInfo" }, +static const value_string gsm_map_ch_RoutingInfo_vals[] = { + { 0, "roamingNumber" }, + { 1, "forwardingData" }, { 0, NULL } }; -static const ber_old_choice_t InterrogateSS_Res_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Status_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ext_basicServiceGroupList_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_forwardingFeatureList_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_genericServiceInfo_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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 } }; -int -dissect_gsm_map_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - InterrogateSS_Res_choice, hf_index, ett_gsm_map_InterrogateSS_Res, - NULL); +static int +dissect_gsm_map_ch_RoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + RoutingInfo_choice, hf_index, ett_gsm_map_ch_RoutingInfo, + NULL); return offset; } +static const ber_sequence_t 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 } +}; -int -dissect_gsm_map_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 453 "gsmmap.cnf" - /*The structure of the USSD-DataCodingScheme is defined by - * the Cell Broadcast Data Coding Scheme as described in - * TS 3GPP TS 23.038 - * TODO: Should smpp_handle_dcs return encoding type? - like 7bit Alphabet - */ - int CodingScheme_offset = 0; - tvbuff_t *parameter_tvb; - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - - if (!parameter_tvb) - return offset; - smpp_handle_dcs(tree, parameter_tvb, &CodingScheme_offset); - - +static int +dissect_gsm_map_ch_GmscCamelSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + GmscCamelSubscriptionInfo_sequence, hf_index, ett_gsm_map_ch_GmscCamelSubscriptionInfo); return offset; } -static int dissect_ussd_DataCodingScheme(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_USSD_DataCodingScheme(FALSE, tvb, offset, actx, tree, hf_gsm_map_ussd_DataCodingScheme); -} -static int dissect_dataCodingScheme_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_USSD_DataCodingScheme(TRUE, tvb, offset, actx, tree, hf_gsm_map_dataCodingScheme); -} - - - -int -dissect_gsm_map_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 475 "gsmmap.cnf" - - tvbuff_t *parameter_tvb; - int length; - guint8 out_len; - /* XXX - The maximum item label length is 240. Does this really need to be 1024? - * use ep_alloc ? - * TODO: Shouldent this function use USSD-DataCodingScheme to chose decoding method??? - */ - static unsigned char bigbuf[1024]; - - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - if (!parameter_tvb) - return offset; - - length = tvb_length_remaining(parameter_tvb,0); - out_len = gsm_sms_char_7bit_unpack(0, length, sizeof(bigbuf), - tvb_get_ptr(parameter_tvb, 0, length), bigbuf); +static const ber_sequence_t 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 } +}; - bigbuf[out_len] = '\0'; - gsm_sms_char_ascii_decode(bigbuf, bigbuf, out_len); - bigbuf[1023] = '\0'; - proto_tree_add_text(tree, parameter_tvb, 0, length, "USSD String: %s", bigbuf); +static int +dissect_gsm_map_ch_CamelRoutingInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CamelRoutingInfo_sequence, hf_index, ett_gsm_map_ch_CamelRoutingInfo); + return offset; +} +static const value_string gsm_map_ch_ExtendedRoutingInfo_vals[] = { + { 0, "routingInfo" }, + { 1, "camelRoutingInfo" }, + { 0, NULL } +}; +static const ber_choice_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + ExtendedRoutingInfo_choice, hf_index, ett_gsm_map_ch_ExtendedRoutingInfo, + NULL); return offset; } -static int dissect_ussd_String(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_USSD_String(FALSE, tvb, offset, actx, tree, hf_gsm_map_ussd_String); -} -static const ber_old_sequence_t Ussd_Arg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertingPattern }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_Ussd_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ussd_Arg_sequence, hf_index, ett_gsm_map_Ussd_Arg); +static int +dissect_gsm_map_ch_CCBS_Indicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CCBS_Indicators_sequence, hf_index, ett_gsm_map_ch_CCBS_Indicators); return offset; } -static const ber_old_sequence_t Ussd_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_DataCodingScheme }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ussd_String }, - { 0, 0, 0, NULL } +static const asn_namedbit AllowedServices_bits[] = { + { 0, &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, -1, -1, "firstServiceAllowed", NULL }, + { 1, &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, -1, -1, "secondServiceAllowed", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; -int -dissect_gsm_map_Ussd_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ussd_Res_sequence, hf_index, ett_gsm_map_Ussd_Res); +static int +dissect_gsm_map_ch_AllowedServices(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + AllowedServices_bits, hf_index, ett_gsm_map_ch_AllowedServices, + NULL); return offset; } -static const value_string gsm_map_FailureCause_vals[] = { - { 0, "wrongUserResponse" }, - { 1, "wrongNetworkSignature" }, +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_FailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ch_UnavailabilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_failureCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_FailureCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_failureCause); -} +static const ber_sequence_t 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_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index); +dissect_gsm_map_ch_SendRoutingInfoRes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendRoutingInfoRes_U_sequence, hf_index, ett_gsm_map_ch_SendRoutingInfoRes_U); return offset; } -static int dissect_re_attempt(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BOOLEAN(FALSE, tvb, offset, actx, tree, hf_gsm_map_re_attempt); -} -static int dissect_sm_RP_PRI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_BOOLEAN(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_PRI); -} -static const value_string gsm_map_AccessType_vals[] = { - { 0, "call" }, - { 1, "emergencyCall" }, - { 2, "locationUpdating" }, - { 3, "supplementaryService" }, - { 4, "shortMessage" }, - { 5, "gprsAttach" }, - { 6, "routingAreaUpdating" }, - { 7, "serviceRequest" }, - { 8, "pdpContextActivation" }, - { 9, "pdpContextDeactivation" }, - { 10, "gprsDetach" }, - { 0, NULL } -}; - static int -dissect_gsm_map_AccessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ch_SendRoutingInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, + hf_index, BER_CLASS_CON, 3, TRUE, dissect_gsm_map_ch_SendRoutingInfoRes_U); return offset; } -static int dissect_accessType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AccessType(FALSE, tvb, offset, actx, tree, hf_gsm_map_accessType); -} -static const ber_old_sequence_t AuthenticationFailureReportArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_failureCause }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_re_attempt }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_accessType }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_rand }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_Number_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_AuthenticationFailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AuthenticationFailureReportArg_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportArg); +dissect_gsm_map_ch_ProvideRoamingNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideRoamingNumberArg_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberArg); return offset; } -static const ber_old_sequence_t AuthenticationFailureReportRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_AuthenticationFailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AuthenticationFailureReportRes_sequence, hf_index, ett_gsm_map_AuthenticationFailureReportRes); +dissect_gsm_map_ch_ProvideRoamingNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideRoamingNumberRes_sequence, hf_index, ett_gsm_map_ch_ProvideRoamingNumberRes); return offset; } -int -dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, - actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ch_UUIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -const value_string gsm_map_GetPasswordArg_vals[] = { - { 0, "enterPW" }, - { 1, "enterNewPW" }, - { 2, "enterNewPW-Again" }, - { 0, NULL } -}; - -int -dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_map_ch_UUI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } +static const ber_sequence_t 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_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, - actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ch_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UU_Data_sequence, hf_index, ett_gsm_map_ch_UU_Data); return offset; } -static const asn_namedbit ServiceIndicator_bits[] = { - { 0, &hf_gsm_map_ServiceIndicator_clir_invoked, -1, -1, "clir-invoked", NULL }, - { 1, &hf_gsm_map_ServiceIndicator_camel_invoked, -1, -1, "camel-invoked", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ServiceIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - ServiceIndicator_bits, hf_index, ett_gsm_map_ServiceIndicator, - NULL); +dissect_gsm_map_ch_ResumeCallHandlingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ResumeCallHandlingArg_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingArg); return offset; } -static int dissect_serviceIndicator(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceIndicator(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceIndicator); -} -static const ber_old_sequence_t CCBS_Data_sequence[] = { - { BER_CLASS_CON, 0, 0, dissect_ccbs_Feature }, - { BER_CLASS_CON, 1, 0, dissect_translatedB_Number }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_serviceIndicator }, - { BER_CLASS_CON, 3, 0, dissect_callInfo }, - { BER_CLASS_CON, 4, 0, dissect_networkSignalInfo }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CCBS_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CCBS_Data_sequence, hf_index, ett_gsm_map_CCBS_Data); +dissect_gsm_map_ch_ResumeCallHandlingRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ResumeCallHandlingRes_sequence, hf_index, ett_gsm_map_ch_ResumeCallHandlingRes); return offset; } -static int dissect_ccbs_Data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_Data(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_Data); -} -static const ber_old_sequence_t RegisterCC_EntryArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Data_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ch_ReportingState_vals[] = { + { 0, "stopMonitoring" }, + { 1, "startMonitoring" }, + { 0, NULL } }; + static int -dissect_gsm_map_RegisterCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RegisterCC_EntryArg_sequence, hf_index, ett_gsm_map_RegisterCC_EntryArg); +dissect_gsm_map_ch_ReportingState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t RegisterCC_EntryRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Feature_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RegisterCC_EntryRes_sequence, hf_index, ett_gsm_map_RegisterCC_EntryRes); +static int +dissect_gsm_map_ch_SetReportingStateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SetReportingStateArg_sequence, hf_index, ett_gsm_map_ch_SetReportingStateArg); return offset; } -static const ber_old_sequence_t EraseCC_EntryArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ccbs_Index_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_ch_CCBS_SubscriberStatus_vals[] = { + { 0, "ccbsNotIdle" }, + { 1, "ccbsIdle" }, + { 2, "ccbsNotReachable" }, + { 0, NULL } }; -int -dissect_gsm_map_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - EraseCC_EntryArg_sequence, hf_index, ett_gsm_map_EraseCC_EntryArg); + +static int +dissect_gsm_map_ch_CCBS_SubscriberStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t EraseCC_EntryRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - EraseCC_EntryRes_sequence, hf_index, ett_gsm_map_EraseCC_EntryRes); +static int +dissect_gsm_map_ch_SetReportingStateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SetReportingStateRes_sequence, hf_index, ett_gsm_map_ch_SetReportingStateRes); return offset; } +static const ber_sequence_t 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_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 198 "gsmmap.cnf" - - tvbuff_t *parameter_tvb; - char *digit_str; - - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - ¶meter_tvb); - - - if (!parameter_tvb) - return offset; - - proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); - proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); - - digit_str = unpack_digits(parameter_tvb, 1); - - proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str); - actx->pinfo->p2p_dir = P2P_DIR_SENT; - - +dissect_gsm_map_ch_EventReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + EventReportData_sequence, hf_index, ett_gsm_map_ch_EventReportData); return offset; } -static int dissect_serviceCentreAddress(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceCentreAddress(FALSE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddress); -} -static int dissect_serviceCentreAddress_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddress); -} -static int dissect_serviceCentreAddressOA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddressOA); -} -static int dissect_serviceCentreAddressDA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ServiceCentreAddress(TRUE, tvb, offset, actx, tree, hf_gsm_map_serviceCentreAddressDA); -} +static const value_string gsm_map_ch_MonitoringMode_vals[] = { + { 0, "a-side" }, + { 1, "b-side" }, + { 0, NULL } +}; + static int -dissect_gsm_map_SM_RP_MTI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_ch_MonitoringMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_sm_RP_MTI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SM_RP_MTI(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_MTI); -} +static const value_string gsm_map_ch_CallOutcome_vals[] = { + { 0, "success" }, + { 1, "failure" }, + { 2, "busy" }, + { 0, NULL } +}; + static int -dissect_gsm_map_SM_RP_SMEA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_ch_CallOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_sm_RP_SMEA_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SM_RP_SMEA(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_SMEA); -} -static const ber_old_sequence_t RoutingInfoForSMArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sm_RP_PRI_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddress_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_MTI_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_SMEA_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_RoutingInfoForSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RoutingInfoForSMArg_sequence, hf_index, ett_gsm_map_RoutingInfoForSMArg); +dissect_gsm_map_ch_CallReportData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CallReportData_sequence, hf_index, ett_gsm_map_ch_CallReportData); return offset; } -static const value_string gsm_map_Additional_Number_vals[] = { - { 0, "msc-Number" }, - { 1, "sgsn-Number" }, - { 0, NULL } -}; - -static const ber_old_choice_t Additional_Number_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_msc_Number_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t 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_Additional_Number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Additional_Number_choice, hf_index, ett_gsm_map_Additional_Number, - NULL); +dissect_gsm_map_ch_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + StatusReportArg_sequence, hf_index, ett_gsm_map_ch_StatusReportArg); return offset; } -static int dissect_additional_Number_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Additional_Number(TRUE, tvb, offset, actx, tree, hf_gsm_map_additional_Number); -} -static const ber_old_sequence_t LocationInfoWithLMSI_sequence[] = { - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_networkNode_Number_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_lmsi }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_additional_Number_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_LocationInfoWithLMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LocationInfoWithLMSI_sequence, hf_index, ett_gsm_map_LocationInfoWithLMSI); +dissect_gsm_map_ch_StatusReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + StatusReportRes_sequence, hf_index, ett_gsm_map_ch_StatusReportRes); return offset; } -static int dissect_locationInfoWithLMSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationInfoWithLMSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationInfoWithLMSI); -} -static const ber_old_sequence_t RoutingInfoForSM_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationInfoWithLMSI_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_RoutingInfoForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RoutingInfoForSM_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForSM_Res); +dissect_gsm_map_ch_RemoteUserFreeArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RemoteUserFreeArg_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeArg); return offset; } -static const value_string gsm_map_Sm_RP_DA_vals[] = { - { 0, "imsi" }, - { 1, "lmsi" }, - { 4, "serviceCentreAddressDA" }, - { 5, "noSM-RP-DA" }, +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 const ber_old_choice_t Sm_RP_DA_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lmsi_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressDA_impl }, - { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_DA_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_Sm_RP_DA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Sm_RP_DA_choice, hf_index, ett_gsm_map_Sm_RP_DA, - NULL); +dissect_gsm_map_ch_RUF_Outcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_sm_RP_DA(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Sm_RP_DA(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_DA); -} -static const value_string gsm_map_Sm_RP_OA_vals[] = { - { 2, "msisdn" }, - { 4, "serviceCentreAddressOA" }, - { 5, "noSM-RP-OA" }, - { 0, NULL } -}; - -static const ber_old_choice_t Sm_RP_OA_choice[] = { - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceCentreAddressOA_impl }, - { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_noSM_RP_OA_impl }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t 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_Sm_RP_OA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Sm_RP_OA_choice, hf_index, ett_gsm_map_Sm_RP_OA, - NULL); +dissect_gsm_map_ch_RemoteUserFreeRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RemoteUserFreeRes_sequence, hf_index, ett_gsm_map_ch_RemoteUserFreeRes); return offset; } -static int dissect_sm_RP_OA(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Sm_RP_OA(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_OA); -} +static const ber_sequence_t 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_Sm_RP_UI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 157 "gsmmap.cnf" +dissect_gsm_map_ch_IST_AlertArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IST_AlertArg_sequence, hf_index, ett_gsm_map_ch_IST_AlertArg); - tvbuff_t *tpdu_tvb; - - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - &tpdu_tvb); + return offset; +} - /* - * dissect the embedded TPDU message - */ - if (!tpdu_tvb) - return offset; +static const value_string gsm_map_ch_CallTerminationIndicator_vals[] = { + { 0, "terminateCallActivityReferred" }, + { 1, "terminateAllCallActivities" }, + { 0, NULL } +}; - dissector_try_port(sms_dissector_table, 0, tpdu_tvb, actx->pinfo, top_tree); +static int +dissect_gsm_map_ch_CallTerminationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_sm_RP_UI(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Sm_RP_UI(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_UI); -} -static int dissect_sm_RP_UI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Sm_RP_UI(TRUE, tvb, offset, actx, tree, hf_gsm_map_sm_RP_UI); -} -static const ber_old_sequence_t Mo_forwardSM_Arg_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_Mo_forwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Mo_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Arg); +dissect_gsm_map_ch_IST_AlertRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IST_AlertRes_sequence, hf_index, ett_gsm_map_ch_IST_AlertRes); return offset; } -static const ber_old_sequence_t Mo_forwardSM_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_Mo_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Mo_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mo_forwardSM_Res); +dissect_gsm_map_ch_IST_CommandArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IST_CommandArg_sequence, hf_index, ett_gsm_map_ch_IST_CommandArg); return offset; } -static const ber_old_sequence_t Mt_forwardSM_Arg_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_Mt_forwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Mt_forwardSM_Arg_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Arg); +dissect_gsm_map_ch_IST_CommandRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + IST_CommandRes_sequence, hf_index, ett_gsm_map_ch_IST_CommandRes); return offset; } -static const ber_old_sequence_t Mt_forwardSM_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_Mt_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Mt_forwardSM_Res_sequence, hf_index, ett_gsm_map_Mt_forwardSM_Res); +dissect_gsm_map_ch_ReleaseResourcesArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReleaseResourcesArg_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesArg); return offset; } -static const ber_old_sequence_t ForwardSM_Arg_sequence[] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardSM_Arg_sequence, hf_index, ett_gsm_map_ForwardSM_Arg); +dissect_gsm_map_ch_ReleaseResourcesRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReleaseResourcesRes_sequence, hf_index, ett_gsm_map_ch_ReleaseResourcesRes); return offset; } -static const value_string gsm_map_Sm_DeliveryOutcome_vals[] = { - { 0, "memoryCapacityExceeded" }, - { 1, "absentSubscriber" }, - { 2, "successfulTransfer" }, - { 0, NULL } -}; +/* --- Module MAP-LCS-DataTypes --- --- --- */ +static const ber_sequence_t 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_Sm_DeliveryOutcome(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Arg); return offset; } -static int dissect_sm_DeliveryOutcome(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Sm_DeliveryOutcome(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_DeliveryOutcome); -} -static int dissect_additionalSM_DeliveryOutcome_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Sm_DeliveryOutcome(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalSM_DeliveryOutcome); -} static int -dissect_gsm_map_AbsentSubscriberDiagnosticSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_lcs_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_absentSubscriberDiagnosticSM(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AbsentSubscriberDiagnosticSM(FALSE, tvb, offset, actx, tree, hf_gsm_map_absentSubscriberDiagnosticSM); -} -static int dissect_absentSubscriberDiagnosticSM_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, actx, tree, hf_gsm_map_absentSubscriberDiagnosticSM); -} -static int dissect_additionalAbsentSubscriberDiagnosticSM_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalAbsentSubscriberDiagnosticSM); -} -static int dissect_mobileNotReachableReason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AbsentSubscriberDiagnosticSM(TRUE, tvb, offset, actx, tree, hf_gsm_map_mobileNotReachableReason); + + +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gsm_map_lcs_LCSLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSLocationInfo_sequence, hf_index, ett_gsm_map_lcs_LCSLocationInfo); + + return offset; } -static const ber_old_sequence_t ReportSM_DeliveryStatusArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_DeliveryOutcome }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberDiagnosticSM_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsSupportIndicator_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deliveryOutcomeIndicator_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSM_DeliveryOutcome_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_GSN_Address }, + { &hf_gsm_map_lcs_h_gmlc_Address, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, + { &hf_gsm_map_lcs_ppr_Address, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, + { &hf_gsm_map_lcs_additional_v_gmlc_Address, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GSN_Address }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_ReportSM_DeliveryStatusArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReportSM_DeliveryStatusArg_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusArg); +dissect_gsm_map_lcs_RoutingInfoForLCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_lcs_RoutingInfoForLCS_Res); return offset; } -static const ber_old_sequence_t ReportSM_DeliveryStatusRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static 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_ReportSM_DeliveryStatusRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReportSM_DeliveryStatusRes_sequence, hf_index, ett_gsm_map_ReportSM_DeliveryStatusRes); +dissect_gsm_map_lcs_LocationEstimateType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const asn_namedbit MW_Status_bits[] = { - { 0, &hf_gsm_map_MW_Status_sc_AddressNotIncluded, -1, -1, "sc-AddressNotIncluded", NULL }, - { 1, &hf_gsm_map_MW_Status_mnrf_Set, -1, -1, "mnrf-Set", NULL }, - { 2, &hf_gsm_map_MW_Status_mcef_Set, -1, -1, "mcef-Set", NULL }, - { 3, &hf_gsm_map_MW_Status_mnrg_Set, -1, -1, "mnrg-Set", NULL }, +static const asn_namedbit DeferredLocationEventType_bits[] = { + { 0, &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL }, + { 1, &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL }, + { 2, &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL }, + { 3, &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL }, + { 4, &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL }, { 0, NULL, 0, 0, NULL, NULL } }; -static int -dissect_gsm_map_MW_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +int +dissect_gsm_map_lcs_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - MW_Status_bits, hf_index, ett_gsm_map_MW_Status, + DeferredLocationEventType_bits, hf_index, ett_gsm_map_lcs_DeferredLocationEventType, NULL); return offset; } -static int dissect_mw_Status(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MW_Status(FALSE, tvb, offset, actx, tree, hf_gsm_map_mw_Status); + + +static const ber_sequence_t 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(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationType_sequence, hf_index, ett_gsm_map_lcs_LocationType); + + return offset; } -static const ber_old_sequence_t InformServiceCentreArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_storedMSISDN }, - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mw_Status }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_lcs_LCSClientType_vals[] = { + { 0, "emergencyServices" }, + { 1, "valueAddedServices" }, + { 2, "plmnOperatorServices" }, + { 3, "lawfulInterceptServices" }, + { 0, NULL } }; + static int -dissect_gsm_map_InformServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - InformServiceCentreArg_sequence, hf_index, ett_gsm_map_InformServiceCentreArg); +dissect_gsm_map_lcs_LCSClientType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t AlertServiceCentreArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_serviceCentreAddress }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_AlertServiceCentreArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AlertServiceCentreArg_sequence, hf_index, ett_gsm_map_AlertServiceCentreArg); +dissect_gsm_map_lcs_NameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static const value_string gsm_map_AlertReason_vals[] = { - { 0, "ms-Present" }, - { 1, "memoryAvailable" }, +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_AlertReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_lcs_LCS_FormatIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_alertReason(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AlertReason(FALSE, tvb, offset, actx, tree, hf_gsm_map_alertReason); -} -static const ber_old_sequence_t ReadyForSM_Arg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_alertReason }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alertReasonIndicator }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_ReadyForSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReadyForSM_Arg_sequence, hf_index, ett_gsm_map_ReadyForSM_Arg); +int +dissect_gsm_map_lcs_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSClientName_sequence, hf_index, ett_gsm_map_lcs_LCSClientName); return offset; } -static const ber_old_sequence_t ReadyForSM_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ReadyForSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReadyForSM_Res_sequence, hf_index, ett_gsm_map_ReadyForSM_Res); +dissect_gsm_map_lcs_RequestorIDString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static const ber_old_sequence_t Mt_ForwardSM_VGCS_Arg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_Mt_ForwardSM_VGCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Mt_ForwardSM_VGCS_Arg_sequence, hf_index, ett_gsm_map_Mt_ForwardSM_VGCS_Arg); +int +dissect_gsm_map_lcs_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSRequestorID_sequence, hf_index, ett_gsm_map_lcs_LCSRequestorID); return offset; } -static const ber_old_sequence_t DispatcherList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DispatcherList_item }, +static const ber_sequence_t 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 } }; static int -dissect_gsm_map_DispatcherList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - DispatcherList_sequence_of, hf_index, ett_gsm_map_DispatcherList); +dissect_gsm_map_lcs_LCS_ClientID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_ClientID_sequence, hf_index, ett_gsm_map_lcs_LCS_ClientID); return offset; } -static int dissect_dispatcherList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DispatcherList(TRUE, tvb, offset, actx, tree, hf_gsm_map_dispatcherList); -} -static const ber_old_sequence_t Mt_ForwardSM_VGCS_Res_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_UI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dispatcherList_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ongoingCall }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_Mt_ForwardSM_VGCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Mt_ForwardSM_VGCS_Res_sequence, hf_index, ett_gsm_map_Mt_ForwardSM_VGCS_Res); +dissect_gsm_map_lcs_LCS_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const value_string gsm_map_DomainType_vals[] = { - { 0, "cs-Domain" }, - { 1, "ps-Domain" }, - { 0, NULL } -}; - static int -dissect_gsm_map_DomainType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_lcs_Horizontal_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_requestedDomain_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DomainType(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedDomain); -} -static const ber_old_sequence_t RequestedInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_flg_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscriberState_flg_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocation_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedDomain_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_flg_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_classmark_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mnpRequestedInfo_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RequestedInfo_sequence, hf_index, ett_gsm_map_RequestedInfo); +dissect_gsm_map_lcs_Vertical_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_requestedInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestedInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedInfo); -} -static const ber_old_sequence_t ProvideSubscriberInfoArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_lcs_ResponseTimeCategory_vals[] = { + { 0, "lowdelay" }, + { 1, "delaytolerant" }, + { 0, NULL } }; + static int -dissect_gsm_map_ProvideSubscriberInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideSubscriberInfoArg_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoArg); +dissect_gsm_map_lcs_ResponseTimeCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t ProvideSubscriberInfoRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ProvideSubscriberInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideSubscriberInfoRes_sequence, hf_index, ett_gsm_map_ProvideSubscriberInfoRes); +dissect_gsm_map_lcs_ResponseTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ResponseTime_sequence, hf_index, ett_gsm_map_lcs_ResponseTime); return offset; } -static const ber_old_sequence_t AnyTimeInterrogationArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInfo_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_AnyTimeInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AnyTimeInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationArg); +int +dissect_gsm_map_lcs_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_QoS_sequence, hf_index, ett_gsm_map_lcs_LCS_QoS); return offset; } -static const ber_old_sequence_t AnyTimeInterrogationRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subscriberInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const asn_namedbit SupportedGADShapes_bits[] = { + { 0, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL }, + { 1, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL }, + { 2, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL }, + { 3, &hf_gsm_map_lcs_SupportedGADShapes_polygon, -1, -1, "polygon", NULL }, + { 4, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL }, + { 5, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL }, + { 6, &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; -static int -dissect_gsm_map_AnyTimeInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AnyTimeInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeInterrogationRes); +int +dissect_gsm_map_lcs_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, + SupportedGADShapes_bits, hf_index, ett_gsm_map_lcs_SupportedGADShapes, + NULL); return offset; } -static const ber_old_sequence_t SS_ForBS_Code_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ss_Code }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { 0, 0, 0, NULL } -}; int -dissect_gsm_map_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_ForBS_Code_sequence, hf_index, ett_gsm_map_SS_ForBS_Code); +dissect_gsm_map_lcs_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_requestedSS_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_ForBS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedSS_Info); -} -static const value_string gsm_map_RequestedCAMEL_SubscriptionInfo_vals[] = { - { 0, "o-CSI" }, - { 1, "t-CSI" }, - { 2, "vt-CSI" }, - { 3, "tif-CSI" }, - { 4, "gprs-CSI" }, - { 5, "mo-sms-CSI" }, - { 6, "ss-CSI" }, - { 7, "m-CSI" }, - { 8, "d-csi" }, - { 0, NULL } -}; - static int -dissect_gsm_map_RequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_lcs_LCSCodewordString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_ss_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static int dissect_requestedCAMEL_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedCAMEL_SubscriptionInfo); -} -static int dissect_requestedCamel_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedCamel_SubscriptionInfo); -} -static const value_string gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals[] = { - { 0, "mt-sms-CSI" }, - { 1, "mg-csi" }, - { 2, "o-IM-CSI" }, - { 3, "d-IM-CSI" }, - { 4, "vt-IM-CSI" }, - { 0, NULL } +static const ber_sequence_t 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 } }; - -static int -dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +int +dissect_gsm_map_lcs_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSCodeword_sequence, hf_index, ett_gsm_map_lcs_LCSCodeword); return offset; } -static int dissect_additionalRequestedCAMEL_SubscriptionInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo); -} -static int dissect_additionalRequestedCAMEL_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo); -} -static const ber_old_sequence_t RequestedSubscriptionInfo_sequence[] = { - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedSS_Info_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestedCAMEL_SubscriptionInfo_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_flg_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_flg_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRequestedCAMEL_SubscriptionInfo_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_BS_List_flag_impl }, - { 0, 0, 0, NULL } +static 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_RequestedSubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RequestedSubscriptionInfo_sequence, hf_index, ett_gsm_map_RequestedSubscriptionInfo); +dissect_gsm_map_lcs_PrivacyCheckRelatedAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_requestedSubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestedSubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestedSubscriptionInfo); -} -static const ber_old_sequence_t AnyTimeSubscriptionInterrogationArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedSubscriptionInfo_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_AnyTimeSubscriptionInterrogationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AnyTimeSubscriptionInterrogationArg_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationArg); +dissect_gsm_map_lcs_LCS_PrivacyCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_lcs_LCS_PrivacyCheck); return offset; } -static const ber_old_sequence_t CallForwardingData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_forwardingFeatureList }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static 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_CallForwardingData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CallForwardingData_sequence, hf_index, ett_gsm_map_CallForwardingData); +dissect_gsm_map_lcs_AreaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_callForwardingData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallForwardingData(TRUE, tvb, offset, actx, tree, hf_gsm_map_callForwardingData); -} static int -dissect_gsm_map_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, - actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_lcs_AreaIdentification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_password(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Password(FALSE, tvb, offset, actx, tree, hf_gsm_map_password); -} -static int dissect_password_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Password(TRUE, tvb, offset, actx, tree, hf_gsm_map_password); -} +static const ber_sequence_t 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_WrongPasswordAttemptsCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_lcs_Area(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Area_sequence, hf_index, ett_gsm_map_lcs_Area); return offset; } -static int dissect_wrongPasswordAttemptsCounter(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_WrongPasswordAttemptsCounter(FALSE, tvb, offset, actx, tree, hf_gsm_map_wrongPasswordAttemptsCounter); -} -static int dissect_wrongPasswordAttemptsCounter_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_WrongPasswordAttemptsCounter(TRUE, tvb, offset, actx, tree, hf_gsm_map_wrongPasswordAttemptsCounter); -} -static const ber_old_sequence_t CallBarringData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ext_callBarringFeatureList }, - { BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_password }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_wrongPasswordAttemptsCounter }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_CallBarringData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CallBarringData_sequence, hf_index, ett_gsm_map_CallBarringData); +dissect_gsm_map_lcs_AreaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + AreaList_sequence_of, hf_index, ett_gsm_map_lcs_AreaList); return offset; } -static int dissect_callBarringData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallBarringData(TRUE, tvb, offset, actx, tree, hf_gsm_map_callBarringData); -} -static const ber_old_sequence_t ODB_Info_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_odb_Data }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notificationToCSE }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ODB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ODB_Info_sequence, hf_index, ett_gsm_map_ODB_Info); +dissect_gsm_map_lcs_AreaDefinition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AreaDefinition_sequence, hf_index, ett_gsm_map_lcs_AreaDefinition); return offset; } -static int dissect_odb_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ODB_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_odb_Info); -} -static const ber_old_sequence_t CAMEL_SubscriptionInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_CSI_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_BcsmCamelTDP_CriteriaList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_CSI_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_CSI_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_t_BCSM_CAMEL_TDP_CriteriaList_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_CSI_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_BCSM_CAMEL_TDP_CriteriaList_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tif_CSI_NotificationToCSE_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprs_CSI_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_sms_CSI_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_CSI_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_m_CSI_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_specificCSIDeletedList_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_sms_CSI_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mt_smsCAMELTDP_CriteriaList_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mg_csi_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_CSI_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_o_IM_BcsmCamelTDP_CriteriaList_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_d_IM_CSI_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_CSI_impl }, - { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vt_IM_BCSM_CAMEL_TDP_CriteriaList_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_lcs_OccurrenceInfo_vals[] = { + { 0, "oneTimeEvent" }, + { 1, "multipleTimeEvent" }, + { 0, NULL } }; + static int -dissect_gsm_map_CAMEL_SubscriptionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CAMEL_SubscriptionInfo_sequence, hf_index, ett_gsm_map_CAMEL_SubscriptionInfo); +dissect_gsm_map_lcs_OccurrenceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_camel_SubscriptionInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CAMEL_SubscriptionInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_camel_SubscriptionInfo); -} -static const ber_old_sequence_t MSISDN_BS_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_basicServiceList_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_MSISDN_BS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MSISDN_BS_sequence, hf_index, ett_gsm_map_MSISDN_BS); +dissect_gsm_map_lcs_IntervalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_MSISDN_BS_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSISDN_BS(FALSE, tvb, offset, actx, tree, hf_gsm_map_MSISDN_BS_List_item); -} -static const ber_old_sequence_t MSISDN_BS_List_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_MSISDN_BS_List_item }, +static const ber_sequence_t 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 } }; -static int -dissect_gsm_map_MSISDN_BS_List(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - MSISDN_BS_List_sequence_of, hf_index, ett_gsm_map_MSISDN_BS_List); +int +dissect_gsm_map_lcs_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AreaEventInfo_sequence, hf_index, ett_gsm_map_lcs_AreaEventInfo); return offset; } -static int dissect_msisdn_BS_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_MSISDN_BS_List(TRUE, tvb, offset, actx, tree, hf_gsm_map_msisdn_BS_List); -} -static const ber_old_sequence_t AnyTimeSubscriptionInterrogationRes_sequence[] = { - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwardingData_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringData_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedVLR_CAMEL_Phases_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedSGSN_CAMEL_Phases_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInVLR_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIsInSGSN_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_BS_List_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AnyTimeSubscriptionInterrogationRes_sequence, hf_index, ett_gsm_map_AnyTimeSubscriptionInterrogationRes); +dissect_gsm_map_lcs_ReportingAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const value_string gsm_map_GuidanceInfo_vals[] = { - { 0, "enterPW" }, - { 1, "enterNewPW" }, - { 2, "enterNewPW-Again" }, - { 0, NULL } -}; - static int -dissect_gsm_map_GuidanceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_lcs_ReportingInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); @@ -12620,507 +12297,436 @@ dissect_gsm_map_GuidanceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o } -static const asn_namedbit OfferedCamel4Functionalities_bits[] = { - { 0, &hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL }, - { 1, &hf_gsm_map_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL }, - { 2, &hf_gsm_map_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL }, - { 3, &hf_gsm_map_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL }, - { 4, &hf_gsm_map_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL }, - { 5, &hf_gsm_map_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL }, - { 6, &hf_gsm_map_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL }, - { 7, &hf_gsm_map_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL }, - { 8, &hf_gsm_map_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL }, - { 9, &hf_gsm_map_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL }, - { 10, &hf_gsm_map_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL }, - { 11, &hf_gsm_map_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL }, - { 12, &hf_gsm_map_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL }, - { 13, &hf_gsm_map_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL }, - { 14, &hf_gsm_map_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL }, - { 15, &hf_gsm_map_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL }, - { 16, &hf_gsm_map_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL }, - { 17, &hf_gsm_map_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL }, - { 18, &hf_gsm_map_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL }, - { 19, &hf_gsm_map_OfferedCamel4Functionalities_collectInformation, -1, -1, "collectInformation", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_OfferedCamel4Functionalities, - NULL); +static int +dissect_gsm_map_lcs_PeriodicLDRInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_lcs_PeriodicLDRInfo); return offset; } -static int dissect_offeredCamel4Functionalities(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OfferedCamel4Functionalities(FALSE, tvb, offset, actx, tree, hf_gsm_map_offeredCamel4Functionalities); -} -static const value_string gsm_map_ModificationInstruction_vals[] = { - { 0, "deactivate" }, - { 1, "activate" }, +static const value_string gsm_map_lcs_RAN_Technology_vals[] = { + { 0, "gsm" }, + { 1, "umts" }, { 0, NULL } }; static int -dissect_gsm_map_ModificationInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_lcs_RAN_Technology(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_modifyNotificationToCSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ModificationInstruction(TRUE, tvb, offset, actx, tree, hf_gsm_map_modifyNotificationToCSE); -} -static int dissect_modifyCSI_State_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ModificationInstruction(TRUE, tvb, offset, actx, tree, hf_gsm_map_modifyCSI_State); -} -static const ber_old_sequence_t ModificationRequestFor_CF_Info_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToNumber_addr_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedToSubaddress_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_noReplyConditionTime_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ModificationRequestFor_CF_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ModificationRequestFor_CF_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CF_Info); +dissect_gsm_map_lcs_ReportingPLMN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReportingPLMN_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMN); return offset; } -static int dissect_modificationRequestFor_CF_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ModificationRequestFor_CF_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_CF_Info); -} -static const ber_old_sequence_t ModificationRequestFor_CB_Info_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicService_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_ss_Status_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_password_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wrongPasswordAttemptsCounter_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ModificationRequestFor_CB_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ModificationRequestFor_CB_Info_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CB_Info); +dissect_gsm_map_lcs_PLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + PLMNList_sequence_of, hf_index, ett_gsm_map_lcs_PLMNList); return offset; } -static int dissect_modificationRequestFor_CB_Info_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ModificationRequestFor_CB_Info(TRUE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_CB_Info); -} -static const ber_old_sequence_t ModificationRequestFor_CSI_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedCamel_SubscriptionInfo_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyCSI_State_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_additionalRequestedCAMEL_SubscriptionInfo }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ModificationRequestFor_CSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ModificationRequestFor_CSI_sequence, hf_index, ett_gsm_map_ModificationRequestFor_CSI); +dissect_gsm_map_lcs_ReportingPLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReportingPLMNList_sequence, hf_index, ett_gsm_map_lcs_ReportingPLMNList); return offset; } -static int dissect_modificationRequestFor_CSI_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ModificationRequestFor_CSI(TRUE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_CSI); -} -static const ber_old_sequence_t ModificationRequestFor_ODB_data_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_data_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyNotificationToCSE_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_ModificationRequestFor_ODB_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ModificationRequestFor_ODB_data_sequence, hf_index, ett_gsm_map_ModificationRequestFor_ODB_data); +dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Arg); return offset; } -static int dissect_modificationRequestFor_ODB_data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ModificationRequestFor_ODB_data(FALSE, tvb, offset, actx, tree, hf_gsm_map_modificationRequestFor_ODB_data); -} -static const ber_old_sequence_t AnyTimeModificationArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberIdentity_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsmSCF_Address_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CF_Info_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CB_Info_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modificationRequestFor_CSI_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longFTN_Supported_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_modificationRequestFor_ODB_data }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_AnyTimeModificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AnyTimeModificationArg_sequence, hf_index, ett_gsm_map_AnyTimeModificationArg); +int +dissect_gsm_map_lcs_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t Ext_ForwardingInfoFor_CSE_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_forwardingFeatureList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_Ext_ForwardingInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_ForwardingInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_ForwardingInfoFor_CSE); +int +dissect_gsm_map_lcs_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_forwardingInfoFor_CSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_ForwardingInfoFor_CSE(TRUE, tvb, offset, actx, tree, hf_gsm_map_forwardingInfoFor_CSE); -} -static const ber_old_sequence_t Ext_CallBarringInfoFor_CSE_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ext_callBarringFeatureList_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_password_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wrongPasswordAttemptsCounter_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notificationToCSE_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_Ext_CallBarringInfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ext_CallBarringInfoFor_CSE_sequence, hf_index, ett_gsm_map_Ext_CallBarringInfoFor_CSE); +dissect_gsm_map_lcs_PositioningDataInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_callBarringInfoFor_CSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_CallBarringInfoFor_CSE(TRUE, tvb, offset, actx, tree, hf_gsm_map_callBarringInfoFor_CSE); -} -static const value_string gsm_map_Ext_SS_InfoFor_CSE_vals[] = { - { 0, "forwardingInfoFor-CSE" }, - { 1, "callBarringInfoFor-CSE" }, - { 0, NULL } -}; - -static const ber_old_choice_t Ext_SS_InfoFor_CSE_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_forwardingInfoFor_CSE_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callBarringInfoFor_CSE_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_gsm_map_Ext_SS_InfoFor_CSE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - Ext_SS_InfoFor_CSE_choice, hf_index, ett_gsm_map_Ext_SS_InfoFor_CSE, - NULL); +dissect_gsm_map_lcs_UtranPositioningDataInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_ss_InfoFor_CSE_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_SS_InfoFor_CSE(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_InfoFor_CSE); -} -static const ber_old_sequence_t AnyTimeModificationRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ss_InfoFor_CSE_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_lcs_AccuracyFulfilmentIndicator_vals[] = { + { 0, "requestedAccuracyFulfilled" }, + { 1, "requestedAccuracyNotFulfilled" }, + { 0, NULL } }; + static int -dissect_gsm_map_AnyTimeModificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AnyTimeModificationRes_sequence, hf_index, ett_gsm_map_AnyTimeModificationRes); +dissect_gsm_map_lcs_AccuracyFulfilmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t NoteSubscriberDataModifiedArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_msisdn }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingInfoFor_CSE_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callBarringInfoFor_CSE_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_odb_Info_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SubscriptionInfo_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_allInformationSent }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_NoteSubscriberDataModifiedArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoteSubscriberDataModifiedArg_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedArg); +int +dissect_gsm_map_lcs_VelocityEstimate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t NoteSubscriberDataModifiedRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_NoteSubscriberDataModifiedRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoteSubscriberDataModifiedRes_sequence, hf_index, ett_gsm_map_NoteSubscriberDataModifiedRes); +dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_lcs_ProvideSubscriberLocation_Res); return offset; } -static const ber_old_sequence_t NoteMM_EventArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_serviceKey }, - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventMet_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCAMELPhases_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_locationInformationGPRS }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_offeredCamel4Functionalities }, - { 0, 0, 0, NULL } +static const value_string gsm_map_lcs_LCS_Event_vals[] = { + { 0, "emergencyCallOrigination" }, + { 1, "emergencyCallRelease" }, + { 2, "mo-lr" }, + { 3, "deferredmt-lrResponse" }, + { 4, "deferredmo-lrTTTPInitiation" }, + { 0, NULL } }; + static int -dissect_gsm_map_NoteMM_EventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoteMM_EventArg_sequence, hf_index, ett_gsm_map_NoteMM_EventArg); +dissect_gsm_map_lcs_LCS_Event(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t NoteMM_EventRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static 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_NoteMM_EventRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoteMM_EventRes_sequence, hf_index, ett_gsm_map_NoteMM_EventRes); +dissect_gsm_map_lcs_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t SS_EventSpecification_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_SS_EventSpecification_item }, +static const ber_sequence_t 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_SS_EventSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - SS_EventSpecification_sequence_of, hf_index, ett_gsm_map_SS_EventSpecification); +dissect_gsm_map_lcs_Deferredmt_lrData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Deferredmt_lrData_sequence, hf_index, ett_gsm_map_lcs_Deferredmt_lrData); return offset; } -static int dissect_ss_EventSpecification_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SS_EventSpecification(TRUE, tvb, offset, actx, tree, hf_gsm_map_ss_EventSpecification); -} -static const value_string gsm_map_CCBS_RequestState_vals[] = { - { 0, "request" }, - { 1, "recall" }, - { 2, "active" }, - { 3, "completed" }, - { 4, "suspended" }, - { 5, "frozen" }, - { 6, "deleted" }, - { 0, NULL } -}; - static int -dissect_gsm_map_CCBS_RequestState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_lcs_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_ccbs_RequestState_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CCBS_RequestState(TRUE, tvb, offset, actx, tree, hf_gsm_map_ccbs_RequestState); -} -static const ber_old_sequence_t Ss_InvocationNotificationArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ss_Event_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_EventSpecification_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_b_subscriberNumber_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_RequestState_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_Ss_InvocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ss_InvocationNotificationArg_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationArg); +dissect_gsm_map_lcs_SubscriberLocationReport_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Arg); return offset; } -static const ber_old_sequence_t Ss_InvocationNotificationRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_Ss_InvocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Ss_InvocationNotificationRes_sequence, hf_index, ett_gsm_map_Ss_InvocationNotificationRes); +dissect_gsm_map_lcs_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_lcs_SubscriberLocationReport_Res); return offset; } +/* --- Module MAP-GR-DataTypes --- --- --- */ + + static int -dissect_gsm_map_CODEC_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_gr_CODEC_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_codec_Info(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CODEC_Info(FALSE, tvb, offset, actx, tree, hf_gsm_map_codec_Info); -} static int -dissect_gsm_map_CipheringAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_gr_CipheringAlgorithm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_cipheringAlgorithm(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CipheringAlgorithm(FALSE, tvb, offset, actx, tree, hf_gsm_map_cipheringAlgorithm); -} static int -dissect_gsm_map_GroupKeyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_gr_GroupKeyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_groupKeyNumber_Vk_Id_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GroupKeyNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_groupKeyNumber_Vk_Id); + + + +static int +dissect_gsm_map_gr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); + + return offset; } static int -dissect_gsm_map_VSTK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_gr_VSTK(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_vstk_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VSTK(TRUE, tvb, offset, actx, tree, hf_gsm_map_vstk); -} static int -dissect_gsm_map_VSTK_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_gr_VSTK_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_vstk_rand_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VSTK_RAND(TRUE, tvb, offset, actx, tree, hf_gsm_map_vstk_rand); -} -static const ber_old_sequence_t PrepareGroupCallArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ext_teleservice }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_asciCallReference }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_codec_Info }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_cipheringAlgorithm }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKeyNumber_Vk_Id_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_groupKey_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkFree_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vstk_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vstk_rand_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_PrepareGroupCallArg); +dissect_gsm_map_gr_PrepareGroupCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareGroupCallArg_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallArg); return offset; } -static const ber_old_sequence_t PrepareGroupCallRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupCallNumber }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_PrepareGroupCallRes); +dissect_gsm_map_gr_PrepareGroupCallRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareGroupCallRes_sequence, hf_index, ett_gsm_map_gr_PrepareGroupCallRes); return offset; } -static const value_string gsm_map_TalkerPriority_vals[] = { +static const value_string gsm_map_gr_TalkerPriority_vals[] = { { 0, "normal" }, { 1, "privileged" }, { 2, "emergency" }, @@ -13129,1335 +12735,1306 @@ static const value_string gsm_map_TalkerPriority_vals[] = { static int -dissect_gsm_map_TalkerPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_gr_TalkerPriority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_talkerPriority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TalkerPriority(TRUE, tvb, offset, actx, tree, hf_gsm_map_talkerPriority); -} -static const ber_old_sequence_t SendGroupCallEndSignalArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalArg); +dissect_gsm_map_gr_SendGroupCallEndSignalArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendGroupCallEndSignalArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalArg); return offset; } -static const ber_old_sequence_t SendGroupCallEndSignalRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_SendGroupCallEndSignalRes); +dissect_gsm_map_gr_SendGroupCallEndSignalRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendGroupCallEndSignalRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallEndSignalRes); return offset; } -static const ber_old_sequence_t ProcessGroupCallSignallingArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequest_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseGroupCall_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_emergencyModeResetCommandFlag_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ProcessGroupCallSignallingArg); +dissect_gsm_map_gr_StateAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + StateAttributes_sequence, hf_index, ett_gsm_map_gr_StateAttributes); return offset; } -static const ber_old_sequence_t StateAttributes_sequence[] = { - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_downlinkAttached_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkAttached_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dualCommunication_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callOriginator_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_notificationData, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_StateAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - StateAttributes_sequence, hf_index, ett_gsm_map_StateAttributes); +dissect_gsm_map_gr_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ForwardGroupCallSignallingArg); return offset; } -static int dissect_stateAttributes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_StateAttributes(TRUE, tvb, offset, actx, tree, hf_gsm_map_stateAttributes); -} -static const value_string gsm_map_GroupRequestedInfo_vals[] = { - { 0, "anchorMSC-AddressAndASCI-CallReference" }, - { 1, "imsiAndAdditionalInfoAndAdditionalSubscription" }, - { 0, NULL } +static const ber_sequence_t 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_notificationData, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_SignalInfo }, + { NULL, 0, 0, 0, NULL } }; - static int -dissect_gsm_map_GroupRequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_gr_ProcessGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProcessGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_gr_ProcessGroupCallSignallingArg); return offset; } -static int dissect_groupRequestedInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_GroupRequestedInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_groupRequestedInfo); -} -static const ber_old_sequence_t SendGroupCallInfoArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_groupRequestedInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_groupId }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cellId_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tmsi_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cksn_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_gr_RequestedInfo_vals[] = { + { 0, "anchorMSC-AddressAndASCI-CallReference" }, + { 1, "imsiAndAdditionalInfoAndAdditionalSubscription" }, + { 0, NULL } }; + static int -dissect_gsm_map_SendGroupCallInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_SendGroupCallInfoArg); +dissect_gsm_map_gr_RequestedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t SendGroupCallInfoRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_anchorMSC_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asciCallReference_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalSubscriptions_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_kc_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendGroupCallInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_SendGroupCallInfoRes); +dissect_gsm_map_gr_SendGroupCallInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendGroupCallInfoArg_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoArg); return offset; } -static const ber_old_sequence_t ForwardGroupCallSignallingArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRequestAck_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseIndication_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkRejectCommand_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkSeizedCommand_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uplinkReleaseCommand_impl }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_stateAttributes_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_talkerPriority_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_emergencyModeResetCommandFlag_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sm_RP_UI_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ForwardGroupCallSignallingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardGroupCallSignallingArg_sequence, hf_index, ett_gsm_map_ForwardGroupCallSignallingArg); +dissect_gsm_map_gr_SendGroupCallInfoRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendGroupCallInfoRes_sequence, hf_index, ett_gsm_map_gr_SendGroupCallInfoRes); return offset; } -static const ber_old_sequence_t SGSN_Capability_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_solsaSupportIndicator }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_superChargerSupportedInServingNetworkEntity_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsEnhancementsSupportIndicator_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4CSIs_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_smsCallBarringSupportIndicator_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedRAT_TypesIndicator_impl }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-DialogueInformation --- --- --- */ -static int -dissect_gsm_map_SGSN_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SGSN_Capability_sequence, hf_index, ett_gsm_map_SGSN_Capability); - return offset; -} -static int dissect_sgsn_Capability_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SGSN_Capability(TRUE, tvb, offset, actx, tree, hf_gsm_map_sgsn_Capability); -} - - -static const ber_old_sequence_t UpdateGprsLocationArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_imsi }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Number }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sgsn_Address }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Capability_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_informPreviousNetworkEntity_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ps_LCS_NotSupportedByUE_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_v_gmlc_Address_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_info_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_UpdateGprsLocationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UpdateGprsLocationArg_sequence, hf_index, ett_gsm_map_UpdateGprsLocationArg); +dissect_gsm_map_dialogue_MAP_OpenInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MAP_OpenInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_OpenInfo); return offset; } -static const ber_old_sequence_t UpdateGprsLocationRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_hlr_Number }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_add_Capability }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_UpdateGprsLocationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UpdateGprsLocationRes_sequence, hf_index, ett_gsm_map_UpdateGprsLocationRes); +dissect_gsm_map_dialogue_MAP_AcceptInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MAP_AcceptInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_AcceptInfo); return offset; } -static const ber_old_sequence_t SendRoutingInfoForGprsArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_SendRoutingInfoForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendRoutingInfoForGprsArg_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsArg); +dissect_gsm_map_dialogue_MAP_CloseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MAP_CloseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_CloseInfo); return offset; } -static const ber_old_sequence_t SendRoutingInfoForGprsRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mobileNotReachableReason_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_dialogue_Reason_vals[] = { + { 0, "noReasonGiven" }, + { 1, "invalidDestinationReference" }, + { 2, "invalidOriginatingReference" }, + { 0, NULL } }; + static int -dissect_gsm_map_SendRoutingInfoForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SendRoutingInfoForGprsRes_sequence, hf_index, ett_gsm_map_SendRoutingInfoForGprsRes); +dissect_gsm_map_dialogue_Reason(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t FailureReportArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ggsn_Number_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_FailureReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - FailureReportArg_sequence, hf_index, ett_gsm_map_FailureReportArg); +dissect_gsm_map_dialogue_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static const ber_old_sequence_t FailureReportRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_FailureReportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - FailureReportRes_sequence, hf_index, ett_gsm_map_FailureReportRes); +dissect_gsm_map_dialogue_MAP_RefuseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MAP_RefuseInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_RefuseInfo); return offset; } -static const ber_old_sequence_t NoteMsPresentForGprsArg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_sgsn_Address_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ggsn_Address_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_NoteMsPresentForGprsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoteMsPresentForGprsArg_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsArg); +dissect_gsm_map_dialogue_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static const ber_old_sequence_t NoteMsPresentForGprsRes_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_map_dialogue_ResourceUnavailableReason_vals[] = { + { 0, "shortTermResourceLimitation" }, + { 1, "longTermResourceLimitation" }, + { 0, NULL } }; + static int -dissect_gsm_map_NoteMsPresentForGprsRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoteMsPresentForGprsRes_sequence, hf_index, ett_gsm_map_NoteMsPresentForGprsRes); +dissect_gsm_map_dialogue_ResourceUnavailableReason(gboolean implicit_tag _U_, tvbuff_t *tvb _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_LocationEstimateType_vals[] = { - { 0, "currentLocation" }, - { 1, "currentOrLastKnownLocation" }, - { 2, "initialLocation" }, - { 3, "activateDeferredLocation" }, - { 4, "cancelDeferredLocation" }, - { 5, "notificationVerificationOnly" }, +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_LocationEstimateType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_dialogue_ProcedureCancellationReason(gboolean implicit_tag _U_, tvbuff_t *tvb _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_locationEstimateType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationEstimateType(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationEstimateType); -} -static const asn_namedbit DeferredLocationEventType_bits[] = { - { 0, &hf_gsm_map_DeferredLocationEventType_msAvailable, -1, -1, "msAvailable", NULL }, - { 1, &hf_gsm_map_DeferredLocationEventType_enteringIntoArea, -1, -1, "enteringIntoArea", NULL }, - { 2, &hf_gsm_map_DeferredLocationEventType_leavingFromArea, -1, -1, "leavingFromArea", NULL }, - { 3, &hf_gsm_map_DeferredLocationEventType_beingInsideArea, -1, -1, "beingInsideArea", NULL }, - { 4, &hf_gsm_map_DeferredLocationEventType_periodicLDR, -1, -1, "periodicLDR", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const value_string gsm_map_dialogue_MAP_UserAbortChoice_vals[] = { + { 0, "userSpecificReason" }, + { 1, "userResourceLimitation" }, + { 2, "resourceUnavailable" }, + { 3, "applicationProcedureCancellation" }, + { 0, NULL } }; -int -dissect_gsm_map_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - DeferredLocationEventType_bits, hf_index, ett_gsm_map_DeferredLocationEventType, - NULL); +static const ber_choice_t 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(gboolean implicit_tag _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, + MAP_UserAbortChoice_choice, hf_index, ett_gsm_map_dialogue_MAP_UserAbortChoice, + NULL); return offset; } -static int dissect_deferredLocationEventType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DeferredLocationEventType(FALSE, tvb, offset, actx, tree, hf_gsm_map_deferredLocationEventType); -} -static int dissect_deferredLocationEventType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_DeferredLocationEventType(TRUE, tvb, offset, actx, tree, hf_gsm_map_deferredLocationEventType); -} -static const ber_old_sequence_t LocationType_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_locationEstimateType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredLocationEventType_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_LocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LocationType_sequence, hf_index, ett_gsm_map_LocationType); +static int +dissect_gsm_map_dialogue_MAP_UserAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MAP_UserAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_UserAbortInfo); return offset; } -static int dissect_locationType(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LocationType(FALSE, tvb, offset, actx, tree, hf_gsm_map_locationType); -} -static const value_string gsm_map_LCSClientType_vals[] = { - { 0, "emergencyServices" }, - { 1, "valueAddedServices" }, - { 2, "plmnOperatorServices" }, - { 3, "lawfulInterceptServices" }, +static const value_string gsm_map_dialogue_MAP_ProviderAbortReason_vals[] = { + { 0, "abnormalDialogue" }, + { 1, "invalidPDU" }, { 0, NULL } }; static int -dissect_gsm_map_LCSClientType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_map_dialogue_MAP_ProviderAbortReason(gboolean implicit_tag _U_, tvbuff_t *tvb _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_lcsClientType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSClientType(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientType); -} +static const ber_sequence_t 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_NameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_map_dialogue_MAP_ProviderAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MAP_ProviderAbortInfo_sequence, hf_index, ett_gsm_map_dialogue_MAP_ProviderAbortInfo); return offset; } -static int dissect_nameString_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NameString(TRUE, tvb, offset, actx, tree, hf_gsm_map_nameString); -} -static const value_string gsm_map_LCS_FormatIndicator_vals[] = { - { 0, "logicalName" }, - { 1, "e-mailAddress" }, - { 2, "msisdn" }, - { 3, "url" }, - { 4, "sipUrl" }, +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 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_LCS_FormatIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_map_dialogue_MAP_DialoguePDU(gboolean implicit_tag _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, + MAP_DialoguePDU_choice, hf_index, ett_gsm_map_dialogue_MAP_DialoguePDU, + NULL); return offset; } -static int dissect_lcs_FormatIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_FormatIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_FormatIndicator); + +/*--- PDUs ---*/ + +static void dissect_MAP_DialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); + dissect_gsm_map_dialogue_MAP_DialoguePDU(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_dialogue_MAP_DialoguePDU_PDU); } -static const ber_old_sequence_t LCSClientName_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_nameString_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_FormatIndicator_impl }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-LocationServiceOperations --- --- --- */ -int -dissect_gsm_map_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCSClientName_sequence, hf_index, ett_gsm_map_LCSClientName); - return offset; -} -static int dissect_lcsClientName_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSClientName(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsClientName); -} +/* --- Module MAP-Group-Call-Operations --- --- --- */ +/* --- Module MAP-ShortMessageServiceOperations --- --- --- */ -static int -dissect_gsm_map_RequestorIDString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); - return offset; -} -static int dissect_requestorIDString_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RequestorIDString(TRUE, tvb, offset, actx, tree, hf_gsm_map_requestorIDString); -} +/* --- Module MAP-SupplementaryServiceOperations --- --- --- */ -static const ber_old_sequence_t LCSRequestorID_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestorIDString_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_FormatIndicator_impl }, - { 0, 0, 0, NULL } -}; +/* --- Module MAP-CallHandlingOperations --- --- --- */ -int -dissect_gsm_map_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCSRequestorID_sequence, hf_index, ett_gsm_map_LCSRequestorID); - return offset; -} -static int dissect_lcsRequestorID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSRequestorID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsRequestorID); -} +/* --- Module MAP-OperationAndMaintenanceOperations --- --- --- */ + + +/* --- Module MAP-MobileServiceOperations --- --- --- */ + + +/* --- Module MAP-Protocol --- --- --- */ + + +/* --- Module DummyMAP --- --- --- */ -static const ber_old_sequence_t LCS_ClientID_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lcsClientType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientExternalID_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientDialedByMS_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientInternalID_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsClientName_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsAPN_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsRequestorID_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_LCS_ClientID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCS_ClientID_sequence, hf_index, ett_gsm_map_LCS_ClientID); +dissect_gsm_old_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_lcs_ClientID(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_ClientID(FALSE, tvb, offset, actx, tree, hf_gsm_map_lcs_ClientID); -} -static int dissect_lcs_ClientID_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_ClientID(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_ClientID); -} +static 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" }, + { 28, "performHandover" }, + { 29, "sendEndSignal" }, + { 30, "performSubsequentHandover" }, + { 31, "provideSIWFSNumber" }, + { 32, "sIWFSSignallingModify" }, + { 33, "processAccessSignalling" }, + { 34, "forwardAccessSignalling" }, + { 35, "noteInternalHandover" }, + { 37, "reset" }, + { 38, "forwardCheckSS" }, + { 39, "prepareGroupCall" }, + { 40, "sendGroupCallEndSignal" }, + { 41, "processGroupCallSignalling" }, + { 42, "forwardGroupCallSignalling" }, + { 43, "checkIMEI" }, + { 44, "mt-forwardSM" }, + { 45, "sendRoutingInfoForSM" }, + { 46, "mo-forwardSM" }, + { 47, "reportSM-DeliveryStatus" }, + { 48, "noteSubscriberPresent" }, + { 49, "alertServiceCentreWithoutResult" }, + { 50, "activateTraceMode" }, + { 51, "deactivateTraceMode" }, + { 52, "traceSubscriberActivity" }, + { 54, "beginSubscriberActivity" }, + { 55, "sendIdentification" }, + { 56, "sendAuthenticationInfo" }, + { 57, "restoreData" }, + { 58, "sendIMSI" }, + { 59, "processUnstructuredSS-Request" }, + { 60, "unstructuredSS-Request" }, + { 61, "unstructuredSS-Notify" }, + { 62, "anyTimeSubscriptionInterrogation" }, + { 63, "informServiceCentre" }, + { 64, "alertServiceCentre" }, + { 65, "anyTimeModification" }, + { 66, "readyForSM" }, + { 67, "purgeMS" }, + { 68, "prepareHandover" }, + { 69, "prepareSubsequentHandover" }, + { 70, "provideSubscriberInfo" }, + { 71, "anyTimeInterrogation" }, + { 72, "ss-InvocationNotification" }, + { 73, "setReportingState" }, + { 74, "statusReport" }, + { 75, "remoteUserFree" }, + { 76, "registerCC-Entry" }, + { 77, "eraseCC-Entry" }, + { 78, "secureTransportClass1" }, + { 79, "secureTransportClass2" }, + { 80, "secureTransportClass3" }, + { 81, "secureTransportClass4" }, + { 83, "provideSubscriberLocation" }, + { 84, "sendGroupCallInfo" }, + { 85, "sendRoutingInfoForLCS" }, + { 86, "subscriberLocationReport" }, + { 87, "ist-Alert" }, + { 88, "ist-Command" }, + { 89, "noteMM-Event" }, + { 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 int -dissect_gsm_map_LCS_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 130 "gsm_map.cnf" + + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + &opcode); + + if (check_col(actx->pinfo->cinfo, COL_INFO)){ + col_append_fstr(actx->pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode)); + } + + return offset; } -static int dissect_lcs_Priority_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_Priority(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_Priority); -} static int -dissect_gsm_map_Horizontal_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_old_GSMMAPOperationLocalvalue(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static int dissect_horizontal_accuracy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Horizontal_Accuracy(TRUE, tvb, offset, actx, tree, hf_gsm_map_horizontal_accuracy); -} static int -dissect_gsm_map_Vertical_Accuracy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_vertical_accuracy_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Vertical_Accuracy(TRUE, tvb, offset, actx, tree, hf_gsm_map_vertical_accuracy); -} -static const value_string gsm_map_ResponseTimeCategory_vals[] = { - { 0, "lowdelay" }, - { 1, "delaytolerant" }, +static const value_string gsm_old_MAP_OPERATION_vals[] = { + { 0, "localValue" }, + { 1, "globalValue" }, { 0, NULL } }; +static const ber_choice_t 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_map_ResponseTimeCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_MAP_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + MAP_OPERATION_choice, hf_index, ett_gsm_old_MAP_OPERATION, + NULL); return offset; } -static int dissect_responseTimeCategory(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ResponseTimeCategory(FALSE, tvb, offset, actx, tree, hf_gsm_map_responseTimeCategory); -} -static const ber_old_sequence_t ResponseTime_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_responseTimeCategory }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ResponseTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ResponseTime_sequence, hf_index, ett_gsm_map_ResponseTime); - - return offset; -} -static int dissect_responseTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ResponseTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_responseTime); -} - +dissect_gsm_old_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 117 "gsm_map.cnf" + offset = dissect_invokeData(tree, tvb, offset, actx); -static const ber_old_sequence_t LCS_QoS_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_horizontal_accuracy_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_verticalCoordinateRequest_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vertical_accuracy_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responseTime_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_velocityRequest_impl }, - { 0, 0, 0, NULL } -}; -int -dissect_gsm_map_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCS_QoS_sequence, hf_index, ett_gsm_map_LCS_QoS); return offset; } -static int dissect_lcs_QoS_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_QoS(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_QoS); -} -static const asn_namedbit SupportedGADShapes_bits[] = { - { 0, &hf_gsm_map_SupportedGADShapes_ellipsoidPoint, -1, -1, "ellipsoidPoint", NULL }, - { 1, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, -1, -1, "ellipsoidPointWithUncertaintyCircle", NULL }, - { 2, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, -1, -1, "ellipsoidPointWithUncertaintyEllipse", NULL }, - { 3, &hf_gsm_map_SupportedGADShapes_polygon, -1, -1, "polygon", NULL }, - { 4, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitude, -1, -1, "ellipsoidPointWithAltitude", NULL }, - { 5, &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, -1, -1, "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", NULL }, - { 6, &hf_gsm_map_SupportedGADShapes_ellipsoidArc, -1, -1, "ellipsoidArc", NULL }, - { 0, NULL, 0, 0, NULL, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, - SupportedGADShapes_bits, hf_index, ett_gsm_map_SupportedGADShapes, - NULL); +static int +dissect_gsm_old_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Invoke_sequence, hf_index, ett_gsm_old_Invoke); return offset; } -static int dissect_supportedGADShapes_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SupportedGADShapes(TRUE, tvb, offset, actx, tree, hf_gsm_map_supportedGADShapes); -} -int -dissect_gsm_map_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_old_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 120 "gsm_map.cnf" + offset = dissect_returnResultData(tree, tvb, offset, actx); + + return offset; } -static int dissect_lcs_ReferenceNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_ReferenceNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_ReferenceNumber); -} +static const ber_sequence_t 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_map_LCSCodewordString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_gsm_map_USSD_String(implicit_tag, tvb, offset, actx, tree, hf_index); +dissect_gsm_old_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + T_resultretres_sequence, hf_index, ett_gsm_old_T_resultretres); return offset; } -static int dissect_lcsCodewordString_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSCodewordString(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsCodewordString); -} -static const ber_old_sequence_t LCSCodeword_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dataCodingScheme_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_lcsCodewordString_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 } }; -int -dissect_gsm_map_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCSCodeword_sequence, hf_index, ett_gsm_map_LCSCodeword); +static int +dissect_gsm_old_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReturnResult_sequence, hf_index, ett_gsm_old_ReturnResult); return offset; } -static int dissect_lcsCodeword_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSCodeword(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsCodeword); -} -static const value_string gsm_map_PrivacyCheckRelatedAction_vals[] = { - { 0, "allowedWithoutNotification" }, - { 1, "allowedWithNotification" }, - { 2, "allowedIfNoResponse" }, - { 3, "restrictedIfNoResponse" }, - { 4, "notAllowed" }, +const value_string gsm_old_GSMMAPLocalErrorcode_vals[] = { + { 34, "systemFailure" }, + { 35, "dataMissing" }, + { 36, "unexpectedDataValue" }, + { 21, "facilityNotSupported" }, + { 28, "incompatibleTerminal" }, + { 51, "resourceLimitation" }, + { 1, "unknownSubscriber" }, + { 44, "numberChanged" }, + { 3, "unknownMSC" }, + { 5, "unidentifiedSubscriber" }, + { 7, "unknownEquipment" }, + { 8, "roamingNotAllowed" }, + { 9, "illegalSubscriber" }, + { 12, "illegalEquipment" }, + { 10, "bearerServiceNotProvisioned" }, + { 11, "teleserviceNotProvisioned" }, + { 25, "noHandoverNumberAvailable" }, + { 26, "subsequentHandoverFailure" }, + { 42, "targetCellOutsideGroupCallArea" }, + { 40, "tracingBufferFull" }, + { 39, "noRoamingNumberAvailable" }, + { 27, "absentSubscriber" }, + { 45, "busySubscriber" }, + { 46, "noSubscriberReply" }, + { 13, "callBarred" }, + { 14, "forwardingViolation" }, + { 47, "forwardingFailed" }, + { 15, "cug-Reject" }, + { 48, "or-NotAllowed" }, + { 49, "ati-NotAllowed" }, + { 60, "atsi-NotAllowed" }, + { 61, "atm-NotAllowed" }, + { 62, "informationNotAvailabl" }, + { 16, "illegalSS-Operation" }, + { 17, "ss-ErrorStatus" }, + { 18, "ss-NotAvailable" }, + { 19, "ss-SubscriptionViolatio" }, + { 20, "ss-Incompatibility" }, + { 71, "unknownAlphabe" }, + { 72, "ussd-Busy" }, + { 37, "pw-RegistrationFailur" }, + { 38, "negativePW-Check" }, + { 43, "numberOfPW-AttemptsViolation" }, + { 29, "shortTermDenial" }, + { 30, "longTermDenial" }, + { 31, "subscriberBusyForMT-SMS" }, + { 32, "sm-DeliveryFailure" }, + { 33, "messageWaitingListFull" }, + { 6, "absentSubscriberSM" }, + { 50, "noGroupCallNumberAvailable" }, + { 52, "unauthorizedRequestingNetwork" }, + { 53, "unauthorizedLCSClient" }, + { 54, "positionMethodFailure" }, + { 58, "unknownOrUnreachableLCSClient" }, + { 59, "mm-EventNotSupported" }, + { 4, "secureTransportError" }, { 0, NULL } }; -static int -dissect_gsm_map_PrivacyCheckRelatedAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +int +dissect_gsm_old_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); + &errorCode); return offset; } -static int dissect_callSessionUnrelated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PrivacyCheckRelatedAction(TRUE, tvb, offset, actx, tree, hf_gsm_map_callSessionUnrelated); -} -static int dissect_callSessionRelated_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PrivacyCheckRelatedAction(TRUE, tvb, offset, actx, tree, hf_gsm_map_callSessionRelated); -} -static const ber_old_sequence_t LCS_PrivacyCheck_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callSessionUnrelated_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSessionRelated_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_LCS_PrivacyCheck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCS_PrivacyCheck_sequence, hf_index, ett_gsm_map_LCS_PrivacyCheck); +dissect_gsm_old_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_old_GSMMAPLocalErrorcode(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } -static int dissect_lcs_PrivacyCheck_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_PrivacyCheck(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcs_PrivacyCheck); -} -static const value_string gsm_map_AreaType_vals[] = { - { 0, "countryCode" }, - { 1, "plmnId" }, - { 2, "locationAreaId" }, - { 3, "routingAreaId" }, - { 4, "cellGlobalId" }, - { 5, "utranCellId" }, +static const value_string gsm_old_MAP_ERROR_vals[] = { + { 0, "localValue" }, + { 1, "globalValue" }, { 0, NULL } }; +static const ber_choice_t 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_map_AreaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_MAP_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + MAP_ERROR_choice, hf_index, ett_gsm_old_MAP_ERROR, + NULL); return offset; } -static int dissect_areaType_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AreaType(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaType); -} static int -dissect_gsm_map_AreaIdentification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 123 "gsm_map.cnf" + offset = dissect_returnErrorData(tree, tvb, offset, actx); + + return offset; } -static int dissect_areaIdentification_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AreaIdentification(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaIdentification); -} -static const ber_old_sequence_t Area_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_areaIdentification_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_Area(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Area_sequence, hf_index, ett_gsm_map_Area); +dissect_gsm_old_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ReturnError_sequence, hf_index, ett_gsm_old_ReturnError); return offset; } -static int dissect_AreaList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Area(FALSE, tvb, offset, actx, tree, hf_gsm_map_AreaList_item); -} -static const ber_old_sequence_t AreaList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AreaList_item }, -}; static int -dissect_gsm_map_AreaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - AreaList_sequence_of, hf_index, ett_gsm_map_AreaList); +dissect_gsm_old_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static int dissect_areaList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AreaList(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaList); -} -static const ber_old_sequence_t AreaDefinition_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaList_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_old_T_invokeIDRej_vals[] = { + { 0, "derivable" }, + { 1, "not-derivable" }, + { 0, NULL } +}; + +static const ber_choice_t 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_map_AreaDefinition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AreaDefinition_sequence, hf_index, ett_gsm_map_AreaDefinition); +dissect_gsm_old_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + T_invokeIDRej_choice, hf_index, ett_gsm_old_T_invokeIDRej, + NULL); return offset; } -static int dissect_areaDefinition_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AreaDefinition(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaDefinition); -} -static const value_string gsm_map_OccurrenceInfo_vals[] = { - { 0, "oneTimeEvent" }, - { 1, "multipleTimeEvent" }, +static const value_string gsm_old_GeneralProblem_vals[] = { + { 0, "unrecognizedComponent" }, + { 1, "mistypedComponent" }, + { 2, "badlyStructuredComponent" }, { 0, NULL } }; static int -dissect_gsm_map_OccurrenceInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_occurrenceInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OccurrenceInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_occurrenceInfo); -} +static 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_map_IntervalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_intervalTime_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_IntervalTime(TRUE, tvb, offset, actx, tree, hf_gsm_map_intervalTime); -} -static const ber_old_sequence_t AreaEventInfo_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_areaDefinition_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_occurrenceInfo_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_intervalTime_impl }, - { 0, 0, 0, NULL } +static const value_string gsm_old_ReturnResultProblem_vals[] = { + { 0, "unrecognizedInvokeID" }, + { 1, "returnResultUnexpected" }, + { 2, "mistypedParameter" }, + { 0, NULL } }; -int -dissect_gsm_map_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AreaEventInfo_sequence, hf_index, ett_gsm_map_AreaEventInfo); + +static int +dissect_gsm_old_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_areaEventInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AreaEventInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_areaEventInfo); -} +static const value_string gsm_old_ReturnErrorProblem_vals[] = { + { 0, "unrecognizedInvokeID" }, + { 1, "returnErrorUnexpected" }, + { 2, "unrecognizedError" }, + { 3, "unexpectedError" }, + { 4, "mistypedParameter" }, + { 0, NULL } +}; + static int -dissect_gsm_map_ReportingAmount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_reportingAmount(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReportingAmount(FALSE, tvb, offset, actx, tree, hf_gsm_map_reportingAmount); -} +static const value_string gsm_old_T_problem_vals[] = { + { 0, "generalProblem" }, + { 1, "invokeProblem" }, + { 2, "returnResultProblem" }, + { 3, "returnErrorProblem" }, + { 0, NULL } +}; + +static const ber_choice_t 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_map_ReportingInterval(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + T_problem_choice, hf_index, ett_gsm_old_T_problem, + NULL); return offset; } -static int dissect_reportingInterval(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReportingInterval(FALSE, tvb, offset, actx, tree, hf_gsm_map_reportingInterval); -} -static const ber_old_sequence_t PeriodicLDRInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reportingAmount }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reportingInterval }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_PeriodicLDRInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PeriodicLDRInfo_sequence, hf_index, ett_gsm_map_PeriodicLDRInfo); +dissect_gsm_old_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Reject_sequence, hf_index, ett_gsm_old_Reject); return offset; } -static int dissect_periodicLDRInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PeriodicLDRInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_periodicLDRInfo); -} -static const value_string gsm_map_RAN_Technology_vals[] = { - { 0, "gsm" }, - { 1, "umts" }, +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 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_map_RAN_Technology(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + Component_choice, hf_index, ett_gsm_old_Component, + NULL); return offset; } -static int dissect_ran_Technology_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RAN_Technology(TRUE, tvb, offset, actx, tree, hf_gsm_map_ran_Technology); -} -static const ber_old_sequence_t ReportingPLMN_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_plmn_Id_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ran_Technology_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ran_PeriodicLocationSupport_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t Bss_APDU_sequence[] = { + { &hf_gsm_old_protocolId , -1 /*imported*/, -1 /*imported*/, 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_map_ReportingPLMN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReportingPLMN_sequence, hf_index, ett_gsm_map_ReportingPLMN); +dissect_gsm_old_Bss_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Bss_APDU_sequence, hf_index, ett_gsm_old_Bss_APDU); return offset; } -static int dissect_PLMNList_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReportingPLMN(FALSE, tvb, offset, actx, tree, hf_gsm_map_PLMNList_item); -} -static const ber_old_sequence_t PLMNList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PLMNList_item }, +static const value_string gsm_old_CancelLocationArgV2_vals[] = { + { 0, "imsi" }, + { 1, "imsi-WithLMSI" }, + { 0, NULL } +}; + +static const ber_choice_t CancelLocationArgV2_choice[] = { + { 0, &hf_gsm_old_imsi , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI }, + { 1, &hf_gsm_old_imsi_WithLMSI, -1 /*imported*/, -1 /*imported*/, BER_FLAGS_NOOWNTAG, dissect_gsm_map_IMSI_WithLMSI }, + { 0, NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_PLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - PLMNList_sequence_of, hf_index, ett_gsm_map_PLMNList); +dissect_gsm_old_CancelLocationArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + CancelLocationArgV2_choice, hf_index, ett_gsm_old_CancelLocationArgV2, + NULL); return offset; } -static int dissect_plmn_List_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PLMNList(TRUE, tvb, offset, actx, tree, hf_gsm_map_plmn_List); + + + +static int +dissect_gsm_old_CallDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static const ber_old_sequence_t ReportingPLMNList_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_plmn_ListPrioritized_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_plmn_List_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_ReportingPLMNList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ReportingPLMNList_sequence, hf_index, ett_gsm_map_ReportingPLMNList); +dissect_gsm_old_ProvideSIWFSNumberArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideSIWFSNumberArg_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberArg); return offset; } -static int dissect_reportingPLMNList_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ReportingPLMNList(TRUE, tvb, offset, actx, tree, hf_gsm_map_reportingPLMNList); -} -static const ber_old_sequence_t ProvideSubscriberLocation_Arg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_locationType }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_mlc_Number }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ClientID_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privacyOverride_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_Priority_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_QoS_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedGADShapes_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ReferenceNumber_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsServiceTypeID_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsCodeword_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_PrivacyCheck_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_areaEventInfo_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h_gmlc_Address_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_periodicLDRInfo_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reportingPLMNList_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_ProvideSubscriberLocation_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideSubscriberLocation_Arg_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Arg); +dissect_gsm_old_ProvideSIWFSNumberRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ProvideSIWFSNumberRes_sequence, hf_index, ett_gsm_old_ProvideSIWFSNumberRes); return offset; } +static const ber_sequence_t 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 } +}; -int -dissect_gsm_map_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_old_PurgeMSArgV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PurgeMSArgV2_sequence, hf_index, ett_gsm_old_PurgeMSArgV2); return offset; } -static int dissect_locationEstimate(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_GeographicalInformation(FALSE, tvb, offset, actx, tree, hf_gsm_map_locationEstimate); -} -static int dissect_locationEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Ext_GeographicalInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_locationEstimate); -} +static const ber_sequence_t 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 } +}; -int -dissect_gsm_map_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +static int +dissect_gsm_old_PrepareHO_ArgOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareHO_ArgOld_sequence, hf_index, ett_gsm_old_PrepareHO_ArgOld); return offset; } -static int dissect_add_LocationEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Add_GeographicalInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_add_LocationEstimate); -} +static const ber_sequence_t 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_map_PositioningDataInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_PrepareHO_ResOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PrepareHO_ResOld_sequence, hf_index, ett_gsm_old_PrepareHO_ResOld); return offset; } -static int dissect_geranPositioningData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PositioningDataInformation(TRUE, tvb, offset, actx, tree, hf_gsm_map_geranPositioningData); + + + +static int +dissect_gsm_old_SendAuthenticationInfoArgOld(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_gsm_map_IMSI(implicit_tag, tvb, offset, actx, tree, hf_index); + + return offset; } static int -dissect_gsm_map_UtranPositioningDataInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_RAND(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_utranPositioningData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UtranPositioningDataInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_utranPositioningData); -} -static const value_string gsm_map_AccuracyFulfilmentIndicator_vals[] = { - { 0, "requestedAccuracyFulfilled" }, - { 1, "requestedAccuracyNotFulfilled" }, - { 0, NULL } -}; - static int -dissect_gsm_map_AccuracyFulfilmentIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_SRES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_accuracyFulfilmentIndicator_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AccuracyFulfilmentIndicator(TRUE, tvb, offset, actx, tree, hf_gsm_map_accuracyFulfilmentIndicator); -} static int -dissect_gsm_map_VelocityEstimate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_Kc(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_velocityEstimate_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_VelocityEstimate(TRUE, tvb, offset, actx, tree, hf_gsm_map_velocityEstimate); -} -static const ber_old_sequence_t ProvideSubscriberLocation_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_locationEstimate }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_LocationEstimate_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredmt_lrResponseIndicator_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranPositioningData_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranPositioningData_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellIdOrSai_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accuracyFulfilmentIndicator_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_velocityEstimate_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_ProvideSubscriberLocation_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ProvideSubscriberLocation_Res_sequence, hf_index, ett_gsm_map_ProvideSubscriberLocation_Res); +dissect_gsm_old_SendAuthenticationInfoResOld_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendAuthenticationInfoResOld_item_sequence, hf_index, ett_gsm_old_SendAuthenticationInfoResOld_item); return offset; } -static const ber_old_sequence_t RoutingInfoForLCS_Arg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mlcNumber_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_targetMS_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_RoutingInfoForLCS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RoutingInfoForLCS_Arg_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Arg); +dissect_gsm_old_SendAuthenticationInfoResOld(gboolean implicit_tag _U_, 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, + SendAuthenticationInfoResOld_sequence_of, hf_index, ett_gsm_old_SendAuthenticationInfoResOld); return offset; } -static const ber_old_sequence_t LCSLocationInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_networkNode_Number }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lmsi_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprsNodeIndicator_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_additional_Number_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedLCS_CapabilitySets_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additional_LCS_CapabilitySets_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_LCSLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LCSLocationInfo_sequence, hf_index, ett_gsm_map_LCSLocationInfo); +dissect_gsm_old_AuthenticationTriplet_v2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AuthenticationTriplet_v2_sequence, hf_index, ett_gsm_old_AuthenticationTriplet_v2); return offset; } -static int dissect_lcsLocationInfo(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSLocationInfo(FALSE, tvb, offset, actx, tree, hf_gsm_map_lcsLocationInfo); -} -static int dissect_lcsLocationInfo_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCSLocationInfo(TRUE, tvb, offset, actx, tree, hf_gsm_map_lcsLocationInfo); -} -static const ber_old_sequence_t RoutingInfoForLCS_Res_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_targetMS }, - { BER_CLASS_CON, 1, 0, dissect_lcsLocationInfo }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_extensionContainer }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_v_gmlc_Address }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_h_gmlc_Address }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_ppr_Address }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_additional_v_gmlc_Address }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_RoutingInfoForLCS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RoutingInfoForLCS_Res_sequence, hf_index, ett_gsm_map_RoutingInfoForLCS_Res); +dissect_gsm_old_TripletListold(gboolean implicit_tag _U_, 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, + TripletListold_sequence_of, hf_index, ett_gsm_old_TripletListold); return offset; } -static const value_string gsm_map_LCS_Event_vals[] = { - { 0, "emergencyCallOrigination" }, - { 1, "emergencyCallRelease" }, - { 2, "mo-lr" }, - { 3, "deferredmt-lrResponse" }, - { 4, "deferredmo-lrTTTPInitiation" }, - { 0, NULL } +static const ber_sequence_t 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_map_LCS_Event(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_SendIdentificationResV2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SendIdentificationResV2_sequence, hf_index, ett_gsm_old_SendIdentificationResV2); return offset; } -static int dissect_lcs_Event(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_LCS_Event(FALSE, tvb, offset, actx, tree, hf_gsm_map_lcs_Event); -} -static const value_string gsm_map_TerminationCause_vals[] = { - { 0, "normal" }, - { 1, "errorundefined" }, - { 2, "internalTimeout" }, - { 3, "congestion" }, - { 4, "mt-lrRestart" }, - { 5, "privacyViolation" }, - { 6, "shapeOfLocationEstimateNotSupported" }, - { 7, "subscriberTermination" }, - { 8, "uETermination" }, - { 9, "networkTermination" }, - { 0, NULL } +static const ber_sequence_t 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_map_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_SIWFSSignallingModifyArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SIWFSSignallingModifyArg_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyArg); return offset; } -static int dissect_terminationCause_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_TerminationCause(TRUE, tvb, offset, actx, tree, hf_gsm_map_terminationCause); -} -static const ber_old_sequence_t Deferredmt_lrData_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_deferredLocationEventType }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminationCause_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsLocationInfo_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_Deferredmt_lrData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Deferredmt_lrData_sequence, hf_index, ett_gsm_map_Deferredmt_lrData); +dissect_gsm_old_SIWFSSignallingModifyRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SIWFSSignallingModifyRes_sequence, hf_index, ett_gsm_old_SIWFSSignallingModifyRes); return offset; } -static int dissect_deferredmt_lrData_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_Deferredmt_lrData(TRUE, tvb, offset, actx, tree, hf_gsm_map_deferredmt_lrData); + + + +int +dissect_gsm_old_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, + actx, tree, tvb, offset, hf_index, + NULL); + + return offset; } +const value_string gsm_old_GetPasswordArg_vals[] = { + { 0, "enterPW" }, + { 1, "enterNewPW" }, + { 2, "enterNewPW-Again" }, + { 0, NULL } +}; + -static int -dissect_gsm_map_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +int +dissect_gsm_old_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_sequenceNumber_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SequenceNumber(TRUE, tvb, offset, actx, tree, hf_gsm_map_sequenceNumber); -} -static const ber_old_sequence_t SubscriberLocationReport_Arg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_lcs_Event }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcs_ClientID }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_lcsLocationInfo }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imsi_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_imei_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationEstimate_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ageOfLocationEstimate_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_slr_ArgExtensionContainer_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_add_LocationEstimate_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_deferredmt_lrData_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ReferenceNumber_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geranPositioningData_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_utranPositioningData_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellIdOrSai_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h_gmlc_Address_impl }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcsServiceTypeID_impl }, - { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sai_Present_impl }, - { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pseudonymIndicator_impl }, - { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_velocityEstimate_impl }, - { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accuracyFulfilmentIndicator_impl }, - { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sequenceNumber_impl }, - { BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_periodicLDRInfo_impl }, - { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_SubscriberLocationReport_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SubscriberLocationReport_Arg_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Arg); +int +dissect_gsm_old_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, + actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t SubscriberLocationReport_Res_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRK_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_na_ESRD_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h_gmlc_Address_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mo_lrShortCircuitIndicator_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reportingPLMNList_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lcs_ReferenceNumber_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SubscriberLocationReport_Res_sequence, hf_index, ett_gsm_map_SubscriberLocationReport_Res); +dissect_gsm_old_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } @@ -14465,946 +14042,829 @@ dissect_gsm_map_SubscriberLocationReport_Res(gboolean implicit_tag _U_, tvbuff_t static int -dissect_gsm_map_SecurityParametersIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_SecurityParametersIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_securityParametersIndex(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SecurityParametersIndex(FALSE, tvb, offset, actx, tree, hf_gsm_map_securityParametersIndex); -} static int -dissect_gsm_map_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_localValue(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_INTEGER(FALSE, tvb, offset, actx, tree, hf_gsm_map_localValue); -} -static const value_string gsm_map_OperationCode_vals[] = { +static const value_string gsm_old_OperationCode_vals[] = { { 0, "localValue" }, { 1, "globalValue" }, { 0, NULL } }; -static const ber_old_choice_t OperationCode_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_map_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - OperationCode_choice, hf_index, ett_gsm_map_OperationCode, - NULL); +dissect_gsm_old_OperationCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + OperationCode_choice, hf_index, ett_gsm_old_OperationCode, + NULL); return offset; } -static int dissect_operationCode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OperationCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_operationCode); -} -static const value_string gsm_map_ErrorCode_vals[] = { +static const value_string gsm_old_ErrorCode_vals[] = { { 0, "localValue" }, { 1, "globalValue" }, { 0, NULL } }; -static const ber_old_choice_t ErrorCode_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_map_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - ErrorCode_choice, hf_index, ett_gsm_map_ErrorCode, - NULL); +dissect_gsm_old_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + ErrorCode_choice, hf_index, ett_gsm_old_ErrorCode, + NULL); return offset; } -static int dissect_errorCode_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ErrorCode(TRUE, tvb, offset, actx, tree, hf_gsm_map_errorCode); -} -static const value_string gsm_map_OriginalComponentIdentifier_vals[] = { +static const value_string gsm_old_OriginalComponentIdentifier_vals[] = { { 0, "operationCode" }, { 1, "errorCode" }, { 2, "userInfo" }, { 0, NULL } }; -static const ber_old_choice_t OriginalComponentIdentifier_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_operationCode_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_errorCode_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_userInfo_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t 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_map_OriginalComponentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - OriginalComponentIdentifier_choice, hf_index, ett_gsm_map_OriginalComponentIdentifier, - NULL); +dissect_gsm_old_OriginalComponentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + OriginalComponentIdentifier_choice, hf_index, ett_gsm_old_OriginalComponentIdentifier, + NULL); return offset; } -static int dissect_originalComponentIdentifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OriginalComponentIdentifier(FALSE, tvb, offset, actx, tree, hf_gsm_map_originalComponentIdentifier); -} static int -dissect_gsm_map_InitialisationVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_InitialisationVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_initialisationVector(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_InitialisationVector(FALSE, tvb, offset, actx, tree, hf_gsm_map_initialisationVector); -} -static const ber_old_sequence_t SecurityHeader_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_securityParametersIndex }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_originalComponentIdentifier }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_initialisationVector }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SecurityHeader_sequence, hf_index, ett_gsm_map_SecurityHeader); +dissect_gsm_old_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SecurityHeader_sequence, hf_index, ett_gsm_old_SecurityHeader); return offset; } -static int dissect_securityHeader(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SecurityHeader(FALSE, tvb, offset, actx, tree, hf_gsm_map_securityHeader); -} int -dissect_gsm_map_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_protectedPayload(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ProtectedPayload(FALSE, tvb, offset, actx, tree, hf_gsm_map_protectedPayload); -} -static const ber_old_sequence_t SecureTransportArg_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SecureTransportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SecureTransportArg_sequence, hf_index, ett_gsm_map_SecureTransportArg); +dissect_gsm_old_SecureTransportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SecureTransportArg_sequence, hf_index, ett_gsm_old_SecureTransportArg); return offset; } -static const ber_old_sequence_t SecureTransportRes_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SecureTransportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SecureTransportRes_sequence, hf_index, ett_gsm_map_SecureTransportRes); +dissect_gsm_old_SecureTransportErrorParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SecureTransportErrorParam_sequence, hf_index, ett_gsm_old_SecureTransportErrorParam); return offset; } -static const value_string gsm_map_NetworkResource_vals[] = { - { 0, "plmn" }, - { 1, "hlr" }, - { 2, "vlr" }, - { 3, "pvlr" }, - { 4, "controllingMSC" }, - { 5, "vmsc" }, - { 6, "eir" }, - { 7, "rss" }, - { 0, NULL } +static const ber_sequence_t 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_map_NetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_SecureTransportRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + SecureTransportRes_sequence, hf_index, ett_gsm_old_SecureTransportRes); return offset; } -static int dissect_networkResource(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_NetworkResource(FALSE, tvb, offset, actx, tree, hf_gsm_map_networkResource); -} -static const value_string gsm_map_AdditionalNetworkResource_vals[] = { - { 0, "sgsn" }, - { 1, "ggsn" }, - { 2, "gmlc" }, - { 3, "gsmSCF" }, - { 4, "nplr" }, - { 5, "auc" }, - { 0, NULL } -}; - static int -dissect_gsm_map_AdditionalNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_old_Category(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_additionalNetworkResource_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalNetworkResource(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalNetworkResource); -} static int -dissect_gsm_map_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_old_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_operatorSS_Code_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_OCTET_STRING_SIZE_1(FALSE, tvb, offset, actx, tree, hf_gsm_map_operatorSS_Code_item); -} -static const ber_old_sequence_t T_operatorSS_Code_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_operatorSS_Code_item }, +static const ber_sequence_t 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_map_T_operatorSS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - T_operatorSS_Code_sequence_of, hf_index, ett_gsm_map_T_operatorSS_Code); +dissect_gsm_old_T_operatorSS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + T_operatorSS_Code_sequence_of, hf_index, ett_gsm_old_T_operatorSS_Code); return offset; } -static int dissect_operatorSS_Code_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_T_operatorSS_Code(TRUE, tvb, offset, actx, tree, hf_gsm_map_operatorSS_Code); -} -static const ber_old_sequence_t PlmnContainer_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msisdn_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_category_impl }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_operatorSS_Code_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_PlmnContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PlmnContainer_sequence, hf_index, ett_gsm_map_PlmnContainer); +dissect_gsm_old_PlmnContainer_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PlmnContainer_U_sequence, hf_index, ett_gsm_old_PlmnContainer_U); return offset; } -static const ber_old_sequence_t ExtensibleSystemFailureParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_networkResource }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalNetworkResource_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ExtensibleSystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ExtensibleSystemFailureParam_sequence, hf_index, ett_gsm_map_ExtensibleSystemFailureParam); +dissect_gsm_old_PlmnContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, + hf_index, BER_CLASS_CON, 0, TRUE, dissect_gsm_old_PlmnContainer_U); return offset; } -static int dissect_extensibleSystemFailureParam(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExtensibleSystemFailureParam(FALSE, tvb, offset, actx, tree, hf_gsm_map_extensibleSystemFailureParam); -} -static const value_string gsm_map_SystemFailureParam_vals[] = { - { 0, "networkResource" }, - { 1, "extensibleSystemFailureParam" }, +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_old_choice_t SystemFailureParam_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_networkResource }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleSystemFailureParam }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t SM_RP_DAold_choice[] = { + { 0, &hf_gsm_old_imsi , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, + { 1, &hf_gsm_old_lmsi , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_LMSI }, + { 4, &hf_gsm_old_serviceCentreAddressDA, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, + { 5, &hf_gsm_old_noSM_RP_DA , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_old_NULL }, + { 0, NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SystemFailureParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - SystemFailureParam_choice, hf_index, ett_gsm_map_SystemFailureParam, - NULL); +dissect_gsm_old_SM_RP_DAold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SM_RP_DAold_choice, hf_index, ett_gsm_old_SM_RP_DAold, + NULL); return offset; } -static const ber_old_sequence_t DataMissingParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_DataMissingParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - DataMissingParam_sequence, hf_index, ett_gsm_map_DataMissingParam); - - return offset; -} +dissect_gsm_old_T_msisdn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 248 "gsm_map.cnf" +actx->pinfo->p2p_dir = P2P_DIR_RECV; + offset = dissect_gsm_map_ISDN_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); -static const ber_old_sequence_t UnexpectedDataParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; -static int -dissect_gsm_map_UnexpectedDataParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UnexpectedDataParam_sequence, hf_index, ett_gsm_map_UnexpectedDataParam); return offset; } -static const ber_old_sequence_t FacilityNotSupParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_shapeOfLocationEstimateNotSupported_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_neededLcsCapabilityNotSupportedInServingNode_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_FacilityNotSupParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - FacilityNotSupParam_sequence, hf_index, ett_gsm_map_FacilityNotSupParam); +dissect_gsm_old_T_serviceCentreAddressOA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 240 "gsm_map.cnf" + actx->pinfo->p2p_dir = P2P_DIR_SENT; + offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); + + + return offset; } -static const ber_old_sequence_t IncompatibleTerminalParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const value_string gsm_old_SM_RP_OAold_vals[] = { + { 2, "msisdn" }, + { 4, "serviceCentreAddressOA" }, + { 5, "noSM-RP-OA" }, + { 0, NULL } +}; + +static const ber_choice_t 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_NULL }, + { 0, NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_IncompatibleTerminalParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IncompatibleTerminalParam_sequence, hf_index, ett_gsm_map_IncompatibleTerminalParam); +dissect_gsm_old_SM_RP_OAold(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_choice(actx, tree, tvb, offset, + SM_RP_OAold_choice, hf_index, ett_gsm_old_SM_RP_OAold, + NULL); return offset; } -static const ber_old_sequence_t ResourceLimitationParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_ResourceLimitationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ResourceLimitationParam_sequence, hf_index, ett_gsm_map_ResourceLimitationParam); +dissect_gsm_old_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 262 "gsm_map.cnf" - return offset; -} + /* dissect_gsm_map_SignalInfo will return parameter_tvb in actx */ + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardSM_Arg_sequence, hf_index, ett_gsm_old_ForwardSM_Arg); -static const value_string gsm_map_UnknownSubscriberDiagnostic_vals[] = { - { 0, "imsiUnknown" }, - { 1, "gprsSubscriptionUnknown" }, - { 2, "npdbMismatch" }, - { 0, NULL } -}; + if (!actx->value_ptr) + return offset; + dissector_try_port(sms_dissector_table, 0, actx->value_ptr, actx->pinfo, top_tree); -static int -dissect_gsm_map_UnknownSubscriberDiagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); return offset; } -static int dissect_unknownSubscriberDiagnostic(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UnknownSubscriberDiagnostic(FALSE, tvb, offset, actx, tree, hf_gsm_map_unknownSubscriberDiagnostic); + +/*--- PDUs ---*/ + +static void dissect_Component_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); + dissect_gsm_old_Component(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_old_Component_PDU); } -static const ber_old_sequence_t UnknownSubscriberParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_unknownSubscriberDiagnostic }, - { 0, 0, 0, NULL } -}; +/* --- Module SS-DataTypes --- --- --- */ + + static int -dissect_gsm_map_UnknownSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UnknownSubscriberParam_sequence, hf_index, ett_gsm_map_UnknownSubscriberParam); +dissect_gsm_ss_SS_UserData(gboolean implicit_tag _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 const ber_old_sequence_t NumberChangedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_NumberChangedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NumberChangedParam_sequence, hf_index, ett_gsm_map_NumberChangedParam); +dissect_gsm_ss_SS_Notification(gboolean implicit_tag _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_old_sequence_t UnidentifiedSubParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_UnidentifiedSubParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UnidentifiedSubParam_sequence, hf_index, ett_gsm_map_UnidentifiedSubParam); +dissect_gsm_ss_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static const value_string gsm_map_RoamingNotAllowedCause_vals[] = { - { 0, "plmnRoamingNotAllowed" }, - { 3, "operatorDeterminedBarring" }, +static const value_string gsm_ss_CallOnHold_Indicator_vals[] = { + { 0, "callRetrieved" }, + { 1, "callOnHold" }, { 0, NULL } }; static int -dissect_gsm_map_RoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_ss_CallOnHold_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _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_roamingNotAllowedCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_RoamingNotAllowedCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_roamingNotAllowedCause); -} -static const value_string gsm_map_AdditionalRoamingNotAllowedCause_vals[] = { - { 0, "supportedRAT-TypesNotAllowed" }, +static const value_string gsm_ss_ECT_CallState_vals[] = { + { 0, "alerting" }, + { 1, "active" }, { 0, NULL } }; static int -dissect_gsm_map_AdditionalRoamingNotAllowedCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_ss_ECT_CallState(gboolean implicit_tag _U_, tvbuff_t *tvb _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_additionalRoamingNotAllowedCause_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AdditionalRoamingNotAllowedCause(TRUE, tvb, offset, actx, tree, hf_gsm_map_additionalRoamingNotAllowedCause); -} -static const ber_old_sequence_t RoamingNotAllowedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_roamingNotAllowedCause }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalRoamingNotAllowedCause_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_RoamingNotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - RoamingNotAllowedParam_sequence, hf_index, ett_gsm_map_RoamingNotAllowedParam); +dissect_gsm_ss_RemotePartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RemotePartyNumber_sequence, hf_index, ett_gsm_ss_RemotePartyNumber); return offset; } -static const ber_old_sequence_t IllegalSubscriberParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const value_string gsm_ss_RDN_vals[] = { + { 0, "presentationAllowedAddress" }, + { 1, "presentationRestricted" }, + { 2, "numberNotAvailableDueToInterworking" }, + { 3, "presentationRestrictedAddress" }, + { 0, NULL } +}; + +static const ber_choice_t 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_map_IllegalSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IllegalSubscriberParam_sequence, hf_index, ett_gsm_map_IllegalSubscriberParam); +dissect_gsm_ss_RDN(gboolean implicit_tag _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, + RDN_choice, hf_index, ett_gsm_ss_RDN, + NULL); return offset; } -static const ber_old_sequence_t IllegalEquipmentParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_IllegalEquipmentParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IllegalEquipmentParam_sequence, hf_index, ett_gsm_map_IllegalEquipmentParam); +dissect_gsm_ss_ECT_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ECT_Indicator_sequence, hf_index, ett_gsm_ss_ECT_Indicator); return offset; } -static const ber_old_sequence_t BearerServNotProvParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_BearerServNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - BearerServNotProvParam_sequence, hf_index, ett_gsm_map_BearerServNotProvParam); +dissect_gsm_ss_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); return offset; } -static const ber_old_sequence_t TeleservNotProvParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_TeleservNotProvParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TeleservNotProvParam_sequence, hf_index, ett_gsm_map_TeleservNotProvParam); +dissect_gsm_ss_NameSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NameSet_sequence, hf_index, ett_gsm_ss_NameSet); return offset; } -static const ber_old_sequence_t TracingBufferFullParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const value_string gsm_ss_Name_vals[] = { + { 0, "namePresentationAllowed" }, + { 1, "presentationRestricted" }, + { 2, "nameUnavailable" }, + { 3, "namePresentationRestricted" }, + { 0, NULL } +}; + +static const ber_choice_t 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_map_TracingBufferFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TracingBufferFullParam_sequence, hf_index, ett_gsm_map_TracingBufferFullParam); +dissect_gsm_ss_Name(gboolean implicit_tag _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, + Name_choice, hf_index, ett_gsm_ss_Name, + NULL); return offset; } -static const ber_old_sequence_t NoRoamingNbParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_NoRoamingNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoRoamingNbParam_sequence, hf_index, ett_gsm_map_NoRoamingNbParam); +dissect_gsm_ss_NameIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NameIndicator_sequence, hf_index, ett_gsm_ss_NameIndicator); return offset; } -static const value_string gsm_map_AbsentSubscriberReason_vals[] = { - { 0, "imsiDetach" }, - { 1, "restrictedArea" }, - { 2, "noPageResponse" }, - { 3, "purgedMS" }, +static const value_string gsm_ss_Multicall_Indicator_vals[] = { + { 0, "nbr-SNexceeded" }, + { 1, "nbr-Userexceeded" }, { 0, NULL } }; static int -dissect_gsm_map_AbsentSubscriberReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_ss_Multicall_Indicator(gboolean implicit_tag _U_, tvbuff_t *tvb _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_absentSubscriberReason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_AbsentSubscriberReason(TRUE, tvb, offset, actx, tree, hf_gsm_map_absentSubscriberReason); -} -static const ber_old_sequence_t AbsentSubscriberParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_absentSubscriberReason_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_AbsentSubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AbsentSubscriberParam_sequence, hf_index, ett_gsm_map_AbsentSubscriberParam); +dissect_gsm_ss_NotifySS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + NotifySS_Arg_sequence, hf_index, ett_gsm_ss_NotifySS_Arg); return offset; } -static const ber_old_sequence_t BusySubscriberParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Possible_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ccbs_Busy_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_BusySubscriberParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - BusySubscriberParam_sequence, hf_index, ett_gsm_map_BusySubscriberParam); +dissect_gsm_ss_E1(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t NoSubscriberReplyParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_NoSubscriberReplyParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoSubscriberReplyParam_sequence, hf_index, ett_gsm_map_NoSubscriberReplyParam); +dissect_gsm_ss_E2(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t ForwardingViolationParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ForwardingViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardingViolationParam_sequence, hf_index, ett_gsm_map_ForwardingViolationParam); +dissect_gsm_ss_E3(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t ForwardingFailedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ForwardingFailedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ForwardingFailedParam_sequence, hf_index, ett_gsm_map_ForwardingFailedParam); +dissect_gsm_ss_E4(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t ATI_NotAllowedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ATI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ATI_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATI_NotAllowedParam); +dissect_gsm_ss_E5(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t ATSI_NotAllowedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ATSI_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ATSI_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATSI_NotAllowedParam); +dissect_gsm_ss_E6(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t ATM_NotAllowedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ATM_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ATM_NotAllowedParam_sequence, hf_index, ett_gsm_map_ATM_NotAllowedParam); +dissect_gsm_ss_E7(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t IllegalSS_OperationParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_IllegalSS_OperationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - IllegalSS_OperationParam_sequence, hf_index, ett_gsm_map_IllegalSS_OperationParam); +dissect_gsm_ss_ChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ChargingInformation_sequence, hf_index, ett_gsm_ss_ChargingInformation); return offset; } -static const ber_old_sequence_t SS_NotAvailableParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SS_NotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_NotAvailableParam_sequence, hf_index, ett_gsm_map_SS_NotAvailableParam); +dissect_gsm_ss_ForwardChargeAdviceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardChargeAdviceArg_sequence, hf_index, ett_gsm_ss_ForwardChargeAdviceArg); return offset; } -static const ber_old_sequence_t SS_SubscriptionViolationParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SS_SubscriptionViolationParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_SubscriptionViolationParam_sequence, hf_index, ett_gsm_map_SS_SubscriptionViolationParam); +dissect_gsm_ss_ForwardCUG_InfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ForwardCUG_InfoArg_sequence, hf_index, ett_gsm_ss_ForwardCUG_InfoArg); return offset; } -static const ber_old_sequence_t InformationNotAvailableParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t AccessRegisterCCEntryArg_sequence[] = { + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_InformationNotAvailableParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - InformationNotAvailableParam_sequence, hf_index, ett_gsm_map_InformationNotAvailableParam); +dissect_gsm_ss_AccessRegisterCCEntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + AccessRegisterCCEntryArg_sequence, hf_index, ett_gsm_ss_AccessRegisterCCEntryArg); return offset; } -static const ber_old_sequence_t SubBusyForMT_SMS_Param_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gprsConnectionSuspended }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SubBusyForMT_SMS_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SubBusyForMT_SMS_Param_sequence, hf_index, ett_gsm_map_SubBusyForMT_SMS_Param); +dissect_gsm_ss_CallDeflectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + CallDeflectionArg_sequence, hf_index, ett_gsm_ss_CallDeflectionArg); return offset; } -static const value_string gsm_map_CallBarringCause_vals[] = { - { 0, "barringServiceActive" }, - { 1, "operatorBarring" }, +static const value_string gsm_ss_UUS_Service_vals[] = { + { 1, "uUS1" }, + { 2, "uUS2" }, + { 3, "uUS3" }, { 0, NULL } }; static int -dissect_gsm_map_CallBarringCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_ss_UUS_Service(gboolean implicit_tag _U_, tvbuff_t *tvb _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_callBarringCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CallBarringCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_callBarringCause); -} -static const ber_old_sequence_t ExtensibleCallBarredParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_callBarringCause }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorisedMessageOriginator_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_ExtensibleCallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ExtensibleCallBarredParam_sequence, hf_index, ett_gsm_map_ExtensibleCallBarredParam); - - return offset; -} -static int dissect_extensibleCallBarredParam(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_ExtensibleCallBarredParam(FALSE, tvb, offset, actx, tree, hf_gsm_map_extensibleCallBarredParam); -} - - -static const value_string gsm_map_CallBarredParam_vals[] = { - { 0, "callBarringCause" }, - { 1, "extensibleCallBarredParam" }, - { 0, NULL } -}; - -static const ber_old_choice_t CallBarredParam_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_callBarringCause }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_extensibleCallBarredParam }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_gsm_map_CallBarredParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_choice(actx, tree, tvb, offset, - CallBarredParam_choice, hf_index, ett_gsm_map_CallBarredParam, - NULL); +dissect_gsm_ss_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index); return offset; } -static const value_string gsm_map_CUG_RejectCause_vals[] = { - { 0, "incomingCallsBarredWithinCUG" }, - { 1, "subscriberNotMemberOfCUG" }, - { 5, "requestedBasicServiceViolatesCUG-Constraints" }, - { 7, "calledPartySS-InteractionViolation" }, - { 0, NULL } +static const ber_sequence_t 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_map_CUG_RejectCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_ss_UserUserServiceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UserUserServiceArg_sequence, hf_index, ett_gsm_ss_UserUserServiceArg); return offset; } -static int dissect_cug_RejectCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_CUG_RejectCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_cug_RejectCause); -} -static const ber_old_sequence_t CUG_RejectParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_cug_RejectCause }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_CUG_RejectParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - CUG_RejectParam_sequence, hf_index, ett_gsm_map_CUG_RejectParam); +dissect_gsm_ss_LocationNotificationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationNotificationArg_sequence, hf_index, ett_gsm_ss_LocationNotificationArg); return offset; } -static const ber_old_sequence_t Or_NotAllowedParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const value_string gsm_ss_VerificationResponse_vals[] = { + { 0, "permissionDenied" }, + { 1, "permissionGranted" }, + { 0, NULL } }; -static int -dissect_gsm_map_Or_NotAllowedParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - Or_NotAllowedParam_sequence, hf_index, ett_gsm_map_Or_NotAllowedParam); - - return offset; -} - - -static const ber_old_sequence_t NoGroupCallNbParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_NoGroupCallNbParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - NoGroupCallNbParam_sequence, hf_index, ett_gsm_map_NoGroupCallNbParam); +dissect_gsm_ss_VerificationResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t SS_IncompatibilityCause_sequence[] = { - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Code_impl }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_basicService }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ss_Status_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_SS_IncompatibilityCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SS_IncompatibilityCause_sequence, hf_index, ett_gsm_map_SS_IncompatibilityCause); +dissect_gsm_ss_LocationNotificationRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationNotificationRes_sequence, hf_index, ett_gsm_ss_LocationNotificationRes); return offset; } -static const value_string gsm_map_PW_RegistrationFailureCause_vals[] = { - { 0, "undetermined" }, - { 1, "invalidFormat" }, - { 2, "newPasswordsMismatch" }, +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" }, { 0, NULL } }; static int -dissect_gsm_map_PW_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_ss_MOLR_Type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); @@ -15412,278 +14872,246 @@ dissect_gsm_map_PW_RegistrationFailureCause(gboolean implicit_tag _U_, tvbuff_t } -static const ber_old_sequence_t ShortTermDenialParam_sequence[] = { - { 0, 0, 0, NULL } +static const value_string gsm_ss_LocationMethod_vals[] = { + { 0, "msBasedEOTD" }, + { 1, "msAssistedEOTD" }, + { 2, "assistedGPS" }, + { 3, "msBasedOTDOA" }, + { 0, NULL } }; + static int -dissect_gsm_map_ShortTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - ShortTermDenialParam_sequence, hf_index, ett_gsm_map_ShortTermDenialParam); +dissect_gsm_ss_LocationMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _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_old_sequence_t LongTermDenialParam_sequence[] = { - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_LongTermDenialParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - LongTermDenialParam_sequence, hf_index, ett_gsm_map_LongTermDenialParam); +dissect_gsm_ss_GPSAssistanceData(gboolean implicit_tag _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_SM_EnumeratedDeliveryFailureCause_vals[] = { - { 0, "memoryCapacityExceeded" }, - { 1, "equipmentProtocolError" }, - { 2, "equipmentNotSM-Equipped" }, - { 3, "unknownServiceCentre" }, - { 4, "sc-Congestion" }, - { 5, "invalidSME-Address" }, - { 6, "subscriberNotSC-Subscriber" }, +static const value_string gsm_ss_TerminationCause_vals[] = { + { 0, "subscriberTermination" }, + { 1, "uETermination" }, { 0, NULL } }; static int -dissect_gsm_map_SM_EnumeratedDeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_gsm_ss_TerminationCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_sm_EnumeratedDeliveryFailureCause(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_SM_EnumeratedDeliveryFailureCause(FALSE, tvb, offset, actx, tree, hf_gsm_map_sm_EnumeratedDeliveryFailureCause); -} -static const ber_old_sequence_t SM_DeliveryFailureCause_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sm_EnumeratedDeliveryFailureCause }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_diagnosticInfo }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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 }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_SM_DeliveryFailureCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SM_DeliveryFailureCause_sequence, hf_index, ett_gsm_map_SM_DeliveryFailureCause); +dissect_gsm_ss_LCS_MOLRArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_MOLRArg_sequence, hf_index, ett_gsm_ss_LCS_MOLRArg); return offset; } -static const ber_old_sequence_t MessageWaitListFullParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } -}; static int -dissect_gsm_map_MessageWaitListFullParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MessageWaitListFullParam_sequence, hf_index, ett_gsm_map_MessageWaitListFullParam); +dissect_gsm_ss_DecipheringKeys(gboolean implicit_tag _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_old_sequence_t AbsentSubscriberSM_Param_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_absentSubscriberDiagnosticSM }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalAbsentSubscriberDiagnosticSM_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_map_AbsentSubscriberSM_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - AbsentSubscriberSM_Param_sequence, hf_index, ett_gsm_map_AbsentSubscriberSM_Param); +dissect_gsm_ss_LCS_MOLRRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_MOLRRes_sequence, hf_index, ett_gsm_ss_LCS_MOLRRes); return offset; } -static const ber_old_sequence_t UnauthorizedRequestingNetwork_Param_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_map_UnauthorizedRequestingNetwork_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UnauthorizedRequestingNetwork_Param_sequence, hf_index, ett_gsm_map_UnauthorizedRequestingNetwork_Param); +dissect_gsm_ss_LCS_AreaEventRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_AreaEventRequestArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventRequestArg); return offset; } -static const value_string gsm_map_UnauthorizedLCSClient_Diagnostic_vals[] = { - { 0, "noAdditionalInformation" }, - { 1, "clientNotInMSPrivacyExceptionList" }, - { 2, "callToClientNotSetup" }, - { 3, "privacyOverrideNotApplicable" }, - { 4, "disallowedByLocalRegulatoryRequirements" }, - { 5, "unauthorizedPrivacyClass" }, - { 6, "unauthorizedCallSessionUnrelatedExternalClient" }, - { 7, "unauthorizedCallSessionRelatedExternalClient" }, - { 0, NULL } +static const ber_sequence_t 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_ms_GSN_Address }, + { NULL, 0, 0, 0, NULL } }; - static int -dissect_gsm_map_UnauthorizedLCSClient_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); +dissect_gsm_ss_LCS_AreaEventReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_AreaEventReportArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventReportArg); return offset; } -static int dissect_unauthorizedLCSClient_Diagnostic_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_UnauthorizedLCSClient_Diagnostic(TRUE, tvb, offset, actx, tree, hf_gsm_map_unauthorizedLCSClient_Diagnostic); -} -static const ber_old_sequence_t UnauthorizedLCSClient_Param_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_unauthorizedLCSClient_Diagnostic_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_GSN_Address }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_UnauthorizedLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UnauthorizedLCSClient_Param_sequence, hf_index, ett_gsm_map_UnauthorizedLCSClient_Param); +dissect_gsm_ss_LCS_AreaEventCancellationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_AreaEventCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_AreaEventCancellationArg); return offset; } -static const value_string gsm_map_PositionMethodFailure_Diagnostic_vals[] = { - { 0, "congestion" }, - { 1, "insufficientResources" }, - { 2, "insufficientMeasurementData" }, - { 3, "inconsistentMeasurementData" }, - { 4, "locationProcedureNotCompleted" }, - { 5, "locationProcedureNotSupportedByTargetMS" }, - { 6, "qoSNotAttainable" }, - { 7, "positionMethodNotAvailableInNetwork" }, - { 8, "positionMethodNotAvailableInLocationArea" }, - { 0, NULL } -}; - - -static int -dissect_gsm_map_PositionMethodFailure_Diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_positionMethodFailure_Diagnostic_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_gsm_map_PositionMethodFailure_Diagnostic(TRUE, tvb, offset, actx, tree, hf_gsm_map_positionMethodFailure_Diagnostic); -} - - -static const ber_old_sequence_t PositionMethodFailure_Param_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_positionMethodFailure_Diagnostic_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_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_map_PositionMethodFailure_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - PositionMethodFailure_Param_sequence, hf_index, ett_gsm_map_PositionMethodFailure_Param); +dissect_gsm_ss_LCS_PeriodicLocationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_PeriodicLocationRequestArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestArg); return offset; } -static const ber_old_sequence_t UnknownOrUnreachableLCSClient_Param_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_UnknownOrUnreachableLCSClient_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - UnknownOrUnreachableLCSClient_Param_sequence, hf_index, ett_gsm_map_UnknownOrUnreachableLCSClient_Param); +dissect_gsm_ss_LCS_PeriodicLocationRequestRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_PeriodicLocationRequestRes_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationRequestRes); return offset; } -static const ber_old_sequence_t MM_EventNotSupported_Param_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_MM_EventNotSupported_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - MM_EventNotSupported_Param_sequence, hf_index, ett_gsm_map_MM_EventNotSupported_Param); +dissect_gsm_ss_LCS_LocationUpdateArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_LocationUpdateArg_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateArg); return offset; } -static const ber_old_sequence_t TargetCellOutsideGCA_Param_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_map_TargetCellOutsideGCA_Param(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - TargetCellOutsideGCA_Param_sequence, hf_index, ett_gsm_map_TargetCellOutsideGCA_Param); +dissect_gsm_ss_LCS_LocationUpdateRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_LocationUpdateRes_sequence, hf_index, ett_gsm_ss_LCS_LocationUpdateRes); return offset; } -static const ber_old_sequence_t OngoingGroupCallParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_extensionContainer }, - { 0, 0, 0, NULL } +static const ber_sequence_t 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_ms_GSN_Address }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_gsm_map_OngoingGroupCallParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - OngoingGroupCallParam_sequence, hf_index, ett_gsm_map_OngoingGroupCallParam); +dissect_gsm_ss_LCS_PeriodicLocationCancellationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCS_PeriodicLocationCancellationArg_sequence, hf_index, ett_gsm_ss_LCS_PeriodicLocationCancellationArg); return offset; } -static const ber_old_sequence_t SecureTransportErrorParam_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_securityHeader }, - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_protectedPayload }, - { 0, 0, 0, NULL } -}; - -static int -dissect_gsm_map_SecureTransportErrorParam(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset, - SecureTransportErrorParam_sequence, hf_index, ett_gsm_map_SecureTransportErrorParam); - - return offset; -} - -/*--- PDUs ---*/ - -static void dissect_Component_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { - asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); - dissect_gsm_map_Component(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_Component_PDU); -} +/* --- Module SS-Operations --- --- --- */ /*--- End of included file: packet-gsm_map-fn.c ---*/ -#line 560 "packet-gsm_map-template.c" +#line 563 "packet-gsm_map-template.c" /* Specific translation for MAP V3 */ const value_string gsm_map_V3_opr_code_strings[] = { @@ -15990,158 +15418,162 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ switch(opcode){ case 2: /*updateLocation*/ - offset=dissect_gsm_map_UpdateLocationArg(FALSE, tvb, offset, actx, tree, -1); + 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_identity, - FALSE, dissect_gsm_map_CancelLocationArgV2, -1,/*undefined*/ - TRUE , dissect_gsm_map_CancelLocationArg, -1); + FALSE, dissect_gsm_map_Identity, hf_gsm_map_ms_identity, + FALSE, dissect_gsm_old_CancelLocationArgV2, -1,/*undefined*/ + TRUE , dissect_gsm_map_ms_CancelLocationArg_U, -1); break; case 4: /*provideRoamingNumber*/ - offset=dissect_gsm_map_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ProvideRoamingNumberArg(FALSE, tvb, offset, actx, tree, -1); break; case 5: /*noteSubscriberDataModified*/ - offset=dissect_gsm_map_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedArg(FALSE, tvb, offset, actx, tree, -1); break; case 6: /*resumeCallHandling*/ - offset=dissect_gsm_map_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ResumeCallHandlingArg(FALSE, tvb, offset, actx, tree, -1); break; case 7: /*insertSubscriberData*/ - offset=dissect_gsm_map_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_InsertSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); break; case 8: /*deleteSubscriberData*/ - offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1); break; /* TODO find out why this isn't in the ASN1 file */ /* reserved sendParameters (9) */ case 10: /*registerSS*/ - offset=dissect_gsm_map_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 11: /*eraseSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 12: /*activateSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 13: /*deactivateSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 14: /*interrogateSS*/ - offset=dissect_gsm_map_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_ForBS_Code(FALSE, tvb, offset, actx, tree, -1); break; case 15: /*authenticationFailureReport*/ - offset=dissect_gsm_map_AuthenticationFailureReportArg(FALSE, tvb, offset, actx, tree, -1); + 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; - /* undefined 16 */ case 17: /*registerPassword*/ offset=dissect_gsm_map_SS_Code(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); break; case 18: /*getPassword*/ - offset=dissect_gsm_map_GetPasswordArg(FALSE, tvb, offset, actx, tree, hf_gsm_map_getPassword); + 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, -1); break; - /* reserved processUnstructuredSS-Data (19) */ case 20: /*releaseResources*/ - offset=dissect_gsm_map_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ReleaseResourcesArg(FALSE, tvb, offset, actx, tree, -1); break; case 21: /*mt-ForwardSM-VGCS*/ - offset=dissect_gsm_map_Mt_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ - offset=dissect_gsm_map_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 23: /*updateGprsLocation*/ - offset=dissect_gsm_map_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); break; case 24: /*sendRoutingInfoForGprs*/ - offset=dissect_gsm_map_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_SendRoutingInfoForGprsArg(FALSE, tvb, offset, actx, tree, -1); break; case 25: /*failureReport*/ - offset=dissect_gsm_map_FailureReportArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_FailureReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 26: /*noteMsPresentForGprs*/ - offset=dissect_gsm_map_NoteMsPresentForGprsArg(FALSE, tvb, offset, actx, tree, -1); + 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_map_Bss_APDU, -1, - TRUE , dissect_gsm_map_SendEndSignalArgV3, -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_map_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ProvideSIWFSNumberArg(FALSE, tvb, offset, actx, tree, -1); break; case 32: /*sIWFSSignallingModify*/ - offset=dissect_gsm_map_SIWFSSignallingModifyArg(FALSE, tvb, offset, actx, tree, -1); + 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_map_Bss_APDU, -1, - TRUE , dissect_gsm_map_ProcessAccessSignallingArgV3, -1); + FALSE, dissect_gsm_old_Bss_APDU, -1, + TRUE , dissect_gsm_map_ms_ProcessAccessSignalling_Arg_U, -1); break; case 34: /*forwardAccessSignalling*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, - FALSE, dissect_gsm_map_Bss_APDU, -1, - TRUE , dissect_gsm_map_ForwardAccessSignallingArgV3, -1); + FALSE, dissect_gsm_old_Bss_APDU, -1, + TRUE , dissect_gsm_map_ms_ForwardAccessSignalling_Arg, -1); break; /* reserved noteInternalHandover (35) */ /* undefined 36 */ case 37: /*reset*/ - offset=dissect_gsm_map_ResetArg(FALSE, tvb, offset, actx, tree, -1); + 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_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_PrepareGroupCallArg(FALSE, tvb, offset, actx, tree, -1); break; case 40: /*sendGroupCallEndSignal*/ - dissect_gsm_map_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1); + offset = dissect_gsm_map_gr_SendGroupCallEndSignalArg(FALSE, tvb, offset, actx, tree, -1); break; case 41: /*processGroupCallSignalling*/ - dissect_gsm_map_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); + offset = dissect_gsm_map_gr_ProcessGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); break; case 42: /*forwardGroupCallSignalling*/ - offset=dissect_gsm_map_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_ForwardGroupCallSignallingArg(FALSE, tvb, offset, actx, tree, -1); break; case 43: /*checkIMEI*/ offset=dissect_mc_message(tvb, offset, actx, tree, - FALSE, dissect_gsm_map_IMEI, hf_gsm_map_imei, - FALSE, dissect_gsm_map_CheckIMEIArgV3, -1, + 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_Mt_forwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); else { - offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); } break; case 45: /*sendRoutingInfoForSM*/ - offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, actx, tree, -1); + 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_Mo_forwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MO_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); else { - offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ForwardSM_Arg(FALSE, tvb, offset, actx, tree, -1); } break; case 47: /*reportSM-DeliveryStatus*/ - offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, actx, tree, -1); break; /* reserved noteSubscriberPresent (48) */ /* reserved alertServiceCentreWithoutResult (49) */ case 50: /*activateTraceMode*/ - offset=dissect_gsm_map_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_ActivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); break; case 51: /*deactivateTraceMode*/ - offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_DeactivateTraceModeArg(FALSE, tvb, offset, actx, tree, -1); break; /* reserved traceSubscriberActivity (52) */ /* undefined 53 */ @@ -16149,114 +15581,163 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ case 55: /*sendIdentification*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_TMSI, hf_gsm_map_tmsi, - FALSE, dissect_gsm_map_SendIdentificationArg, -1, + 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_SendAuthenticationInfoArgV2, -1, + FALSE, dissect_gsm_old_SendAuthenticationInfoArgOld, -1, TRUE, NULL, -1); break; case 57: /*restoreData*/ - offset=dissect_gsm_map_RestoreDataArg(FALSE, tvb, offset, actx, tree, -1); + 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_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 60: /*unstructuredSS-Request*/ - offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 61: /*unstructuredSS-Notify*/ - offset=dissect_gsm_map_Ussd_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 62: /*AnyTimeSubscriptionInterrogation*/ - offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeSubscriptionInterrogationArg(FALSE, tvb, offset, actx, tree, -1); break; case 63: /*informServiceCentre*/ - offset=dissect_gsm_map_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_InformServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 64: /*alertServiceCentre*/ - offset=dissect_gsm_map_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_AlertServiceCentreArg(FALSE, tvb, offset, actx, tree, -1); break; case 65: /*AnyTimeModification*/ - offset=dissect_gsm_map_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeModificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 66: /*readyForSM*/ - offset=dissect_gsm_map_ReadyForSM_Arg(FALSE, tvb, offset, actx, tree, -1); + 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_map_PurgeMSArgV2, -1, /*undefined*/ - TRUE , dissect_gsm_map_PurgeMSArg, -1); + 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_map_PrepareHO_Arg, -1, - TRUE, dissect_gsm_map_PrepareHO_ArgV3, -1); + FALSE, dissect_gsm_old_PrepareHO_ArgOld, -1, + TRUE, dissect_gsm_map_ms_PrepareHO_Arg_U, -1); break; case 69: /*prepareSubsequentHandover*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, NULL, -1, FALSE, NULL, -1, - TRUE, dissect_gsm_map_PrepareSubsequentHOArg, -1); + TRUE, dissect_gsm_map_ms_PrepareSubsequentHO_Arg, -1); break; case 70: /*provideSubscriberInfo*/ - offset=dissect_gsm_map_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_ProvideSubscriberInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 71: /*anyTimeInterrogation*/ - offset=dissect_gsm_map_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeInterrogationArg(FALSE, tvb, offset, actx, tree, -1); break; case 72: /*ss-InvocationNotificatio*/ - offset=dissect_gsm_map_Ss_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_InvocationNotificationArg(FALSE, tvb, offset, actx, tree, -1); break; case 73: /*setReportingState*/ - offset=dissect_gsm_map_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_SetReportingStateArg(FALSE, tvb, offset, actx, tree, -1); break; case 74: /*statusReport*/ - offset=dissect_gsm_map_StatusReportArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_StatusReportArg(FALSE, tvb, offset, actx, tree, -1); break; case 75: /*remoteUserFree*/ - offset=dissect_gsm_map_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_RemoteUserFreeArg(FALSE, tvb, offset, actx, tree, -1); break; case 76: /*registerCC-Entry*/ - offset=dissect_gsm_map_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_RegisterCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); break; case 77: /*eraseCC-Entry*/ - offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, actx, tree, -1); + 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_map_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SecureTransportArg(FALSE, tvb, offset, actx, tree, -1); break; /* undefined 82 */ case 83: /*provideSubscriberLocation*/ - offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 84: /*sendGroupCallInfo*/ - offset=dissect_gsm_map_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_SendGroupCallInfoArg(FALSE, tvb, offset, actx, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ - offset=dissect_gsm_map_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 86: /*subscriberLocationReport*/ - offset=dissect_gsm_map_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_SubscriberLocationReport_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 87: /*ist-Alert*/ - offset=dissect_gsm_map_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_AlertArg(FALSE, tvb, offset, actx, tree, -1); break; case 88: /*ist-Command*/ - offset=dissect_gsm_map_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_CommandArg(FALSE, tvb, offset, actx, tree, -1); break; case 89: /*noteMM-Event*/ - offset=dissect_gsm_map_NoteMM_EventArg(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteMM_EventArg(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*/ + 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: cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob"); @@ -16275,26 +15756,26 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, case 2: /*updateLocation*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, - FALSE, dissect_gsm_map_UpdateLocationRes, -1, + FALSE, dissect_gsm_map_ms_UpdateLocationRes, -1, TRUE , NULL, -1); break; case 3: /*cancelLocation*/ - offset=dissect_gsm_map_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_CancelLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 4: /*provideRoamingNumber*/ - offset=dissect_gsm_map_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ProvideRoamingNumberRes(FALSE, tvb, offset, actx, tree, -1); break; case 5: /*noteSubscriberDataModified*/ - offset=dissect_gsm_map_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteSubscriberDataModifiedRes(FALSE, tvb, offset, actx, tree, -1); break; case 6: /*resumeCallHandling*/ - offset=dissect_gsm_map_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ResumeCallHandlingRes(FALSE, tvb, offset, actx, tree, -1); break; case 7: /*insertSubscriberData*/ - offset=dissect_gsm_map_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_InsertSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); break; case 8: /*deleteSubscriberData*/ - offset=dissect_gsm_map_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1); break; /* TODO find out why this isn't in the ASN1 file case 9: sendParameters @@ -16302,205 +15783,249 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, break; */ case 10: /*registerSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 11: /*eraseSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 12: /*activateSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 13: /*deactivateSS*/ - offset=dissect_gsm_map_SS_Info(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1); break; case 14: /*interrogateSS*/ - offset=dissect_gsm_map_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_InterrogateSS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 15: /*authenticationFailureReport*/ - offset=dissect_gsm_map_AuthenticationFailureReportRes(FALSE, tvb, offset, actx, tree, -1); + 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_map_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); + offset=dissect_gsm_old_NewPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_ss_Code); break; case 18: /*getPassword*/ - offset=dissect_gsm_map_CurrentPassword(FALSE, tvb, offset, actx, tree, hf_gsm_map_currentPassword); + 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, -1); break; case 20: /*releaseResources*/ - offset=dissect_gsm_map_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_ReleaseResourcesRes(FALSE, tvb, offset, actx, tree, -1); break; case 21: /*mt-ForwardSM-VGCS*/ - offset=dissect_gsm_map_Mt_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, FALSE, NULL, -1, - TRUE , dissect_gsm_map_SendRoutingInfoRes, -1); + TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); break; case 23: /*updateGprsLocation*/ - offset=dissect_gsm_map_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1); break; case 24: /*sendRoutingInfoForGprs*/ - offset=dissect_gsm_map_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_SendRoutingInfoForGprsRes(FALSE, tvb, offset, actx, tree, -1); break; case 25: /*failureReport*/ - offset=dissect_gsm_map_FailureReportRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_FailureReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 26: /*noteMsPresentForGprs*/ - offset=dissect_gsm_map_NoteMsPresentForGprsRes(FALSE, tvb, offset, actx, tree, -1); + 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_SendEndSignalRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_SendEndSignal_Res(FALSE, tvb, offset, actx, tree, -1); break; case 31: /*provideSIWFSNumber*/ - offset=dissect_gsm_map_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_ProvideSIWFSNumberRes(FALSE, tvb, offset, actx, tree, -1); break; case 32: /*provideSIWFSSignallingModify*/ - offset=dissect_gsm_map_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SIWFSSignallingModifyRes(FALSE, tvb, offset, actx, tree, -1); break; case 39: /*prepareGroupCall*/ - offset=dissect_gsm_map_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_PrepareGroupCallRes(FALSE, tvb, offset, actx, tree, -1); break; case 40: /*sendGroupCallEndSignal*/ - dissect_gsm_map_SendGroupCallEndSignalRes(FALSE, tvb, offset, actx, tree, -1); + 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_EquipmentStatus, hf_gsm_map_equipmentStatus, - FALSE, dissect_gsm_map_CheckIMEIRes, -1, + 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_Mt_forwardSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MT_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 45: /*sendRoutingInfoForSM*/ - offset=dissect_gsm_map_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_RoutingInfoForSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 46: /*mo-forwardSM*/ - offset=dissect_gsm_map_Mo_forwardSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_MO_ForwardSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 47: /*reportSM-DeliveryStatus*/ - offset=dissect_gsm_map_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1); break; - case 48: /*reportSM-DeliveryStatus*/ - offset=dissect_gsm_map_ReportSM_DeliveryStatusRes(FALSE, tvb, offset, actx, tree, -1); + case 48: /*noteSubscriberPresent*/ break; case 50: /*activateTraceMode*/ - offset=dissect_gsm_map_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_ActivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); break; case 51: /*deactivateTraceMode*/ - offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_om_DeactivateTraceModeRes(FALSE, tvb, offset, actx, tree, -1); break; case 55: /*sendIdentification */ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, - FALSE, dissect_gsm_map_SendIdentificationResV2, -1,/*undefined*/ - TRUE, dissect_gsm_map_SendIdentificationRes, -1); + 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_map_SendAuthenticationInfoRes, -1, - TRUE , dissect_gsm_map_SendAuthenticationInfoResV3, -1); + FALSE, dissect_gsm_old_SendAuthenticationInfoResOld_item, -1, + TRUE , dissect_gsm_map_ms_SendAuthenticationInfoRes, -1); break; case 57: /*restoreData*/ - offset=dissect_gsm_map_RestoreDataRes(FALSE, tvb, offset, actx, tree, -1); + 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_imsi); + offset=dissect_gsm_map_IMSI(FALSE, tvb, offset, actx, tree, hf_gsm_map_ms_imsi); break; case 59: /*unstructuredSS-Request*/ - offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1); break; case 60: /*unstructuredSS-Request*/ - offset=dissect_gsm_map_Ussd_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_USSD_Res(FALSE, tvb, offset, actx, tree, -1); break; case 61: /*unstructuredSS-Notify*/ /* TRUE ? */ proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); break; case 62: /*AnyTimeSubscriptionInterrogation*/ - offset=dissect_gsm_map_AnyTimeSubscriptionInterrogationRes(FALSE, tvb, offset, actx, tree, -1); + 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_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeModificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 66: /*readyForSM*/ - offset=dissect_gsm_map_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_sm_ReadyForSM_Res(FALSE, tvb, offset, actx, tree, -1); break; case 67: /*purgeMS*/ - offset=dissect_gsm_map_PurgeMSRes(FALSE, tvb, offset, actx, tree, -1); + 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_map_PrepareHO_Res, -1, - TRUE , dissect_gsm_map_PrepareHO_ResV3, -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_PrepareSubsequentHOResV3, -1); + TRUE , dissect_gsm_map_ms_PrepareSubsequentHO_Res, -1); break; case 70: /*provideSubscriberInfo*/ - offset=dissect_gsm_map_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_ProvideSubscriberInfoRes(FALSE, tvb, offset, actx, tree, -1); break; case 71: /*anyTimeInterrogation*/ - offset=dissect_gsm_map_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_AnyTimeInterrogationRes(FALSE, tvb, offset, actx, tree, -1); break; case 72: /*ss-InvocationNotificatio*/ - offset=dissect_gsm_map_Ss_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_InvocationNotificationRes(FALSE, tvb, offset, actx, tree, -1); break; case 73: /*setReportingState*/ - offset=dissect_gsm_map_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_SetReportingStateRes(FALSE, tvb, offset, actx, tree, -1); break; case 74: /*statusReport*/ - offset=dissect_gsm_map_StatusReportRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_StatusReportRes(FALSE, tvb, offset, actx, tree, -1); break; case 75: /*remoteUserFree*/ - offset=dissect_gsm_map_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_RemoteUserFreeRes(FALSE, tvb, offset, actx, tree, -1); break; case 76: /*registerCC-Entry*/ - offset=dissect_gsm_map_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_RegisterCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); break; case 77: /*eraseCC-Entry*/ - offset=dissect_gsm_map_EraseCC_EntryRes(FALSE, tvb, offset, actx, tree, -1); + 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_map_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SecureTransportRes(FALSE, tvb, offset, actx, tree, -1); break; case 83: /*provideSubscriberLocation*/ - offset=dissect_gsm_map_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_ProvideSubscriberLocation_Res(FALSE, tvb, offset, actx, tree, -1); break; case 84: /*sendGroupCallInfo*/ - offset=dissect_gsm_map_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_gr_SendGroupCallInfoRes(FALSE, tvb, offset, actx, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ - offset=dissect_gsm_map_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_RoutingInfoForLCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 86: /*subscriberLocationReport*/ - offset=dissect_gsm_map_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_lcs_SubscriberLocationReport_Res(FALSE, tvb, offset, actx, tree, -1); break; case 87: /*ist-Alert*/ - offset=dissect_gsm_map_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_AlertRes(FALSE, tvb, offset, actx, tree, -1); break; case 88: /*ist-Command*/ - offset=dissect_gsm_map_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ch_IST_CommandRes(FALSE, tvb, offset, actx, tree, -1); break; case 89: /*noteMM-Event*/ - offset=dissect_gsm_map_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ms_NoteMM_EventRes(FALSE, tvb, offset, actx, tree, -1); + break; + case 109: /*SS-protocol lcs-PeriodicLocationCancellation*/ + break; + case 110: /*SS-protocol lcs-LocationUpdate*/ + 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*/ + offset=dissect_gsm_ss_ForwardCUG_InfoArg(FALSE, tvb, offset, actx, tree, -1); + 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: cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN); @@ -16516,151 +16041,151 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, switch(errorCode){ case 1: /* UnknownSubscriberParam */ - offset=dissect_gsm_map_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnknownSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 4: /* SecureTransportErrorParam */ - offset=dissect_gsm_map_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_old_SecureTransportErrorParam(FALSE, tvb, offset, actx, tree, -1); break; case 5: /* UnidentifiedSubParam */ - offset=dissect_gsm_map_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnidentifiedSubParam(FALSE, tvb, offset, actx, tree, -1); break; case 6: /* AbsentSubscriberSM-Param */ - offset=dissect_gsm_map_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_AbsentSubscriberSM_Param(FALSE, tvb, offset, actx, tree, -1); break; case 8: /* RoamingNotAllowedParam */ - offset=dissect_gsm_map_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_RoamingNotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 9: /* IllegalSubscriberParam */ - offset=dissect_gsm_map_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IllegalSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 10: /* BearerServNotProvParam */ - offset=dissect_gsm_map_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_BearerServNotProvParam(FALSE, tvb, offset, actx, tree, -1); break; case 11: /* TeleservNotProvParam */ - offset=dissect_gsm_map_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_TeleservNotProvParam(FALSE, tvb, offset, actx, tree, -1); break; case 12: /* IllegalEquipmentParam */ - offset=dissect_gsm_map_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IllegalEquipmentParam(FALSE, tvb, offset, actx, tree, -1); break; case 13: /* CallBarredParam */ - offset=dissect_gsm_map_CallBarredParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_CallBarredParam(FALSE, tvb, offset, actx, tree, -1); break; case 14: /* ForwardingViolationParam */ - offset=dissect_gsm_map_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ForwardingViolationParam(FALSE, tvb, offset, actx, tree, -1); break; case 15: /* CUG-RejectParam */ - offset=dissect_gsm_map_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_CUG_RejectParam(FALSE, tvb, offset, actx, tree, -1); break; case 16: /* IllegalSS-OperationParam */ - offset=dissect_gsm_map_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IllegalSS_OperationParam(FALSE, tvb, offset, actx, tree, -1); break; case 17: /* SS-ErrorStatus */ - offset=dissect_gsm_map_SS_Status(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_ss_SS_Status(FALSE, tvb, offset, actx, tree, -1); break; case 18: /* SS-NotAvailableParam */ - offset=dissect_gsm_map_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SS_NotAvailableParam(FALSE, tvb, offset, actx, tree, -1); break; case 19: /* SS-SubscriptionViolationParam */ - offset=dissect_gsm_map_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SS_SubscriptionViolationParam(FALSE, tvb, offset, actx, tree, -1); break; case 20: /* SS-IncompatibilityCause */ - offset=dissect_gsm_map_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SS_IncompatibilityCause(FALSE, tvb, offset, actx, tree, -1); break; case 21: /* FacilityNotSupParam */ - offset=dissect_gsm_map_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_FacilityNotSupParam(FALSE, tvb, offset, actx, tree, -1); break; case 22: /* OngoingGroupCallParam */ - offset=dissect_gsm_map_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_OngoingGroupCallParam(FALSE, tvb, offset, actx, tree, -1); break; case 27: /* AbsentSubscriberParam */ - offset=dissect_gsm_map_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_AbsentSubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 28: /* IncompatibleTerminalParam */ - offset=dissect_gsm_map_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_IncompatibleTerminalParam(FALSE, tvb, offset, actx, tree, -1); break; case 29: /* ShortTermDenialParam */ - offset=dissect_gsm_map_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ShortTermDenialParam(FALSE, tvb, offset, actx, tree, -1); break; case 30: /* LongTermDenialParam */ - offset=dissect_gsm_map_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_LongTermDenialParam(FALSE, tvb, offset, actx, tree, -1); break; case 31: /* SubBusyForMT-SMS-Param */ - offset=dissect_gsm_map_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SubBusyForMT_SMS_Param(FALSE, tvb, offset, actx, tree, -1); break; case 32: /* SM-DeliveryFailureCause */ - offset=dissect_gsm_map_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SM_DeliveryFailureCause(FALSE, tvb, offset, actx, tree, -1); break; case 33: /* MessageWaitListFullParam */ - offset=dissect_gsm_map_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_MessageWaitListFullParam(FALSE, tvb, offset, actx, tree, -1); break; case 34: /* SystemFailureParam */ - offset=dissect_gsm_map_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_SystemFailureParam(FALSE, tvb, offset, actx, tree, -1); break; case 35: /* DataMissingParam */ - offset=dissect_gsm_map_DataMissingParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_DataMissingParam(FALSE, tvb, offset, actx, tree, -1); break; case 36: /* UnexpectedDataParam */ - offset=dissect_gsm_map_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnexpectedDataParam(FALSE, tvb, offset, actx, tree, -1); break; case 37: /* PW-RegistrationFailureCause */ - offset=dissect_gsm_map_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_PW_RegistrationFailureCause(FALSE, tvb, offset, actx, tree, -1); break; case 39: /* NoRoamingNbParam */ - offset=dissect_gsm_map_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NoRoamingNbParam(FALSE, tvb, offset, actx, tree, -1); break; case 40: /* TracingBufferFullParam */ - offset=dissect_gsm_map_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_TracingBufferFullParam(FALSE, tvb, offset, actx, tree, -1); break; case 42: /* TargetCellOutsideGCA-Param */ - offset=dissect_gsm_map_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_TargetCellOutsideGCA_Param(FALSE, tvb, offset, actx, tree, -1); break; case 44: /* NumberChangedParam */ - offset=dissect_gsm_map_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NumberChangedParam(FALSE, tvb, offset, actx, tree, -1); break; case 45: /* BusySubscriberParam */ - offset=dissect_gsm_map_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_BusySubscriberParam(FALSE, tvb, offset, actx, tree, -1); break; case 46: /* NoSubscriberReplyParam */ - offset=dissect_gsm_map_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NoSubscriberReplyParam(FALSE, tvb, offset, actx, tree, -1); break; case 47: /* ForwardingFailedParam */ - offset=dissect_gsm_map_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ForwardingFailedParam(FALSE, tvb, offset, actx, tree, -1); break; case 48: /* OR-NotAllowedParam */ - offset=dissect_gsm_map_Or_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_OR_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 49: /* ATI-NotAllowedParam */ - offset=dissect_gsm_map_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ATI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 50: /* NoGroupCallNbParam */ - offset=dissect_gsm_map_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_NoGroupCallNbParam(FALSE, tvb, offset, actx, tree, -1); break; case 51: /* ResourceLimitationParam */ - offset=dissect_gsm_map_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ResourceLimitationParam(FALSE, tvb, offset, actx, tree, -1); break; case 52: /* UnauthorizedRequestingNetwork-Param */ - offset=dissect_gsm_map_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnauthorizedRequestingNetwork_Param(FALSE, tvb, offset, actx, tree, -1); break; case 53: /* UnauthorizedLCSClient-Param */ - offset=dissect_gsm_map_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnauthorizedLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); break; case 54: /* PositionMethodFailure-Param */ - offset=dissect_gsm_map_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_PositionMethodFailure_Param(FALSE, tvb, offset, actx, tree, -1); break; case 58: /* UnknownOrUnreachableLCSClient-Param */ - offset=dissect_gsm_map_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_UnknownOrUnreachableLCSClient_Param(FALSE, tvb, offset, actx, tree, -1); break; case 59: /* MM-EventNotSupported-Param */ - offset=dissect_gsm_map_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_MM_EventNotSupported_Param(FALSE, tvb, offset, actx, tree, -1); break; case 60: /* ATSI-NotAllowedParam */ - offset=dissect_gsm_map_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ATSI_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 61: /* ATM-NotAllowedParam */ - offset=dissect_gsm_map_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_ATM_NotAllowedParam(FALSE, tvb, offset, actx, tree, -1); break; case 62: /* InformationNotAvailableParam */ - offset=dissect_gsm_map_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1); + offset=dissect_gsm_map_er_InformationNotAvailableParam(FALSE, tvb, offset, actx, tree, -1); break; default: cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob"); @@ -16680,9 +16205,9 @@ static void dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, /* create display subtree for the protocol */ if(parent_tree){ item = proto_tree_add_text(parent_tree, tvb, 0, -1, "MAP Ext. Plmn Container"); - tree = proto_item_add_subtree(item, ett_gsm_map_PlmnContainer); + tree = proto_item_add_subtree(item, ett_gsm_old_PlmnContainer_U); } - dissect_gsm_map_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, hf_gsm_map_PlmnContainer_PDU); + dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1); } @@ -16711,10 +16236,10 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, gsm_map_pdu_size = tvb_get_guint8(tvb, offset+1)+2; if (check_col(actx->pinfo->cinfo, COL_INFO)){ - col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_map_Component_vals, "Unknown GSM-MAP PDU (%u)")); + col_set_str(actx->pinfo->cinfo, COL_INFO, val_to_str(gsmmap_pdu_type, gsm_old_Component_vals, "Unknown GSM-MAP PDU (%u)")); col_append_fstr(actx->pinfo->cinfo, COL_INFO, " "); } - offset = dissect_gsm_map_Component(FALSE, tvb, 0, actx, tree, hf_gsm_map_Component_PDU); + offset = dissect_gsm_old_Component(FALSE, tvb, 0, actx, tree, hf_gsm_old_Component_PDU); return offset; /* offset = dissect_ber_choice(pinfo, tree, tvb, offset, @@ -17195,9 +16720,13 @@ void proto_register_gsm_map(void) { FT_STRING, BASE_NONE, NULL, 0, "ServiceCentreAddress digits", HFILL }}, { &hf_gsm_map_imsi_digits, - { "Imsi digits", "gsm_map.imsi_digits", + { "IMSI digits", "gsm_map.imsi_digits", + FT_STRING, BASE_NONE, NULL, 0, + "IMSI digits", HFILL }}, + { &hf_gsm_map_TBCD_digits, + { "TBCD digits", "gsm_map.imsi_digits", FT_STRING, BASE_NONE, NULL, 0, - "Imsi digits", HFILL }}, + "TBCD digits", HFILL }}, { &hf_gsm_map_Ss_Status_unused, { "Unused", "gsm_map.unused", FT_UINT8, BASE_HEX, NULL, 0xf0, @@ -17413,106 +16942,51 @@ void proto_register_gsm_map(void) { /*--- Included file: packet-gsm_map-hfarr.c ---*/ #line 1 "packet-gsm_map-hfarr.c" - { &hf_gsm_map_Component_PDU, - { "Component", "gsm_map.Component", - FT_UINT32, BASE_DEC, VALS(gsm_map_Component_vals), 0, - "gsm_map.Component", HFILL }}, - { &hf_gsm_map_invoke, - { "invoke", "gsm_map.invoke", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Invoke", HFILL }}, - { &hf_gsm_map_returnResultLast, - { "returnResultLast", "gsm_map.returnResultLast", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReturnResult", HFILL }}, - { &hf_gsm_map_returnError, - { "returnError", "gsm_map.returnError", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReturnError", HFILL }}, - { &hf_gsm_map_reject, - { "reject", "gsm_map.reject", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Reject", HFILL }}, - { &hf_gsm_map_returnResultNotLast, - { "returnResultNotLast", "gsm_map.returnResultNotLast", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReturnResult", HFILL }}, - { &hf_gsm_map_invokeID, - { "invokeID", "gsm_map.invokeID", - FT_INT32, BASE_DEC, NULL, 0, - "gsm_map.InvokeIdType", HFILL }}, - { &hf_gsm_map_linkedID, - { "linkedID", "gsm_map.linkedID", - FT_INT32, BASE_DEC, NULL, 0, - "gsm_map.InvokeIdType", HFILL }}, - { &hf_gsm_map_opCode, - { "opCode", "gsm_map.opCode", - FT_UINT32, BASE_DEC, VALS(gsm_map_OPERATION_vals), 0, - "gsm_map.OPERATION", HFILL }}, - { &hf_gsm_map_invokeparameter, - { "invokeparameter", "gsm_map.invokeparameter", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.InvokeParameter", HFILL }}, - { &hf_gsm_map_resultretres, - { "resultretres", "gsm_map.resultretres", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_resultretres", HFILL }}, - { &hf_gsm_map_returnparameter, - { "returnparameter", "gsm_map.returnparameter", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReturnResultParameter", HFILL }}, - { &hf_gsm_map_returnErrorCode, - { "errorCode", "gsm_map.errorCode", - FT_UINT32, BASE_DEC, VALS(gsm_map_ERROR_vals), 0, - "gsm_map.ERROR", HFILL }}, - { &hf_gsm_map_parameter, - { "parameter", "gsm_map.parameter", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReturnErrorParameter", HFILL }}, - { &hf_gsm_map_invokeIDRej, - { "invokeIDRej", "gsm_map.invokeIDRej", - FT_UINT32, BASE_DEC, VALS(gsm_map_T_invokeIDRej_vals), 0, - "gsm_map.T_invokeIDRej", HFILL }}, - { &hf_gsm_map_derivable, - { "derivable", "gsm_map.derivable", + +/* --- Module Remote-Operations-Information-Objects --- --- --- */ + + { &hf_Remote_Operations_Information_Objects_local, + { "local", "Remote-Operations-Information-Objects.local", FT_INT32, BASE_DEC, NULL, 0, - "gsm_map.InvokeIdType", HFILL }}, - { &hf_gsm_map_not_derivable, - { "not-derivable", "gsm_map.not_derivable", + "Remote_Operations_Information_Objects.INTEGER", HFILL }}, + { &hf_Remote_Operations_Information_Objects_global, + { "global", "Remote-Operations-Information-Objects.global", + FT_OID, BASE_NONE, NULL, 0, + "Remote_Operations_Information_Objects.OBJECT_IDENTIFIER", HFILL }}, + +/* --- Module MAP-ExtensionDataTypes --- --- --- */ + + { &hf_gsm_map_privateExtensionList, + { "privateExtensionList", "gsm_map.privateExtensionList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.PrivateExtensionList", HFILL }}, + { &hf_gsm_map_pcs_Extensions, + { "pcs-Extensions", "gsm_map.pcs_Extensions", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_problem, - { "problem", "gsm_map.problem", - FT_UINT32, BASE_DEC, VALS(gsm_map_T_problem_vals), 0, - "gsm_map.T_problem", HFILL }}, - { &hf_gsm_map_generalProblem, - { "generalProblem", "gsm_map.generalProblem", - FT_INT32, BASE_DEC, VALS(gsm_map_GeneralProblem_vals), 0, - "gsm_map.GeneralProblem", HFILL }}, - { &hf_gsm_map_invokeProblem, - { "invokeProblem", "gsm_map.invokeProblem", - FT_INT32, BASE_DEC, VALS(gsm_map_InvokeProblem_vals), 0, - "gsm_map.InvokeProblem", HFILL }}, - { &hf_gsm_map_returnResultProblem, - { "returnResultProblem", "gsm_map.returnResultProblem", - FT_INT32, BASE_DEC, VALS(gsm_map_ReturnResultProblem_vals), 0, - "gsm_map.ReturnResultProblem", HFILL }}, - { &hf_gsm_map_returnErrorProblem, - { "returnErrorProblem", "gsm_map.returnErrorProblem", - FT_INT32, BASE_DEC, VALS(gsm_map_ReturnErrorProblem_vals), 0, - "gsm_map.ReturnErrorProblem", HFILL }}, - { &hf_gsm_map_operationLocalvalue, - { "localValue", "gsm_map.localValue", - FT_INT32, BASE_DEC, VALS(gsm_map_GSMMAPOperationLocalvalue_vals), 0, - "gsm_map.OperationLocalvalue", HFILL }}, - { &hf_gsm_map_globalValue, - { "globalValue", "gsm_map.globalValue", + "gsm_map.PCS_Extensions", HFILL }}, + { &hf_gsm_map_slr_Arg_PCS_Extensions, + { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.SLR_Arg_PCS_Extensions", HFILL }}, + { &hf_gsm_map_PrivateExtensionList_item, + { "Item", "gsm_map.PrivateExtensionList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.PrivateExtension", HFILL }}, + { &hf_gsm_map_extId, + { "extId", "gsm_map.extId", FT_OID, BASE_NONE, NULL, 0, - "gsm_map.OBJECT_IDENTIFIER", HFILL }}, - { &hf_gsm_map_localErrorcode, - { "localValue", "gsm_map.localValue", - FT_INT32, BASE_DEC, VALS(gsm_map_GSMMAPLocalErrorcode_vals), 0, - "gsm_map.LocalErrorcode", HFILL }}, + "gsm_map.T_extId", HFILL }}, + { &hf_gsm_map_extType, + { "extType", "gsm_map.extType", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.T_extType", HFILL }}, + { &hf_gsm_map_na_ESRK_Request, + { "na-ESRK-Request", "gsm_map.na_ESRK_Request", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.NULL", HFILL }}, + +/* --- Module MAP-CommonDataTypes --- --- --- */ + { &hf_gsm_map_protocolId, { "protocolId", "gsm_map.protocolId", FT_UINT32, BASE_DEC, VALS(gsm_map_ProtocolId_vals), 0, @@ -17525,3653 +16999,4626 @@ void proto_register_gsm_map(void) { { "extensionContainer", "gsm_map.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_ext_ProtocolId, + { "ext-ProtocolId", "gsm_map.ext_ProtocolId", + FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0, + "gsm_map.Ext_ProtocolId", HFILL }}, + { &hf_gsm_map_accessNetworkProtocolId, + { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId", + FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0, + "gsm_map.AccessNetworkProtocolId", HFILL }}, + { &hf_gsm_map_signalInfo_01, + { "signalInfo", "gsm_map.signalInfo", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LongSignalInfo", HFILL }}, { &hf_gsm_map_imsi, { "imsi", "gsm_map.imsi", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.IMSI", HFILL }}, - { &hf_gsm_map_msc_Number, - { "msc-Number", "gsm_map.msc_Number", + { &hf_gsm_map_imsi_WithLMSI, + { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.IMSI_WithLMSI", HFILL }}, + { &hf_gsm_map_lmsi, + { "lmsi", "gsm_map.lmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LMSI", HFILL }}, + { &hf_gsm_map_tmsi, + { "tmsi", "gsm_map.tmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.TMSI", HFILL }}, + { &hf_gsm_map_HLR_List_item, + { "Item", "gsm_map.HLR_List_item", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.HLR_Id", HFILL }}, + { &hf_gsm_map_naea_PreferredCIC, + { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.NAEA_CIC", HFILL }}, + { &hf_gsm_map_msisdn, + { "msisdn", "gsm_map.msisdn", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_vlr_Number, - { "vlr-Number", "gsm_map.vlr_Number", + { &hf_gsm_map_externalAddress, + { "externalAddress", "gsm_map.externalAddress", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_lmsi, - { "lmsi", "gsm_map.lmsi", + { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, + { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LMSI", HFILL }}, - { &hf_gsm_map_vlr_Capability, - { "vlr-Capability", "gsm_map.vlr_Capability", + "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }}, + { &hf_gsm_map_laiFixedLength, + { "laiFixedLength", "gsm_map.laiFixedLength", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LAIFixedLength", HFILL }}, + { &hf_gsm_map_bearerService, + { "bearerService", "gsm_map.bearerService", + FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, + "gsm_map.BearerServiceCode", HFILL }}, + { &hf_gsm_map_teleservice, + { "teleservice", "gsm_map.teleservice", + FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, + "gsm_map.TeleserviceCode", HFILL }}, + { &hf_gsm_map_ext_BearerService, + { "ext-BearerService", "gsm_map.ext_BearerService", + FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, + "gsm_map.Ext_BearerServiceCode", HFILL }}, + { &hf_gsm_map_ext_Teleservice, + { "ext-Teleservice", "gsm_map.ext_Teleservice", + FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, + "gsm_map.Ext_TeleserviceCode", HFILL }}, + { &hf_gsm_map_maximumentitledPriority, + { "maximumentitledPriority", "gsm_map.maximumentitledPriority", + FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, + "gsm_map.EMLPP_Priority", HFILL }}, + { &hf_gsm_map_defaultPriority, + { "defaultPriority", "gsm_map.defaultPriority", + FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, + "gsm_map.EMLPP_Priority", HFILL }}, + { &hf_gsm_map_ss_Code, + { "ss-Code", "gsm_map.ss_Code", + FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, + "gsm_map.SS_Code", HFILL }}, + { &hf_gsm_map_ss_Status, + { "ss-Status", "gsm_map.ss_Status", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.Ext_SS_Status", HFILL }}, + { &hf_gsm_map_nbrSB, + { "nbrSB", "gsm_map.nbrSB", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.MaxMC_Bearers", HFILL }}, + { &hf_gsm_map_nbrUser, + { "nbrUser", "gsm_map.nbrUser", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.MC_Bearers", HFILL }}, + +/* --- 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, + "gsm_map.SS_Code", HFILL }}, + { &hf_gsm_map_ss_basicService, + { "basicService", "gsm_map.ss.basicService", + FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, + "gsm_map.BasicServiceCode", HFILL }}, + { &hf_gsm_map_ss_forwardedToNumber, + { "forwardedToNumber", "gsm_map.ss.forwardedToNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_ss_forwardedToSubaddress, + { "forwardedToSubaddress", "gsm_map.ss.forwardedToSubaddress", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_SubaddressString", HFILL }}, + { &hf_gsm_map_ss_noReplyConditionTime, + { "noReplyConditionTime", "gsm_map.ss.noReplyConditionTime", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.NoReplyConditionTime", HFILL }}, + { &hf_gsm_map_ss_defaultPriority, + { "defaultPriority", "gsm_map.ss.defaultPriority", + FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, + "gsm_map.EMLPP_Priority", HFILL }}, + { &hf_gsm_map_ss_nbrUser, + { "nbrUser", "gsm_map.ss.nbrUser", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.MC_Bearers", HFILL }}, + { &hf_gsm_map_ss_longFTN_Supported, + { "longFTN-Supported", "gsm_map.ss.longFTN_Supported", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.VLR_Capability", HFILL }}, - { &hf_gsm_map_informPreviousNetworkEntity, - { "informPreviousNetworkEntity", "gsm_map.informPreviousNetworkEntity", + "gsm_map_ss.NULL", HFILL }}, + { &hf_gsm_map_ss_forwardingInfo, + { "forwardingInfo", "gsm_map.ss.forwardingInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_cs_LCS_NotSupportedByUE, - { "cs-LCS-NotSupportedByUE", "gsm_map.cs_LCS_NotSupportedByUE", + "gsm_map_ss.ForwardingInfo", HFILL }}, + { &hf_gsm_map_ss_callBarringInfo, + { "callBarringInfo", "gsm_map.ss.callBarringInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_v_gmlc_Address, - { "v-gmlc-Address", "gsm_map.v_gmlc_Address", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_add_info, - { "add-info", "gsm_map.add_info", + "gsm_map_ss.CallBarringInfo", HFILL }}, + { &hf_gsm_map_ss_ss_Data, + { "ss-Data", "gsm_map.ss.ss_Data", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ADD_Info", HFILL }}, - { &hf_gsm_map_hlr_Number, - { "hlr-Number", "gsm_map.hlr_Number", + "gsm_map_ss.SS_Data", HFILL }}, + { &hf_gsm_map_ss_forwardingFeatureList, + { "forwardingFeatureList", "gsm_map.ss.forwardingFeatureList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.ForwardingFeatureList", HFILL }}, + { &hf_gsm_map_ss_ForwardingFeatureList_item, + { "Item", "gsm_map.ss.ForwardingFeatureList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ss.ForwardingFeature", HFILL }}, + { &hf_gsm_map_ss_ss_Status, + { "ss-Status", "gsm_map.ss.ss_Status", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.SS_Status", HFILL }}, + { &hf_gsm_map_ss_forwardedToNumber_01, + { "forwardedToNumber", "gsm_map.ss.forwardedToNumber", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_add_Capability, - { "add-Capability", "gsm_map.add_Capability", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_supportedCamelPhases, - { "supportedCamelPhases", "gsm_map.supportedCamelPhases", + { &hf_gsm_map_ss_forwardingOptions, + { "forwardingOptions", "gsm_map.ss.forwardingOptions", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.ForwardingOptions", HFILL }}, + { &hf_gsm_map_ss_longForwardedToNumber, + { "longForwardedToNumber", "gsm_map.ss.longForwardedToNumber", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedCamelPhases", HFILL }}, - { &hf_gsm_map_solsaSupportIndicator, - { "solsaSupportIndicator", "gsm_map.solsaSupportIndicator", + "gsm_map.FTN_AddressString", HFILL }}, + { &hf_gsm_map_ss_callBarringFeatureList, + { "callBarringFeatureList", "gsm_map.ss.callBarringFeatureList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.CallBarringFeatureList", HFILL }}, + { &hf_gsm_map_ss_CallBarringFeatureList_item, + { "Item", "gsm_map.ss.CallBarringFeatureList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ss.CallBarringFeature", 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, + "gsm_map_ss.SS_SubscriptionOption", HFILL }}, + { &hf_gsm_map_ss_basicServiceGroupList, + { "basicServiceGroupList", "gsm_map.ss.basicServiceGroupList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.BasicServiceGroupList", HFILL }}, + { &hf_gsm_map_ss_cliRestrictionOption, + { "cliRestrictionOption", "gsm_map.ss.cliRestrictionOption", + FT_UINT32, BASE_DEC, VALS(gsm_map_ss_CliRestrictionOption_vals), 0, + "gsm_map_ss.CliRestrictionOption", HFILL }}, + { &hf_gsm_map_ss_overrideCategory, + { "overrideCategory", "gsm_map.ss.overrideCategory", + FT_UINT32, BASE_DEC, VALS(gsm_map_ss_OverrideCategory_vals), 0, + "gsm_map_ss.OverrideCategory", HFILL }}, + { &hf_gsm_map_ss_maximumEntitledPriority, + { "maximumEntitledPriority", "gsm_map.ss.maximumEntitledPriority", + FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, + "gsm_map.EMLPP_Priority", HFILL }}, + { &hf_gsm_map_ss_ccbs_FeatureList, + { "ccbs-FeatureList", "gsm_map.ss.ccbs_FeatureList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.CCBS_FeatureList", HFILL }}, + { &hf_gsm_map_ss_nbrSB, + { "nbrSB", "gsm_map.ss.nbrSB", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.MaxMC_Bearers", HFILL }}, + { &hf_gsm_map_ss_nbrSN, + { "nbrSN", "gsm_map.ss.nbrSN", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.MC_Bearers", HFILL }}, + { &hf_gsm_map_ss_CCBS_FeatureList_item, + { "Item", "gsm_map.ss.CCBS_FeatureList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_istSupportIndicator, - { "istSupportIndicator", "gsm_map.istSupportIndicator", - FT_UINT32, BASE_DEC, VALS(gsm_map_IST_SupportIndicator_vals), 0, - "gsm_map.IST_SupportIndicator", HFILL }}, - { &hf_gsm_map_superChargerSupportedInServingNetworkEntity, - { "superChargerSupportedInServingNetworkEntity", "gsm_map.superChargerSupportedInServingNetworkEntity", - FT_UINT32, BASE_DEC, VALS(gsm_map_SuperChargerInfo_vals), 0, - "gsm_map.SuperChargerInfo", HFILL }}, - { &hf_gsm_map_longFTN_Supported, - { "longFTN-Supported", "gsm_map.longFTN_Supported", + "gsm_map_ss.CCBS_Feature", HFILL }}, + { &hf_gsm_map_ss_ccbs_Index, + { "ccbs-Index", "gsm_map.ss.ccbs_Index", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.CCBS_Index", HFILL }}, + { &hf_gsm_map_ss_b_subscriberNumber, + { "b-subscriberNumber", "gsm_map.ss.b_subscriberNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ss_b_subscriberSubaddress, + { "b-subscriberSubaddress", "gsm_map.ss.b_subscriberSubaddress", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_SubaddressString", HFILL }}, + { &hf_gsm_map_ss_basicServiceGroup, + { "basicServiceGroup", "gsm_map.ss.basicServiceGroup", + FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, + "gsm_map.BasicServiceCode", HFILL }}, + { &hf_gsm_map_ss_genericServiceInfo, + { "genericServiceInfo", "gsm_map.ss.genericServiceInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_supportedLCS_CapabilitySets, - { "supportedLCS-CapabilitySets", "gsm_map.supportedLCS_CapabilitySets", + "gsm_map_ss.GenericServiceInfo", HFILL }}, + { &hf_gsm_map_ss_ussd_DataCodingScheme, + { "ussd-DataCodingScheme", "gsm_map.ss.ussd_DataCodingScheme", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedLCS_CapabilitySets", HFILL }}, - { &hf_gsm_map_offeredCamel4CSIs, - { "offeredCamel4CSIs", "gsm_map.offeredCamel4CSIs", + "gsm_map_ss.USSD_DataCodingScheme", HFILL }}, + { &hf_gsm_map_ss_ussd_String, + { "ussd-String", "gsm_map.ss.ussd_String", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OfferedCamel4CSIs", HFILL }}, - { &hf_gsm_map_supportedRAT_TypesIndicator, - { "supportedRAT-TypesIndicator", "gsm_map.supportedRAT_TypesIndicator", + "gsm_map_ss.USSD_String", HFILL }}, + { &hf_gsm_map_ss_alertingPattern, + { "alertingPattern", "gsm_map.ss.alertingPattern", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedRAT_Types", HFILL }}, - { &hf_gsm_map_sendSubscriberData, - { "sendSubscriberData", "gsm_map.sendSubscriberData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_subscriberDataStored, - { "subscriberDataStored", "gsm_map.subscriberDataStored", + "gsm_map.AlertingPattern", HFILL }}, + { &hf_gsm_map_ss_msisdn, + { "msisdn", "gsm_map.ss.msisdn", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AgeIndicator", HFILL }}, - { &hf_gsm_map_imeisv, - { "imeisv", "gsm_map.imeisv", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ss_SS_List_item, + { "Item", "gsm_map.ss.SS_List_item", + FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, + "gsm_map.SS_Code", HFILL }}, + { &hf_gsm_map_ss_SS_InfoList_item, + { "Item", "gsm_map.ss.SS_InfoList_item", + FT_UINT32, BASE_DEC, VALS(gsm_map_ss_SS_Info_vals), 0, + "gsm_map_ss.SS_Info", HFILL }}, + { &hf_gsm_map_ss_BasicServiceGroupList_item, + { "Item", "gsm_map.ss.BasicServiceGroupList_item", + FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, + "gsm_map.BasicServiceCode", HFILL }}, + { &hf_gsm_map_ss_imsi, + { "imsi", "gsm_map.ss.imsi", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.IMEI", HFILL }}, - { &hf_gsm_map_skipSubscriberDataUpdate, - { "skipSubscriberDataUpdate", "gsm_map.skipSubscriberDataUpdate", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_PrivateExtensionList_item, - { "Item", "gsm_map.PrivateExtensionList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.PrivateExtension", HFILL }}, - { &hf_gsm_map_extId, - { "extId", "gsm_map.extId", - FT_OID, BASE_NONE, NULL, 0, - "gsm_map.T_extId", HFILL }}, - { &hf_gsm_map_extType, - { "extType", "gsm_map.extType", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_extType", HFILL }}, - { &hf_gsm_map_privateExtensionList, - { "privateExtensionList", "gsm_map.privateExtensionList", + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_ss_ss_Event, + { "ss-Event", "gsm_map.ss.ss_Event", + FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, + "gsm_map.SS_Code", HFILL }}, + { &hf_gsm_map_ss_ss_EventSpecification, + { "ss-EventSpecification", "gsm_map.ss.ss_EventSpecification", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.PrivateExtensionList", HFILL }}, - { &hf_gsm_map_slr_Arg_PCS_Extensions, - { "slr-Arg-PCS-Extensions", "gsm_map.slr_Arg_PCS_Extensions", + "gsm_map_ss.SS_EventSpecification", HFILL }}, + { &hf_gsm_map_ss_extensionContainer, + { "extensionContainer", "gsm_map.ss.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SLR_Arg_PCS_Extensions", HFILL }}, - { &hf_gsm_map_na_ESRK_Request, - { "na-ESRK-Request", "gsm_map.na_ESRK_Request", + "gsm_map.ExtensionContainer", 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, + "gsm_map_ss.CCBS_RequestState", HFILL }}, + { &hf_gsm_map_ss_SS_EventSpecification_item, + { "Item", "gsm_map.ss.SS_EventSpecification_item", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_ss_ccbs_Data, + { "ccbs-Data", "gsm_map.ss.ccbs_Data", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_identity, - { "identity", "gsm_map.identity", - FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0, - "gsm_map.Identity", HFILL }}, - { &hf_gsm_map_cancellationType, - { "cancellationType", "gsm_map.cancellationType", - FT_UINT32, BASE_DEC, VALS(gsm_map_CancellationType_vals), 0, - "gsm_map.CancellationType", HFILL }}, - { &hf_gsm_map_imsi_WithLMSI, - { "imsi-WithLMSI", "gsm_map.imsi_WithLMSI", + "gsm_map_ss.CCBS_Data", HFILL }}, + { &hf_gsm_map_ss_ccbs_Feature, + { "ccbs-Feature", "gsm_map.ss.ccbs_Feature", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.IMSI_WithLMSI", HFILL }}, - { &hf_gsm_map_sgsn_Number, - { "sgsn-Number", "gsm_map.sgsn_Number", + "gsm_map_ss.CCBS_Feature", HFILL }}, + { &hf_gsm_map_ss_translatedB_Number, + { "translatedB-Number", "gsm_map.ss.translatedB_Number", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_freezeTMSI, - { "freezeTMSI", "gsm_map.freezeTMSI", + { &hf_gsm_map_ss_serviceIndicator, + { "serviceIndicator", "gsm_map.ss.serviceIndicator", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.ServiceIndicator", HFILL }}, + { &hf_gsm_map_ss_callInfo, + { "callInfo", "gsm_map.ss.callInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_freezeP_TMSI, - { "freezeP-TMSI", "gsm_map.freezeP_TMSI", + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_map_ss_networkSignalInfo, + { "networkSignalInfo", "gsm_map.ss.networkSignalInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_tmsi, - { "tmsi", "gsm_map.tmsi", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TMSI", HFILL }}, - { &hf_gsm_map_numberOfRequestedVectors, - { "numberOfRequestedVectors", "gsm_map.numberOfRequestedVectors", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.NumberOfRequestedVectors", HFILL }}, - { &hf_gsm_map_segmentationProhibited, - { "segmentationProhibited", "gsm_map.segmentationProhibited", + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_map_ss_ServiceIndicator_clir_invoked, + { "clir-invoked", "gsm_map.ss.clir-invoked", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_ss_ServiceIndicator_camel_invoked, + { "camel-invoked", "gsm_map.ss.camel-invoked", + FT_BOOLEAN, 8, NULL, 0x40, + "", 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, + "gsm_map_er.RoamingNotAllowedCause", HFILL }}, + { &hf_gsm_map_er_extensionContainer, + { "extensionContainer", "gsm_map.er.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_previous_LAI, - { "previous-LAI", "gsm_map.previous_LAI", + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_er_additionalRoamingNotAllowedCause, + { "additionalRoamingNotAllowedCause", "gsm_map.er.additionalRoamingNotAllowedCause", + FT_UINT32, BASE_DEC, VALS(gsm_map_er_AdditionalRoamingNotAllowedCause_vals), 0, + "gsm_map_er.AdditionalRoamingNotAllowedCause", HFILL }}, + { &hf_gsm_map_er_callBarringCause, + { "callBarringCause", "gsm_map.er.callBarringCause", + FT_UINT32, BASE_DEC, VALS(gsm_map_er_CallBarringCause_vals), 0, + "gsm_map_er.CallBarringCause", HFILL }}, + { &hf_gsm_map_er_extensibleCallBarredParam, + { "extensibleCallBarredParam", "gsm_map.er.extensibleCallBarredParam", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.ExtensibleCallBarredParam", HFILL }}, + { &hf_gsm_map_er_unauthorisedMessageOriginator, + { "unauthorisedMessageOriginator", "gsm_map.er.unauthorisedMessageOriginator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.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, + "gsm_map_er.CUG_RejectCause", HFILL }}, + { &hf_gsm_map_er_ss_Code, + { "ss-Code", "gsm_map.er.ss_Code", + FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, + "gsm_map.SS_Code", HFILL }}, + { &hf_gsm_map_er_basicService, + { "basicService", "gsm_map.er.basicService", + FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, + "gsm_map.BasicServiceCode", HFILL }}, + { &hf_gsm_map_er_ss_Status, + { "ss-Status", "gsm_map.er.ss_Status", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LAIFixedLength", HFILL }}, - { &hf_gsm_map_hopCounter, - { "hopCounter", "gsm_map.hopCounter", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.HopCounter", HFILL }}, - { &hf_gsm_map_authenticationSetList, - { "authenticationSetList", "gsm_map.authenticationSetList", - FT_UINT32, BASE_DEC, VALS(gsm_map_AuthenticationSetList_vals), 0, - "gsm_map.AuthenticationSetList", HFILL }}, - { &hf_gsm_map_currentSecurityContext, - { "currentSecurityContext", "gsm_map.currentSecurityContext", - FT_UINT32, BASE_DEC, VALS(gsm_map_CurrentSecurityContext_vals), 0, - "gsm_map.CurrentSecurityContext", HFILL }}, - { &hf_gsm_map_tripletList, - { "tripletList", "gsm_map.tripletList", + "gsm_map_ss.SS_Status", 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, + "gsm_map_er.SM_EnumeratedDeliveryFailureCause", HFILL }}, + { &hf_gsm_map_er_diagnosticInfo, + { "diagnosticInfo", "gsm_map.er.diagnosticInfo", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.SignalInfo", HFILL }}, + { &hf_gsm_map_er_absentSubscriberDiagnosticSM, + { "absentSubscriberDiagnosticSM", "gsm_map.er.absentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.TripletList", HFILL }}, - { &hf_gsm_map_quintupletList, - { "quintupletList", "gsm_map.quintupletList", + "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }}, + { &hf_gsm_map_er_additionalAbsentSubscriberDiagnosticSM, + { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.er.additionalAbsentSubscriberDiagnosticSM", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.QuintupletList", HFILL }}, - { &hf_gsm_map_TripletList_item, - { "Item", "gsm_map.TripletList_item", + "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }}, + { &hf_gsm_map_er_networkResource, + { "networkResource", "gsm_map.er.networkResource", + FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0, + "gsm_map.NetworkResource", HFILL }}, + { &hf_gsm_map_er_extensibleSystemFailureParam, + { "extensibleSystemFailureParam", "gsm_map.er.extensibleSystemFailureParam", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.AuthenticationTriplet", HFILL }}, - { &hf_gsm_map_QuintupletList_item, - { "Item", "gsm_map.QuintupletList_item", + "gsm_map_er.ExtensibleSystemFailureParam", HFILL }}, + { &hf_gsm_map_er_additionalNetworkResource, + { "additionalNetworkResource", "gsm_map.er.additionalNetworkResource", + FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0, + "gsm_map.AdditionalNetworkResource", HFILL }}, + { &hf_gsm_map_er_shapeOfLocationEstimateNotSupported, + { "shapeOfLocationEstimateNotSupported", "gsm_map.er.shapeOfLocationEstimateNotSupported", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.NULL", HFILL }}, + { &hf_gsm_map_er_neededLcsCapabilityNotSupportedInServingNode, + { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.er.neededLcsCapabilityNotSupportedInServingNode", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.NULL", HFILL }}, + { &hf_gsm_map_er_unknownSubscriberDiagnostic, + { "unknownSubscriberDiagnostic", "gsm_map.er.unknownSubscriberDiagnostic", + FT_UINT32, BASE_DEC, VALS(gsm_map_er_UnknownSubscriberDiagnostic_vals), 0, + "gsm_map_er.UnknownSubscriberDiagnostic", HFILL }}, + { &hf_gsm_map_er_absentSubscriberReason, + { "absentSubscriberReason", "gsm_map.er.absentSubscriberReason", + FT_UINT32, BASE_DEC, VALS(gsm_map_er_AbsentSubscriberReason_vals), 0, + "gsm_map_er.AbsentSubscriberReason", HFILL }}, + { &hf_gsm_map_er_ccbs_Possible, + { "ccbs-Possible", "gsm_map.er.ccbs_Possible", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.NULL", HFILL }}, + { &hf_gsm_map_er_ccbs_Busy, + { "ccbs-Busy", "gsm_map.er.ccbs_Busy", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.NULL", HFILL }}, + { &hf_gsm_map_er_gprsConnectionSuspended, + { "gprsConnectionSuspended", "gsm_map.er.gprsConnectionSuspended", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_er.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, + "gsm_map_er.UnauthorizedLCSClient_Diagnostic", 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, + "gsm_map_er.PositionMethodFailure_Diagnostic", HFILL }}, + +/* --- Module MAP-SM-DataTypes --- --- --- */ + + { &hf_gsm_map_sm_msisdn, + { "msisdn", "gsm_map.sm.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_sm_sm_RP_PRI, + { "sm-RP-PRI", "gsm_map.sm.sm_RP_PRI", + FT_BOOLEAN, 8, NULL, 0, + "gsm_map_sm.BOOLEAN", HFILL }}, + { &hf_gsm_map_sm_serviceCentreAddress, + { "serviceCentreAddress", "gsm_map.sm.serviceCentreAddress", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_sm_extensionContainer, + { "extensionContainer", "gsm_map.sm.extensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_sm_gprsSupportIndicator, + { "gprsSupportIndicator", "gsm_map.sm.gprsSupportIndicator", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.AuthenticationQuintuplet", HFILL }}, - { &hf_gsm_map_rand, - { "rand", "gsm_map.rand", + "gsm_map_sm.NULL", HFILL }}, + { &hf_gsm_map_sm_sm_RP_MTI, + { "sm-RP-MTI", "gsm_map.sm.sm_RP_MTI", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_sm.SM_RP_MTI", HFILL }}, + { &hf_gsm_map_sm_sm_RP_SMEA, + { "sm-RP-SMEA", "gsm_map.sm.sm_RP_SMEA", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RAND", HFILL }}, - { &hf_gsm_map_sres, - { "sres", "gsm_map.sres", + "gsm_map_sm.SM_RP_SMEA", HFILL }}, + { &hf_gsm_map_sm_imsi, + { "imsi", "gsm_map.sm.imsi", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SRES", HFILL }}, - { &hf_gsm_map_kc, - { "kc", "gsm_map.kc", + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_sm_locationInfoWithLMSI, + { "locationInfoWithLMSI", "gsm_map.sm.locationInfoWithLMSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_sm.LocationInfoWithLMSI", HFILL }}, + { &hf_gsm_map_sm_networkNode_Number, + { "networkNode-Number", "gsm_map.sm.networkNode_Number", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Kc", HFILL }}, - { &hf_gsm_map_xres, - { "xres", "gsm_map.xres", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_sm_lmsi, + { "lmsi", "gsm_map.sm.lmsi", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.XRES", HFILL }}, - { &hf_gsm_map_ck, - { "ck", "gsm_map.ck", + "gsm_map.LMSI", HFILL }}, + { &hf_gsm_map_sm_gprsNodeIndicator, + { "gprsNodeIndicator", "gsm_map.sm.gprsNodeIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_sm.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, + "gsm_map_sm.Additional_Number", HFILL }}, + { &hf_gsm_map_sm_msc_Number, + { "msc-Number", "gsm_map.sm.msc_Number", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CK", HFILL }}, - { &hf_gsm_map_ik, - { "ik", "gsm_map.ik", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_sm_sgsn_Number, + { "sgsn-Number", "gsm_map.sm.sgsn_Number", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.IK", HFILL }}, - { &hf_gsm_map_autn, - { "autn", "gsm_map.autn", + "gsm_map.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, + "gsm_map_sm.SM_RP_DA", 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, + "gsm_map_sm.SM_RP_OA", HFILL }}, + { &hf_gsm_map_sm_sm_RP_UI, + { "sm-RP-UI", "gsm_map.sm.sm_RP_UI", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AUTN", HFILL }}, - { &hf_gsm_map_gsm_SecurityContextData, - { "gsm-SecurityContextData", "gsm_map.gsm_SecurityContextData", + "gsm_map.SignalInfo", HFILL }}, + { &hf_gsm_map_sm_moreMessagesToSend, + { "moreMessagesToSend", "gsm_map.sm.moreMessagesToSend", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GSM_SecurityContextData", HFILL }}, - { &hf_gsm_map_umts_SecurityContextData, - { "umts-SecurityContextData", "gsm_map.umts_SecurityContextData", + "gsm_map_sm.NULL", HFILL }}, + { &hf_gsm_map_sm_serviceCentreAddressDA, + { "serviceCentreAddressDA", "gsm_map.sm.serviceCentreAddressDA", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_sm_noSM_RP_DA, + { "noSM-RP-DA", "gsm_map.sm.noSM_RP_DA", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.UMTS_SecurityContextData", HFILL }}, - { &hf_gsm_map_cksn, - { "cksn", "gsm_map.cksn", + "gsm_map_sm.NULL", HFILL }}, + { &hf_gsm_map_sm_msisdn_01, + { "msisdn", "gsm_map.sm.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_sm.T_msisdn", HFILL }}, + { &hf_gsm_map_sm_serviceCentreAddressOA, + { "serviceCentreAddressOA", "gsm_map.sm.serviceCentreAddressOA", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_sm.T_serviceCentreAddressOA", HFILL }}, + { &hf_gsm_map_sm_noSM_RP_OA, + { "noSM-RP-OA", "gsm_map.sm.noSM_RP_OA", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_sm.NULL", 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, + "gsm_map_sm.SM_DeliveryOutcome", HFILL }}, + { &hf_gsm_map_sm_absentSubscriberDiagnosticSM, + { "absentSubscriberDiagnosticSM", "gsm_map.sm.absentSubscriberDiagnosticSM", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }}, + { &hf_gsm_map_sm_deliveryOutcomeIndicator, + { "deliveryOutcomeIndicator", "gsm_map.sm.deliveryOutcomeIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_sm.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, + "gsm_map_sm.SM_DeliveryOutcome", HFILL }}, + { &hf_gsm_map_sm_additionalAbsentSubscriberDiagnosticSM, + { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.sm.additionalAbsentSubscriberDiagnosticSM", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }}, + { &hf_gsm_map_sm_storedMSISDN, + { "storedMSISDN", "gsm_map.sm.storedMSISDN", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Cksn", HFILL }}, - { &hf_gsm_map_ksi, - { "ksi", "gsm_map.ksi", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_sm_mw_Status, + { "mw-Status", "gsm_map.sm.mw_Status", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.KSI", HFILL }}, - { &hf_gsm_map_targetCellId, - { "targetCellId", "gsm_map.targetCellId", + "gsm_map_sm.MW_Status", HFILL }}, + { &hf_gsm_map_sm_alertReason, + { "alertReason", "gsm_map.sm.alertReason", + FT_UINT32, BASE_DEC, VALS(gsm_map_sm_AlertReason_vals), 0, + "gsm_map_sm.AlertReason", HFILL }}, + { &hf_gsm_map_sm_alertReasonIndicator, + { "alertReasonIndicator", "gsm_map.sm.alertReasonIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_sm.NULL", HFILL }}, + { &hf_gsm_map_sm_asciCallReference, + { "asciCallReference", "gsm_map.sm.asciCallReference", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GlobalCellId", HFILL }}, - { &hf_gsm_map_ho_NumberNotRequired, - { "ho-NumberNotRequired", "gsm_map.ho_NumberNotRequired", + "gsm_map.ASCI_CallReference", HFILL }}, + { &hf_gsm_map_sm_dispatcherList, + { "dispatcherList", "gsm_map.sm.dispatcherList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_sm.DispatcherList", HFILL }}, + { &hf_gsm_map_sm_ongoingCall, + { "ongoingCall", "gsm_map.sm.ongoingCall", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_bss_APDU, - { "bss-APDU", "gsm_map.bss_APDU", + "gsm_map_sm.NULL", HFILL }}, + { &hf_gsm_map_sm_DispatcherList_item, + { "Item", "gsm_map.sm.DispatcherList_item", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_sm_MW_Status_sc_AddressNotIncluded, + { "sc-AddressNotIncluded", "gsm_map.sm.sc-AddressNotIncluded", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_sm_MW_Status_mnrf_Set, + { "mnrf-Set", "gsm_map.sm.mnrf-Set", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_sm_MW_Status_mcef_Set, + { "mcef-Set", "gsm_map.sm.mcef-Set", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_sm_MW_Status_mnrg_Set, + { "mnrg-Set", "gsm_map.sm.mnrg-Set", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + +/* --- Module MAP-OM-DataTypes --- --- --- */ + + { &hf_gsm_map_om_imsi, + { "imsi", "gsm_map.om.imsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_om_traceReference, + { "traceReference", "gsm_map.om.traceReference", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.TraceReference", HFILL }}, + { &hf_gsm_map_om_traceType, + { "traceType", "gsm_map.om.traceType", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_om.TraceType", HFILL }}, + { &hf_gsm_map_om_omc_Id, + { "omc-Id", "gsm_map.om.omc_Id", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_om_extensionContainer, + { "extensionContainer", "gsm_map.om.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Bss_APDU", HFILL }}, - { &hf_gsm_map_targetRNCId, - { "targetRNCId", "gsm_map.targetRNCId", + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_om_traceReference2, + { "traceReference2", "gsm_map.om.traceReference2", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RNCId", HFILL }}, - { &hf_gsm_map_an_APDU, - { "an-APDU", "gsm_map.an_APDU", + "gsm_map_om.TraceReference2", HFILL }}, + { &hf_gsm_map_om_traceDepthList, + { "traceDepthList", "gsm_map.om.traceDepthList", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.AccessNetworkSignalInfo", HFILL }}, - { &hf_gsm_map_multipleBearerRequested, - { "multipleBearerRequested", "gsm_map.multipleBearerRequested", + "gsm_map_om.TraceDepthList", HFILL }}, + { &hf_gsm_map_om_traceNE_TypeList, + { "traceNE-TypeList", "gsm_map.om.traceNE_TypeList", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.TraceNE_TypeList", HFILL }}, + { &hf_gsm_map_om_traceInterfaceList, + { "traceInterfaceList", "gsm_map.om.traceInterfaceList", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_om.TraceInterfaceList", HFILL }}, + { &hf_gsm_map_om_traceEventList, + { "traceEventList", "gsm_map.om.traceEventList", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_om.TraceEventList", 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, + "gsm_map_om.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, + "gsm_map_om.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, + "gsm_map_om.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, + "gsm_map_om.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, + "gsm_map_om.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, + "gsm_map_om.TraceDepth", HFILL }}, + { &hf_gsm_map_om_msc_s_List, + { "msc-s-List", "gsm_map.om.msc_s_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MSC_S_InterfaceList", HFILL }}, + { &hf_gsm_map_om_mgw_List, + { "mgw-List", "gsm_map.om.mgw_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MGW_InterfaceList", HFILL }}, + { &hf_gsm_map_om_sgsn_List, + { "sgsn-List", "gsm_map.om.sgsn_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.SGSN_InterfaceList", HFILL }}, + { &hf_gsm_map_om_ggsn_List, + { "ggsn-List", "gsm_map.om.ggsn_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.GGSN_InterfaceList", HFILL }}, + { &hf_gsm_map_om_rnc_List, + { "rnc-List", "gsm_map.om.rnc_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.RNC_InterfaceList", HFILL }}, + { &hf_gsm_map_om_bmsc_List, + { "bmsc-List", "gsm_map.om.bmsc_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.BMSC_InterfaceList", HFILL }}, + { &hf_gsm_map_om_msc_s_List_01, + { "msc-s-List", "gsm_map.om.msc_s_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MSC_S_EventList", HFILL }}, + { &hf_gsm_map_om_mgw_List_01, + { "mgw-List", "gsm_map.om.mgw_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MGW_EventList", HFILL }}, + { &hf_gsm_map_om_sgsn_List_01, + { "sgsn-List", "gsm_map.om.sgsn_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.SGSN_EventList", HFILL }}, + { &hf_gsm_map_om_ggsn_List_01, + { "ggsn-List", "gsm_map.om.ggsn_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.GGSN_EventList", HFILL }}, + { &hf_gsm_map_om_bmsc_List_01, + { "bmsc-List", "gsm_map.om.bmsc_List", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.BMSC_EventList", HFILL }}, + { &hf_gsm_map_om_traceRecordingSessionReference, + { "traceRecordingSessionReference", "gsm_map.om.traceRecordingSessionReference", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.TraceRecordingSessionReference", HFILL }}, + { &hf_gsm_map_om_rnc_InterfaceList, + { "rnc-InterfaceList", "gsm_map.om.rnc_InterfaceList", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.RNC_InterfaceList", HFILL }}, + { &hf_gsm_map_om_msc_s_InterfaceList, + { "msc-s-InterfaceList", "gsm_map.om.msc_s_InterfaceList", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MSC_S_InterfaceList", HFILL }}, + { &hf_gsm_map_om_msc_s_EventList, + { "msc-s-EventList", "gsm_map.om.msc_s_EventList", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MSC_S_EventList", HFILL }}, + { &hf_gsm_map_om_mgw_InterfaceList, + { "mgw-InterfaceList", "gsm_map.om.mgw_InterfaceList", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MGW_InterfaceList", HFILL }}, + { &hf_gsm_map_om_mgw_EventList, + { "mgw-EventList", "gsm_map.om.mgw_EventList", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_om.MGW_EventList", HFILL }}, + { &hf_gsm_map_om_traceSupportIndicator, + { "traceSupportIndicator", "gsm_map.om.traceSupportIndicator", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_integrityProtectionInfo, - { "integrityProtectionInfo", "gsm_map.integrityProtectionInfo", + "gsm_map_om.NULL", HFILL }}, + { &hf_gsm_map_om_TraceNE_TypeList_msc_s, + { "msc-s", "gsm_map.om.msc-s", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_TraceNE_TypeList_mgw, + { "mgw", "gsm_map.om.mgw", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_TraceNE_TypeList_sgsn, + { "sgsn", "gsm_map.om.sgsn", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_TraceNE_TypeList_ggsn, + { "ggsn", "gsm_map.om.ggsn", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_gsm_map_om_TraceNE_TypeList_rnc, + { "rnc", "gsm_map.om.rnc", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_gsm_map_om_TraceNE_TypeList_bm_sc, + { "bm-sc", "gsm_map.om.bm-sc", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_a, + { "a", "gsm_map.om.a", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_iu, + { "iu", "gsm_map.om.iu", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_mc, + { "mc", "gsm_map.om.mc", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_map_g, + { "map-g", "gsm_map.om.map-g", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_map_b, + { "map-b", "gsm_map.om.map-b", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_map_e, + { "map-e", "gsm_map.om.map-e", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_map_f, + { "map-f", "gsm_map.om.map-f", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_cap, + { "cap", "gsm_map.om.cap", + FT_BOOLEAN, 8, NULL, 0x01, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_map_d, + { "map-d", "gsm_map.om.map-d", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_InterfaceList_map_c, + { "map-c", "gsm_map.om.map-c", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_MGW_InterfaceList_mc, + { "mc", "gsm_map.om.mc", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_MGW_InterfaceList_nb_up, + { "nb-up", "gsm_map.om.nb-up", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_MGW_InterfaceList_iu_up, + { "iu-up", "gsm_map.om.iu-up", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_gb, + { "gb", "gsm_map.om.gb", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_iu, + { "iu", "gsm_map.om.iu", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_gn, + { "gn", "gsm_map.om.gn", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_map_gr, + { "map-gr", "gsm_map.om.map-gr", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_map_gd, + { "map-gd", "gsm_map.om.map-gd", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_map_gf, + { "map-gf", "gsm_map.om.map-gf", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_gs, + { "gs", "gsm_map.om.gs", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_InterfaceList_ge, + { "ge", "gsm_map.om.ge", + FT_BOOLEAN, 8, NULL, 0x01, + "", HFILL }}, + { &hf_gsm_map_om_GGSN_InterfaceList_gn, + { "gn", "gsm_map.om.gn", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_GGSN_InterfaceList_gi, + { "gi", "gsm_map.om.gi", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_GGSN_InterfaceList_gmb, + { "gmb", "gsm_map.om.gmb", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_RNC_InterfaceList_iu, + { "iu", "gsm_map.om.iu", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_RNC_InterfaceList_iur, + { "iur", "gsm_map.om.iur", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_RNC_InterfaceList_iub, + { "iub", "gsm_map.om.iub", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_RNC_InterfaceList_uu, + { "uu", "gsm_map.om.uu", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_gsm_map_om_BMSC_InterfaceList_gmb, + { "gmb", "gsm_map.om.gmb", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_EventList_mo_mtCall, + { "mo-mtCall", "gsm_map.om.mo-mtCall", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_EventList_mo_mt_sms, + { "mo-mt-sms", "gsm_map.om.mo-mt-sms", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_EventList_lu_imsiAttach_imsiDetach, + { "lu-imsiAttach-imsiDetach", "gsm_map.om.lu-imsiAttach-imsiDetach", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_EventList_handovers, + { "handovers", "gsm_map.om.handovers", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_gsm_map_om_MSC_S_EventList_ss, + { "ss", "gsm_map.om.ss", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_gsm_map_om_MGW_EventList_context, + { "context", "gsm_map.om.context", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_EventList_pdpContext, + { "pdpContext", "gsm_map.om.pdpContext", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_EventList_mo_mt_sms, + { "mo-mt-sms", "gsm_map.om.mo-mt-sms", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_EventList_rau_gprsAttach_gprsDetach, + { "rau-gprsAttach-gprsDetach", "gsm_map.om.rau-gprsAttach-gprsDetach", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_gsm_map_om_SGSN_EventList_mbmsContext, + { "mbmsContext", "gsm_map.om.mbmsContext", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_gsm_map_om_GGSN_EventList_pdpContext, + { "pdpContext", "gsm_map.om.pdpContext", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_om_GGSN_EventList_mbmsContext, + { "mbmsContext", "gsm_map.om.mbmsContext", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_om_BMSC_EventList_mbmsMulticastServiceActivation, + { "mbmsMulticastServiceActivation", "gsm_map.om.mbmsMulticastServiceActivation", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + +/* --- Module MAP-MS-DataTypes --- --- --- */ + + { &hf_gsm_map_ms_imsi, + { "imsi", "gsm_map.ms.imsi", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.IntegrityProtectionInformation", HFILL }}, - { &hf_gsm_map_encryptionInfo, - { "encryptionInfo", "gsm_map.encryptionInfo", + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_ms_msc_Number, + { "msc-Number", "gsm_map.ms.msc_Number", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.EncryptionInformation", HFILL }}, - { &hf_gsm_map_radioResourceInformation, - { "radioResourceInformation", "gsm_map.radioResourceInformation", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_vlr_Number, + { "vlr-Number", "gsm_map.ms.vlr_Number", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RadioResourceInformation", HFILL }}, - { &hf_gsm_map_allowedGSM_Algorithms, - { "allowedGSM-Algorithms", "gsm_map.allowedGSM_Algorithms", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_lmsi, + { "lmsi", "gsm_map.ms.lmsi", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AllowedGSM_Algorithms", HFILL }}, - { &hf_gsm_map_allowedUMTS_Algorithms, - { "allowedUMTS-Algorithms", "gsm_map.allowedUMTS_Algorithms", + "gsm_map.LMSI", HFILL }}, + { &hf_gsm_map_ms_extensionContainer, + { "extensionContainer", "gsm_map.ms.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.AllowedUMTS_Algorithms", HFILL }}, - { &hf_gsm_map_radioResourceList, - { "radioResourceList", "gsm_map.radioResourceList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.RadioResourceList", HFILL }}, - { &hf_gsm_map_rab_Id, - { "rab-Id", "gsm_map.rab_Id", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.RAB_Id", HFILL }}, - { &hf_gsm_map_bssmap_ServiceHandover, - { "bssmap-ServiceHandover", "gsm_map.bssmap_ServiceHandover", + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_ms_vlr_Capability, + { "vlr-Capability", "gsm_map.ms.vlr_Capability", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.VLR_Capability", HFILL }}, + { &hf_gsm_map_ms_informPreviousNetworkEntity, + { "informPreviousNetworkEntity", "gsm_map.ms.informPreviousNetworkEntity", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_cs_LCS_NotSupportedByUE, + { "cs-LCS-NotSupportedByUE", "gsm_map.ms.cs_LCS_NotSupportedByUE", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_v_gmlc_Address, + { "v-gmlc-Address", "gsm_map.ms.v_gmlc_Address", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.BSSMAP_ServiceHandover", HFILL }}, - { &hf_gsm_map_ranap_ServiceHandover, - { "ranap-ServiceHandover", "gsm_map.ranap_ServiceHandover", + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_ms_add_info, + { "add-info", "gsm_map.ms.add_info", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ADD_Info", HFILL }}, + { &hf_gsm_map_ms_supportedCamelPhases, + { "supportedCamelPhases", "gsm_map.ms.supportedCamelPhases", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RANAP_ServiceHandover", HFILL }}, - { &hf_gsm_map_bssmap_ServiceHandoverList, - { "bssmap-ServiceHandoverList", "gsm_map.bssmap_ServiceHandoverList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.BSSMAP_ServiceHandoverList", HFILL }}, - { &hf_gsm_map_asciCallReference, - { "asciCallReference", "gsm_map.asciCallReference", + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ms_solsaSupportIndicator, + { "solsaSupportIndicator", "gsm_map.ms.solsaSupportIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_istSupportIndicator, + { "istSupportIndicator", "gsm_map.ms.istSupportIndicator", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_IST_SupportIndicator_vals), 0, + "gsm_map_ms.IST_SupportIndicator", HFILL }}, + { &hf_gsm_map_ms_superChargerSupportedInServingNetworkEntity, + { "superChargerSupportedInServingNetworkEntity", "gsm_map.ms.superChargerSupportedInServingNetworkEntity", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SuperChargerInfo_vals), 0, + "gsm_map_ms.SuperChargerInfo", HFILL }}, + { &hf_gsm_map_ms_longFTN_Supported, + { "longFTN-Supported", "gsm_map.ms.longFTN_Supported", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_supportedLCS_CapabilitySets, + { "supportedLCS-CapabilitySets", "gsm_map.ms.supportedLCS_CapabilitySets", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ASCI_CallReference", HFILL }}, - { &hf_gsm_map_geran_classmark, - { "geran-classmark", "gsm_map.geran_classmark", + "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }}, + { &hf_gsm_map_ms_offeredCamel4CSIs, + { "offeredCamel4CSIs", "gsm_map.ms.offeredCamel4CSIs", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GERAN_Classmark", HFILL }}, - { &hf_gsm_map_iuCurrentlyUsedCodec, - { "iuCurrentlyUsedCodec", "gsm_map.iuCurrentlyUsedCodec", + "gsm_map_ms.OfferedCamel4CSIs", HFILL }}, + { &hf_gsm_map_ms_supportedRAT_TypesIndicator, + { "supportedRAT-TypesIndicator", "gsm_map.ms.supportedRAT_TypesIndicator", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_iuSupportedCodecsList, - { "iuSupportedCodecsList", "gsm_map.iuSupportedCodecsList", + "gsm_map_ms.SupportedRAT_Types", HFILL }}, + { &hf_gsm_map_ms_longGroupID_Supported, + { "longGroupID-Supported", "gsm_map.ms.longGroupID_Supported", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SupportedCodecsList", HFILL }}, - { &hf_gsm_map_rab_ConfigurationIndicator, - { "rab-ConfigurationIndicator", "gsm_map.rab_ConfigurationIndicator", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_sendSubscriberData, + { "sendSubscriberData", "gsm_map.ms.sendSubscriberData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_uesbi_Iu, - { "uesbi-Iu", "gsm_map.uesbi_Iu", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_subscriberDataStored, + { "subscriberDataStored", "gsm_map.ms.subscriberDataStored", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.AgeIndicator", HFILL }}, + { &hf_gsm_map_ms_hlr_Number, + { "hlr-Number", "gsm_map.ms.hlr_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_add_Capability, + { "add-Capability", "gsm_map.ms.add_Capability", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.UESBI_Iu", HFILL }}, - { &hf_gsm_map_alternativeChannelType, - { "alternativeChannelType", "gsm_map.alternativeChannelType", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_imeisv, + { "imeisv", "gsm_map.ms.imeisv", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RadioResourceInformation", HFILL }}, - { &hf_gsm_map_tracePropagationList, - { "tracePropagationList", "gsm_map.tracePropagationList", + "gsm_map.IMEI", HFILL }}, + { &hf_gsm_map_ms_skipSubscriberDataUpdate, + { "skipSubscriberDataUpdate", "gsm_map.ms.skipSubscriberDataUpdate", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.TracePropagationList", HFILL }}, - { &hf_gsm_map_BSSMAP_ServiceHandoverList_item, - { "Item", "gsm_map.BSSMAP_ServiceHandoverList_item", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_identity, + { "identity", "gsm_map.ms.identity", + FT_UINT32, BASE_DEC, VALS(gsm_map_Identity_vals), 0, + "gsm_map.Identity", HFILL }}, + { &hf_gsm_map_ms_cancellationType, + { "cancellationType", "gsm_map.ms.cancellationType", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CancellationType_vals), 0, + "gsm_map_ms.CancellationType", HFILL }}, + { &hf_gsm_map_ms_sgsn_Number, + { "sgsn-Number", "gsm_map.ms.sgsn_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_freezeTMSI, + { "freezeTMSI", "gsm_map.ms.freezeTMSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.BSSMAP_ServiceHandoverInfo", HFILL }}, - { &hf_gsm_map_RadioResourceList_item, - { "Item", "gsm_map.RadioResourceList_item", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_freezeP_TMSI, + { "freezeP-TMSI", "gsm_map.ms.freezeP_TMSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.RadioResource", HFILL }}, - { &hf_gsm_map_handoverNumber, - { "handoverNumber", "gsm_map.handoverNumber", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_tmsi, + { "tmsi", "gsm_map.ms.tmsi", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_relocationNumberList, - { "relocationNumberList", "gsm_map.relocationNumberList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.RelocationNumberList", HFILL }}, - { &hf_gsm_map_multicallBearerInfo, - { "multicallBearerInfo", "gsm_map.multicallBearerInfo", + "gsm_map.TMSI", HFILL }}, + { &hf_gsm_map_ms_numberOfRequestedVectors, + { "numberOfRequestedVectors", "gsm_map.ms.numberOfRequestedVectors", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MulticallBearerInfo", HFILL }}, - { &hf_gsm_map_multipleBearerNotSupported, - { "multipleBearerNotSupported", "gsm_map.multipleBearerNotSupported", + "gsm_map_ms.NumberOfRequestedVectors", HFILL }}, + { &hf_gsm_map_ms_segmentationProhibited, + { "segmentationProhibited", "gsm_map.ms.segmentationProhibited", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_selectedUMTS_Algorithms, - { "selectedUMTS-Algorithms", "gsm_map.selectedUMTS_Algorithms", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_previous_LAI, + { "previous-LAI", "gsm_map.ms.previous_LAI", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LAIFixedLength", HFILL }}, + { &hf_gsm_map_ms_hopCounter, + { "hopCounter", "gsm_map.ms.hopCounter", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.HopCounter", HFILL }}, + { &hf_gsm_map_ms_authenticationSetList, + { "authenticationSetList", "gsm_map.ms.authenticationSetList", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AuthenticationSetList_vals), 0, + "gsm_map_ms.AuthenticationSetList", HFILL }}, + { &hf_gsm_map_ms_currentSecurityContext, + { "currentSecurityContext", "gsm_map.ms.currentSecurityContext", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CurrentSecurityContext_vals), 0, + "gsm_map_ms.CurrentSecurityContext", HFILL }}, + { &hf_gsm_map_ms_tripletList, + { "tripletList", "gsm_map.ms.tripletList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.TripletList", HFILL }}, + { &hf_gsm_map_ms_quintupletList, + { "quintupletList", "gsm_map.ms.quintupletList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.QuintupletList", HFILL }}, + { &hf_gsm_map_ms_TripletList_item, + { "Item", "gsm_map.ms.TripletList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SelectedUMTS_Algorithms", HFILL }}, - { &hf_gsm_map_chosenRadioResourceInformation, - { "chosenRadioResourceInformation", "gsm_map.chosenRadioResourceInformation", + "gsm_map_ms.AuthenticationTriplet", HFILL }}, + { &hf_gsm_map_ms_QuintupletList_item, + { "Item", "gsm_map.ms.QuintupletList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ChosenRadioResourceInformation", HFILL }}, - { &hf_gsm_map_iuSelectedCodec, - { "iuSelectedCodec", "gsm_map.iuSelectedCodec", + "gsm_map_ms.AuthenticationQuintuplet", HFILL }}, + { &hf_gsm_map_ms_rand, + { "rand", "gsm_map.ms.rand", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_iuAvailableCodecsList, - { "iuAvailableCodecsList", "gsm_map.iuAvailableCodecsList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CodecList", HFILL }}, - { &hf_gsm_map_integrityProtectionAlgorithm, - { "integrityProtectionAlgorithm", "gsm_map.integrityProtectionAlgorithm", + "gsm_map_ms.RAND", HFILL }}, + { &hf_gsm_map_ms_sres, + { "sres", "gsm_map.ms.sres", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ChosenIntegrityProtectionAlgorithm", HFILL }}, - { &hf_gsm_map_encryptionAlgorithm, - { "encryptionAlgorithm", "gsm_map.encryptionAlgorithm", + "gsm_map_ms.SRES", HFILL }}, + { &hf_gsm_map_ms_kc, + { "kc", "gsm_map.ms.kc", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ChosenEncryptionAlgorithm", HFILL }}, - { &hf_gsm_map_chosenChannelInfo, - { "chosenChannelInfo", "gsm_map.chosenChannelInfo", + "gsm_map_ms.Kc", HFILL }}, + { &hf_gsm_map_ms_xres, + { "xres", "gsm_map.ms.xres", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ChosenChannelInfo", HFILL }}, - { &hf_gsm_map_chosenSpeechVersion, - { "chosenSpeechVersion", "gsm_map.chosenSpeechVersion", + "gsm_map_ms.XRES", HFILL }}, + { &hf_gsm_map_ms_ck, + { "ck", "gsm_map.ms.ck", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ChosenSpeechVersion", HFILL }}, - { &hf_gsm_map_RelocationNumberList_item, - { "Item", "gsm_map.RelocationNumberList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.RelocationNumber", HFILL }}, - { &hf_gsm_map_selectedGSM_Algorithm, - { "selectedGSM-Algorithm", "gsm_map.selectedGSM_Algorithm", + "gsm_map_ms.CK", HFILL }}, + { &hf_gsm_map_ms_ik, + { "ik", "gsm_map.ms.ik", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SelectedGSM_Algorithm", HFILL }}, - { &hf_gsm_map_selectedRab_Id, - { "selectedRab-Id", "gsm_map.selectedRab_Id", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.RAB_Id", HFILL }}, - { &hf_gsm_map_iUSelectedCodec, - { "iUSelectedCodec", "gsm_map.iUSelectedCodec", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_utranCodecList, - { "utranCodecList", "gsm_map.utranCodecList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CodecList", HFILL }}, - { &hf_gsm_map_geranCodecList, - { "geranCodecList", "gsm_map.geranCodecList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CodecList", HFILL }}, - { &hf_gsm_map_codec1, - { "codec1", "gsm_map.codec1", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec2, - { "codec2", "gsm_map.codec2", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec3, - { "codec3", "gsm_map.codec3", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec4, - { "codec4", "gsm_map.codec4", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec5, - { "codec5", "gsm_map.codec5", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec6, - { "codec6", "gsm_map.codec6", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec7, - { "codec7", "gsm_map.codec7", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_codec8, - { "codec8", "gsm_map.codec8", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_keyStatus, - { "keyStatus", "gsm_map.keyStatus", - FT_UINT32, BASE_DEC, VALS(gsm_map_KeyStatus_vals), 0, - "gsm_map.KeyStatus", HFILL }}, - { &hf_gsm_map_currentlyUsedCodec, - { "currentlyUsedCodec", "gsm_map.currentlyUsedCodec", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Codec", HFILL }}, - { &hf_gsm_map_integrityProtectionAlgorithms, - { "integrityProtectionAlgorithms", "gsm_map.integrityProtectionAlgorithms", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PermittedIntegrityProtectionAlgorithms", HFILL }}, - { &hf_gsm_map_encryptionAlgorithms, - { "encryptionAlgorithms", "gsm_map.encryptionAlgorithms", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PermittedEncryptionAlgorithms", HFILL }}, - { &hf_gsm_map_targetMSC_Number, - { "targetMSC-Number", "gsm_map.targetMSC_Number", + "gsm_map_ms.IK", HFILL }}, + { &hf_gsm_map_ms_autn, + { "autn", "gsm_map.ms.autn", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_immediateResponsePreferred, - { "immediateResponsePreferred", "gsm_map.immediateResponsePreferred", + "gsm_map_ms.AUTN", HFILL }}, + { &hf_gsm_map_ms_gsm_SecurityContextData, + { "gsm-SecurityContextData", "gsm_map.ms.gsm_SecurityContextData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_re_synchronisationInfo, - { "re-synchronisationInfo", "gsm_map.re_synchronisationInfo", + "gsm_map_ms.GSM_SecurityContextData", HFILL }}, + { &hf_gsm_map_ms_umts_SecurityContextData, + { "umts-SecurityContextData", "gsm_map.ms.umts_SecurityContextData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Re_synchronisationInfo", HFILL }}, - { &hf_gsm_map_requestingNodeType, - { "requestingNodeType", "gsm_map.requestingNodeType", - FT_UINT32, BASE_DEC, VALS(gsm_map_RequestingNodeType_vals), 0, - "gsm_map.RequestingNodeType", HFILL }}, - { &hf_gsm_map_requestingPLMN_Id, - { "requestingPLMN-Id", "gsm_map.requestingPLMN_Id", + "gsm_map_ms.UMTS_SecurityContextData", HFILL }}, + { &hf_gsm_map_ms_cksn, + { "cksn", "gsm_map.ms.cksn", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PLMN_Id", HFILL }}, - { &hf_gsm_map_SendAuthenticationInfoRes_item, - { "Item", "gsm_map.SendAuthenticationInfoRes_item", + "gsm_map_ms.Cksn", HFILL }}, + { &hf_gsm_map_ms_ksi, + { "ksi", "gsm_map.ms.ksi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.KSI", HFILL }}, + { &hf_gsm_map_ms_failureCause, + { "failureCause", "gsm_map.ms.failureCause", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_FailureCause_vals), 0, + "gsm_map_ms.FailureCause", HFILL }}, + { &hf_gsm_map_ms_re_attempt, + { "re-attempt", "gsm_map.ms.re_attempt", + FT_BOOLEAN, 8, NULL, 0, + "gsm_map_ms.BOOLEAN", HFILL }}, + { &hf_gsm_map_ms_accessType, + { "accessType", "gsm_map.ms.accessType", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_AccessType_vals), 0, + "gsm_map_ms.AccessType", HFILL }}, + { &hf_gsm_map_ms_sgsn_Address, + { "sgsn-Address", "gsm_map.ms.sgsn_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_ms_sgsn_Capability, + { "sgsn-Capability", "gsm_map.ms.sgsn_Capability", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.SGSN_Capability", HFILL }}, + { &hf_gsm_map_ms_ps_LCS_NotSupportedByUE, + { "ps-LCS-NotSupportedByUE", "gsm_map.ms.ps_LCS_NotSupportedByUE", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_gprsEnhancementsSupportIndicator, + { "gprsEnhancementsSupportIndicator", "gsm_map.ms.gprsEnhancementsSupportIndicator", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SendAuthenticationInfoRes_item", HFILL }}, - { &hf_gsm_map_auts, - { "auts", "gsm_map.auts", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_smsCallBarringSupportIndicator, + { "smsCallBarringSupportIndicator", "gsm_map.ms.smsCallBarringSupportIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_an_APDU, + { "an-APDU", "gsm_map.ms.an_APDU", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.AccessNetworkSignalInfo", HFILL }}, + { &hf_gsm_map_ms_integrityProtectionInfo, + { "integrityProtectionInfo", "gsm_map.ms.integrityProtectionInfo", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AUTS", HFILL }}, - { &hf_gsm_map_imei, - { "imei", "gsm_map.imei", + "gsm_map_ms.IntegrityProtectionInformation", HFILL }}, + { &hf_gsm_map_ms_encryptionInfo, + { "encryptionInfo", "gsm_map.ms.encryptionInfo", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.IMEI", HFILL }}, - { &hf_gsm_map_requestedEquipmentInfo, - { "requestedEquipmentInfo", "gsm_map.requestedEquipmentInfo", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RequestedEquipmentInfo", HFILL }}, - { &hf_gsm_map_equipmentStatus, - { "equipmentStatus", "gsm_map.equipmentStatus", - FT_UINT32, BASE_DEC, VALS(gsm_map_EquipmentStatus_vals), 0, - "gsm_map.EquipmentStatus", HFILL }}, - { &hf_gsm_map_bmuef, - { "bmuef", "gsm_map.bmuef", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.UESBI_Iu", HFILL }}, - { &hf_gsm_map_uesbi_IuA, - { "uesbi-IuA", "gsm_map.uesbi_IuA", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.UESBI_IuA", HFILL }}, - { &hf_gsm_map_uesbi_IuB, - { "uesbi-IuB", "gsm_map.uesbi_IuB", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.UESBI_IuB", HFILL }}, - { &hf_gsm_map_BasicServiceGroupList_item, - { "Item", "gsm_map.BasicServiceGroupList_item", - FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, - "gsm_map.BasicServiceCode", HFILL }}, - { &hf_gsm_map_o_BcsmCamelTDPDataList, - { "o-BcsmCamelTDPDataList", "gsm_map.o_BcsmCamelTDPDataList", + "gsm_map_ms.EncryptionInformation", HFILL }}, + { &hf_gsm_map_ms_keyStatus, + { "keyStatus", "gsm_map.ms.keyStatus", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_KeyStatus_vals), 0, + "gsm_map_ms.KeyStatus", HFILL }}, + { &hf_gsm_map_ms_allowedGSM_Algorithms, + { "allowedGSM-Algorithms", "gsm_map.ms.allowedGSM_Algorithms", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.AllowedGSM_Algorithms", HFILL }}, + { &hf_gsm_map_ms_allowedUMTS_Algorithms, + { "allowedUMTS-Algorithms", "gsm_map.ms.allowedUMTS_Algorithms", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.AllowedUMTS_Algorithms", HFILL }}, + { &hf_gsm_map_ms_radioResourceInformation, + { "radioResourceInformation", "gsm_map.ms.radioResourceInformation", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.RadioResourceInformation", HFILL }}, + { &hf_gsm_map_ms_radioResourceList, + { "radioResourceList", "gsm_map.ms.radioResourceList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.O_BcsmCamelTDPDataList", HFILL }}, - { &hf_gsm_map_camelCapabilityHandling, - { "camelCapabilityHandling", "gsm_map.camelCapabilityHandling", + "gsm_map_ms.RadioResourceList", HFILL }}, + { &hf_gsm_map_ms_bssmap_ServiceHandover, + { "bssmap-ServiceHandover", "gsm_map.ms.bssmap_ServiceHandover", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.BSSMAP_ServiceHandover", HFILL }}, + { &hf_gsm_map_ms_ranap_ServiceHandover, + { "ranap-ServiceHandover", "gsm_map.ms.ranap_ServiceHandover", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.RANAP_ServiceHandover", HFILL }}, + { &hf_gsm_map_ms_bssmap_ServiceHandoverList, + { "bssmap-ServiceHandoverList", "gsm_map.ms.bssmap_ServiceHandoverList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CamelCapabilityHandling", HFILL }}, - { &hf_gsm_map_notificationToCSE, - { "notificationToCSE", "gsm_map.notificationToCSE", + "gsm_map_ms.BSSMAP_ServiceHandoverList", HFILL }}, + { &hf_gsm_map_ms_currentlyUsedCodec, + { "currentlyUsedCodec", "gsm_map.ms.currentlyUsedCodec", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_iuSupportedCodecsList, + { "iuSupportedCodecsList", "gsm_map.ms.iuSupportedCodecsList", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_csiActive, - { "csiActive", "gsm_map.csiActive", + "gsm_map_ms.SupportedCodecsList", HFILL }}, + { &hf_gsm_map_ms_rab_ConfigurationIndicator, + { "rab-ConfigurationIndicator", "gsm_map.ms.rab_ConfigurationIndicator", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_O_BcsmCamelTDPDataList_item, - { "Item", "gsm_map.O_BcsmCamelTDPDataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.O_BcsmCamelTDPData", HFILL }}, - { &hf_gsm_map_o_BcsmTriggerDetectionPoint, - { "o-BcsmTriggerDetectionPoint", "gsm_map.o_BcsmTriggerDetectionPoint", - FT_UINT32, BASE_DEC, VALS(gsm_map_O_BcsmTriggerDetectionPoint_vals), 0, - "gsm_map.O_BcsmTriggerDetectionPoint", HFILL }}, - { &hf_gsm_map_serviceKey, - { "serviceKey", "gsm_map.serviceKey", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ServiceKey", HFILL }}, - { &hf_gsm_map_gsmSCF_Address, - { "gsmSCF-Address", "gsm_map.gsmSCF_Address", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_iuSelectedCodec, + { "iuSelectedCodec", "gsm_map.ms.iuSelectedCodec", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_defaultCallHandling, - { "defaultCallHandling", "gsm_map.defaultCallHandling", - FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultCallHandling_vals), 0, - "gsm_map.DefaultCallHandling", HFILL }}, - { &hf_gsm_map_msisdn, - { "msisdn", "gsm_map.msisdn", + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_alternativeChannelType, + { "alternativeChannelType", "gsm_map.ms.alternativeChannelType", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_category, - { "category", "gsm_map.category", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Category", HFILL }}, - { &hf_gsm_map_subscriberStatus, - { "subscriberStatus", "gsm_map.subscriberStatus", - FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberStatus_vals), 0, - "gsm_map.SubscriberStatus", HFILL }}, - { &hf_gsm_map_bearerserviceList, - { "bearerserviceList", "gsm_map.bearerserviceList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.BearerServiceList", HFILL }}, - { &hf_gsm_map_teleserviceList, - { "teleserviceList", "gsm_map.teleserviceList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.TeleserviceList", HFILL }}, - { &hf_gsm_map_provisionedSS, - { "provisionedSS", "gsm_map.provisionedSS", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.Ext_SS_InfoList", HFILL }}, - { &hf_gsm_map_odb_Data, - { "odb-Data", "gsm_map.odb_Data", + "gsm_map_ms.RadioResourceInformation", HFILL }}, + { &hf_gsm_map_ms_tracePropagationList, + { "tracePropagationList", "gsm_map.ms.tracePropagationList", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ODB_Data", HFILL }}, - { &hf_gsm_map_roamingRestrictionDueToUnsupportedFeature, - { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.roamingRestrictionDueToUnsupportedFeature", + "gsm_map_om.TracePropagationList", HFILL }}, + { &hf_gsm_map_ms_integrityProtectionAlgorithms, + { "integrityProtectionAlgorithms", "gsm_map.ms.integrityProtectionAlgorithms", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.PermittedIntegrityProtectionAlgorithms", HFILL }}, + { &hf_gsm_map_ms_encryptionAlgorithms, + { "encryptionAlgorithms", "gsm_map.ms.encryptionAlgorithms", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.PermittedEncryptionAlgorithms", HFILL }}, + { &hf_gsm_map_ms_targetCellId, + { "targetCellId", "gsm_map.ms.targetCellId", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.GlobalCellId", HFILL }}, + { &hf_gsm_map_ms_ho_NumberNotRequired, + { "ho-NumberNotRequired", "gsm_map.ms.ho_NumberNotRequired", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_regionalSubscriptionData, - { "regionalSubscriptionData", "gsm_map.regionalSubscriptionData", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ZoneCodeList", HFILL }}, - { &hf_gsm_map_vbsSubscriptionData, - { "vbsSubscriptionData", "gsm_map.vbsSubscriptionData", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.VBSDataList", HFILL }}, - { &hf_gsm_map_vgcsSubscriptionData, - { "vgcsSubscriptionData", "gsm_map.vgcsSubscriptionData", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_targetRNCId, + { "targetRNCId", "gsm_map.ms.targetRNCId", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.RNCId", HFILL }}, + { &hf_gsm_map_ms_multipleBearerRequested, + { "multipleBearerRequested", "gsm_map.ms.multipleBearerRequested", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_rab_Id, + { "rab-Id", "gsm_map.ms.rab_Id", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.VGCSDataList", HFILL }}, - { &hf_gsm_map_vlrCamelSubscriptionInfo, - { "vlrCamelSubscriptionInfo", "gsm_map.vlrCamelSubscriptionInfo", + "gsm_map_ms.RAB_Id", HFILL }}, + { &hf_gsm_map_ms_asciCallReference, + { "asciCallReference", "gsm_map.ms.asciCallReference", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ASCI_CallReference", HFILL }}, + { &hf_gsm_map_ms_geran_classmark, + { "geran-classmark", "gsm_map.ms.geran_classmark", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.GERAN_Classmark", HFILL }}, + { &hf_gsm_map_ms_iuCurrentlyUsedCodec, + { "iuCurrentlyUsedCodec", "gsm_map.ms.iuCurrentlyUsedCodec", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_uesbi_Iu, + { "uesbi-Iu", "gsm_map.ms.uesbi_Iu", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.VlrCamelSubscriptionInfo", HFILL }}, - { &hf_gsm_map_naea_PreferredCI, - { "naea-PreferredCI", "gsm_map.naea_PreferredCI", + "gsm_map_ms.UESBI_Iu", HFILL }}, + { &hf_gsm_map_ms_BSSMAP_ServiceHandoverList_item, + { "Item", "gsm_map.ms.BSSMAP_ServiceHandoverList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NAEA_PreferredCI", HFILL }}, - { &hf_gsm_map_gprsSubscriptionData, - { "gprsSubscriptionData", "gsm_map.gprsSubscriptionData", + "gsm_map_ms.BSSMAP_ServiceHandoverInfo", HFILL }}, + { &hf_gsm_map_ms_RadioResourceList_item, + { "Item", "gsm_map.ms.RadioResourceList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GPRSSubscriptionData", HFILL }}, - { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsupportedFeature, - { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsupportedFeature", + "gsm_map_ms.RadioResource", HFILL }}, + { &hf_gsm_map_ms_handoverNumber, + { "handoverNumber", "gsm_map.ms.handoverNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_relocationNumberList, + { "relocationNumberList", "gsm_map.ms.relocationNumberList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.RelocationNumberList", HFILL }}, + { &hf_gsm_map_ms_multicallBearerInfo, + { "multicallBearerInfo", "gsm_map.ms.multicallBearerInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.MulticallBearerInfo", HFILL }}, + { &hf_gsm_map_ms_multipleBearerNotSupported, + { "multipleBearerNotSupported", "gsm_map.ms.multipleBearerNotSupported", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_networkAccessMode, - { "networkAccessMode", "gsm_map.networkAccessMode", - FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkAccessMode_vals), 0, - "gsm_map.NetworkAccessMode", HFILL }}, - { &hf_gsm_map_lsaInformation, - { "lsaInformation", "gsm_map.lsaInformation", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_selectedUMTS_Algorithms, + { "selectedUMTS-Algorithms", "gsm_map.ms.selectedUMTS_Algorithms", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LSAInformation", HFILL }}, - { &hf_gsm_map_lmu_Indicator, - { "lmu-Indicator", "gsm_map.lmu_Indicator", + "gsm_map_ms.SelectedUMTS_Algorithms", HFILL }}, + { &hf_gsm_map_ms_chosenRadioResourceInformation, + { "chosenRadioResourceInformation", "gsm_map.ms.chosenRadioResourceInformation", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_lcsInformation, - { "lcsInformation", "gsm_map.lcsInformation", + "gsm_map_ms.ChosenRadioResourceInformation", HFILL }}, + { &hf_gsm_map_ms_iuAvailableCodecsList, + { "iuAvailableCodecsList", "gsm_map.ms.iuAvailableCodecsList", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCSInformation", HFILL }}, - { &hf_gsm_map_istAlertTimer, - { "istAlertTimer", "gsm_map.istAlertTimer", + "gsm_map_ms.CodecList", HFILL }}, + { &hf_gsm_map_ms_integrityProtectionAlgorithm, + { "integrityProtectionAlgorithm", "gsm_map.ms.integrityProtectionAlgorithm", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.ChosenIntegrityProtectionAlgorithm", HFILL }}, + { &hf_gsm_map_ms_encryptionAlgorithm, + { "encryptionAlgorithm", "gsm_map.ms.encryptionAlgorithm", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.ChosenEncryptionAlgorithm", HFILL }}, + { &hf_gsm_map_ms_chosenChannelInfo, + { "chosenChannelInfo", "gsm_map.ms.chosenChannelInfo", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.ChosenChannelInfo", HFILL }}, + { &hf_gsm_map_ms_chosenSpeechVersion, + { "chosenSpeechVersion", "gsm_map.ms.chosenSpeechVersion", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.ChosenSpeechVersion", HFILL }}, + { &hf_gsm_map_ms_targetMSC_Number, + { "targetMSC-Number", "gsm_map.ms.targetMSC_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_selectedRab_Id, + { "selectedRab-Id", "gsm_map.ms.selectedRab_Id", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.IST_AlertTimerValue", HFILL }}, - { &hf_gsm_map_superChargerSupportedInHLR, - { "superChargerSupportedInHLR", "gsm_map.superChargerSupportedInHLR", + "gsm_map_ms.RAB_Id", HFILL }}, + { &hf_gsm_map_ms_selectedGSM_Algorithm, + { "selectedGSM-Algorithm", "gsm_map.ms.selectedGSM_Algorithm", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AgeIndicator", HFILL }}, - { &hf_gsm_map_mc_SS_Info, - { "mc-SS-Info", "gsm_map.mc_SS_Info", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.MC_SS_Info", HFILL }}, - { &hf_gsm_map_cs_AllocationRetentionPriority, - { "cs-AllocationRetentionPriority", "gsm_map.cs_AllocationRetentionPriority", + "gsm_map_ms.SelectedGSM_Algorithm", HFILL }}, + { &hf_gsm_map_ms_iUSelectedCodec, + { "iUSelectedCodec", "gsm_map.ms.iUSelectedCodec", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CS_AllocationRetentionPriority", HFILL }}, - { &hf_gsm_map_sgsn_CAMEL_SubscriptionInfo, - { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.sgsn_CAMEL_SubscriptionInfo", + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_utranCodecList, + { "utranCodecList", "gsm_map.ms.utranCodecList", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SGSN_CAMEL_SubscriptionInfo", HFILL }}, - { &hf_gsm_map_chargingCharacteristics, - { "chargingCharacteristics", "gsm_map.chargingCharacteristics", - FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00, - "gsm_map.ChargingCharacteristics", HFILL }}, - { &hf_gsm_map_accessRestrictionData, - { "accessRestrictionData", "gsm_map.accessRestrictionData", + "gsm_map_ms.CodecList", HFILL }}, + { &hf_gsm_map_ms_geranCodecList, + { "geranCodecList", "gsm_map.ms.geranCodecList", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.CodecList", HFILL }}, + { &hf_gsm_map_ms_codec1, + { "codec1", "gsm_map.ms.codec1", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec2, + { "codec2", "gsm_map.ms.codec2", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec3, + { "codec3", "gsm_map.ms.codec3", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec4, + { "codec4", "gsm_map.ms.codec4", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec5, + { "codec5", "gsm_map.ms.codec5", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec6, + { "codec6", "gsm_map.ms.codec6", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec7, + { "codec7", "gsm_map.ms.codec7", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_codec8, + { "codec8", "gsm_map.ms.codec8", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AccessRestrictionData", HFILL }}, - { &hf_gsm_map_gmlc_List, - { "gmlc-List", "gsm_map.gmlc_List", + "gsm_map_ms.Codec", HFILL }}, + { &hf_gsm_map_ms_RelocationNumberList_item, + { "Item", "gsm_map.ms.RelocationNumberList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.RelocationNumber", HFILL }}, + { &hf_gsm_map_ms_immediateResponsePreferred, + { "immediateResponsePreferred", "gsm_map.ms.immediateResponsePreferred", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_re_synchronisationInfo, + { "re-synchronisationInfo", "gsm_map.ms.re_synchronisationInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.Re_synchronisationInfo", HFILL }}, + { &hf_gsm_map_ms_requestingNodeType, + { "requestingNodeType", "gsm_map.ms.requestingNodeType", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RequestingNodeType_vals), 0, + "gsm_map_ms.RequestingNodeType", HFILL }}, + { &hf_gsm_map_ms_requestingPLMN_Id, + { "requestingPLMN-Id", "gsm_map.ms.requestingPLMN_Id", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.PLMN_Id", HFILL }}, + { &hf_gsm_map_ms_auts, + { "auts", "gsm_map.ms.auts", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.AUTS", HFILL }}, + { &hf_gsm_map_ms_imei, + { "imei", "gsm_map.ms.imei", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMEI", HFILL }}, + { &hf_gsm_map_ms_requestedEquipmentInfo, + { "requestedEquipmentInfo", "gsm_map.ms.requestedEquipmentInfo", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.RequestedEquipmentInfo", HFILL }}, + { &hf_gsm_map_ms_equipmentStatus, + { "equipmentStatus", "gsm_map.ms.equipmentStatus", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_EquipmentStatus_vals), 0, + "gsm_map_ms.EquipmentStatus", HFILL }}, + { &hf_gsm_map_ms_bmuef, + { "bmuef", "gsm_map.ms.bmuef", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.UESBI_Iu", HFILL }}, + { &hf_gsm_map_ms_uesbi_IuA, + { "uesbi-IuA", "gsm_map.ms.uesbi_IuA", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.UESBI_IuA", HFILL }}, + { &hf_gsm_map_ms_uesbi_IuB, + { "uesbi-IuB", "gsm_map.ms.uesbi_IuB", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.UESBI_IuB", HFILL }}, + { &hf_gsm_map_ms_gmlc_List, + { "gmlc-List", "gsm_map.ms.gmlc_List", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.GMLC_List", HFILL }}, - { &hf_gsm_map_lcs_PrivacyExceptionList, - { "lcs-PrivacyExceptionList", "gsm_map.lcs_PrivacyExceptionList", + "gsm_map_ms.GMLC_List", HFILL }}, + { &hf_gsm_map_ms_lcs_PrivacyExceptionList, + { "lcs-PrivacyExceptionList", "gsm_map.ms.lcs_PrivacyExceptionList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.LCS_PrivacyExceptionList", HFILL }}, - { &hf_gsm_map_molr_List, - { "molr-List", "gsm_map.molr_List", + "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }}, + { &hf_gsm_map_ms_molr_List, + { "molr-List", "gsm_map.ms.molr_List", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MOLR_List", HFILL }}, - { &hf_gsm_map_add_lcs_PrivacyExceptionList, - { "add-lcs-PrivacyExceptionList", "gsm_map.add_lcs_PrivacyExceptionList", + "gsm_map_ms.MOLR_List", HFILL }}, + { &hf_gsm_map_ms_add_lcs_PrivacyExceptionList, + { "add-lcs-PrivacyExceptionList", "gsm_map.ms.add_lcs_PrivacyExceptionList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.LCS_PrivacyExceptionList", HFILL }}, - { &hf_gsm_map_GMLC_List_item, - { "Item", "gsm_map.GMLC_List_item", + "gsm_map_ms.LCS_PrivacyExceptionList", HFILL }}, + { &hf_gsm_map_ms_GMLC_List_item, + { "Item", "gsm_map.ms.GMLC_List_item", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_GPRSDataList_item, - { "Item", "gsm_map.GPRSDataList_item", + { &hf_gsm_map_ms_GPRSDataList_item, + { "Item", "gsm_map.ms.GPRSDataList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.PDP_Context", HFILL }}, - { &hf_gsm_map_pdp_ContextId, - { "pdp-ContextId", "gsm_map.pdp_ContextId", + "gsm_map_ms.PDP_Context", HFILL }}, + { &hf_gsm_map_ms_pdp_ContextId, + { "pdp-ContextId", "gsm_map.ms.pdp_ContextId", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ContextId", HFILL }}, - { &hf_gsm_map_pdp_Type, - { "pdp-Type", "gsm_map.pdp_Type", + "gsm_map_ms.ContextId", HFILL }}, + { &hf_gsm_map_ms_pdp_Type, + { "pdp-Type", "gsm_map.ms.pdp_Type", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PDP_Type", HFILL }}, - { &hf_gsm_map_pdp_Address, - { "pdp-Address", "gsm_map.pdp_Address", + "gsm_map_ms.PDP_Type", HFILL }}, + { &hf_gsm_map_ms_pdp_Address, + { "pdp-Address", "gsm_map.ms.pdp_Address", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PDP_Address", HFILL }}, - { &hf_gsm_map_qos_Subscribed, - { "qos-Subscribed", "gsm_map.qos_Subscribed", + "gsm_map_ms.PDP_Address", HFILL }}, + { &hf_gsm_map_ms_qos_Subscribed, + { "qos-Subscribed", "gsm_map.ms.qos_Subscribed", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.QoS_Subscribed", HFILL }}, - { &hf_gsm_map_vplmnAddressAllowed, - { "vplmnAddressAllowed", "gsm_map.vplmnAddressAllowed", + "gsm_map_ms.QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_vplmnAddressAllowed, + { "vplmnAddressAllowed", "gsm_map.ms.vplmnAddressAllowed", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_apn, - { "apn", "gsm_map.apn", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_apn, + { "apn", "gsm_map.ms.apn", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.APN", HFILL }}, - { &hf_gsm_map_ext_QoS_Subscribed, - { "ext-QoS-Subscribed", "gsm_map.ext_QoS_Subscribed", + "gsm_map_ms.APN", HFILL }}, + { &hf_gsm_map_ms_ext_QoS_Subscribed, + { "ext-QoS-Subscribed", "gsm_map.ms.ext_QoS_Subscribed", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_pdp_ChargingCharacteristics, - { "pdp-ChargingCharacteristics", "gsm_map.pdp_ChargingCharacteristics", + "gsm_map_ms.Ext_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_pdp_ChargingCharacteristics, + { "pdp-ChargingCharacteristics", "gsm_map.ms.pdp_ChargingCharacteristics", FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00, - "gsm_map.ChargingCharacteristics", HFILL }}, - { &hf_gsm_map_ext2_QoS_Subscribed, - { "ext2-QoS-Subscribed", "gsm_map.ext2_QoS_Subscribed", + "gsm_map_ms.ChargingCharacteristics", HFILL }}, + { &hf_gsm_map_ms_ext2_QoS_Subscribed, + { "ext2-QoS-Subscribed", "gsm_map.ms.ext2_QoS_Subscribed", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext2_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_completeDataListIncluded, - { "completeDataListIncluded", "gsm_map.completeDataListIncluded", + "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_completeDataListIncluded, + { "completeDataListIncluded", "gsm_map.ms.completeDataListIncluded", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gprsDataList, - { "gprsDataList", "gsm_map.gprsDataList", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_gprsDataList, + { "gprsDataList", "gsm_map.ms.gprsDataList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.GPRSDataList", HFILL }}, - { &hf_gsm_map_gprs_CSI, - { "gprs-CSI", "gsm_map.gprs_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GPRS_CSI", HFILL }}, - { &hf_gsm_map_mo_sms_CSI, - { "mo-sms-CSI", "gsm_map.mo_sms_CSI", + "gsm_map_ms.GPRSDataList", HFILL }}, + { &hf_gsm_map_ms_gprs_CSI, + { "gprs-CSI", "gsm_map.ms.gprs_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SMS_CSI", HFILL }}, - { &hf_gsm_map_mt_sms_CSI, - { "mt-sms-CSI", "gsm_map.mt_sms_CSI", + "gsm_map_ms.GPRS_CSI", HFILL }}, + { &hf_gsm_map_ms_mo_sms_CSI, + { "mo-sms-CSI", "gsm_map.ms.mo_sms_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SMS_CSI", HFILL }}, - { &hf_gsm_map_mt_smsCAMELTDP_CriteriaList, - { "mt-smsCAMELTDP-CriteriaList", "gsm_map.mt_smsCAMELTDP_CriteriaList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MT_smsCAMELTDP_CriteriaList", HFILL }}, - { &hf_gsm_map_mg_csi, - { "mg-csi", "gsm_map.mg_csi", + "gsm_map_ms.SMS_CSI", HFILL }}, + { &hf_gsm_map_ms_mt_sms_CSI, + { "mt-sms-CSI", "gsm_map.ms.mt_sms_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.MG_CSI", HFILL }}, - { &hf_gsm_map_gprs_CamelTDPDataList, - { "gprs-CamelTDPDataList", "gsm_map.gprs_CamelTDPDataList", + "gsm_map_ms.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, - "gsm_map.GPRS_CamelTDPDataList", HFILL }}, - { &hf_gsm_map_csi_Active, - { "csi-Active", "gsm_map.csi_Active", + "gsm_map_ms.MT_smsCAMELTDP_CriteriaList", HFILL }}, + { &hf_gsm_map_ms_mg_csi, + { "mg-csi", "gsm_map.ms.mg_csi", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_GPRS_CamelTDPDataList_item, - { "Item", "gsm_map.GPRS_CamelTDPDataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GPRS_CamelTDPData", HFILL }}, - { &hf_gsm_map_gprs_TriggerDetectionPoint, - { "gprs-TriggerDetectionPoint", "gsm_map.gprs_TriggerDetectionPoint", - FT_UINT32, BASE_DEC, VALS(gsm_map_GPRS_TriggerDetectionPoint_vals), 0, - "gsm_map.GPRS_TriggerDetectionPoint", HFILL }}, - { &hf_gsm_map_defaultSessionHandling, - { "defaultSessionHandling", "gsm_map.defaultSessionHandling", - FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultGPRS_Handling_vals), 0, - "gsm_map.DefaultGPRS_Handling", HFILL }}, - { &hf_gsm_map_LSADataList_item, - { "Item", "gsm_map.LSADataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LSAData", HFILL }}, - { &hf_gsm_map_lsaIdentity, - { "lsaIdentity", "gsm_map.lsaIdentity", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LSAIdentity", HFILL }}, - { &hf_gsm_map_lsaAttributes, - { "lsaAttributes", "gsm_map.lsaAttributes", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LSAAttributes", HFILL }}, - { &hf_gsm_map_lsaActiveModeIndicator, - { "lsaActiveModeIndicator", "gsm_map.lsaActiveModeIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_lsaOnlyAccessIndicator, - { "lsaOnlyAccessIndicator", "gsm_map.lsaOnlyAccessIndicator", - FT_UINT32, BASE_DEC, VALS(gsm_map_LSAOnlyAccessIndicator_vals), 0, - "gsm_map.LSAOnlyAccessIndicator", HFILL }}, - { &hf_gsm_map_lsaDataList, - { "lsaDataList", "gsm_map.lsaDataList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.LSADataList", HFILL }}, - { &hf_gsm_map_bearerServiceList, - { "bearerServiceList", "gsm_map.bearerServiceList", + "gsm_map_ms.MG_CSI", HFILL }}, + { &hf_gsm_map_ms_gprs_CamelTDPDataList, + { "gprs-CamelTDPDataList", "gsm_map.ms.gprs_CamelTDPDataList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.BearerServiceList", HFILL }}, - { &hf_gsm_map_ss_List, - { "ss-List", "gsm_map.ss_List", + "gsm_map_ms.GPRS_CamelTDPDataList", HFILL }}, + { &hf_gsm_map_ms_camelCapabilityHandling, + { "camelCapabilityHandling", "gsm_map.ms.camelCapabilityHandling", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SS_List", HFILL }}, - { &hf_gsm_map_odb_GeneralData, - { "odb-GeneralData", "gsm_map.odb_GeneralData", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ODB_GeneralData", HFILL }}, - { &hf_gsm_map_regionalSubscriptionResponse, - { "regionalSubscriptionResponse", "gsm_map.regionalSubscriptionResponse", - FT_UINT32, BASE_DEC, VALS(gsm_map_RegionalSubscriptionResponse_vals), 0, - "gsm_map.RegionalSubscriptionResponse", HFILL }}, - { &hf_gsm_map_basicServiceList, - { "basicServiceList", "gsm_map.basicServiceList", + "gsm_map_ms.CamelCapabilityHandling", HFILL }}, + { &hf_gsm_map_ms_notificationToCSE, + { "notificationToCSE", "gsm_map.ms.notificationToCSE", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_csi_Active, + { "csi-Active", "gsm_map.ms.csi_Active", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_GPRS_CamelTDPDataList_item, + { "Item", "gsm_map.ms.GPRS_CamelTDPDataList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.GPRS_CamelTDPData", 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, + "gsm_map_ms.GPRS_TriggerDetectionPoint", HFILL }}, + { &hf_gsm_map_ms_serviceKey, + { "serviceKey", "gsm_map.ms.serviceKey", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.BasicServiceList", HFILL }}, - { &hf_gsm_map_regionalSubscriptionIdentifier, - { "regionalSubscriptionIdentifier", "gsm_map.regionalSubscriptionIdentifier", + "gsm_map_ms.ServiceKey", HFILL }}, + { &hf_gsm_map_ms_gsmSCF_Address, + { "gsmSCF-Address", "gsm_map.ms.gsmSCF_Address", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ZoneCode", HFILL }}, - { &hf_gsm_map_vbsGroupIndication, - { "vbsGroupIndication", "gsm_map.vbsGroupIndication", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_vgcsGroupIndication, - { "vgcsGroupIndication", "gsm_map.vgcsGroupIndication", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_camelSubscriptionInfoWithdraw, - { "camelSubscriptionInfoWithdraw", "gsm_map.camelSubscriptionInfoWithdraw", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gprsSubscriptionDataWithdraw, - { "gprsSubscriptionDataWithdraw", "gsm_map.gprsSubscriptionDataWithdraw", - FT_UINT32, BASE_DEC, VALS(gsm_map_GPRSSubscriptionDataWithdraw_vals), 0, - "gsm_map.GPRSSubscriptionDataWithdraw", HFILL }}, - { &hf_gsm_map_roamingRestrictedInSgsnDueToUnsuppportedFeature, - { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.roamingRestrictedInSgsnDueToUnsuppportedFeature", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_lsaInformationWithdraw, - { "lsaInformationWithdraw", "gsm_map.lsaInformationWithdraw", - FT_UINT32, BASE_DEC, VALS(gsm_map_LSAInformationWithdraw_vals), 0, - "gsm_map.LSAInformationWithdraw", HFILL }}, - { &hf_gsm_map_gmlc_ListWithdraw, - { "gmlc-ListWithdraw", "gsm_map.gmlc_ListWithdraw", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_istInformationWithdraw, - { "istInformationWithdraw", "gsm_map.istInformationWithdraw", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_specificCSI_Withdraw, - { "specificCSI-Withdraw", "gsm_map.specificCSI_Withdraw", + "gsm_map.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, + "gsm_map_ms.DefaultGPRS_Handling", HFILL }}, + { &hf_gsm_map_ms_LSADataList_item, + { "Item", "gsm_map.ms.LSADataList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.LSAData", HFILL }}, + { &hf_gsm_map_ms_lsaIdentity, + { "lsaIdentity", "gsm_map.ms.lsaIdentity", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SpecificCSI_Withdraw", HFILL }}, - { &hf_gsm_map_chargingCharacteristicsWithdraw, - { "chargingCharacteristicsWithdraw", "gsm_map.chargingCharacteristicsWithdraw", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_allGPRSData, - { "allGPRSData", "gsm_map.allGPRSData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_contextIdList, - { "contextIdList", "gsm_map.contextIdList", + "gsm_map_ms.LSAIdentity", HFILL }}, + { &hf_gsm_map_ms_lsaAttributes, + { "lsaAttributes", "gsm_map.ms.lsaAttributes", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.LSAAttributes", HFILL }}, + { &hf_gsm_map_ms_lsaActiveModeIndicator, + { "lsaActiveModeIndicator", "gsm_map.ms.lsaActiveModeIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_lsaOnlyAccessIndicator, + { "lsaOnlyAccessIndicator", "gsm_map.ms.lsaOnlyAccessIndicator", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAOnlyAccessIndicator_vals), 0, + "gsm_map_ms.LSAOnlyAccessIndicator", HFILL }}, + { &hf_gsm_map_ms_lsaDataList, + { "lsaDataList", "gsm_map.ms.lsaDataList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ContextIdList", HFILL }}, - { &hf_gsm_map_ContextIdList_item, - { "Item", "gsm_map.ContextIdList_item", + "gsm_map_ms.LSADataList", HFILL }}, + { &hf_gsm_map_ms_msisdn, + { "msisdn", "gsm_map.ms.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_category, + { "category", "gsm_map.ms.category", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Category", HFILL }}, + { &hf_gsm_map_ms_subscriberStatus, + { "subscriberStatus", "gsm_map.ms.subscriberStatus", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberStatus_vals), 0, + "gsm_map_ms.SubscriberStatus", HFILL }}, + { &hf_gsm_map_ms_bearerServiceList, + { "bearerServiceList", "gsm_map.ms.bearerServiceList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ContextId", HFILL }}, - { &hf_gsm_map_allLSAData, - { "allLSAData", "gsm_map.allLSAData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_lsaIdentityList, - { "lsaIdentityList", "gsm_map.lsaIdentityList", + "gsm_map_ms.BearerServiceList", HFILL }}, + { &hf_gsm_map_ms_teleserviceList, + { "teleserviceList", "gsm_map.ms.teleserviceList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.LSAIdentityList", HFILL }}, - { &hf_gsm_map_LSAIdentityList_item, - { "Item", "gsm_map.LSAIdentityList_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LSAIdentity", HFILL }}, - { &hf_gsm_map_BasicServiceList_item, - { "Item", "gsm_map.BasicServiceList_item", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, - "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_o_CSI, - { "o-CSI", "gsm_map.o_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.O_CSI", HFILL }}, - { &hf_gsm_map_ss_CSI, - { "ss-CSI", "gsm_map.ss_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SS_CSI", HFILL }}, - { &hf_gsm_map_o_BcsmCamelTDP_CriteriaList, - { "o-BcsmCamelTDP-CriteriaList", "gsm_map.o_BcsmCamelTDP_CriteriaList", + "gsm_map_ms.TeleserviceList", HFILL }}, + { &hf_gsm_map_ms_provisionedSS, + { "provisionedSS", "gsm_map.ms.provisionedSS", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.O_BcsmCamelTDPCriteriaList", HFILL }}, - { &hf_gsm_map_tif_CSI, - { "tif-CSI", "gsm_map.tif_CSI", + "gsm_map_ms.Ext_SS_InfoList", HFILL }}, + { &hf_gsm_map_ms_odb_Data, + { "odb-Data", "gsm_map.ms.odb_Data", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_m_CSI, - { "m-CSI", "gsm_map.m_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.M_CSI", HFILL }}, - { &hf_gsm_map_vt_CSI, - { "vt-CSI", "gsm_map.vt_CSI", + "gsm_map_ms.ODB_Data", HFILL }}, + { &hf_gsm_map_ms_roamingRestrictionDueToUnsupportedFeature, + { "roamingRestrictionDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictionDueToUnsupportedFeature", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_CSI", HFILL }}, - { &hf_gsm_map_t_BCSM_CAMEL_TDP_CriteriaList, - { "t-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.t_BCSM_CAMEL_TDP_CriteriaList", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_regionalSubscriptionData, + { "regionalSubscriptionData", "gsm_map.ms.regionalSubscriptionData", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, - { &hf_gsm_map_d_CSI, - { "d-CSI", "gsm_map.d_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.D_CSI", HFILL }}, - { &hf_gsm_map_MT_smsCAMELTDP_CriteriaList_item, - { "Item", "gsm_map.MT_smsCAMELTDP_CriteriaList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.MT_smsCAMELTDP_Criteria", HFILL }}, - { &hf_gsm_map_sms_TriggerDetectionPoint, - { "sms-TriggerDetectionPoint", "gsm_map.sms_TriggerDetectionPoint", - FT_UINT32, BASE_DEC, VALS(gsm_map_SMS_TriggerDetectionPoint_vals), 0, - "gsm_map.SMS_TriggerDetectionPoint", HFILL }}, - { &hf_gsm_map_tpdu_TypeCriterion, - { "tpdu-TypeCriterion", "gsm_map.tpdu_TypeCriterion", + "gsm_map_ms.ZoneCodeList", HFILL }}, + { &hf_gsm_map_ms_vbsSubscriptionData, + { "vbsSubscriptionData", "gsm_map.ms.vbsSubscriptionData", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.TPDU_TypeCriterion", HFILL }}, - { &hf_gsm_map_TPDU_TypeCriterion_item, - { "Item", "gsm_map.TPDU_TypeCriterion_item", - FT_UINT32, BASE_DEC, VALS(gsm_map_MT_SMS_TPDU_Type_vals), 0, - "gsm_map.MT_SMS_TPDU_Type", HFILL }}, - { &hf_gsm_map_dp_AnalysedInfoCriteriaList, - { "dp-AnalysedInfoCriteriaList", "gsm_map.dp_AnalysedInfoCriteriaList", + "gsm_map_ms.VBSDataList", HFILL }}, + { &hf_gsm_map_ms_vgcsSubscriptionData, + { "vgcsSubscriptionData", "gsm_map.ms.vgcsSubscriptionData", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.DP_AnalysedInfoCriteriaList", HFILL }}, - { &hf_gsm_map_DP_AnalysedInfoCriteriaList_item, - { "Item", "gsm_map.DP_AnalysedInfoCriteriaList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.DP_AnalysedInfoCriterium", HFILL }}, - { &hf_gsm_map_dialledNumber, - { "dialledNumber", "gsm_map.dialledNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_ss_CamelData, - { "ss-CamelData", "gsm_map.ss_CamelData", + "gsm_map_ms.VGCSDataList", HFILL }}, + { &hf_gsm_map_ms_vlrCamelSubscriptionInfo, + { "vlrCamelSubscriptionInfo", "gsm_map.ms.vlrCamelSubscriptionInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SS_CamelData", HFILL }}, - { &hf_gsm_map_ss_EventList, - { "ss-EventList", "gsm_map.ss_EventList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SS_EventList", HFILL }}, - { &hf_gsm_map_mobilityTriggers, - { "mobilityTriggers", "gsm_map.mobilityTriggers", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MobilityTriggers", HFILL }}, - { &hf_gsm_map_BearerServiceList_item, - { "Item", "gsm_map.BearerServiceList_item", + "gsm_map_ms.VlrCamelSubscriptionInfo", HFILL }}, + { &hf_gsm_map_ms_BearerServiceList_item, + { "Item", "gsm_map.ms.BearerServiceList_item", FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, "gsm_map.Ext_BearerServiceCode", HFILL }}, - { &hf_gsm_map_TeleserviceList_item, - { "Item", "gsm_map.TeleserviceList_item", + { &hf_gsm_map_ms_TeleserviceList_item, + { "Item", "gsm_map.ms.TeleserviceList_item", FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, "gsm_map.Ext_TeleserviceCode", HFILL }}, - { &hf_gsm_map_Ext_SS_InfoList_item, - { "Item", "gsm_map.Ext_SS_InfoList_item", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_SS_Info_vals), 0, - "gsm_map.Ext_SS_Info", HFILL }}, - { &hf_gsm_map_ext_forwardingInfo, - { "forwardingInfo", "gsm_map.forwardingInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_ForwInfo", HFILL }}, - { &hf_gsm_map_ext_callBarringInfo, - { "callBarringInfo", "gsm_map.callBarringInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_CallBarInfo", HFILL }}, - { &hf_gsm_map_cug_Info, - { "cug-Info", "gsm_map.cug_Info", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CUG_Info", HFILL }}, - { &hf_gsm_map_ext_ss_Data, - { "ss-Data", "gsm_map.ss_Data", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_SS_Data", HFILL }}, - { &hf_gsm_map_emlpp_Info, - { "emlpp-Info", "gsm_map.emlpp_Info", + { &hf_gsm_map_ms_odb_GeneralData, + { "odb-GeneralData", "gsm_map.ms.odb_GeneralData", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.ODB_GeneralData", HFILL }}, + { &hf_gsm_map_ms_odb_HPLMN_Data, + { "odb-HPLMN-Data", "gsm_map.ms.odb_HPLMN_Data", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.ODB_HPLMN_Data", HFILL }}, + { &hf_gsm_map_ms_Ext_SS_InfoList_item, + { "Item", "gsm_map.ms.Ext_SS_InfoList_item", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_Ext_SS_Info_vals), 0, + "gsm_map_ms.Ext_SS_Info", HFILL }}, + { &hf_gsm_map_ms_forwardingInfo, + { "forwardingInfo", "gsm_map.ms.forwardingInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.Ext_ForwInfo", HFILL }}, + { &hf_gsm_map_ms_callBarringInfo, + { "callBarringInfo", "gsm_map.ms.callBarringInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.Ext_CallBarInfo", HFILL }}, + { &hf_gsm_map_ms_cug_Info, + { "cug-Info", "gsm_map.ms.cug_Info", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.CUG_Info", HFILL }}, + { &hf_gsm_map_ms_ss_Data, + { "ss-Data", "gsm_map.ms.ss_Data", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.Ext_SS_Data", HFILL }}, + { &hf_gsm_map_ms_emlpp_Info, + { "emlpp-Info", "gsm_map.ms.emlpp_Info", FT_NONE, BASE_NONE, NULL, 0, "gsm_map.EMLPP_Info", HFILL }}, - { &hf_gsm_map_ss_Code, - { "ss-Code", "gsm_map.ss_Code", + { &hf_gsm_map_ms_ss_Code, + { "ss-Code", "gsm_map.ms.ss_Code", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, "gsm_map.SS_Code", HFILL }}, - { &hf_gsm_map_ext_forwardingFeatureList, - { "forwardingFeatureList", "gsm_map.forwardingFeatureList", + { &hf_gsm_map_ms_forwardingFeatureList, + { "forwardingFeatureList", "gsm_map.ms.forwardingFeatureList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.Ext_ForwFeatureList", HFILL }}, - { &hf_gsm_map_Ext_ForwFeatureList_item, - { "Item", "gsm_map.Ext_ForwFeatureList_item", + "gsm_map_ms.Ext_ForwFeatureList", HFILL }}, + { &hf_gsm_map_ms_Ext_ForwFeatureList_item, + { "Item", "gsm_map.ms.Ext_ForwFeatureList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_ForwFeature", HFILL }}, - { &hf_gsm_map_ext_basicService, - { "basicService", "gsm_map.basicService", + "gsm_map_ms.Ext_ForwFeature", HFILL }}, + { &hf_gsm_map_ms_basicService, + { "basicService", "gsm_map.ms.basicService", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_ext_ss_Status, - { "ss-Status", "gsm_map.ss_Status", + { &hf_gsm_map_ms_ss_Status, + { "ss-Status", "gsm_map.ms.ss_Status", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.Ext_SS_Status", HFILL }}, - { &hf_gsm_map_forwardedToNumber, - { "forwardedToNumber", "gsm_map.forwardedToNumber", + { &hf_gsm_map_ms_forwardedToNumber, + { "forwardedToNumber", "gsm_map.ms.forwardedToNumber", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_forwardedToSubaddress, - { "forwardedToSubaddress", "gsm_map.forwardedToSubaddress", + { &hf_gsm_map_ms_forwardedToSubaddress, + { "forwardedToSubaddress", "gsm_map.ms.forwardedToSubaddress", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_SubaddressString", HFILL }}, - { &hf_gsm_map_ext_forwardingOptions, - { "forwardingOptions", "gsm_map.forwardingOptions", + { &hf_gsm_map_ms_forwardingOptions, + { "forwardingOptions", "gsm_map.ms.forwardingOptions", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.T_ext_forwardingOptions", HFILL }}, - { &hf_gsm_map_ext_noReplyConditionTime, - { "noReplyConditionTime", "gsm_map.noReplyConditionTime", + "gsm_map_ms.T_forwardingOptions", HFILL }}, + { &hf_gsm_map_ms_noReplyConditionTime, + { "noReplyConditionTime", "gsm_map.ms.noReplyConditionTime", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.Ext_NoRepCondTime", HFILL }}, - { &hf_gsm_map_longForwardedToNumber, - { "longForwardedToNumber", "gsm_map.longForwardedToNumber", + "gsm_map_ms.Ext_NoRepCondTime", HFILL }}, + { &hf_gsm_map_ms_longForwardedToNumber, + { "longForwardedToNumber", "gsm_map.ms.longForwardedToNumber", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.FTN_AddressString", HFILL }}, - { &hf_gsm_map_ext_callBarringFeatureList, - { "callBarringFeatureList", "gsm_map.callBarringFeatureList", + { &hf_gsm_map_ms_callBarringFeatureList, + { "callBarringFeatureList", "gsm_map.ms.callBarringFeatureList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.Ext_CallBarFeatureList", HFILL }}, - { &hf_gsm_map_Ext_CallBarFeatureList_item, - { "Item", "gsm_map.Ext_CallBarFeatureList_item", + "gsm_map_ms.Ext_CallBarFeatureList", HFILL }}, + { &hf_gsm_map_ms_Ext_CallBarFeatureList_item, + { "Item", "gsm_map.ms.Ext_CallBarFeatureList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_CallBarringFeature", HFILL }}, - { &hf_gsm_map_ZoneCodeList_item, - { "Item", "gsm_map.ZoneCodeList_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ZoneCode", HFILL }}, - { &hf_gsm_map_maximumentitledPriority, - { "maximumentitledPriority", "gsm_map.maximumentitledPriority", + "gsm_map_ms.Ext_CallBarringFeature", HFILL }}, + { &hf_gsm_map_ms_cug_SubscriptionList, + { "cug-SubscriptionList", "gsm_map.ms.cug_SubscriptionList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.EMLPP_Priority", HFILL }}, - { &hf_gsm_map_defaultPriority, - { "defaultPriority", "gsm_map.defaultPriority", + "gsm_map_ms.CUG_SubscriptionList", HFILL }}, + { &hf_gsm_map_ms_cug_FeatureList, + { "cug-FeatureList", "gsm_map.ms.cug_FeatureList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.EMLPP_Priority", HFILL }}, - { &hf_gsm_map_cug_SubscriptionList, - { "cug-SubscriptionList", "gsm_map.cug_SubscriptionList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CUG_SubscriptionList", HFILL }}, - { &hf_gsm_map_cug_FeatureList, - { "cug-FeatureList", "gsm_map.cug_FeatureList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CUG_FeatureList", HFILL }}, - { &hf_gsm_map_CUG_SubscriptionList_item, - { "Item", "gsm_map.CUG_SubscriptionList_item", + "gsm_map_ms.CUG_FeatureList", HFILL }}, + { &hf_gsm_map_ms_CUG_SubscriptionList_item, + { "Item", "gsm_map.ms.CUG_SubscriptionList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CUG_Subscription", HFILL }}, - { &hf_gsm_map_cug_Index, - { "cug-Index", "gsm_map.cug_Index", + "gsm_map_ms.CUG_Subscription", HFILL }}, + { &hf_gsm_map_ms_cug_Index, + { "cug-Index", "gsm_map.ms.cug_Index", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CUG_Index", HFILL }}, - { &hf_gsm_map_cug_Interlock, - { "cug-Interlock", "gsm_map.cug_Interlock", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CUG_Interlock", HFILL }}, - { &hf_gsm_map_intraCUG_Options, - { "intraCUG-Options", "gsm_map.intraCUG_Options", - FT_UINT32, BASE_DEC, VALS(gsm_map_IntraCUG_Options_vals), 0, - "gsm_map.IntraCUG_Options", HFILL }}, - { &hf_gsm_map_basicServiceGroupList, - { "basicServiceGroupList", "gsm_map.basicServiceGroupList", + "gsm_map_ms.CUG_Index", HFILL }}, + { &hf_gsm_map_ms_cug_Interlock, + { "cug-Interlock", "gsm_map.ms.cug_Interlock", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.CUG_Interlock", 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, + "gsm_map_ms.IntraCUG_Options", HFILL }}, + { &hf_gsm_map_ms_basicServiceGroupList, + { "basicServiceGroupList", "gsm_map.ms.basicServiceGroupList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.Ext_BasicServiceGroupList", HFILL }}, - { &hf_gsm_map_CUG_FeatureList_item, - { "Item", "gsm_map.CUG_FeatureList_item", + "gsm_map_ms.Ext_BasicServiceGroupList", HFILL }}, + { &hf_gsm_map_ms_CUG_FeatureList_item, + { "Item", "gsm_map.ms.CUG_FeatureList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CUG_Feature", HFILL }}, - { &hf_gsm_map_Ext_BasicServiceGroupList_item, - { "Item", "gsm_map.Ext_BasicServiceGroupList_item", + "gsm_map_ms.CUG_Feature", HFILL }}, + { &hf_gsm_map_ms_Ext_BasicServiceGroupList_item, + { "Item", "gsm_map.ms.Ext_BasicServiceGroupList_item", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_preferentialCUG_Indicator, - { "preferentialCUG-Indicator", "gsm_map.preferentialCUG_Indicator", + { &hf_gsm_map_ms_preferentialCUG_Indicator, + { "preferentialCUG-Indicator", "gsm_map.ms.preferentialCUG_Indicator", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CUG_Index", HFILL }}, - { &hf_gsm_map_interCUG_Restrictions, - { "interCUG-Restrictions", "gsm_map.interCUG_Restrictions", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.InterCUG_Restrictions", HFILL }}, - { &hf_gsm_map_ss_SubscriptionOption, - { "ss-SubscriptionOption", "gsm_map.ss_SubscriptionOption", - FT_UINT32, BASE_DEC, VALS(gsm_map_SS_SubscriptionOption_vals), 0, - "gsm_map.SS_SubscriptionOption", HFILL }}, - { &hf_gsm_map_LCS_PrivacyExceptionList_item, - { "Item", "gsm_map.LCS_PrivacyExceptionList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCS_PrivacyClass", HFILL }}, - { &hf_gsm_map_notificationToMSUser, - { "notificationToMSUser", "gsm_map.notificationToMSUser", - FT_UINT32, BASE_DEC, VALS(gsm_map_NotificationToMSUser_vals), 0, - "gsm_map.NotificationToMSUser", HFILL }}, - { &hf_gsm_map_externalClientList, - { "externalClientList", "gsm_map.externalClientList", + "gsm_map_ms.CUG_Index", HFILL }}, + { &hf_gsm_map_ms_interCUG_Restrictions, + { "interCUG-Restrictions", "gsm_map.ms.interCUG_Restrictions", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.InterCUG_Restrictions", 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, + "gsm_map_ss.SS_SubscriptionOption", HFILL }}, + { &hf_gsm_map_ms_LCS_PrivacyExceptionList_item, + { "Item", "gsm_map.ms.LCS_PrivacyExceptionList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.LCS_PrivacyClass", HFILL }}, + { &hf_gsm_map_ms_notificationToMSUser, + { "notificationToMSUser", "gsm_map.ms.notificationToMSUser", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0, + "gsm_map_ms.NotificationToMSUser", HFILL }}, + { &hf_gsm_map_ms_externalClientList, + { "externalClientList", "gsm_map.ms.externalClientList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ExternalClientList", HFILL }}, - { &hf_gsm_map_plmnClientList, - { "plmnClientList", "gsm_map.plmnClientList", + "gsm_map_ms.ExternalClientList", HFILL }}, + { &hf_gsm_map_ms_plmnClientList, + { "plmnClientList", "gsm_map.ms.plmnClientList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.PLMNClientList", HFILL }}, - { &hf_gsm_map_ext_externalClientList, - { "ext-externalClientList", "gsm_map.ext_externalClientList", + "gsm_map_ms.PLMNClientList", HFILL }}, + { &hf_gsm_map_ms_ext_externalClientList, + { "ext-externalClientList", "gsm_map.ms.ext_externalClientList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.Ext_ExternalClientList", HFILL }}, - { &hf_gsm_map_serviceTypeList, - { "serviceTypeList", "gsm_map.serviceTypeList", + "gsm_map_ms.Ext_ExternalClientList", HFILL }}, + { &hf_gsm_map_ms_serviceTypeList, + { "serviceTypeList", "gsm_map.ms.serviceTypeList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ServiceTypeList", HFILL }}, - { &hf_gsm_map_ExternalClientList_item, - { "Item", "gsm_map.ExternalClientList_item", + "gsm_map_ms.ServiceTypeList", HFILL }}, + { &hf_gsm_map_ms_ExternalClientList_item, + { "Item", "gsm_map.ms.ExternalClientList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalClient", HFILL }}, - { &hf_gsm_map_PLMNClientList_item, - { "Item", "gsm_map.PLMNClientList_item", + "gsm_map_ms.ExternalClient", HFILL }}, + { &hf_gsm_map_ms_PLMNClientList_item, + { "Item", "gsm_map.ms.PLMNClientList_item", FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0, "gsm_map.LCSClientInternalID", HFILL }}, - { &hf_gsm_map_Ext_ExternalClientList_item, - { "Item", "gsm_map.Ext_ExternalClientList_item", + { &hf_gsm_map_ms_Ext_ExternalClientList_item, + { "Item", "gsm_map.ms.Ext_ExternalClientList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalClient", HFILL }}, - { &hf_gsm_map_clientIdentity, - { "clientIdentity", "gsm_map.clientIdentity", + "gsm_map_ms.ExternalClient", HFILL }}, + { &hf_gsm_map_ms_clientIdentity, + { "clientIdentity", "gsm_map.ms.clientIdentity", FT_NONE, BASE_NONE, NULL, 0, "gsm_map.LCSClientExternalID", HFILL }}, - { &hf_gsm_map_gmlc_Restriction, - { "gmlc-Restriction", "gsm_map.gmlc_Restriction", - FT_UINT32, BASE_DEC, VALS(gsm_map_GMLC_Restriction_vals), 0, - "gsm_map.GMLC_Restriction", HFILL }}, - { &hf_gsm_map_ServiceTypeList_item, - { "Item", "gsm_map.ServiceTypeList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ServiceType", HFILL }}, - { &hf_gsm_map_serviceTypeIdentity, - { "serviceTypeIdentity", "gsm_map.serviceTypeIdentity", - FT_UINT32, BASE_DEC, NULL, 0, + { &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, + "gsm_map_ms.GMLC_Restriction", HFILL }}, + { &hf_gsm_map_ms_ServiceTypeList_item, + { "Item", "gsm_map.ms.ServiceTypeList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ServiceType", HFILL }}, + { &hf_gsm_map_ms_serviceTypeIdentity, + { "serviceTypeIdentity", "gsm_map.ms.serviceTypeIdentity", + FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0, "gsm_map.LCSServiceTypeID", HFILL }}, - { &hf_gsm_map_MOLR_List_item, - { "Item", "gsm_map.MOLR_List_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.MOLR_Class", HFILL }}, - { &hf_gsm_map_CallBarringFeatureList_item, - { "Item", "gsm_map.CallBarringFeatureList_item", + { &hf_gsm_map_ms_MOLR_List_item, + { "Item", "gsm_map.ms.MOLR_List_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CallBarringFeature", HFILL }}, - { &hf_gsm_map_basicService, - { "basicService", "gsm_map.basicService", - FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, - "gsm_map.BasicServiceCode", HFILL }}, - { &hf_gsm_map_ss_Status, - { "ss-Status", "gsm_map.ss_Status", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SS_Status", HFILL }}, - { &hf_gsm_map_ForwardingFeatureList_item, - { "Item", "gsm_map.ForwardingFeatureList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ForwardingFeature", HFILL }}, - { &hf_gsm_map_forwardingOptions, - { "forwardingOptions", "gsm_map.forwardingOptions", + "gsm_map_ms.MOLR_Class", HFILL }}, + { &hf_gsm_map_ms_ZoneCodeList_item, + { "Item", "gsm_map.ms.ZoneCodeList_item", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ForwardingOptions", HFILL }}, - { &hf_gsm_map_noReplyConditionTime, - { "noReplyConditionTime", "gsm_map.noReplyConditionTime", + "gsm_map_ms.ZoneCode", HFILL }}, + { &hf_gsm_map_ms_ss_List, + { "ss-List", "gsm_map.ms.ss_List", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.NoReplyConditionTime", HFILL }}, - { &hf_gsm_map_matchType, - { "matchType", "gsm_map.matchType", - FT_UINT32, BASE_DEC, VALS(gsm_map_MatchType_vals), 0, - "gsm_map.MatchType", HFILL }}, - { &hf_gsm_map_destinationNumberList, - { "destinationNumberList", "gsm_map.destinationNumberList", + "gsm_map_ss.SS_List", HFILL }}, + { &hf_gsm_map_ms_regionalSubscriptionResponse, + { "regionalSubscriptionResponse", "gsm_map.ms.regionalSubscriptionResponse", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_RegionalSubscriptionResponse_vals), 0, + "gsm_map_ms.RegionalSubscriptionResponse", HFILL }}, + { &hf_gsm_map_ms_basicServiceList, + { "basicServiceList", "gsm_map.ms.basicServiceList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.DestinationNumberList", HFILL }}, - { &hf_gsm_map_destinationNumberLengthList, - { "destinationNumberLengthList", "gsm_map.destinationNumberLengthList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.DestinationNumberLengthList", HFILL }}, - { &hf_gsm_map_DestinationNumberList_item, - { "Item", "gsm_map.DestinationNumberList_item", + "gsm_map_ms.BasicServiceList", HFILL }}, + { &hf_gsm_map_ms_regionalSubscriptionIdentifier, + { "regionalSubscriptionIdentifier", "gsm_map.ms.regionalSubscriptionIdentifier", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_DestinationNumberLengthList_item, - { "Item", "gsm_map.DestinationNumberLengthList_item", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.INTEGER_1_15", HFILL }}, - { &hf_gsm_map_forwardingFeatureList, - { "forwardingFeatureList", "gsm_map.forwardingFeatureList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ForwardingFeatureList", HFILL }}, - { &hf_gsm_map_callBarringFeatureList, - { "callBarringFeatureList", "gsm_map.callBarringFeatureList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CallBarringFeatureList", HFILL }}, - { &hf_gsm_map_nbrSB, - { "nbrSB", "gsm_map.nbrSB", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MaxMC_Bearers", HFILL }}, - { &hf_gsm_map_nbrUser, - { "nbrUser", "gsm_map.nbrUser", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MC_Bearers", HFILL }}, - { &hf_gsm_map_hlr_List, - { "hlr-List", "gsm_map.hlr_List", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.HLR_List", HFILL }}, - { &hf_gsm_map_msNotReachable, - { "msNotReachable", "gsm_map.msNotReachable", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_VBSDataList_item, - { "Item", "gsm_map.VBSDataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.VoiceBroadcastData", HFILL }}, - { &hf_gsm_map_VGCSDataList_item, - { "Item", "gsm_map.VGCSDataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.VoiceGroupCallData", HFILL }}, - { &hf_gsm_map_groupId, - { "groupId", "gsm_map.groupId", + "gsm_map_ms.ZoneCode", HFILL }}, + { &hf_gsm_map_ms_vbsGroupIndication, + { "vbsGroupIndication", "gsm_map.ms.vbsGroupIndication", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_vgcsGroupIndication, + { "vgcsGroupIndication", "gsm_map.ms.vgcsGroupIndication", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_camelSubscriptionInfoWithdraw, + { "camelSubscriptionInfoWithdraw", "gsm_map.ms.camelSubscriptionInfoWithdraw", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_gprsSubscriptionDataWithdraw, + { "gprsSubscriptionDataWithdraw", "gsm_map.ms.gprsSubscriptionDataWithdraw", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_GPRSSubscriptionDataWithdraw_vals), 0, + "gsm_map_ms.GPRSSubscriptionDataWithdraw", HFILL }}, + { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsuppportedFeature, + { "roamingRestrictedInSgsnDueToUnsuppportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsuppportedFeature", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_lsaInformationWithdraw, + { "lsaInformationWithdraw", "gsm_map.ms.lsaInformationWithdraw", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_LSAInformationWithdraw_vals), 0, + "gsm_map_ms.LSAInformationWithdraw", HFILL }}, + { &hf_gsm_map_ms_gmlc_ListWithdraw, + { "gmlc-ListWithdraw", "gsm_map.ms.gmlc_ListWithdraw", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_istInformationWithdraw, + { "istInformationWithdraw", "gsm_map.ms.istInformationWithdraw", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_specificCSI_Withdraw, + { "specificCSI-Withdraw", "gsm_map.ms.specificCSI_Withdraw", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GroupId", HFILL }}, - { &hf_gsm_map_groupid, - { "groupid", "gsm_map.groupid", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GroupId", HFILL }}, - { &hf_gsm_map_broadcastInitEntitlement, - { "broadcastInitEntitlement", "gsm_map.broadcastInitEntitlement", + "gsm_map_ms.SpecificCSI_Withdraw", HFILL }}, + { &hf_gsm_map_ms_chargingCharacteristicsWithdraw, + { "chargingCharacteristicsWithdraw", "gsm_map.ms.chargingCharacteristicsWithdraw", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_additionalSubscriptions, - { "additionalSubscriptions", "gsm_map.additionalSubscriptions", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AdditionalSubscriptions", HFILL }}, - { &hf_gsm_map_additionalInfo, - { "additionalInfo", "gsm_map.additionalInfo", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AdditionalInfo", HFILL }}, - { &hf_gsm_map_traceReference, - { "traceReference", "gsm_map.traceReference", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TraceReference", HFILL }}, - { &hf_gsm_map_traceType, - { "traceType", "gsm_map.traceType", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.TraceType", HFILL }}, - { &hf_gsm_map_omc_Id, - { "omc-Id", "gsm_map.omc_Id", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AddressString", HFILL }}, - { &hf_gsm_map_traceReference2, - { "traceReference2", "gsm_map.traceReference2", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TraceReference2", HFILL }}, - { &hf_gsm_map_traceDepthList, - { "traceDepthList", "gsm_map.traceDepthList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.TraceDepthList", HFILL }}, - { &hf_gsm_map_traceNE_TypeList, - { "traceNE-TypeList", "gsm_map.traceNE_TypeList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TraceNE_TypeList", HFILL }}, - { &hf_gsm_map_traceInterfaceList, - { "traceInterfaceList", "gsm_map.traceInterfaceList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.TraceInterfaceList", HFILL }}, - { &hf_gsm_map_traceEventList, - { "traceEventList", "gsm_map.traceEventList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.TraceEventList", HFILL }}, - { &hf_gsm_map_msc_s_TraceDepth, - { "msc-s-TraceDepth", "gsm_map.msc_s_TraceDepth", - FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0, - "gsm_map.TraceDepth", HFILL }}, - { &hf_gsm_map_mgw_TraceDepth, - { "mgw-TraceDepth", "gsm_map.mgw_TraceDepth", - FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0, - "gsm_map.TraceDepth", HFILL }}, - { &hf_gsm_map_sgsn_TraceDepth, - { "sgsn-TraceDepth", "gsm_map.sgsn_TraceDepth", - FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0, - "gsm_map.TraceDepth", HFILL }}, - { &hf_gsm_map_ggsn_TraceDepth, - { "ggsn-TraceDepth", "gsm_map.ggsn_TraceDepth", - FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0, - "gsm_map.TraceDepth", HFILL }}, - { &hf_gsm_map_rnc_TraceDepth, - { "rnc-TraceDepth", "gsm_map.rnc_TraceDepth", - FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0, - "gsm_map.TraceDepth", HFILL }}, - { &hf_gsm_map_bmsc_TraceDepth, - { "bmsc-TraceDepth", "gsm_map.bmsc_TraceDepth", - FT_UINT32, BASE_DEC, VALS(gsm_map_TraceDepth_vals), 0, - "gsm_map.TraceDepth", HFILL }}, - { &hf_gsm_map_msc_s_IList, - { "msc-s-IList", "gsm_map.msc_s_IList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MSC_S_InterfaceList", HFILL }}, - { &hf_gsm_map_mgw_IList, - { "mgw-IList", "gsm_map.mgw_IList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MGW_InterfaceList", HFILL }}, - { &hf_gsm_map_sgsn_IList, - { "sgsn-IList", "gsm_map.sgsn_IList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SGSN_InterfaceList", HFILL }}, - { &hf_gsm_map_ggsn_IList, - { "ggsn-IList", "gsm_map.ggsn_IList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GGSN_InterfaceList", HFILL }}, - { &hf_gsm_map_rnc_IList, - { "rnc-IList", "gsm_map.rnc_IList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RNC_InterfaceList", HFILL }}, - { &hf_gsm_map_bmsc_IList, - { "bmsc-IList", "gsm_map.bmsc_IList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.BMSC_InterfaceList", HFILL }}, - { &hf_gsm_map_msc_s_EList, - { "msc-s-EList", "gsm_map.msc_s_EList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MSC_S_EventList", HFILL }}, - { &hf_gsm_map_mgw_EList, - { "mgw-EList", "gsm_map.mgw_EList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MGW_EventList", HFILL }}, - { &hf_gsm_map_sgsn_EList, - { "sgsn-EList", "gsm_map.sgsn_EList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SGSN_EventList", HFILL }}, - { &hf_gsm_map_ggsn_EList, - { "ggsn-EList", "gsm_map.ggsn_EList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GGSN_EventList", HFILL }}, - { &hf_gsm_map_bmsc_EList, - { "bmsc-EList", "gsm_map.bmsc_EList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.BMSC_EventList", HFILL }}, - { &hf_gsm_map_traceRecordingSessionReference, - { "traceRecordingSessionReference", "gsm_map.traceRecordingSessionReference", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TraceRecordingSessionReference", HFILL }}, - { &hf_gsm_map_rnc_InterfaceList, - { "rnc-InterfaceList", "gsm_map.rnc_InterfaceList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RNC_InterfaceList", HFILL }}, - { &hf_gsm_map_msc_s_InterfaceList, - { "msc-s-InterfaceList", "gsm_map.msc_s_InterfaceList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MSC_S_InterfaceList", HFILL }}, - { &hf_gsm_map_msc_s_EventList, - { "msc-s-EventList", "gsm_map.msc_s_EventList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MSC_S_EventList", HFILL }}, - { &hf_gsm_map_mgw_InterfaceList, - { "mgw-InterfaceList", "gsm_map.mgw_InterfaceList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MGW_InterfaceList", HFILL }}, - { &hf_gsm_map_mgw_EventList, - { "mgw-EventList", "gsm_map.mgw_EventList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MGW_EventList", HFILL }}, - { &hf_gsm_map_traceSupportIndicator, - { "traceSupportIndicator", "gsm_map.traceSupportIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_cug_CheckInfo, - { "cug-CheckInfo", "gsm_map.cug_CheckInfo", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_allGPRSData, + { "allGPRSData", "gsm_map.ms.allGPRSData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CUG_CheckInfo", HFILL }}, - { &hf_gsm_map_numberOfForwarding, - { "numberOfForwarding", "gsm_map.numberOfForwarding", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_contextIdList, + { "contextIdList", "gsm_map.ms.contextIdList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.ContextIdList", HFILL }}, + { &hf_gsm_map_ms_ContextIdList_item, + { "Item", "gsm_map.ms.ContextIdList_item", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.NumberOfForwarding", HFILL }}, - { &hf_gsm_map_interrogationType, - { "interrogationType", "gsm_map.interrogationType", - FT_UINT32, BASE_DEC, VALS(gsm_map_InterrogationType_vals), 0, - "gsm_map.InterrogationType", HFILL }}, - { &hf_gsm_map_or_Interrogation, - { "or-Interrogation", "gsm_map.or_Interrogation", + "gsm_map_ms.ContextId", HFILL }}, + { &hf_gsm_map_ms_allLSAData, + { "allLSAData", "gsm_map.ms.allLSAData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_or_Capability, - { "or-Capability", "gsm_map.or_Capability", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_lsaIdentityList, + { "lsaIdentityList", "gsm_map.ms.lsaIdentityList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.OR_Phase", HFILL }}, - { &hf_gsm_map_gmsc_OrGsmSCF_Address, - { "gmsc-OrGsmSCF-Address", "gsm_map.gmsc_OrGsmSCF_Address", + "gsm_map_ms.LSAIdentityList", HFILL }}, + { &hf_gsm_map_ms_LSAIdentityList_item, + { "Item", "gsm_map.ms.LSAIdentityList_item", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_callReferenceNumber, - { "callReferenceNumber", "gsm_map.callReferenceNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CallReferenceNumber", HFILL }}, - { &hf_gsm_map_forwardingReason, - { "forwardingReason", "gsm_map.forwardingReason", - FT_UINT32, BASE_DEC, VALS(gsm_map_ForwardingReason_vals), 0, - "gsm_map.ForwardingReason", HFILL }}, - { &hf_gsm_map_ext_basicServiceGroup, - { "basicServiceGroup", "gsm_map.basicServiceGroup", + "gsm_map_ms.LSAIdentity", HFILL }}, + { &hf_gsm_map_ms_BasicServiceList_item, + { "Item", "gsm_map.ms.BasicServiceList_item", FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_networkSignalInfo, - { "networkSignalInfo", "gsm_map.networkSignalInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_camelInfo, - { "camelInfo", "gsm_map.camelInfo", + { &hf_gsm_map_ms_o_CSI, + { "o-CSI", "gsm_map.ms.o_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CamelInfo", HFILL }}, - { &hf_gsm_map_suppressionOfAnnouncement, - { "suppressionOfAnnouncement", "gsm_map.suppressionOfAnnouncement", + "gsm_map_ms.O_CSI", HFILL }}, + { &hf_gsm_map_ms_ss_CSI, + { "ss-CSI", "gsm_map.ms.ss_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SuppressionOfAnnouncement", HFILL }}, - { &hf_gsm_map_alertingPattern, - { "alertingPattern", "gsm_map.alertingPattern", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AlertingPattern", HFILL }}, - { &hf_gsm_map_ccbs_Call, - { "ccbs-Call", "gsm_map.ccbs_Call", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_supportedCCBS_Phase, - { "supportedCCBS-Phase", "gsm_map.supportedCCBS_Phase", + "gsm_map_ms.SS_CSI", HFILL }}, + { &hf_gsm_map_ms_o_BcsmCamelTDP_CriteriaList, + { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ms.o_BcsmCamelTDP_CriteriaList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SupportedCCBS_Phase", HFILL }}, - { &hf_gsm_map_additionalSignalInfo, - { "additionalSignalInfo", "gsm_map.additionalSignalInfo", + "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }}, + { &hf_gsm_map_ms_tif_CSI, + { "tif-CSI", "gsm_map.ms.tif_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_pre_pagingSupported, - { "pre-pagingSupported", "gsm_map.pre_pagingSupported", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_m_CSI, + { "m-CSI", "gsm_map.ms.m_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_callDiversionTreatmentIndicator, - { "callDiversionTreatmentIndicator", "gsm_map.callDiversionTreatmentIndicator", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CallDiversionTreatmentIndicator", HFILL }}, - { &hf_gsm_map_suppress_VT_CSI, - { "suppress-VT-CSI", "gsm_map.suppress_VT_CSI", + "gsm_map_ms.M_CSI", HFILL }}, + { &hf_gsm_map_ms_vt_CSI, + { "vt-CSI", "gsm_map.ms.vt_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_suppressIncomingCallBarring, - { "suppressIncomingCallBarring", "gsm_map.suppressIncomingCallBarring", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gsmSCF_InitiatedCall, - { "gsmSCF-InitiatedCall", "gsm_map.gsmSCF_InitiatedCall", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_basicServiceGroup2, - { "basicServiceGroup2", "gsm_map.basicServiceGroup2", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, - "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_networkSignalInfo2, - { "networkSignalInfo2", "gsm_map.networkSignalInfo2", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_extendedRoutingInfo, - { "extendedRoutingInfo", "gsm_map.extendedRoutingInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_ExtendedRoutingInfo_vals), 0, - "gsm_map.ExtendedRoutingInfo", HFILL }}, - { &hf_gsm_map_cugSubscriptionFlag, - { "cugSubscriptionFlag", "gsm_map.cugSubscriptionFlag", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_subscriberInfo, - { "subscriberInfo", "gsm_map.subscriberInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SubscriberInfo", HFILL }}, - { &hf_gsm_map_forwardingInterrogationRequired, - { "forwardingInterrogationRequired", "gsm_map.forwardingInterrogationRequired", + "gsm_map_ms.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, + "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, + { &hf_gsm_map_ms_d_CSI, + { "d-CSI", "gsm_map.ms.d_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.D_CSI", HFILL }}, + { &hf_gsm_map_ms_MT_smsCAMELTDP_CriteriaList_item, + { "Item", "gsm_map.ms.MT_smsCAMELTDP_CriteriaList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.MT_smsCAMELTDP_Criteria", 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, + "gsm_map_ms.SMS_TriggerDetectionPoint", HFILL }}, + { &hf_gsm_map_ms_tpdu_TypeCriterion, + { "tpdu-TypeCriterion", "gsm_map.ms.tpdu_TypeCriterion", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.TPDU_TypeCriterion", HFILL }}, + { &hf_gsm_map_ms_TPDU_TypeCriterion_item, + { "Item", "gsm_map.ms.TPDU_TypeCriterion_item", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MT_SMS_TPDU_Type_vals), 0, + "gsm_map_ms.MT_SMS_TPDU_Type", HFILL }}, + { &hf_gsm_map_ms_dp_AnalysedInfoCriteriaList, + { "dp-AnalysedInfoCriteriaList", "gsm_map.ms.dp_AnalysedInfoCriteriaList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.DP_AnalysedInfoCriteriaList", HFILL }}, + { &hf_gsm_map_ms_DP_AnalysedInfoCriteriaList_item, + { "Item", "gsm_map.ms.DP_AnalysedInfoCriteriaList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_vmsc_Address, - { "vmsc-Address", "gsm_map.vmsc_Address", + "gsm_map_ms.DP_AnalysedInfoCriterium", HFILL }}, + { &hf_gsm_map_ms_dialledNumber, + { "dialledNumber", "gsm_map.ms.dialledNumber", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_ccbs_Indicators, - { "ccbs-Indicators", "gsm_map.ccbs_Indicators", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CCBS_Indicators", HFILL }}, - { &hf_gsm_map_numberPortabilityStatus, - { "numberPortabilityStatus", "gsm_map.numberPortabilityStatus", - FT_UINT32, BASE_DEC, VALS(gsm_map_NumberPortabilityStatus_vals), 0, - "gsm_map.NumberPortabilityStatus", HFILL }}, - { &hf_gsm_map_supportedCamelPhasesInVMSC, - { "supportedCamelPhasesInVMSC", "gsm_map.supportedCamelPhasesInVMSC", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedCamelPhases", HFILL }}, - { &hf_gsm_map_offeredCamel4CSIsInVMSC, - { "offeredCamel4CSIsInVMSC", "gsm_map.offeredCamel4CSIsInVMSC", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OfferedCamel4CSIs", HFILL }}, - { &hf_gsm_map_routingInfo2, - { "routingInfo2", "gsm_map.routingInfo2", - FT_UINT32, BASE_DEC, VALS(gsm_map_RoutingInfo_vals), 0, - "gsm_map.RoutingInfo", HFILL }}, - { &hf_gsm_map_ss_List2, - { "ss-List2", "gsm_map.ss_List2", + { &hf_gsm_map_ms_defaultCallHandling, + { "defaultCallHandling", "gsm_map.ms.defaultCallHandling", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultCallHandling_vals), 0, + "gsm_map_ms.DefaultCallHandling", HFILL }}, + { &hf_gsm_map_ms_ss_CamelData, + { "ss-CamelData", "gsm_map.ms.ss_CamelData", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.SS_CamelData", HFILL }}, + { &hf_gsm_map_ms_ss_EventList, + { "ss-EventList", "gsm_map.ms.ss_EventList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SS_List", HFILL }}, - { &hf_gsm_map_basicService2, - { "basicService2", "gsm_map.basicService2", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, - "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_allowedServices, - { "allowedServices", "gsm_map.allowedServices", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AllowedServices", HFILL }}, - { &hf_gsm_map_unavailabilityCause, - { "unavailabilityCause", "gsm_map.unavailabilityCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_UnavailabilityCause_vals), 0, - "gsm_map.UnavailabilityCause", HFILL }}, - { &hf_gsm_map_releaseResourcesSupported, - { "releaseResourcesSupported", "gsm_map.releaseResourcesSupported", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gsm_BearerCapability, - { "gsm-BearerCapability", "gsm_map.gsm_BearerCapability", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_ext_ProtocolId, - { "ext-ProtocolId", "gsm_map.ext_ProtocolId", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_ProtocolId_vals), 0, - "gsm_map.Ext_ProtocolId", HFILL }}, - { &hf_gsm_map_accessNetworkProtocolId, - { "accessNetworkProtocolId", "gsm_map.accessNetworkProtocolId", - FT_UINT32, BASE_DEC, VALS(gsm_map_AccessNetworkProtocolId_vals), 0, - "gsm_map.AccessNetworkProtocolId", HFILL }}, - { &hf_gsm_map_longsignalInfo, - { "signalInfo", "gsm_map.signalInfo", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LongSignalInfo", HFILL }}, - { &hf_gsm_map_suppress_T_CSI, - { "suppress-T-CSI", "gsm_map.suppress_T_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_HLR_List_item, - { "Item", "gsm_map.HLR_List_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.HLR_Id", HFILL }}, - { &hf_gsm_map_SS_List_item, - { "Item", "gsm_map.SS_List_item", + "gsm_map_ms.SS_EventList", HFILL }}, + { &hf_gsm_map_ms_SS_EventList_item, + { "Item", "gsm_map.ms.SS_EventList_item", FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, "gsm_map.SS_Code", HFILL }}, - { &hf_gsm_map_naea_PreferredCIC, - { "naea-PreferredCIC", "gsm_map.naea_PreferredCIC", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.NAEA_CIC", HFILL }}, - { &hf_gsm_map_externalAddress, - { "externalAddress", "gsm_map.externalAddress", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_cellGlobalIdOrServiceAreaIdFixedLength, - { "cellGlobalIdOrServiceAreaIdFixedLength", "gsm_map.cellGlobalIdOrServiceAreaIdFixedLength", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }}, - { &hf_gsm_map_laiFixedLength, - { "laiFixedLength", "gsm_map.laiFixedLength", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LAIFixedLength", HFILL }}, - { &hf_gsm_map_ccbs_Possible, - { "ccbs-Possible", "gsm_map.ccbs_Possible", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_keepCCBS_CallIndicator, - { "keepCCBS-CallIndicator", "gsm_map.keepCCBS_CallIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_roamingNumber, - { "roamingNumber", "gsm_map.roamingNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_forwardingData, - { "forwardingData", "gsm_map.forwardingData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ForwardingData", HFILL }}, - { &hf_gsm_map_routingInfo, - { "routingInfo", "gsm_map.routingInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_RoutingInfo_vals), 0, - "gsm_map.RoutingInfo", HFILL }}, - { &hf_gsm_map_camelRoutingInfo, - { "camelRoutingInfo", "gsm_map.camelRoutingInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CamelRoutingInfo", HFILL }}, - { &hf_gsm_map_gmscCamelSubscriptionInfo, - { "gmscCamelSubscriptionInfo", "gsm_map.gmscCamelSubscriptionInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GmscCamelSubscriptionInfo", HFILL }}, - { &hf_gsm_map_t_CSI, - { "t-CSI", "gsm_map.t_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_CSI", HFILL }}, - { &hf_gsm_map_d_csi, - { "d-csi", "gsm_map.d_csi", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.D_CSI", HFILL }}, - { &hf_gsm_map_ageOfLocationInformation, - { "ageOfLocationInformation", "gsm_map.ageOfLocationInformation", + { &hf_gsm_map_ms_o_BcsmCamelTDPDataList, + { "o-BcsmCamelTDPDataList", "gsm_map.ms.o_BcsmCamelTDPDataList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.AgeOfLocationInformation", HFILL }}, - { &hf_gsm_map_geographicalInformation, - { "geographicalInformation", "gsm_map.geographicalInformation", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GeographicalInformation", HFILL }}, - { &hf_gsm_map_vlr_number, - { "vlr-number", "gsm_map.vlr_number", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_locationNumber, - { "locationNumber", "gsm_map.locationNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LocationNumber", HFILL }}, - { &hf_gsm_map_cellGlobalIdOrServiceAreaIdOrLAI, - { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.cellGlobalIdOrServiceAreaIdOrLAI", - FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0, - "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }}, - { &hf_gsm_map_selectedLSA_Id, - { "selectedLSA-Id", "gsm_map.selectedLSA_Id", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LSAIdentity", HFILL }}, - { &hf_gsm_map_geodeticInformation, - { "geodeticInformation", "gsm_map.geodeticInformation", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GeodeticInformation", HFILL }}, - { &hf_gsm_map_currentLocationRetrieved, - { "currentLocationRetrieved", "gsm_map.currentLocationRetrieved", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_sai_Present, - { "sai-Present", "gsm_map.sai_Present", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_routeingAreaIdentity, - { "routeingAreaIdentity", "gsm_map.routeingAreaIdentity", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RAIdentity", HFILL }}, - { &hf_gsm_map_selectedLSAIdentity, - { "selectedLSAIdentity", "gsm_map.selectedLSAIdentity", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LSAIdentity", HFILL }}, - { &hf_gsm_map_assumedIdle, - { "assumedIdle", "gsm_map.assumedIdle", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_camelBusy, - { "camelBusy", "gsm_map.camelBusy", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_netDetNotReachable, - { "netDetNotReachable", "gsm_map.netDetNotReachable", - FT_UINT32, BASE_DEC, VALS(gsm_map_NotReachableReason_vals), 0, - "gsm_map.NotReachableReason", HFILL }}, - { &hf_gsm_map_notProvidedFromVLR, - { "notProvidedFromVLR", "gsm_map.notProvidedFromVLR", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_notProvidedFromSGSN, - { "notProvidedFromSGSN", "gsm_map.notProvidedFromSGSN", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ps_Detached, - { "ps-Detached", "gsm_map.ps_Detached", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ps_AttachedNotReachableForPaging, - { "ps-AttachedNotReachableForPaging", "gsm_map.ps_AttachedNotReachableForPaging", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ps_AttachedReachableForPaging, - { "ps-AttachedReachableForPaging", "gsm_map.ps_AttachedReachableForPaging", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ps_PDP_ActiveNotReachableForPaging, - { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ps_PDP_ActiveNotReachableForPaging", + "gsm_map_ms.O_BcsmCamelTDPDataList", HFILL }}, + { &hf_gsm_map_ms_csiActive, + { "csiActive", "gsm_map.ms.csiActive", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_O_BcsmCamelTDPDataList_item, + { "Item", "gsm_map.ms.O_BcsmCamelTDPDataList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.O_BcsmCamelTDPData", 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, + "gsm_map_ms.O_BcsmTriggerDetectionPoint", HFILL }}, + { &hf_gsm_map_ms_O_BcsmCamelTDPCriteriaList_item, + { "Item", "gsm_map.ms.O_BcsmCamelTDPCriteriaList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.O_BcsmCamelTDP_Criteria", HFILL }}, + { &hf_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList_item, + { "Item", "gsm_map.ms.T_BCSM_CAMEL_TDP_CriteriaList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.T_BCSM_CAMEL_TDP_Criteria", HFILL }}, + { &hf_gsm_map_ms_destinationNumberCriteria, + { "destinationNumberCriteria", "gsm_map.ms.destinationNumberCriteria", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.DestinationNumberCriteria", HFILL }}, + { &hf_gsm_map_ms_basicServiceCriteria, + { "basicServiceCriteria", "gsm_map.ms.basicServiceCriteria", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.PDP_ContextInfoList", HFILL }}, - { &hf_gsm_map_ps_PDP_ActiveReachableForPaging, - { "ps-PDP-ActiveReachableForPaging", "gsm_map.ps_PDP_ActiveReachableForPaging", + "gsm_map_ms.BasicServiceCriteria", HFILL }}, + { &hf_gsm_map_ms_callTypeCriteria, + { "callTypeCriteria", "gsm_map.ms.callTypeCriteria", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_CallTypeCriteria_vals), 0, + "gsm_map_ms.CallTypeCriteria", HFILL }}, + { &hf_gsm_map_ms_o_CauseValueCriteria, + { "o-CauseValueCriteria", "gsm_map.ms.o_CauseValueCriteria", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.PDP_ContextInfoList", HFILL }}, - { &hf_gsm_map_PDP_ContextInfoList_item, - { "Item", "gsm_map.PDP_ContextInfoList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.PDP_ContextInfo", HFILL }}, - { &hf_gsm_map_pdp_ContextIdentifier, - { "pdp-ContextIdentifier", "gsm_map.pdp_ContextIdentifier", + "gsm_map_ms.O_CauseValueCriteria", 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, + "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }}, + { &hf_gsm_map_ms_t_CauseValueCriteria, + { "t-CauseValueCriteria", "gsm_map.ms.t_CauseValueCriteria", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ContextId", HFILL }}, - { &hf_gsm_map_pdp_ContextActive, - { "pdp-ContextActive", "gsm_map.pdp_ContextActive", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_apn_Subscribed, - { "apn-Subscribed", "gsm_map.apn_Subscribed", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.APN", HFILL }}, - { &hf_gsm_map_apn_InUse, - { "apn-InUse", "gsm_map.apn_InUse", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.APN", HFILL }}, - { &hf_gsm_map_nsapi, - { "nsapi", "gsm_map.nsapi", + "gsm_map_ms.T_CauseValueCriteria", HFILL }}, + { &hf_gsm_map_ms_matchType, + { "matchType", "gsm_map.ms.matchType", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_MatchType_vals), 0, + "gsm_map_ms.MatchType", HFILL }}, + { &hf_gsm_map_ms_destinationNumberList, + { "destinationNumberList", "gsm_map.ms.destinationNumberList", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.NSAPI", HFILL }}, - { &hf_gsm_map_transactionId, - { "transactionId", "gsm_map.transactionId", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TransactionId", HFILL }}, - { &hf_gsm_map_teid_ForGnAndGp, - { "teid-ForGnAndGp", "gsm_map.teid_ForGnAndGp", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TEID", HFILL }}, - { &hf_gsm_map_teid_ForIu, - { "teid-ForIu", "gsm_map.teid_ForIu", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.TEID", HFILL }}, - { &hf_gsm_map_ggsn_Address, - { "ggsn-Address", "gsm_map.ggsn_Address", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_ext_qos_Subscribed, - { "qos-Subscribed", "gsm_map.qos_Subscribed", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_qos_Requested, - { "qos-Requested", "gsm_map.qos_Requested", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_qos_Negotiated, - { "qos-Negotiated", "gsm_map.qos_Negotiated", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_chargingId, - { "chargingId", "gsm_map.chargingId", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GPRSChargingID", HFILL }}, - { &hf_gsm_map_rnc_Address, - { "rnc-Address", "gsm_map.rnc_Address", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_qos2_Subscribed, - { "qos2-Subscribed", "gsm_map.qos2_Subscribed", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext2_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_qos2_Requested, - { "qos2-Requested", "gsm_map.qos2_Requested", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext2_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_qos2_Negotiated, - { "qos2-Negotiated", "gsm_map.qos2_Negotiated", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext2_QoS_Subscribed", HFILL }}, - { &hf_gsm_map_cug_OutgoingAccess, - { "cug-OutgoingAccess", "gsm_map.cug_OutgoingAccess", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gmsc_Address, - { "gmsc-Address", "gsm_map.gmsc_Address", + "gsm_map_ms.DestinationNumberList", HFILL }}, + { &hf_gsm_map_ms_destinationNumberLengthList, + { "destinationNumberLengthList", "gsm_map.ms.destinationNumberLengthList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.DestinationNumberLengthList", HFILL }}, + { &hf_gsm_map_ms_DestinationNumberList_item, + { "Item", "gsm_map.ms.DestinationNumberList_item", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_supportedCamelPhasesInInterrogatingNode, - { "supportedCamelPhasesInInterrogatingNode", "gsm_map.supportedCamelPhasesInInterrogatingNode", + { &hf_gsm_map_ms_DestinationNumberLengthList_item, + { "Item", "gsm_map.ms.DestinationNumberLengthList_item", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.INTEGER_1_maxNumOfISDN_AddressDigits", HFILL }}, + { &hf_gsm_map_ms_BasicServiceCriteria_item, + { "Item", "gsm_map.ms.BasicServiceCriteria_item", + FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, + "gsm_map.Ext_BasicServiceCode", HFILL }}, + { &hf_gsm_map_ms_O_CauseValueCriteria_item, + { "Item", "gsm_map.ms.O_CauseValueCriteria_item", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedCamelPhases", HFILL }}, - { &hf_gsm_map_orNotSupportedInGMSC, - { "orNotSupportedInGMSC", "gsm_map.orNotSupportedInGMSC", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_offeredCamel4CSIsInInterrogatingNode, - { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.offeredCamel4CSIsInInterrogatingNode", + "gsm_map_ms.CauseValue", HFILL }}, + { &hf_gsm_map_ms_T_CauseValueCriteria_item, + { "Item", "gsm_map.ms.T_CauseValueCriteria_item", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OfferedCamel4CSIs", HFILL }}, - { &hf_gsm_map_uu_Data, - { "uu-Data", "gsm_map.uu_Data", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.UU_Data", HFILL }}, - { &hf_gsm_map_allInformationSent, - { "allInformationSent", "gsm_map.allInformationSent", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_o_BcsmCamelTDPCriteriaList, - { "o-BcsmCamelTDPCriteriaList", "gsm_map.o_BcsmCamelTDPCriteriaList", + "gsm_map_ms.CauseValue", 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, - "gsm_map.O_BcsmCamelTDPCriteriaList", HFILL }}, - { &hf_gsm_map_uuIndicator, - { "uuIndicator", "gsm_map.uuIndicator", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.UUIndicator", HFILL }}, - { &hf_gsm_map_uui, - { "uui", "gsm_map.uui", + "gsm_map_ms.SMS_CAMEL_TDP_DataList", HFILL }}, + { &hf_gsm_map_ms_SMS_CAMEL_TDP_DataList_item, + { "Item", "gsm_map.ms.SMS_CAMEL_TDP_DataList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.SMS_CAMEL_TDP_Data", 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, + "gsm_map_ms.DefaultSMS_Handling", HFILL }}, + { &hf_gsm_map_ms_mobilityTriggers, + { "mobilityTriggers", "gsm_map.ms.mobilityTriggers", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.MobilityTriggers", HFILL }}, + { &hf_gsm_map_ms_MobilityTriggers_item, + { "Item", "gsm_map.ms.MobilityTriggers_item", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.UUI", HFILL }}, - { &hf_gsm_map_uusCFInteraction, - { "uusCFInteraction", "gsm_map.uusCFInteraction", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_isdn_BearerCapability, - { "isdn-BearerCapability", "gsm_map.isdn_BearerCapability", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_call_Direction, - { "call-Direction", "gsm_map.call_Direction", + "gsm_map_ms.MM_Code", HFILL }}, + { &hf_gsm_map_ms_t_BcsmCamelTDPDataList, + { "t-BcsmCamelTDPDataList", "gsm_map.ms.t_BcsmCamelTDPDataList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.T_BcsmCamelTDPDataList", HFILL }}, + { &hf_gsm_map_ms_T_BcsmCamelTDPDataList_item, + { "Item", "gsm_map.ms.T_BcsmCamelTDPDataList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.T_BcsmCamelTDPData", 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, + "gsm_map_ms.T_BcsmTriggerDetectionPoint", HFILL }}, + { &hf_gsm_map_ms_ggsn_Address, + { "ggsn-Address", "gsm_map.ms.ggsn_Address", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CallDirection", HFILL }}, - { &hf_gsm_map_b_Subscriber_Address, - { "b-Subscriber-Address", "gsm_map.b_Subscriber_Address", + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_ms_ggsn_Number, + { "ggsn-Number", "gsm_map.ms.ggsn_Number", FT_BYTES, BASE_HEX, NULL, 0, "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_chosenChannel, - { "chosenChannel", "gsm_map.chosenChannel", + { &hf_gsm_map_ms_mobileNotReachableReason, + { "mobileNotReachableReason", "gsm_map.ms.mobileNotReachableReason", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_er.AbsentSubscriberDiagnosticSM", HFILL }}, + { &hf_gsm_map_ms_hlr_List, + { "hlr-List", "gsm_map.ms.hlr_List", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.HLR_List", HFILL }}, + { &hf_gsm_map_ms_msNotReachable, + { "msNotReachable", "gsm_map.ms.msNotReachable", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_lowerLayerCompatibility, - { "lowerLayerCompatibility", "gsm_map.lowerLayerCompatibility", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_VBSDataList_item, + { "Item", "gsm_map.ms.VBSDataList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_highLayerCompatibility, - { "highLayerCompatibility", "gsm_map.highLayerCompatibility", + "gsm_map_ms.VoiceBroadcastData", HFILL }}, + { &hf_gsm_map_ms_VGCSDataList_item, + { "Item", "gsm_map.ms.VGCSDataList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_sIWFSNumber, - { "sIWFSNumber", "gsm_map.sIWFSNumber", + "gsm_map_ms.VoiceGroupCallData", HFILL }}, + { &hf_gsm_map_ms_groupId, + { "groupId", "gsm_map.ms.groupId", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_channelType, - { "channelType", "gsm_map.channelType", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_ccbs_Monitoring, - { "ccbs-Monitoring", "gsm_map.ccbs_Monitoring", - FT_UINT32, BASE_DEC, VALS(gsm_map_ReportingState_vals), 0, - "gsm_map.ReportingState", HFILL }}, - { &hf_gsm_map_ccbs_SubscriberStatus, - { "ccbs-SubscriberStatus", "gsm_map.ccbs_SubscriberStatus", - FT_UINT32, BASE_DEC, VALS(gsm_map_CCBS_SubscriberStatus_vals), 0, - "gsm_map.CCBS_SubscriberStatus", HFILL }}, - { &hf_gsm_map_eventReportData, - { "eventReportData", "gsm_map.eventReportData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.EventReportData", HFILL }}, - { &hf_gsm_map_callReportdata, - { "callReportdata", "gsm_map.callReportdata", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CallReportData", HFILL }}, - { &hf_gsm_map_monitoringMode, - { "monitoringMode", "gsm_map.monitoringMode", - FT_UINT32, BASE_DEC, VALS(gsm_map_MonitoringMode_vals), 0, - "gsm_map.MonitoringMode", HFILL }}, - { &hf_gsm_map_callOutcome, - { "callOutcome", "gsm_map.callOutcome", - FT_UINT32, BASE_DEC, VALS(gsm_map_CallOutcome_vals), 0, - "gsm_map.CallOutcome", HFILL }}, - { &hf_gsm_map_callTerminationIndicator, - { "callTerminationIndicator", "gsm_map.callTerminationIndicator", - FT_UINT32, BASE_DEC, VALS(gsm_map_CallTerminationIndicator_vals), 0, - "gsm_map.CallTerminationIndicator", HFILL }}, - { &hf_gsm_map_msrn, - { "msrn", "gsm_map.msrn", + "gsm_map_ms.GroupId", HFILL }}, + { &hf_gsm_map_ms_additionalSubscriptions, + { "additionalSubscriptions", "gsm_map.ms.additionalSubscriptions", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_callInfo, - { "callInfo", "gsm_map.callInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExternalSignalInfo", HFILL }}, - { &hf_gsm_map_ccbs_Feature, - { "ccbs-Feature", "gsm_map.ccbs_Feature", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CCBS_Feature", HFILL }}, - { &hf_gsm_map_translatedB_Number, - { "translatedB-Number", "gsm_map.translatedB_Number", + "gsm_map_ms.AdditionalSubscriptions", HFILL }}, + { &hf_gsm_map_ms_additionalInfo, + { "additionalInfo", "gsm_map.ms.additionalInfo", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_replaceB_Number, - { "replaceB-Number", "gsm_map.replaceB_Number", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ruf_Outcome, - { "ruf-Outcome", "gsm_map.ruf_Outcome", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ruf_Outcome_vals), 0, - "gsm_map.Ruf_Outcome", HFILL }}, - { &hf_gsm_map_ext_basicServiceGroupList, - { "basicServiceGroupList", "gsm_map.basicServiceGroupList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.BasicServiceGroupList", HFILL }}, - { &hf_gsm_map_cliRestrictionOption, - { "cliRestrictionOption", "gsm_map.cliRestrictionOption", - FT_UINT32, BASE_DEC, VALS(gsm_map_CliRestrictionOption_vals), 0, - "gsm_map.CliRestrictionOption", HFILL }}, - { &hf_gsm_map_overrideCategory, - { "overrideCategory", "gsm_map.overrideCategory", - FT_UINT32, BASE_DEC, VALS(gsm_map_OverrideCategory_vals), 0, - "gsm_map.OverrideCategory", HFILL }}, - { &hf_gsm_map_forwardedToNumber_addr, - { "forwardedToNumber", "gsm_map.forwardedToNumber", + "gsm_map_ms.AdditionalInfo", HFILL }}, + { &hf_gsm_map_ms_longGroupId, + { "longGroupId", "gsm_map.ms.longGroupId", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AddressString", HFILL }}, - { &hf_gsm_map_forwardingInfo, - { "forwardingInfo", "gsm_map.forwardingInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ForwardingInfo", HFILL }}, - { &hf_gsm_map_callBarringInfo, - { "callBarringInfo", "gsm_map.callBarringInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CallBarringInfo", HFILL }}, - { &hf_gsm_map_ss_Data, - { "ss-Data", "gsm_map.ss_Data", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SS_Data", HFILL }}, - { &hf_gsm_map_genericServiceInfo, - { "genericServiceInfo", "gsm_map.genericServiceInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GenericServiceInfo", HFILL }}, - { &hf_gsm_map_ussd_DataCodingScheme, - { "ussd-DataCodingScheme", "gsm_map.ussd_DataCodingScheme", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.USSD_DataCodingScheme", HFILL }}, - { &hf_gsm_map_ussd_String, - { "ussd-String", "gsm_map.ussd_String", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.USSD_String", HFILL }}, - { &hf_gsm_map_failureCause, - { "failureCause", "gsm_map.failureCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_FailureCause_vals), 0, - "gsm_map.FailureCause", HFILL }}, - { &hf_gsm_map_re_attempt, - { "re-attempt", "gsm_map.re_attempt", - FT_BOOLEAN, 8, NULL, 0, - "gsm_map.BOOLEAN", HFILL }}, - { &hf_gsm_map_accessType, - { "accessType", "gsm_map.accessType", - FT_UINT32, BASE_DEC, VALS(gsm_map_AccessType_vals), 0, - "gsm_map.AccessType", HFILL }}, - { &hf_gsm_map_ccbs_Data, - { "ccbs-Data", "gsm_map.ccbs_Data", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CCBS_Data", HFILL }}, - { &hf_gsm_map_serviceIndicator, - { "serviceIndicator", "gsm_map.serviceIndicator", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ServiceIndicator", HFILL }}, - { &hf_gsm_map_ccbs_Index, - { "ccbs-Index", "gsm_map.ccbs_Index", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CCBS_Index", HFILL }}, - { &hf_gsm_map_sm_RP_PRI, - { "sm-RP-PRI", "gsm_map.sm_RP_PRI", - FT_BOOLEAN, 8, NULL, 0, - "gsm_map.BOOLEAN", HFILL }}, - { &hf_gsm_map_serviceCentreAddress, - { "serviceCentreAddress", "gsm_map.serviceCentreAddress", + "gsm_map_ms.Long_GroupId", HFILL }}, + { &hf_gsm_map_ms_groupid, + { "groupid", "gsm_map.ms.groupid", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ServiceCentreAddress", HFILL }}, - { &hf_gsm_map_gprsSupportIndicator, - { "gprsSupportIndicator", "gsm_map.gprsSupportIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_sm_RP_MTI, - { "sm-RP-MTI", "gsm_map.sm_RP_MTI", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SM_RP_MTI", HFILL }}, - { &hf_gsm_map_sm_RP_SMEA, - { "sm-RP-SMEA", "gsm_map.sm_RP_SMEA", + "gsm_map_ms.GroupId", HFILL }}, + { &hf_gsm_map_ms_broadcastInitEntitlement, + { "broadcastInitEntitlement", "gsm_map.ms.broadcastInitEntitlement", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_requestedInfo, + { "requestedInfo", "gsm_map.ms.requestedInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.RequestedInfo", HFILL }}, + { &hf_gsm_map_ms_subscriberInfo, + { "subscriberInfo", "gsm_map.ms.subscriberInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.SubscriberInfo", HFILL }}, + { &hf_gsm_map_ms_locationInformation, + { "locationInformation", "gsm_map.ms.locationInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.LocationInformation", HFILL }}, + { &hf_gsm_map_ms_subscriberState, + { "subscriberState", "gsm_map.ms.subscriberState", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0, + "gsm_map_ms.SubscriberState", HFILL }}, + { &hf_gsm_map_ms_locationInformationGPRS, + { "locationInformationGPRS", "gsm_map.ms.locationInformationGPRS", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.LocationInformationGPRS", 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, + "gsm_map_ms.PS_SubscriberState", HFILL }}, + { &hf_gsm_map_ms_ms_Classmark2, + { "ms-Classmark2", "gsm_map.ms.ms_Classmark2", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SM_RP_SMEA", HFILL }}, - { &hf_gsm_map_locationInfoWithLMSI, - { "locationInfoWithLMSI", "gsm_map.locationInfoWithLMSI", + "gsm_map_ms.MS_Classmark2", HFILL }}, + { &hf_gsm_map_ms_gprs_MS_Class, + { "gprs-MS-Class", "gsm_map.ms.gprs_MS_Class", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LocationInfoWithLMSI", HFILL }}, - { &hf_gsm_map_networkNode_Number, - { "networkNode-Number", "gsm_map.networkNode_Number", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_gprsNodeIndicator, - { "gprsNodeIndicator", "gsm_map.gprsNodeIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_additional_Number, - { "additional-Number", "gsm_map.additional_Number", - FT_UINT32, BASE_DEC, VALS(gsm_map_Additional_Number_vals), 0, - "gsm_map.Additional_Number", HFILL }}, - { &hf_gsm_map_sm_RP_DA, - { "sm-RP-DA", "gsm_map.sm_RP_DA", - FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_DA_vals), 0, - "gsm_map.Sm_RP_DA", HFILL }}, - { &hf_gsm_map_sm_RP_OA, - { "sm-RP-OA", "gsm_map.sm_RP_OA", - FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_RP_OA_vals), 0, - "gsm_map.Sm_RP_OA", HFILL }}, - { &hf_gsm_map_sm_RP_UI, - { "sm-RP-UI", "gsm_map.sm_RP_UI", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Sm_RP_UI", HFILL }}, - { &hf_gsm_map_serviceCentreAddressOA, - { "serviceCentreAddressOA", "gsm_map.serviceCentreAddressOA", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ServiceCentreAddress", HFILL }}, - { &hf_gsm_map_noSM_RP_OA, - { "noSM-RP-OA", "gsm_map.noSM_RP_OA", + "gsm_map_ms.GPRSMSClass", HFILL }}, + { &hf_gsm_map_ms_mnpInfoRes, + { "mnpInfoRes", "gsm_map.ms.mnpInfoRes", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_serviceCentreAddressDA, - { "serviceCentreAddressDA", "gsm_map.serviceCentreAddressDA", + "gsm_map_ms.MNPInfoRes", HFILL }}, + { &hf_gsm_map_ms_routeingNumber, + { "routeingNumber", "gsm_map.ms.routeingNumber", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ServiceCentreAddress", HFILL }}, - { &hf_gsm_map_noSM_RP_DA, - { "noSM-RP-DA", "gsm_map.noSM_RP_DA", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_moreMessagesToSend, - { "moreMessagesToSend", "gsm_map.moreMessagesToSend", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_sm_DeliveryOutcome, - { "sm-DeliveryOutcome", "gsm_map.sm_DeliveryOutcome", - FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0, - "gsm_map.Sm_DeliveryOutcome", HFILL }}, - { &hf_gsm_map_absentSubscriberDiagnosticSM, - { "absentSubscriberDiagnosticSM", "gsm_map.absentSubscriberDiagnosticSM", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.AbsentSubscriberDiagnosticSM", HFILL }}, - { &hf_gsm_map_deliveryOutcomeIndicator, - { "deliveryOutcomeIndicator", "gsm_map.deliveryOutcomeIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_additionalSM_DeliveryOutcome, - { "additionalSM-DeliveryOutcome", "gsm_map.additionalSM_DeliveryOutcome", - FT_UINT32, BASE_DEC, VALS(gsm_map_Sm_DeliveryOutcome_vals), 0, - "gsm_map.Sm_DeliveryOutcome", HFILL }}, - { &hf_gsm_map_additionalAbsentSubscriberDiagnosticSM, - { "additionalAbsentSubscriberDiagnosticSM", "gsm_map.additionalAbsentSubscriberDiagnosticSM", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.AbsentSubscriberDiagnosticSM", HFILL }}, - { &hf_gsm_map_storedMSISDN, - { "storedMSISDN", "gsm_map.storedMSISDN", + "gsm_map_ms.RouteingNumber", HFILL }}, + { &hf_gsm_map_ms_numberPortabilityStatus, + { "numberPortabilityStatus", "gsm_map.ms.numberPortabilityStatus", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0, + "gsm_map_ms.NumberPortabilityStatus", HFILL }}, + { &hf_gsm_map_ms_mSNetworkCapability, + { "mSNetworkCapability", "gsm_map.ms.mSNetworkCapability", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_mw_Status, - { "mw-Status", "gsm_map.mw_Status", + "gsm_map_ms.MSNetworkCapability", HFILL }}, + { &hf_gsm_map_ms_mSRadioAccessCapability, + { "mSRadioAccessCapability", "gsm_map.ms.mSRadioAccessCapability", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MW_Status", HFILL }}, - { &hf_gsm_map_alertReason, - { "alertReason", "gsm_map.alertReason", - FT_UINT32, BASE_DEC, VALS(gsm_map_AlertReason_vals), 0, - "gsm_map.AlertReason", HFILL }}, - { &hf_gsm_map_alertReasonIndicator, - { "alertReasonIndicator", "gsm_map.alertReasonIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_dispatcherList, - { "dispatcherList", "gsm_map.dispatcherList", + "gsm_map_ms.MSRadioAccessCapability", HFILL }}, + { &hf_gsm_map_ms_locationInformation_01, + { "locationInformation", "gsm_map.ms.locationInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_subscriberState_01, + { "subscriberState", "gsm_map.ms.subscriberState", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_currentLocation, + { "currentLocation", "gsm_map.ms.currentLocation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_requestedDomain, + { "requestedDomain", "gsm_map.ms.requestedDomain", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DomainType_vals), 0, + "gsm_map_ms.DomainType", HFILL }}, + { &hf_gsm_map_ms_imei_01, + { "imei", "gsm_map.ms.imei", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_ms_classmark, + { "ms-classmark", "gsm_map.ms.ms_classmark", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_mnpRequestedInfo, + { "mnpRequestedInfo", "gsm_map.ms.mnpRequestedInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_ageOfLocationInformation, + { "ageOfLocationInformation", "gsm_map.ms.ageOfLocationInformation", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.DispatcherList", HFILL }}, - { &hf_gsm_map_ongoingCall, - { "ongoingCall", "gsm_map.ongoingCall", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_DispatcherList_item, - { "Item", "gsm_map.DispatcherList_item", + "gsm_map.AgeOfLocationInformation", HFILL }}, + { &hf_gsm_map_ms_geographicalInformation, + { "geographicalInformation", "gsm_map.ms.geographicalInformation", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_requestedInfo, - { "requestedInfo", "gsm_map.requestedInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.RequestedInfo", HFILL }}, - { &hf_gsm_map_locationInformation, - { "locationInformation", "gsm_map.locationInformation", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LocationInformation", HFILL }}, - { &hf_gsm_map_subscriberState, - { "subscriberState", "gsm_map.subscriberState", - FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberState_vals), 0, - "gsm_map.SubscriberState", HFILL }}, - { &hf_gsm_map_locationInformationGPRS, - { "locationInformationGPRS", "gsm_map.locationInformationGPRS", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LocationInformationGPRS", HFILL }}, - { &hf_gsm_map_ps_SubscriberState, - { "ps-SubscriberState", "gsm_map.ps_SubscriberState", - FT_UINT32, BASE_DEC, VALS(gsm_map_PS_SubscriberState_vals), 0, - "gsm_map.PS_SubscriberState", HFILL }}, - { &hf_gsm_map_ms_Classmark2, - { "ms-Classmark2", "gsm_map.ms_Classmark2", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MS_Classmark2", HFILL }}, - { &hf_gsm_map_gprs_MS_Class, - { "gprs-MS-Class", "gsm_map.gprs_MS_Class", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.GPRSMSClass", HFILL }}, - { &hf_gsm_map_mnpInfoRes, - { "mnpInfoRes", "gsm_map.mnpInfoRes", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.MNPInfoRes", HFILL }}, - { &hf_gsm_map_routeingNumber, - { "routeingNumber", "gsm_map.routeingNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RouteingNumber", HFILL }}, - { &hf_gsm_map_mSNetworkCapability, - { "mSNetworkCapability", "gsm_map.mSNetworkCapability", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MSNetworkCapability", HFILL }}, - { &hf_gsm_map_mSRadioAccessCapability, - { "mSRadioAccessCapability", "gsm_map.mSRadioAccessCapability", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MSRadioAccessCapability", HFILL }}, - { &hf_gsm_map_locationInformation_flg, - { "locationInformation", "gsm_map.locationInformation", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_subscriberState_flg, - { "subscriberState", "gsm_map.subscriberState", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_currentLocation, - { "currentLocation", "gsm_map.currentLocation", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_requestedDomain, - { "requestedDomain", "gsm_map.requestedDomain", - FT_UINT32, BASE_DEC, VALS(gsm_map_DomainType_vals), 0, - "gsm_map.DomainType", HFILL }}, - { &hf_gsm_map_imei_flg, - { "imei", "gsm_map.imei", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ms_classmark, - { "ms-classmark", "gsm_map.ms_classmark", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_mnpRequestedInfo, - { "mnpRequestedInfo", "gsm_map.mnpRequestedInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_subscriberIdentity, - { "subscriberIdentity", "gsm_map.subscriberIdentity", - FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0, - "gsm_map.SubscriberIdentity", HFILL }}, - { &hf_gsm_map_requestedSubscriptionInfo, - { "requestedSubscriptionInfo", "gsm_map.requestedSubscriptionInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.RequestedSubscriptionInfo", HFILL }}, - { &hf_gsm_map_callForwardingData, - { "callForwardingData", "gsm_map.callForwardingData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CallForwardingData", HFILL }}, - { &hf_gsm_map_callBarringData, - { "callBarringData", "gsm_map.callBarringData", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CallBarringData", HFILL }}, - { &hf_gsm_map_odb_Info, - { "odb-Info", "gsm_map.odb_Info", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ODB_Info", HFILL }}, - { &hf_gsm_map_camel_SubscriptionInfo, - { "camel-SubscriptionInfo", "gsm_map.camel_SubscriptionInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CAMEL_SubscriptionInfo", HFILL }}, - { &hf_gsm_map_supportedVLR_CAMEL_Phases, - { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases", + "gsm_map_ms.GeographicalInformation", HFILL }}, + { &hf_gsm_map_ms_vlr_number, + { "vlr-number", "gsm_map.ms.vlr_number", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedCamelPhases", HFILL }}, - { &hf_gsm_map_supportedSGSN_CAMEL_Phases, - { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases", + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ms_locationNumber, + { "locationNumber", "gsm_map.ms.locationNumber", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedCamelPhases", HFILL }}, - { &hf_gsm_map_offeredCamel4CSIsInVLR, - { "offeredCamel4CSIsInVLR", "gsm_map.offeredCamel4CSIsInVLR", + "gsm_map_ms.LocationNumber", HFILL }}, + { &hf_gsm_map_ms_cellGlobalIdOrServiceAreaIdOrLAI, + { "cellGlobalIdOrServiceAreaIdOrLAI", "gsm_map.ms.cellGlobalIdOrServiceAreaIdOrLAI", + FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0, + "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }}, + { &hf_gsm_map_ms_selectedLSA_Id, + { "selectedLSA-Id", "gsm_map.ms.selectedLSA_Id", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OfferedCamel4CSIs", HFILL }}, - { &hf_gsm_map_offeredCamel4CSIsInSGSN, - { "offeredCamel4CSIsInSGSN", "gsm_map.offeredCamel4CSIsInSGSN", + "gsm_map_ms.LSAIdentity", HFILL }}, + { &hf_gsm_map_ms_geodeticInformation, + { "geodeticInformation", "gsm_map.ms.geodeticInformation", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OfferedCamel4CSIs", HFILL }}, - { &hf_gsm_map_msisdn_BS_List, - { "msisdn-BS-List", "gsm_map.msisdn_BS_List", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MSISDN_BS_List", HFILL }}, - { &hf_gsm_map_requestedSS_Info, - { "requestedSS-Info", "gsm_map.requestedSS_Info", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SS_ForBS_Code", HFILL }}, - { &hf_gsm_map_odb, - { "odb", "gsm_map.odb", + "gsm_map_ms.GeodeticInformation", HFILL }}, + { &hf_gsm_map_ms_currentLocationRetrieved, + { "currentLocationRetrieved", "gsm_map.ms.currentLocationRetrieved", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_requestedCAMEL_SubscriptionInfo, - { "requestedCAMEL-SubscriptionInfo", "gsm_map.requestedCAMEL_SubscriptionInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_RequestedCAMEL_SubscriptionInfo_vals), 0, - "gsm_map.RequestedCAMEL_SubscriptionInfo", HFILL }}, - { &hf_gsm_map_supportedVLR_CAMEL_Phases_flg, - { "supportedVLR-CAMEL-Phases", "gsm_map.supportedVLR_CAMEL_Phases", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_supportedSGSN_CAMEL_Phases_flg, - { "supportedSGSN-CAMEL-Phases", "gsm_map.supportedSGSN_CAMEL_Phases", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_additionalRequestedCAMEL_SubscriptionInfo, - { "additionalRequestedCAMEL-SubscriptionInfo", "gsm_map.additionalRequestedCAMEL_SubscriptionInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalRequestedCAMEL_SubscriptionInfo_vals), 0, - "gsm_map.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }}, - { &hf_gsm_map_msisdn_BS_List_flag, - { "msisdn-BS-List-flag", "gsm_map.msisdn_BS_List_flag", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_MSISDN_BS_List_item, - { "Item", "gsm_map.MSISDN_BS_List_item", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_sai_Present, + { "sai-Present", "gsm_map.ms.sai_Present", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.MSISDN_BS", HFILL }}, - { &hf_gsm_map_password, - { "password", "gsm_map.password", - FT_STRING, BASE_NONE, NULL, 0, - "gsm_map.Password", HFILL }}, - { &hf_gsm_map_wrongPasswordAttemptsCounter, - { "wrongPasswordAttemptsCounter", "gsm_map.wrongPasswordAttemptsCounter", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.WrongPasswordAttemptsCounter", HFILL }}, - { &hf_gsm_map_bearerService, - { "bearerService", "gsm_map.bearerService", - FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, - "gsm_map.BearerServiceCode", HFILL }}, - { &hf_gsm_map_teleservice_code, - { "teleservice", "gsm_map.teleservice", - FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, - "gsm_map.TeleserviceCode", HFILL }}, - { &hf_gsm_map_O_BcsmCamelTDPCriteriaList_item, - { "Item", "gsm_map.O_BcsmCamelTDPCriteriaList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.O_BcsmCamelTDP_Criteria", HFILL }}, - { &hf_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList_item, - { "Item", "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_BCSM_CAMEL_TDP_Criteria", HFILL }}, - { &hf_gsm_map_destinationNumberCriteria, - { "destinationNumberCriteria", "gsm_map.destinationNumberCriteria", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.DestinationNumberCriteria", HFILL }}, - { &hf_gsm_map_basicServiceCriteria, - { "basicServiceCriteria", "gsm_map.basicServiceCriteria", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.BasicServiceCriteria", HFILL }}, - { &hf_gsm_map_callTypeCriteria, - { "callTypeCriteria", "gsm_map.callTypeCriteria", - FT_UINT32, BASE_DEC, VALS(gsm_map_CallTypeCriteria_vals), 0, - "gsm_map.CallTypeCriteria", HFILL }}, - { &hf_gsm_map_o_CauseValueCriteria, - { "o-CauseValueCriteria", "gsm_map.o_CauseValueCriteria", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.O_CauseValueCriteria", HFILL }}, - { &hf_gsm_map_t_BCSM_TriggerDetectionPoint, - { "t-BCSM-TriggerDetectionPoint", "gsm_map.t_BCSM_TriggerDetectionPoint", - FT_UINT32, BASE_DEC, VALS(gsm_map_T_BcsmTriggerDetectionPoint_vals), 0, - "gsm_map.T_BcsmTriggerDetectionPoint", HFILL }}, - { &hf_gsm_map_t_CauseValueCriteria, - { "t-CauseValueCriteria", "gsm_map.t_CauseValueCriteria", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.T_CauseValueCriteria", HFILL }}, - { &hf_gsm_map_maximumEntitledPriority, - { "maximumEntitledPriority", "gsm_map.maximumEntitledPriority", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.EMLPP_Priority", HFILL }}, - { &hf_gsm_map_ccbs_FeatureList, - { "ccbs-FeatureList", "gsm_map.ccbs_FeatureList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.CCBS_FeatureList", HFILL }}, - { &hf_gsm_map_nbrSN, - { "nbrSN", "gsm_map.nbrSN", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.MC_Bearers", HFILL }}, - { &hf_gsm_map_CCBS_FeatureList_item, - { "Item", "gsm_map.CCBS_FeatureList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.CCBS_Feature", HFILL }}, - { &hf_gsm_map_b_subscriberNumber, - { "b-subscriberNumber", "gsm_map.b_subscriberNumber", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_routeingAreaIdentity, + { "routeingAreaIdentity", "gsm_map.ms.routeingAreaIdentity", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_b_subscriberSubaddress, - { "b-subscriberSubaddress", "gsm_map.b_subscriberSubaddress", + "gsm_map_ms.RAIdentity", HFILL }}, + { &hf_gsm_map_ms_selectedLSAIdentity, + { "selectedLSAIdentity", "gsm_map.ms.selectedLSAIdentity", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_SubaddressString", HFILL }}, - { &hf_gsm_map_basicServiceGroup, - { "basicServiceGroup", "gsm_map.basicServiceGroup", - FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, - "gsm_map.BasicServiceCode", HFILL }}, - { &hf_gsm_map_T_CauseValueCriteria_item, - { "Item", "gsm_map.T_CauseValueCriteria_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CauseValue", HFILL }}, - { &hf_gsm_map_O_CauseValueCriteria_item, - { "Item", "gsm_map.O_CauseValueCriteria_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CauseValue", HFILL }}, - { &hf_gsm_map_BasicServiceCriteria_item, - { "Item", "gsm_map.BasicServiceCriteria_item", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, - "gsm_map.Ext_BasicServiceCode", HFILL }}, - { &hf_gsm_map_modificationRequestFor_CF_Info, - { "modificationRequestFor-CF-Info", "gsm_map.modificationRequestFor_CF_Info", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ModificationRequestFor_CF_Info", HFILL }}, - { &hf_gsm_map_modificationRequestFor_CB_Info, - { "modificationRequestFor-CB-Info", "gsm_map.modificationRequestFor_CB_Info", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ModificationRequestFor_CB_Info", HFILL }}, - { &hf_gsm_map_modificationRequestFor_CSI, - { "modificationRequestFor-CSI", "gsm_map.modificationRequestFor_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ModificationRequestFor_CSI", HFILL }}, - { &hf_gsm_map_modificationRequestFor_ODB_data, - { "modificationRequestFor-ODB-data", "gsm_map.modificationRequestFor_ODB_data", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ModificationRequestFor_ODB_data", HFILL }}, - { &hf_gsm_map_ss_InfoFor_CSE, - { "ss-InfoFor-CSE", "gsm_map.ss_InfoFor_CSE", - FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_SS_InfoFor_CSE_vals), 0, - "gsm_map.Ext_SS_InfoFor_CSE", HFILL }}, - { &hf_gsm_map_modifyNotificationToCSE, - { "modifyNotificationToCSE", "gsm_map.modifyNotificationToCSE", - FT_UINT32, BASE_DEC, VALS(gsm_map_ModificationInstruction_vals), 0, - "gsm_map.ModificationInstruction", HFILL }}, - { &hf_gsm_map_odb_data, - { "odb-data", "gsm_map.odb_data", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ODB_Data", HFILL }}, - { &hf_gsm_map_requestedCamel_SubscriptionInfo, - { "requestedCamel-SubscriptionInfo", "gsm_map.requestedCamel_SubscriptionInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_RequestedCAMEL_SubscriptionInfo_vals), 0, - "gsm_map.RequestedCAMEL_SubscriptionInfo", HFILL }}, - { &hf_gsm_map_modifyCSI_State, - { "modifyCSI-State", "gsm_map.modifyCSI_State", - FT_UINT32, BASE_DEC, VALS(gsm_map_ModificationInstruction_vals), 0, - "gsm_map.ModificationInstruction", HFILL }}, - { &hf_gsm_map_forwardingInfoFor_CSE, - { "forwardingInfoFor-CSE", "gsm_map.forwardingInfoFor_CSE", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_ForwardingInfoFor_CSE", HFILL }}, - { &hf_gsm_map_callBarringInfoFor_CSE, - { "callBarringInfoFor-CSE", "gsm_map.callBarringInfoFor_CSE", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Ext_CallBarringInfoFor_CSE", HFILL }}, - { &hf_gsm_map_eventMet, - { "eventMet", "gsm_map.eventMet", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MM_Code", HFILL }}, - { &hf_gsm_map_supportedCAMELPhases, - { "supportedCAMELPhases", "gsm_map.supportedCAMELPhases", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedCamelPhases", HFILL }}, - { &hf_gsm_map_offeredCamel4Functionalities, - { "offeredCamel4Functionalities", "gsm_map.offeredCamel4Functionalities", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OfferedCamel4Functionalities", HFILL }}, - { &hf_gsm_map_vt_BCSM_CAMEL_TDP_CriteriaList, - { "vt-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_BCSM_CAMEL_TDP_CriteriaList", + "gsm_map_ms.LSAIdentity", HFILL }}, + { &hf_gsm_map_ms_assumedIdle, + { "assumedIdle", "gsm_map.ms.assumedIdle", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_camelBusy, + { "camelBusy", "gsm_map.ms.camelBusy", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_netDetNotReachable, + { "netDetNotReachable", "gsm_map.ms.netDetNotReachable", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotReachableReason_vals), 0, + "gsm_map_ms.NotReachableReason", HFILL }}, + { &hf_gsm_map_ms_notProvidedFromVLR, + { "notProvidedFromVLR", "gsm_map.ms.notProvidedFromVLR", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_notProvidedFromSGSN, + { "notProvidedFromSGSN", "gsm_map.ms.notProvidedFromSGSN", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_ps_Detached, + { "ps-Detached", "gsm_map.ms.ps_Detached", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_ps_AttachedNotReachableForPaging, + { "ps-AttachedNotReachableForPaging", "gsm_map.ms.ps_AttachedNotReachableForPaging", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_ps_AttachedReachableForPaging, + { "ps-AttachedReachableForPaging", "gsm_map.ms.ps_AttachedReachableForPaging", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_ps_PDP_ActiveNotReachableForPaging, + { "ps-PDP-ActiveNotReachableForPaging", "gsm_map.ms.ps_PDP_ActiveNotReachableForPaging", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, - { &hf_gsm_map_tif_CSI_NotificationToCSE, - { "tif-CSI-NotificationToCSE", "gsm_map.tif_CSI_NotificationToCSE", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_specificCSIDeletedList, - { "specificCSIDeletedList", "gsm_map.specificCSIDeletedList", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SpecificCSI_Withdraw", HFILL }}, - { &hf_gsm_map_o_IM_CSI, - { "o-IM-CSI", "gsm_map.o_IM_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.O_CSI", HFILL }}, - { &hf_gsm_map_o_IM_BcsmCamelTDP_CriteriaList, - { "o-IM-BcsmCamelTDP-CriteriaList", "gsm_map.o_IM_BcsmCamelTDP_CriteriaList", + "gsm_map_ms.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, - "gsm_map.O_BcsmCamelTDPCriteriaList", HFILL }}, - { &hf_gsm_map_d_IM_CSI, - { "d-IM-CSI", "gsm_map.d_IM_CSI", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.D_CSI", HFILL }}, - { &hf_gsm_map_vt_IM_CSI, - { "vt-IM-CSI", "gsm_map.vt_IM_CSI", + "gsm_map_ms.PDP_ContextInfoList", HFILL }}, + { &hf_gsm_map_ms_PDP_ContextInfoList_item, + { "Item", "gsm_map.ms.PDP_ContextInfoList_item", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_CSI", HFILL }}, - { &hf_gsm_map_vt_IM_BCSM_CAMEL_TDP_CriteriaList, - { "vt-IM-BCSM-CAMEL-TDP-CriteriaList", "gsm_map.vt_IM_BCSM_CAMEL_TDP_CriteriaList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, - { &hf_gsm_map_ext_BearerService, - { "ext-BearerService", "gsm_map.ext_BearerService", - FT_UINT8, BASE_DEC, VALS(Bearerservice_vals), 0, - "gsm_map.Ext_BearerServiceCode", HFILL }}, - { &hf_gsm_map_ext_Teleservice, - { "ext-Teleservice", "gsm_map.ext_Teleservice", - FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, - "gsm_map.Ext_TeleserviceCode", HFILL }}, - { &hf_gsm_map_odb_HPLMN_Data, - { "odb-HPLMN-Data", "gsm_map.odb_HPLMN_Data", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ODB_HPLMN_Data", HFILL }}, - { &hf_gsm_map_SS_EventList_item, - { "Item", "gsm_map.SS_EventList_item", - FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, - "gsm_map.SS_Code", HFILL }}, - { &hf_gsm_map_t_BcsmCamelTDPDataList, - { "t-BcsmCamelTDPDataList", "gsm_map.t_BcsmCamelTDPDataList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.T_BcsmCamelTDPDataList", HFILL }}, - { &hf_gsm_map_T_BcsmCamelTDPDataList_item, - { "Item", "gsm_map.T_BcsmCamelTDPDataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.T_BcsmCamelTDPData", HFILL }}, - { &hf_gsm_map_t_BcsmTriggerDetectionPoint, - { "t-BcsmTriggerDetectionPoint", "gsm_map.t_BcsmTriggerDetectionPoint", - FT_UINT32, BASE_DEC, VALS(gsm_map_T_BcsmTriggerDetectionPoint_vals), 0, - "gsm_map.T_BcsmTriggerDetectionPoint", HFILL }}, - { &hf_gsm_map_sms_CAMEL_TDP_DataList, - { "sms-CAMEL-TDP-DataList", "gsm_map.sms_CAMEL_TDP_DataList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SMS_CAMEL_TDP_DataList", HFILL }}, - { &hf_gsm_map_SMS_CAMEL_TDP_DataList_item, - { "Item", "gsm_map.SMS_CAMEL_TDP_DataList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SMS_CAMEL_TDP_Data", HFILL }}, - { &hf_gsm_map_defaultSMS_Handling, - { "defaultSMS-Handling", "gsm_map.defaultSMS_Handling", - FT_UINT32, BASE_DEC, VALS(gsm_map_DefaultSMS_Handling_vals), 0, - "gsm_map.DefaultSMS_Handling", HFILL }}, - { &hf_gsm_map_MobilityTriggers_item, - { "Item", "gsm_map.MobilityTriggers_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.MM_Code", HFILL }}, - { &hf_gsm_map_ss_Event, - { "ss-Event", "gsm_map.ss_Event", - FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, - "gsm_map.SS_Code", HFILL }}, - { &hf_gsm_map_ss_EventSpecification, - { "ss-EventSpecification", "gsm_map.ss_EventSpecification", + "gsm_map_ms.PDP_ContextInfo", HFILL }}, + { &hf_gsm_map_ms_pdp_ContextIdentifier, + { "pdp-ContextIdentifier", "gsm_map.ms.pdp_ContextIdentifier", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SS_EventSpecification", HFILL }}, - { &hf_gsm_map_ccbs_RequestState, - { "ccbs-RequestState", "gsm_map.ccbs_RequestState", - FT_UINT32, BASE_DEC, VALS(gsm_map_CCBS_RequestState_vals), 0, - "gsm_map.CCBS_RequestState", HFILL }}, - { &hf_gsm_map_SS_EventSpecification_item, - { "Item", "gsm_map.SS_EventSpecification_item", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AddressString", HFILL }}, - { &hf_gsm_map_ext_teleservice, - { "teleservice", "gsm_map.teleservice", - FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, - "gsm_map.Ext_TeleserviceCode", HFILL }}, - { &hf_gsm_map_codec_Info, - { "codec-Info", "gsm_map.codec_Info", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CODEC_Info", HFILL }}, - { &hf_gsm_map_cipheringAlgorithm, - { "cipheringAlgorithm", "gsm_map.cipheringAlgorithm", + "gsm_map_ms.ContextId", HFILL }}, + { &hf_gsm_map_ms_pdp_ContextActive, + { "pdp-ContextActive", "gsm_map.ms.pdp_ContextActive", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_apn_Subscribed, + { "apn-Subscribed", "gsm_map.ms.apn_Subscribed", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.CipheringAlgorithm", HFILL }}, - { &hf_gsm_map_groupKeyNumber_Vk_Id, - { "groupKeyNumber-Vk-Id", "gsm_map.groupKeyNumber_Vk_Id", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.GroupKeyNumber", HFILL }}, - { &hf_gsm_map_groupKey, - { "groupKey", "gsm_map.groupKey", + "gsm_map_ms.APN", HFILL }}, + { &hf_gsm_map_ms_apn_InUse, + { "apn-InUse", "gsm_map.ms.apn_InUse", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Kc", HFILL }}, - { &hf_gsm_map_priority, - { "priority", "gsm_map.priority", + "gsm_map_ms.APN", HFILL }}, + { &hf_gsm_map_ms_nsapi, + { "nsapi", "gsm_map.ms.nsapi", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.EMLPP_Priority", HFILL }}, - { &hf_gsm_map_uplinkFree, - { "uplinkFree", "gsm_map.uplinkFree", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_vstk, - { "vstk", "gsm_map.vstk", + "gsm_map_ms.NSAPI", HFILL }}, + { &hf_gsm_map_ms_transactionId, + { "transactionId", "gsm_map.ms.transactionId", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.VSTK", HFILL }}, - { &hf_gsm_map_vstk_rand, - { "vstk-rand", "gsm_map.vstk_rand", + "gsm_map_ms.TransactionId", HFILL }}, + { &hf_gsm_map_ms_teid_ForGnAndGp, + { "teid-ForGnAndGp", "gsm_map.ms.teid_ForGnAndGp", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.VSTK_RAND", HFILL }}, - { &hf_gsm_map_groupCallNumber, - { "groupCallNumber", "gsm_map.groupCallNumber", + "gsm_map_ms.TEID", HFILL }}, + { &hf_gsm_map_ms_teid_ForIu, + { "teid-ForIu", "gsm_map.ms.teid_ForIu", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_talkerPriority, - { "talkerPriority", "gsm_map.talkerPriority", - FT_UINT32, BASE_DEC, VALS(gsm_map_TalkerPriority_vals), 0, - "gsm_map.TalkerPriority", HFILL }}, - { &hf_gsm_map_uplinkRequest, - { "uplinkRequest", "gsm_map.uplinkRequest", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_uplinkReleaseIndication, - { "uplinkReleaseIndication", "gsm_map.uplinkReleaseIndication", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_releaseGroupCall, - { "releaseGroupCall", "gsm_map.releaseGroupCall", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_emergencyModeResetCommandFlag, - { "emergencyModeResetCommandFlag", "gsm_map.emergencyModeResetCommandFlag", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_downlinkAttached, - { "downlinkAttached", "gsm_map.downlinkAttached", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_uplinkAttached, - { "uplinkAttached", "gsm_map.uplinkAttached", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_dualCommunication, - { "dualCommunication", "gsm_map.dualCommunication", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_callOriginator, - { "callOriginator", "gsm_map.callOriginator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_groupRequestedInfo, - { "groupRequestedInfo", "gsm_map.groupRequestedInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_GroupRequestedInfo_vals), 0, - "gsm_map.GroupRequestedInfo", HFILL }}, - { &hf_gsm_map_cellId, - { "cellId", "gsm_map.cellId", + "gsm_map_ms.TEID", HFILL }}, + { &hf_gsm_map_ms_qos_Subscribed_01, + { "qos-Subscribed", "gsm_map.ms.qos_Subscribed", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GlobalCellId", HFILL }}, - { &hf_gsm_map_anchorMSC_Address, - { "anchorMSC-Address", "gsm_map.anchorMSC_Address", + "gsm_map_ms.Ext_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_qos_Requested, + { "qos-Requested", "gsm_map.ms.qos_Requested", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_uplinkRequestAck, - { "uplinkRequestAck", "gsm_map.uplinkRequestAck", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_uplinkRejectCommand, - { "uplinkRejectCommand", "gsm_map.uplinkRejectCommand", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_uplinkSeizedCommand, - { "uplinkSeizedCommand", "gsm_map.uplinkSeizedCommand", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_uplinkReleaseCommand, - { "uplinkReleaseCommand", "gsm_map.uplinkReleaseCommand", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_stateAttributes, - { "stateAttributes", "gsm_map.stateAttributes", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.StateAttributes", HFILL }}, - { &hf_gsm_map_sgsn_Address, - { "sgsn-Address", "gsm_map.sgsn_Address", + "gsm_map_ms.Ext_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_qos_Negotiated, + { "qos-Negotiated", "gsm_map.ms.qos_Negotiated", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_sgsn_Capability, - { "sgsn-Capability", "gsm_map.sgsn_Capability", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SGSN_Capability", HFILL }}, - { &hf_gsm_map_ps_LCS_NotSupportedByUE, - { "ps-LCS-NotSupportedByUE", "gsm_map.ps_LCS_NotSupportedByUE", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gprsEnhancementsSupportIndicator, - { "gprsEnhancementsSupportIndicator", "gsm_map.gprsEnhancementsSupportIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_smsCallBarringSupportIndicator, - { "smsCallBarringSupportIndicator", "gsm_map.smsCallBarringSupportIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_ggsn_Number, - { "ggsn-Number", "gsm_map.ggsn_Number", + "gsm_map_ms.Ext_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_chargingId, + { "chargingId", "gsm_map.ms.chargingId", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_mobileNotReachableReason, - { "mobileNotReachableReason", "gsm_map.mobileNotReachableReason", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.AbsentSubscriberDiagnosticSM", HFILL }}, - { &hf_gsm_map_locationType, - { "locationType", "gsm_map.locationType", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LocationType", HFILL }}, - { &hf_gsm_map_mlc_Number, - { "mlc-Number", "gsm_map.mlc_Number", + "gsm_map_ms.GPRSChargingID", HFILL }}, + { &hf_gsm_map_ms_chargingCharacteristics, + { "chargingCharacteristics", "gsm_map.ms.chargingCharacteristics", + FT_UINT16, BASE_DEC, VALS(chargingcharacteristics_values), 0x0f00, + "gsm_map_ms.ChargingCharacteristics", HFILL }}, + { &hf_gsm_map_ms_rnc_Address, + { "rnc-Address", "gsm_map.ms.rnc_Address", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_lcs_ClientID, - { "lcs-ClientID", "gsm_map.lcs_ClientID", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCS_ClientID", HFILL }}, - { &hf_gsm_map_privacyOverride, - { "privacyOverride", "gsm_map.privacyOverride", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_lcs_Priority, - { "lcs-Priority", "gsm_map.lcs_Priority", + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_ms_qos2_Subscribed, + { "qos2-Subscribed", "gsm_map.ms.qos2_Subscribed", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LCS_Priority", HFILL }}, - { &hf_gsm_map_lcs_QoS, - { "lcs-QoS", "gsm_map.lcs_QoS", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCS_QoS", HFILL }}, - { &hf_gsm_map_supportedGADShapes, - { "supportedGADShapes", "gsm_map.supportedGADShapes", + "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_qos2_Requested, + { "qos2-Requested", "gsm_map.ms.qos2_Requested", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedGADShapes", HFILL }}, - { &hf_gsm_map_lcs_ReferenceNumber, - { "lcs-ReferenceNumber", "gsm_map.lcs_ReferenceNumber", + "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_qos2_Negotiated, + { "qos2-Negotiated", "gsm_map.ms.qos2_Negotiated", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LCS_ReferenceNumber", HFILL }}, - { &hf_gsm_map_lcsServiceTypeID, - { "lcsServiceTypeID", "gsm_map.lcsServiceTypeID", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.LCSServiceTypeID", HFILL }}, - { &hf_gsm_map_lcsCodeword, - { "lcsCodeword", "gsm_map.lcsCodeword", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCSCodeword", HFILL }}, - { &hf_gsm_map_lcs_PrivacyCheck, - { "lcs-PrivacyCheck", "gsm_map.lcs_PrivacyCheck", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCS_PrivacyCheck", HFILL }}, - { &hf_gsm_map_areaEventInfo, - { "areaEventInfo", "gsm_map.areaEventInfo", + "gsm_map_ms.Ext2_QoS_Subscribed", HFILL }}, + { &hf_gsm_map_ms_subscriberIdentity, + { "subscriberIdentity", "gsm_map.ms.subscriberIdentity", + FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0, + "gsm_map.SubscriberIdentity", HFILL }}, + { &hf_gsm_map_ms_requestedSubscriptionInfo, + { "requestedSubscriptionInfo", "gsm_map.ms.requestedSubscriptionInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.AreaEventInfo", HFILL }}, - { &hf_gsm_map_h_gmlc_Address, - { "h-gmlc-Address", "gsm_map.h_gmlc_Address", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_mo_lrShortCircuitIndicator, - { "mo-lrShortCircuitIndicator", "gsm_map.mo_lrShortCircuitIndicator", + "gsm_map_ms.RequestedSubscriptionInfo", HFILL }}, + { &hf_gsm_map_ms_callForwardingData, + { "callForwardingData", "gsm_map.ms.callForwardingData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_periodicLDRInfo, - { "periodicLDRInfo", "gsm_map.periodicLDRInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.PeriodicLDRInfo", HFILL }}, - { &hf_gsm_map_reportingPLMNList, - { "reportingPLMNList", "gsm_map.reportingPLMNList", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReportingPLMNList", HFILL }}, - { &hf_gsm_map_locationEstimateType, - { "locationEstimateType", "gsm_map.locationEstimateType", - FT_UINT32, BASE_DEC, VALS(gsm_map_LocationEstimateType_vals), 0, - "gsm_map.LocationEstimateType", HFILL }}, - { &hf_gsm_map_deferredLocationEventType, - { "deferredLocationEventType", "gsm_map.deferredLocationEventType", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.DeferredLocationEventType", HFILL }}, - { &hf_gsm_map_lcsClientType, - { "lcsClientType", "gsm_map.lcsClientType", - FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientType_vals), 0, - "gsm_map.LCSClientType", HFILL }}, - { &hf_gsm_map_lcsClientExternalID, - { "lcsClientExternalID", "gsm_map.lcsClientExternalID", + "gsm_map_ms.CallForwardingData", HFILL }}, + { &hf_gsm_map_ms_callBarringData, + { "callBarringData", "gsm_map.ms.callBarringData", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCSClientExternalID", HFILL }}, - { &hf_gsm_map_lcsClientDialedByMS, - { "lcsClientDialedByMS", "gsm_map.lcsClientDialedByMS", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AddressString", HFILL }}, - { &hf_gsm_map_lcsClientInternalID, - { "lcsClientInternalID", "gsm_map.lcsClientInternalID", - FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0, - "gsm_map.LCSClientInternalID", HFILL }}, - { &hf_gsm_map_lcsClientName, - { "lcsClientName", "gsm_map.lcsClientName", + "gsm_map_ms.CallBarringData", HFILL }}, + { &hf_gsm_map_ms_odb_Info, + { "odb-Info", "gsm_map.ms.odb_Info", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCSClientName", HFILL }}, - { &hf_gsm_map_lcsAPN, - { "lcsAPN", "gsm_map.lcsAPN", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.APN", HFILL }}, - { &hf_gsm_map_lcsRequestorID, - { "lcsRequestorID", "gsm_map.lcsRequestorID", + "gsm_map_ms.ODB_Info", HFILL }}, + { &hf_gsm_map_ms_camel_SubscriptionInfo, + { "camel-SubscriptionInfo", "gsm_map.ms.camel_SubscriptionInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCSRequestorID", HFILL }}, - { &hf_gsm_map_dataCodingScheme, - { "dataCodingScheme", "gsm_map.dataCodingScheme", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.USSD_DataCodingScheme", HFILL }}, - { &hf_gsm_map_nameString, - { "nameString", "gsm_map.nameString", + "gsm_map_ms.CAMEL_SubscriptionInfo", HFILL }}, + { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases, + { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.NameString", HFILL }}, - { &hf_gsm_map_lcs_FormatIndicator, - { "lcs-FormatIndicator", "gsm_map.lcs_FormatIndicator", - FT_UINT32, BASE_DEC, VALS(gsm_map_LCS_FormatIndicator_vals), 0, - "gsm_map.LCS_FormatIndicator", HFILL }}, - { &hf_gsm_map_requestorIDString, - { "requestorIDString", "gsm_map.requestorIDString", + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases, + { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.RequestorIDString", HFILL }}, - { &hf_gsm_map_horizontal_accuracy, - { "horizontal-accuracy", "gsm_map.horizontal_accuracy", + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ms_offeredCamel4CSIsInVLR, + { "offeredCamel4CSIsInVLR", "gsm_map.ms.offeredCamel4CSIsInVLR", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Horizontal_Accuracy", HFILL }}, - { &hf_gsm_map_verticalCoordinateRequest, - { "verticalCoordinateRequest", "gsm_map.verticalCoordinateRequest", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_vertical_accuracy, - { "vertical-accuracy", "gsm_map.vertical_accuracy", + "gsm_map_ms.OfferedCamel4CSIs", HFILL }}, + { &hf_gsm_map_ms_offeredCamel4CSIsInSGSN, + { "offeredCamel4CSIsInSGSN", "gsm_map.ms.offeredCamel4CSIsInSGSN", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Vertical_Accuracy", HFILL }}, - { &hf_gsm_map_responseTime, - { "responseTime", "gsm_map.responseTime", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ResponseTime", HFILL }}, - { &hf_gsm_map_velocityRequest, - { "velocityRequest", "gsm_map.velocityRequest", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_responseTimeCategory, - { "responseTimeCategory", "gsm_map.responseTimeCategory", - FT_UINT32, BASE_DEC, VALS(gsm_map_ResponseTimeCategory_vals), 0, - "gsm_map.ResponseTimeCategory", HFILL }}, - { &hf_gsm_map_lcsCodewordString, - { "lcsCodewordString", "gsm_map.lcsCodewordString", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.LCSCodewordString", HFILL }}, - { &hf_gsm_map_callSessionUnrelated, - { "callSessionUnrelated", "gsm_map.callSessionUnrelated", - FT_UINT32, BASE_DEC, VALS(gsm_map_PrivacyCheckRelatedAction_vals), 0, - "gsm_map.PrivacyCheckRelatedAction", HFILL }}, - { &hf_gsm_map_callSessionRelated, - { "callSessionRelated", "gsm_map.callSessionRelated", - FT_UINT32, BASE_DEC, VALS(gsm_map_PrivacyCheckRelatedAction_vals), 0, - "gsm_map.PrivacyCheckRelatedAction", HFILL }}, - { &hf_gsm_map_areaDefinition, - { "areaDefinition", "gsm_map.areaDefinition", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.AreaDefinition", HFILL }}, - { &hf_gsm_map_occurrenceInfo, - { "occurrenceInfo", "gsm_map.occurrenceInfo", - FT_UINT32, BASE_DEC, VALS(gsm_map_OccurrenceInfo_vals), 0, - "gsm_map.OccurrenceInfo", HFILL }}, - { &hf_gsm_map_intervalTime, - { "intervalTime", "gsm_map.intervalTime", + "gsm_map_ms.OfferedCamel4CSIs", HFILL }}, + { &hf_gsm_map_ms_msisdn_BS_List, + { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.IntervalTime", HFILL }}, - { &hf_gsm_map_areaList, - { "areaList", "gsm_map.areaList", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.AreaList", HFILL }}, - { &hf_gsm_map_AreaList_item, - { "Item", "gsm_map.AreaList_item", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Area", HFILL }}, - { &hf_gsm_map_areaType, - { "areaType", "gsm_map.areaType", - FT_UINT32, BASE_DEC, VALS(gsm_map_AreaType_vals), 0, - "gsm_map.AreaType", HFILL }}, - { &hf_gsm_map_areaIdentification, - { "areaIdentification", "gsm_map.areaIdentification", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.AreaIdentification", HFILL }}, - { &hf_gsm_map_reportingAmount, - { "reportingAmount", "gsm_map.reportingAmount", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ReportingAmount", HFILL }}, - { &hf_gsm_map_reportingInterval, - { "reportingInterval", "gsm_map.reportingInterval", + "gsm_map_ms.MSISDN_BS_List", HFILL }}, + { &hf_gsm_map_ms_requestedSS_Info, + { "requestedSS-Info", "gsm_map.ms.requestedSS_Info", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ss.SS_ForBS_Code", HFILL }}, + { &hf_gsm_map_ms_odb, + { "odb", "gsm_map.ms.odb", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.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, + "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", HFILL }}, + { &hf_gsm_map_ms_supportedVLR_CAMEL_Phases_01, + { "supportedVLR-CAMEL-Phases", "gsm_map.ms.supportedVLR_CAMEL_Phases", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_supportedSGSN_CAMEL_Phases_01, + { "supportedSGSN-CAMEL-Phases", "gsm_map.ms.supportedSGSN_CAMEL_Phases", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.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, + "gsm_map_ms.AdditionalRequestedCAMEL_SubscriptionInfo", HFILL }}, + { &hf_gsm_map_ms_msisdn_BS_List_01, + { "msisdn-BS-List", "gsm_map.ms.msisdn_BS_List", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_MSISDN_BS_List_item, + { "Item", "gsm_map.ms.MSISDN_BS_List_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.MSISDN_BS", HFILL }}, + { &hf_gsm_map_ms_password, + { "password", "gsm_map.ms.password", + FT_STRING, BASE_NONE, NULL, 0, + "gsm_map_ss.Password", HFILL }}, + { &hf_gsm_map_ms_wrongPasswordAttemptsCounter, + { "wrongPasswordAttemptsCounter", "gsm_map.ms.wrongPasswordAttemptsCounter", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.ReportingInterval", HFILL }}, - { &hf_gsm_map_plmn_ListPrioritized, - { "plmn-ListPrioritized", "gsm_map.plmn_ListPrioritized", + "gsm_map_ms.WrongPasswordAttemptsCounter", HFILL }}, + { &hf_gsm_map_ms_t_CSI, + { "t-CSI", "gsm_map.ms.t_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_plmn_List, - { "plmn-List", "gsm_map.plmn_List", + "gsm_map_ms.T_CSI", 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, - "gsm_map.PLMNList", HFILL }}, - { &hf_gsm_map_PLMNList_item, - { "Item", "gsm_map.PLMNList_item", + "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, + { &hf_gsm_map_ms_tif_CSI_NotificationToCSE, + { "tif-CSI-NotificationToCSE", "gsm_map.ms.tif_CSI_NotificationToCSE", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ReportingPLMN", HFILL }}, - { &hf_gsm_map_plmn_Id, - { "plmn-Id", "gsm_map.plmn_Id", + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_specificCSIDeletedList, + { "specificCSIDeletedList", "gsm_map.ms.specificCSIDeletedList", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PLMN_Id", HFILL }}, - { &hf_gsm_map_ran_Technology, - { "ran-Technology", "gsm_map.ran_Technology", - FT_UINT32, BASE_DEC, VALS(gsm_map_RAN_Technology_vals), 0, - "gsm_map.RAN_Technology", HFILL }}, - { &hf_gsm_map_ran_PeriodicLocationSupport, - { "ran-PeriodicLocationSupport", "gsm_map.ran_PeriodicLocationSupport", + "gsm_map_ms.SpecificCSI_Withdraw", HFILL }}, + { &hf_gsm_map_ms_o_IM_CSI, + { "o-IM-CSI", "gsm_map.ms.o_IM_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_locationEstimate, - { "locationEstimate", "gsm_map.locationEstimate", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Ext_GeographicalInformation", HFILL }}, - { &hf_gsm_map_ageOfLocationEstimate, - { "ageOfLocationEstimate", "gsm_map.ageOfLocationEstimate", + "gsm_map_ms.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, - "gsm_map.AgeOfLocationInformation", HFILL }}, - { &hf_gsm_map_add_LocationEstimate, - { "add-LocationEstimate", "gsm_map.add_LocationEstimate", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.Add_GeographicalInformation", HFILL }}, - { &hf_gsm_map_deferredmt_lrResponseIndicator, - { "deferredmt-lrResponseIndicator", "gsm_map.deferredmt_lrResponseIndicator", + "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }}, + { &hf_gsm_map_ms_d_IM_CSI, + { "d-IM-CSI", "gsm_map.ms.d_IM_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_geranPositioningData, - { "geranPositioningData", "gsm_map.geranPositioningData", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.PositioningDataInformation", HFILL }}, - { &hf_gsm_map_utranPositioningData, - { "utranPositioningData", "gsm_map.utranPositioningData", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.UtranPositioningDataInfo", HFILL }}, - { &hf_gsm_map_cellIdOrSai, - { "cellIdOrSai", "gsm_map.cellIdOrSai", - FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0, - "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }}, - { &hf_gsm_map_accuracyFulfilmentIndicator, - { "accuracyFulfilmentIndicator", "gsm_map.accuracyFulfilmentIndicator", - FT_UINT32, BASE_DEC, VALS(gsm_map_AccuracyFulfilmentIndicator_vals), 0, - "gsm_map.AccuracyFulfilmentIndicator", HFILL }}, - { &hf_gsm_map_velocityEstimate, - { "velocityEstimate", "gsm_map.velocityEstimate", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.VelocityEstimate", HFILL }}, - { &hf_gsm_map_mlcNumber, - { "mlcNumber", "gsm_map.mlcNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_targetMS, - { "targetMS", "gsm_map.targetMS", - FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0, - "gsm_map.SubscriberIdentity", HFILL }}, - { &hf_gsm_map_lcsLocationInfo, - { "lcsLocationInfo", "gsm_map.lcsLocationInfo", + "gsm_map_ms.D_CSI", HFILL }}, + { &hf_gsm_map_ms_vt_IM_CSI, + { "vt-IM-CSI", "gsm_map.ms.vt_IM_CSI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.LCSLocationInfo", HFILL }}, - { &hf_gsm_map_ppr_Address, - { "ppr-Address", "gsm_map.ppr_Address", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_additional_v_gmlc_Address, - { "additional-v-gmlc-Address", "gsm_map.additional_v_gmlc_Address", + "gsm_map_ms.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, + "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", HFILL }}, + { &hf_gsm_map_ms_modificationRequestFor_CF_Info, + { "modificationRequestFor-CF-Info", "gsm_map.ms.modificationRequestFor_CF_Info", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ModificationRequestFor_CF_Info", HFILL }}, + { &hf_gsm_map_ms_modificationRequestFor_CB_Info, + { "modificationRequestFor-CB-Info", "gsm_map.ms.modificationRequestFor_CB_Info", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ModificationRequestFor_CB_Info", HFILL }}, + { &hf_gsm_map_ms_modificationRequestFor_CSI, + { "modificationRequestFor-CSI", "gsm_map.ms.modificationRequestFor_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ModificationRequestFor_CSI", HFILL }}, + { &hf_gsm_map_ms_modificationRequestFor_ODB_data, + { "modificationRequestFor-ODB-data", "gsm_map.ms.modificationRequestFor_ODB_data", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ModificationRequestFor_ODB_data", HFILL }}, + { &hf_gsm_map_ms_modificationRequestFor_IP_SM_GW_Data, + { "modificationRequestFor-IP-SM-GW-Data", "gsm_map.ms.modificationRequestFor_IP_SM_GW_Data", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ModificationRequestFor_IP_SM_GW_Data", 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, + "gsm_map_ms.Ext_SS_InfoFor_CSE", HFILL }}, + { &hf_gsm_map_ms_forwardedToNumber_01, + { "forwardedToNumber", "gsm_map.ms.forwardedToNumber", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.GSN_Address", HFILL }}, - { &hf_gsm_map_additional_LCS_CapabilitySets, - { "additional-LCS-CapabilitySets", "gsm_map.additional_LCS_CapabilitySets", + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_ms_modifyNotificationToCSE, + { "modifyNotificationToCSE", "gsm_map.ms.modifyNotificationToCSE", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0, + "gsm_map_ms.ModificationInstruction", HFILL }}, + { &hf_gsm_map_ms_odb_data, + { "odb-data", "gsm_map.ms.odb_data", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.ODB_Data", 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, + "gsm_map_ms.RequestedCAMEL_SubscriptionInfo", 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, + "gsm_map_ms.ModificationInstruction", HFILL }}, + { &hf_gsm_map_ms_modifyRegistrationStatus, + { "modifyRegistrationStatus", "gsm_map.ms.modifyRegistrationStatus", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_ModificationInstruction_vals), 0, + "gsm_map_ms.ModificationInstruction", HFILL }}, + { &hf_gsm_map_ms_forwardingInfoFor_CSE, + { "forwardingInfoFor-CSE", "gsm_map.ms.forwardingInfoFor_CSE", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.Ext_ForwardingInfoFor_CSE", HFILL }}, + { &hf_gsm_map_ms_callBarringInfoFor_CSE, + { "callBarringInfoFor-CSE", "gsm_map.ms.callBarringInfoFor_CSE", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.Ext_CallBarringInfoFor_CSE", HFILL }}, + { &hf_gsm_map_ms_allInformationSent, + { "allInformationSent", "gsm_map.ms.allInformationSent", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_eventMet, + { "eventMet", "gsm_map.ms.eventMet", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SupportedLCS_CapabilitySets", HFILL }}, - { &hf_gsm_map_lcs_Event, - { "lcs-Event", "gsm_map.lcs_Event", - FT_UINT32, BASE_DEC, VALS(gsm_map_LCS_Event_vals), 0, - "gsm_map.LCS_Event", HFILL }}, - { &hf_gsm_map_na_ESRD, - { "na-ESRD", "gsm_map.na_ESRD", + "gsm_map_ms.MM_Code", HFILL }}, + { &hf_gsm_map_ms_supportedCAMELPhases, + { "supportedCAMELPhases", "gsm_map.ms.supportedCAMELPhases", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_na_ESRK, - { "na-ESRK", "gsm_map.na_ESRK", + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ms_offeredCamel4Functionalities, + { "offeredCamel4Functionalities", "gsm_map.ms.offeredCamel4Functionalities", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ISDN_AddressString", HFILL }}, - { &hf_gsm_map_slr_ArgExtensionContainer, - { "slr-ArgExtensionContainer", "gsm_map.slr_ArgExtensionContainer", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SLR_ArgExtensionContainer", HFILL }}, - { &hf_gsm_map_deferredmt_lrData, - { "deferredmt-lrData", "gsm_map.deferredmt_lrData", + "gsm_map_ms.OfferedCamel4Functionalities", HFILL }}, + { &hf_gsm_map_ms_naea_PreferredCI, + { "naea-PreferredCI", "gsm_map.ms.naea_PreferredCI", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.Deferredmt_lrData", HFILL }}, - { &hf_gsm_map_pseudonymIndicator, - { "pseudonymIndicator", "gsm_map.pseudonymIndicator", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_sequenceNumber, - { "sequenceNumber", "gsm_map.sequenceNumber", - FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.SequenceNumber", HFILL }}, - { &hf_gsm_map_terminationCause, - { "terminationCause", "gsm_map.terminationCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_TerminationCause_vals), 0, - "gsm_map.TerminationCause", HFILL }}, - { &hf_gsm_map_securityHeader, - { "securityHeader", "gsm_map.securityHeader", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.SecurityHeader", HFILL }}, - { &hf_gsm_map_protectedPayload, - { "protectedPayload", "gsm_map.protectedPayload", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.ProtectedPayload", HFILL }}, - { &hf_gsm_map_securityParametersIndex, - { "securityParametersIndex", "gsm_map.securityParametersIndex", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SecurityParametersIndex", HFILL }}, - { &hf_gsm_map_originalComponentIdentifier, - { "originalComponentIdentifier", "gsm_map.originalComponentIdentifier", - FT_UINT32, BASE_DEC, VALS(gsm_map_OriginalComponentIdentifier_vals), 0, - "gsm_map.OriginalComponentIdentifier", HFILL }}, - { &hf_gsm_map_initialisationVector, - { "initialisationVector", "gsm_map.initialisationVector", - FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.InitialisationVector", HFILL }}, - { &hf_gsm_map_operationCode, - { "operationCode", "gsm_map.operationCode", - FT_UINT32, BASE_DEC, VALS(gsm_map_OperationCode_vals), 0, - "gsm_map.OperationCode", HFILL }}, - { &hf_gsm_map_errorCode, - { "errorCode", "gsm_map.errorCode", - FT_UINT32, BASE_DEC, VALS(gsm_map_ErrorCode_vals), 0, - "gsm_map.ErrorCode", HFILL }}, - { &hf_gsm_map_userInfo, - { "userInfo", "gsm_map.userInfo", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_localValue, - { "localValue", "gsm_map.localValue", - FT_INT32, BASE_DEC, NULL, 0, - "gsm_map.INTEGER", HFILL }}, - { &hf_gsm_map_operatorSS_Code, - { "operatorSS-Code", "gsm_map.operatorSS_Code", + "gsm_map.NAEA_PreferredCI", HFILL }}, + { &hf_gsm_map_ms_gprsSubscriptionData, + { "gprsSubscriptionData", "gsm_map.ms.gprsSubscriptionData", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.GPRSSubscriptionData", HFILL }}, + { &hf_gsm_map_ms_roamingRestrictedInSgsnDueToUnsupportedFeature, + { "roamingRestrictedInSgsnDueToUnsupportedFeature", "gsm_map.ms.roamingRestrictedInSgsnDueToUnsupportedFeature", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_networkAccessMode, + { "networkAccessMode", "gsm_map.ms.networkAccessMode", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NetworkAccessMode_vals), 0, + "gsm_map_ms.NetworkAccessMode", HFILL }}, + { &hf_gsm_map_ms_lsaInformation, + { "lsaInformation", "gsm_map.ms.lsaInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.LSAInformation", HFILL }}, + { &hf_gsm_map_ms_lmu_Indicator, + { "lmu-Indicator", "gsm_map.ms.lmu_Indicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.NULL", HFILL }}, + { &hf_gsm_map_ms_lcsInformation, + { "lcsInformation", "gsm_map.ms.lcsInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.LCSInformation", HFILL }}, + { &hf_gsm_map_ms_istAlertTimer, + { "istAlertTimer", "gsm_map.ms.istAlertTimer", FT_UINT32, BASE_DEC, NULL, 0, - "gsm_map.T_operatorSS_Code", HFILL }}, - { &hf_gsm_map_operatorSS_Code_item, - { "Item", "gsm_map.operatorSS_Code_item", + "gsm_map_ms.IST_AlertTimerValue", HFILL }}, + { &hf_gsm_map_ms_superChargerSupportedInHLR, + { "superChargerSupportedInHLR", "gsm_map.ms.superChargerSupportedInHLR", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.OCTET_STRING_SIZE_1", HFILL }}, - { &hf_gsm_map_networkResource, - { "networkResource", "gsm_map.networkResource", - FT_UINT32, BASE_DEC, VALS(gsm_map_NetworkResource_vals), 0, - "gsm_map.NetworkResource", HFILL }}, - { &hf_gsm_map_extensibleSystemFailureParam, - { "extensibleSystemFailureParam", "gsm_map.extensibleSystemFailureParam", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExtensibleSystemFailureParam", HFILL }}, - { &hf_gsm_map_additionalNetworkResource, - { "additionalNetworkResource", "gsm_map.additionalNetworkResource", - FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalNetworkResource_vals), 0, - "gsm_map.AdditionalNetworkResource", HFILL }}, - { &hf_gsm_map_shapeOfLocationEstimateNotSupported, - { "shapeOfLocationEstimateNotSupported", "gsm_map.shapeOfLocationEstimateNotSupported", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_neededLcsCapabilityNotSupportedInServingNode, - { "neededLcsCapabilityNotSupportedInServingNode", "gsm_map.neededLcsCapabilityNotSupportedInServingNode", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_unknownSubscriberDiagnostic, - { "unknownSubscriberDiagnostic", "gsm_map.unknownSubscriberDiagnostic", - FT_UINT32, BASE_DEC, VALS(gsm_map_UnknownSubscriberDiagnostic_vals), 0, - "gsm_map.UnknownSubscriberDiagnostic", HFILL }}, - { &hf_gsm_map_roamingNotAllowedCause, - { "roamingNotAllowedCause", "gsm_map.roamingNotAllowedCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_RoamingNotAllowedCause_vals), 0, - "gsm_map.RoamingNotAllowedCause", HFILL }}, - { &hf_gsm_map_additionalRoamingNotAllowedCause, - { "additionalRoamingNotAllowedCause", "gsm_map.additionalRoamingNotAllowedCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_AdditionalRoamingNotAllowedCause_vals), 0, - "gsm_map.AdditionalRoamingNotAllowedCause", HFILL }}, - { &hf_gsm_map_absentSubscriberReason, - { "absentSubscriberReason", "gsm_map.absentSubscriberReason", - FT_UINT32, BASE_DEC, VALS(gsm_map_AbsentSubscriberReason_vals), 0, - "gsm_map.AbsentSubscriberReason", HFILL }}, - { &hf_gsm_map_ccbs_Busy, - { "ccbs-Busy", "gsm_map.ccbs_Busy", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_gprsConnectionSuspended, - { "gprsConnectionSuspended", "gsm_map.gprsConnectionSuspended", + "gsm_map_ms.AgeIndicator", HFILL }}, + { &hf_gsm_map_ms_mc_SS_Info, + { "mc-SS-Info", "gsm_map.ms.mc_SS_Info", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_callBarringCause, - { "callBarringCause", "gsm_map.callBarringCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_CallBarringCause_vals), 0, - "gsm_map.CallBarringCause", HFILL }}, - { &hf_gsm_map_extensibleCallBarredParam, - { "extensibleCallBarredParam", "gsm_map.extensibleCallBarredParam", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.ExtensibleCallBarredParam", HFILL }}, - { &hf_gsm_map_unauthorisedMessageOriginator, - { "unauthorisedMessageOriginator", "gsm_map.unauthorisedMessageOriginator", + "gsm_map.MC_SS_Info", HFILL }}, + { &hf_gsm_map_ms_cs_AllocationRetentionPriority, + { "cs-AllocationRetentionPriority", "gsm_map.ms.cs_AllocationRetentionPriority", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.CS_AllocationRetentionPriority", HFILL }}, + { &hf_gsm_map_ms_sgsn_CAMEL_SubscriptionInfo, + { "sgsn-CAMEL-SubscriptionInfo", "gsm_map.ms.sgsn_CAMEL_SubscriptionInfo", FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.NULL", HFILL }}, - { &hf_gsm_map_cug_RejectCause, - { "cug-RejectCause", "gsm_map.cug_RejectCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_CUG_RejectCause_vals), 0, - "gsm_map.CUG_RejectCause", HFILL }}, - { &hf_gsm_map_sm_EnumeratedDeliveryFailureCause, - { "sm-EnumeratedDeliveryFailureCause", "gsm_map.sm_EnumeratedDeliveryFailureCause", - FT_UINT32, BASE_DEC, VALS(gsm_map_SM_EnumeratedDeliveryFailureCause_vals), 0, - "gsm_map.SM_EnumeratedDeliveryFailureCause", HFILL }}, - { &hf_gsm_map_diagnosticInfo, - { "diagnosticInfo", "gsm_map.diagnosticInfo", + "gsm_map_ms.SGSN_CAMEL_SubscriptionInfo", HFILL }}, + { &hf_gsm_map_ms_accessRestrictionData, + { "accessRestrictionData", "gsm_map.ms.accessRestrictionData", FT_BYTES, BASE_HEX, NULL, 0, - "gsm_map.SignalInfo", HFILL }}, - { &hf_gsm_map_unauthorizedLCSClient_Diagnostic, - { "unauthorizedLCSClient-Diagnostic", "gsm_map.unauthorizedLCSClient_Diagnostic", - FT_UINT32, BASE_DEC, VALS(gsm_map_UnauthorizedLCSClient_Diagnostic_vals), 0, - "gsm_map.UnauthorizedLCSClient_Diagnostic", HFILL }}, - { &hf_gsm_map_positionMethodFailure_Diagnostic, - { "positionMethodFailure-Diagnostic", "gsm_map.positionMethodFailure_Diagnostic", - FT_UINT32, BASE_DEC, VALS(gsm_map_PositionMethodFailure_Diagnostic_vals), 0, - "gsm_map.PositionMethodFailure_Diagnostic", HFILL }}, - { &hf_gsm_map_pcsExtensions, - { "pcsExtensions", "gsm_map.pcsExtensions", - FT_NONE, BASE_NONE, NULL, 0, - "gsm_map.PcsExtensions", HFILL }}, - { &hf_gsm_map_SupportedCamelPhases_phase1, - { "phase1", "gsm_map.phase1", + "gsm_map_ms.AccessRestrictionData", HFILL }}, + { &hf_gsm_map_ms_SupportedRAT_Types_utran, + { "utran", "gsm_map.ms.utran", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_SupportedCamelPhases_phase2, - { "phase2", "gsm_map.phase2", + { &hf_gsm_map_ms_SupportedRAT_Types_geran, + { "geran", "gsm_map.ms.geran", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_SupportedCamelPhases_phase3, - { "phase3", "gsm_map.phase3", + { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet1, + { "lcsCapabilitySet1", "gsm_map.ms.lcsCapabilitySet1", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet2, + { "lcsCapabilitySet2", "gsm_map.ms.lcsCapabilitySet2", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet3, + { "lcsCapabilitySet3", "gsm_map.ms.lcsCapabilitySet3", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_SupportedCamelPhases_phase4, - { "phase4", "gsm_map.phase4", + { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet4, + { "lcsCapabilitySet4", "gsm_map.ms.lcsCapabilitySet4", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_SupportedRAT_Types_utran, - { "utran", "gsm_map.utran", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_SupportedRAT_Types_geran, - { "geran", "gsm_map.geran", - FT_BOOLEAN, 8, NULL, 0x40, + { &hf_gsm_map_ms_SupportedLCS_CapabilitySets_lcsCapabilitySet5, + { "lcsCapabilitySet5", "gsm_map.ms.lcsCapabilitySet5", + FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet1, - { "lcsCapabilitySet1", "gsm_map.lcsCapabilitySet1", + { &hf_gsm_map_ms_RequestedEquipmentInfo_equipmentStatus, + { "equipmentStatus", "gsm_map.ms.equipmentStatus", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet2, - { "lcsCapabilitySet2", "gsm_map.lcsCapabilitySet2", + { &hf_gsm_map_ms_RequestedEquipmentInfo_bmuef, + { "bmuef", "gsm_map.ms.bmuef", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet3, - { "lcsCapabilitySet3", "gsm_map.lcsCapabilitySet3", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_SupportedLCS_CapabilitySets_lcsCapabilitySet4, - { "lcsCapabilitySet4", "gsm_map.lcsCapabilitySet4", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_gsm_map_RequestedEquipmentInfo_equipmentStatus, - { "equipmentStatus", "gsm_map.equipmentStatus", + { &hf_gsm_map_ms_AccessRestrictionData_utranNotAllowed, + { "utranNotAllowed", "gsm_map.ms.utranNotAllowed", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_RequestedEquipmentInfo_bmuef, - { "bmuef", "gsm_map.bmuef", + { &hf_gsm_map_ms_AccessRestrictionData_geranNotAllowed, + { "geranNotAllowed", "gsm_map.ms.geranNotAllowed", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_allOG_CallsBarred, - { "allOG-CallsBarred", "gsm_map.allOG-CallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_allOG_CallsBarred, + { "allOG-CallsBarred", "gsm_map.ms.allOG-CallsBarred", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_internationalOGCallsBarred, - { "internationalOGCallsBarred", "gsm_map.internationalOGCallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsBarred, + { "internationalOGCallsBarred", "gsm_map.ms.internationalOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, - { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.internationalOGCallsNotToHPLMN-CountryBarred", + { &hf_gsm_map_ms_ODB_GeneralData_internationalOGCallsNotToHPLMN_CountryBarred, + { "internationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.internationalOGCallsNotToHPLMN-CountryBarred", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_interzonalOGCallsBarred, - { "interzonalOGCallsBarred", "gsm_map.interzonalOGCallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsBarred, + { "interzonalOGCallsBarred", "gsm_map.ms.interzonalOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, - { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.interzonalOGCallsNotToHPLMN-CountryBarred", + { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsNotToHPLMN_CountryBarred, + { "interzonalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsNotToHPLMN-CountryBarred", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, - { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", + { &hf_gsm_map_ms_ODB_GeneralData_interzonalOGCallsAndInternationalOGCallsNotToHPLMN_CountryBarred, + { "interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", "gsm_map.ms.interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_premiumRateInformationOGCallsBarred, - { "premiumRateInformationOGCallsBarred", "gsm_map.premiumRateInformationOGCallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_premiumRateInformationOGCallsBarred, + { "premiumRateInformationOGCallsBarred", "gsm_map.ms.premiumRateInformationOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, - { "premiumRateEntertainementOGCallsBarred", "gsm_map.premiumRateEntertainementOGCallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_premiumRateEntertainementOGCallsBarred, + { "premiumRateEntertainementOGCallsBarred", "gsm_map.ms.premiumRateEntertainementOGCallsBarred", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_ss_AccessBarred, - { "ss-AccessBarred", "gsm_map.ss-AccessBarred", + { &hf_gsm_map_ms_ODB_GeneralData_ss_AccessBarred, + { "ss-AccessBarred", "gsm_map.ms.ss-AccessBarred", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_allECT_Barred, - { "allECT-Barred", "gsm_map.allECT-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_allECT_Barred, + { "allECT-Barred", "gsm_map.ms.allECT-Barred", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_chargeableECT_Barred, - { "chargeableECT-Barred", "gsm_map.chargeableECT-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_chargeableECT_Barred, + { "chargeableECT-Barred", "gsm_map.ms.chargeableECT-Barred", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_internationalECT_Barred, - { "internationalECT-Barred", "gsm_map.internationalECT-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_internationalECT_Barred, + { "internationalECT-Barred", "gsm_map.ms.internationalECT-Barred", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_interzonalECT_Barred, - { "interzonalECT-Barred", "gsm_map.interzonalECT-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_interzonalECT_Barred, + { "interzonalECT-Barred", "gsm_map.ms.interzonalECT-Barred", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_doublyChargeableECT_Barred, - { "doublyChargeableECT-Barred", "gsm_map.doublyChargeableECT-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_doublyChargeableECT_Barred, + { "doublyChargeableECT-Barred", "gsm_map.ms.doublyChargeableECT-Barred", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_multipleECT_Barred, - { "multipleECT-Barred", "gsm_map.multipleECT-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_multipleECT_Barred, + { "multipleECT-Barred", "gsm_map.ms.multipleECT-Barred", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_allPacketOrientedServicesBarred, - { "allPacketOrientedServicesBarred", "gsm_map.allPacketOrientedServicesBarred", + { &hf_gsm_map_ms_ODB_GeneralData_allPacketOrientedServicesBarred, + { "allPacketOrientedServicesBarred", "gsm_map.ms.allPacketOrientedServicesBarred", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, - { "roamerAccessToHPLMN-AP-Barred", "gsm_map.roamerAccessToHPLMN-AP-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToHPLMN_AP_Barred, + { "roamerAccessToHPLMN-AP-Barred", "gsm_map.ms.roamerAccessToHPLMN-AP-Barred", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, - { "roamerAccessToVPLMN-AP-Barred", "gsm_map.roamerAccessToVPLMN-AP-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_roamerAccessToVPLMN_AP_Barred, + { "roamerAccessToVPLMN-AP-Barred", "gsm_map.ms.roamerAccessToVPLMN-AP-Barred", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, - { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.roamingOutsidePLMNOG-CallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNOG_CallsBarred, + { "roamingOutsidePLMNOG-CallsBarred", "gsm_map.ms.roamingOutsidePLMNOG-CallsBarred", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_allIC_CallsBarred, - { "allIC-CallsBarred", "gsm_map.allIC-CallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_allIC_CallsBarred, + { "allIC-CallsBarred", "gsm_map.ms.allIC-CallsBarred", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, - { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.roamingOutsidePLMNIC-CallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNIC_CallsBarred, + { "roamingOutsidePLMNIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNIC-CallsBarred", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, - { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.roamingOutsidePLMNICountryIC-CallsBarred", + { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMNICountryIC_CallsBarred, + { "roamingOutsidePLMNICountryIC-CallsBarred", "gsm_map.ms.roamingOutsidePLMNICountryIC-CallsBarred", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_Barred, - { "roamingOutsidePLMN-Barred", "gsm_map.roamingOutsidePLMN-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_Barred, + { "roamingOutsidePLMN-Barred", "gsm_map.ms.roamingOutsidePLMN-Barred", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, - { "roamingOutsidePLMN-CountryBarred", "gsm_map.roamingOutsidePLMN-CountryBarred", + { &hf_gsm_map_ms_ODB_GeneralData_roamingOutsidePLMN_CountryBarred, + { "roamingOutsidePLMN-CountryBarred", "gsm_map.ms.roamingOutsidePLMN-CountryBarred", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_registrationAllCF_Barred, - { "registrationAllCF-Barred", "gsm_map.registrationAllCF-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_registrationAllCF_Barred, + { "registrationAllCF-Barred", "gsm_map.ms.registrationAllCF-Barred", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_registrationCFNotToHPLMN_Barred, - { "registrationCFNotToHPLMN-Barred", "gsm_map.registrationCFNotToHPLMN-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_registrationCFNotToHPLMN_Barred, + { "registrationCFNotToHPLMN-Barred", "gsm_map.ms.registrationCFNotToHPLMN-Barred", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_registrationInterzonalCF_Barred, - { "registrationInterzonalCF-Barred", "gsm_map.registrationInterzonalCF-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCF_Barred, + { "registrationInterzonalCF-Barred", "gsm_map.ms.registrationInterzonalCF-Barred", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, - { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.registrationInterzonalCFNotToHPLMN-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_registrationInterzonalCFNotToHPLMN_Barred, + { "registrationInterzonalCFNotToHPLMN-Barred", "gsm_map.ms.registrationInterzonalCFNotToHPLMN-Barred", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_ODB_GeneralData_registrationInternationalCF_Barred, - { "registrationInternationalCF-Barred", "gsm_map.registrationInternationalCF-Barred", + { &hf_gsm_map_ms_ODB_GeneralData_registrationInternationalCF_Barred, + { "registrationInternationalCF-Barred", "gsm_map.ms.registrationInternationalCF-Barred", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType1, - { "plmn-SpecificBarringType1", "gsm_map.plmn-SpecificBarringType1", + { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType1, + { "plmn-SpecificBarringType1", "gsm_map.ms.plmn-SpecificBarringType1", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType2, - { "plmn-SpecificBarringType2", "gsm_map.plmn-SpecificBarringType2", + { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType2, + { "plmn-SpecificBarringType2", "gsm_map.ms.plmn-SpecificBarringType2", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType3, - { "plmn-SpecificBarringType3", "gsm_map.plmn-SpecificBarringType3", + { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType3, + { "plmn-SpecificBarringType3", "gsm_map.ms.plmn-SpecificBarringType3", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_ODB_HPLMN_Data_plmn_SpecificBarringType4, - { "plmn-SpecificBarringType4", "gsm_map.plmn-SpecificBarringType4", + { &hf_gsm_map_ms_ODB_HPLMN_Data_plmn_SpecificBarringType4, + { "plmn-SpecificBarringType4", "gsm_map.ms.plmn-SpecificBarringType4", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_AccessRestrictionData_utranNotAllowed, - { "utranNotAllowed", "gsm_map.utranNotAllowed", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_AccessRestrictionData_geranNotAllowed, - { "geranNotAllowed", "gsm_map.geranNotAllowed", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_o_csi, - { "o-csi", "gsm_map.o-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_csi, + { "o-csi", "gsm_map.ms.o-csi", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_ss_csi, - { "ss-csi", "gsm_map.ss-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_ss_csi, + { "ss-csi", "gsm_map.ms.ss-csi", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_tif_csi, - { "tif-csi", "gsm_map.tif-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_tif_csi, + { "tif-csi", "gsm_map.ms.tif-csi", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_d_csi, - { "d-csi", "gsm_map.d-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_csi, + { "d-csi", "gsm_map.ms.d-csi", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_vt_csi, - { "vt-csi", "gsm_map.vt-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_csi, + { "vt-csi", "gsm_map.ms.vt-csi", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_mo_sms_csi, - { "mo-sms-csi", "gsm_map.mo-sms-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_mo_sms_csi, + { "mo-sms-csi", "gsm_map.ms.mo-sms-csi", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_m_csi, - { "m-csi", "gsm_map.m-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_m_csi, + { "m-csi", "gsm_map.ms.m-csi", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_gprs_csi, - { "gprs-csi", "gsm_map.gprs-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_gprs_csi, + { "gprs-csi", "gsm_map.ms.gprs-csi", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_t_csi, - { "t-csi", "gsm_map.t-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_t_csi, + { "t-csi", "gsm_map.ms.t-csi", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_mt_sms_csi, - { "mt-sms-csi", "gsm_map.mt-sms-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_mt_sms_csi, + { "mt-sms-csi", "gsm_map.ms.mt-sms-csi", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_mg_csi, - { "mg-csi", "gsm_map.mg-csi", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_mg_csi, + { "mg-csi", "gsm_map.ms.mg-csi", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_o_IM_CSI, - { "o-IM-CSI", "gsm_map.o-IM-CSI", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_o_IM_CSI, + { "o-IM-CSI", "gsm_map.ms.o-IM-CSI", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_d_IM_CSI, - { "d-IM-CSI", "gsm_map.d-IM-CSI", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_d_IM_CSI, + { "d-IM-CSI", "gsm_map.ms.d-IM-CSI", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_SpecificCSI_Withdraw_vt_IM_CSI, - { "vt-IM-CSI", "gsm_map.vt-IM-CSI", + { &hf_gsm_map_ms_SpecificCSI_Withdraw_vt_IM_CSI, + { "vt-IM-CSI", "gsm_map.ms.vt-IM-CSI", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_AdditionalSubscriptions_privilegedUplinkRequest, - { "privilegedUplinkRequest", "gsm_map.privilegedUplinkRequest", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_AdditionalSubscriptions_emergencyUplinkRequest, - { "emergencyUplinkRequest", "gsm_map.emergencyUplinkRequest", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_AdditionalSubscriptions_emergencyReset, - { "emergencyReset", "gsm_map.emergencyReset", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_TraceNE_TypeList_msc_s, - { "msc-s", "gsm_map.msc-s", + { &hf_gsm_map_ms_SupportedCamelPhases_phase1, + { "phase1", "gsm_map.ms.phase1", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_TraceNE_TypeList_mgw, - { "mgw", "gsm_map.mgw", + { &hf_gsm_map_ms_SupportedCamelPhases_phase2, + { "phase2", "gsm_map.ms.phase2", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_TraceNE_TypeList_sgsn, - { "sgsn", "gsm_map.sgsn", + { &hf_gsm_map_ms_SupportedCamelPhases_phase3, + { "phase3", "gsm_map.ms.phase3", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_TraceNE_TypeList_ggsn, - { "ggsn", "gsm_map.ggsn", + { &hf_gsm_map_ms_SupportedCamelPhases_phase4, + { "phase4", "gsm_map.ms.phase4", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_TraceNE_TypeList_rnc, - { "rnc", "gsm_map.rnc", - FT_BOOLEAN, 8, NULL, 0x08, - "", HFILL }}, - { &hf_gsm_map_TraceNE_TypeList_bm_sc, - { "bm-sc", "gsm_map.bm-sc", - FT_BOOLEAN, 8, NULL, 0x04, - "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_a, - { "a", "gsm_map.a", + { &hf_gsm_map_ms_OfferedCamel4CSIs_o_csi, + { "o-csi", "gsm_map.ms.o-csi", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_iu, - { "iu", "gsm_map.iu", + { &hf_gsm_map_ms_OfferedCamel4CSIs_d_csi, + { "d-csi", "gsm_map.ms.d-csi", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_mc, - { "mc", "gsm_map.mc", + { &hf_gsm_map_ms_OfferedCamel4CSIs_vt_csi, + { "vt-csi", "gsm_map.ms.vt-csi", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_map_g, - { "map-g", "gsm_map.map-g", + { &hf_gsm_map_ms_OfferedCamel4CSIs_t_csi, + { "t-csi", "gsm_map.ms.t-csi", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_map_b, - { "map-b", "gsm_map.map-b", + { &hf_gsm_map_ms_OfferedCamel4CSIs_mt_sms_csi, + { "mt-sms-csi", "gsm_map.ms.mt-sms-csi", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_map_e, - { "map-e", "gsm_map.map-e", + { &hf_gsm_map_ms_OfferedCamel4CSIs_mg_csi, + { "mg-csi", "gsm_map.ms.mg-csi", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_map_f, - { "map-f", "gsm_map.map-f", + { &hf_gsm_map_ms_OfferedCamel4CSIs_psi_enhancements, + { "psi-enhancements", "gsm_map.ms.psi-enhancements", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_cap, - { "cap", "gsm_map.cap", - FT_BOOLEAN, 8, NULL, 0x01, - "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_map_d, - { "map-d", "gsm_map.map-d", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_MSC_S_InterfaceList_map_c, - { "map-c", "gsm_map.map-c", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_MGW_InterfaceList_mc, - { "mc", "gsm_map.mc", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_initiateCallAttempt, + { "initiateCallAttempt", "gsm_map.ms.initiateCallAttempt", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_MGW_InterfaceList_nb_up, - { "nb-up", "gsm_map.nb-up", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_splitLeg, + { "splitLeg", "gsm_map.ms.splitLeg", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_MGW_InterfaceList_iu_up, - { "iu-up", "gsm_map.iu-up", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_moveLeg, + { "moveLeg", "gsm_map.ms.moveLeg", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_gb, - { "gb", "gsm_map.gb", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_iu, - { "iu", "gsm_map.iu", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_gn, - { "gn", "gsm_map.gn", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_map_gr, - { "map-gr", "gsm_map.map-gr", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_disconnectLeg, + { "disconnectLeg", "gsm_map.ms.disconnectLeg", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_map_gd, - { "map-gd", "gsm_map.map-gd", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_entityReleased, + { "entityReleased", "gsm_map.ms.entityReleased", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_map_gf, - { "map-gf", "gsm_map.map-gf", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_dfc_WithArgument, + { "dfc-WithArgument", "gsm_map.ms.dfc-WithArgument", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_gs, - { "gs", "gsm_map.gs", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_playTone, + { "playTone", "gsm_map.ms.playTone", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_SGSN_InterfaceList_ge, - { "ge", "gsm_map.ge", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_dtmf_MidCall, + { "dtmf-MidCall", "gsm_map.ms.dtmf-MidCall", FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - { &hf_gsm_map_GGSN_InterfaceList_gn, - { "gn", "gsm_map.gn", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_GGSN_InterfaceList_gi, - { "gi", "gsm_map.gi", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_GGSN_InterfaceList_gmb, - { "gmb", "gsm_map.gmb", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_RNC_InterfaceList_iu, - { "iu", "gsm_map.iu", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_chargingIndicator, + { "chargingIndicator", "gsm_map.ms.chargingIndicator", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_RNC_InterfaceList_iur, - { "iur", "gsm_map.iur", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_alertingDP, + { "alertingDP", "gsm_map.ms.alertingDP", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_RNC_InterfaceList_iub, - { "iub", "gsm_map.iub", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_locationAtAlerting, + { "locationAtAlerting", "gsm_map.ms.locationAtAlerting", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_RNC_InterfaceList_uu, - { "uu", "gsm_map.uu", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_changeOfPositionDP, + { "changeOfPositionDP", "gsm_map.ms.changeOfPositionDP", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_BMSC_InterfaceList_gmb, - { "gmb", "gsm_map.gmb", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_MSC_S_EventList_mo_mtCall, - { "mo-mtCall", "gsm_map.mo-mtCall", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_MSC_S_EventList_mo_mt_sms, - { "mo-mt-sms", "gsm_map.mo-mt-sms", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_MSC_S_EventList_lu_imsiAttach_imsiDetach, - { "lu-imsiAttach-imsiDetach", "gsm_map.lu-imsiAttach-imsiDetach", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_MSC_S_EventList_handovers, - { "handovers", "gsm_map.handovers", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_gsm_map_MSC_S_EventList_ss, - { "ss", "gsm_map.ss", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_or_Interactions, + { "or-Interactions", "gsm_map.ms.or-Interactions", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_MGW_EventList_context, - { "context", "gsm_map.context", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_SGSN_EventList_pdpContext, - { "pdpContext", "gsm_map.pdpContext", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_SGSN_EventList_mo_mt_sms, - { "mo-mt-sms", "gsm_map.mo-mt-sms", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_SGSN_EventList_rau_gprsAttach_gprsDetach, - { "rau-gprsAttach-gprsDetach", "gsm_map.rau-gprsAttach-gprsDetach", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_SGSN_EventList_mbmsContext, - { "mbmsContext", "gsm_map.mbmsContext", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_gsm_map_GGSN_EventList_pdpContext, - { "pdpContext", "gsm_map.pdpContext", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_GGSN_EventList_mbmsContext, - { "mbmsContext", "gsm_map.mbmsContext", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_BMSC_EventList_mbmsMulticastServiceActivation, - { "mbmsMulticastServiceActivation", "gsm_map.mbmsMulticastServiceActivation", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_AllowedServices_firstServiceAllowed, - { "firstServiceAllowed", "gsm_map.firstServiceAllowed", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_AllowedServices_secondServiceAllowed, - { "secondServiceAllowed", "gsm_map.secondServiceAllowed", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_ServiceIndicator_clir_invoked, - { "clir-invoked", "gsm_map.clir-invoked", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_ServiceIndicator_camel_invoked, - { "camel-invoked", "gsm_map.camel-invoked", - FT_BOOLEAN, 8, NULL, 0x40, - "", HFILL }}, - { &hf_gsm_map_MW_Status_sc_AddressNotIncluded, - { "sc-AddressNotIncluded", "gsm_map.sc-AddressNotIncluded", - FT_BOOLEAN, 8, NULL, 0x80, - "", HFILL }}, - { &hf_gsm_map_MW_Status_mnrf_Set, - { "mnrf-Set", "gsm_map.mnrf-Set", - FT_BOOLEAN, 8, NULL, 0x40, + { &hf_gsm_map_ms_OfferedCamel4Functionalities_warningToneEnhancements, + { "warningToneEnhancements", "gsm_map.ms.warningToneEnhancements", + FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_MW_Status_mcef_Set, - { "mcef-Set", "gsm_map.mcef-Set", - FT_BOOLEAN, 8, NULL, 0x20, + { &hf_gsm_map_ms_OfferedCamel4Functionalities_cf_Enhancements, + { "cf-Enhancements", "gsm_map.ms.cf-Enhancements", + FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, - { &hf_gsm_map_MW_Status_mnrg_Set, - { "mnrg-Set", "gsm_map.mnrg-Set", - FT_BOOLEAN, 8, NULL, 0x10, + { &hf_gsm_map_ms_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, + { "subscribedEnhancedDialledServices", "gsm_map.ms.subscribedEnhancedDialledServices", + FT_BOOLEAN, 8, NULL, 0x01, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_o_csi, - { "o-csi", "gsm_map.o-csi", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, + { "servingNetworkEnhancedDialledServices", "gsm_map.ms.servingNetworkEnhancedDialledServices", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_d_csi, - { "d-csi", "gsm_map.d-csi", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, + { "criteriaForChangeOfPositionDP", "gsm_map.ms.criteriaForChangeOfPositionDP", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_vt_csi, - { "vt-csi", "gsm_map.vt-csi", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_serviceChangeDP, + { "serviceChangeDP", "gsm_map.ms.serviceChangeDP", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_t_csi, - { "t-csi", "gsm_map.t-csi", + { &hf_gsm_map_ms_OfferedCamel4Functionalities_collectInformation, + { "collectInformation", "gsm_map.ms.collectInformation", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_mt_sms_csi, - { "mt-sms-csi", "gsm_map.mt-sms-csi", - FT_BOOLEAN, 8, NULL, 0x08, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_mg_csi, - { "mg-csi", "gsm_map.mg-csi", - FT_BOOLEAN, 8, NULL, 0x04, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4CSIs_psi_enhancements, - { "psi-enhancements", "gsm_map.psi-enhancements", - FT_BOOLEAN, 8, NULL, 0x02, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_initiateCallAttempt, - { "initiateCallAttempt", "gsm_map.initiateCallAttempt", + { &hf_gsm_map_ms_AdditionalSubscriptions_privilegedUplinkRequest, + { "privilegedUplinkRequest", "gsm_map.ms.privilegedUplinkRequest", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_splitLeg, - { "splitLeg", "gsm_map.splitLeg", + { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyUplinkRequest, + { "emergencyUplinkRequest", "gsm_map.ms.emergencyUplinkRequest", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_moveLeg, - { "moveLeg", "gsm_map.moveLeg", + { &hf_gsm_map_ms_AdditionalSubscriptions_emergencyReset, + { "emergencyReset", "gsm_map.ms.emergencyReset", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_disconnectLeg, - { "disconnectLeg", "gsm_map.disconnectLeg", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_entityReleased, - { "entityReleased", "gsm_map.entityReleased", - FT_BOOLEAN, 8, NULL, 0x08, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_dfc_WithArgument, - { "dfc-WithArgument", "gsm_map.dfc-WithArgument", - FT_BOOLEAN, 8, NULL, 0x04, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_playTone, - { "playTone", "gsm_map.playTone", - FT_BOOLEAN, 8, NULL, 0x02, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_dtmf_MidCall, - { "dtmf-MidCall", "gsm_map.dtmf-MidCall", - FT_BOOLEAN, 8, NULL, 0x01, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_chargingIndicator, - { "chargingIndicator", "gsm_map.chargingIndicator", + +/* --- Module MAP-CH-DataTypes --- --- --- */ + + { &hf_gsm_map_ch_cug_Interlock, + { "cug-Interlock", "gsm_map.ch.cug_Interlock", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.CUG_Interlock", HFILL }}, + { &hf_gsm_map_ch_cug_OutgoingAccess, + { "cug-OutgoingAccess", "gsm_map.ch.cug_OutgoingAccess", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_extensionContainer, + { "extensionContainer", "gsm_map.ch.extensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_ch_msisdn, + { "msisdn", "gsm_map.ch.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_cug_CheckInfo, + { "cug-CheckInfo", "gsm_map.ch.cug_CheckInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.CUG_CheckInfo", HFILL }}, + { &hf_gsm_map_ch_numberOfForwarding, + { "numberOfForwarding", "gsm_map.ch.numberOfForwarding", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ch.NumberOfForwarding", HFILL }}, + { &hf_gsm_map_ch_interrogationType, + { "interrogationType", "gsm_map.ch.interrogationType", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_InterrogationType_vals), 0, + "gsm_map_ch.InterrogationType", HFILL }}, + { &hf_gsm_map_ch_or_Interrogation, + { "or-Interrogation", "gsm_map.ch.or_Interrogation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_or_Capability, + { "or-Capability", "gsm_map.ch.or_Capability", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ch.OR_Phase", HFILL }}, + { &hf_gsm_map_ch_gmsc_OrGsmSCF_Address, + { "gmsc-OrGsmSCF-Address", "gsm_map.ch.gmsc_OrGsmSCF_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_callReferenceNumber, + { "callReferenceNumber", "gsm_map.ch.callReferenceNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ch.CallReferenceNumber", HFILL }}, + { &hf_gsm_map_ch_forwardingReason, + { "forwardingReason", "gsm_map.ch.forwardingReason", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ForwardingReason_vals), 0, + "gsm_map_ch.ForwardingReason", HFILL }}, + { &hf_gsm_map_ch_basicServiceGroup, + { "basicServiceGroup", "gsm_map.ch.basicServiceGroup", + FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, + "gsm_map.Ext_BasicServiceCode", HFILL }}, + { &hf_gsm_map_ch_networkSignalInfo, + { "networkSignalInfo", "gsm_map.ch.networkSignalInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_map_ch_camelInfo, + { "camelInfo", "gsm_map.ch.camelInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.CamelInfo", HFILL }}, + { &hf_gsm_map_ch_suppressionOfAnnouncement, + { "suppressionOfAnnouncement", "gsm_map.ch.suppressionOfAnnouncement", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.SuppressionOfAnnouncement", HFILL }}, + { &hf_gsm_map_ch_alertingPattern, + { "alertingPattern", "gsm_map.ch.alertingPattern", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AlertingPattern", HFILL }}, + { &hf_gsm_map_ch_ccbs_Call, + { "ccbs-Call", "gsm_map.ch.ccbs_Call", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_supportedCCBS_Phase, + { "supportedCCBS-Phase", "gsm_map.ch.supportedCCBS_Phase", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ch.SupportedCCBS_Phase", HFILL }}, + { &hf_gsm_map_ch_additionalSignalInfo, + { "additionalSignalInfo", "gsm_map.ch.additionalSignalInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.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, + "gsm_map_ms.IST_SupportIndicator", HFILL }}, + { &hf_gsm_map_ch_pre_pagingSupported, + { "pre-pagingSupported", "gsm_map.ch.pre_pagingSupported", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_callDiversionTreatmentIndicator, + { "callDiversionTreatmentIndicator", "gsm_map.ch.callDiversionTreatmentIndicator", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ch.CallDiversionTreatmentIndicator", HFILL }}, + { &hf_gsm_map_ch_longFTN_Supported, + { "longFTN-Supported", "gsm_map.ch.longFTN_Supported", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_suppress_VT_CSI, + { "suppress-VT-CSI", "gsm_map.ch.suppress_VT_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_suppressIncomingCallBarring, + { "suppressIncomingCallBarring", "gsm_map.ch.suppressIncomingCallBarring", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_gsmSCF_InitiatedCall, + { "gsmSCF-InitiatedCall", "gsm_map.ch.gsmSCF_InitiatedCall", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_basicServiceGroup2, + { "basicServiceGroup2", "gsm_map.ch.basicServiceGroup2", + FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, + "gsm_map.Ext_BasicServiceCode", HFILL }}, + { &hf_gsm_map_ch_networkSignalInfo2, + { "networkSignalInfo2", "gsm_map.ch.networkSignalInfo2", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_map_ch_suppressMTSS, + { "suppressMTSS", "gsm_map.ch.suppressMTSS", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ch.SuppressMTSS", HFILL }}, + { &hf_gsm_map_ch_imsi, + { "imsi", "gsm_map.ch.imsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_ch_extendedRoutingInfo, + { "extendedRoutingInfo", "gsm_map.ch.extendedRoutingInfo", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_ExtendedRoutingInfo_vals), 0, + "gsm_map_ch.ExtendedRoutingInfo", HFILL }}, + { &hf_gsm_map_ch_cugSubscriptionFlag, + { "cugSubscriptionFlag", "gsm_map.ch.cugSubscriptionFlag", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_subscriberInfo, + { "subscriberInfo", "gsm_map.ch.subscriberInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.SubscriberInfo", HFILL }}, + { &hf_gsm_map_ch_ss_List, + { "ss-List", "gsm_map.ch.ss_List", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.SS_List", HFILL }}, + { &hf_gsm_map_ch_basicService, + { "basicService", "gsm_map.ch.basicService", + FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, + "gsm_map.Ext_BasicServiceCode", HFILL }}, + { &hf_gsm_map_ch_forwardingInterrogationRequired, + { "forwardingInterrogationRequired", "gsm_map.ch.forwardingInterrogationRequired", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_vmsc_Address, + { "vmsc-Address", "gsm_map.ch.vmsc_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_naea_PreferredCI, + { "naea-PreferredCI", "gsm_map.ch.naea_PreferredCI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.NAEA_PreferredCI", HFILL }}, + { &hf_gsm_map_ch_ccbs_Indicators, + { "ccbs-Indicators", "gsm_map.ch.ccbs_Indicators", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.CCBS_Indicators", HFILL }}, + { &hf_gsm_map_ch_numberPortabilityStatus, + { "numberPortabilityStatus", "gsm_map.ch.numberPortabilityStatus", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NumberPortabilityStatus_vals), 0, + "gsm_map_ms.NumberPortabilityStatus", HFILL }}, + { &hf_gsm_map_ch_istAlertTimer, + { "istAlertTimer", "gsm_map.ch.istAlertTimer", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.IST_AlertTimerValue", HFILL }}, + { &hf_gsm_map_ch_supportedCamelPhasesInVMSC, + { "supportedCamelPhasesInVMSC", "gsm_map.ch.supportedCamelPhasesInVMSC", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ch_offeredCamel4CSIsInVMSC, + { "offeredCamel4CSIsInVMSC", "gsm_map.ch.offeredCamel4CSIsInVMSC", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.OfferedCamel4CSIs", HFILL }}, + { &hf_gsm_map_ch_routingInfo2, + { "routingInfo2", "gsm_map.ch.routingInfo2", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0, + "gsm_map_ch.RoutingInfo", HFILL }}, + { &hf_gsm_map_ch_ss_List2, + { "ss-List2", "gsm_map.ch.ss_List2", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ss.SS_List", HFILL }}, + { &hf_gsm_map_ch_basicService2, + { "basicService2", "gsm_map.ch.basicService2", + FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0, + "gsm_map.Ext_BasicServiceCode", HFILL }}, + { &hf_gsm_map_ch_allowedServices, + { "allowedServices", "gsm_map.ch.allowedServices", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ch.AllowedServices", HFILL }}, + { &hf_gsm_map_ch_unavailabilityCause, + { "unavailabilityCause", "gsm_map.ch.unavailabilityCause", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_UnavailabilityCause_vals), 0, + "gsm_map_ch.UnavailabilityCause", HFILL }}, + { &hf_gsm_map_ch_releaseResourcesSupported, + { "releaseResourcesSupported", "gsm_map.ch.releaseResourcesSupported", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_gsm_BearerCapability, + { "gsm-BearerCapability", "gsm_map.ch.gsm_BearerCapability", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_map_ch_ccbs_Possible, + { "ccbs-Possible", "gsm_map.ch.ccbs_Possible", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_keepCCBS_CallIndicator, + { "keepCCBS-CallIndicator", "gsm_map.ch.keepCCBS_CallIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_roamingNumber, + { "roamingNumber", "gsm_map.ch.roamingNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_forwardingData, + { "forwardingData", "gsm_map.ch.forwardingData", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.ForwardingData", HFILL }}, + { &hf_gsm_map_ch_forwardedToNumber, + { "forwardedToNumber", "gsm_map.ch.forwardedToNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_forwardedToSubaddress, + { "forwardedToSubaddress", "gsm_map.ch.forwardedToSubaddress", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_SubaddressString", HFILL }}, + { &hf_gsm_map_ch_forwardingOptions, + { "forwardingOptions", "gsm_map.ch.forwardingOptions", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.ForwardingOptions", HFILL }}, + { &hf_gsm_map_ch_longForwardedToNumber, + { "longForwardedToNumber", "gsm_map.ch.longForwardedToNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.FTN_AddressString", HFILL }}, + { &hf_gsm_map_ch_msc_Number, + { "msc-Number", "gsm_map.ch.msc_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_lmsi, + { "lmsi", "gsm_map.ch.lmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LMSI", HFILL }}, + { &hf_gsm_map_ch_gmsc_Address, + { "gmsc-Address", "gsm_map.ch.gmsc_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_supportedCamelPhasesInInterrogatingNode, + { "supportedCamelPhasesInInterrogatingNode", "gsm_map.ch.supportedCamelPhasesInInterrogatingNode", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ch_orNotSupportedInGMSC, + { "orNotSupportedInGMSC", "gsm_map.ch.orNotSupportedInGMSC", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_offeredCamel4CSIsInInterrogatingNode, + { "offeredCamel4CSIsInInterrogatingNode", "gsm_map.ch.offeredCamel4CSIsInInterrogatingNode", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.OfferedCamel4CSIs", HFILL }}, + { &hf_gsm_map_ch_o_CSI, + { "o-CSI", "gsm_map.ch.o_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.O_CSI", HFILL }}, + { &hf_gsm_map_ch_uu_Data, + { "uu-Data", "gsm_map.ch.uu_Data", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.UU_Data", HFILL }}, + { &hf_gsm_map_ch_allInformationSent, + { "allInformationSent", "gsm_map.ch.allInformationSent", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_d_csi, + { "d-csi", "gsm_map.ch.d_csi", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.D_CSI", HFILL }}, + { &hf_gsm_map_ch_o_BcsmCamelTDPCriteriaList, + { "o-BcsmCamelTDPCriteriaList", "gsm_map.ch.o_BcsmCamelTDPCriteriaList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.O_BcsmCamelTDPCriteriaList", HFILL }}, + { &hf_gsm_map_ch_uuIndicator, + { "uuIndicator", "gsm_map.ch.uuIndicator", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ch.UUIndicator", HFILL }}, + { &hf_gsm_map_ch_uui, + { "uui", "gsm_map.ch.uui", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ch.UUI", HFILL }}, + { &hf_gsm_map_ch_uusCFInteraction, + { "uusCFInteraction", "gsm_map.ch.uusCFInteraction", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_supportedCamelPhases, + { "supportedCamelPhases", "gsm_map.ch.supportedCamelPhases", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.SupportedCamelPhases", HFILL }}, + { &hf_gsm_map_ch_suppress_T_CSI, + { "suppress-T-CSI", "gsm_map.ch.suppress_T_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_offeredCamel4CSIs, + { "offeredCamel4CSIs", "gsm_map.ch.offeredCamel4CSIs", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.OfferedCamel4CSIs", HFILL }}, + { &hf_gsm_map_ch_routingInfo, + { "routingInfo", "gsm_map.ch.routingInfo", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_RoutingInfo_vals), 0, + "gsm_map_ch.RoutingInfo", HFILL }}, + { &hf_gsm_map_ch_camelRoutingInfo, + { "camelRoutingInfo", "gsm_map.ch.camelRoutingInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.CamelRoutingInfo", HFILL }}, + { &hf_gsm_map_ch_gmscCamelSubscriptionInfo, + { "gmscCamelSubscriptionInfo", "gsm_map.ch.gmscCamelSubscriptionInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.GmscCamelSubscriptionInfo", HFILL }}, + { &hf_gsm_map_ch_t_CSI, + { "t-CSI", "gsm_map.ch.t_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ms.T_CSI", HFILL }}, + { &hf_gsm_map_ch_o_BcsmCamelTDP_CriteriaList, + { "o-BcsmCamelTDP-CriteriaList", "gsm_map.ch.o_BcsmCamelTDP_CriteriaList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.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, + "gsm_map_ms.T_BCSM_CAMEL_TDP_CriteriaList", 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, + "gsm_map_ch.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, + "gsm_map_ch.CCBS_SubscriberStatus", HFILL }}, + { &hf_gsm_map_ch_eventReportData, + { "eventReportData", "gsm_map.ch.eventReportData", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.EventReportData", HFILL }}, + { &hf_gsm_map_ch_callReportdata, + { "callReportdata", "gsm_map.ch.callReportdata", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.CallReportData", HFILL }}, + { &hf_gsm_map_ch_monitoringMode, + { "monitoringMode", "gsm_map.ch.monitoringMode", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_MonitoringMode_vals), 0, + "gsm_map_ch.MonitoringMode", HFILL }}, + { &hf_gsm_map_ch_callOutcome, + { "callOutcome", "gsm_map.ch.callOutcome", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallOutcome_vals), 0, + "gsm_map_ch.CallOutcome", HFILL }}, + { &hf_gsm_map_ch_callInfo, + { "callInfo", "gsm_map.ch.callInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_map_ch_ccbs_Feature, + { "ccbs-Feature", "gsm_map.ch.ccbs_Feature", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ss.CCBS_Feature", HFILL }}, + { &hf_gsm_map_ch_translatedB_Number, + { "translatedB-Number", "gsm_map.ch.translatedB_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_replaceB_Number, + { "replaceB-Number", "gsm_map.ch.replaceB_Number", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.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, + "gsm_map_ch.RUF_Outcome", HFILL }}, + { &hf_gsm_map_ch_istInformationWithdraw, + { "istInformationWithdraw", "gsm_map.ch.istInformationWithdraw", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ch.NULL", HFILL }}, + { &hf_gsm_map_ch_callTerminationIndicator, + { "callTerminationIndicator", "gsm_map.ch.callTerminationIndicator", + FT_UINT32, BASE_DEC, VALS(gsm_map_ch_CallTerminationIndicator_vals), 0, + "gsm_map_ch.CallTerminationIndicator", HFILL }}, + { &hf_gsm_map_ch_msrn, + { "msrn", "gsm_map.ch.msrn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_ch_SuppressMTSS_suppressCUG, + { "suppressCUG", "gsm_map.ch.suppressCUG", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_alertingDP, - { "alertingDP", "gsm_map.alertingDP", + { &hf_gsm_map_ch_SuppressMTSS_suppressCCBS, + { "suppressCCBS", "gsm_map.ch.suppressCCBS", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_locationAtAlerting, - { "locationAtAlerting", "gsm_map.locationAtAlerting", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_changeOfPositionDP, - { "changeOfPositionDP", "gsm_map.changeOfPositionDP", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_or_Interactions, - { "or-Interactions", "gsm_map.or-Interactions", - FT_BOOLEAN, 8, NULL, 0x08, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_warningToneEnhancements, - { "warningToneEnhancements", "gsm_map.warningToneEnhancements", - FT_BOOLEAN, 8, NULL, 0x04, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_cf_Enhancements, - { "cf-Enhancements", "gsm_map.cf-Enhancements", - FT_BOOLEAN, 8, NULL, 0x02, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, - { "subscribedEnhancedDialledServices", "gsm_map.subscribedEnhancedDialledServices", - FT_BOOLEAN, 8, NULL, 0x01, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, - { "servingNetworkEnhancedDialledServices", "gsm_map.servingNetworkEnhancedDialledServices", + { &hf_gsm_map_ch_AllowedServices_firstServiceAllowed, + { "firstServiceAllowed", "gsm_map.ch.firstServiceAllowed", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, - { "criteriaForChangeOfPositionDP", "gsm_map.criteriaForChangeOfPositionDP", + { &hf_gsm_map_ch_AllowedServices_secondServiceAllowed, + { "secondServiceAllowed", "gsm_map.ch.secondServiceAllowed", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_serviceChangeDP, - { "serviceChangeDP", "gsm_map.serviceChangeDP", - FT_BOOLEAN, 8, NULL, 0x20, - "", HFILL }}, - { &hf_gsm_map_OfferedCamel4Functionalities_collectInformation, - { "collectInformation", "gsm_map.collectInformation", - FT_BOOLEAN, 8, NULL, 0x10, - "", HFILL }}, - { &hf_gsm_map_DeferredLocationEventType_msAvailable, - { "msAvailable", "gsm_map.msAvailable", + +/* --- Module MAP-LCS-DataTypes --- --- --- */ + + { &hf_gsm_map_lcs_mlcNumber, + { "mlcNumber", "gsm_map.lcs.mlcNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_lcs_targetMS, + { "targetMS", "gsm_map.lcs.targetMS", + FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0, + "gsm_map.SubscriberIdentity", HFILL }}, + { &hf_gsm_map_lcs_extensionContainer, + { "extensionContainer", "gsm_map.lcs.extensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_lcs_lcsLocationInfo, + { "lcsLocationInfo", "gsm_map.lcs.lcsLocationInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSLocationInfo", HFILL }}, + { &hf_gsm_map_lcs_v_gmlc_Address, + { "v-gmlc-Address", "gsm_map.lcs.v_gmlc_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_lcs_h_gmlc_Address, + { "h-gmlc-Address", "gsm_map.lcs.h_gmlc_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_lcs_ppr_Address, + { "ppr-Address", "gsm_map.lcs.ppr_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.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_HEX, NULL, 0, + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_map_lcs_networkNode_Number, + { "networkNode-Number", "gsm_map.lcs.networkNode_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_lcs_lmsi, + { "lmsi", "gsm_map.lcs.lmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LMSI", HFILL }}, + { &hf_gsm_map_lcs_gprsNodeIndicator, + { "gprsNodeIndicator", "gsm_map.lcs.gprsNodeIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.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, + "gsm_map_sm.Additional_Number", HFILL }}, + { &hf_gsm_map_lcs_supportedLCS_CapabilitySets, + { "supportedLCS-CapabilitySets", "gsm_map.lcs.supportedLCS_CapabilitySets", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }}, + { &hf_gsm_map_lcs_additional_LCS_CapabilitySets, + { "additional-LCS-CapabilitySets", "gsm_map.lcs.additional_LCS_CapabilitySets", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.SupportedLCS_CapabilitySets", HFILL }}, + { &hf_gsm_map_lcs_locationType, + { "locationType", "gsm_map.lcs.locationType", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LocationType", HFILL }}, + { &hf_gsm_map_lcs_mlc_Number, + { "mlc-Number", "gsm_map.lcs.mlc_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_lcs_lcs_ClientID, + { "lcs-ClientID", "gsm_map.lcs.lcs_ClientID", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCS_ClientID", HFILL }}, + { &hf_gsm_map_lcs_privacyOverride, + { "privacyOverride", "gsm_map.lcs.privacyOverride", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_imsi, + { "imsi", "gsm_map.lcs.imsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_lcs_msisdn, + { "msisdn", "gsm_map.lcs.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_lcs_imei, + { "imei", "gsm_map.lcs.imei", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMEI", HFILL }}, + { &hf_gsm_map_lcs_lcs_Priority, + { "lcs-Priority", "gsm_map.lcs.lcs_Priority", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.LCS_Priority", HFILL }}, + { &hf_gsm_map_lcs_lcs_QoS, + { "lcs-QoS", "gsm_map.lcs.lcs_QoS", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCS_QoS", HFILL }}, + { &hf_gsm_map_lcs_supportedGADShapes, + { "supportedGADShapes", "gsm_map.lcs.supportedGADShapes", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.SupportedGADShapes", HFILL }}, + { &hf_gsm_map_lcs_lcs_ReferenceNumber, + { "lcs-ReferenceNumber", "gsm_map.lcs.lcs_ReferenceNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.LCS_ReferenceNumber", HFILL }}, + { &hf_gsm_map_lcs_lcsServiceTypeID, + { "lcsServiceTypeID", "gsm_map.lcs.lcsServiceTypeID", + FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0, + "gsm_map.LCSServiceTypeID", HFILL }}, + { &hf_gsm_map_lcs_lcsCodeword, + { "lcsCodeword", "gsm_map.lcs.lcsCodeword", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSCodeword", HFILL }}, + { &hf_gsm_map_lcs_lcs_PrivacyCheck, + { "lcs-PrivacyCheck", "gsm_map.lcs.lcs_PrivacyCheck", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCS_PrivacyCheck", HFILL }}, + { &hf_gsm_map_lcs_areaEventInfo, + { "areaEventInfo", "gsm_map.lcs.areaEventInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.AreaEventInfo", HFILL }}, + { &hf_gsm_map_lcs_mo_lrShortCircuitIndicator, + { "mo-lrShortCircuitIndicator", "gsm_map.lcs.mo_lrShortCircuitIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_periodicLDRInfo, + { "periodicLDRInfo", "gsm_map.lcs.periodicLDRInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.PeriodicLDRInfo", HFILL }}, + { &hf_gsm_map_lcs_reportingPLMNList, + { "reportingPLMNList", "gsm_map.lcs.reportingPLMNList", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.ReportingPLMNList", HFILL }}, + { &hf_gsm_map_lcs_locationEstimateType, + { "locationEstimateType", "gsm_map.lcs.locationEstimateType", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LocationEstimateType_vals), 0, + "gsm_map_lcs.LocationEstimateType", HFILL }}, + { &hf_gsm_map_lcs_deferredLocationEventType, + { "deferredLocationEventType", "gsm_map.lcs.deferredLocationEventType", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.DeferredLocationEventType", HFILL }}, + { &hf_gsm_map_lcs_lcsClientType, + { "lcsClientType", "gsm_map.lcs.lcsClientType", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0, + "gsm_map_lcs.LCSClientType", HFILL }}, + { &hf_gsm_map_lcs_lcsClientExternalID, + { "lcsClientExternalID", "gsm_map.lcs.lcsClientExternalID", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.LCSClientExternalID", HFILL }}, + { &hf_gsm_map_lcs_lcsClientDialedByMS, + { "lcsClientDialedByMS", "gsm_map.lcs.lcsClientDialedByMS", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_lcs_lcsClientInternalID, + { "lcsClientInternalID", "gsm_map.lcs.lcsClientInternalID", + FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0, + "gsm_map.LCSClientInternalID", HFILL }}, + { &hf_gsm_map_lcs_lcsClientName, + { "lcsClientName", "gsm_map.lcs.lcsClientName", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSClientName", HFILL }}, + { &hf_gsm_map_lcs_lcsAPN, + { "lcsAPN", "gsm_map.lcs.lcsAPN", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.APN", HFILL }}, + { &hf_gsm_map_lcs_lcsRequestorID, + { "lcsRequestorID", "gsm_map.lcs.lcsRequestorID", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSRequestorID", HFILL }}, + { &hf_gsm_map_lcs_dataCodingScheme, + { "dataCodingScheme", "gsm_map.lcs.dataCodingScheme", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.USSD_DataCodingScheme", HFILL }}, + { &hf_gsm_map_lcs_nameString, + { "nameString", "gsm_map.lcs.nameString", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.NameString", 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, + "gsm_map_lcs.LCS_FormatIndicator", HFILL }}, + { &hf_gsm_map_lcs_requestorIDString, + { "requestorIDString", "gsm_map.lcs.requestorIDString", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.RequestorIDString", HFILL }}, + { &hf_gsm_map_lcs_horizontal_accuracy, + { "horizontal-accuracy", "gsm_map.lcs.horizontal_accuracy", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.Horizontal_Accuracy", HFILL }}, + { &hf_gsm_map_lcs_verticalCoordinateRequest, + { "verticalCoordinateRequest", "gsm_map.lcs.verticalCoordinateRequest", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_vertical_accuracy, + { "vertical-accuracy", "gsm_map.lcs.vertical_accuracy", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.Vertical_Accuracy", HFILL }}, + { &hf_gsm_map_lcs_responseTime, + { "responseTime", "gsm_map.lcs.responseTime", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.ResponseTime", HFILL }}, + { &hf_gsm_map_lcs_velocityRequest, + { "velocityRequest", "gsm_map.lcs.velocityRequest", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_responseTimeCategory, + { "responseTimeCategory", "gsm_map.lcs.responseTimeCategory", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_ResponseTimeCategory_vals), 0, + "gsm_map_lcs.ResponseTimeCategory", HFILL }}, + { &hf_gsm_map_lcs_lcsCodewordString, + { "lcsCodewordString", "gsm_map.lcs.lcsCodewordString", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.LCSCodewordString", HFILL }}, + { &hf_gsm_map_lcs_callSessionUnrelated, + { "callSessionUnrelated", "gsm_map.lcs.callSessionUnrelated", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0, + "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }}, + { &hf_gsm_map_lcs_callSessionRelated, + { "callSessionRelated", "gsm_map.lcs.callSessionRelated", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_PrivacyCheckRelatedAction_vals), 0, + "gsm_map_lcs.PrivacyCheckRelatedAction", HFILL }}, + { &hf_gsm_map_lcs_areaDefinition, + { "areaDefinition", "gsm_map.lcs.areaDefinition", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.AreaDefinition", HFILL }}, + { &hf_gsm_map_lcs_occurrenceInfo, + { "occurrenceInfo", "gsm_map.lcs.occurrenceInfo", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_OccurrenceInfo_vals), 0, + "gsm_map_lcs.OccurrenceInfo", HFILL }}, + { &hf_gsm_map_lcs_intervalTime, + { "intervalTime", "gsm_map.lcs.intervalTime", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.IntervalTime", HFILL }}, + { &hf_gsm_map_lcs_areaList, + { "areaList", "gsm_map.lcs.areaList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.AreaList", HFILL }}, + { &hf_gsm_map_lcs_AreaList_item, + { "Item", "gsm_map.lcs.AreaList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.Area", HFILL }}, + { &hf_gsm_map_lcs_areaType, + { "areaType", "gsm_map.lcs.areaType", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AreaType_vals), 0, + "gsm_map_lcs.AreaType", HFILL }}, + { &hf_gsm_map_lcs_areaIdentification, + { "areaIdentification", "gsm_map.lcs.areaIdentification", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.AreaIdentification", HFILL }}, + { &hf_gsm_map_lcs_reportingAmount, + { "reportingAmount", "gsm_map.lcs.reportingAmount", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.ReportingAmount", HFILL }}, + { &hf_gsm_map_lcs_reportingInterval, + { "reportingInterval", "gsm_map.lcs.reportingInterval", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.ReportingInterval", HFILL }}, + { &hf_gsm_map_lcs_plmn_ListPrioritized, + { "plmn-ListPrioritized", "gsm_map.lcs.plmn_ListPrioritized", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_plmn_List, + { "plmn-List", "gsm_map.lcs.plmn_List", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.PLMNList", HFILL }}, + { &hf_gsm_map_lcs_PLMNList_item, + { "Item", "gsm_map.lcs.PLMNList_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.ReportingPLMN", HFILL }}, + { &hf_gsm_map_lcs_plmn_Id, + { "plmn-Id", "gsm_map.lcs.plmn_Id", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.PLMN_Id", 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, + "gsm_map_lcs.RAN_Technology", HFILL }}, + { &hf_gsm_map_lcs_ran_PeriodicLocationSupport, + { "ran-PeriodicLocationSupport", "gsm_map.lcs.ran_PeriodicLocationSupport", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_locationEstimate, + { "locationEstimate", "gsm_map.lcs.locationEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.Ext_GeographicalInformation", HFILL }}, + { &hf_gsm_map_lcs_ageOfLocationEstimate, + { "ageOfLocationEstimate", "gsm_map.lcs.ageOfLocationEstimate", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.AgeOfLocationInformation", HFILL }}, + { &hf_gsm_map_lcs_add_LocationEstimate, + { "add-LocationEstimate", "gsm_map.lcs.add_LocationEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.Add_GeographicalInformation", HFILL }}, + { &hf_gsm_map_lcs_deferredmt_lrResponseIndicator, + { "deferredmt-lrResponseIndicator", "gsm_map.lcs.deferredmt_lrResponseIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_geranPositioningData, + { "geranPositioningData", "gsm_map.lcs.geranPositioningData", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.PositioningDataInformation", HFILL }}, + { &hf_gsm_map_lcs_utranPositioningData, + { "utranPositioningData", "gsm_map.lcs.utranPositioningData", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.UtranPositioningDataInfo", HFILL }}, + { &hf_gsm_map_lcs_cellIdOrSai, + { "cellIdOrSai", "gsm_map.lcs.cellIdOrSai", + FT_UINT32, BASE_DEC, VALS(gsm_map_CellGlobalIdOrServiceAreaIdOrLAI_vals), 0, + "gsm_map.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }}, + { &hf_gsm_map_lcs_sai_Present, + { "sai-Present", "gsm_map.lcs.sai_Present", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_accuracyFulfilmentIndicator, + { "accuracyFulfilmentIndicator", "gsm_map.lcs.accuracyFulfilmentIndicator", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_AccuracyFulfilmentIndicator_vals), 0, + "gsm_map_lcs.AccuracyFulfilmentIndicator", HFILL }}, + { &hf_gsm_map_lcs_velocityEstimate, + { "velocityEstimate", "gsm_map.lcs.velocityEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.VelocityEstimate", 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, + "gsm_map_lcs.LCS_Event", HFILL }}, + { &hf_gsm_map_lcs_na_ESRD, + { "na-ESRD", "gsm_map.lcs.na_ESRD", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_lcs_na_ESRK, + { "na-ESRK", "gsm_map.lcs.na_ESRK", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_lcs_slr_ArgExtensionContainer, + { "slr-ArgExtensionContainer", "gsm_map.lcs.slr_ArgExtensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.SLR_ArgExtensionContainer", HFILL }}, + { &hf_gsm_map_lcs_deferredmt_lrData, + { "deferredmt-lrData", "gsm_map.lcs.deferredmt_lrData", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.Deferredmt_lrData", HFILL }}, + { &hf_gsm_map_lcs_pseudonymIndicator, + { "pseudonymIndicator", "gsm_map.lcs.pseudonymIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.NULL", HFILL }}, + { &hf_gsm_map_lcs_sequenceNumber, + { "sequenceNumber", "gsm_map.lcs.sequenceNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.SequenceNumber", HFILL }}, + { &hf_gsm_map_lcs_terminationCause, + { "terminationCause", "gsm_map.lcs.terminationCause", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_TerminationCause_vals), 0, + "gsm_map_lcs.TerminationCause", HFILL }}, + { &hf_gsm_map_lcs_DeferredLocationEventType_msAvailable, + { "msAvailable", "gsm_map.lcs.msAvailable", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_DeferredLocationEventType_enteringIntoArea, - { "enteringIntoArea", "gsm_map.enteringIntoArea", + { &hf_gsm_map_lcs_DeferredLocationEventType_enteringIntoArea, + { "enteringIntoArea", "gsm_map.lcs.enteringIntoArea", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_DeferredLocationEventType_leavingFromArea, - { "leavingFromArea", "gsm_map.leavingFromArea", + { &hf_gsm_map_lcs_DeferredLocationEventType_leavingFromArea, + { "leavingFromArea", "gsm_map.lcs.leavingFromArea", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_DeferredLocationEventType_beingInsideArea, - { "beingInsideArea", "gsm_map.beingInsideArea", + { &hf_gsm_map_lcs_DeferredLocationEventType_beingInsideArea, + { "beingInsideArea", "gsm_map.lcs.beingInsideArea", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_DeferredLocationEventType_periodicLDR, - { "periodicLDR", "gsm_map.periodicLDR", + { &hf_gsm_map_lcs_DeferredLocationEventType_periodicLDR, + { "periodicLDR", "gsm_map.lcs.periodicLDR", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_ellipsoidPoint, - { "ellipsoidPoint", "gsm_map.ellipsoidPoint", + { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPoint, + { "ellipsoidPoint", "gsm_map.lcs.ellipsoidPoint", FT_BOOLEAN, 8, NULL, 0x80, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, - { "ellipsoidPointWithUncertaintyCircle", "gsm_map.ellipsoidPointWithUncertaintyCircle", + { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle, + { "ellipsoidPointWithUncertaintyCircle", "gsm_map.lcs.ellipsoidPointWithUncertaintyCircle", FT_BOOLEAN, 8, NULL, 0x40, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, - { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.ellipsoidPointWithUncertaintyEllipse", + { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse, + { "ellipsoidPointWithUncertaintyEllipse", "gsm_map.lcs.ellipsoidPointWithUncertaintyEllipse", FT_BOOLEAN, 8, NULL, 0x20, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_polygon, - { "polygon", "gsm_map.polygon", + { &hf_gsm_map_lcs_SupportedGADShapes_polygon, + { "polygon", "gsm_map.lcs.polygon", FT_BOOLEAN, 8, NULL, 0x10, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitude, - { "ellipsoidPointWithAltitude", "gsm_map.ellipsoidPointWithAltitude", + { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitude, + { "ellipsoidPointWithAltitude", "gsm_map.lcs.ellipsoidPointWithAltitude", FT_BOOLEAN, 8, NULL, 0x08, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, - { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.ellipsoidPointWithAltitudeAndUncertaintyElipsoid", + { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid, + { "ellipsoidPointWithAltitudeAndUncertaintyElipsoid", "gsm_map.lcs.ellipsoidPointWithAltitudeAndUncertaintyElipsoid", FT_BOOLEAN, 8, NULL, 0x04, "", HFILL }}, - { &hf_gsm_map_SupportedGADShapes_ellipsoidArc, - { "ellipsoidArc", "gsm_map.ellipsoidArc", + { &hf_gsm_map_lcs_SupportedGADShapes_ellipsoidArc, + { "ellipsoidArc", "gsm_map.lcs.ellipsoidArc", FT_BOOLEAN, 8, NULL, 0x02, "", HFILL }}, +/* --- Module MAP-GR-DataTypes --- --- --- */ + + { &hf_gsm_map_gr_teleservice, + { "teleservice", "gsm_map.gr.teleservice", + FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0, + "gsm_map.Ext_TeleserviceCode", HFILL }}, + { &hf_gsm_map_gr_asciCallReference, + { "asciCallReference", "gsm_map.gr.asciCallReference", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ASCI_CallReference", HFILL }}, + { &hf_gsm_map_gr_codec_Info, + { "codec-Info", "gsm_map.gr.codec_Info", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_gr.CODEC_Info", HFILL }}, + { &hf_gsm_map_gr_cipheringAlgorithm, + { "cipheringAlgorithm", "gsm_map.gr.cipheringAlgorithm", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_gr.CipheringAlgorithm", HFILL }}, + { &hf_gsm_map_gr_groupKeyNumber_Vk_Id, + { "groupKeyNumber-Vk-Id", "gsm_map.gr.groupKeyNumber_Vk_Id", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_gr.GroupKeyNumber", HFILL }}, + { &hf_gsm_map_gr_groupKey, + { "groupKey", "gsm_map.gr.groupKey", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Kc", HFILL }}, + { &hf_gsm_map_gr_priority, + { "priority", "gsm_map.gr.priority", + FT_UINT32, BASE_DEC, VALS(gsm_map_EMLPP_Priority_vals), 0, + "gsm_map.EMLPP_Priority", HFILL }}, + { &hf_gsm_map_gr_uplinkFree, + { "uplinkFree", "gsm_map.gr.uplinkFree", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_extensionContainer, + { "extensionContainer", "gsm_map.gr.extensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_gr_vstk, + { "vstk", "gsm_map.gr.vstk", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_gr.VSTK", HFILL }}, + { &hf_gsm_map_gr_vstk_rand, + { "vstk-rand", "gsm_map.gr.vstk_rand", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_gr.VSTK_RAND", HFILL }}, + { &hf_gsm_map_gr_groupCallNumber, + { "groupCallNumber", "gsm_map.gr.groupCallNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_gr_imsi, + { "imsi", "gsm_map.gr.imsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_map_gr_talkerPriority, + { "talkerPriority", "gsm_map.gr.talkerPriority", + FT_UINT32, BASE_DEC, VALS(gsm_map_gr_TalkerPriority_vals), 0, + "gsm_map_gr.TalkerPriority", HFILL }}, + { &hf_gsm_map_gr_additionalInfo, + { "additionalInfo", "gsm_map.gr.additionalInfo", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.AdditionalInfo", HFILL }}, + { &hf_gsm_map_gr_uplinkRequestAck, + { "uplinkRequestAck", "gsm_map.gr.uplinkRequestAck", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_uplinkReleaseIndication, + { "uplinkReleaseIndication", "gsm_map.gr.uplinkReleaseIndication", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_uplinkRejectCommand, + { "uplinkRejectCommand", "gsm_map.gr.uplinkRejectCommand", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_uplinkSeizedCommand, + { "uplinkSeizedCommand", "gsm_map.gr.uplinkSeizedCommand", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_uplinkReleaseCommand, + { "uplinkReleaseCommand", "gsm_map.gr.uplinkReleaseCommand", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_stateAttributes, + { "stateAttributes", "gsm_map.gr.stateAttributes", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.StateAttributes", HFILL }}, + { &hf_gsm_map_gr_emergencyModeResetCommandFlag, + { "emergencyModeResetCommandFlag", "gsm_map.gr.emergencyModeResetCommandFlag", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_sm_RP_UI, + { "sm-RP-UI", "gsm_map.gr.sm_RP_UI", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.SignalInfo", HFILL }}, + { &hf_gsm_map_gr_notificationData, + { "notificationData", "gsm_map.gr.notificationData", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.SignalInfo", HFILL }}, + { &hf_gsm_map_gr_uplinkRequest, + { "uplinkRequest", "gsm_map.gr.uplinkRequest", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_releaseGroupCall, + { "releaseGroupCall", "gsm_map.gr.releaseGroupCall", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_downlinkAttached, + { "downlinkAttached", "gsm_map.gr.downlinkAttached", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_uplinkAttached, + { "uplinkAttached", "gsm_map.gr.uplinkAttached", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_dualCommunication, + { "dualCommunication", "gsm_map.gr.dualCommunication", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_callOriginator, + { "callOriginator", "gsm_map.gr.callOriginator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_gr.NULL", HFILL }}, + { &hf_gsm_map_gr_requestedInfo, + { "requestedInfo", "gsm_map.gr.requestedInfo", + FT_UINT32, BASE_DEC, VALS(gsm_map_gr_RequestedInfo_vals), 0, + "gsm_map_gr.RequestedInfo", HFILL }}, + { &hf_gsm_map_gr_groupId, + { "groupId", "gsm_map.gr.groupId", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Long_GroupId", HFILL }}, + { &hf_gsm_map_gr_cellId, + { "cellId", "gsm_map.gr.cellId", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.GlobalCellId", HFILL }}, + { &hf_gsm_map_gr_tmsi, + { "tmsi", "gsm_map.gr.tmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.TMSI", HFILL }}, + { &hf_gsm_map_gr_cksn, + { "cksn", "gsm_map.gr.cksn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Cksn", HFILL }}, + { &hf_gsm_map_gr_anchorMSC_Address, + { "anchorMSC-Address", "gsm_map.gr.anchorMSC_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_map_gr_additionalSubscriptions, + { "additionalSubscriptions", "gsm_map.gr.additionalSubscriptions", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.AdditionalSubscriptions", HFILL }}, + { &hf_gsm_map_gr_kc, + { "kc", "gsm_map.gr.kc", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.Kc", HFILL }}, + +/* --- Module MAP-DialogueInformation --- --- --- */ + + { &hf_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, + "gsm_map_dialogue.MAP_DialoguePDU", HFILL }}, + { &hf_gsm_map_dialogue_map_open, + { "map-open", "gsm_map.dialogue.map_open", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.MAP_OpenInfo", HFILL }}, + { &hf_gsm_map_dialogue_map_accept, + { "map-accept", "gsm_map.dialogue.map_accept", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.MAP_AcceptInfo", HFILL }}, + { &hf_gsm_map_dialogue_map_close, + { "map-close", "gsm_map.dialogue.map_close", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.MAP_CloseInfo", HFILL }}, + { &hf_gsm_map_dialogue_map_refuse, + { "map-refuse", "gsm_map.dialogue.map_refuse", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.MAP_RefuseInfo", HFILL }}, + { &hf_gsm_map_dialogue_map_userAbort, + { "map-userAbort", "gsm_map.dialogue.map_userAbort", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.MAP_UserAbortInfo", HFILL }}, + { &hf_gsm_map_dialogue_map_providerAbort, + { "map-providerAbort", "gsm_map.dialogue.map_providerAbort", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.MAP_ProviderAbortInfo", HFILL }}, + { &hf_gsm_map_dialogue_destinationReference, + { "destinationReference", "gsm_map.dialogue.destinationReference", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_dialogue_originationReference, + { "originationReference", "gsm_map.dialogue.originationReference", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_map_dialogue_extensionContainer, + { "extensionContainer", "gsm_map.dialogue.extensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_map_dialogue_reason, + { "reason", "gsm_map.dialogue.reason", + FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_Reason_vals), 0, + "gsm_map_dialogue.Reason", HFILL }}, + { &hf_gsm_map_dialogue_alternativeApplicationContext, + { "alternativeApplicationContext", "gsm_map.dialogue.alternativeApplicationContext", + FT_OID, BASE_NONE, NULL, 0, + "gsm_map_dialogue.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, + "gsm_map_dialogue.MAP_UserAbortChoice", HFILL }}, + { &hf_gsm_map_dialogue_userSpecificReason, + { "userSpecificReason", "gsm_map.dialogue.userSpecificReason", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.NULL", HFILL }}, + { &hf_gsm_map_dialogue_userResourceLimitation, + { "userResourceLimitation", "gsm_map.dialogue.userResourceLimitation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_dialogue.NULL", HFILL }}, + { &hf_gsm_map_dialogue_resourceUnavailable, + { "resourceUnavailable", "gsm_map.dialogue.resourceUnavailable", + FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ResourceUnavailableReason_vals), 0, + "gsm_map_dialogue.ResourceUnavailableReason", HFILL }}, + { &hf_gsm_map_dialogue_applicationProcedureCancellation, + { "applicationProcedureCancellation", "gsm_map.dialogue.applicationProcedureCancellation", + FT_UINT32, BASE_DEC, VALS(gsm_map_dialogue_ProcedureCancellationReason_vals), 0, + "gsm_map_dialogue.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, + "gsm_map_dialogue.MAP_ProviderAbortReason", HFILL }}, + +/* --- Module DummyMAP --- --- --- */ + + { &hf_gsm_old_Component_PDU, + { "Component", "gsm_old.Component", + FT_UINT32, BASE_DEC, VALS(gsm_old_Component_vals), 0, + "gsm_old.Component", HFILL }}, + { &hf_gsm_old_invoke, + { "invoke", "gsm_old.invoke", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.Invoke", HFILL }}, + { &hf_gsm_old_returnResultLast, + { "returnResultLast", "gsm_old.returnResultLast", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.ReturnResult", HFILL }}, + { &hf_gsm_old_returnError, + { "returnError", "gsm_old.returnError", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.ReturnError", HFILL }}, + { &hf_gsm_old_reject, + { "reject", "gsm_old.reject", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.Reject", HFILL }}, + { &hf_gsm_old_returnResultNotLast, + { "returnResultNotLast", "gsm_old.returnResultNotLast", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.ReturnResult", HFILL }}, + { &hf_gsm_old_invokeID, + { "invokeID", "gsm_old.invokeID", + FT_INT32, BASE_DEC, NULL, 0, + "gsm_old.InvokeIdType", HFILL }}, + { &hf_gsm_old_linkedID, + { "linkedID", "gsm_old.linkedID", + FT_INT32, BASE_DEC, NULL, 0, + "gsm_old.InvokeIdType", HFILL }}, + { &hf_gsm_old_opCode, + { "opCode", "gsm_old.opCode", + FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_OPERATION_vals), 0, + "gsm_old.MAP_OPERATION", HFILL }}, + { &hf_gsm_old_invokeparameter, + { "invokeparameter", "gsm_old.invokeparameter", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.InvokeParameter", HFILL }}, + { &hf_gsm_old_resultretres, + { "resultretres", "gsm_old.resultretres", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.T_resultretres", HFILL }}, + { &hf_gsm_old_returnparameter, + { "returnparameter", "gsm_old.returnparameter", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.ReturnResultParameter", HFILL }}, + { &hf_gsm_old_errorCode, + { "errorCode", "gsm_old.errorCode", + FT_UINT32, BASE_DEC, VALS(gsm_old_MAP_ERROR_vals), 0, + "gsm_old.MAP_ERROR", HFILL }}, + { &hf_gsm_old_parameter, + { "parameter", "gsm_old.parameter", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.ReturnErrorParameter", HFILL }}, + { &hf_gsm_old_invokeIDRej, + { "invokeIDRej", "gsm_old.invokeIDRej", + FT_UINT32, BASE_DEC, VALS(gsm_old_T_invokeIDRej_vals), 0, + "gsm_old.T_invokeIDRej", HFILL }}, + { &hf_gsm_old_derivable, + { "derivable", "gsm_old.derivable", + FT_INT32, BASE_DEC, NULL, 0, + "gsm_old.InvokeIdType", HFILL }}, + { &hf_gsm_old_not_derivable, + { "not-derivable", "gsm_old.not_derivable", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.NULL", HFILL }}, + { &hf_gsm_old_problem, + { "problem", "gsm_old.problem", + FT_UINT32, BASE_DEC, VALS(gsm_old_T_problem_vals), 0, + "gsm_old.T_problem", HFILL }}, + { &hf_gsm_old_generalProblem, + { "generalProblem", "gsm_old.generalProblem", + FT_INT32, BASE_DEC, VALS(gsm_old_GeneralProblem_vals), 0, + "gsm_old.GeneralProblem", HFILL }}, + { &hf_gsm_old_invokeProblem, + { "invokeProblem", "gsm_old.invokeProblem", + FT_INT32, BASE_DEC, VALS(gsm_old_InvokeProblem_vals), 0, + "gsm_old.InvokeProblem", HFILL }}, + { &hf_gsm_old_returnResultProblem, + { "returnResultProblem", "gsm_old.returnResultProblem", + FT_INT32, BASE_DEC, VALS(gsm_old_ReturnResultProblem_vals), 0, + "gsm_old.ReturnResultProblem", HFILL }}, + { &hf_gsm_old_returnErrorProblem, + { "returnErrorProblem", "gsm_old.returnErrorProblem", + FT_INT32, BASE_DEC, VALS(gsm_old_ReturnErrorProblem_vals), 0, + "gsm_old.ReturnErrorProblem", HFILL }}, + { &hf_gsm_old_localValue, + { "localValue", "gsm_old.localValue", + FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPOperationLocalvalue_vals), 0, + "gsm_old.OperationLocalvalue", HFILL }}, + { &hf_gsm_old_globalValue, + { "globalValue", "gsm_old.globalValue", + FT_OID, BASE_NONE, NULL, 0, + "gsm_old.OBJECT_IDENTIFIER", HFILL }}, + { &hf_gsm_old_localValue_01, + { "localValue", "gsm_old.localValue", + FT_INT32, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0, + "gsm_old.LocalErrorcode", HFILL }}, + { &hf_gsm_old_protocolId, + { "protocolId", "gsm_old.protocolId", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ProtocolId", HFILL }}, + { &hf_gsm_old_signalInfo, + { "signalInfo", "gsm_old.signalInfo", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.SignalInfo", HFILL }}, + { &hf_gsm_old_extensionContainer, + { "extensionContainer", "gsm_old.extensionContainer", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExtensionContainer", HFILL }}, + { &hf_gsm_old_imsi, + { "imsi", "gsm_old.imsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.IMSI", HFILL }}, + { &hf_gsm_old_imsi_WithLMSI, + { "imsi-WithLMSI", "gsm_old.imsi_WithLMSI", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.IMSI_WithLMSI", HFILL }}, + { &hf_gsm_old_gsm_BearerCapability, + { "gsm-BearerCapability", "gsm_old.gsm_BearerCapability", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_old_isdn_BearerCapability, + { "isdn-BearerCapability", "gsm_old.isdn_BearerCapability", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_old_call_Direction, + { "call-Direction", "gsm_old.call_Direction", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.CallDirection", HFILL }}, + { &hf_gsm_old_b_Subscriber_Address, + { "b-Subscriber-Address", "gsm_old.b_Subscriber_Address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_old_chosenChannel, + { "chosenChannel", "gsm_old.chosenChannel", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_old_lowerLayerCompatibility, + { "lowerLayerCompatibility", "gsm_old.lowerLayerCompatibility", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_old_highLayerCompatibility, + { "highLayerCompatibility", "gsm_old.highLayerCompatibility", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_old_sIWFSNumber, + { "sIWFSNumber", "gsm_old.sIWFSNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_old_vlr_Number, + { "vlr-Number", "gsm_old.vlr_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_old_targetCellId, + { "targetCellId", "gsm_old.targetCellId", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.GlobalCellId", HFILL }}, + { &hf_gsm_old_ho_NumberNotRequired, + { "ho-NumberNotRequired", "gsm_old.ho_NumberNotRequired", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.NULL", HFILL }}, + { &hf_gsm_old_bss_APDU, + { "bss-APDU", "gsm_old.bss_APDU", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.Bss_APDU", HFILL }}, + { &hf_gsm_old_handoverNumber, + { "handoverNumber", "gsm_old.handoverNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_old_SendAuthenticationInfoResOld_item, + { "Item", "gsm_old.SendAuthenticationInfoResOld_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.SendAuthenticationInfoResOld_item", HFILL }}, + { &hf_gsm_old_rand, + { "rand", "gsm_old.rand", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.RAND", HFILL }}, + { &hf_gsm_old_sres, + { "sres", "gsm_old.sres", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.SRES", HFILL }}, + { &hf_gsm_old_kc, + { "kc", "gsm_old.kc", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.Kc", HFILL }}, + { &hf_gsm_old_tripletList, + { "tripletList", "gsm_old.tripletList", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_old.TripletListold", HFILL }}, + { &hf_gsm_old_TripletListold_item, + { "Item", "gsm_old.TripletListold_item", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.AuthenticationTriplet_v2", HFILL }}, + { &hf_gsm_old_channelType, + { "channelType", "gsm_old.channelType", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.ExternalSignalInfo", HFILL }}, + { &hf_gsm_old_securityHeader, + { "securityHeader", "gsm_old.securityHeader", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.SecurityHeader", HFILL }}, + { &hf_gsm_old_protectedPayload, + { "protectedPayload", "gsm_old.protectedPayload", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.ProtectedPayload", HFILL }}, + { &hf_gsm_old_securityParametersIndex, + { "securityParametersIndex", "gsm_old.securityParametersIndex", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.SecurityParametersIndex", HFILL }}, + { &hf_gsm_old_originalComponentIdentifier, + { "originalComponentIdentifier", "gsm_old.originalComponentIdentifier", + FT_UINT32, BASE_DEC, VALS(gsm_old_OriginalComponentIdentifier_vals), 0, + "gsm_old.OriginalComponentIdentifier", HFILL }}, + { &hf_gsm_old_initialisationVector, + { "initialisationVector", "gsm_old.initialisationVector", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.InitialisationVector", HFILL }}, + { &hf_gsm_old_operationCode, + { "operationCode", "gsm_old.operationCode", + FT_UINT32, BASE_DEC, VALS(gsm_old_OperationCode_vals), 0, + "gsm_old.OperationCode", HFILL }}, + { &hf_gsm_old_errorCode_01, + { "errorCode", "gsm_old.errorCode", + FT_UINT32, BASE_DEC, VALS(gsm_old_ErrorCode_vals), 0, + "gsm_old.ErrorCode", HFILL }}, + { &hf_gsm_old_userInfo, + { "userInfo", "gsm_old.userInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.NULL", HFILL }}, + { &hf_gsm_old_localValue_02, + { "localValue", "gsm_old.localValue", + FT_INT32, BASE_DEC, NULL, 0, + "gsm_old.INTEGER", HFILL }}, + { &hf_gsm_old_msisdn, + { "msisdn", "gsm_old.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_old_category, + { "category", "gsm_old.category", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.Category", HFILL }}, + { &hf_gsm_old_basicService, + { "basicService", "gsm_old.basicService", + FT_UINT32, BASE_DEC, VALS(gsm_map_BasicServiceCode_vals), 0, + "gsm_map.BasicServiceCode", HFILL }}, + { &hf_gsm_old_operatorSS_Code, + { "operatorSS-Code", "gsm_old.operatorSS_Code", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_old.T_operatorSS_Code", HFILL }}, + { &hf_gsm_old_operatorSS_Code_item, + { "Item", "gsm_old.operatorSS_Code_item", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.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, + "gsm_old.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, + "gsm_old.SM_RP_OAold", HFILL }}, + { &hf_gsm_old_sm_RP_UI, + { "sm-RP-UI", "gsm_old.sm_RP_UI", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.SignalInfo", HFILL }}, + { &hf_gsm_old_moreMessagesToSend, + { "moreMessagesToSend", "gsm_old.moreMessagesToSend", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.NULL", HFILL }}, + { &hf_gsm_old_lmsi, + { "lmsi", "gsm_old.lmsi", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.LMSI", HFILL }}, + { &hf_gsm_old_serviceCentreAddressDA, + { "serviceCentreAddressDA", "gsm_old.serviceCentreAddressDA", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_old_noSM_RP_DA, + { "noSM-RP-DA", "gsm_old.noSM_RP_DA", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.NULL", HFILL }}, + { &hf_gsm_old_msisdn_01, + { "msisdn", "gsm_old.msisdn", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.T_msisdn", HFILL }}, + { &hf_gsm_old_serviceCentreAddressOA, + { "serviceCentreAddressOA", "gsm_old.serviceCentreAddressOA", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_old.T_serviceCentreAddressOA", HFILL }}, + { &hf_gsm_old_noSM_RP_OA, + { "noSM-RP-OA", "gsm_old.noSM_RP_OA", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_old.NULL", HFILL }}, + +/* --- Module SS-DataTypes --- --- --- */ + + { &hf_gsm_ss_ss_Code, + { "ss-Code", "gsm_ss.ss_Code", + FT_UINT8, BASE_DEC, VALS(ssCode_vals), 0, + "gsm_map.SS_Code", HFILL }}, + { &hf_gsm_ss_ss_Status, + { "ss-Status", "gsm_ss.ss_Status", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.SS_Status", HFILL }}, + { &hf_gsm_ss_ss_Notification, + { "ss-Notification", "gsm_ss.ss_Notification", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_ss.SS_Notification", HFILL }}, + { &hf_gsm_ss_callIsWaiting_Indicator, + { "callIsWaiting-Indicator", "gsm_ss.callIsWaiting_Indicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_callOnHold_Indicator, + { "callOnHold-Indicator", "gsm_ss.callOnHold_Indicator", + FT_UINT32, BASE_DEC, VALS(gsm_ss_CallOnHold_Indicator_vals), 0, + "gsm_ss.CallOnHold_Indicator", HFILL }}, + { &hf_gsm_ss_mpty_Indicator, + { "mpty-Indicator", "gsm_ss.mpty_Indicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_cug_Index, + { "cug-Index", "gsm_ss.cug_Index", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_ms.CUG_Index", HFILL }}, + { &hf_gsm_ss_clirSuppressionRejected, + { "clirSuppressionRejected", "gsm_ss.clirSuppressionRejected", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_ect_Indicator, + { "ect-Indicator", "gsm_ss.ect_Indicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.ECT_Indicator", HFILL }}, + { &hf_gsm_ss_nameIndicator, + { "nameIndicator", "gsm_ss.nameIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NameIndicator", HFILL }}, + { &hf_gsm_ss_ccbs_Feature, + { "ccbs-Feature", "gsm_ss.ccbs_Feature", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_ss.CCBS_Feature", HFILL }}, + { &hf_gsm_ss_alertingPattern, + { "alertingPattern", "gsm_ss.alertingPattern", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AlertingPattern", HFILL }}, + { &hf_gsm_ss_multicall_Indicator, + { "multicall-Indicator", "gsm_ss.multicall_Indicator", + FT_UINT32, BASE_DEC, VALS(gsm_ss_Multicall_Indicator_vals), 0, + "gsm_ss.Multicall_Indicator", HFILL }}, + { &hf_gsm_ss_chargingInformation, + { "chargingInformation", "gsm_ss.chargingInformation", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.ChargingInformation", HFILL }}, + { &hf_gsm_ss_e1, + { "e1", "gsm_ss.e1", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E1", HFILL }}, + { &hf_gsm_ss_e2, + { "e2", "gsm_ss.e2", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E2", HFILL }}, + { &hf_gsm_ss_e3, + { "e3", "gsm_ss.e3", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E3", HFILL }}, + { &hf_gsm_ss_e4, + { "e4", "gsm_ss.e4", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E4", HFILL }}, + { &hf_gsm_ss_e5, + { "e5", "gsm_ss.e5", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E5", HFILL }}, + { &hf_gsm_ss_e6, + { "e6", "gsm_ss.e6", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E6", HFILL }}, + { &hf_gsm_ss_e7, + { "e7", "gsm_ss.e7", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_ss.E7", HFILL }}, + { &hf_gsm_ss_suppressPrefCUG, + { "suppressPrefCUG", "gsm_ss.suppressPrefCUG", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_suppressOA, + { "suppressOA", "gsm_ss.suppressOA", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_ect_CallState, + { "ect-CallState", "gsm_ss.ect_CallState", + FT_UINT32, BASE_DEC, VALS(gsm_ss_ECT_CallState_vals), 0, + "gsm_ss.ECT_CallState", HFILL }}, + { &hf_gsm_ss_rdn, + { "rdn", "gsm_ss.rdn", + FT_UINT32, BASE_DEC, VALS(gsm_ss_RDN_vals), 0, + "gsm_ss.RDN", HFILL }}, + { &hf_gsm_ss_callingName, + { "callingName", "gsm_ss.callingName", + FT_UINT32, BASE_DEC, VALS(gsm_ss_Name_vals), 0, + "gsm_ss.Name", HFILL }}, + { &hf_gsm_ss_namePresentationAllowed, + { "namePresentationAllowed", "gsm_ss.namePresentationAllowed", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NameSet", HFILL }}, + { &hf_gsm_ss_presentationRestricted, + { "presentationRestricted", "gsm_ss.presentationRestricted", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_nameUnavailable, + { "nameUnavailable", "gsm_ss.nameUnavailable", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_namePresentationRestricted, + { "namePresentationRestricted", "gsm_ss.namePresentationRestricted", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NameSet", HFILL }}, + { &hf_gsm_ss_dataCodingScheme, + { "dataCodingScheme", "gsm_ss.dataCodingScheme", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.USSD_DataCodingScheme", HFILL }}, + { &hf_gsm_ss_lengthInCharacters, + { "lengthInCharacters", "gsm_ss.lengthInCharacters", + FT_INT32, BASE_DEC, NULL, 0, + "gsm_ss.INTEGER", HFILL }}, + { &hf_gsm_ss_nameString, + { "nameString", "gsm_ss.nameString", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ss.USSD_String", HFILL }}, + { &hf_gsm_ss_presentationAllowedAddress, + { "presentationAllowedAddress", "gsm_ss.presentationAllowedAddress", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.RemotePartyNumber", HFILL }}, + { &hf_gsm_ss_numberNotAvailableDueToInterworking, + { "numberNotAvailableDueToInterworking", "gsm_ss.numberNotAvailableDueToInterworking", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_presentationRestrictedAddress, + { "presentationRestrictedAddress", "gsm_ss.presentationRestrictedAddress", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.RemotePartyNumber", HFILL }}, + { &hf_gsm_ss_partyNumber, + { "partyNumber", "gsm_ss.partyNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_ss_partyNumberSubaddress, + { "partyNumberSubaddress", "gsm_ss.partyNumberSubaddress", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_SubaddressString", HFILL }}, + { &hf_gsm_ss_deflectedToNumber, + { "deflectedToNumber", "gsm_ss.deflectedToNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.AddressString", HFILL }}, + { &hf_gsm_ss_deflectedToSubaddress, + { "deflectedToSubaddress", "gsm_ss.deflectedToSubaddress", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.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, + "gsm_ss.UUS_Service", HFILL }}, + { &hf_gsm_ss_uUS_Required, + { "uUS-Required", "gsm_ss.uUS_Required", + FT_BOOLEAN, 8, NULL, 0, + "gsm_ss.BOOLEAN", HFILL }}, + { &hf_gsm_ss_notificationType, + { "notificationType", "gsm_ss.notificationType", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0, + "gsm_map_ms.NotificationToMSUser", HFILL }}, + { &hf_gsm_ss_locationType, + { "locationType", "gsm_ss.locationType", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LocationType", HFILL }}, + { &hf_gsm_ss_lcsClientExternalID, + { "lcsClientExternalID", "gsm_ss.lcsClientExternalID", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map.LCSClientExternalID", HFILL }}, + { &hf_gsm_ss_lcsClientName, + { "lcsClientName", "gsm_ss.lcsClientName", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSClientName", HFILL }}, + { &hf_gsm_ss_lcsRequestorID, + { "lcsRequestorID", "gsm_ss.lcsRequestorID", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSRequestorID", HFILL }}, + { &hf_gsm_ss_lcsCodeword, + { "lcsCodeword", "gsm_ss.lcsCodeword", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCSCodeword", HFILL }}, + { &hf_gsm_ss_lcsServiceTypeID, + { "lcsServiceTypeID", "gsm_ss.lcsServiceTypeID", + FT_UINT32, BASE_DEC, VALS(gsm_map_LCSServiceTypeID_vals), 0, + "gsm_map.LCSServiceTypeID", HFILL }}, + { &hf_gsm_ss_verificationResponse, + { "verificationResponse", "gsm_ss.verificationResponse", + FT_UINT32, BASE_DEC, VALS(gsm_ss_VerificationResponse_vals), 0, + "gsm_ss.VerificationResponse", HFILL }}, + { &hf_gsm_ss_molr_Type, + { "molr-Type", "gsm_ss.molr_Type", + FT_UINT32, BASE_DEC, VALS(gsm_ss_MOLR_Type_vals), 0, + "gsm_ss.MOLR_Type", HFILL }}, + { &hf_gsm_ss_locationMethod, + { "locationMethod", "gsm_ss.locationMethod", + FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0, + "gsm_ss.LocationMethod", HFILL }}, + { &hf_gsm_ss_lcs_QoS, + { "lcs-QoS", "gsm_ss.lcs_QoS", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCS_QoS", HFILL }}, + { &hf_gsm_ss_mlc_Number, + { "mlc-Number", "gsm_ss.mlc_Number", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map.ISDN_AddressString", HFILL }}, + { &hf_gsm_ss_gpsAssistanceData, + { "gpsAssistanceData", "gsm_ss.gpsAssistanceData", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_ss.GPSAssistanceData", HFILL }}, + { &hf_gsm_ss_supportedGADShapes, + { "supportedGADShapes", "gsm_ss.supportedGADShapes", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.SupportedGADShapes", HFILL }}, + { &hf_gsm_ss_ageOfLocationInfo, + { "ageOfLocationInfo", "gsm_ss.ageOfLocationInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map.AgeOfLocationInformation", HFILL }}, + { &hf_gsm_ss_pseudonymIndicator, + { "pseudonymIndicator", "gsm_ss.pseudonymIndicator", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_h_gmlc_address, + { "h-gmlc-address", "gsm_ss.h_gmlc_address", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_ms.GSN_Address", HFILL }}, + { &hf_gsm_ss_locationEstimate, + { "locationEstimate", "gsm_ss.locationEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.Ext_GeographicalInformation", HFILL }}, + { &hf_gsm_ss_velocityEstimate, + { "velocityEstimate", "gsm_ss.velocityEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.VelocityEstimate", HFILL }}, + { &hf_gsm_ss_referenceNumber, + { "referenceNumber", "gsm_ss.referenceNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.LCS_ReferenceNumber", HFILL }}, + { &hf_gsm_ss_periodicLDRInfo, + { "periodicLDRInfo", "gsm_ss.periodicLDRInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.PeriodicLDRInfo", HFILL }}, + { &hf_gsm_ss_locationUpdateRequest, + { "locationUpdateRequest", "gsm_ss.locationUpdateRequest", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_sequenceNumber, + { "sequenceNumber", "gsm_ss.sequenceNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "gsm_map_lcs.SequenceNumber", HFILL }}, + { &hf_gsm_ss_terminationCause, + { "terminationCause", "gsm_ss.terminationCause", + FT_UINT32, BASE_DEC, VALS(gsm_ss_TerminationCause_vals), 0, + "gsm_ss.TerminationCause", HFILL }}, + { &hf_gsm_ss_mo_lrShortCircuit, + { "mo-lrShortCircuit", "gsm_ss.mo_lrShortCircuit", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_ss.NULL", HFILL }}, + { &hf_gsm_ss_decipheringKeys, + { "decipheringKeys", "gsm_ss.decipheringKeys", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_ss.DecipheringKeys", HFILL }}, + { &hf_gsm_ss_add_LocationEstimate, + { "add-LocationEstimate", "gsm_ss.add_LocationEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.Add_GeographicalInformation", HFILL }}, + { &hf_gsm_ss_reportingPLMNList, + { "reportingPLMNList", "gsm_ss.reportingPLMNList", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.ReportingPLMNList", HFILL }}, + { &hf_gsm_ss_deferredLocationEventType, + { "deferredLocationEventType", "gsm_ss.deferredLocationEventType", + FT_BYTES, BASE_HEX, NULL, 0, + "gsm_map_lcs.DeferredLocationEventType", HFILL }}, + { &hf_gsm_ss_areaEventInfo, + { "areaEventInfo", "gsm_ss.areaEventInfo", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.AreaEventInfo", HFILL }}, + { &hf_gsm_ss_qoS, + { "qoS", "gsm_ss.qoS", + FT_NONE, BASE_NONE, NULL, 0, + "gsm_map_lcs.LCS_QoS", HFILL }}, + /*--- End of included file: packet-gsm_map-hfarr.c ---*/ -#line 2287 "packet-gsm_map-template.c" +#line 2391 "packet-gsm_map-template.c" }; /* List of subtrees */ @@ -21196,438 +21643,564 @@ void proto_register_gsm_map(void) { /*--- Included file: packet-gsm_map-ettarr.c ---*/ #line 1 "packet-gsm_map-ettarr.c" - &ett_gsm_map_Component, - &ett_gsm_map_Invoke, - &ett_gsm_map_ReturnResult, - &ett_gsm_map_T_resultretres, - &ett_gsm_map_ReturnError, - &ett_gsm_map_Reject, - &ett_gsm_map_T_invokeIDRej, - &ett_gsm_map_T_problem, - &ett_gsm_map_OPERATION, - &ett_gsm_map_ERROR, - &ett_gsm_map_Bss_APDU, - &ett_gsm_map_SupportedCamelPhases, - &ett_gsm_map_UpdateLocationArg, - &ett_gsm_map_UpdateLocationRes, - &ett_gsm_map_VLR_Capability, - &ett_gsm_map_SupportedRAT_Types, - &ett_gsm_map_SuperChargerInfo, - &ett_gsm_map_SupportedLCS_CapabilitySets, - &ett_gsm_map_ADD_Info, + +/* --- Module Remote-Operations-Information-Objects --- --- --- */ + + &ett_Remote_Operations_Information_Objects_Code, + +/* --- Module MobileDomainDefinitions --- --- --- */ + + +/* --- Module MAP-ApplicationContexts --- --- --- */ + + +/* --- Module MAP-SS-Code --- --- --- */ + + +/* --- Module MAP-BS-Code --- --- --- */ + + +/* --- Module MAP-TS-Code --- --- --- */ + + +/* --- Module MAP-ExtensionDataTypes --- --- --- */ + + &ett_gsm_map_ExtensionContainer, + &ett_gsm_map_SLR_ArgExtensionContainer, &ett_gsm_map_PrivateExtensionList, &ett_gsm_map_PrivateExtension, - &ett_gsm_map_SLR_ArgExtensionContainer, - &ett_gsm_map_PcsExtensions, + &ett_gsm_map_PCS_Extensions, &ett_gsm_map_SLR_Arg_PCS_Extensions, - &ett_gsm_map_CancelLocationArg, - &ett_gsm_map_CancelLocationArgV2, - &ett_gsm_map_CancelLocationRes, - &ett_gsm_map_PurgeMSArg, - &ett_gsm_map_PurgeMSArgV2, - &ett_gsm_map_PurgeMSRes, - &ett_gsm_map_SendIdentificationArg, - &ett_gsm_map_SendIdentificationRes, - &ett_gsm_map_SendIdentificationResV2, - &ett_gsm_map_AuthenticationSetList, - &ett_gsm_map_TripletList, - &ett_gsm_map_QuintupletList, - &ett_gsm_map_AuthenticationTriplet, - &ett_gsm_map_AuthenticationQuintuplet, - &ett_gsm_map_CurrentSecurityContext, - &ett_gsm_map_GSM_SecurityContextData, - &ett_gsm_map_UMTS_SecurityContextData, - &ett_gsm_map_PrepareHO_Arg, - &ett_gsm_map_PrepareHO_ArgV3, - &ett_gsm_map_BSSMAP_ServiceHandoverList, - &ett_gsm_map_BSSMAP_ServiceHandoverInfo, - &ett_gsm_map_RadioResourceList, - &ett_gsm_map_RadioResource, - &ett_gsm_map_PrepareHO_Res, - &ett_gsm_map_PrepareHO_ResV3, - &ett_gsm_map_SelectedUMTS_Algorithms, - &ett_gsm_map_ChosenRadioResourceInformation, - &ett_gsm_map_SendEndSignalArgV3, - &ett_gsm_map_SendEndSignalRes, - &ett_gsm_map_RelocationNumberList, - &ett_gsm_map_RelocationNumber, - &ett_gsm_map_ProcessAccessSignallingArgV3, - &ett_gsm_map_SupportedCodecsList, - &ett_gsm_map_CodecList, - &ett_gsm_map_ForwardAccessSignallingArgV3, - &ett_gsm_map_AllowedUMTS_Algorithms, - &ett_gsm_map_PrepareSubsequentHOArg, - &ett_gsm_map_PrepareSubsequentHOArgV3, - &ett_gsm_map_PrepareSubsequentHOResV3, - &ett_gsm_map_SendAuthenticationInfoArgV2, - &ett_gsm_map_SendAuthenticationInfoRes, - &ett_gsm_map_SendAuthenticationInfoRes_item, - &ett_gsm_map_SendAuthenticationInfoResV3, - &ett_gsm_map_Re_synchronisationInfo, - &ett_gsm_map_CheckIMEIArgV3, - &ett_gsm_map_CheckIMEIRes, - &ett_gsm_map_RequestedEquipmentInfo, - &ett_gsm_map_UESBI_Iu, - &ett_gsm_map_BasicServiceGroupList, - &ett_gsm_map_ODB_GeneralData, - &ett_gsm_map_ODB_HPLMN_Data, - &ett_gsm_map_O_CSI, - &ett_gsm_map_O_BcsmCamelTDPDataList, - &ett_gsm_map_O_BcsmCamelTDPData, - &ett_gsm_map_InsertSubscriberDataArg, - &ett_gsm_map_AccessRestrictionData, - &ett_gsm_map_LCSInformation, - &ett_gsm_map_GMLC_List, - &ett_gsm_map_GPRSDataList, - &ett_gsm_map_PDP_Context, - &ett_gsm_map_GPRSSubscriptionData, - &ett_gsm_map_SGSN_CAMEL_SubscriptionInfo, - &ett_gsm_map_GPRS_CSI, - &ett_gsm_map_GPRS_CamelTDPDataList, - &ett_gsm_map_GPRS_CamelTDPData, - &ett_gsm_map_LSADataList, - &ett_gsm_map_LSAData, - &ett_gsm_map_LSAInformation, - &ett_gsm_map_InsertSubscriberDataRes, - &ett_gsm_map_DeleteSubscriberDataArg, - &ett_gsm_map_DeleteSubscriberDataRes, - &ett_gsm_map_SpecificCSI_Withdraw, - &ett_gsm_map_GPRSSubscriptionDataWithdraw, - &ett_gsm_map_ContextIdList, - &ett_gsm_map_LSAInformationWithdraw, - &ett_gsm_map_LSAIdentityList, - &ett_gsm_map_BasicServiceList, - &ett_gsm_map_VlrCamelSubscriptionInfo, - &ett_gsm_map_MT_smsCAMELTDP_CriteriaList, - &ett_gsm_map_MT_smsCAMELTDP_Criteria, - &ett_gsm_map_TPDU_TypeCriterion, - &ett_gsm_map_D_CSI, - &ett_gsm_map_DP_AnalysedInfoCriteriaList, - &ett_gsm_map_DP_AnalysedInfoCriterium, - &ett_gsm_map_SS_CSI, - &ett_gsm_map_SS_CamelData, - &ett_gsm_map_MG_CSI, - &ett_gsm_map_BearerServiceList, - &ett_gsm_map_TeleserviceList, - &ett_gsm_map_Ext_SS_InfoList, - &ett_gsm_map_Ext_SS_Info, - &ett_gsm_map_Ext_ForwInfo, - &ett_gsm_map_Ext_ForwFeatureList, - &ett_gsm_map_Ext_ForwFeature, - &ett_gsm_map_Ext_CallBarInfo, - &ett_gsm_map_Ext_CallBarFeatureList, - &ett_gsm_map_Ext_CallBarringFeature, - &ett_gsm_map_ZoneCodeList, - &ett_gsm_map_EMLPP_Info, - &ett_gsm_map_CUG_Info, - &ett_gsm_map_CUG_SubscriptionList, - &ett_gsm_map_CUG_Subscription, - &ett_gsm_map_CUG_FeatureList, - &ett_gsm_map_Ext_BasicServiceGroupList, - &ett_gsm_map_CUG_Feature, - &ett_gsm_map_Ext_SS_Data, - &ett_gsm_map_LCS_PrivacyExceptionList, - &ett_gsm_map_LCS_PrivacyClass, - &ett_gsm_map_ExternalClientList, - &ett_gsm_map_PLMNClientList, - &ett_gsm_map_Ext_ExternalClientList, - &ett_gsm_map_ExternalClient, - &ett_gsm_map_ServiceTypeList, - &ett_gsm_map_ServiceType, - &ett_gsm_map_MOLR_List, - &ett_gsm_map_MOLR_Class, - &ett_gsm_map_CallBarringFeatureList, - &ett_gsm_map_CallBarringFeature, - &ett_gsm_map_ForwardingFeatureList, - &ett_gsm_map_ForwardingFeature, - &ett_gsm_map_DestinationNumberCriteria, - &ett_gsm_map_DestinationNumberList, - &ett_gsm_map_DestinationNumberLengthList, - &ett_gsm_map_ForwardingInfo, - &ett_gsm_map_CallBarringInfo, - &ett_gsm_map_MC_SS_Info, - &ett_gsm_map_ResetArg, - &ett_gsm_map_RestoreDataArg, - &ett_gsm_map_RestoreDataRes, - &ett_gsm_map_VBSDataList, - &ett_gsm_map_VGCSDataList, - &ett_gsm_map_VoiceGroupCallData, - &ett_gsm_map_VoiceBroadcastData, - &ett_gsm_map_AdditionalSubscriptions, - &ett_gsm_map_ActivateTraceModeArg, - &ett_gsm_map_TraceDepthList, - &ett_gsm_map_TraceNE_TypeList, - &ett_gsm_map_TraceInterfaceList, - &ett_gsm_map_MSC_S_InterfaceList, - &ett_gsm_map_MGW_InterfaceList, - &ett_gsm_map_SGSN_InterfaceList, - &ett_gsm_map_GGSN_InterfaceList, - &ett_gsm_map_RNC_InterfaceList, - &ett_gsm_map_BMSC_InterfaceList, - &ett_gsm_map_TraceEventList, - &ett_gsm_map_MSC_S_EventList, - &ett_gsm_map_MGW_EventList, - &ett_gsm_map_SGSN_EventList, - &ett_gsm_map_GGSN_EventList, - &ett_gsm_map_BMSC_EventList, - &ett_gsm_map_TracePropagationList, - &ett_gsm_map_ActivateTraceModeRes, - &ett_gsm_map_DeactivateTraceModeArg, - &ett_gsm_map_DeactivateTraceModeRes, - &ett_gsm_map_SendRoutingInfoArg, - &ett_gsm_map_SendRoutingInfoRes, + +/* --- Module MAP-CommonDataTypes --- --- --- */ + &ett_gsm_map_ExternalSignalInfo, &ett_gsm_map_Ext_ExternalSignalInfo, &ett_gsm_map_AccessNetworkSignalInfo, - &ett_gsm_map_CamelInfo, &ett_gsm_map_Identity, &ett_gsm_map_IMSI_WithLMSI, + &ett_gsm_map_SubscriberId, &ett_gsm_map_HLR_List, - &ett_gsm_map_SS_List, &ett_gsm_map_NAEA_PreferredCI, &ett_gsm_map_SubscriberIdentity, &ett_gsm_map_LCSClientExternalID, &ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI, - &ett_gsm_map_AllowedServices, - &ett_gsm_map_CCBS_Indicators, - &ett_gsm_map_RoutingInfo, - &ett_gsm_map_ExtendedRoutingInfo, - &ett_gsm_map_CamelRoutingInfo, - &ett_gsm_map_GmscCamelSubscriptionInfo, - &ett_gsm_map_LocationInformation, - &ett_gsm_map_LocationInformationGPRS, - &ett_gsm_map_SubscriberState, - &ett_gsm_map_PS_SubscriberState, - &ett_gsm_map_PDP_ContextInfoList, - &ett_gsm_map_PDP_ContextInfo, - &ett_gsm_map_CUG_CheckInfo, - &ett_gsm_map_ForwardingData, - &ett_gsm_map_ProvideRoamingNumberArg, - &ett_gsm_map_ProvideRoamingNumberRes, - &ett_gsm_map_ResumeCallHandlingArg, - &ett_gsm_map_ResumeCallHandlingRes, - &ett_gsm_map_UU_Data, - &ett_gsm_map_ProvideSIWFSNumberArg, - &ett_gsm_map_ProvideSIWFSNumberRes, - &ett_gsm_map_SIWFSSignallingModifyArg, - &ett_gsm_map_SIWFSSignallingModifyRes, - &ett_gsm_map_SetReportingStateArg, - &ett_gsm_map_SetReportingStateRes, - &ett_gsm_map_StatusReportArg, - &ett_gsm_map_StatusReportRes, - &ett_gsm_map_EventReportData, - &ett_gsm_map_CallReportData, - &ett_gsm_map_IST_AlertArg, - &ett_gsm_map_IST_AlertRes, - &ett_gsm_map_IST_CommandArg, - &ett_gsm_map_IST_CommandRes, - &ett_gsm_map_ReleaseResourcesArg, - &ett_gsm_map_ReleaseResourcesRes, - &ett_gsm_map_RemoteUserFreeArg, - &ett_gsm_map_RemoteUserFreeRes, - &ett_gsm_map_SS_Data, - &ett_gsm_map_SS_SubscriptionOption, - &ett_gsm_map_RegisterSS_Arg, - &ett_gsm_map_SS_Info, - &ett_gsm_map_InterrogateSS_Res, - &ett_gsm_map_Ussd_Arg, - &ett_gsm_map_Ussd_Res, - &ett_gsm_map_AuthenticationFailureReportArg, - &ett_gsm_map_AuthenticationFailureReportRes, - &ett_gsm_map_RegisterCC_EntryArg, - &ett_gsm_map_RegisterCC_EntryRes, - &ett_gsm_map_CCBS_Data, - &ett_gsm_map_ServiceIndicator, - &ett_gsm_map_EraseCC_EntryArg, - &ett_gsm_map_EraseCC_EntryRes, - &ett_gsm_map_RoutingInfoForSMArg, - &ett_gsm_map_RoutingInfoForSM_Res, - &ett_gsm_map_LocationInfoWithLMSI, - &ett_gsm_map_Additional_Number, - &ett_gsm_map_Mo_forwardSM_Arg, - &ett_gsm_map_Mo_forwardSM_Res, - &ett_gsm_map_Sm_RP_OA, - &ett_gsm_map_Sm_RP_DA, - &ett_gsm_map_Mt_forwardSM_Arg, - &ett_gsm_map_Mt_forwardSM_Res, - &ett_gsm_map_ForwardSM_Arg, - &ett_gsm_map_ReportSM_DeliveryStatusArg, - &ett_gsm_map_ReportSM_DeliveryStatusRes, - &ett_gsm_map_InformServiceCentreArg, - &ett_gsm_map_MW_Status, - &ett_gsm_map_AlertServiceCentreArg, - &ett_gsm_map_ReadyForSM_Arg, - &ett_gsm_map_ReadyForSM_Res, - &ett_gsm_map_Mt_ForwardSM_VGCS_Arg, - &ett_gsm_map_Mt_ForwardSM_VGCS_Res, - &ett_gsm_map_DispatcherList, - &ett_gsm_map_ProvideSubscriberInfoArg, - &ett_gsm_map_ProvideSubscriberInfoRes, - &ett_gsm_map_SubscriberInfo, - &ett_gsm_map_MNPInfoRes, - &ett_gsm_map_GPRSMSClass, - &ett_gsm_map_RequestedInfo, - &ett_gsm_map_AnyTimeInterrogationArg, - &ett_gsm_map_AnyTimeInterrogationRes, - &ett_gsm_map_AnyTimeSubscriptionInterrogationArg, - &ett_gsm_map_AnyTimeSubscriptionInterrogationRes, - &ett_gsm_map_RequestedSubscriptionInfo, - &ett_gsm_map_MSISDN_BS_List, - &ett_gsm_map_MSISDN_BS, - &ett_gsm_map_CallForwardingData, - &ett_gsm_map_CallBarringData, &ett_gsm_map_BasicServiceCode, - &ett_gsm_map_O_BcsmCamelTDPCriteriaList, - &ett_gsm_map_T_BCSM_CAMEL_TDP_CriteriaList, - &ett_gsm_map_O_BcsmCamelTDP_Criteria, - &ett_gsm_map_T_BCSM_CAMEL_TDP_Criteria, - &ett_gsm_map_OfferedCamel4CSIs, - &ett_gsm_map_OfferedCamel4Functionalities, - &ett_gsm_map_SS_ForBS_Code, - &ett_gsm_map_GenericServiceInfo, - &ett_gsm_map_CCBS_FeatureList, - &ett_gsm_map_CCBS_Feature, - &ett_gsm_map_T_CauseValueCriteria, - &ett_gsm_map_O_CauseValueCriteria, - &ett_gsm_map_BasicServiceCriteria, - &ett_gsm_map_AnyTimeModificationArg, - &ett_gsm_map_AnyTimeModificationRes, - &ett_gsm_map_ModificationRequestFor_CF_Info, - &ett_gsm_map_ModificationRequestFor_CB_Info, - &ett_gsm_map_ModificationRequestFor_ODB_data, - &ett_gsm_map_ModificationRequestFor_CSI, - &ett_gsm_map_Ext_SS_InfoFor_CSE, - &ett_gsm_map_NoteSubscriberDataModifiedArg, - &ett_gsm_map_NoteSubscriberDataModifiedRes, - &ett_gsm_map_NoteMM_EventArg, - &ett_gsm_map_NoteMM_EventRes, - &ett_gsm_map_CAMEL_SubscriptionInfo, - &ett_gsm_map_Ext_ForwardingInfoFor_CSE, &ett_gsm_map_Ext_BasicServiceCode, - &ett_gsm_map_Ext_CallBarringInfoFor_CSE, - &ett_gsm_map_ODB_Info, - &ett_gsm_map_ODB_Data, - &ett_gsm_map_M_CSI, - &ett_gsm_map_SS_EventList, - &ett_gsm_map_T_CSI, - &ett_gsm_map_T_BcsmCamelTDPDataList, - &ett_gsm_map_T_BcsmCamelTDPData, - &ett_gsm_map_SMS_CSI, - &ett_gsm_map_SMS_CAMEL_TDP_DataList, - &ett_gsm_map_SMS_CAMEL_TDP_Data, - &ett_gsm_map_MobilityTriggers, - &ett_gsm_map_Ss_InvocationNotificationArg, - &ett_gsm_map_SS_EventSpecification, - &ett_gsm_map_Ss_InvocationNotificationRes, - &ett_gsm_map_PrepareGroupCallArg, - &ett_gsm_map_PrepareGroupCallRes, - &ett_gsm_map_SendGroupCallEndSignalArg, - &ett_gsm_map_SendGroupCallEndSignalRes, - &ett_gsm_map_ProcessGroupCallSignallingArg, - &ett_gsm_map_StateAttributes, - &ett_gsm_map_SendGroupCallInfoArg, - &ett_gsm_map_SendGroupCallInfoRes, - &ett_gsm_map_ForwardGroupCallSignallingArg, - &ett_gsm_map_UpdateGprsLocationArg, - &ett_gsm_map_UpdateGprsLocationRes, - &ett_gsm_map_SGSN_Capability, - &ett_gsm_map_SendRoutingInfoForGprsArg, - &ett_gsm_map_SendRoutingInfoForGprsRes, - &ett_gsm_map_FailureReportArg, - &ett_gsm_map_FailureReportRes, - &ett_gsm_map_NoteMsPresentForGprsArg, - &ett_gsm_map_NoteMsPresentForGprsRes, - &ett_gsm_map_ProvideSubscriberLocation_Arg, - &ett_gsm_map_LocationType, - &ett_gsm_map_DeferredLocationEventType, - &ett_gsm_map_LCS_ClientID, - &ett_gsm_map_LCSClientName, - &ett_gsm_map_LCSRequestorID, - &ett_gsm_map_LCS_QoS, - &ett_gsm_map_ResponseTime, - &ett_gsm_map_SupportedGADShapes, - &ett_gsm_map_LCSCodeword, - &ett_gsm_map_LCS_PrivacyCheck, - &ett_gsm_map_AreaEventInfo, - &ett_gsm_map_AreaDefinition, - &ett_gsm_map_AreaList, - &ett_gsm_map_Area, - &ett_gsm_map_PeriodicLDRInfo, - &ett_gsm_map_ReportingPLMNList, - &ett_gsm_map_PLMNList, - &ett_gsm_map_ReportingPLMN, - &ett_gsm_map_ProvideSubscriberLocation_Res, - &ett_gsm_map_RoutingInfoForLCS_Arg, - &ett_gsm_map_RoutingInfoForLCS_Res, - &ett_gsm_map_LCSLocationInfo, - &ett_gsm_map_SubscriberLocationReport_Arg, - &ett_gsm_map_Deferredmt_lrData, - &ett_gsm_map_SubscriberLocationReport_Res, - &ett_gsm_map_SecureTransportArg, - &ett_gsm_map_SecureTransportRes, - &ett_gsm_map_SecurityHeader, - &ett_gsm_map_OriginalComponentIdentifier, - &ett_gsm_map_OperationCode, - &ett_gsm_map_ErrorCode, - &ett_gsm_map_PlmnContainer, - &ett_gsm_map_T_operatorSS_Code, - &ett_gsm_map_SystemFailureParam, - &ett_gsm_map_ExtensibleSystemFailureParam, - &ett_gsm_map_DataMissingParam, - &ett_gsm_map_UnexpectedDataParam, - &ett_gsm_map_FacilityNotSupParam, - &ett_gsm_map_IncompatibleTerminalParam, - &ett_gsm_map_ResourceLimitationParam, - &ett_gsm_map_UnknownSubscriberParam, - &ett_gsm_map_NumberChangedParam, - &ett_gsm_map_UnidentifiedSubParam, - &ett_gsm_map_RoamingNotAllowedParam, - &ett_gsm_map_IllegalSubscriberParam, - &ett_gsm_map_IllegalEquipmentParam, - &ett_gsm_map_BearerServNotProvParam, - &ett_gsm_map_TeleservNotProvParam, - &ett_gsm_map_TracingBufferFullParam, - &ett_gsm_map_NoRoamingNbParam, - &ett_gsm_map_AbsentSubscriberParam, - &ett_gsm_map_BusySubscriberParam, - &ett_gsm_map_NoSubscriberReplyParam, - &ett_gsm_map_ForwardingViolationParam, - &ett_gsm_map_ForwardingFailedParam, - &ett_gsm_map_ATI_NotAllowedParam, - &ett_gsm_map_ATSI_NotAllowedParam, - &ett_gsm_map_ATM_NotAllowedParam, - &ett_gsm_map_IllegalSS_OperationParam, - &ett_gsm_map_SS_NotAvailableParam, - &ett_gsm_map_SS_SubscriptionViolationParam, - &ett_gsm_map_InformationNotAvailableParam, - &ett_gsm_map_SubBusyForMT_SMS_Param, - &ett_gsm_map_CallBarredParam, - &ett_gsm_map_ExtensibleCallBarredParam, - &ett_gsm_map_CUG_RejectParam, - &ett_gsm_map_Or_NotAllowedParam, - &ett_gsm_map_NoGroupCallNbParam, - &ett_gsm_map_SS_IncompatibilityCause, - &ett_gsm_map_ShortTermDenialParam, - &ett_gsm_map_LongTermDenialParam, - &ett_gsm_map_SM_DeliveryFailureCause, - &ett_gsm_map_MessageWaitListFullParam, - &ett_gsm_map_AbsentSubscriberSM_Param, - &ett_gsm_map_UnauthorizedRequestingNetwork_Param, - &ett_gsm_map_UnauthorizedLCSClient_Param, - &ett_gsm_map_PositionMethodFailure_Param, - &ett_gsm_map_UnknownOrUnreachableLCSClient_Param, - &ett_gsm_map_MM_EventNotSupported_Param, - &ett_gsm_map_TargetCellOutsideGCA_Param, - &ett_gsm_map_OngoingGroupCallParam, - &ett_gsm_map_SecureTransportErrorParam, - &ett_gsm_map_ExtensionContainer, + &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_SS_InfoList, + &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_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_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, + +/* --- Module MAP-OM-DataTypes --- --- --- */ + + &ett_gsm_map_om_ActivateTraceModeArg, + &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_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_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_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_SGSN_Capability, + &ett_gsm_map_ms_UpdateGprsLocationRes, + &ett_gsm_map_ms_ForwardAccessSignalling_Arg_U, + &ett_gsm_map_ms_AllowedUMTS_Algorithms, + &ett_gsm_map_ms_PrepareHO_Arg_U, + &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_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_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_AccessRestrictionData, + &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_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_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_LocationInformation, + &ett_gsm_map_ms_LocationInformationGPRS, + &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_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_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, + +/* --- 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_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-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_CancelLocationArgV2, + &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, + +/* --- 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_LocationNotificationRes, + &ett_gsm_ss_LCS_MOLRArg, + &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, + +/* --- Module SS-Operations --- --- --- */ + /*--- End of included file: packet-gsm_map-ettarr.c ---*/ -#line 2309 "packet-gsm_map-template.c" +#line 2413 "packet-gsm_map-template.c" }; /* Register protocol */ - proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME); + proto_gsm_map_dialogue =proto_gsm_map = proto_register_protocol(PNAME, PSNAME, PFNAME); register_dissector("gsm_map", dissect_gsm_map, proto_gsm_map); @@ -21641,7 +22214,61 @@ void proto_register_gsm_map(void) { gsm_map_tap = register_tap("gsm_map"); -/* #include "packet-gsm_map-dis-tab.c" */ + +/*--- Included file: packet-gsm_map-dis-tab.c ---*/ +#line 1 "packet-gsm_map-dis-tab.c" + +/* --- Module MAP-DialogueInformation --- --- --- */ + + register_ber_oid_dissector("0.4.0.0.1.1.1.1", dissect_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-Protocol --- --- --- */ + + + +/* --- Module DummyMAP --- --- --- */ + + + +/* --- Module SS-DataTypes --- --- --- */ + + + +/* --- Module SS-Operations --- --- --- */ + + + +/*--- End of included file: packet-gsm_map-dis-tab.c ---*/ +#line 2431 "packet-gsm_map-template.c" add_oid_str_name("1.2.826.0.1249.58.1.0","iso(1) member-body(2) bsi(826) disc(0) ericsson(1249) gsmNetworkApplicationsDefinition(58) gsm-Map(1) gsm-Map-Ext(0)" ); add_oid_str_name("1.3.12.2.1107.3.66.1.2","accessTypeNotAllowed-id" ); /*add_oid_str_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" ); diff --git a/epan/dissectors/packet-gsm_map.h b/epan/dissectors/packet-gsm_map.h index f0dd152890..41a8bcabaf 100644 --- a/epan/dissectors/packet-gsm_map.h +++ b/epan/dissectors/packet-gsm_map.h @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Wireshark dissector compiler */ /* .\packet-gsm_map.h */ -/* ../../tools/asn2wrs.py -b -e -p gsm_map -c gsmmap.cnf -s packet-gsm_map-template GSMMAP.asn */ +/* ../../tools/asn2wrs.py -b -X -T -k -e -c gsm_map.cnf -s packet-gsm_map-template ../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-Protocol.asn GSMMAP.asn SS-DataTypes.asn SS-Operations.asn */ /* Input file: packet-gsm_map-template.h */ @@ -55,23 +55,22 @@ extern const value_string gsm_map_etsi_defined_pdp_vals[]; /*--- Included file: packet-gsm_map-exp.h ---*/ #line 1 "packet-gsm_map-exp.h" -extern const value_string gsm_map_GSMMAPLocalErrorcode_vals[]; -extern const value_string gsm_map_NotificationToMSUser_vals[]; -extern const value_string gsm_map_SubscriberState_vals[]; -extern const value_string gsm_map_SS_Info_vals[]; -extern const value_string gsm_map_InterrogateSS_Res_vals[]; -extern const value_string gsm_map_GetPasswordArg_vals[]; + +/* --- Module MAP-SS-Code --- --- --- */ + +int dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module MAP-ExtensionDataTypes --- --- --- */ + +int dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module MAP-CommonDataTypes --- --- --- */ + +extern const value_string gsm_map_LCSServiceTypeID_vals[]; extern const value_string gsm_map_Ext_BasicServiceCode_vals[]; -int dissect_gsm_map_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_gsm_map_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); @@ -79,51 +78,78 @@ int dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag _U_, tvbuff_t *tvb int dissect_gsm_map_LCSServiceTypeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_Ussd_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_Ussd_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); -int dissect_gsm_map_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module MAP-SS-DataTypes --- --- --- */ + +extern const value_string gsm_map_ss_SS_Info_vals[]; +extern const value_string gsm_map_ss_InterrogateSS_Res_vals[]; +int dissect_gsm_map_ss_RegisterSS_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_SS_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_SS_ForBS_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_CCBS_Feature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_USSD_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_USSD_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_RegisterCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_EraseCC_EntryArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ss_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module MAP-MS-DataTypes --- --- --- */ + +extern const value_string gsm_map_ms_NotificationToMSUser_vals[]; +extern const value_string gsm_map_ms_SubscriberState_vals[]; +int dissect_gsm_map_ms_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_NotificationToMSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_ms_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module MAP-CH-DataTypes --- --- --- */ + +int dissect_gsm_map_ch_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module MAP-LCS-DataTypes --- --- --- */ + +int dissect_gsm_map_lcs_LocationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_DeferredLocationEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_LCSClientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_LCSRequestorID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_LCS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_SupportedGADShapes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_LCS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_LCSCodeword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_AreaEventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_Ext_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_VelocityEstimate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_map_lcs_Add_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + +/* --- Module DummyMAP --- --- --- */ + +extern const value_string gsm_old_GSMMAPLocalErrorcode_vals[]; +extern const value_string gsm_old_GetPasswordArg_vals[]; +int dissect_gsm_old_GSMMAPLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_old_NewPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_old_GetPasswordArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_old_CurrentPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_old_SecurityHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_gsm_old_ProtectedPayload(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); /*--- End of included file: packet-gsm_map-exp.h ---*/ #line 48 "packet-gsm_map-template.h" diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c index 0eb509df38..68ba448961 100644 --- a/epan/dissectors/packet-gtp.c +++ b/epan/dissectors/packet-gtp.c @@ -881,7 +881,7 @@ static const value_string cause_type[] = { /* GPRS: 9.02 v7.7.0 * UMTS: 29.002 v4.2.1, chapter 17.5, page 268 - * Imported gsm_map_GSMMAPLocalErrorcode_vals from gsm_map from gsm_map + * Imported gsm_old_GSMMAPLocalErrorcode_vals from gsm_map from gsm_map */ static const value_string gsn_addr_type[] = { @@ -5931,7 +5931,7 @@ proto_register_gtp(void) { &hf_gtp_gsn_ipv6, { "GSN address IPv6", "gtp.gsn_ipv6", FT_IPv6, BASE_DEC, NULL, 0, "GSN address IPv6", HFILL }}, { &hf_gtp_imsi, { "IMSI", "gtp.imsi", FT_STRING, BASE_DEC, NULL, 0, "International Mobile Subscriber Identity number", HFILL }}, { &hf_gtp_length, { "Length", "gtp.length", FT_UINT16, BASE_DEC, NULL, 0, "Length (i.e. number of octets after TID or TEID)", HFILL }}, - { &hf_gtp_map_cause, { "MAP cause", "gtp.map_cause", FT_UINT8, BASE_DEC, VALS(gsm_map_GSMMAPLocalErrorcode_vals), 0, "MAP cause", HFILL }}, + { &hf_gtp_map_cause, { "MAP cause", "gtp.map_cause", FT_UINT8, BASE_DEC, VALS(gsm_old_GSMMAPLocalErrorcode_vals), 0, "MAP cause", HFILL }}, { &hf_gtp_message_type, { "Message Type", "gtp.message", FT_UINT8, BASE_HEX, VALS(message_type), 0x0, "GTP Message Type", HFILL }}, { &hf_gtp_ms_reason, { "MS not reachable reason", "gtp.ms_reason", FT_UINT8, BASE_DEC, VALS(ms_not_reachable_type), 0, "MS Not Reachable Reason", HFILL }}, { &hf_gtp_ms_valid, { "MS validated", "gtp.ms_valid", FT_BOOLEAN, BASE_NONE,NULL, 0, "MS validated", HFILL }}, |