aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-07-09 14:09:59 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-07-09 14:09:59 +0000
commiteedc186e94e1ceb87d27f02980936209bd1ccdd1 (patch)
treedb55dff151edc32d1d2821acc7f8cdd9c212f88d
parent3be39a23aa67f821dd4785199e6e778414715254 (diff)
Dissect Release 8 CDR:s
svn path=/trunk/; revision=43624
-rw-r--r--asn1/gprscdr/GPRSChargingDataTypesV641.asn301
-rw-r--r--asn1/gprscdr/GPRSChargingDataTypesV8e0.asn848
-rw-r--r--asn1/gprscdr/GenericChargingDataTypesV8e0.asn591
-rw-r--r--asn1/gprscdr/Makefile.common5
-rw-r--r--asn1/gprscdr/gprscdr.cnf3
-rw-r--r--epan/dissectors/packet-gprscdr.c1870
-rw-r--r--epan/dissectors/packet-gprscdr.h5
-rw-r--r--epan/dissectors/packet-gtp.c6
8 files changed, 3238 insertions, 391 deletions
diff --git a/asn1/gprscdr/GPRSChargingDataTypesV641.asn b/asn1/gprscdr/GPRSChargingDataTypesV641.asn
index 50bddc2ce9..44ba9ed29b 100644
--- a/asn1/gprscdr/GPRSChargingDataTypesV641.asn
+++ b/asn1/gprscdr/GPRSChargingDataTypesV641.asn
@@ -47,11 +47,11 @@ GPRSCallEventRecord ::= CHOICE
-- Record values 20..27 are GPRS specific
-- Record values 29..30 are GPRS and MBMS specific
- sgsnPDPRecord [20] SGSNPDPRecord,
+ sgsnPDPRecord [20] SGSNPDPRecordV651,
ggsnPDPRecord [21] GGSNPDPRecord,
sgsnMMRecord [22] SGSNMMRecord,
- sgsnSMORecord [23] SGSNSMORecord,
- sgsnSMTRecord [24] SGSNSMTRecord,
+ sgsnSMORecord [23] SGSNSMORecordV651,
+ sgsnSMTRecord [24] SGSNSMTRecordV651,
-- sgsnLCTRecord [25] SGSNLCTRecord,
-- sgsnLCORecord [26] SGSNLCORecord,
-- sgsnLCNRecord [27] SGSNLCNRecord,
@@ -73,10 +73,10 @@ GGSNPDPRecord ::= SET
pdpType [8] PDPType OPTIONAL,
servedPDPAddress [9] PDPAddress OPTIONAL,
dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
- listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
recordOpeningTime [13] TimeStamp,
duration [14] CallDuration,
- causeForRecClosing [15] CauseForRecClosing,
+ causeForRecClosing [15] CauseForRecClosingV651,
diagnostics [16] Diagnostics OPTIONAL,
recordSequenceNumber [17] INTEGER OPTIONAL,
nodeID [18] NodeID OPTIONAL,
@@ -109,10 +109,10 @@ EGSNPDPRecord ::= SET
pdpType [8] PDPType OPTIONAL,
servedPDPAddress [9] PDPAddress OPTIONAL,
dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
- listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
recordOpeningTime [13] TimeStamp,
duration [14] CallDuration,
- causeForRecClosing [15] CauseForRecClosing,
+ causeForRecClosing [15] CauseForRecClosingV651,
diagnostics [16] Diagnostics OPTIONAL,
recordSequenceNumber [17] INTEGER OPTIONAL,
nodeID [18] NodeID OPTIONAL,
@@ -131,37 +131,37 @@ EGSNPDPRecord ::= SET
mSTimeZone [31] MSTimeZone OPTIONAL,
userLocationInformation [32] OCTET STRING OPTIONAL,
cAMELChargingInformation [33] OCTET STRING OPTIONAL,
- listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceConditionV651 OPTIONAL
}
-SGSNMMRecord ::= SET
-{
- recordType [0] CallEventRecordType,
- servedIMSI [1] IMSI,
- servedIMEI [2] IMEI OPTIONAL,
- sgsnAddress [3] GSNAddress OPTIONAL,
- msNetworkCapability [4] MSNetworkCapability OPTIONAL,
- routingArea [5] RoutingAreaCode OPTIONAL,
- locationAreaCode [6] LocationAreaCode OPTIONAL,
- cellIdentifier [7] CellId OPTIONAL,
- changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
- recordOpeningTime [9] TimeStamp,
- duration [10] CallDuration OPTIONAL,
- sgsnChange [11] SGSNChange OPTIONAL,
- causeForRecClosing [12] CauseForRecClosing,
- diagnostics [13] Diagnostics OPTIONAL,
- recordSequenceNumber [14] INTEGER OPTIONAL,
- nodeID [15] NodeID OPTIONAL,
- recordExtensions [16] ManagementExtensions OPTIONAL,
- localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
- servedMSISDN [18] MSISDN OPTIONAL,
- chargingCharacteristics [19] ChargingCharacteristics,
- cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
- rATType [21] RATType OPTIONAL,
- chChSelectionMode [22] ChChSelectionMode OPTIONAL
-}
-
-SGSNPDPRecord ::= SET
+--SGSNMMRecord ::= SET
+--{
+-- recordType [0] CallEventRecordType,
+-- servedIMSI [1] IMSI,
+-- servedIMEI [2] IMEI OPTIONAL,
+-- sgsnAddress [3] GSNAddress OPTIONAL,
+-- msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+-- routingArea [5] RoutingAreaCode OPTIONAL,
+-- locationAreaCode [6] LocationAreaCode OPTIONAL,
+-- cellIdentifier [7] CellId OPTIONAL,
+-- changeLocation [8] SEQUENCE OF ChangeLocationV651 OPTIONAL,
+-- recordOpeningTime [9] TimeStamp,
+-- duration [10] CallDuration OPTIONAL,
+-- sgsnChange [11] SGSNChange OPTIONAL,
+-- causeForRecClosing [12] CauseForRecClosingV651,
+-- diagnostics [13] Diagnostics OPTIONAL,
+-- recordSequenceNumber [14] INTEGER OPTIONAL,
+-- nodeID [15] NodeID OPTIONAL,
+-- recordExtensions [16] ManagementExtensions OPTIONAL,
+-- localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+-- servedMSISDN [18] MSISDN OPTIONAL,
+-- chargingCharacteristics [19] ChargingCharacteristics,
+-- cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+-- rATType [21] RATType OPTIONAL,
+-- chChSelectionMode [22] ChChSelectionMode OPTIONAL
+--}
+
+SGSNPDPRecordV651 ::= SET
{
recordType [0] CallEventRecordType,
networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
@@ -177,11 +177,11 @@ SGSNPDPRecord ::= SET
accessPointNameNI [12] AccessPointNameNI OPTIONAL,
pdpType [13] PDPType OPTIONAL,
servedPDPAddress [14] PDPAddress OPTIONAL,
- listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL,
recordOpeningTime [16] TimeStamp,
duration [17] CallDuration,
sgsnChange [18] SGSNChange OPTIONAL,
- causeForRecClosing [19] CauseForRecClosing,
+ causeForRecClosing [19] CauseForRecClosingV651,
diagnostics [20] Diagnostics OPTIONAL,
recordSequenceNumber [21] INTEGER OPTIONAL,
nodeID [22] NodeID OPTIONAL,
@@ -198,7 +198,7 @@ SGSNPDPRecord ::= SET
dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL
}
-SGSNSMORecord ::= SET
+SGSNSMORecordV651 ::= SET
{
recordType [0] CallEventRecordType,
servedIMSI [1] IMSI,
@@ -223,7 +223,7 @@ SGSNSMORecord ::= SET
chChSelectionMode [20] ChChSelectionMode OPTIONAL
}
-SGSNSMTRecord ::= SET
+SGSNSMTRecordV651 ::= SET
{
recordType [0] CallEventRecordType,
servedIMSI [1] IMSI,
@@ -275,7 +275,7 @@ SGSNMTLCSRecord ::= SET
chChSelectionMode [24] ChChSelectionMode OPTIONAL,
rATType [25] RATType OPTIONAL,
recordExtensions [26] ManagementExtensions OPTIONAL,
- causeForRecClosing [27] CauseForRecClosing
+ causeForRecClosing [27] CauseForRecClosingV651
}
SGSNMOLCSRecord ::= SET
@@ -305,7 +305,7 @@ SGSNMOLCSRecord ::= SET
chChSelectionMode [22] ChChSelectionMode OPTIONAL,
rATType [23] RATType OPTIONAL,
recordExtensions [24] ManagementExtensions OPTIONAL,
- causeForRecClosing [25] CauseForRecClosing
+ causeForRecClosing [25] CauseForRecClosingV651
}
SGSNNILCSRecord ::= SET
@@ -335,7 +335,7 @@ SGSNNILCSRecord ::= SET
chChSelectionMode [22] ChChSelectionMode OPTIONAL,
rATType [23] RATType OPTIONAL,
recordExtensions [24] ManagementExtensions OPTIONAL,
- causeForRecClosing [25] CauseForRecClosing
+ causeForRecClosing [25] CauseForRecClosingV651
}
SGSNMBMSRecord ::= SET
@@ -349,7 +349,7 @@ SGSNMBMSRecord ::= SET
listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
recordOpeningTime [7] TimeStamp,
duration [8] CallDuration,
- causeForRecClosing [9] CauseForRecClosing,
+ causeForRecClosing [9] CauseForRecClosingV651,
diagnostics [10] Diagnostics OPTIONAL,
recordSequenceNumber [11] INTEGER OPTIONAL,
nodeID [12] NodeID OPTIONAL,
@@ -372,7 +372,7 @@ GGSNMBMSRecord ::= SET
listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
recordOpeningTime [7] TimeStamp,
duration [8] CallDuration,
- causeForRecClosing [9] CauseForRecClosing,
+ causeForRecClosing [9] CauseForRecClosingV651,
diagnostics [10] Diagnostics OPTIONAL,
recordSequenceNumber [11] INTEGER OPTIONAL,
nodeID [12] NodeID OPTIONAL,
@@ -387,70 +387,70 @@ GGSNMBMSRecord ::= SET
--
------------------------------------------------------------------------------
-AccessPointNameNI ::= IA5String (SIZE(1..63))
+-- AccessPointNameNI ::= IA5String (SIZE(1..63))
--
-- Network Identifier part of APN in dot representation.
-- For example, if the complete APN is 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
-- NI is 'apn1a.apn1b.apn1c' and is presented in this form in the CDR..
--
-AccessPointNameOI ::= IA5String (SIZE(1..37))
+-- AccessPointNameOI ::= IA5String (SIZE(1..37))
--
-- Operator Identifier part of APN in dot representation.
-- In the 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs' example, the OI portion is 'mnc022.mcc111.gprs'
-- and is presented in this form in the CDR.
--
-APNSelectionMode::= ENUMERATED
-{
+--APNSelectionMode::= ENUMERATED
+--{
--
-- See Information Elements TS 29.060 [75]
--
- mSorNetworkProvidedSubscriptionVerified (0),
- mSProvidedSubscriptionNotVerified (1),
- networkProvidedSubscriptionNotVerified (2)
-}
-
-CAMELAccessPointNameNI ::= AccessPointNameNI
-
-CAMELAccessPointNameOI ::= AccessPointNameOI
-
-CAMELInformationMM ::= SET
-{
- sCFAddress [1] SCFAddress OPTIONAL,
- serviceKey [2] ServiceKey OPTIONAL,
- defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
- numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
- levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
- freeFormatData [6] FreeFormatData OPTIONAL,
- fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
-}
-
-CAMELInformationPDP ::= SET
-{
- sCFAddress [1] SCFAddress OPTIONAL,
- serviceKey [2] ServiceKey OPTIONAL,
- defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
- cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
- cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
- numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
- levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
- freeFormatData [8] FreeFormatData OPTIONAL,
- fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
-}
-
-CAMELInformationSMS ::= SET
-{
- sCFAddress [1] SCFAddress OPTIONAL,
- serviceKey [2] ServiceKey OPTIONAL,
- defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
- cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
- cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
- cAMELSMSCAddress [6] AddressString OPTIONAL,
- freeFormatData [7] FreeFormatData OPTIONAL,
- smsReferenceNumber [8] CallReferenceNumber OPTIONAL
-}
-CauseForRecClosing ::= INTEGER
+-- mSorNetworkProvidedSubscriptionVerified (0),
+-- mSProvidedSubscriptionNotVerified (1),
+-- networkProvidedSubscriptionNotVerified (2)
+--}
+
+--CAMELAccessPointNameNI ::= AccessPointNameNI
+
+--CAMELAccessPointNameOI ::= AccessPointNameOI
+
+--CAMELInformationMM ::= SET
+--{
+-- sCFAddress [1] SCFAddress OPTIONAL,
+-- serviceKey [2] ServiceKey OPTIONAL,
+-- defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+-- numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+-- levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+-- freeFormatData [6] FreeFormatData OPTIONAL,
+-- fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+--}
+
+--CAMELInformationPDP ::= SET
+--{
+-- sCFAddress [1] SCFAddress OPTIONAL,
+-- serviceKey [2] ServiceKey OPTIONAL,
+-- defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+-- cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+-- cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+-- numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+-- levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+-- freeFormatData [8] FreeFormatData OPTIONAL,
+-- fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+--}
+
+--CAMELInformationSMS ::= SET
+--{
+-- sCFAddress [1] SCFAddress OPTIONAL,
+-- serviceKey [2] ServiceKey OPTIONAL,
+-- defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+-- cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+-- cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+-- cAMELSMSCAddress [6] AddressString OPTIONAL,
+-- freeFormatData [7] FreeFormatData OPTIONAL,
+-- smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+--}
+CauseForRecClosingV651 ::= INTEGER
{
--
-- In GGSN the value sGSNChange should be used for partial record
@@ -478,7 +478,7 @@ CauseForRecClosing ::= INTEGER
listofDownstreamNodeChange (59)
}
-ChangeCondition ::= ENUMERATED
+ChangeConditionV651 ::= ENUMERATED
{
--
-- Failure Handling values used in eGCDR only
@@ -491,7 +491,7 @@ ChangeCondition ::= ENUMERATED
failureHandlingTerminateOngoing (5)
}
-ChangeOfCharCondition ::= SEQUENCE
+ChangeOfCharConditionV651 ::= SEQUENCE
{
--
-- Used in PDP context record only
@@ -500,7 +500,7 @@ ChangeOfCharCondition ::= SEQUENCE
qosNegotiated [2] QoSInformation OPTIONAL,
dataVolumeGPRSUplink [3] DataVolumeGPRS,
dataVolumeGPRSDownlink [4] DataVolumeGPRS,
- changeCondition [5] ChangeCondition,
+ changeCondition [5] ChangeConditionV651,
changeTime [6] TimeStamp
}
ChangeOfMBMSCondition ::= SEQUENCE
@@ -512,11 +512,11 @@ ChangeOfMBMSCondition ::= SEQUENCE
qosNegotiated [2] QoSInformation OPTIONAL,
dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
dataVolumeMBMSDownlink [4] DataVolumeMBMS,
- changeCondition [5] ChangeCondition,
+ changeCondition [5] ChangeConditionV651,
changeTime [6] TimeStamp,
failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
}
-ChangeOfServiceCondition ::= SEQUENCE
+ChangeOfServiceConditionV651 ::= SEQUENCE
{
--
-- Used for Flow based Charging service data container
@@ -529,7 +529,7 @@ ChangeOfServiceCondition ::= SEQUENCE
timeOfFirstUsage [5] TimeStamp OPTIONAL,
timeOfLastUsage [6] TimeStamp OPTIONAL,
timeUsage [7] CallDuration OPTIONAL,
- serviceConditionChange [8] ServiceConditionChange,
+ serviceConditionChange [8] ServiceConditionChangeV651,
qoSInformationNeg [9] QoSInformation OPTIONAL,
sgsn-Address [10] GSNAddress OPTIONAL,
-- sGSNPLMNIdentifier [11] SGSNPLMNIdentifier OPTIONAL, Typo ?
@@ -543,7 +543,7 @@ ChangeOfServiceCondition ::= SEQUENCE
pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL
}
-ChangeLocation ::= SEQUENCE
+ChangeLocationV651 ::= SEQUENCE
{
--
-- used in SGSNMMRecord only
@@ -554,90 +554,90 @@ ChangeLocation ::= SEQUENCE
changeTime [3] TimeStamp
}
-ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+--ChargingCharacteristics ::= OCTET STRING (SIZE(2))
--
-- Bit 0-3: Profile Index
-- Bit 4-15: For Behavior
--
-ChargingID ::= INTEGER (0..4294967295)
+--ChargingID ::= INTEGER (0..4294967295)
--
-- Generated in GGSN, part of PDP context, see TS 23.060
-- 0..4294967295 is equivalent to 0..2**32-1
--
-ChargingRuleBaseName ::= IA5String (SIZE(1..16))
+--ChargingRuleBaseName ::= IA5String (SIZE(1..16))
--
-- identifier for the group of charging rules
-- see Charging-Rule-Base-Name AVP as desined in 3GPP TS 29.210 [85]
-ChChSelectionMode ::= ENUMERATED
-{
- sGSNSupplied (0), -- For GGSN only
- subscriptionSpecific (1), -- For SGSN only
- aPNSpecific (2), -- For SGSN only
- homeDefault (3), -- For SGSN and GGSN
- roamingDefault (4), -- For SGSN and GGSN
- visitingDefault (5) -- For SGSN and GGSN
-}
+--ChChSelectionMode ::= ENUMERATED
+--{
+-- sGSNSupplied (0), - - For GGSN only
+-- subscriptionSpecific (1), - - For SGSN only
+-- aPNSpecific (2), - - For SGSN only
+-- homeDefault (3), - - For SGSN and GGSN
+-- roamingDefault (4), - - For SGSN and GGSN
+-- visitingDefault (5) - - For SGSN and GGSN
+--}
-DataVolumeGPRS ::= INTEGER
+--DataVolumeGPRS ::= INTEGER
--
-- The volume of data transferred in octets.
--
-DynamicAddressFlag ::= BOOLEAN
+--DynamicAddressFlag ::= BOOLEAN
-ETSIAddress ::= AddressString
+--ETSIAddress ::= AddressString
--
-- First octet for nature of address, and numbering plan indicator (3 for X.121)
-- Other octets TBCD
-- See TS 29.002
--
-FailureHandlingContinue ::= BOOLEAN
+--FailureHandlingContinue ::= BOOLEAN
--
-- This parameter is included when the failure handling procedure has been executed and new
-- containers are opened. This parameter shall be included in the first and subsequent
-- containers opened after the failure handling execution.
--
-FFDAppendIndicator ::= BOOLEAN
+--FFDAppendIndicator ::= BOOLEAN
-FreeFormatData ::= OCTET STRING (SIZE(1..160))
+--FreeFormatData ::= OCTET STRING (SIZE(1..160))
--
-- Free formated data as sent in the FurnishChargingInformationGPRS
-- see TS 29.078
--
-GSNAddress ::= IPAddress
+--GSNAddress ::= IPAddress
-MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+--MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
-- see 3G TS 24.008
-NetworkInitiatedPDPContext ::= BOOLEAN
+--NetworkInitiatedPDPContext ::= BOOLEAN
--
-- Set to true if PDP context was initiated from network side
--
-NodeID ::= IA5String (SIZE(1..20))
+--NodeID ::= IA5String (SIZE(1..20))
-NumberOfDPEncountered ::= INTEGER
+--NumberOfDPEncountered ::= INTEGER
-PDPAddress ::= CHOICE
-{
- iPAddress [0] IPAddress,
- eTSIAddress [1] ETSIAddress
-}
+--PDPAddress ::= CHOICE
+--{
+-- iPAddress [0] IPAddress,
+-- eTSIAddress [1] ETSIAddress
+--}
-PDPType ::= OCTET STRING (SIZE(2))
+--PDPType ::= OCTET STRING (SIZE(2))
--
-- OCTET 1: PDP Type Organization
-- OCTET 2: PDP Type Number
-- See TS 29.060 [75]
--
-PLMN-Id ::= OCTET STRING (SIZE (3))
+--PLMN-Id ::= OCTET STRING (SIZE (3))
--
-- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [75]
-- as follows:
@@ -646,52 +646,43 @@ PLMN-Id ::= OCTET STRING (SIZE (3))
-- OCTET 3 of PLMN-Id = OCTET 4 of RAI
-PSFurnishChargingInformation ::= SEQUENCE
-{
- pSFreeFormatData [1] FreeFormatData,
- pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
-}
+--PSFurnishChargingInformation ::= SEQUENCE
+--{
+-- pSFreeFormatData [1] FreeFormatData,
+-- pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+--}
-QoSInformation ::= OCTET STRING (SIZE (4..15))
+--QoSInformation ::= OCTET STRING (SIZE (4..15))
--
-- This octet string
-- is a 1:1 copy of the contents (i.e. starting with octet 4) of the "Quality of
-- service Profile" information element specified in 3GPP TS 29.060 [75].
-- RatingGroup ::= INTEGER Typo ?
-RatingGroupId ::= INTEGER
+-- RatingGroupId ::= INTEGER
--
-- IP service flow identity (DCCA), range of 4 byte (0...4294967259)
-- see Rating-Group AVP as used in 3GPP TS 32.299 [40]
--
-RATType ::= INTEGER
+-- RATType ::= INTEGER
--
-- Ihis integer is 1:1 copy of the RAT type value as defined in 3GPP TS 29.060 [75].
--
--- WS Extension
-{
- reserved (0),
- utran (1),
- geran (2),
- wlan (3),
- gan (4),
- hspa-evolution (5)
-}(0..255)
-
-ResultCode ::= INTEGER
+
+--ResultCode ::= INTEGER
--
-- charging protocol return value, range of 4 byte (0...4294967259)
-- see Result-Code AVP as used in 3GPP 29.210 [85]
--
-RoutingAreaCode ::= OCTET STRING (SIZE(1))
+--RoutingAreaCode ::= OCTET STRING (SIZE(1))
--
-- See TS 24.008 --
--
-ServiceConditionChange ::= BIT STRING
+ServiceConditionChangeV651 ::= BIT STRING
{
qoSChange (0),
sGSNChange (1),
@@ -723,19 +714,19 @@ terminateOngoingSession (20)
-- some of the values are non-exclusive
-- serviceIdledOut – bit 6 is equivalent to service release by QHT
-SCFAddress ::= AddressString
+--SCFAddress ::= AddressString
--
-- See TS 29.002
--
-ServiceIdentifier ::= INTEGER (0..4294967295)
+--ServiceIdentifier ::= INTEGER (0..4294967295)
--
-- The service identifier is used to identify the service or the service component
-- the service data flow relates to. See Service-Identifier AVP as defined
-- in 3GPP TS 29.210 [85]
--
-SGSNChange ::= BOOLEAN
+--SGSNChange ::= BOOLEAN
--
-- present if first record after inter SGSN routing area update
-- in new SGSN
diff --git a/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn b/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn
new file mode 100644
index 0000000000..7f2106b317
--- /dev/null
+++ b/asn1/gprscdr/GPRSChargingDataTypesV8e0.asn
@@ -0,0 +1,848 @@
+-- $Id$
+-- 3GPP TS 32.298 V8.14.0 (2012-03)
+--
+GPRSChargingDataTypesV8e0 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+-- CallDuration, CalledNumber, RecordType, CallingNumber, CallReferenceNumber, CellId, DefaultSMS-Handling, Diagnostics, Ext-GeographicalInformation, IMSI, IMEI, IPAddress, ISDN-AddressString, LCSCause, LCSClientExternalID, LCSClientIdentity, LCSClientInternalID, LCSClientType, LCS-Priority, LCSQoSInfo, LevelOfCAMELService, LocalSequenceNumber, LocationAreaAndCell, LocationAreaCode, LocationType, ManagementExtensions, MessageReference, MSISDN, NotificationToMSUser, PositioningData, RecordingEntity, ServiceKey, ServiceSpecificInfo, SMSResult, SmsTpDestinationNumber, SubscriptionID, TimeStamp, AddressString, MSTimeZone
+-- FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DefaultGPRS-Handling
+-- From V670
+-- , RAIdentity
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6)}
+--
+-- from TS 29.002 [60]
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+--
+-- from TS 24.080 [61]
+
+-- MBMS2G3GIndicator, FileRepairSupported, MBMSServiceType, MBMSUserServiceType, RequiredMBMSBearerCapabilities, MBMSSessionIdentity, TMGI, MBMSInformation
+-- FROM MBMSChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) mbmsChargingDataTypes (8) asn1Module (0) version1 (0)}
+
+-- Editor’s note: consider moving the above 2 items also into the generic module in order to avoid again copying from external sources.
+;
+
+------------------------------------------------------------------------------
+--
+-- GPRS RECORDS
+--
+------------------------------------------------------------------------------
+
+GPRSRecord ::= CHOICE
+--
+-- Record values 20, 22..27 are specific
+-- Record values 76..77 are MBMS specific
+-- Record values 78..79 are EPC specific
+{
+ sgsnPDPRecord [20] SGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnLCTRecord [25] SGSNLCTRecord,
+-- sgsnLCORecord [26] SGSNLCORecord,
+-- sgsnLCNRecord [27] SGSNLCNRecord,
+--
+--
+-- sgsnMBMSRecord [76] SGSNMBMSRecord,
+-- ggsnMBMSRecord [77] GGSNMBMSRecord,
+ sGWRecord [78] SGWRecord,
+ pGWRecord [79] PGWRecord
+}
+
+SGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI,
+ s-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ sGWChange [34] SGWChange OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ p-GWAddressUsed [36] GSNAddress OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ pDNConnectionChargingID [40] ChargingID OPTIONAL,
+ servedPDPPDNAddressExt [43] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL
+
+
+}
+
+PGWRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [3] IMSI,
+ p-GWAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ servingNodeAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpPDNType [8] PDPType OPTIONAL,
+ servedPDPPDNAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ servinggNodePLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL,
+ servingNodeType [35] SEQUENCE OF ServingNodeType,
+ servedMNNAI [36] SubscriptionID OPTIONAL,
+ p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
+ startTime [38] TimeStamp OPTIONAL,
+ stopTime [39] TimeStamp OPTIONAL,
+ served3gpp2MEID [40] OCTET STRING OPTIONAL,
+ pDNConnectionChargingID [41] ChargingID OPTIONAL,
+ tGPP2UserLocationInformation [42] OCTET STRING OPTIONAL,
+ servedPDPPDNAddressExt [45] PDPAddress OPTIONAL,
+ dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL
+
+}
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ cellPLMNId [23] PLMN-Id OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] RecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+{
+ recordType [0] RecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] RecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] INTEGER OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] RecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+------------------------------------------------------------------------------
+--
+-- PS DATA TYPES
+--
+------------------------------------------------------------------------------
+
+AccessPointNameNI ::= IA5String (SIZE(1..63))
+ --
+ -- Network Identifier part of APN in dot representation.
+ -- For example, if the complete APN is 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
+ -- NI is 'apn1a.apn1b.apn1c' and is presented in this form in the CDR..
+ --
+
+AccessPointNameOI ::= IA5String (SIZE(1..37))
+ --
+ -- Operator Identifier part of APN in dot representation.
+ -- In the 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs' example, the OI portion is 'mnc022.mcc111.gprs'
+ -- and is presented in this form in the CDR.
+ --
+
+AFChargingIdentifier ::= OCTET STRING
+ --
+ -- see AF-Charging-Identifier AVP as defined in TS 29.214[89]
+ --
+
+AFRecordInformation ::= SEQUENCE
+{
+ aFChargingIdentifier [1] AFChargingIdentifier,
+ flows [2] Flows OPTIONAL
+}
+
+APNSelectionMode::= ENUMERATED
+{
+ --
+ -- See Information Elements TS 29.060 [75], TS 29.274 [91] or TS 29.275 [92]
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- In PGW-CDR and SGW-CDR the value servingNodeChange is used for partial record
+ -- generation due to Serving Node Address list Overflow
+ -- In SGSN servingNodeChange indicates the SGSN change
+ --
+ -- LCS related causes belong to the MAP error causes acc. TS 29.002 [60]
+ --
+ -- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ servingNodeChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ sGSNPLMNIDChange (24),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ cGI-SAICHange (6), -- bearer modification. "CGI-SAI Change"
+ rAIChange (7), -- bearer modification. "RAI Change"
+ dT-Establishment (8),
+ dT-Removal (9),
+ eCGIChange (10), -- bearer modification. "ECGI Change"
+ tAIChange (11), -- bearer modification. "TAI Change"
+ userLocationChange (12) -- bearer modification. "User Location Change"
+
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+{
+ --
+ -- qosRequested and qosNegotiated are used in S-CDR only
+ -- ePCQoSInformation used in SGW-CDR only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS OPTIONAL,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS OPTIONAL,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ userLocationInformation [8] OCTET STRING OPTIONAL,
+ ePCQoSInformation [9] EPCQoSInformation OPTIONAL
+}
+
+ChangeOfMBMSCondition ::= SEQUENCE
+{
+ --
+ -- Used in MBMS record
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+ dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+}
+
+ChangeOfServiceCondition ::= SEQUENCE
+{
+ --
+ -- Used for Flow based Charging service data container
+ --
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChange,
+ qoSInformationNeg [9] EPCQoSInformation OPTIONAL,
+ servingNodeAddress [10] GSNAddress OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL,
+ aFRecordInformation [19] SEQUENCE OF AFRecordInformation OPTIONAL,
+ userLocationInformation [20] OCTET STRING OPTIONAL,
+ eventBasedChargingInformation [21] EventBasedChargingInformation OPTIONAL,
+ timeQuotaMechanism [22] TimeQuotaMechanism OPTIONAL,
+ serviceSpecificInfo [23] SEQUENCE OF ServiceSpecificInfo OPTIONAL,
+ tGPP2UserLocationInformation [24] OCTET STRING OPTIONAL
+}
+
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp,
+ mCC-MNC [4] PLMN-Id OPTIONAL
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- Generated in P-GW, part of IP CAN bearer
+ -- 0..4294967295 is equivalent to 0..2**32-1
+ --
+
+ChargingRuleBaseName ::= IA5String (SIZE(1..16))
+ --
+ -- identifier for the group of charging rules
+ -- see Charging-Rule-Base-Name AVP as desined in TS 29.212 [88]
+ --
+
+ChChSelectionMode ::= ENUMERATED
+{
+ servingNodeSupplied (0), -- For S-GW/P-GW
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN, S-GW and P-GW
+ roamingDefault (4), -- For SGSN, S-GW and P-GW
+ visitingDefault (5) -- For SGSN, S-GW and P-GW
+}
+
+DataVolumeGPRS ::= INTEGER
+ --
+ -- The volume of data transferred in octets.
+ --
+
+DynamicAddressFlag ::= BOOLEAN
+
+EPCQoSInformation ::= SEQUENCE
+{
+ --
+ -- See TS 29.212 [88] for more information
+ --
+ qCI [1] INTEGER,
+ maxRequestedBandwithUL [2] INTEGER OPTIONAL,
+ maxRequestedBandwithDL [3] INTEGER OPTIONAL,
+ guaranteedBitrateUL [4] INTEGER OPTIONAL,
+ guaranteedBitrateDL [5] INTEGER OPTIONAL,
+ aRP [6] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateUL [7] INTEGER OPTIONAL,
+ aPNAggregateMaxBitrateDL [8] INTEGER OPTIONAL
+
+}
+
+EventBasedChargingInformation ::= SEQUENCE
+{
+ numberOfEvents [1] INTEGER,
+ eventTimeStamps [2] SEQUENCE OF TimeStamp OPTIONAL
+}
+
+FailureHandlingContinue ::= BOOLEAN
+ --
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+ --
+
+FFDAppendIndicator ::= BOOLEAN
+
+Flows ::= SEQUENCE
+ --
+ -- See Flows AVP as defined in TS 29.214 [89]
+ --
+{
+ mediaComponentNumber [1] INTEGER,
+ flowNumber [2] SEQUENCE OF INTEGER OPTIONAL
+}
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formatted data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078 [66]
+ --
+
+GSNAddress ::= IPAddress
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+ -- see TS 24.008 [64]
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress
+-- eTSIAddress [1] ETSIAddress : has only been used in earlier releases for X.121 format
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+ --
+ -- OCTET 1: PDP Type Organization
+ -- OCTET 2: PDP/PDN Type Number
+ -- See TS 29.060 [75] for encoding details.
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ --
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [75]
+ -- as follows:
+ -- OCTET 1 of PLMN-Id = OCTET 2 of RAI
+ -- OCTET 2 of PLMN-Id = OCTET 3 of RAI
+ -- OCTET 3 of PLMN-Id = OCTET 4 of RAI
+ --
+
+
+PSFurnishChargingInformation ::= SEQUENCE
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+QoSInformation ::= OCTET STRING (SIZE (4..255))
+ --
+ -- This octet string
+ -- is a 1:1 copy of the contents (i.e. starting with octet 5) of the "Bearer Quality of
+ -- Service" information element specified in TS 29.274 [92].
+ --
+
+RatingGroupId ::= INTEGER
+ --
+ -- IP service flow identity (DCCA), range of 4 byte (0...4294967295)
+ -- see Rating-Group AVP as used in TS 32.299 [40]
+ --
+
+RATType ::= INTEGER
+ --
+ -- Ihis integer is 1:1 copy of the RAT type value as defined in TS 29.061 [82].
+ --
+-- WS Extension
+{
+ reserved (0),
+ utran (1),
+ geran (2),
+ wlan (3),
+ gan (4),
+ hspa-evolution (5)
+}(0..255)
+
+ResultCode ::= INTEGER
+--
+ -- charging protocol return value, range of 4 byte (0...4294967295)
+ -- see Result-Code AVP as used in 3GPP 32.299 [40]
+ --
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008 [64]
+ --
+
+ServiceConditionChange ::= BIT STRING
+{
+ qoSChange (0), -- bearer modification
+ sGSNChange (1), -- bearer modification
+ sGSNPLMNIDChange (2), -- bearer modification
+ tariffTimeSwitch (3), -- tariff time change
+ pDPContextRelease (4), -- bearer release
+ rATChange (5), -- bearer modification
+ serviceIdledOut (6), -- IP flow idle out, DCCA QHT expiry
+ reserved (7), -- old: QCTexpiry is no report event
+ configurationChange (8), -- configuration change
+ serviceStop (9), -- IP flow termination.From "Service Stop" in
+ -- Change-Condition" AVP
+ dCCATimeThresholdReached (10), -- DCCA quota reauthorization
+ dCCAVolumeThresholdReached (11), -- DCCA quota reauthorization
+ dCCAServiceSpecificUnitThresholdReached (12), -- DCCA quota reauthorization
+ dCCATimeExhausted (13), -- DCCA quota reauthorization
+ dCCAVolumeExhausted (14), -- DCCA quota reauthorization
+ dCCAValidityTimeout (15), -- DCCA quota validity time (QVT expiry)
+ reserved1 (16), -- reserved due to no use case,
+ -- old: return Requested is covered by (17),(18)
+ dCCAReauthorisationRequest (17), -- DCCA quota reauthorization request by OCS
+ dCCAContinueOngoingSession (18), -- DCCA failure handling (CCFH),
+ -- continue IP flow
+ dCCARetryAndTerminateOngoingSession (19), -- DCCA failure handling (CCFH),
+ -- terminate IP flow after DCCA retry
+ dCCATerminateOngoingSession (20), -- DCCA failure handling,
+ -- terminate IP flow
+ cGI-SAIChange (21), -- bearer modification. "CGI-SAI Change"
+ rAIChange (22), -- bearer modification. "RAI Change"
+ dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization
+ recordClosure (24), -- PGW-CDR closure
+ timeLimit (25), -- intermediate recording. From "Service Data
+ -- Time Limit" Change-Condition AVP value
+ volumeLimit (26), -- intermediate recording.From "Service Data
+ -- Volume Limit" Change-Condition AVP value
+ serviceSpecificUnitLimit (27), -- intermediate recording
+ envelopeClosure (28),
+ eCGIChange (29), -- bearer modification. "ECGI Change"
+ tAIChange (30), -- bearer modification. "TAI Change"
+ userLocationChange (31) -- bearer modification. "User Location Change"
+
+}
+--
+-- Trigger and cause values for IP flow level recording are defined for support of independent
+-- online and offline charging and also for tight interworking between online and offline charging.
+-- Unused bits will always be zero.
+-- Some of the values are non-exclusive (e.g. bearer modification reasons).
+ --
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002 [60]
+ --
+
+ServiceIdentifier ::= INTEGER (0..4294967295)
+ --
+ -- The service identifier is used to identify the service or the service component
+ -- the service data flow relates to. See Service-Identifier AVP as defined
+ -- in TS 29.212 [88]
+ --
+
+ServingNodeType ::= ENUMERATED
+{
+ sGSN (0),
+ pMIPSGW (1),
+gTPSGW (2),
+ ePDG (3),
+ hSGW (4),
+ mME (5)
+}
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+SGWChange ::= BOOLEAN
+ --
+ -- present if first record after inter S-GW change
+ --
+
+TimeQuotaMechanism ::= SEQUENCE
+{
+ timeQuotaType [1] TimeQuotaType,
+ baseTimeInterval [2] INTEGER
+}
+
+TimeQuotaType ::= ENUMERATED
+{
+ dISCRETETIMEPERIOD (0),
+ cONTINUOUSTIMEPERIOD (1)
+}
+
+END
diff --git a/asn1/gprscdr/GenericChargingDataTypesV8e0.asn b/asn1/gprscdr/GenericChargingDataTypesV8e0.asn
new file mode 100644
index 0000000000..2c25b175cb
--- /dev/null
+++ b/asn1/gprscdr/GenericChargingDataTypesV8e0.asn
@@ -0,0 +1,591 @@
+-- $Id$
+-- 3GPP TS 32.298 V8.14.0 (2006-06)
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+-- from TS 29.002 [60]
+
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+-- from TS 29.002 [60]
+
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+-- from TS 29.078 [66]
+
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+-- from TS 29.002 [60]
+
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+-- from TS 29.002 [60]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+-- from TS 29.002 [60]
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol"
+-- ETS 300 196 [62]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+
+-- from ITU-T Rec. X.2ab[105] Editor’s note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+
+-- WS localy defined
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+
+-- from ITU-T Rec. X.721 [106] Editor’s note: clarify if this definition is still needed.
+--AE-title
+--FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) };
+--
+-- From ITU-T Rec. X.2cd[107]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY" Editor’s note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+BCDDirectoryNumber ::= OCTET STRING
+ -- This type contains the binary coded decimal representation of
+ -- a directory number e.g. calling/called/connected/translated number.
+ -- The encoding of the octet string is in accordance with the
+ -- the elements "Calling party BCD number", "Called party BCD number"
+ -- and "Connected number" defined in TS 24.008 [64].
+ -- This encoding includes type of number and number plan information
+ -- together with a BCD encoded digit string.
+ -- It may also contain both a presentation and screening indicator
+ -- (octet 3a).
+ -- For the avoidance of doubt, this field does not include
+ -- octets 1 and 2, the element name and length, as this would be
+ -- redundant.
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration is counted in seconds.
+ -- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+ --
+
+-- Editor’s note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in[10] –[31]
+
+CalledNumber ::= BCDDirectoryNumber
+
+-- WS extension to cater for older version(6)
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ moCallRecord (0),
+ mtCallRecord (1),
+ roamingRecord (2),
+ incGatewayRecord (3),
+ outGatewayRecord (4),
+ transitCallRecord (5),
+ moSMSRecord (6),
+ mtSMSRecord (7),
+ moSMSIWRecord (8),
+ mtSMSGWRecord (9),
+ ssActionRecord (10),
+ hlrIntRecord (11),
+ locUpdateHLRRecord (12),
+ locUpdateVLRRecord (13),
+ commonEquipRecord (14),
+ moTraceRecord (15), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+-- End WS
+RecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ moCallRecord (0),
+ mtCallRecord (1),
+ roamingRecord (2),
+ incGatewayRecord (3),
+ outGatewayRecord (4),
+ transitCallRecord (5),
+ moSMSRecord (6),
+ mtSMSRecord (7),
+ moSMSIWRecord (8),
+ mtSMSGWRecord (9),
+ ssActionRecord (10),
+ hlrIntRecord (11),
+ locUpdateHLRRecord (12),
+ locUpdateVLRRecord (13),
+ commonEquipRecord (14),
+ moTraceRecord (15), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 30..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ mMR1AFRecord (42),
+ mMR4DRqRecord (43),
+ mMR4DRsRecord (44),
+ mMR1RRRecord (45),
+ mMR4RRqRecord (46),
+ mMR4RRsRecord (47),
+ mMRMDRecord (48),
+ mMFRecord (49),
+ mMBx1SRecord (50),
+ mMBx1VRecord (51),
+ mMBx1URecord (52),
+ mMBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69, 82 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ iBCFRecord (82),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+--
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+--
+ sUBBMSCRecord (78),
+ cONTENTBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+
+-- Record values 84..85 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+--
+-- Record Value 83 is MMTel specific.
+-- The contents are defined in TS 32.275 [35]
+--
+
+ mMTelRecord (83)
+
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+ --
+ -- Coded according to TS 24.008 [64]
+ --
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [64]
+ gsm0902MapErrorValue [1] INTEGER,
+ -- Note: The value to be stored here corresponds to
+ -- the local values defined in the MAP-Errors and
+ -- MAP-DialogueInformation modules, for full details
+ -- see TS 29.002 [60].
+ itu-tQ767Cause [2] INTEGER,
+ -- See ITU-T Q.767 [67]
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002 [60]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002 [60]
+}
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] OCTET STRING (SIZE(4)),
+ iPBinV6Address [1] OCTET STRING (SIZE(16))
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{
+ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+ --
+ -- See LCS Cause Value, TS 49.031 [71]
+ --
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+ --
+ -- See LCS QoS IE, TS 49.031 [71]
+ --
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+LocalSequenceNumber ::= INTEGER (0..4294967295)
+ --
+ -- Sequence number of the record in this node
+ -- 0.. 4294967295 is equivalent to 0..2**32-1, unsigned integer in four octets
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS 24.008 [64]
+ --
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+ --
+ -- See TS 24.008 [64]
+ --
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+ --
+ -- See TS 23.003 [68]
+ --
+
+MSISDN ::= ISDN-AddressString
+ --
+ -- See TS 23.003 [68]
+ --
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+ --
+ -- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
+ --
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+ --
+ -- See Positioning Data IE (octet 3..n), TS 49.031 [71]
+ --
+
+RecordingEntity ::= AddressString
+
+ServiceContextID ::= UTF8String
+
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+
+ serviceSpecificData [0] GraphicString OPTIONAL,
+serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+ --
+ -- This type contains the binary coded decimal representation of
+ -- the SMS address field the encoding of the octet string is in
+ -- accordance with the definition of address fields in TS 23.040 [72].
+ -- This encoding includes type of number and numbering plan indication
+ -- together with the address value range.
+ --
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+SystemType ::= ENUMERATED
+{
+ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+TimeStamp ::= OCTET STRING (SIZE(9))
+ --
+ -- The contents of this field are a compact form of the UTCTime format
+ -- containing local time plus an offset to universal time. Binary coded
+ -- decimal encoding is employed for the digits to reduce the storage and
+ -- transmission overhead
+ -- e.g. YYMMDDhhmmssShhmm
+ -- where
+ -- YY = Year 00 to 99 BCD encoded
+ -- MM = Month 01 to 12 BCD encoded
+ -- DD = Day 01 to 31 BCD encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ -- ss = second 00 to 59 BCD encoded
+ -- S = Sign 0 = "+", "-" ASCII encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ --
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+END
diff --git a/asn1/gprscdr/Makefile.common b/asn1/gprscdr/Makefile.common
index 9e515e2456..3b0515b33d 100644
--- a/asn1/gprscdr/Makefile.common
+++ b/asn1/gprscdr/Makefile.common
@@ -26,8 +26,9 @@ EXPORT_FILES = \
$(PROTOCOL_NAME)-exp.cnf
ASN_FILE_LIST = \
- GenericChargingDataTypesV641.asn \
- GPRSChargingDataTypesV641.asn
+ GenericChargingDataTypesV8e0.asn \
+ GPRSChargingDataTypesV641.asn \
+ GPRSChargingDataTypesV8e0.asn
# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
# files do not exist for all protocols: Please add/remove as required.
diff --git a/asn1/gprscdr/gprscdr.cnf b/asn1/gprscdr/gprscdr.cnf
index f785e6e1cb..cedb5f4821 100644
--- a/asn1/gprscdr/gprscdr.cnf
+++ b/asn1/gprscdr/gprscdr.cnf
@@ -28,6 +28,8 @@ ChangeOfMBMSCondition
#.EXPORTS
GPRSCallEventRecord
GPRSCallEventRecord_PDU
+GPRSRecord
+GPRSRecord_PDU
#.CLASS ATTRIBUTE
&id ObjectIdentifierType
@@ -39,6 +41,7 @@ GPRSCallEventRecord_PDU
#.PDU_NEW
GPRSCallEventRecord
+GPRSRecord
#.FN_BODY ManagementExtension/information
diff --git a/epan/dissectors/packet-gprscdr.c b/epan/dissectors/packet-gprscdr.c
index c4b88a911d..ac24d6d0ab 100644
--- a/epan/dissectors/packet-gprscdr.c
+++ b/epan/dissectors/packet-gprscdr.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gprscdr.c */
-/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV641.asn GPRSChargingDataTypesV641.asn */
+/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV8e0.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV8e0.asn */
/* Input file: packet-gprscdr-template.c */
@@ -55,6 +55,7 @@ static int proto_gprscdr = -1;
/*--- Included file: packet-gprscdr-hf.c ---*/
#line 1 "../../asn1/gprscdr/packet-gprscdr-hf.c"
static int hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU = -1; /* GPRSCallEventRecord */
+static int hf_gprscdr_gprscdr_GPRSRecord_PDU = -1; /* GPRSRecord */
static int hf_gprscdr_gsm0408Cause = -1; /* INTEGER */
static int hf_gprscdr_gsm0902MapErrorValue = -1; /* INTEGER */
static int hf_gprscdr_itu_tQ767Cause = -1; /* INTEGER */
@@ -69,14 +70,20 @@ static int hf_gprscdr_iPBinV6Address = -1; /* OCTET_STRING_SIZE_16 */
static int hf_gprscdr_iPTextV4Address = -1; /* IA5String_SIZE_7_15 */
static int hf_gprscdr_iPTextV6Address = -1; /* IA5String_SIZE_15_45 */
static int hf_gprscdr_ManagementExtensions_item = -1; /* ManagementExtension */
+static int hf_gprscdr_iPAddress = -1; /* IPAddress */
+static int hf_gprscdr_domainName = -1; /* GraphicString */
+static int hf_gprscdr_serviceSpecificData = -1; /* GraphicString */
+static int hf_gprscdr_serviceSpecificType = -1; /* INTEGER */
+static int hf_gprscdr_subscriptionIDType = -1; /* SubscriptionIDType */
+static int hf_gprscdr_subscriptionIDData = -1; /* UTF8String */
static int hf_gprscdr_identifier = -1; /* OBJECT_IDENTIFIER */
static int hf_gprscdr_significance = -1; /* BOOLEAN */
static int hf_gprscdr_information = -1; /* T_information */
-static int hf_gprscdr_sgsnPDPRecord = -1; /* SGSNPDPRecord */
+static int hf_gprscdr_sgsnPDPRecord = -1; /* SGSNPDPRecordV651 */
static int hf_gprscdr_ggsnPDPRecord = -1; /* GGSNPDPRecord */
static int hf_gprscdr_sgsnMMRecord = -1; /* SGSNMMRecord */
-static int hf_gprscdr_sgsnSMORecord = -1; /* SGSNSMORecord */
-static int hf_gprscdr_sgsnSMTRecord = -1; /* SGSNSMTRecord */
+static int hf_gprscdr_sgsnSMORecord = -1; /* SGSNSMORecordV651 */
+static int hf_gprscdr_sgsnSMTRecord = -1; /* SGSNSMTRecordV651 */
static int hf_gprscdr_egsnPDPRecord = -1; /* EGSNPDPRecord */
static int hf_gprscdr_recordType = -1; /* CallEventRecordType */
static int hf_gprscdr_networkInitiation = -1; /* NetworkInitiatedPDPContext */
@@ -89,11 +96,11 @@ static int hf_gprscdr_accessPointNameNI = -1; /* AccessPointNameNI */
static int hf_gprscdr_pdpType = -1; /* PDPType */
static int hf_gprscdr_servedPDPAddress = -1; /* PDPAddress */
static int hf_gprscdr_dynamicAddressFlag = -1; /* DynamicAddressFlag */
-static int hf_gprscdr_listOfTrafficVolumes = -1; /* SEQUENCE_OF_ChangeOfCharCondition */
-static int hf_gprscdr_listOfTrafficVolumes_item = -1; /* ChangeOfCharCondition */
+static int hf_gprscdr_listOfTrafficVolumes = -1; /* SEQUENCE_OF_ChangeOfCharConditionV651 */
+static int hf_gprscdr_listOfTrafficVolumes_item = -1; /* ChangeOfCharConditionV651 */
static int hf_gprscdr_recordOpeningTime = -1; /* TimeStamp */
static int hf_gprscdr_duration = -1; /* CallDuration */
-static int hf_gprscdr_causeForRecClosing = -1; /* CauseForRecClosing */
+static int hf_gprscdr_causeForRecClosing = -1; /* CauseForRecClosingV651 */
static int hf_gprscdr_diagnostics = -1; /* Diagnostics */
static int hf_gprscdr_recordSequenceNumber = -1; /* INTEGER */
static int hf_gprscdr_nodeID = -1; /* NodeID */
@@ -112,19 +119,16 @@ static int hf_gprscdr_mSTimeZone = -1; /* MSTimeZone */
static int hf_gprscdr_userLocationInformation = -1; /* OCTET_STRING */
static int hf_gprscdr_cAMELChargingInformation = -1; /* OCTET_STRING */
static int hf_gprscdr_pSFurnishChargingInformation = -1; /* PSFurnishChargingInformation */
-static int hf_gprscdr_listOfServiceData = -1; /* SEQUENCE_OF_ChangeOfServiceCondition */
-static int hf_gprscdr_listOfServiceData_item = -1; /* ChangeOfServiceCondition */
+static int hf_gprscdr_listOfServiceData = -1; /* SEQUENCE_OF_ChangeOfServiceConditionV651 */
+static int hf_gprscdr_listOfServiceData_item = -1; /* ChangeOfServiceConditionV651 */
static int hf_gprscdr_servedIMEI = -1; /* IMEI */
static int hf_gprscdr_sgsnAddress_01 = -1; /* GSNAddress */
static int hf_gprscdr_msNetworkCapability = -1; /* MSNetworkCapability */
static int hf_gprscdr_routingArea = -1; /* RoutingAreaCode */
static int hf_gprscdr_locationAreaCode = -1; /* LocationAreaCode */
static int hf_gprscdr_cellIdentifier = -1; /* CellId */
-static int hf_gprscdr_changeLocation = -1; /* SEQUENCE_OF_ChangeLocation */
-static int hf_gprscdr_changeLocation_item = -1; /* ChangeLocation */
-static int hf_gprscdr_sgsnChange = -1; /* SGSNChange */
-static int hf_gprscdr_cAMELInformationMM = -1; /* CAMELInformationMM */
static int hf_gprscdr_ggsnAddressUsed = -1; /* GSNAddress */
+static int hf_gprscdr_sgsnChange = -1; /* SGSNChange */
static int hf_gprscdr_accessPointNameOI = -1; /* AccessPointNameOI */
static int hf_gprscdr_cAMELInformationPDP = -1; /* CAMELInformationPDP */
static int hf_gprscdr_rNCUnsentDownlinkVolume = -1; /* DataVolumeGPRS */
@@ -136,25 +140,11 @@ static int hf_gprscdr_eventTimeStamp = -1; /* TimeStamp */
static int hf_gprscdr_smsResult = -1; /* SMSResult */
static int hf_gprscdr_destinationNumber = -1; /* SmsTpDestinationNumber */
static int hf_gprscdr_cAMELInformationSMS = -1; /* CAMELInformationSMS */
-static int hf_gprscdr_sCFAddress = -1; /* SCFAddress */
-static int hf_gprscdr_serviceKey = -1; /* ServiceKey */
-static int hf_gprscdr_defaultTransactionHandling = -1; /* DefaultGPRS_Handling */
-static int hf_gprscdr_numberOfDPEncountered = -1; /* NumberOfDPEncountered */
-static int hf_gprscdr_levelOfCAMELService = -1; /* LevelOfCAMELService */
-static int hf_gprscdr_freeFormatData = -1; /* FreeFormatData */
-static int hf_gprscdr_fFDAppendIndicator = -1; /* FFDAppendIndicator */
-static int hf_gprscdr_cAMELAccessPointNameNI = -1; /* CAMELAccessPointNameNI */
-static int hf_gprscdr_cAMELAccessPointNameOI = -1; /* CAMELAccessPointNameOI */
-static int hf_gprscdr_defaultSMSHandling = -1; /* DefaultSMS_Handling */
-static int hf_gprscdr_cAMELCallingPartyNumber = -1; /* CallingNumber */
-static int hf_gprscdr_cAMELDestinationSubscriberNumber = -1; /* SmsTpDestinationNumber */
-static int hf_gprscdr_cAMELSMSCAddress = -1; /* AddressString */
-static int hf_gprscdr_smsReferenceNumber = -1; /* CallReferenceNumber */
static int hf_gprscdr_qosRequested = -1; /* QoSInformation */
static int hf_gprscdr_qosNegotiated = -1; /* QoSInformation */
static int hf_gprscdr_dataVolumeGPRSUplink = -1; /* DataVolumeGPRS */
static int hf_gprscdr_dataVolumeGPRSDownlink = -1; /* DataVolumeGPRS */
-static int hf_gprscdr_changeCondition = -1; /* ChangeCondition */
+static int hf_gprscdr_changeCondition = -1; /* ChangeConditionV651 */
static int hf_gprscdr_changeTime = -1; /* TimeStamp */
static int hf_gprscdr_ratingGroup = -1; /* RatingGroupId */
static int hf_gprscdr_chargingRuleBaseName = -1; /* ChargingRuleBaseName */
@@ -162,7 +152,7 @@ static int hf_gprscdr_resultCode = -1; /* ResultCode */
static int hf_gprscdr_timeOfFirstUsage = -1; /* TimeStamp */
static int hf_gprscdr_timeOfLastUsage = -1; /* TimeStamp */
static int hf_gprscdr_timeUsage = -1; /* CallDuration */
-static int hf_gprscdr_serviceConditionChange = -1; /* ServiceConditionChange */
+static int hf_gprscdr_serviceConditionChange = -1; /* ServiceConditionChangeV651 */
static int hf_gprscdr_qoSInformationNeg = -1; /* QoSInformation */
static int hf_gprscdr_sgsn_Address = -1; /* GSNAddress */
static int hf_gprscdr_sGSNPLMNIdentifier = -1; /* PLMN_Id */
@@ -173,14 +163,112 @@ static int hf_gprscdr_failureHandlingContinue = -1; /* FailureHandlingContinue
static int hf_gprscdr_serviceIdentifier = -1; /* ServiceIdentifier */
static int hf_gprscdr_routingAreaCode = -1; /* RoutingAreaCode */
static int hf_gprscdr_cellId = -1; /* CellId */
-static int hf_gprscdr_iPAddress = -1; /* IPAddress */
-static int hf_gprscdr_eTSIAddress = -1; /* ETSIAddress */
+static int hf_gprscdr_sgsnPDPRecord_01 = -1; /* SGSNPDPRecord */
+static int hf_gprscdr_sgsnSMORecord_01 = -1; /* SGSNSMORecord */
+static int hf_gprscdr_sgsnSMTRecord_01 = -1; /* SGSNSMTRecord */
+static int hf_gprscdr_sGWRecord = -1; /* SGWRecord */
+static int hf_gprscdr_pGWRecord = -1; /* PGWRecord */
+static int hf_gprscdr_recordType_01 = -1; /* RecordType */
+static int hf_gprscdr_s_GWAddress = -1; /* GSNAddress */
+static int hf_gprscdr_servingNodeAddress = -1; /* SEQUENCE_OF_GSNAddress */
+static int hf_gprscdr_servingNodeAddress_item = -1; /* GSNAddress */
+static int hf_gprscdr_pdpPDNType = -1; /* PDPType */
+static int hf_gprscdr_servedPDPPDNAddress = -1; /* PDPAddress */
+static int hf_gprscdr_listOfTrafficVolumes_01 = -1; /* SEQUENCE_OF_ChangeOfCharCondition */
+static int hf_gprscdr_listOfTrafficVolumes_item_01 = -1; /* ChangeOfCharCondition */
+static int hf_gprscdr_causeForRecClosing_01 = -1; /* CauseForRecClosing */
+static int hf_gprscdr_servingNodePLMNIdentifier = -1; /* PLMN_Id */
+static int hf_gprscdr_sGWChange = -1; /* SGWChange */
+static int hf_gprscdr_servingNodeType = -1; /* SEQUENCE_OF_ServingNodeType */
+static int hf_gprscdr_servingNodeType_item = -1; /* ServingNodeType */
+static int hf_gprscdr_p_GWAddressUsed = -1; /* GSNAddress */
+static int hf_gprscdr_p_GWPLMNIdentifier = -1; /* PLMN_Id */
+static int hf_gprscdr_startTime = -1; /* TimeStamp */
+static int hf_gprscdr_stopTime = -1; /* TimeStamp */
+static int hf_gprscdr_pDNConnectionChargingID = -1; /* ChargingID */
+static int hf_gprscdr_servedPDPPDNAddressExt = -1; /* PDPAddress */
+static int hf_gprscdr_dynamicAddressFlagExt = -1; /* DynamicAddressFlag */
+static int hf_gprscdr_p_GWAddress = -1; /* GSNAddress */
+static int hf_gprscdr_servinggNodePLMNIdentifier = -1; /* PLMN_Id */
+static int hf_gprscdr_listOfServiceData_01 = -1; /* SEQUENCE_OF_ChangeOfServiceCondition */
+static int hf_gprscdr_listOfServiceData_item_01 = -1; /* ChangeOfServiceCondition */
+static int hf_gprscdr_servedMNNAI = -1; /* SubscriptionID */
+static int hf_gprscdr_served3gpp2MEID = -1; /* OCTET_STRING */
+static int hf_gprscdr_tGPP2UserLocationInformation = -1; /* OCTET_STRING */
+static int hf_gprscdr_changeLocation = -1; /* SEQUENCE_OF_ChangeLocation */
+static int hf_gprscdr_changeLocation_item = -1; /* ChangeLocation */
+static int hf_gprscdr_cAMELInformationMM = -1; /* CAMELInformationMM */
+static int hf_gprscdr_cellPLMNId = -1; /* PLMN_Id */
+static int hf_gprscdr_aFChargingIdentifier = -1; /* AFChargingIdentifier */
+static int hf_gprscdr_flows = -1; /* Flows */
+static int hf_gprscdr_sCFAddress = -1; /* SCFAddress */
+static int hf_gprscdr_serviceKey = -1; /* ServiceKey */
+static int hf_gprscdr_defaultTransactionHandling = -1; /* DefaultGPRS_Handling */
+static int hf_gprscdr_numberOfDPEncountered = -1; /* NumberOfDPEncountered */
+static int hf_gprscdr_levelOfCAMELService = -1; /* LevelOfCAMELService */
+static int hf_gprscdr_freeFormatData = -1; /* FreeFormatData */
+static int hf_gprscdr_fFDAppendIndicator = -1; /* FFDAppendIndicator */
+static int hf_gprscdr_cAMELAccessPointNameNI = -1; /* CAMELAccessPointNameNI */
+static int hf_gprscdr_cAMELAccessPointNameOI = -1; /* CAMELAccessPointNameOI */
+static int hf_gprscdr_defaultSMSHandling = -1; /* DefaultSMS_Handling */
+static int hf_gprscdr_cAMELCallingPartyNumber = -1; /* CallingNumber */
+static int hf_gprscdr_cAMELDestinationSubscriberNumber = -1; /* SmsTpDestinationNumber */
+static int hf_gprscdr_cAMELSMSCAddress = -1; /* AddressString */
+static int hf_gprscdr_smsReferenceNumber = -1; /* CallReferenceNumber */
+static int hf_gprscdr_changeCondition_01 = -1; /* ChangeCondition */
+static int hf_gprscdr_ePCQoSInformation = -1; /* EPCQoSInformation */
+static int hf_gprscdr_serviceConditionChange_01 = -1; /* ServiceConditionChange */
+static int hf_gprscdr_qoSInformationNeg_01 = -1; /* EPCQoSInformation */
+static int hf_gprscdr_servingNodeAddress_01 = -1; /* GSNAddress */
+static int hf_gprscdr_aFRecordInformation = -1; /* SEQUENCE_OF_AFRecordInformation */
+static int hf_gprscdr_aFRecordInformation_item = -1; /* AFRecordInformation */
+static int hf_gprscdr_eventBasedChargingInformation = -1; /* EventBasedChargingInformation */
+static int hf_gprscdr_timeQuotaMechanism = -1; /* TimeQuotaMechanism */
+static int hf_gprscdr_serviceSpecificInfo = -1; /* SEQUENCE_OF_ServiceSpecificInfo */
+static int hf_gprscdr_serviceSpecificInfo_item = -1; /* ServiceSpecificInfo */
+static int hf_gprscdr_mCC_MNC = -1; /* PLMN_Id */
+static int hf_gprscdr_qCI = -1; /* INTEGER */
+static int hf_gprscdr_maxRequestedBandwithUL = -1; /* INTEGER */
+static int hf_gprscdr_maxRequestedBandwithDL = -1; /* INTEGER */
+static int hf_gprscdr_guaranteedBitrateUL = -1; /* INTEGER */
+static int hf_gprscdr_guaranteedBitrateDL = -1; /* INTEGER */
+static int hf_gprscdr_aRP = -1; /* INTEGER */
+static int hf_gprscdr_aPNAggregateMaxBitrateUL = -1; /* INTEGER */
+static int hf_gprscdr_aPNAggregateMaxBitrateDL = -1; /* INTEGER */
+static int hf_gprscdr_numberOfEvents = -1; /* INTEGER */
+static int hf_gprscdr_eventTimeStamps = -1; /* SEQUENCE_OF_TimeStamp */
+static int hf_gprscdr_eventTimeStamps_item = -1; /* TimeStamp */
+static int hf_gprscdr_mediaComponentNumber = -1; /* INTEGER */
+static int hf_gprscdr_flowNumber = -1; /* T_flowNumber */
+static int hf_gprscdr_flowNumber_item = -1; /* INTEGER */
static int hf_gprscdr_pSFreeFormatData = -1; /* FreeFormatData */
static int hf_gprscdr_pSFFDAppendIndicator = -1; /* FFDAppendIndicator */
+static int hf_gprscdr_timeQuotaType = -1; /* TimeQuotaType */
+static int hf_gprscdr_baseTimeInterval = -1; /* INTEGER */
/* named bits */
static int hf_gprscdr_LevelOfCAMELService_basic = -1;
static int hf_gprscdr_LevelOfCAMELService_callDurationSupervision = -1;
static int hf_gprscdr_LevelOfCAMELService_onlineCharging = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_qoSChange = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_sGSNChange = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_sGSNPLMNIDChange = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_tariffTimeSwitch = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_pDPContextRelease = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_rATChange = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_serviceIdledOut = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_qCTExpiry = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_configurationChange = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_serviceStop = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_timeThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_volumeThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_timeExhausted = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_volumeExhausted = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_timeout = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_returnRequested = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_reauthorisationRequest = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_continueOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_retryAndTerminateOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChangeV651_terminateOngoingSession = -1;
static int hf_gprscdr_ServiceConditionChange_qoSChange = -1;
static int hf_gprscdr_ServiceConditionChange_sGSNChange = -1;
static int hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange = -1;
@@ -188,19 +276,31 @@ static int hf_gprscdr_ServiceConditionChange_tariffTimeSwitch = -1;
static int hf_gprscdr_ServiceConditionChange_pDPContextRelease = -1;
static int hf_gprscdr_ServiceConditionChange_rATChange = -1;
static int hf_gprscdr_ServiceConditionChange_serviceIdledOut = -1;
-static int hf_gprscdr_ServiceConditionChange_qCTExpiry = -1;
+static int hf_gprscdr_ServiceConditionChange_reserved = -1;
static int hf_gprscdr_ServiceConditionChange_configurationChange = -1;
static int hf_gprscdr_ServiceConditionChange_serviceStop = -1;
-static int hf_gprscdr_ServiceConditionChange_timeThresholdReached = -1;
-static int hf_gprscdr_ServiceConditionChange_volumeThresholdReached = -1;
-static int hf_gprscdr_ServiceConditionChange_timeExhausted = -1;
-static int hf_gprscdr_ServiceConditionChange_volumeExhausted = -1;
-static int hf_gprscdr_ServiceConditionChange_timeout = -1;
-static int hf_gprscdr_ServiceConditionChange_returnRequested = -1;
-static int hf_gprscdr_ServiceConditionChange_reauthorisationRequest = -1;
-static int hf_gprscdr_ServiceConditionChange_continueOngoingSession = -1;
-static int hf_gprscdr_ServiceConditionChange_retryAndTerminateOngoingSession = -1;
-static int hf_gprscdr_ServiceConditionChange_terminateOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCATimeThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAVolumeThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCATimeExhausted = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAVolumeExhausted = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAValidityTimeout = -1;
+static int hf_gprscdr_ServiceConditionChange_reserved1 = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAReauthorisationRequest = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAContinueOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCARetryAndTerminateOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCATerminateOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChange_cGI_SAIChange = -1;
+static int hf_gprscdr_ServiceConditionChange_rAIChange = -1;
+static int hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitExhausted = -1;
+static int hf_gprscdr_ServiceConditionChange_recordClosure = -1;
+static int hf_gprscdr_ServiceConditionChange_timeLimit = -1;
+static int hf_gprscdr_ServiceConditionChange_volumeLimit = -1;
+static int hf_gprscdr_ServiceConditionChange_serviceSpecificUnitLimit = -1;
+static int hf_gprscdr_ServiceConditionChange_envelopeClosure = -1;
+static int hf_gprscdr_ServiceConditionChange_eCGIChange = -1;
+static int hf_gprscdr_ServiceConditionChange_tAIChange = -1;
+static int hf_gprscdr_ServiceConditionChange_userLocationChange = -1;
/*--- End of included file: packet-gprscdr-hf.c ---*/
#line 47 "../../asn1/gprscdr/packet-gprscdr-template.c"
@@ -217,27 +317,52 @@ static gint ett_gprscdr_IPBinaryAddress = -1;
static gint ett_gprscdr_IPTextRepresentedAddress = -1;
static gint ett_gprscdr_LevelOfCAMELService = -1;
static gint ett_gprscdr_ManagementExtensions = -1;
+static gint ett_gprscdr_NodeAddress = -1;
+static gint ett_gprscdr_ServiceSpecificInfo = -1;
+static gint ett_gprscdr_SubscriptionID = -1;
static gint ett_gprscdr_ManagementExtension = -1;
static gint ett_gprscdr_GPRSCallEventRecord = -1;
static gint ett_gprscdr_GGSNPDPRecord = -1;
static gint ett_gprscdr_SEQUENCE_OF_GSNAddress = -1;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition = -1;
+static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 = -1;
static gint ett_gprscdr_EGSNPDPRecord = -1;
+static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651 = -1;
+static gint ett_gprscdr_SGSNPDPRecordV651 = -1;
+static gint ett_gprscdr_SGSNSMORecordV651 = -1;
+static gint ett_gprscdr_SGSNSMTRecordV651 = -1;
+static gint ett_gprscdr_ChangeOfCharConditionV651 = -1;
+static gint ett_gprscdr_ChangeOfServiceConditionV651 = -1;
+static gint ett_gprscdr_ChangeLocationV651 = -1;
+static gint ett_gprscdr_ServiceConditionChangeV651 = -1;
+static gint ett_gprscdr_GPRSRecord = -1;
+static gint ett_gprscdr_SGWRecord = -1;
+static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition = -1;
+static gint ett_gprscdr_SEQUENCE_OF_ServingNodeType = -1;
+static gint ett_gprscdr_PGWRecord = -1;
static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition = -1;
static gint ett_gprscdr_SGSNMMRecord = -1;
static gint ett_gprscdr_SEQUENCE_OF_ChangeLocation = -1;
static gint ett_gprscdr_SGSNPDPRecord = -1;
static gint ett_gprscdr_SGSNSMORecord = -1;
static gint ett_gprscdr_SGSNSMTRecord = -1;
+static gint ett_gprscdr_AFRecordInformation = -1;
static gint ett_gprscdr_CAMELInformationMM = -1;
static gint ett_gprscdr_CAMELInformationPDP = -1;
static gint ett_gprscdr_CAMELInformationSMS = -1;
static gint ett_gprscdr_ChangeOfCharCondition = -1;
static gint ett_gprscdr_ChangeOfServiceCondition = -1;
+static gint ett_gprscdr_SEQUENCE_OF_AFRecordInformation = -1;
+static gint ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo = -1;
static gint ett_gprscdr_ChangeLocation = -1;
+static gint ett_gprscdr_EPCQoSInformation = -1;
+static gint ett_gprscdr_EventBasedChargingInformation = -1;
+static gint ett_gprscdr_SEQUENCE_OF_TimeStamp = -1;
+static gint ett_gprscdr_Flows = -1;
+static gint ett_gprscdr_T_flowNumber = -1;
static gint ett_gprscdr_PDPAddress = -1;
static gint ett_gprscdr_PSFurnishChargingInformation = -1;
static gint ett_gprscdr_ServiceConditionChange = -1;
+static gint ett_gprscdr_TimeQuotaMechanism = -1;
/*--- End of included file: packet-gprscdr-ett.c ---*/
#line 52 "../../asn1/gprscdr/packet-gprscdr-template.c"
@@ -369,6 +494,103 @@ dissect_gprscdr_CallEventRecordType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
}
+static const value_string gprscdr_RecordType_vals[] = {
+ { 0, "moCallRecord" },
+ { 1, "mtCallRecord" },
+ { 2, "roamingRecord" },
+ { 3, "incGatewayRecord" },
+ { 4, "outGatewayRecord" },
+ { 5, "transitCallRecord" },
+ { 6, "moSMSRecord" },
+ { 7, "mtSMSRecord" },
+ { 8, "moSMSIWRecord" },
+ { 9, "mtSMSGWRecord" },
+ { 10, "ssActionRecord" },
+ { 11, "hlrIntRecord" },
+ { 12, "locUpdateHLRRecord" },
+ { 13, "locUpdateVLRRecord" },
+ { 14, "commonEquipRecord" },
+ { 15, "moTraceRecord" },
+ { 16, "mtTraceRecord" },
+ { 17, "termCAMELRecord" },
+ { 18, "sgsnPDPRecord" },
+ { 20, "sgsnMMRecord" },
+ { 21, "sgsnSMORecord" },
+ { 22, "sgsnSMTRecord" },
+ { 23, "mtLCSRecord" },
+ { 24, "moLCSRecord" },
+ { 25, "niLCSRecord" },
+ { 26, "sgsnMtLCSRecord" },
+ { 27, "sgsnMoLCSRecord" },
+ { 28, "sgsnNiLCSRecord" },
+ { 30, "mMO1SRecord" },
+ { 31, "mMO4FRqRecord" },
+ { 32, "mMO4FRsRecord" },
+ { 33, "mMO4DRecord" },
+ { 34, "mMO1DRecord" },
+ { 35, "mMO4RRecord" },
+ { 36, "mMO1RRecord" },
+ { 37, "mMOMDRecord" },
+ { 38, "mMR4FRecord" },
+ { 39, "mMR1NRqRecord" },
+ { 40, "mMR1NRsRecord" },
+ { 41, "mMR1RtRecord" },
+ { 42, "mMR1AFRecord" },
+ { 43, "mMR4DRqRecord" },
+ { 44, "mMR4DRsRecord" },
+ { 45, "mMR1RRRecord" },
+ { 46, "mMR4RRqRecord" },
+ { 47, "mMR4RRsRecord" },
+ { 48, "mMRMDRecord" },
+ { 49, "mMFRecord" },
+ { 50, "mMBx1SRecord" },
+ { 51, "mMBx1VRecord" },
+ { 52, "mMBx1URecord" },
+ { 53, "mMBx1DRecord" },
+ { 54, "mM7SRecord" },
+ { 55, "mM7DRqRecord" },
+ { 56, "mM7DRsRecord" },
+ { 57, "mM7CRecord" },
+ { 58, "mM7RRecord" },
+ { 59, "mM7DRRqRecord" },
+ { 60, "mM7DRRsRecord" },
+ { 61, "mM7RRqRecord" },
+ { 62, "mM7RRsRecord" },
+ { 63, "sCSCFRecord" },
+ { 64, "pCSCFRecord" },
+ { 65, "iCSCFRecord" },
+ { 66, "mRFCRecord" },
+ { 67, "mGCFRecord" },
+ { 68, "bGCFRecord" },
+ { 69, "aSRecord" },
+ { 82, "iBCFRecord" },
+ { 71, "lCSGMORecord" },
+ { 72, "lCSRGMTRecord" },
+ { 73, "lCSHGMTRecord" },
+ { 74, "lCSVGMTRecord" },
+ { 75, "lCSGNIRecord" },
+ { 76, "sgsnMBMSRecord" },
+ { 77, "ggsnMBMSRecord" },
+ { 78, "sUBBMSCRecord" },
+ { 79, "cONTENTBMSCRecord" },
+ { 80, "pPFRecord" },
+ { 81, "cPFRecord" },
+ { 84, "sGWRecord" },
+ { 85, "pGWRecord" },
+ { 83, "mMTelRecord" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gprscdr_RecordType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_gprscdr_CallingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -419,7 +641,7 @@ dissect_gprscdr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gprscdr_T_information(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 45 "../../asn1/gprscdr/gprscdr.cnf"
+#line 48 "../../asn1/gprscdr/gprscdr.cnf"
proto_tree_add_text(tree, tvb, offset, -1, "Not dissected");
@@ -622,6 +844,16 @@ dissect_gprscdr_LocationAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
}
+
+static int
+dissect_gprscdr_MCC_MNC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *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 ManagementExtensions_set_of[1] = {
{ &hf_gprscdr_ManagementExtensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ManagementExtension },
};
@@ -657,7 +889,7 @@ dissect_gprscdr_MSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gprscdr_MSTimeZone(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 88 "../../asn1/gprscdr/gprscdr.cnf"
+#line 91 "../../asn1/gprscdr/gprscdr.cnf"
/*
*
* 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
@@ -694,6 +926,39 @@ dissect_gprscdr_MSTimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
+dissect_gprscdr_GraphicString(gboolean implicit_tag _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_GraphicString,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gprscdr_NodeAddress_vals[] = {
+ { 0, "iPAddress" },
+ { 1, "domainName" },
+ { 0, NULL }
+};
+
+static const ber_choice_t NodeAddress_choice[] = {
+ { 0, &hf_gprscdr_iPAddress , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPAddress },
+ { 1, &hf_gprscdr_domainName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_NodeAddress(gboolean implicit_tag _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,
+ NodeAddress_choice, hf_index, ett_gprscdr_NodeAddress,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
dissect_gprscdr_RecordingEntity(gboolean implicit_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);
@@ -703,6 +968,32 @@ dissect_gprscdr_RecordingEntity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
+dissect_gprscdr_ServiceContextID(gboolean implicit_tag _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_UTF8String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ServiceSpecificInfo_sequence[] = {
+ { &hf_gprscdr_serviceSpecificData, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_GraphicString },
+ { &hf_gprscdr_serviceSpecificType, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_ServiceSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ServiceSpecificInfo_sequence, hf_index, ett_gprscdr_ServiceSpecificInfo);
+
+ return offset;
+}
+
+
+
+static int
dissect_gprscdr_SMSResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_gprscdr_Diagnostics(implicit_tag, tvb, offset, actx, tree, hf_index);
@@ -720,10 +1011,55 @@ dissect_gprscdr_SmsTpDestinationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb
}
+static const value_string gprscdr_SubscriptionIDType_vals[] = {
+ { 0, "eND-USER-E164" },
+ { 1, "eND-USER-IMSI" },
+ { 2, "eND-USER-SIP-URI" },
+ { 3, "eND-USER-NAI" },
+ { 4, "eND-USER-PRIVATE" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gprscdr_SubscriptionIDType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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_gprscdr_UTF8String(gboolean implicit_tag _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_UTF8String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SubscriptionID_set[] = {
+ { &hf_gprscdr_subscriptionIDType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionIDType },
+ { &hf_gprscdr_subscriptionIDData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_UTF8String },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_SubscriptionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ SubscriptionID_set, hf_index, ett_gprscdr_SubscriptionID);
+
+ return offset;
+}
+
+
static int
dissect_gprscdr_TimeStamp(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 49 "../../asn1/gprscdr/gprscdr.cnf"
+#line 52 "../../asn1/gprscdr/gprscdr.cnf"
/*
*
* The contents of this field are a compact form of the UTCTime format
@@ -839,24 +1175,13 @@ dissect_gprscdr_PDPType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-
-static int
-dissect_gprscdr_ETSIAddress(gboolean implicit_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 const value_string gprscdr_PDPAddress_vals[] = {
{ 0, "iPAddress" },
- { 1, "eTSIAddress" },
{ 0, NULL }
};
static const ber_choice_t PDPAddress_choice[] = {
{ 0, &hf_gprscdr_iPAddress , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPAddress },
- { 1, &hf_gprscdr_eTSIAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_ETSIAddress },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -890,7 +1215,7 @@ dissect_gprscdr_DataVolumeGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const value_string gprscdr_ChangeCondition_vals[] = {
+static const value_string gprscdr_ChangeConditionV651_vals[] = {
{ 0, "qoSChange" },
{ 1, "tariffTime" },
{ 2, "recordClosure" },
@@ -902,7 +1227,7 @@ static const value_string gprscdr_ChangeCondition_vals[] = {
static int
-dissect_gprscdr_ChangeCondition(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_gprscdr_ChangeConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -910,33 +1235,33 @@ dissect_gprscdr_ChangeCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-static const ber_sequence_t ChangeOfCharCondition_sequence[] = {
+static const ber_sequence_t ChangeOfCharConditionV651_sequence[] = {
{ &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_dataVolumeGPRSUplink, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
{ &hf_gprscdr_dataVolumeGPRSDownlink, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
- { &hf_gprscdr_changeCondition, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
+ { &hf_gprscdr_changeCondition, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeConditionV651 },
{ &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_gprscdr_ChangeOfCharCondition(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_gprscdr_ChangeOfCharConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ChangeOfCharCondition_sequence, hf_index, ett_gprscdr_ChangeOfCharCondition);
+ ChangeOfCharConditionV651_sequence, hf_index, ett_gprscdr_ChangeOfCharConditionV651);
return offset;
}
-static const ber_sequence_t SEQUENCE_OF_ChangeOfCharCondition_sequence_of[1] = {
- { &hf_gprscdr_listOfTrafficVolumes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharCondition },
+static const ber_sequence_t SEQUENCE_OF_ChangeOfCharConditionV651_sequence_of[1] = {
+ { &hf_gprscdr_listOfTrafficVolumes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharConditionV651 },
};
static int
-dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition(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_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651(gboolean implicit_tag _U_, 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,
- SEQUENCE_OF_ChangeOfCharCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition);
+ SEQUENCE_OF_ChangeOfCharConditionV651_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651);
return offset;
}
@@ -951,7 +1276,7 @@ dissect_gprscdr_SGSNChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
-static const value_string gprscdr_CauseForRecClosing_vals[] = {
+static const value_string gprscdr_CauseForRecClosingV651_vals[] = {
{ 0, "normalRelease" },
{ 4, "abnormalRelease" },
{ 5, "cAMELInitCallRelease" },
@@ -973,7 +1298,7 @@ static const value_string gprscdr_CauseForRecClosing_vals[] = {
static int
-dissect_gprscdr_CauseForRecClosing(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_gprscdr_CauseForRecClosingV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1129,7 +1454,7 @@ dissect_gprscdr_CAMELInformationPDP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static const value_string gprscdr_ChChSelectionMode_vals[] = {
- { 0, "sGSNSupplied" },
+ { 0, "servingNodeSupplied" },
{ 1, "subscriptionSpecific" },
{ 2, "aPNSpecific" },
{ 3, "homeDefault" },
@@ -1157,7 +1482,7 @@ dissect_gprscdr_DynamicAddressFlag(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
-static const ber_sequence_t SGSNPDPRecord_set[] = {
+static const ber_sequence_t SGSNPDPRecordV651_set[] = {
{ &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
{ &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
{ &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
@@ -1172,11 +1497,11 @@ static const ber_sequence_t SGSNPDPRecord_set[] = {
{ &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
{ &hf_gprscdr_pdpType , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
{ &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
- { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
+ { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
{ &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_duration , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
{ &hf_gprscdr_sgsnChange , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNChange },
- { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
{ &hf_gprscdr_diagnostics , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
{ &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
{ &hf_gprscdr_nodeID , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
@@ -1195,9 +1520,9 @@ static const ber_sequence_t SGSNPDPRecord_set[] = {
};
static int
-dissect_gprscdr_SGSNPDPRecord(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_gprscdr_SGSNPDPRecordV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- SGSNPDPRecord_set, hf_index, ett_gprscdr_SGSNPDPRecord);
+ SGSNPDPRecordV651_set, hf_index, ett_gprscdr_SGSNPDPRecordV651);
return offset;
}
@@ -1238,7 +1563,7 @@ dissect_gprscdr_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_gprscdr_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_) {
-#line 115 "../../asn1/gprscdr/gprscdr.cnf"
+#line 118 "../../asn1/gprscdr/gprscdr.cnf"
tvbuff_t *parameter_tvb;
proto_tree *subtree;
@@ -1269,10 +1594,10 @@ static const ber_sequence_t GGSNPDPRecord_set[] = {
{ &hf_gprscdr_pdpType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
{ &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
{ &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
- { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
+ { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
{ &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
- { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
{ &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
{ &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
{ &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
@@ -1307,6 +1632,7 @@ static const ber_sequence_t ChangeLocation_sequence[] = {
{ &hf_gprscdr_routingAreaCode, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
{ &hf_gprscdr_cellId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
{ &hf_gprscdr_changeTime , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_mCC_MNC , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
{ NULL, 0, 0, 0, NULL }
};
@@ -1332,6 +1658,37 @@ dissect_gprscdr_SEQUENCE_OF_ChangeLocation(gboolean implicit_tag _U_, tvbuff_t *
}
+static const value_string gprscdr_CauseForRecClosing_vals[] = {
+ { 0, "normalRelease" },
+ { 4, "abnormalRelease" },
+ { 5, "cAMELInitCallRelease" },
+ { 16, "volumeLimit" },
+ { 17, "timeLimit" },
+ { 18, "servingNodeChange" },
+ { 19, "maxChangeCond" },
+ { 20, "managementIntervention" },
+ { 21, "intraSGSNIntersystemChange" },
+ { 22, "rATChange" },
+ { 23, "mSTimeZoneChange" },
+ { 24, "sGSNPLMNIDChange" },
+ { 52, "unauthorizedRequestingNetwork" },
+ { 53, "unauthorizedLCSClient" },
+ { 54, "positionMethodFailure" },
+ { 58, "unknownOrUnreachableLCSClient" },
+ { 59, "listofDownstreamNodeChange" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gprscdr_CauseForRecClosing(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 CAMELInformationMM_set[] = {
{ &hf_gprscdr_sCFAddress , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SCFAddress },
{ &hf_gprscdr_serviceKey , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_ServiceKey },
@@ -1353,7 +1710,7 @@ dissect_gprscdr_CAMELInformationMM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static const ber_sequence_t SGSNMMRecord_set[] = {
- { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
+ { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
{ &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
{ &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
{ &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
@@ -1365,7 +1722,7 @@ static const ber_sequence_t SGSNMMRecord_set[] = {
{ &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_duration , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
{ &hf_gprscdr_sgsnChange , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNChange },
- { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
{ &hf_gprscdr_diagnostics , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
{ &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
{ &hf_gprscdr_nodeID , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
@@ -1376,6 +1733,7 @@ static const ber_sequence_t SGSNMMRecord_set[] = {
{ &hf_gprscdr_cAMELInformationMM, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationMM },
{ &hf_gprscdr_rATType , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
{ &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
+ { &hf_gprscdr_cellPLMNId , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
{ NULL, 0, 0, 0, NULL }
};
@@ -1409,7 +1767,7 @@ dissect_gprscdr_CAMELInformationSMS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
}
-static const ber_sequence_t SGSNSMORecord_set[] = {
+static const ber_sequence_t SGSNSMORecordV651_set[] = {
{ &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
{ &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
{ &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
@@ -1435,15 +1793,15 @@ static const ber_sequence_t SGSNSMORecord_set[] = {
};
static int
-dissect_gprscdr_SGSNSMORecord(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_gprscdr_SGSNSMORecordV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- SGSNSMORecord_set, hf_index, ett_gprscdr_SGSNSMORecord);
+ SGSNSMORecordV651_set, hf_index, ett_gprscdr_SGSNSMORecordV651);
return offset;
}
-static const ber_sequence_t SGSNSMTRecord_set[] = {
+static const ber_sequence_t SGSNSMTRecordV651_set[] = {
{ &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
{ &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
{ &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
@@ -1467,9 +1825,9 @@ static const ber_sequence_t SGSNSMTRecord_set[] = {
};
static int
-dissect_gprscdr_SGSNSMTRecord(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_gprscdr_SGSNSMTRecordV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- SGSNSMTRecord_set, hf_index, ett_gprscdr_SGSNSMTRecord);
+ SGSNSMTRecordV651_set, hf_index, ett_gprscdr_SGSNSMTRecordV651);
return offset;
}
@@ -1521,34 +1879,34 @@ dissect_gprscdr_ResultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
-static const asn_namedbit ServiceConditionChange_bits[] = {
- { 0, &hf_gprscdr_ServiceConditionChange_qoSChange, -1, -1, "qoSChange", NULL },
- { 1, &hf_gprscdr_ServiceConditionChange_sGSNChange, -1, -1, "sGSNChange", NULL },
- { 2, &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange, -1, -1, "sGSNPLMNIDChange", NULL },
- { 3, &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch, -1, -1, "tariffTimeSwitch", NULL },
- { 4, &hf_gprscdr_ServiceConditionChange_pDPContextRelease, -1, -1, "pDPContextRelease", NULL },
- { 5, &hf_gprscdr_ServiceConditionChange_rATChange, -1, -1, "rATChange", NULL },
- { 6, &hf_gprscdr_ServiceConditionChange_serviceIdledOut, -1, -1, "serviceIdledOut", NULL },
- { 7, &hf_gprscdr_ServiceConditionChange_qCTExpiry, -1, -1, "qCTExpiry", NULL },
- { 8, &hf_gprscdr_ServiceConditionChange_configurationChange, -1, -1, "configurationChange", NULL },
- { 9, &hf_gprscdr_ServiceConditionChange_serviceStop, -1, -1, "serviceStop", NULL },
- { 10, &hf_gprscdr_ServiceConditionChange_timeThresholdReached, -1, -1, "timeThresholdReached", NULL },
- { 11, &hf_gprscdr_ServiceConditionChange_volumeThresholdReached, -1, -1, "volumeThresholdReached", NULL },
- { 13, &hf_gprscdr_ServiceConditionChange_timeExhausted, -1, -1, "timeExhausted", NULL },
- { 14, &hf_gprscdr_ServiceConditionChange_volumeExhausted, -1, -1, "volumeExhausted", NULL },
- { 15, &hf_gprscdr_ServiceConditionChange_timeout, -1, -1, "timeout", NULL },
- { 16, &hf_gprscdr_ServiceConditionChange_returnRequested, -1, -1, "returnRequested", NULL },
- { 17, &hf_gprscdr_ServiceConditionChange_reauthorisationRequest, -1, -1, "reauthorisationRequest", NULL },
- { 18, &hf_gprscdr_ServiceConditionChange_continueOngoingSession, -1, -1, "continueOngoingSession", NULL },
- { 19, &hf_gprscdr_ServiceConditionChange_retryAndTerminateOngoingSession, -1, -1, "retryAndTerminateOngoingSession", NULL },
- { 20, &hf_gprscdr_ServiceConditionChange_terminateOngoingSession, -1, -1, "terminateOngoingSession", NULL },
+static const asn_namedbit ServiceConditionChangeV651_bits[] = {
+ { 0, &hf_gprscdr_ServiceConditionChangeV651_qoSChange, -1, -1, "qoSChange", NULL },
+ { 1, &hf_gprscdr_ServiceConditionChangeV651_sGSNChange, -1, -1, "sGSNChange", NULL },
+ { 2, &hf_gprscdr_ServiceConditionChangeV651_sGSNPLMNIDChange, -1, -1, "sGSNPLMNIDChange", NULL },
+ { 3, &hf_gprscdr_ServiceConditionChangeV651_tariffTimeSwitch, -1, -1, "tariffTimeSwitch", NULL },
+ { 4, &hf_gprscdr_ServiceConditionChangeV651_pDPContextRelease, -1, -1, "pDPContextRelease", NULL },
+ { 5, &hf_gprscdr_ServiceConditionChangeV651_rATChange, -1, -1, "rATChange", NULL },
+ { 6, &hf_gprscdr_ServiceConditionChangeV651_serviceIdledOut, -1, -1, "serviceIdledOut", NULL },
+ { 7, &hf_gprscdr_ServiceConditionChangeV651_qCTExpiry, -1, -1, "qCTExpiry", NULL },
+ { 8, &hf_gprscdr_ServiceConditionChangeV651_configurationChange, -1, -1, "configurationChange", NULL },
+ { 9, &hf_gprscdr_ServiceConditionChangeV651_serviceStop, -1, -1, "serviceStop", NULL },
+ { 10, &hf_gprscdr_ServiceConditionChangeV651_timeThresholdReached, -1, -1, "timeThresholdReached", NULL },
+ { 11, &hf_gprscdr_ServiceConditionChangeV651_volumeThresholdReached, -1, -1, "volumeThresholdReached", NULL },
+ { 13, &hf_gprscdr_ServiceConditionChangeV651_timeExhausted, -1, -1, "timeExhausted", NULL },
+ { 14, &hf_gprscdr_ServiceConditionChangeV651_volumeExhausted, -1, -1, "volumeExhausted", NULL },
+ { 15, &hf_gprscdr_ServiceConditionChangeV651_timeout, -1, -1, "timeout", NULL },
+ { 16, &hf_gprscdr_ServiceConditionChangeV651_returnRequested, -1, -1, "returnRequested", NULL },
+ { 17, &hf_gprscdr_ServiceConditionChangeV651_reauthorisationRequest, -1, -1, "reauthorisationRequest", NULL },
+ { 18, &hf_gprscdr_ServiceConditionChangeV651_continueOngoingSession, -1, -1, "continueOngoingSession", NULL },
+ { 19, &hf_gprscdr_ServiceConditionChangeV651_retryAndTerminateOngoingSession, -1, -1, "retryAndTerminateOngoingSession", NULL },
+ { 20, &hf_gprscdr_ServiceConditionChangeV651_terminateOngoingSession, -1, -1, "terminateOngoingSession", NULL },
{ 0, NULL, 0, 0, NULL, NULL }
};
static int
-dissect_gprscdr_ServiceConditionChange(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_gprscdr_ServiceConditionChangeV651(gboolean implicit_tag _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,
- ServiceConditionChange_bits, hf_index, ett_gprscdr_ServiceConditionChange,
+ ServiceConditionChangeV651_bits, hf_index, ett_gprscdr_ServiceConditionChangeV651,
NULL);
return offset;
@@ -1574,7 +1932,7 @@ dissect_gprscdr_ServiceIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
-static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
+static const ber_sequence_t ChangeOfServiceConditionV651_sequence[] = {
{ &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
{ &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName },
{ &hf_gprscdr_resultCode , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ResultCode },
@@ -1582,7 +1940,7 @@ static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
{ &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_timeUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
- { &hf_gprscdr_serviceConditionChange, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChange },
+ { &hf_gprscdr_serviceConditionChange, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChangeV651 },
{ &hf_gprscdr_qoSInformationNeg, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_sgsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
{ &hf_gprscdr_sGSNPLMNIdentifier, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
@@ -1597,22 +1955,22 @@ static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
};
static int
-dissect_gprscdr_ChangeOfServiceCondition(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_gprscdr_ChangeOfServiceConditionV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- ChangeOfServiceCondition_sequence, hf_index, ett_gprscdr_ChangeOfServiceCondition);
+ ChangeOfServiceConditionV651_sequence, hf_index, ett_gprscdr_ChangeOfServiceConditionV651);
return offset;
}
-static const ber_sequence_t SEQUENCE_OF_ChangeOfServiceCondition_sequence_of[1] = {
- { &hf_gprscdr_listOfServiceData_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfServiceCondition },
+static const ber_sequence_t SEQUENCE_OF_ChangeOfServiceConditionV651_sequence_of[1] = {
+ { &hf_gprscdr_listOfServiceData_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfServiceConditionV651 },
};
static int
-dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition(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_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651(gboolean implicit_tag _U_, 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,
- SEQUENCE_OF_ChangeOfServiceCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition);
+ SEQUENCE_OF_ChangeOfServiceConditionV651_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651);
return offset;
}
@@ -1629,10 +1987,10 @@ static const ber_sequence_t EGSNPDPRecord_set[] = {
{ &hf_gprscdr_pdpType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
{ &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
{ &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
- { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
+ { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651 },
{ &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
- { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosingV651 },
{ &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
{ &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
{ &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
@@ -1651,7 +2009,7 @@ static const ber_sequence_t EGSNPDPRecord_set[] = {
{ &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
{ &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
{ &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
- { &hf_gprscdr_listOfServiceData, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition },
+ { &hf_gprscdr_listOfServiceData, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651 },
{ NULL, 0, 0, 0, NULL }
};
@@ -1675,11 +2033,11 @@ const value_string gprscdr_GPRSCallEventRecord_vals[] = {
};
static const ber_choice_t GPRSCallEventRecord_choice[] = {
- { 20, &hf_gprscdr_sgsnPDPRecord, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPDPRecord },
+ { 20, &hf_gprscdr_sgsnPDPRecord, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPDPRecordV651 },
{ 21, &hf_gprscdr_ggsnPDPRecord, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNPDPRecord },
{ 22, &hf_gprscdr_sgsnMMRecord, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMMRecord },
- { 23, &hf_gprscdr_sgsnSMORecord, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecord },
- { 24, &hf_gprscdr_sgsnSMTRecord, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecord },
+ { 23, &hf_gprscdr_sgsnSMORecord, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecordV651 },
+ { 24, &hf_gprscdr_sgsnSMTRecord, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecordV651 },
{ 28, &hf_gprscdr_egsnPDPRecord, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_gprscdr_EGSNPDPRecord },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1693,6 +2051,622 @@ dissect_gprscdr_GPRSCallEventRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
return offset;
}
+
+static const ber_sequence_t ChangeLocationV651_sequence[] = {
+ { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
+ { &hf_gprscdr_routingAreaCode, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
+ { &hf_gprscdr_cellId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
+ { &hf_gprscdr_changeTime , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_ChangeLocationV651(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ChangeLocationV651_sequence, hf_index, ett_gprscdr_ChangeLocationV651);
+
+ return offset;
+}
+
+
+static const value_string gprscdr_ChangeCondition_vals[] = {
+ { 0, "qoSChange" },
+ { 1, "tariffTime" },
+ { 2, "recordClosure" },
+ { 6, "cGI-SAICHange" },
+ { 7, "rAIChange" },
+ { 8, "dT-Establishment" },
+ { 9, "dT-Removal" },
+ { 10, "eCGIChange" },
+ { 11, "tAIChange" },
+ { 12, "userLocationChange" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gprscdr_ChangeCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 EPCQoSInformation_sequence[] = {
+ { &hf_gprscdr_qCI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_maxRequestedBandwithUL, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_maxRequestedBandwithDL, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_guaranteedBitrateUL, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_guaranteedBitrateDL, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_aRP , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_aPNAggregateMaxBitrateUL, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_aPNAggregateMaxBitrateDL, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_EPCQoSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EPCQoSInformation_sequence, hf_index, ett_gprscdr_EPCQoSInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ChangeOfCharCondition_sequence[] = {
+ { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
+ { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
+ { &hf_gprscdr_dataVolumeGPRSUplink, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_dataVolumeGPRSDownlink, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
+ { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_ePCQoSInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_ChangeOfCharCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ChangeOfCharCondition_sequence, hf_index, ett_gprscdr_ChangeOfCharCondition);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_ChangeOfCharCondition_sequence_of[1] = {
+ { &hf_gprscdr_listOfTrafficVolumes_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharCondition },
+};
+
+static int
+dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition(gboolean implicit_tag _U_, 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,
+ SEQUENCE_OF_ChangeOfCharCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SGSNPDPRecord_set[] = {
+ { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
+ { &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
+ { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
+ { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
+ { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
+ { &hf_gprscdr_routingArea , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
+ { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
+ { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
+ { &hf_gprscdr_chargingID , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
+ { &hf_gprscdr_ggsnAddressUsed, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
+ { &hf_gprscdr_pdpType , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
+ { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
+ { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
+ { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_duration , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
+ { &hf_gprscdr_sgsnChange , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNChange },
+ { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_diagnostics , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
+ { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_nodeID , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
+ { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
+ { &hf_gprscdr_accessPointNameOI, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameOI },
+ { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
+ { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
+ { &hf_gprscdr_rATType , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_cAMELInformationPDP, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationPDP },
+ { &hf_gprscdr_rNCUnsentDownlinkVolume, BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
+ { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_SGSNPDPRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ SGSNPDPRecord_set, hf_index, ett_gprscdr_SGSNPDPRecord);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SGSNSMORecord_set[] = {
+ { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
+ { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
+ { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
+ { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
+ { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
+ { &hf_gprscdr_serviceCentre, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
+ { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
+ { &hf_gprscdr_locationArea, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
+ { &hf_gprscdr_routingArea , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
+ { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
+ { &hf_gprscdr_messageReference, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_MessageReference },
+ { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_smsResult , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_SMSResult },
+ { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
+ { &hf_gprscdr_nodeID , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
+ { &hf_gprscdr_rATType , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_destinationNumber, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SmsTpDestinationNumber },
+ { &hf_gprscdr_cAMELInformationSMS, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationSMS },
+ { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_SGSNSMORecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ SGSNSMORecord_set, hf_index, ett_gprscdr_SGSNSMORecord);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SGSNSMTRecord_set[] = {
+ { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
+ { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
+ { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
+ { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
+ { &hf_gprscdr_msNetworkCapability, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSNetworkCapability },
+ { &hf_gprscdr_serviceCentre, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
+ { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity },
+ { &hf_gprscdr_locationArea, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode },
+ { &hf_gprscdr_routingArea , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
+ { &hf_gprscdr_cellIdentifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId },
+ { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_smsResult , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_SMSResult },
+ { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
+ { &hf_gprscdr_nodeID , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
+ { &hf_gprscdr_rATType , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
+ { &hf_gprscdr_cAMELInformationSMS, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CAMELInformationSMS },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_SGSNSMTRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ SGSNSMTRecord_set, hf_index, ett_gprscdr_SGSNSMTRecord);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gprscdr_SGWChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const value_string gprscdr_ServingNodeType_vals[] = {
+ { 0, "sGSN" },
+ { 1, "pMIPSGW" },
+ { 2, "gTPSGW" },
+ { 3, "ePDG" },
+ { 4, "hSGW" },
+ { 5, "mME" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gprscdr_ServingNodeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 SEQUENCE_OF_ServingNodeType_sequence_of[1] = {
+ { &hf_gprscdr_servingNodeType_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ServingNodeType },
+};
+
+static int
+dissect_gprscdr_SEQUENCE_OF_ServingNodeType(gboolean implicit_tag _U_, 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,
+ SEQUENCE_OF_ServingNodeType_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ServingNodeType);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SGWRecord_set[] = {
+ { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
+ { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
+ { &hf_gprscdr_s_GWAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
+ { &hf_gprscdr_servingNodeAddress, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
+ { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
+ { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
+ { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
+ { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
+ { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
+ { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
+ { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
+ { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
+ { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
+ { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
+ { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
+ { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
+ { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
+ { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
+ { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
+ { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
+ { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_sGWChange , BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWChange },
+ { &hf_gprscdr_servingNodeType, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServingNodeType },
+ { &hf_gprscdr_p_GWAddressUsed, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
+ { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
+ { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
+ { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_SGWRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ SGWRecord_set, hf_index, ett_gprscdr_SGWRecord);
+
+ return offset;
+}
+
+
+static const asn_namedbit ServiceConditionChange_bits[] = {
+ { 0, &hf_gprscdr_ServiceConditionChange_qoSChange, -1, -1, "qoSChange", NULL },
+ { 1, &hf_gprscdr_ServiceConditionChange_sGSNChange, -1, -1, "sGSNChange", NULL },
+ { 2, &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange, -1, -1, "sGSNPLMNIDChange", NULL },
+ { 3, &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch, -1, -1, "tariffTimeSwitch", NULL },
+ { 4, &hf_gprscdr_ServiceConditionChange_pDPContextRelease, -1, -1, "pDPContextRelease", NULL },
+ { 5, &hf_gprscdr_ServiceConditionChange_rATChange, -1, -1, "rATChange", NULL },
+ { 6, &hf_gprscdr_ServiceConditionChange_serviceIdledOut, -1, -1, "serviceIdledOut", NULL },
+ { 7, &hf_gprscdr_ServiceConditionChange_reserved, -1, -1, "reserved", NULL },
+ { 8, &hf_gprscdr_ServiceConditionChange_configurationChange, -1, -1, "configurationChange", NULL },
+ { 9, &hf_gprscdr_ServiceConditionChange_serviceStop, -1, -1, "serviceStop", NULL },
+ { 10, &hf_gprscdr_ServiceConditionChange_dCCATimeThresholdReached, -1, -1, "dCCATimeThresholdReached", NULL },
+ { 11, &hf_gprscdr_ServiceConditionChange_dCCAVolumeThresholdReached, -1, -1, "dCCAVolumeThresholdReached", NULL },
+ { 12, &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitThresholdReached, -1, -1, "dCCAServiceSpecificUnitThresholdReached", NULL },
+ { 13, &hf_gprscdr_ServiceConditionChange_dCCATimeExhausted, -1, -1, "dCCATimeExhausted", NULL },
+ { 14, &hf_gprscdr_ServiceConditionChange_dCCAVolumeExhausted, -1, -1, "dCCAVolumeExhausted", NULL },
+ { 15, &hf_gprscdr_ServiceConditionChange_dCCAValidityTimeout, -1, -1, "dCCAValidityTimeout", NULL },
+ { 16, &hf_gprscdr_ServiceConditionChange_reserved1, -1, -1, "reserved1", NULL },
+ { 17, &hf_gprscdr_ServiceConditionChange_dCCAReauthorisationRequest, -1, -1, "dCCAReauthorisationRequest", NULL },
+ { 18, &hf_gprscdr_ServiceConditionChange_dCCAContinueOngoingSession, -1, -1, "dCCAContinueOngoingSession", NULL },
+ { 19, &hf_gprscdr_ServiceConditionChange_dCCARetryAndTerminateOngoingSession, -1, -1, "dCCARetryAndTerminateOngoingSession", NULL },
+ { 20, &hf_gprscdr_ServiceConditionChange_dCCATerminateOngoingSession, -1, -1, "dCCATerminateOngoingSession", NULL },
+ { 21, &hf_gprscdr_ServiceConditionChange_cGI_SAIChange, -1, -1, "cGI-SAIChange", NULL },
+ { 22, &hf_gprscdr_ServiceConditionChange_rAIChange, -1, -1, "rAIChange", NULL },
+ { 23, &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitExhausted, -1, -1, "dCCAServiceSpecificUnitExhausted", NULL },
+ { 24, &hf_gprscdr_ServiceConditionChange_recordClosure, -1, -1, "recordClosure", NULL },
+ { 25, &hf_gprscdr_ServiceConditionChange_timeLimit, -1, -1, "timeLimit", NULL },
+ { 26, &hf_gprscdr_ServiceConditionChange_volumeLimit, -1, -1, "volumeLimit", NULL },
+ { 27, &hf_gprscdr_ServiceConditionChange_serviceSpecificUnitLimit, -1, -1, "serviceSpecificUnitLimit", NULL },
+ { 28, &hf_gprscdr_ServiceConditionChange_envelopeClosure, -1, -1, "envelopeClosure", NULL },
+ { 29, &hf_gprscdr_ServiceConditionChange_eCGIChange, -1, -1, "eCGIChange", NULL },
+ { 30, &hf_gprscdr_ServiceConditionChange_tAIChange, -1, -1, "tAIChange", NULL },
+ { 31, &hf_gprscdr_ServiceConditionChange_userLocationChange, -1, -1, "userLocationChange", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_gprscdr_ServiceConditionChange(gboolean implicit_tag _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,
+ ServiceConditionChange_bits, hf_index, ett_gprscdr_ServiceConditionChange,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gprscdr_AFChargingIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *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 T_flowNumber_sequence_of[1] = {
+ { &hf_gprscdr_flowNumber_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_gprscdr_INTEGER },
+};
+
+static int
+dissect_gprscdr_T_flowNumber(gboolean implicit_tag _U_, 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_flowNumber_sequence_of, hf_index, ett_gprscdr_T_flowNumber);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Flows_sequence[] = {
+ { &hf_gprscdr_mediaComponentNumber, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_flowNumber , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_T_flowNumber },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_Flows(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ Flows_sequence, hf_index, ett_gprscdr_Flows);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AFRecordInformation_sequence[] = {
+ { &hf_gprscdr_aFChargingIdentifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_AFChargingIdentifier },
+ { &hf_gprscdr_flows , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_Flows },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_AFRecordInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ AFRecordInformation_sequence, hf_index, ett_gprscdr_AFRecordInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_AFRecordInformation_sequence_of[1] = {
+ { &hf_gprscdr_aFRecordInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_AFRecordInformation },
+};
+
+static int
+dissect_gprscdr_SEQUENCE_OF_AFRecordInformation(gboolean implicit_tag _U_, 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,
+ SEQUENCE_OF_AFRecordInformation_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_AFRecordInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_TimeStamp_sequence_of[1] = {
+ { &hf_gprscdr_eventTimeStamps_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gprscdr_TimeStamp },
+};
+
+static int
+dissect_gprscdr_SEQUENCE_OF_TimeStamp(gboolean implicit_tag _U_, 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,
+ SEQUENCE_OF_TimeStamp_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_TimeStamp);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EventBasedChargingInformation_sequence[] = {
+ { &hf_gprscdr_numberOfEvents, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_eventTimeStamps, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_TimeStamp },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_EventBasedChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ EventBasedChargingInformation_sequence, hf_index, ett_gprscdr_EventBasedChargingInformation);
+
+ return offset;
+}
+
+
+static const value_string gprscdr_TimeQuotaType_vals[] = {
+ { 0, "dISCRETETIMEPERIOD" },
+ { 1, "cONTINUOUSTIMEPERIOD" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gprscdr_TimeQuotaType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 TimeQuotaMechanism_sequence[] = {
+ { &hf_gprscdr_timeQuotaType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeQuotaType },
+ { &hf_gprscdr_baseTimeInterval, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_TimeQuotaMechanism(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ TimeQuotaMechanism_sequence, hf_index, ett_gprscdr_TimeQuotaMechanism);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_ServiceSpecificInfo_sequence_of[1] = {
+ { &hf_gprscdr_serviceSpecificInfo_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ServiceSpecificInfo },
+};
+
+static int
+dissect_gprscdr_SEQUENCE_OF_ServiceSpecificInfo(gboolean implicit_tag _U_, 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,
+ SEQUENCE_OF_ServiceSpecificInfo_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
+ { &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
+ { &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName },
+ { &hf_gprscdr_resultCode , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ResultCode },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_timeUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
+ { &hf_gprscdr_serviceConditionChange_01, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChange },
+ { &hf_gprscdr_qoSInformationNeg_01, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
+ { &hf_gprscdr_servingNodeAddress_01, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_datavolumeFBCUplink, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_datavolumeFBCDownlink, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_timeOfReport, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
+ { &hf_gprscdr_serviceIdentifier, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceIdentifier },
+ { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
+ { &hf_gprscdr_aFRecordInformation, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_AFRecordInformation },
+ { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_eventBasedChargingInformation, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EventBasedChargingInformation },
+ { &hf_gprscdr_timeQuotaMechanism, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeQuotaMechanism },
+ { &hf_gprscdr_serviceSpecificInfo, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServiceSpecificInfo },
+ { &hf_gprscdr_tGPP2UserLocationInformation, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_ChangeOfServiceCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ ChangeOfServiceCondition_sequence, hf_index, ett_gprscdr_ChangeOfServiceCondition);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_ChangeOfServiceCondition_sequence_of[1] = {
+ { &hf_gprscdr_listOfServiceData_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfServiceCondition },
+};
+
+static int
+dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition(gboolean implicit_tag _U_, 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,
+ SEQUENCE_OF_ChangeOfServiceCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition);
+
+ return offset;
+}
+
+
+static const ber_sequence_t PGWRecord_set[] = {
+ { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
+ { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
+ { &hf_gprscdr_p_GWAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
+ { &hf_gprscdr_servingNodeAddress, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
+ { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
+ { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType },
+ { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
+ { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
+ { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
+ { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
+ { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
+ { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
+ { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
+ { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode },
+ { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN },
+ { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics },
+ { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode },
+ { &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
+ { &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_servinggNodePLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
+ { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
+ { &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
+ { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
+ { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_cAMELChargingInformation, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_listOfServiceData_01, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition },
+ { &hf_gprscdr_servingNodeType, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ServingNodeType },
+ { &hf_gprscdr_servedMNNAI , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SubscriptionID },
+ { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
+ { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_served3gpp2MEID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
+ { &hf_gprscdr_tGPP2UserLocationInformation, BER_CLASS_CON, 42, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
+ { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
+ { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gprscdr_PGWRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ PGWRecord_set, hf_index, ett_gprscdr_PGWRecord);
+
+ return offset;
+}
+
+
+const value_string gprscdr_GPRSRecord_vals[] = {
+ { 20, "sgsnPDPRecord" },
+ { 22, "sgsnMMRecord" },
+ { 23, "sgsnSMORecord" },
+ { 24, "sgsnSMTRecord" },
+ { 78, "sGWRecord" },
+ { 79, "pGWRecord" },
+ { 0, NULL }
+};
+
+static const ber_choice_t GPRSRecord_choice[] = {
+ { 20, &hf_gprscdr_sgsnPDPRecord_01, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPDPRecord },
+ { 22, &hf_gprscdr_sgsnMMRecord, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMMRecord },
+ { 23, &hf_gprscdr_sgsnSMORecord_01, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecord },
+ { 24, &hf_gprscdr_sgsnSMTRecord_01, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecord },
+ { 78, &hf_gprscdr_sGWRecord , BER_CLASS_CON, 78, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWRecord },
+ { 79, &hf_gprscdr_pGWRecord , BER_CLASS_CON, 79, BER_FLAGS_IMPLTAG, dissect_gprscdr_PGWRecord },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_gprscdr_GPRSRecord(gboolean implicit_tag _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,
+ GPRSRecord_choice, hf_index, ett_gprscdr_GPRSRecord,
+ NULL);
+
+ return offset;
+}
+
/*--- PDUs ---*/
int dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
@@ -1702,6 +2676,13 @@ int dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinf
offset = dissect_gprscdr_GPRSCallEventRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_gprscdr_gprscdr_GPRSCallEventRecord_PDU);
return offset;
}
+int dissect_gprscdr_GPRSRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_gprscdr_GPRSRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_gprscdr_gprscdr_GPRSRecord_PDU);
+ return offset;
+}
/*--- End of included file: packet-gprscdr-fn.c ---*/
@@ -1722,6 +2703,10 @@ proto_register_gprscdr(void)
{ "GPRSCallEventRecord", "gprscdr.GPRSCallEventRecord",
FT_UINT32, BASE_DEC, VALS(gprscdr_GPRSCallEventRecord_vals), 0,
NULL, HFILL }},
+ { &hf_gprscdr_gprscdr_GPRSRecord_PDU,
+ { "GPRSRecord", "gprscdr.GPRSRecord",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_GPRSRecord_vals), 0,
+ NULL, HFILL }},
{ &hf_gprscdr_gsm0408Cause,
{ "gsm0408Cause", "gprscdr.gsm0408Cause",
FT_INT32, BASE_DEC, NULL, 0,
@@ -1778,6 +2763,30 @@ proto_register_gprscdr(void)
{ "ManagementExtension", "gprscdr.ManagementExtension",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_gprscdr_iPAddress,
+ { "iPAddress", "gprscdr.iPAddress",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_domainName,
+ { "domainName", "gprscdr.domainName",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GraphicString", HFILL }},
+ { &hf_gprscdr_serviceSpecificData,
+ { "serviceSpecificData", "gprscdr.serviceSpecificData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GraphicString", HFILL }},
+ { &hf_gprscdr_serviceSpecificType,
+ { "serviceSpecificType", "gprscdr.serviceSpecificType",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_subscriptionIDType,
+ { "subscriptionIDType", "gprscdr.subscriptionIDType",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_SubscriptionIDType_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_subscriptionIDData,
+ { "subscriptionIDData", "gprscdr.subscriptionIDData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "UTF8String", HFILL }},
{ &hf_gprscdr_identifier,
{ "identifier", "gprscdr.identifier",
FT_OID, BASE_NONE, NULL, 0,
@@ -1793,7 +2802,7 @@ proto_register_gprscdr(void)
{ &hf_gprscdr_sgsnPDPRecord,
{ "sgsnPDPRecord", "gprscdr.sgsnPDPRecord",
FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "SGSNPDPRecordV651", HFILL }},
{ &hf_gprscdr_ggsnPDPRecord,
{ "ggsnPDPRecord", "gprscdr.ggsnPDPRecord",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1805,11 +2814,11 @@ proto_register_gprscdr(void)
{ &hf_gprscdr_sgsnSMORecord,
{ "sgsnSMORecord", "gprscdr.sgsnSMORecord",
FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "SGSNSMORecordV651", HFILL }},
{ &hf_gprscdr_sgsnSMTRecord,
{ "sgsnSMTRecord", "gprscdr.sgsnSMTRecord",
FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "SGSNSMTRecordV651", HFILL }},
{ &hf_gprscdr_egsnPDPRecord,
{ "egsnPDPRecord", "gprscdr.egsnPDPRecord",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1861,9 +2870,9 @@ proto_register_gprscdr(void)
{ &hf_gprscdr_listOfTrafficVolumes,
{ "listOfTrafficVolumes", "gprscdr.listOfTrafficVolumes",
FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_ChangeOfCharCondition", HFILL }},
+ "SEQUENCE_OF_ChangeOfCharConditionV651", HFILL }},
{ &hf_gprscdr_listOfTrafficVolumes_item,
- { "ChangeOfCharCondition", "gprscdr.ChangeOfCharCondition",
+ { "ChangeOfCharConditionV651", "gprscdr.ChangeOfCharConditionV651",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_gprscdr_recordOpeningTime,
@@ -1876,8 +2885,8 @@ proto_register_gprscdr(void)
"CallDuration", HFILL }},
{ &hf_gprscdr_causeForRecClosing,
{ "causeForRecClosing", "gprscdr.causeForRecClosing",
- FT_INT32, BASE_DEC, VALS(gprscdr_CauseForRecClosing_vals), 0,
- NULL, HFILL }},
+ FT_INT32, BASE_DEC, VALS(gprscdr_CauseForRecClosingV651_vals), 0,
+ "CauseForRecClosingV651", HFILL }},
{ &hf_gprscdr_diagnostics,
{ "diagnostics", "gprscdr.diagnostics",
FT_UINT32, BASE_DEC, VALS(gprscdr_Diagnostics_vals), 0,
@@ -1953,9 +2962,9 @@ proto_register_gprscdr(void)
{ &hf_gprscdr_listOfServiceData,
{ "listOfServiceData", "gprscdr.listOfServiceData",
FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_ChangeOfServiceCondition", HFILL }},
+ "SEQUENCE_OF_ChangeOfServiceConditionV651", HFILL }},
{ &hf_gprscdr_listOfServiceData_item,
- { "ChangeOfServiceCondition", "gprscdr.ChangeOfServiceCondition",
+ { "ChangeOfServiceConditionV651", "gprscdr.ChangeOfServiceConditionV651",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_gprscdr_servedIMEI,
@@ -1982,26 +2991,14 @@ proto_register_gprscdr(void)
{ "cellIdentifier", "gprscdr.cellIdentifier",
FT_BYTES, BASE_NONE, NULL, 0,
"CellId", HFILL }},
- { &hf_gprscdr_changeLocation,
- { "changeLocation", "gprscdr.changeLocation",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_ChangeLocation", HFILL }},
- { &hf_gprscdr_changeLocation_item,
- { "ChangeLocation", "gprscdr.ChangeLocation",
- FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_sgsnChange,
- { "sgsnChange", "gprscdr.sgsnChange",
- FT_BOOLEAN, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_cAMELInformationMM,
- { "cAMELInformationMM", "gprscdr.cAMELInformationMM",
- FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
{ &hf_gprscdr_ggsnAddressUsed,
{ "ggsnAddressUsed", "gprscdr.ggsnAddressUsed",
FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
"GSNAddress", HFILL }},
+ { &hf_gprscdr_sgsnChange,
+ { "sgsnChange", "gprscdr.sgsnChange",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_gprscdr_accessPointNameOI,
{ "accessPointNameOI", "gprscdr.accessPointNameOI",
FT_STRING, BASE_NONE, NULL, 0,
@@ -2046,62 +3043,6 @@ proto_register_gprscdr(void)
{ "cAMELInformationSMS", "gprscdr.cAMELInformationSMS",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_gprscdr_sCFAddress,
- { "sCFAddress", "gprscdr.sCFAddress",
- FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_serviceKey,
- { "serviceKey", "gprscdr.serviceKey",
- FT_UINT32, BASE_DEC, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_defaultTransactionHandling,
- { "defaultTransactionHandling", "gprscdr.defaultTransactionHandling",
- FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
- "DefaultGPRS_Handling", HFILL }},
- { &hf_gprscdr_numberOfDPEncountered,
- { "numberOfDPEncountered", "gprscdr.numberOfDPEncountered",
- FT_INT32, BASE_DEC, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_levelOfCAMELService,
- { "levelOfCAMELService", "gprscdr.levelOfCAMELService",
- FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_freeFormatData,
- { "freeFormatData", "gprscdr.freeFormatData",
- FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_fFDAppendIndicator,
- { "fFDAppendIndicator", "gprscdr.fFDAppendIndicator",
- FT_BOOLEAN, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_cAMELAccessPointNameNI,
- { "cAMELAccessPointNameNI", "gprscdr.cAMELAccessPointNameNI",
- FT_STRING, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_cAMELAccessPointNameOI,
- { "cAMELAccessPointNameOI", "gprscdr.cAMELAccessPointNameOI",
- FT_STRING, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_defaultSMSHandling,
- { "defaultSMSHandling", "gprscdr.defaultSMSHandling",
- FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
- "DefaultSMS_Handling", HFILL }},
- { &hf_gprscdr_cAMELCallingPartyNumber,
- { "cAMELCallingPartyNumber", "gprscdr.cAMELCallingPartyNumber",
- FT_BYTES, BASE_NONE, NULL, 0,
- "CallingNumber", HFILL }},
- { &hf_gprscdr_cAMELDestinationSubscriberNumber,
- { "cAMELDestinationSubscriberNumber", "gprscdr.cAMELDestinationSubscriberNumber",
- FT_BYTES, BASE_NONE, NULL, 0,
- "SmsTpDestinationNumber", HFILL }},
- { &hf_gprscdr_cAMELSMSCAddress,
- { "cAMELSMSCAddress", "gprscdr.cAMELSMSCAddress",
- FT_BYTES, BASE_NONE, NULL, 0,
- "AddressString", HFILL }},
- { &hf_gprscdr_smsReferenceNumber,
- { "smsReferenceNumber", "gprscdr.smsReferenceNumber",
- FT_BYTES, BASE_NONE, NULL, 0,
- "CallReferenceNumber", HFILL }},
{ &hf_gprscdr_qosRequested,
{ "qosRequested", "gprscdr.qosRequested",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2120,8 +3061,8 @@ proto_register_gprscdr(void)
"DataVolumeGPRS", HFILL }},
{ &hf_gprscdr_changeCondition,
{ "changeCondition", "gprscdr.changeCondition",
- FT_UINT32, BASE_DEC, VALS(gprscdr_ChangeCondition_vals), 0,
- NULL, HFILL }},
+ FT_UINT32, BASE_DEC, VALS(gprscdr_ChangeConditionV651_vals), 0,
+ "ChangeConditionV651", HFILL }},
{ &hf_gprscdr_changeTime,
{ "changeTime", "gprscdr.changeTime",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2153,7 +3094,7 @@ proto_register_gprscdr(void)
{ &hf_gprscdr_serviceConditionChange,
{ "serviceConditionChange", "gprscdr.serviceConditionChange",
FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "ServiceConditionChangeV651", HFILL }},
{ &hf_gprscdr_qoSInformationNeg,
{ "qoSInformationNeg", "gprscdr.qoSInformationNeg",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2194,14 +3135,318 @@ proto_register_gprscdr(void)
{ "cellId", "gprscdr.cellId",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_gprscdr_iPAddress,
- { "iPAddress", "gprscdr.iPAddress",
+ { &hf_gprscdr_sgsnPDPRecord_01,
+ { "sgsnPDPRecord", "gprscdr.sgsnPDPRecord",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_sgsnSMORecord_01,
+ { "sgsnSMORecord", "gprscdr.sgsnSMORecord",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_sgsnSMTRecord_01,
+ { "sgsnSMTRecord", "gprscdr.sgsnSMTRecord",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_sGWRecord,
+ { "sGWRecord", "gprscdr.sGWRecord",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_pGWRecord,
+ { "pGWRecord", "gprscdr.pGWRecord",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_recordType_01,
+ { "recordType", "gprscdr.recordType",
+ FT_INT32, BASE_DEC, VALS(gprscdr_RecordType_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_s_GWAddress,
+ { "s-GWAddress", "gprscdr.s_GWAddress",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
+ "GSNAddress", HFILL }},
+ { &hf_gprscdr_servingNodeAddress,
+ { "servingNodeAddress", "gprscdr.servingNodeAddress",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_GSNAddress", HFILL }},
+ { &hf_gprscdr_servingNodeAddress_item,
+ { "GSNAddress", "gprscdr.GSNAddress",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_pdpPDNType,
+ { "pdpPDNType", "gprscdr.pdpPDNType",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "PDPType", HFILL }},
+ { &hf_gprscdr_servedPDPPDNAddress,
+ { "servedPDPPDNAddress", "gprscdr.servedPDPPDNAddress",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
+ "PDPAddress", HFILL }},
+ { &hf_gprscdr_listOfTrafficVolumes_01,
+ { "listOfTrafficVolumes", "gprscdr.listOfTrafficVolumes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_ChangeOfCharCondition", HFILL }},
+ { &hf_gprscdr_listOfTrafficVolumes_item_01,
+ { "ChangeOfCharCondition", "gprscdr.ChangeOfCharCondition",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_causeForRecClosing_01,
+ { "causeForRecClosing", "gprscdr.causeForRecClosing",
+ FT_INT32, BASE_DEC, VALS(gprscdr_CauseForRecClosing_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_servingNodePLMNIdentifier,
+ { "servingNodePLMNIdentifier", "gprscdr.servingNodePLMNIdentifier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "PLMN_Id", HFILL }},
+ { &hf_gprscdr_sGWChange,
+ { "sGWChange", "gprscdr.sGWChange",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_servingNodeType,
+ { "servingNodeType", "gprscdr.servingNodeType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_ServingNodeType", HFILL }},
+ { &hf_gprscdr_servingNodeType_item,
+ { "ServingNodeType", "gprscdr.ServingNodeType",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_ServingNodeType_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_p_GWAddressUsed,
+ { "p-GWAddressUsed", "gprscdr.p_GWAddressUsed",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
+ "GSNAddress", HFILL }},
+ { &hf_gprscdr_p_GWPLMNIdentifier,
+ { "p-GWPLMNIdentifier", "gprscdr.p_GWPLMNIdentifier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "PLMN_Id", HFILL }},
+ { &hf_gprscdr_startTime,
+ { "startTime", "gprscdr.startTime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "TimeStamp", HFILL }},
+ { &hf_gprscdr_stopTime,
+ { "stopTime", "gprscdr.stopTime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "TimeStamp", HFILL }},
+ { &hf_gprscdr_pDNConnectionChargingID,
+ { "pDNConnectionChargingID", "gprscdr.pDNConnectionChargingID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ChargingID", HFILL }},
+ { &hf_gprscdr_servedPDPPDNAddressExt,
+ { "servedPDPPDNAddressExt", "gprscdr.servedPDPPDNAddressExt",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0,
+ "PDPAddress", HFILL }},
+ { &hf_gprscdr_dynamicAddressFlagExt,
+ { "dynamicAddressFlagExt", "gprscdr.dynamicAddressFlagExt",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "DynamicAddressFlag", HFILL }},
+ { &hf_gprscdr_p_GWAddress,
+ { "p-GWAddress", "gprscdr.p_GWAddress",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
+ "GSNAddress", HFILL }},
+ { &hf_gprscdr_servinggNodePLMNIdentifier,
+ { "servinggNodePLMNIdentifier", "gprscdr.servinggNodePLMNIdentifier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "PLMN_Id", HFILL }},
+ { &hf_gprscdr_listOfServiceData_01,
+ { "listOfServiceData", "gprscdr.listOfServiceData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_ChangeOfServiceCondition", HFILL }},
+ { &hf_gprscdr_listOfServiceData_item_01,
+ { "ChangeOfServiceCondition", "gprscdr.ChangeOfServiceCondition",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_servedMNNAI,
+ { "servedMNNAI", "gprscdr.servedMNNAI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubscriptionID", HFILL }},
+ { &hf_gprscdr_served3gpp2MEID,
+ { "served3gpp2MEID", "gprscdr.served3gpp2MEID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING", HFILL }},
+ { &hf_gprscdr_tGPP2UserLocationInformation,
+ { "tGPP2UserLocationInformation", "gprscdr.tGPP2UserLocationInformation",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING", HFILL }},
+ { &hf_gprscdr_changeLocation,
+ { "changeLocation", "gprscdr.changeLocation",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_ChangeLocation", HFILL }},
+ { &hf_gprscdr_changeLocation_item,
+ { "ChangeLocation", "gprscdr.ChangeLocation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_cAMELInformationMM,
+ { "cAMELInformationMM", "gprscdr.cAMELInformationMM",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_cellPLMNId,
+ { "cellPLMNId", "gprscdr.cellPLMNId",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "PLMN_Id", HFILL }},
+ { &hf_gprscdr_aFChargingIdentifier,
+ { "aFChargingIdentifier", "gprscdr.aFChargingIdentifier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_flows,
+ { "flows", "gprscdr.flows",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_sCFAddress,
+ { "sCFAddress", "gprscdr.sCFAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_serviceKey,
+ { "serviceKey", "gprscdr.serviceKey",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_defaultTransactionHandling,
+ { "defaultTransactionHandling", "gprscdr.defaultTransactionHandling",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultGPRS_Handling_vals), 0,
+ "DefaultGPRS_Handling", HFILL }},
+ { &hf_gprscdr_numberOfDPEncountered,
+ { "numberOfDPEncountered", "gprscdr.numberOfDPEncountered",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_levelOfCAMELService,
+ { "levelOfCAMELService", "gprscdr.levelOfCAMELService",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_freeFormatData,
+ { "freeFormatData", "gprscdr.freeFormatData",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_fFDAppendIndicator,
+ { "fFDAppendIndicator", "gprscdr.fFDAppendIndicator",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_cAMELAccessPointNameNI,
+ { "cAMELAccessPointNameNI", "gprscdr.cAMELAccessPointNameNI",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_cAMELAccessPointNameOI,
+ { "cAMELAccessPointNameOI", "gprscdr.cAMELAccessPointNameOI",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_defaultSMSHandling,
+ { "defaultSMSHandling", "gprscdr.defaultSMSHandling",
+ FT_UINT32, BASE_DEC, VALS(gsm_map_ms_DefaultSMS_Handling_vals), 0,
+ "DefaultSMS_Handling", HFILL }},
+ { &hf_gprscdr_cAMELCallingPartyNumber,
+ { "cAMELCallingPartyNumber", "gprscdr.cAMELCallingPartyNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "CallingNumber", HFILL }},
+ { &hf_gprscdr_cAMELDestinationSubscriberNumber,
+ { "cAMELDestinationSubscriberNumber", "gprscdr.cAMELDestinationSubscriberNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "SmsTpDestinationNumber", HFILL }},
+ { &hf_gprscdr_cAMELSMSCAddress,
+ { "cAMELSMSCAddress", "gprscdr.cAMELSMSCAddress",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "AddressString", HFILL }},
+ { &hf_gprscdr_smsReferenceNumber,
+ { "smsReferenceNumber", "gprscdr.smsReferenceNumber",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "CallReferenceNumber", HFILL }},
+ { &hf_gprscdr_changeCondition_01,
+ { "changeCondition", "gprscdr.changeCondition",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_ChangeCondition_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_ePCQoSInformation,
+ { "ePCQoSInformation", "gprscdr.ePCQoSInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_serviceConditionChange_01,
+ { "serviceConditionChange", "gprscdr.serviceConditionChange",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_qoSInformationNeg_01,
+ { "qoSInformationNeg", "gprscdr.qoSInformationNeg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EPCQoSInformation", HFILL }},
+ { &hf_gprscdr_servingNodeAddress_01,
+ { "servingNodeAddress", "gprscdr.servingNodeAddress",
FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
+ "GSNAddress", HFILL }},
+ { &hf_gprscdr_aFRecordInformation,
+ { "aFRecordInformation", "gprscdr.aFRecordInformation",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_AFRecordInformation", HFILL }},
+ { &hf_gprscdr_aFRecordInformation_item,
+ { "AFRecordInformation", "gprscdr.AFRecordInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_eventBasedChargingInformation,
+ { "eventBasedChargingInformation", "gprscdr.eventBasedChargingInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_gprscdr_eTSIAddress,
- { "eTSIAddress", "gprscdr.eTSIAddress",
+ { &hf_gprscdr_timeQuotaMechanism,
+ { "timeQuotaMechanism", "gprscdr.timeQuotaMechanism",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_serviceSpecificInfo,
+ { "serviceSpecificInfo", "gprscdr.serviceSpecificInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_ServiceSpecificInfo", HFILL }},
+ { &hf_gprscdr_serviceSpecificInfo_item,
+ { "ServiceSpecificInfo", "gprscdr.ServiceSpecificInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_mCC_MNC,
+ { "mCC-MNC", "gprscdr.mCC_MNC",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "PLMN_Id", HFILL }},
+ { &hf_gprscdr_qCI,
+ { "qCI", "gprscdr.qCI",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_maxRequestedBandwithUL,
+ { "maxRequestedBandwithUL", "gprscdr.maxRequestedBandwithUL",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_maxRequestedBandwithDL,
+ { "maxRequestedBandwithDL", "gprscdr.maxRequestedBandwithDL",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_guaranteedBitrateUL,
+ { "guaranteedBitrateUL", "gprscdr.guaranteedBitrateUL",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_guaranteedBitrateDL,
+ { "guaranteedBitrateDL", "gprscdr.guaranteedBitrateDL",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_aRP,
+ { "aRP", "gprscdr.aRP",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_aPNAggregateMaxBitrateUL,
+ { "aPNAggregateMaxBitrateUL", "gprscdr.aPNAggregateMaxBitrateUL",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_aPNAggregateMaxBitrateDL,
+ { "aPNAggregateMaxBitrateDL", "gprscdr.aPNAggregateMaxBitrateDL",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_numberOfEvents,
+ { "numberOfEvents", "gprscdr.numberOfEvents",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_eventTimeStamps,
+ { "eventTimeStamps", "gprscdr.eventTimeStamps",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_OF_TimeStamp", HFILL }},
+ { &hf_gprscdr_eventTimeStamps_item,
+ { "TimeStamp", "gprscdr.TimeStamp",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_gprscdr_mediaComponentNumber,
+ { "mediaComponentNumber", "gprscdr.mediaComponentNumber",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
+ { &hf_gprscdr_flowNumber,
+ { "flowNumber", "gprscdr.flowNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_flowNumber_item,
+ { "flowNumber item", "gprscdr.flowNumber_item",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
{ &hf_gprscdr_pSFreeFormatData,
{ "pSFreeFormatData", "gprscdr.pSFreeFormatData",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2210,6 +3455,14 @@ proto_register_gprscdr(void)
{ "pSFFDAppendIndicator", "gprscdr.pSFFDAppendIndicator",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"FFDAppendIndicator", HFILL }},
+ { &hf_gprscdr_timeQuotaType,
+ { "timeQuotaType", "gprscdr.timeQuotaType",
+ FT_UINT32, BASE_DEC, VALS(gprscdr_TimeQuotaType_vals), 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_baseTimeInterval,
+ { "baseTimeInterval", "gprscdr.baseTimeInterval",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "INTEGER", HFILL }},
{ &hf_gprscdr_LevelOfCAMELService_basic,
{ "basic", "gprscdr.basic",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -2222,86 +3475,214 @@ proto_register_gprscdr(void)
{ "onlineCharging", "gprscdr.onlineCharging",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_qoSChange,
+ { &hf_gprscdr_ServiceConditionChangeV651_qoSChange,
{ "qoSChange", "gprscdr.qoSChange",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_sGSNChange,
+ { &hf_gprscdr_ServiceConditionChangeV651_sGSNChange,
{ "sGSNChange", "gprscdr.sGSNChange",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange,
+ { &hf_gprscdr_ServiceConditionChangeV651_sGSNPLMNIDChange,
{ "sGSNPLMNIDChange", "gprscdr.sGSNPLMNIDChange",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch,
+ { &hf_gprscdr_ServiceConditionChangeV651_tariffTimeSwitch,
{ "tariffTimeSwitch", "gprscdr.tariffTimeSwitch",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_pDPContextRelease,
+ { &hf_gprscdr_ServiceConditionChangeV651_pDPContextRelease,
{ "pDPContextRelease", "gprscdr.pDPContextRelease",
FT_BOOLEAN, 8, NULL, 0x08,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_rATChange,
+ { &hf_gprscdr_ServiceConditionChangeV651_rATChange,
{ "rATChange", "gprscdr.rATChange",
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_serviceIdledOut,
+ { &hf_gprscdr_ServiceConditionChangeV651_serviceIdledOut,
{ "serviceIdledOut", "gprscdr.serviceIdledOut",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_qCTExpiry,
+ { &hf_gprscdr_ServiceConditionChangeV651_qCTExpiry,
{ "qCTExpiry", "gprscdr.qCTExpiry",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_configurationChange,
+ { &hf_gprscdr_ServiceConditionChangeV651_configurationChange,
{ "configurationChange", "gprscdr.configurationChange",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_serviceStop,
+ { &hf_gprscdr_ServiceConditionChangeV651_serviceStop,
{ "serviceStop", "gprscdr.serviceStop",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_timeThresholdReached,
+ { &hf_gprscdr_ServiceConditionChangeV651_timeThresholdReached,
{ "timeThresholdReached", "gprscdr.timeThresholdReached",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_volumeThresholdReached,
+ { &hf_gprscdr_ServiceConditionChangeV651_volumeThresholdReached,
{ "volumeThresholdReached", "gprscdr.volumeThresholdReached",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_timeExhausted,
+ { &hf_gprscdr_ServiceConditionChangeV651_timeExhausted,
{ "timeExhausted", "gprscdr.timeExhausted",
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_volumeExhausted,
+ { &hf_gprscdr_ServiceConditionChangeV651_volumeExhausted,
{ "volumeExhausted", "gprscdr.volumeExhausted",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_timeout,
+ { &hf_gprscdr_ServiceConditionChangeV651_timeout,
{ "timeout", "gprscdr.timeout",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_returnRequested,
+ { &hf_gprscdr_ServiceConditionChangeV651_returnRequested,
{ "returnRequested", "gprscdr.returnRequested",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_reauthorisationRequest,
+ { &hf_gprscdr_ServiceConditionChangeV651_reauthorisationRequest,
{ "reauthorisationRequest", "gprscdr.reauthorisationRequest",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_continueOngoingSession,
+ { &hf_gprscdr_ServiceConditionChangeV651_continueOngoingSession,
{ "continueOngoingSession", "gprscdr.continueOngoingSession",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_retryAndTerminateOngoingSession,
+ { &hf_gprscdr_ServiceConditionChangeV651_retryAndTerminateOngoingSession,
{ "retryAndTerminateOngoingSession", "gprscdr.retryAndTerminateOngoingSession",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }},
- { &hf_gprscdr_ServiceConditionChange_terminateOngoingSession,
+ { &hf_gprscdr_ServiceConditionChangeV651_terminateOngoingSession,
{ "terminateOngoingSession", "gprscdr.terminateOngoingSession",
FT_BOOLEAN, 8, NULL, 0x08,
NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_qoSChange,
+ { "qoSChange", "gprscdr.qoSChange",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_sGSNChange,
+ { "sGSNChange", "gprscdr.sGSNChange",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange,
+ { "sGSNPLMNIDChange", "gprscdr.sGSNPLMNIDChange",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch,
+ { "tariffTimeSwitch", "gprscdr.tariffTimeSwitch",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_pDPContextRelease,
+ { "pDPContextRelease", "gprscdr.pDPContextRelease",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_rATChange,
+ { "rATChange", "gprscdr.rATChange",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_serviceIdledOut,
+ { "serviceIdledOut", "gprscdr.serviceIdledOut",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_reserved,
+ { "reserved", "gprscdr.reserved",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_configurationChange,
+ { "configurationChange", "gprscdr.configurationChange",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_serviceStop,
+ { "serviceStop", "gprscdr.serviceStop",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCATimeThresholdReached,
+ { "dCCATimeThresholdReached", "gprscdr.dCCATimeThresholdReached",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAVolumeThresholdReached,
+ { "dCCAVolumeThresholdReached", "gprscdr.dCCAVolumeThresholdReached",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitThresholdReached,
+ { "dCCAServiceSpecificUnitThresholdReached", "gprscdr.dCCAServiceSpecificUnitThresholdReached",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCATimeExhausted,
+ { "dCCATimeExhausted", "gprscdr.dCCATimeExhausted",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAVolumeExhausted,
+ { "dCCAVolumeExhausted", "gprscdr.dCCAVolumeExhausted",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAValidityTimeout,
+ { "dCCAValidityTimeout", "gprscdr.dCCAValidityTimeout",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_reserved1,
+ { "reserved1", "gprscdr.reserved1",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAReauthorisationRequest,
+ { "dCCAReauthorisationRequest", "gprscdr.dCCAReauthorisationRequest",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAContinueOngoingSession,
+ { "dCCAContinueOngoingSession", "gprscdr.dCCAContinueOngoingSession",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCARetryAndTerminateOngoingSession,
+ { "dCCARetryAndTerminateOngoingSession", "gprscdr.dCCARetryAndTerminateOngoingSession",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCATerminateOngoingSession,
+ { "dCCATerminateOngoingSession", "gprscdr.dCCATerminateOngoingSession",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_cGI_SAIChange,
+ { "cGI-SAIChange", "gprscdr.cGI-SAIChange",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_rAIChange,
+ { "rAIChange", "gprscdr.rAIChange",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_dCCAServiceSpecificUnitExhausted,
+ { "dCCAServiceSpecificUnitExhausted", "gprscdr.dCCAServiceSpecificUnitExhausted",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_recordClosure,
+ { "recordClosure", "gprscdr.recordClosure",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_timeLimit,
+ { "timeLimit", "gprscdr.timeLimit",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_volumeLimit,
+ { "volumeLimit", "gprscdr.volumeLimit",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_serviceSpecificUnitLimit,
+ { "serviceSpecificUnitLimit", "gprscdr.serviceSpecificUnitLimit",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_envelopeClosure,
+ { "envelopeClosure", "gprscdr.envelopeClosure",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_eCGIChange,
+ { "eCGIChange", "gprscdr.eCGIChange",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_tAIChange,
+ { "tAIChange", "gprscdr.tAIChange",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_userLocationChange,
+ { "userLocationChange", "gprscdr.userLocationChange",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
/*--- End of included file: packet-gprscdr-hfarr.c ---*/
#line 72 "../../asn1/gprscdr/packet-gprscdr-template.c"
@@ -2321,27 +3702,52 @@ proto_register_gprscdr(void)
&ett_gprscdr_IPTextRepresentedAddress,
&ett_gprscdr_LevelOfCAMELService,
&ett_gprscdr_ManagementExtensions,
+ &ett_gprscdr_NodeAddress,
+ &ett_gprscdr_ServiceSpecificInfo,
+ &ett_gprscdr_SubscriptionID,
&ett_gprscdr_ManagementExtension,
&ett_gprscdr_GPRSCallEventRecord,
&ett_gprscdr_GGSNPDPRecord,
&ett_gprscdr_SEQUENCE_OF_GSNAddress,
- &ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition,
+ &ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651,
&ett_gprscdr_EGSNPDPRecord,
+ &ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651,
+ &ett_gprscdr_SGSNPDPRecordV651,
+ &ett_gprscdr_SGSNSMORecordV651,
+ &ett_gprscdr_SGSNSMTRecordV651,
+ &ett_gprscdr_ChangeOfCharConditionV651,
+ &ett_gprscdr_ChangeOfServiceConditionV651,
+ &ett_gprscdr_ChangeLocationV651,
+ &ett_gprscdr_ServiceConditionChangeV651,
+ &ett_gprscdr_GPRSRecord,
+ &ett_gprscdr_SGWRecord,
+ &ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition,
+ &ett_gprscdr_SEQUENCE_OF_ServingNodeType,
+ &ett_gprscdr_PGWRecord,
&ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition,
&ett_gprscdr_SGSNMMRecord,
&ett_gprscdr_SEQUENCE_OF_ChangeLocation,
&ett_gprscdr_SGSNPDPRecord,
&ett_gprscdr_SGSNSMORecord,
&ett_gprscdr_SGSNSMTRecord,
+ &ett_gprscdr_AFRecordInformation,
&ett_gprscdr_CAMELInformationMM,
&ett_gprscdr_CAMELInformationPDP,
&ett_gprscdr_CAMELInformationSMS,
&ett_gprscdr_ChangeOfCharCondition,
&ett_gprscdr_ChangeOfServiceCondition,
+ &ett_gprscdr_SEQUENCE_OF_AFRecordInformation,
+ &ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo,
&ett_gprscdr_ChangeLocation,
+ &ett_gprscdr_EPCQoSInformation,
+ &ett_gprscdr_EventBasedChargingInformation,
+ &ett_gprscdr_SEQUENCE_OF_TimeStamp,
+ &ett_gprscdr_Flows,
+ &ett_gprscdr_T_flowNumber,
&ett_gprscdr_PDPAddress,
&ett_gprscdr_PSFurnishChargingInformation,
&ett_gprscdr_ServiceConditionChange,
+ &ett_gprscdr_TimeQuotaMechanism,
/*--- End of included file: packet-gprscdr-ettarr.c ---*/
#line 80 "../../asn1/gprscdr/packet-gprscdr-template.c"
diff --git a/epan/dissectors/packet-gprscdr.h b/epan/dissectors/packet-gprscdr.h
index 65c06691bb..d90a9385b7 100644
--- a/epan/dissectors/packet-gprscdr.h
+++ b/epan/dissectors/packet-gprscdr.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gprscdr.h */
-/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV641.asn GPRSChargingDataTypesV641.asn */
+/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV8e0.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV8e0.asn */
/* Input file: packet-gprscdr-template.h */
@@ -39,8 +39,11 @@
/*--- Included file: packet-gprscdr-exp.h ---*/
#line 1 "../../asn1/gprscdr/packet-gprscdr-exp.h"
extern const value_string gprscdr_GPRSCallEventRecord_vals[];
+extern const value_string gprscdr_GPRSRecord_vals[];
int dissect_gprscdr_GPRSCallEventRecord(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_gprscdr_GPRSRecord(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_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
+int dissect_gprscdr_GPRSRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
/*--- End of included file: packet-gprscdr-exp.h ---*/
#line 31 "../../asn1/gprscdr/packet-gprscdr-template.h"
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index 63db2ca36f..711041f19d 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -7550,7 +7550,11 @@ decode_gtp_data_req(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_t
/* XXX this is for release 6, may not work for higher releases */
if(format==1) {
- dissect_gprscdr_GPRSCallEventRecord_PDU(next_tvb, pinfo, cdr_dr_tree);
+ if(rel_id == 6){
+ dissect_gprscdr_GPRSCallEventRecord_PDU(next_tvb, pinfo, cdr_dr_tree);
+ }else if(rel_id == 8){
+ dissect_gprscdr_GPRSRecord_PDU(next_tvb, pinfo, cdr_dr_tree);
+ }
} else {
/* Do we have a dissector regestering for this data format? */
dissector_try_uint(gtp_cdr_fmt_dissector_table, format, next_tvb, pinfo, cdr_dr_tree);