diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/gprscdr | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/gprscdr')
-rw-r--r-- | epan/dissectors/asn1/gprscdr/CMakeLists.txt | 45 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn | 1490 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn | 890 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn | 987 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/gprscdr.cnf | 300 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c | 170 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h | 31 |
7 files changed, 3913 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/gprscdr/CMakeLists.txt b/epan/dissectors/asn1/gprscdr/CMakeLists.txt new file mode 100644 index 00000000..84242ad3 --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/CMakeLists.txt @@ -0,0 +1,45 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# SPDX-License-Identifier: GPL-2.0-or-later +# + +set( PROTOCOL_NAME gprscdr ) + +set( PROTO_OPT ) + +set( EXPORT_FILES + ${PROTOCOL_NAME}-exp.cnf +) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + GenericChargingDataTypes.asn + GPRSChargingDataTypesV641.asn + GPRSChargingDataTypes.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + packet-${PROTOCOL_NAME}-template.h + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS -b ) + +set( EXTRA_CNF + "${CMAKE_CURRENT_BINARY_DIR}/../gsm_map/gsm_map-exp.cnf" +) + +ASN2WRS() diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn new file mode 100644 index 00000000..016086db --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypes.asn @@ -0,0 +1,1490 @@ +-- +-- 3GPP TS 32.298 v18.2.0 (2023-06-23) +-- +GPRSChargingDataTypes {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version2 (1)} +DEFINITIONS IMPLICIT TAGS ::= + +BEGIN + +-- EXPORTS everything + +IMPORTS + +-- AddressString, +CallDuration, +CallingNumber, +CauseForRecClosing, +CellId, +ChargingID, +CivicAddressInformation, +Diagnostics, +DiameterIdentity, +DynamicAddressFlag, +EnhancedDiagnostics, +-- GSNAddress, +InvolvedParty, +IPAddress, +LCSCause, +LCSClientIdentity, +LCSQoSInfo, +LevelOfCAMELService, +LocalSequenceNumber, +LocationAreaAndCell, +LocationAreaCode, +ManagementExtensions, +MBMSInformation, +MessageReference, +MSISDN, +MSTimeZone, +NodeID, +PDPAddress, +PLMN-Id, +PositioningData, +PSCellInformation, +RATType, +RecordingEntity, +RecordType, +RoutingAreaCode, +SCSASAddress, +ServiceSpecificInfo, +SMSResult, +SmsTpDestinationNumber, +SubscriptionID, +ThreeGPPPSDataOffStatus, +TimeStamp +FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version2 (1)} + +DefaultGPRS-Handling, +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) version18 (18)} +-- from TS 29.002 [214] + +IMEI, +IMSI, +ISDN-AddressString, +RAIdentity +FROM MAP-CommonDataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0)gsm-Network (1) modules (3) map-CommonDataTypes (18) version18 (18)} +-- from TS 29.002 [214] + +CallReferenceNumber +FROM MAP-CH-DataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0)gsm-Network (1) modules (3) map-CH-DataTypes (13) version18 (18)} +-- from TS 29.002 [214] + +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) version18 (18) } +-- from TS 29.002 [214] + +LocationMethod +FROM SS-DataTypes {itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version14 (14)} +-- from TS 24.080 [209] + +; + +-- +-- GPRS RECORDS +-- + +GPRSRecord ::= CHOICE +-- +-- Record values 20, 22..27 are specific +-- Record values 76, 77, 86 are MBMS specific +-- Record values 78,79 and 92, 95, 96 are EPC specific +-- +{ + sgsnPDPRecord [20] SGSNPDPRecord, +-- WS backward compabillity addition + ggsnPDPRecord [21] GGSNPDPRecordV750, +-- WS mod END + sgsnMMRecord [22] SGSNMMRecord, + sgsnSMORecord [23] SGSNSMORecord, + sgsnSMTRecord [24] SGSNSMTRecord, + sgsnMTLCSRecord [25] SGSNMTLCSRecord, + sgsnMOLCSRecord [26] SGSNMOLCSRecord, + sgsnNILCSRecord [27] SGSNNILCSRecord, + +-- WS backward compabillity addition + egsnPDPRecord [70] EGSNPDPRecordV750, +-- WS mod END + sgsnMBMSRecord [76] SGSNMBMSRecord, + ggsnMBMSRecord [77] GGSNMBMSRecord, + sGWRecord [78] SGWRecord, + pGWRecord [79] PGWRecord, + + gwMBMSRecord [86] GWMBMSRecord, + + tDFRecord [92] TDFRecord, + + iPERecord [95] IPERecord, + ePDGRecord [96] EPDGRecord, + tWAGRecord [97] TWAGRecord +} + +SGWRecord ::= SET +{ + recordType [0] RecordType, + servedIMSI [3] IMSI OPTIONAL, + 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, + servedIMEI [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, + iMSIunauthenticatedFlag [41] NULL OPTIONAL, + userCSGInformation [42] UserCSGInformation OPTIONAL, + servedPDPPDNAddressExt [43] PDPAddress OPTIONAL, + lowPriorityIndicator [44] NULL OPTIONAL, + dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL, + s-GWiPv6Address [48] GSNAddress OPTIONAL, + servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL, + p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL, + retransmission [51] NULL OPTIONAL, + userLocationInfoTime [52] TimeStamp OPTIONAL, + cNOperatorSelectionEnt [53] CNOperatorSelectionEntity OPTIONAL, + presenceReportingAreaInfo [54] PresenceReportingAreaInfo OPTIONAL, + lastUserLocationInformation [55] OCTET STRING OPTIONAL, + lastMSTimeZone [56] MSTimeZone OPTIONAL, + enhancedDiagnostics [57] EnhancedDiagnostics OPTIONAL, + cPCIoTEPSOptimisationIndicator [59] CPCIoTEPSOptimisationIndicator OPTIONAL, + uNIPDUCPOnlyFlag [60] UNIPDUCPOnlyFlag OPTIONAL, + servingPLMNRateControl [61] ServingPLMNRateControl OPTIONAL, + pDPPDNTypeExtension [62] PDPPDNTypeExtension OPTIONAL, + mOExceptionDataCounter [63] MOExceptionDataCounter OPTIONAL, + listOfRANSecondaryRATUsageReports [64] SEQUENCE OF RANSecondaryRATUsageReport OPTIONAL, + pSCellInformation [65] PSCellInformation OPTIONAL + +} + +PGWRecord ::= SET +-- +-- List of traffic volumes is only applicable when Charging per IP-CAN session is active and +-- IP-CAN bearer charging is being performed for the session. +-- +-- EPC QoS Information is only applicable when Charging per IP-CAN session is active. +-- +{ + recordType [0] RecordType, + servedIMSI [3] IMSI OPTIONAL, + 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, + 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, + pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL, + servedIMEI [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, + iMSIunauthenticatedFlag [42] NULL OPTIONAL, + userCSGInformation [43] UserCSGInformation OPTIONAL, + threeGPP2UserLocationInformation [44] OCTET STRING OPTIONAL, + servedPDPPDNAddressExt [45] PDPAddress OPTIONAL, + lowPriorityIndicator [46] NULL OPTIONAL, + dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL, + servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL, + p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL, + tWANUserLocationInformation [51] TWANUserLocationInfo OPTIONAL, + retransmission [52] NULL OPTIONAL, + userLocationInfoTime [53] TimeStamp OPTIONAL, + cNOperatorSelectionEnt [54] CNOperatorSelectionEntity OPTIONAL, + ePCQoSInformation [55] EPCQoSInformation OPTIONAL, + presenceReportingAreaInfo [56] PresenceReportingAreaInfo OPTIONAL, + lastUserLocationInformation [57] OCTET STRING OPTIONAL, + lastMSTimeZone [58] MSTimeZone OPTIONAL, + enhancedDiagnostics [59] EnhancedDiagnostics OPTIONAL, + nBIFOMMode [60] NBIFOMMode OPTIONAL, + nBIFOMSupport [61] NBIFOMSupport OPTIONAL, + uWANUserLocationInformation [62] UWANUserLocationInfo OPTIONAL, + sGiPtPTunnellingMethod [64] SGiPtPTunnellingMethod OPTIONAL, + uNIPDUCPOnlyFlag [65] UNIPDUCPOnlyFlag OPTIONAL, + servingPLMNRateControl [66] ServingPLMNRateControl OPTIONAL, + aPNRateControl [67] APNRateControl OPTIONAL, + pDPPDNTypeExtension [68] PDPPDNTypeExtension OPTIONAL, + mOExceptionDataCounter [69] MOExceptionDataCounter OPTIONAL, + chargingPerIPCANSessionIndicator [70] ChargingPerIPCANSessionIndicator OPTIONAL, + threeGPPPSDataOffStatus [71] ThreeGPPPSDataOffStatus OPTIONAL, + sCSASAddress [72] SCSASAddress OPTIONAL, + listOfRANSecondaryRATUsageReports [73] SEQUENCE OF RANSecondaryRATUsageReport OPTIONAL +} + +TDFRecord ::= SET +{ + recordType [0] RecordType, + servedIMSI [3] IMSI OPTIONAL, + p-GWAddress [4] GSNAddress, + 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, + servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL, + pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL, + servedIMEI [29] IMEI OPTIONAL, + rATType [30] RATType OPTIONAL, + mSTimeZone [31] MSTimeZone OPTIONAL, + userLocationInformation [32] 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, + userCSGInformation [43] UserCSGInformation OPTIONAL, + threeGPP2UserLocationInformation [44] OCTET STRING OPTIONAL, + servedPDPPDNAddressExt [45] PDPAddress OPTIONAL, + dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL, + servingNodeiPv6Address [49] SEQUENCE OF GSNAddress OPTIONAL, + p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL, + tWANUserLocationInformation [51] TWANUserLocationInfo OPTIONAL, + retransmission [52] NULL OPTIONAL, + tDFAddress [53] GSNAddress, + tDFiPv6AddressUsed [54] GSNAddress OPTIONAL, + tDFPLMNIdentifier [55] PLMN-Id OPTIONAL, + servedFixedSubsID [56] FixedSubsID OPTIONAL, + accessLineIdentifier [57] AccessLineIdentifier OPTIONAL, + fixedUserLocationInformation [59] FixedUserLocationInformation OPTIONAL +} + +IPERecord ::= SET +{ + recordType [0] RecordType, + servedIMSI [3] IMSI OPTIONAL, + iPEdgeAddress [4] GSNAddress, + chargingID [5] ChargingID, + accessPointNameNI [7] AccessPointNameNI OPTIONAL, + iPCANsessionType [8] PDPType OPTIONAL, + servedIPCANsessionAddress [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, + servedMSISDN [22] MSISDN OPTIONAL, + chargingCharacteristics [23] ChargingCharacteristics, + chChSelectionMode [24] ChChSelectionMode OPTIONAL, + pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL, + servedIMEI [29] IMEI OPTIONAL, + listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL, + servedMNNAI [36] SubscriptionID OPTIONAL, + iPEdgeOperatorIdentifier [37] PLMN-Id OPTIONAL, + startTime [38] TimeStamp OPTIONAL, + stopTime [39] TimeStamp OPTIONAL, + servedIPCANsessionAddressExt [45] PDPAddress OPTIONAL, + dynamicAddressFlagExt [47] DynamicAddressFlag OPTIONAL, + iPEdgeiPv6AddressUsed [50] GSNAddress OPTIONAL, + retransmission [52] NULL OPTIONAL, + servedFixedSubsID [55] FixedSubsID OPTIONAL, + accessLineIdentifier [56] AccessLineIdentifier OPTIONAL, + fixedUserLocationInformation [57] FixedUserLocationInformation OPTIONAL +} + +EPDGRecord ::= SET +{ + recordType [0] RecordType, + servedIMSI [3] IMSI OPTIONAL, + ePDGAddressUsed [4] GSNAddress, + chargingID [5] ChargingID, + 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, + servedIMEI [29] IMEI OPTIONAL, + rATType [30] RATType OPTIONAL, + sGWChange [34] SGWChange OPTIONAL, + 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, + ePDGiPv6AddressUsed [48] GSNAddress OPTIONAL, + p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL, + retransmission [51] NULL OPTIONAL, + enhancedDiagnostics [52] EnhancedDiagnostics OPTIONAL, + uWANUserLocationInformation [53] UWANUserLocationInfo OPTIONAL, + userLocationInfoTime [54] TimeStamp OPTIONAL, + iMSIunauthenticatedFlag [55] NULL OPTIONAL +} + +TWAGRecord ::= SET +{ + recordType [0] RecordType, + servedIMSI [3] IMSI OPTIONAL, + tWAGAddressUsed [4] GSNAddress, + chargingID [5] ChargingID, + 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, + servedIMEI [29] IMEI OPTIONAL, + rATType [30] RATType OPTIONAL, + sGWChange [34] SGWChange OPTIONAL, + 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, + tWAGiPv6AddressUsed [48] GSNAddress OPTIONAL, + p-GWiPv6AddressUsed [50] GSNAddress OPTIONAL, + retransmission [51] NULL OPTIONAL, + enhancedDiagnostics [52] EnhancedDiagnostics OPTIONAL, + tWANUserLocationInformation [53] TWANUserLocationInfo OPTIONAL, + iMSIunauthenticatedFlag [54] NULL 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, + servingNodePLMNIdentifier [24] PLMN-Id OPTIONAL, + cNOperatorSelectionEnt [25] CNOperatorSelectionEntity OPTIONAL +} + +SGSNPDPRecord ::= SET +{ + recordType [0] RecordType, + networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL, + servedIMSI [3] IMSI OPTIONAL, + 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, + iMSIunauthenticatedFlag [34] NULL OPTIONAL, + userCSGInformation [35] UserCSGInformation OPTIONAL, + servedPDPPDNAddressExt [36] PDPAddress OPTIONAL, + lowPriorityIndicator [37] NULL OPTIONAL, + servingNodePLMNIdentifier [38] PLMN-Id OPTIONAL, + cNOperatorSelectionEnt [39] CNOperatorSelectionEntity OPTIONAL +} + +SGSNSMORecord ::= SET +-- +-- also for MME UE originated SMS record +-- +{ + 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, + servingNodeType [21] ServingNodeType, + servingNodeAddress [22] GSNAddress OPTIONAL, + servingNodeiPv6Address [23] GSNAddress OPTIONAL, + mMEName [24] DiameterIdentity OPTIONAL, + mMERealm [25] DiameterIdentity OPTIONAL, + userLocationInformation [26] OCTET STRING OPTIONAL, + retransmission [27] NULL OPTIONAL, + servingNodePLMNIdentifier [28] PLMN-Id OPTIONAL, + userLocationInfoTime [29] TimeStamp OPTIONAL, + cNOperatorSelectionEnt [30] CNOperatorSelectionEntity OPTIONAL +} + +SGSNSMTRecord ::= SET +-- +-- also for MME UE terminated SMS record +-- +{ + 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, + originatingAddress [19] AddressString OPTIONAL, + servingNodeType [20] ServingNodeType, + servingNodeAddress [21] GSNAddress OPTIONAL, + servingNodeiPv6Address [22] GSNAddress OPTIONAL, + mMEName [23] DiameterIdentity OPTIONAL, + mMERealm [24] DiameterIdentity OPTIONAL, + userLocationInformation [25] OCTET STRING OPTIONAL, + retransmission [26] NULL OPTIONAL, + servingNodePLMNIdentifier [27] PLMN-Id OPTIONAL, + userLocationInfoTime [28] TimeStamp OPTIONAL, + cNOperatorSelectionEnt [29] CNOperatorSelectionEntity 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, + servingNodePLMNIdentifier [28] PLMN-Id OPTIONAL, + cNOperatorSelectionEnt [29] CNOperatorSelectionEntity OPTIONAL +} + +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, + servingNodePLMNIdentifier [26] PLMN-Id OPTIONAL, + cNOperatorSelectionEnt [27] CNOperatorSelectionEntity OPTIONAL +} + +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, + servingNodePLMNIdentifier [26] PLMN-Id OPTIONAL, + cNOperatorSelectionEnt [27] CNOperatorSelectionEntity OPTIONAL +} + +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 +} + +GWMBMSRecord ::= SET +{ + recordType [0] RecordType, + mbmsGWAddress [1] GSNAddress, + chargingID [2] ChargingID, + listofDownstreamNodes [3] SEQUENCE OF GSNAddress, + accessPointNameNI [4] AccessPointNameNI OPTIONAL, + pdpPDNType [5] PDPType OPTIONAL, + servedPDPPDNAddress [6] PDPAddress OPTIONAL, + listOfTrafficVolumes [7] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL, + recordOpeningTime [8] TimeStamp, + duration [9] CallDuration, + causeForRecClosing [10] CauseForRecClosing, + diagnostics [11] Diagnostics OPTIONAL, + recordSequenceNumber [12] INTEGER OPTIONAL, + nodeID [13] NodeID OPTIONAL, + recordExtensions [14] ManagementExtensions OPTIONAL, + localSequenceNumber [15] LocalSequenceNumber OPTIONAL, + mbmsInformation [16] MBMSInformation OPTIONAL, + commonTeid [17] CTEID OPTIONAL, + iPMulticastSourceAddress [18] PDPAddress OPTIONAL +} + +-- +-- PS DATA TYPES +-- + + +AccessAvailabilityChangeReason ::= INTEGER (0..4294967295) +-- +-- 0 (RAN rule indication) : This value shall be used to indicate that the availability +-- of an access is changed due to the RAN rule indication. +-- 1 (Access usable/unusable): This value shall be used to indicate that the availability +-- of an access is changed due to the access is unusable or usable +-- again. +-- + +AccessLineIdentifier ::= SEQUENCE +-- +-- "Physical Access Id" includes a port identifier and the identity of the access node where the +-- port resides. "logical Access Id" contains a Circuit ID. Both are defined ETSI TS 283 034 [314] +-- +{ + physicalAccessID [0] UTF8String OPTIONAL, + logicalAccessID [1] OCTET STRING OPTIONAL +} + +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. +-- + +ADCRuleBaseName ::= IA5String +-- +-- identifier for the group of charging rules +-- see ADC-Rule-Base-Name AVP as desined in TS 29.212 [220] +-- +AdditionalExceptionReports ::= ENUMERATED +{ + notAllowed (0), + allowed (1) +} + + +AFChargingIdentifier ::= OCTET STRING +-- +-- see AF-Charging-Identifier AVP as defined in TS 29.214[221] +-- +AFRecordInformation ::= SEQUENCE +{ + aFChargingIdentifier [1] AFChargingIdentifier, + flows [2] Flows OPTIONAL +} + + +APNRateControl ::= SEQUENCE +-- +-- See TS 24.008 [208] for more information +-- +{ + aPNRateControlUplink [0] APNRateControlParameters OPTIONAL, + aPNRateControlDownlink [1] APNRateControlParameters OPTIONAL +} + +APNRateControlParameters ::= SEQUENCE +{ + additionalExceptionReports [0] AdditionalExceptionReports OPTIONAL, + rateControlTimeUnit [1] RateControlTimeUnit OPTIONAL, + rateControlMaxRate [2] INTEGER OPTIONAL, + rateControlMaxMessageSize [3] DataVolumeGPRS OPTIONAL -- aPNRateControlDownlink only +} + + +APNSelectionMode ::= ENUMERATED +-- +-- See Information Elements TS 29.060 [215], TS 29.274 [223] or TS 29.275 [224] +-- +{ + mSorNetworkProvidedSubscriptionVerified (0), + mSProvidedSubscriptionNotVerified (1), + networkProvidedSubscriptionNotVerified (2) +} + +CalleePartyInformation ::= SEQUENCE +{ +called-Party-Address [0] InvolvedParty OPTIONAL, +requested-Party-Address [1] InvolvedParty OPTIONAL, +list-Of-Called-Asserted-Identity [2] SEQUENCE OF InvolvedParty OPTIONAL +} + +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 +} + +ChangeCondition ::= ENUMERATED +{ + qoSChange (0), + tariffTime (1), + recordClosure (2), +-- WS backward compabillity addition + failureHandlingContinueOngoing (3), + failureHandlingRetryandTerminateOngoing (4), + failureHandlingTerminateOngoing (5), +-- WS mod END + 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" + userCSGInformationChange (13), -- bearer modification. "User CSG info Change" + presenceInPRAChange (14), -- bearer modification. "Change of UE Presence + -- in Presence Reporting Area" + removalOfAccess (15), -- NBIFOM "Removal of Access" + unusabilityOfAccess (16), -- NBIFOM "Unusability of Access" + indirectChangeCondition (17), -- NBIFOM "Indirect Change Condition" + userPlaneToUEChange (18), -- bearer modification. "Change of user plane to UE" + servingPLMNRateControlChange (19), +-- bearer modification "Serving PLMN Rate Control Change" + threeGPPPSDataOffStatusChange (20), -- "Change of 3GPP PS DataO ff Status" + aPNRateControlChange (21) -- bearer modification. "APN Rate ControlChange" + + +} + +ChangeOfCharCondition ::= SEQUENCE +-- +-- qosRequested and qosNegotiated are used in S-CDR only +-- ePCQoSInformation used in SGW-CDR,PGW-CDR, IPE-CDR, TWAG-CDR and ePDG-CDR only +-- userLocationInformation is used only in S-CDR, SGW-CDR and PGW-CDR +-- chargingID used in PGW-CDR only when Charging per IP-CAN session is active +-- accessAvailabilityChangeReason and relatedChangeOfCharCondition applicable only in PGW-CDR +-- cPCIoTOptimisationIndicator is used in SGW-CDR only +-- aPNRateControl is valid for PGW-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, + chargingID [10] ChargingID OPTIONAL, + presenceReportingAreaStatus [11] PresenceReportingAreaStatus OPTIONAL, + userCSGInformation [12] UserCSGInformation OPTIONAL, + diagnostics [13] Diagnostics OPTIONAL, + enhancedDiagnostics [14] EnhancedDiagnostics OPTIONAL, + rATType [15] RATType OPTIONAL, + accessAvailabilityChangeReason [16] AccessAvailabilityChangeReason OPTIONAL, + uWANUserLocationInformation [17] UWANUserLocationInfo OPTIONAL, + relatedChangeOfCharCondition [18] RelatedChangeOfCharCondition OPTIONAL, + cPCIoTEPSOptimisationIndicator [19] CPCIoTEPSOptimisationIndicator OPTIONAL, + servingPLMNRateControl [20] ServingPLMNRateControl OPTIONAL, + threeGPPPSDataOffStatus [21] ThreeGPPPSDataOffStatus OPTIONAL, + listOfPresenceReportingAreaInformation [22] SEQUENCE OF PresenceReportingAreaInfo OPTIONAL, + aPNRateControl [23] APNRateControl 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 and Application based Charging service data container +-- presenceReportingAreaStatus is used in PGW-CDR Only +-- +{ + 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, + threeGPP2UserLocationInformation [24] OCTET STRING OPTIONAL, + sponsorIdentity [25] OCTET STRING OPTIONAL, + applicationServiceProviderIdentity [26] OCTET STRING OPTIONAL, + aDCRuleBaseName [27] ADCRuleBaseName OPTIONAL, + presenceReportingAreaStatus [28] PresenceReportingAreaStatus OPTIONAL, + userCSGInformation [29] UserCSGInformation OPTIONAL, + rATType [30] RATType OPTIONAL, + uWANUserLocationInformation [32] UWANUserLocationInfo OPTIONAL, + relatedChangeOfServiceCondition [33] RelatedChangeOfServiceCondition OPTIONAL, + servingPLMNRateControl [35] ServingPLMNRateControl OPTIONAL, + aPNRateControl [36] APNRateControl OPTIONAL, + threeGPPPSDataOffStatus [37] ThreeGPPPSDataOffStatus OPTIONAL, + trafficSteeringPolicyIDDownlink [38] TrafficSteeringPolicyIDDownlink OPTIONAL, +trafficSteeringPolicyIDUplink [39] TrafficSteeringPolicyIDUplink OPTIONAL, + tWANUserLocationInformation [40] TWANUserLocationInfo OPTIONAL, + listOfPresenceReportingAreaInformation [41] SEQUENCE OF PresenceReportingAreaInfo OPTIONAL, + voLTEInformation [42] VoLTEInformation 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)) + + +ChargingPerIPCANSessionIndicator ::= ENUMERATED +{ + inactive (0), + active (1) +} + +ChargingRuleBaseName ::= IA5String +-- +-- identifier for the group of charging rules +-- see Charging-Rule-Base-Name AVP as desined in TS 29.212 [220] +-- + +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, P-GW, TDF and IP-Edge + roamingDefault (4), -- For SGSN, S-GW, P-GW, TDF and IP-Edge + visitingDefault (5), -- For SGSN, S-GW, P-GW, TDF and IP-Edge + fixedDefault (6) -- For TDF and IP-Edge +} + +CNOperatorSelectionEntity ::= ENUMERATED +{ + servCNSelectedbyUE (0), + servCNSelectedbyNtw (1) +} + +CPCIoTEPSOptimisationIndicator ::= BOOLEAN + +CSGAccessMode ::= ENUMERATED +{ + closedMode (0), + hybridMode (1) +} + +CSGId ::= OCTET STRING (SIZE(4)) +-- +-- Defined in TS 23.003 [200]. Coded according to TS 29.060 [215] for GTP, and +-- in TS 29.274 [223] for eGTP. +-- + +CTEID ::= OCTET STRING (SIZE(4)) +-- +-- Defined in TS 32.251[11] for MBMS-GW-CDR. Common Tunnel Endpoint Identifier +-- of MBMS GW for user plane, defined in TS 23.246 [207]. +-- + +DataVolumeGPRS ::= INTEGER +-- +-- The volume of data transferred in octets. +-- + +DataVolumeMBMS ::= INTEGER +-- +-- The volume of data transferred in octets. +-- + + +EPCQoSInformation ::= SEQUENCE +-- +-- See TS 29.212 [220] 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, + extendedMaxRequestedBWUL [9] INTEGER OPTIONAL, + extendedMaxRequestedBWDL [10] INTEGER OPTIONAL, + extendedGBRUL [11] INTEGER OPTIONAL, + extendedGBRDL [12] INTEGER OPTIONAL, + extendedAPNAMBRUL [13] INTEGER OPTIONAL, + extendedAPNAMBRDL [14] 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 + + +FixedSubsID ::= OCTET STRING +-- +-- The fixed subscriber Id identifier is defined in Broadband Forum TR 134 [601]. +-- + + +FixedUserLocationInformation ::= SEQUENCE +-- +-- See format in IEEE Std 802.11-2012 [408] for "SSID" and "BSSID". +-- +{ + sSID [0] OCTET STRING OPTIONAL , + bSSID [1] OCTET STRING OPTIONAL, + accessLineIdentifier [2] AccessLineIdentifier OPTIONAL +} + +Flows ::= SEQUENCE +-- +-- See Flows AVP as defined in TS 29.214 [221] +-- +{ + 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 [217] +-- + +-- GSNAddress ::= IPAddress + + +MOExceptionDataCounter ::= SEQUENCE +-- +-- See TS 29.128 [244] for more information +-- +{ + counterValue [0] INTEGER, + counterTimestamp [1] TimeStamp +} + + +MSNetworkCapability ::= OCTET STRING (SIZE(1..8)) +-- +-- see TS 24.008 [208] +-- + +NBIFOMMode ::= ENUMERATED +{ + uEINITIATED (0), + nETWORKINITIATED (1) +} + +NBIFOMSupport ::= ENUMERATED +{ + nBIFOMNotSupported (0), + nBIFOMSupported (1) +} + +NetworkInitiatedPDPContext ::= BOOLEAN +-- +-- Set to true if PDP context was initiated from network side +-- + +NumberOfDPEncountered ::= INTEGER +PDPType ::= OCTET STRING (SIZE(2)) +-- +-- OCTET 1: PDP Type Organization +-- OCTET 2: PDP/PDN Type Number +-- See TS 29.060 [215] for encoding details. +-- + + +PDPPDNTypeExtension ::= INTEGER +-- +-- This integer is 1:1 copy of the PDP type value as defined in TS 29.061 [215]. +-- + + +PresenceReportingAreaElementsList ::= OCTET STRING +-- +-- For EPC see Presence-Reporting-Area-Elements-List AVP defined in TS 29.212 [220] +-- For 5GC see PresenceInfo defined in TS 29.571 [249] excluding praId and presenceState +-- + + +PresenceReportingAreaInfo ::= SEQUENCE +{ + presenceReportingAreaIdentifier [0] OCTET STRING, + presenceReportingAreaStatus [1] PresenceReportingAreaStatus OPTIONAL, + presenceReportingAreaElementsList[2] PresenceReportingAreaElementsList OPTIONAL, + presenceReportingAreaNode [3] PresenceReportingAreaNode OPTIONAL +} + +PresenceReportingAreaNode ::= BIT STRING +{ + oCS (0), + pCRF (1) +} +-- +-- This bit mask has the same format as Presence-Reporting-Area-Node AVP in TS 29.212 [220] +-- + + +PresenceReportingAreaStatus ::= ENUMERATED +{ + insideArea (0), + outsideArea (1), + inactive (2), + unknown (3) + +} + +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 [223]. +-- + +RANSecondaryRATUsageReport ::= SEQUENCE +-- +{ + dataVolumeUplink [1] DataVolumeGPRS, + dataVolumeDownlink [2] DataVolumeGPRS, + rANStartTime [3] TimeStamp, + rANEndTime [4] TimeStamp, + secondaryRATType [5] SecondaryRATType OPTIONAL, + chargingID [6] ChargingID OPTIONAL +} + + +RateControlTimeUnit ::= INTEGER +{ unrestricted (0), + minute (1), + hour (2), + day (3), + week (4) +} + +RatingGroupId ::= INTEGER +-- +-- IP service flow identity (DCCA), range of 4 byte (0... 4294967295) +-- see Rating-Group AVP as used in TS 32.299 [50] +-- + +RelatedChangeOfCharCondition ::= SEQUENCE +{ + changeCondition [5] ChangeCondition, + changeTime [6] TimeStamp, + userLocationInformation [8] OCTET STRING OPTIONAL, + presenceReportingAreaStatus [11] PresenceReportingAreaStatus OPTIONAL, + userCSGInformation [12] UserCSGInformation OPTIONAL, + rATType [15] RATType OPTIONAL, + uWANUserLocationInformation [17] UWANUserLocationInfo OPTIONAL +} + +RelatedChangeOfServiceCondition ::= SEQUENCE +{ + userLocationInformation [20] OCTET STRING OPTIONAL, + threeGPP2UserLocationInformation [24] OCTET STRING OPTIONAL, + presenceReportingAreaStatus [28] PresenceReportingAreaStatus OPTIONAL, + userCSGInformation [29] UserCSGInformation OPTIONAL, + rATType [30] RATType OPTIONAL, + uWANUserLocationInformation [32] UWANUserLocationInfo OPTIONAL, + relatedServiceConditionChange [33] ServiceConditionChange OPTIONAL +} + +ResultCode ::= INTEGER +-- +-- charging protocol return value, range of 4 byte (0... 4294967295) +-- see Result-Code AVP as used in 32.299 [40] +-- + +SecondaryRATType ::= INTEGER +{ + nR (0) -- New Radio 5G +} + +ServiceConditionChange ::= BIT STRING +{ + qoSChange (0), -- bearer modification + sGSNChange (1), -- bearer modification: + -- apply to Gn-SGSN /SGW Change + 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" + userCSGInformationChange (32), -- bearer modification. "User CSG info Change" + presenceInPRAChange (33), -- bearer modification. "Change of UE Presence + -- in Presence Reporting Area" + accessChangeOfSDF (34), -- "access change of service data flow" + indirectServiceConditionChange (35), -- NBIFOM: "indirect service condition change" + servingPLMNRateControlChange (36), -- bearer modification. "Serving PLMNRate + -- Control Change" + aPNRateControlChange (37) -- bearer modification. "APN Rate ControlChange +} +-- +-- 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 [214] +-- + +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 [220] +-- + +ServingNodeType ::= ENUMERATED +{ + sGSN (0), + pMIPSGW (1), + gTPSGW (2), + ePDG (3), + hSGW (4), + mME (5), + tWAN (6) +} + + +ServingPLMNRateControl ::= SEQUENCE +-- +-- See TS 29.128 [244] for more information +-- +{ + sPLMNDLRateControlValue [0] INTEGER, + sPLMNULRateControlValue [1] INTEGER +} + +SGiPtPTunnellingMethod ::= ENUMERATED +{ + uDPIPbased (0), + others (1) +} + + +SGSNChange ::= BOOLEAN +-- +-- present if first record after inter SGSN routing area update in new SGSN +-- + +SGWChange ::= BOOLEAN +-- +-- present if first record after inter serving node change (SGW, ePDG, TWAG, HSGW) +-- + + +TimeQuotaMechanism ::= SEQUENCE +{ + timeQuotaType [1] TimeQuotaType, + baseTimeInterval [2] INTEGER +} + +TimeQuotaType ::= ENUMERATED +{ + dISCRETETIMEPERIOD (0), + cONTINUOUSTIMEPERIOD (1) +} + +TrafficSteeringPolicyIDDownlink ::= OCTET STRING +-- +-- see Traffic-Steering-Policy-Identifier-DL AVP as defined in TS 29.212[220] + +TrafficSteeringPolicyIDUplink ::= OCTET STRING +-- +-- see Traffic-Steering-Policy-Identifier-UL AVP as defined in TS 29.212[220] + +TWANUserLocationInfo ::= SEQUENCE +{ + sSID [0] OCTET STRING, -- see format in IEEE Std 802.11-2012 [408] + bSSID [1] OCTET STRING OPTIONAL, -- see format in IEEE Std 802.11-2012 [408] + civicAddressInformation [2] CivicAddressInformation OPTIONAL, + wLANOperatorId [3] WLANOperatorId OPTIONAL, + logicalAccessID [4] OCTET STRING OPTIONAL +} + +UNIPDUCPOnlyFlag ::= BOOLEAN + + +UserCSGInformation ::= SEQUENCE +{ + cSGId [0] CSGId, + cSGAccessMode [1] CSGAccessMode, + cSGMembershipIndication [2] NULL OPTIONAL +} + +UWANUserLocationInfo ::= SEQUENCE +{ + uELocalIPAddress [0] IPAddress, + uDPSourcePort [1] OCTET STRING (SIZE(2)) OPTIONAL, + sSID [2] OCTET STRING OPTIONAL, -- see format in IEEE Std 802.11-2012 [408] + bSSID [3] OCTET STRING OPTIONAL, -- see format in IEEE Std 802.11-2012 [408] + tCPSourcePort [4] OCTET STRING (SIZE(2)) OPTIONAL, + civicAddressInformation [5] CivicAddressInformation OPTIONAL, + wLANOperatorId [6] WLANOperatorId OPTIONAL, + logicalAccessID [7] OCTET STRING OPTIONAL +} + +VoLTEInformation ::= SEQUENCE +{ + callerInformation [0] SEQUENCE OF InvolvedParty OPTIONAL, + calleeInformation [1] CalleePartyInformation OPTIONAL +} + + +WLANOperatorId ::= SEQUENCE +{ + wLANOperatorName [0] OCTET STRING, + wLANPLMNId [1] PLMN-Id +} + + +END diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn new file mode 100644 index 00000000..6e9dfd8a --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn @@ -0,0 +1,890 @@ +-- 3GPP TS 32.298 V6.4.1 (2006-06) +-- +GPRSChargingDataTypesV641 {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, CallEventRecordType, 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, SMSResult, SmsTpDestinationNumber, TimeStamp +--FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)} + +-- From V670 +RAIdentity +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] + +DefaultGPRS-Handling +-- 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 +-- +------------------------------------------------------------------------------ + +GPRSCallEventRecord ::= CHOICE +{ +-- +-- Record values 20..27 are GPRS specific +-- Record values 29..30 are GPRS and MBMS specific + + sgsnPDPRecord [20] SGSNPDPRecordV651, + ggsnPDPRecord [21] GGSNPDPRecord, + sgsnMMRecord [22] SGSNMMRecord, + sgsnSMORecord [23] SGSNSMORecordV651, + sgsnSMTRecord [24] SGSNSMTRecordV651, +-- sgsnLCTRecord [25] SGSNLCTRecord, +-- sgsnLCORecord [26] SGSNLCORecord, +-- sgsnLCNRecord [27] SGSNLCNRecord, + egsnPDPRecord [28] EGSNPDPRecord +-- sgsnMBMSRecord [29] SGSNMBMSRecord, +-- ggsnMBMSRecord [30] GGSNMBMSRecord +} +-- Editor's note: the acronyms for the LCS record types are not consistent with CS and the "call event record type" notation. They also contradict to the record type definitons below, so alignment is needed. + +GGSNPDPRecord ::= SET +{ + recordType [0] CallEventRecordType, + networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL, + servedIMSI [3] IMSI, + ggsnAddress [4] GSNAddress, + chargingID [5] ChargingID, + sgsnAddress [6] SEQUENCE OF GSNAddress, + accessPointNameNI [7] AccessPointNameNI OPTIONAL, + pdpType [8] PDPType OPTIONAL, + servedPDPAddress [9] PDPAddress OPTIONAL, + dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL, + listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL, + recordOpeningTime [13] TimeStamp, + duration [14] CallDuration, + causeForRecClosing [15] CauseForRecClosingV651, + 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, + sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL, + servedIMEISV [29] IMEI OPTIONAL, + rATType [30] RATType OPTIONAL, + mSTimeZone [31] MSTimeZone OPTIONAL, + userLocationInformation [32] OCTET STRING OPTIONAL, + cAMELChargingInformation [33] OCTET STRING OPTIONAL + +} + +-- WS Added GGSNPDPRecord from V750 spec here +GGSNPDPRecordV750 ::= SET +{ + recordType [0] RecordType, + networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL, + servedIMSI [3] IMSI, + ggsnAddress [4] GSNAddress, + chargingID [5] ChargingID, + sgsnAddress [6] SEQUENCE OF GSNAddress, + accessPointNameNI [7] AccessPointNameNI OPTIONAL, + pdpType [8] PDPType OPTIONAL, + servedPDPAddress [9] PDPAddress OPTIONAL, + dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL, + listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 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, + sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL, + servedIMEISV [29] IMEI OPTIONAL, + rATType [30] RATType OPTIONAL, + mSTimeZone [31] MSTimeZone OPTIONAL, + userLocationInformation [32] OCTET STRING OPTIONAL, + cAMELChargingInformation [33] OCTET STRING OPTIONAL +} +EGSNPDPRecord ::= SET +{ + recordType [0] CallEventRecordType, + networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL, + servedIMSI [3] IMSI, + ggsnAddress [4] GSNAddress, + chargingID [5] ChargingID, + sgsnAddress [6] SEQUENCE OF GSNAddress, + accessPointNameNI [7] AccessPointNameNI OPTIONAL, + pdpType [8] PDPType OPTIONAL, + servedPDPAddress [9] PDPAddress OPTIONAL, + dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL, + listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL, + recordOpeningTime [13] TimeStamp, + duration [14] CallDuration, + causeForRecClosing [15] CauseForRecClosingV651, + 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, + sgsnPLMNIdentifier [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 ChangeOfServiceConditionV651 OPTIONAL +} + +EGSNPDPRecordV750 ::= SET +{ + recordType [0] CallEventRecordType, + networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL, + servedIMSI [3] IMSI, + ggsnAddress [4] GSNAddress, + chargingID [5] ChargingID, + sgsnAddress [6] SEQUENCE OF GSNAddress, + accessPointNameNI [7] AccessPointNameNI OPTIONAL, + pdpType [8] PDPType OPTIONAL, + servedPDPAddress [9] PDPAddress OPTIONAL, + dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL, + listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharConditionV651 OPTIONAL, + recordOpeningTime [13] TimeStamp, + duration [14] CallDuration, + causeForRecClosing [15] CauseForRecClosingV651, + 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, + sgsnPLMNIdentifier [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 ChangeOfServiceConditionV750 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 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, + 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 ChangeOfCharConditionV651 OPTIONAL, + recordOpeningTime [16] TimeStamp, + duration [17] CallDuration, + sgsnChange [18] SGSNChange OPTIONAL, + causeForRecClosing [19] CauseForRecClosingV651, + 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 +} + +SGSNSMORecordV651 ::= SET +{ + recordType [0] CallEventRecordType, + 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 +} + +SGSNSMTRecordV651 ::= SET +{ + recordType [0] CallEventRecordType, + 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] CallEventRecordType, +-- 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] CauseForRecClosingV651 +--} + +--SGSNMOLCSRecord ::= SET +--{ +-- recordType [0] CallEventRecordType, +-- 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] CauseForRecClosingV651 +--} + +--SGSNNILCSRecord ::= SET +--{ +-- recordType [0] CallEventRecordType, +-- 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] CauseForRecClosingV651 +--} + +--SGSNMBMSRecord ::= SET +--{ +-- recordType [0] CallEventRecordType, +-- 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] CauseForRecClosingV651, +-- 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] CallEventRecordType, +-- 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] CauseForRecClosingV651, +-- diagnostics [10] Diagnostics OPTIONAL, +-- recordSequenceNumber [11] INTEGER OPTIONAL, +-- nodeID [12] NodeID OPTIONAL, +-- recordExtensions [13] ManagementExtensions OPTIONAL, +-- localSequenceNumber [14] LocalSequenceNumber OPTIONAL, +-- mbmsInformation [15] MBMSInformation OPTIONAL +--} + +------------------------------------------------------------------------------ +-- +-- GPRS 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. + -- + +--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 +--} +CauseForRecClosingV651 ::= INTEGER +{ + -- + -- In GGSN the value sGSNChange should be used for partial record + -- generation due to SGSN Address List Overflow + -- + -- LCS related causes belong to the MAP error causes acc. TS 29.002 + -- + -- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination) + -- + normalRelease (0), + abnormalRelease (4), + cAMELInitCallRelease (5), + volumeLimit (16), + timeLimit (17), + sGSNChange (18), + maxChangeCond (19), + managementIntervention (20), + intraSGSNIntersystemChange (21), + rATChange (22), + mSTimeZoneChange (23), + sGSNPLMNIDChange (24), -- Copied from V8e0 + unauthorizedRequestingNetwork (52), + unauthorizedLCSClient (53), + positionMethodFailure (54), + unknownOrUnreachableLCSClient (58), + listofDownstreamNodeChange (59) +} + +ChangeConditionV651 ::= ENUMERATED +{ + -- + -- Failure Handling values used in eGCDR only + -- + qoSChange (0), + tariffTime (1), + recordClosure (2), + failureHandlingContinueOngoing (3), + failureHandlingRetryandTerminateOngoing (4), + failureHandlingTerminateOngoing (5), +-- WS mod add from V750 + cGI-SAICHange (6), + rAIChange (7), + dT-Establishment (8), + dT-Removal (9) +} + +ChangeOfCharConditionV651 ::= SEQUENCE +{ + -- + -- Used in PDP context record only + -- + qosRequested [1] QoSInformation OPTIONAL, + qosNegotiated [2] QoSInformation OPTIONAL, + dataVolumeGPRSUplink [3] DataVolumeGPRS, + dataVolumeGPRSDownlink [4] DataVolumeGPRS, + changeCondition [5] ChangeConditionV651, + changeTime [6] TimeStamp, +-- WS mod add from V750 + failureHandlingContinue [7] FailureHandlingContinue OPTIONAL, + userLocationInformation [8] OCTET STRING OPTIONAL +} +--ChangeOfMBMSCondition ::= SEQUENCE +--{ + -- + -- Used in MBMS record + -- +-- qosRequested [1] QoSInformation OPTIONAL, +-- qosNegotiated [2] QoSInformation OPTIONAL, +-- dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL, +-- dataVolumeMBMSDownlink [4] DataVolumeMBMS, +-- changeCondition [5] ChangeConditionV651, +-- changeTime [6] TimeStamp, +-- failureHandlingContinue [7] FailureHandlingContinue OPTIONAL +--} + +ChangeOfServiceConditionV651 ::= 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] ServiceConditionChangeV651, + qoSInformationNeg [9] QoSInformation OPTIONAL, + sgsn-Address [10] GSNAddress OPTIONAL, +-- sGSNPLMNIdentifier [11] SGSNPLMNIdentifier OPTIONAL, Typo ? + sGSNPLMNIdentifier [11] PLMN-Id OPTIONAL, + datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL, + datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL, + timeOfReport [14] TimeStamp, + rATType [15] RATType OPTIONAL, + failureHandlingContinue [16] FailureHandlingContinue OPTIONAL, + serviceIdentifier [17] ServiceIdentifier OPTIONAL, + pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL +} + +ChangeOfServiceConditionV750 ::= 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, + serviceConditionChangeV750 [8] ServiceConditionChangeV750, + qoSInformationNeg [9] QoSInformation OPTIONAL, + sgsn-Address [10] GSNAddress OPTIONAL, +-- sGSNPLMNIdentifier [11] SGSNPLMNIdentifier OPTIONAL, + sGSNPLMNIdentifier [11] PLMN-Id OPTIONAL, + datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL, + datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL, + timeOfReport [14] TimeStamp, + rATType [15] RATType OPTIONAL, + 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 +} + +ChangeLocationV651 ::= SEQUENCE +{ + -- + -- used in SGSNMMRecord only + -- + locationAreaCode [0] LocationAreaCode, + routingAreaCode [1] RoutingAreaCode, + cellId [2] CellId OPTIONAL, + changeTime [3] TimeStamp, + -- WS add from V750 + mCC-MNC [4] PLMN-Id OPTIONAL +} + +--ChargingCharacteristics ::= OCTET STRING (SIZE(2)) + -- + -- Bit 0-3: Profile Index + -- Bit 4-15: For Behavior + -- + +--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)) + -- + -- 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 +--} + +--DataVolumeGPRS ::= INTEGER + -- + -- The volume of data transferred in octets. + -- + +--DynamicAddressFlag ::= BOOLEAN + +--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 + -- +-- 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 + +--FreeFormatData ::= OCTET STRING (SIZE(1..160)) + -- + -- Free formated data as sent in the FurnishChargingInformationGPRS + -- see TS 29.078 + -- + +--GSNAddress ::= IPAddress + +--MSNetworkCapability ::= OCTET STRING (SIZE(1..8)) + -- see 3G TS 24.008 + +--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 +--} + +--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)) + -- + -- 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..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 + -- + -- 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 + -- + -- Ihis integer is 1:1 copy of the RAT type value as defined in 3GPP TS 29.060 [75]. + -- + +--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)) + -- + -- See TS 24.008 -- + -- + +ServiceConditionChangeV651 ::= BIT STRING +{ +qoSChange (0), +sGSNChange (1), +sGSNPLMNIDChange (2), +tariffTimeSwitch (3), +pDPContextRelease (4), +rATChange (5), +serviceIdledOut (6), +qCTExpiry (7), +configurationChange (8), +serviceStop (9), +timeThresholdReached (10), +volumeThresholdReached (11), +timeExhausted (13), +volumeExhausted (14), +timeout (15), +returnRequested (16), +reauthorisationRequest (17), +continueOngoingSession (18), +retryAndTerminateOngoingSession (19), +terminateOngoingSession (20) +} +-- Bits 0-5 are cause values for Gn update/release and TTS +-- Bits 6-9 are cause values for service stop +-- Bits 10-14 are cause values for service reauthorization request +-- Bits 15-17 are cause values for quota return +-- Bits 18-20: are cause values for Failure Handling Procedure +-- Bits 21-32: are unused and will always be zero +-- some of the values are non-exclusive +-- serviceIdledOut - bit 6 is equivalent to service release by QHT + +ServiceConditionChangeV750 ::= BIT STRING +{ + qoSChange (0), -- PDP context modification + sGSNChange (1), -- PDP context modification + sGSNPLMNIDChange (2), -- PDP context modification + tariffTimeSwitch (3), -- tariff time change + pDPContextRelease (4), -- PDP context release + rATChange (5), -- PDP context 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 + 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) + reserved2 (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), -- PDP context modification + rAIChange (22), -- PDP context modification + dCCAServiceSpecificUnitExhausted (23), -- DCCA quota reauthorization + recordClosure (24), -- eG-CDR closure + timeLimit (25), -- intermediate recording + volumeLimit (26), -- intermediate recording + serviceSpecificUnitLimit (27), -- intermediate recording + envelopeClosure (28) +} +-- +-- 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. PDP context modification reasons). + -- +--SCFAddress ::= AddressString + -- + -- See TS 29.002 + -- + +--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 + -- + -- present if first record after inter SGSN routing area update + -- in new SGSN + -- + + +END diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn new file mode 100644 index 00000000..553c1b4e --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypes.asn @@ -0,0 +1,987 @@ +-- 3GPP TS 32.298 v18.2.0 (2023-06-23) +GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version2 (1)} + +DEFINITIONS IMPLICIT TAGS ::= + +BEGIN + +-- EXPORTS everything + +IMPORTS + +AddressString, +ISDN-AddressString, +LCSClientExternalID, +LCSClientInternalID +FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version18 (18) } +-- from TS 29.002 [214] + +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) version18 (18)} +-- from TS 29.002 [214] + +ObjectInstance +FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) modules (0) protocol (3)} +-- from Rec. X.711 [304] + +-- WS localy defined +--ManagementExtension +--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1} +-- from Rec. X.721 [305] + +AE-title +FROM ACSE-1 {joint-iso-itu-t association-control (2) modules (0) apdus (0) version1 (1) }; +-- Note that the syntax of AE-title to be used is from +-- ITU-T Rec. X.227[306) / ISO 8650 corrigendum and not "ANY" + +-- +-- Generic Data Types +-- + +-- +-- B +-- + +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 [208]. +-- 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. +-- + +-- +-- C +-- + +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. +-- + +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 + +CallingNumber ::= BCDDirectoryNumber + +CellId ::= OCTET STRING (SIZE(2)) +-- +-- Coded according to TS 24.008 [208] +-- + +ChargeIndicator ::= INTEGER +{ + noCharge (0), + charge (1) +} + +CauseForRecClosing ::= INTEGER +-- +-- Cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination) +-- There is no direct correlation between these two types. +-- +-- LCS related causes belong to the MAP error causes acc. TS 29.002 [214] +-- +-- 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 +-- +-- sWGChange value is used in both the S-GW, TWAG and ePDG for inter serving node change +-- +{ + normalRelease (0), + partialRecord (1), + abnormalRelease (4), + cAMELInitCallRelease (5), + volumeLimit (16), + timeLimit (17), + servingNodeChange (18), + maxChangeCond (19), + managementIntervention (20), + intraSGSNIntersystemChange (21), + rATChange (22), + mSTimeZoneChange (23), + sGSNPLMNIDChange (24), + sGWChange (25), + aPNAMBRChange (26), + mOExceptionDataCounterReceipt (27), + unauthorizedRequestingNetwork (52), + unauthorizedLCSClient (53), + positionMethodFailure (54), + unknownOrUnreachableLCSClient (58), + listofDownstreamNodeChange (59) +} + +CauseForTerm ::= INTEGER +-- +-- Cause codes from 16 up to 31 are defined as 'CauseForRecClosing' +-- (cause for record closing). +-- There is no direct correlation between these two types. +-- +-- LCS related causes belong to the MAP error causes acc. TS 29.002 [214]. +-- +{ + normalRelease (0), + partialRecord (1), + partialRecordCallReestablishment (2), + unsuccessfulCallAttempt (3), + abnormalRelease (4), + cAMELInitCallRelease (5), + unauthorizedRequestingNetwork (52), + unauthorizedLCSClient (53), + positionMethodFailure (54), + unknownOrUnreachableLCSClient (58) +} + +ChargingID ::= INTEGER (0..4294967295) +-- +-- Generated in P-GW, part of IP-CAN bearer +-- 0..4294967295 is equivalent to 0..2**32-1 +-- + +CivicAddressInformation ::= OCTET STRING +-- +-- as defined in subclause 3.1 of IETF RFC 4776 [409] excluding the first 3 octets. +-- + +CNIPMulticastDistribution ::= ENUMERATED +{ + nO-IP-MULTICAST (0), + iP-MULTICAST (1) +} + +-- +-- D +-- + +DataVolumeOctets ::= INTEGER +-- +-- The volume of data transferred in octets. +-- + +DynamicAddressFlag ::= BOOLEAN + + +Diagnostics ::= CHOICE +{ + gsm0408Cause [0] INTEGER, + -- See TS 24.008 [208] + 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 [214]. + -- + itu-tQ767Cause [2] INTEGER, + -- See Q.767 [309] + networkSpecificCause [3] ManagementExtension, + -- To be defined by network operator + manufacturerSpecificCause [4] ManagementExtension, + -- To be defined by manufacturer + -- May be used for CHF generated diagnostics + positionMethodFailureCause [5] PositionMethodFailure-Diagnostic, + -- See TS 29.002 [214] + unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic, + -- See TS 29.002 [214] + diameterResultCodeAndExperimentalResult [7] INTEGER + -- See TS 29.338 [230], TS 29.337 [231], TS 29.128 [244] +-- May be used for Nchf received diagnostics +} + +DiameterIdentity ::= OCTET STRING + +-- +-- E +-- + +Ecgi ::= SEQUENCE +{ + plmnId [0] PLMN-Id, + eutraCellId [1] EutraCellId, + nid [2] Nid OPTIONAL +} + +EnhancedDiagnostics ::= SEQUENCE +{ + rANNASCause [0] SEQUENCE OF RANNASCause +} + +EutraCellId ::= UTF8String +-- +-- See 3GPP TS 29.571 [249] for details +-- + +-- +-- G +-- + +GSNAddress ::= IPAddress + +-- +-- I +-- + +InvolvedParty ::= CHOICE +{ + sIP-URI [0] GraphicString, -- refer to rfc3261 [401] + tEL-URI [1] GraphicString, -- refer to rfc3966 [402] + uRN [2] GraphicString, -- refer to rfc5031 [407] + iSDN-E164 [3] GraphicString, -- refer to ITU-T Recommendation E.164[308] + externalId [4] UTF8String -- refer to clause 19.7.2 TS 23.003 [200] + +} + +IPAddress ::= CHOICE +{ + iPBinaryAddress IPBinaryAddress, + iPTextRepresentedAddress IPTextRepresentedAddress +} + +IPBinaryAddress ::= CHOICE +{ + iPBinV4Address [0] IPBinV4Address, + iPBinV6Address IPBinV6AddressWithOrWithoutPrefixLength +} + +IPBinV4Address ::= OCTET STRING (SIZE(4)) + +IPBinV6Address ::= OCTET STRING (SIZE(16)) + +IPBinV6AddressWithOrWithoutPrefixLength ::= CHOICE +{ + iPBinV6Address [1] IPBinV6Address, + iPBinV6AddressWithPrefix [4] IPBinV6AddressWithPrefixLength +} + +IPBinV6AddressWithPrefixLength ::= SEQUENCE +{ + iPBinV6Address IPBinV6Address, + pDPAddressPrefixLength PDPAddressPrefixLength DEFAULT 64 +} + +IPTextRepresentedAddress ::= CHOICE +{ -- + -- IPv4 address are formatted in the "dotted decimal" notation according to IETF RFC 1166 [411]. + -- IPv6 address are formatted according to clause 4 of IETF RFC 5952 [412]. The mixed IPv4 IPv6 + -- notation according to clause 5 of IETF RFC 5952 [412] is not used. + -- IPv6 address prefix are formatted in the "/" notation and according to clause 4 of + -- IETF RFC 5952 [412]. + -- + iPTextV4Address [2] IA5String (SIZE(7..15)), + iPTextV6Address [3] IA5String (SIZE(15..45)) +} + +-- +-- L +-- + +LCSCause ::= OCTET STRING (SIZE(1)) +-- +-- See LCS Cause Value, TS 49.031 [227] +-- + +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 [227] +-- + +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 [208] +-- + +-- +-- M +-- + + +ManagementExtensions ::= SET OF ManagementExtension + +MBMS2G3GIndicator ::= ENUMERATED +{ + twoG (0), -- For GERAN access only + threeG (1), -- For UTRAN access only + twoG-AND-threeG (2) -- For both UTRAN and GERAN access +} + +MBMSInformation ::= SET +{ + tMGI [1] TMGI OPTIONAL, + mBMSSessionIdentity [2] MBMSSessionIdentity OPTIONAL, + mBMSServiceType [3] MBMSServiceType OPTIONAL, + mBMSUserServiceType [4] MBMSUserServiceType OPTIONAL, -- only supported in the BM-SC + mBMS2G3GIndicator [5] MBMS2G3GIndicator OPTIONAL, + fileRepairSupported [6] BOOLEAN OPTIONAL, -- only supported in the BM-SC + rAI [7] RoutingAreaCode OPTIONAL, -- only supported in the BM-SC + mBMSServiceArea [8] MBMSServiceArea OPTIONAL, + requiredMBMSBearerCaps [9] RequiredMBMSBearerCapabilities OPTIONAL, + mBMSGWAddress [10] GSNAddress OPTIONAL, + cNIPMulticastDistribution [11] CNIPMulticastDistribution OPTIONAL, + mBMSDataTransferStart [12] MBMSTime OPTIONAL, + mBMSDataTransferStop [13] MBMSTime OPTIONAL +} + +MBMSServiceArea ::= OCTET STRING + +MBMSServiceType ::= ENUMERATED +{ + mULTICAST (0), + bROADCAST (1) +} + +MBMSSessionIdentity ::= OCTET STRING (SIZE (1)) +-- +-- This octet string is a 1:1 copy of the contents of the MBMS-Session-Identity +-- AVP specified in TS 29.061 [82] +-- + +MBMSTime ::= OCTET STRING (SIZE (8)) +-- +-- This value indicates the time in seconds relative to 00:00:00 on 1 January 1900 (calculated as +-- continuous time without leap seconds and traceable to a common time reference) where binary +-- encoding of the integer part is in the first 32 bits and binary encoding of the fraction part in +-- the last 32 bits. The fraction part is expressed with a granularity of 1 /2**32 second as +-- specified in TS 29.061 [82]. +-- + +MBMSUserServiceType ::= ENUMERATED +{ + dOWNLOAD (0), + sTREAMING (1) +} + +MCC-MNC ::= OCTET STRING (SIZE(3)) +-- +-- See TS 24.008 [208] +-- + +MessageClass ::= ENUMERATED +{ + personal (0), + advertisement (1), + information-service (2), + auto (3) +} + +MessageReference ::= OCTET STRING +-- +-- The default value shall be one octet set to 0 +-- + +MSCAddress ::= AddressString + +MscNo ::= ISDN-AddressString +-- +-- See TS 23.003 [200] +-- + +MSISDN ::= ISDN-AddressString +-- +-- See TS 23.003 [200] +-- + +MSTimeZone ::= OCTET STRING (SIZE (2)) +-- +-- 1. Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [215] +-- + +-- +-- N +-- + +Ncgi ::= SEQUENCE +{ + plmnId [0] PLMN-Id, + nrCellId [1] NrCellId, + nid [2] Nid OPTIONAL +} + +Nid ::= UTF8String-- +-- See 3GPP TS 29.571 [249] for details. +-- + +NodeID ::= IA5String (SIZE(1..20)) + +NodeAddress ::= CHOICE +{ + iPAddress [0] IPAddress, + domainName [1] GraphicString +} + +NrCellId ::= UTF8String +-- +-- See 3GPP TS 29.571 [249] for details. +-- + + +-- +-- P +-- + +PDPAddressPrefixLength ::=INTEGER (1..64) +-- +-- This is an integer indicating the length of the PDP/PDN IPv6 address prefix +-- and the default value is 64 bits. +-- + +PDPAddress ::= CHOICE +{ + iPAddress [0] IPAddress +-- eTSIAddress [1] ETSIAddress +-- has only been used in earlier releases for X.121 format +} + +PLMN-Id ::= OCTET STRING (SIZE (3)) +-- +-- This is in the same format as octets 2, 3 and 4 of the Routing Area Identity (RAI) IE specified +-- in TS 29.060 [215] +-- + +PositioningData ::= OCTET STRING (SIZE(1..33)) +-- +-- See Positioning Data IE (octet 3..n), TS 49.031 [227] +-- + +PriorityType ::= ENUMERATED +{ + low (0), + normal (1), + high (2) +} + +PSCellInformation ::= SEQUENCE +{ + nRcgi [0] Ncgi OPTIONAL, + ecgi [1] Ecgi OPTIONAL + +} + +-- +-- R +-- + +RANNASCause ::= OCTET STRING +-- This octet string is a 1:1 copy of the contents (i.e. starting with octet 5) +-- of the "RAN/NAS Cause" information element specified in TS 29.274 [223]. + +RATType ::= INTEGER (0..255) +-- +--This integer is 1:1 copy of the RAT type value as defined in TS 29.061 [215]. +-- + +RecordingEntity ::= AddressString + +RecordType ::= INTEGER +-- +-- Record values 0..17 and 87,89 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), -- also MME UE originated SMS record + sgsnSMTRecord (22), -- also MME UE terminated SMS record +-- +-- 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..70, 82, 89..91 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), + eCSCFRecord (70), + iBCFRecord (82), + tRFRecord (89), + tFRecord (90), +aTCFRecord (91), +-- +-- 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,86 are MBMS specific. +-- The contents are defined in TS 32.251 [11] and TS 32.273 [33] +-- +-- Record values 76,77 and 86 are MBMS bearer context specific +-- + sgsnMBMSRecord (76), + ggsnMBMSRecord (77), + gwMBMSRecord (86), +-- +-- 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 and 92,95,96, 97 are EPC specific. +-- The contents are defined in TS 32.251 [11] +-- + sGWRecord (84), + pGWRecord (85), + tDFRecord (92), + iPERecord (95), + ePDGRecord (96), + tWAGRecord (97), +-- +-- Record Value 83 is MMTel specific. The contents are defined in TS 32.275 [35] +-- + mMTelRecord (83), +-- +-- Record value 87,88 and 89 are CS specific. The contents are defined in TS 32.250 [10] +-- + mSCsRVCCRecord (87), + mMTRFRecord (88), + iCSRegisterRecord (99), +-- +-- Record values 93 and 94 are SMS specific. The contents are defined in TS 32.274 [34] +-- + sCSMORecord (93), + sCSMTRecord (94), +-- +-- Record values 100, 101 and 102 are ProSe specific. The contents are defined in TS 32.277 [36] +-- + pFDDRecord (100), + pFEDRecord (101), + pFDCRecord (102), +-- +-- Record values103 and 104 are Monitoring Event specific. The contents are defined in TS +-- 32.278 [38] +-- + mECORecord (103), + mERERecord (104), +-- +-- Record values 105 to 106 are CP data transfer specific. The contents are defined in TS +-- 32.253 [13] +-- + cPDTSCERecord (105), + cPDTSNNRecord (106), -- +-- Record values 110 to 113 are SMS specific. The contents are defined in TS +-- 32.274 [34] +-- + sCDVTT4Record (110), + sCSMOT4Record (111), + iSMSMORecord (112), + iSMSMTRecord (113), +-- +-- Record values 120 are Exposure Function API specific. The contents are defined in TS +-- 32.254 [14] +-- + eASCERecord (120), +-- +-- Record values from 200 are specific to Charging Function domain +-- + chargingFunctionRecord (200) +-- + + +} + +RequiredMBMSBearerCapabilities ::= OCTET STRING (SIZE (3..14)) +-- +-- This octet string is a 1:1 copy of the contents (i.e. starting with octet 5) of the +-- "Quality of service Profile" information element specified in TS 29.060 [75]. +-- + +RoutingAreaCode ::= OCTET STRING (SIZE(1)) +-- +-- See TS 24.008 [208] +-- + +-- +-- S +-- + +SCSASAddress ::= SET +-- +-- +-- +{ + sCSAddress [1] IPAddress, + sCSRealm [2] DiameterIdentity +} + +Session-Id ::= GraphicString +-- +-- rfc3261 [401]: example for SIP CALL-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@foo.bar.com +-- + +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 [201]. +-- This encoding includes type of number and numbering plan indication +-- together with the address value range. +-- + +SubscriberEquipmentNumber ::= SET +-- +-- If SubscriberEquipmentType is set to IMEISV and IMEI is received, the number of digits is 15. +-- +{ + subscriberEquipmentNumberType [0] SubscriberEquipmentType, + subscriberEquipmentNumberData [1] OCTET STRING +} + +SubscriberEquipmentType ::= ENUMERATED +-- +-- It should be noted that depending on the services, not all equipment types are applicable. +-- For IMS equipment types 0 and 3 are applicable. +-- In 5GS, for PEI defined as: +-- - IMEI or IMEISV, iMEISV type is used and the data is per TS 23.003 [200] format. +-- - MAC address, mAC type is used, and the data is converted from JSON format of the PEI +-- described in TS 29.571 [249]. +-- - EUI-64, uEI64 type is used, and the data is converted from JSON format of the PEI +-- described in TS 29.571 [249]. +{ + iMEISV (0), + mAC (1), + eUI64 (2), + modifiedEUI64 (3) +} + +SubscriptionID ::= SET +-- +-- See TS 23.003 [200] and TS 29.571 [249] +-- +{ + 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) + +-- +-- eND-USER-NAI can be used for externalIdentifier. +-- eND-USER-IMSI can be used for 5G BRG or 5G CRG. +-- eND-USER-NAI can be used for GLI or GCI for wireline access network scenarios +-- NAI format for GCI and GLI is specified in 28.15.5 and 28.15.6 of TS 23.003 [200]. +-- + +} + +SystemType ::= ENUMERATED + -- + -- "unknown" is not to be used in PS domain. + -- +{ + unknown (0), + iuUTRAN (1), + gERAN (2) +} + +-- +-- T +-- + +ThreeGPPPSDataOffStatus ::= ENUMERATED +{ + active (0), + inactive (1) +} + + +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 +-- + +TMGI ::= OCTET STRING +-- +-- This octet string is a 1:1 copy of the contents (i.e. starting with octet 4) +-- of the "TMGI" information element specified in TS 29.060 [75]. +-- + +-- 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}) +} + +END diff --git a/epan/dissectors/asn1/gprscdr/gprscdr.cnf b/epan/dissectors/asn1/gprscdr/gprscdr.cnf new file mode 100644 index 00000000..c3c85b3e --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/gprscdr.cnf @@ -0,0 +1,300 @@ +# gprscdr.cnf +# Anders Broman 2011 + +#.IMPORT ../gsm_map/gsm_map-exp.cnf + +#.MODULE + +#.OMIT_ASSIGNMENT +CalledNumber +CauseForTerm +ChargeIndicator +DataVolumeOctets +MscNo +SystemType +NodeAddress +ServiceContextID +ChangeLocationV651 +SubscriberEquipmentNumber +SubscriberEquipmentType +Session-Id +PriorityType +MessageClass +# 6.4 If these are needed MBMS asn1 should be added. +MSCAddress + +#.EXPORTS +CAMELInformationPDP +CAMELInformationPDP_PDU +GPRSCallEventRecord +GPRSCallEventRecord_PDU +GPRSRecord +GPRSRecord_PDU + +#.CLASS ATTRIBUTE +&id ObjectIdentifierType +&Value + +#.CLASS CONTEXT +&id ObjectIdentifierType +&Value + +#.FIELD_RENAME +IPBinaryAddress/iPBinV6Address iPBinV6Address_choice +#.FIELD_ATTR +IPBinaryAddress/iPBinV6Address ABBREV=iPBinV6Address_choice + +#.PDU +CAMELInformationPDP +GPRSCallEventRecord +GPRSRecord + +# Get the OID +#.FN_PARS ManagementExtension/identifier FN_VARIANT = _str VAL_PTR = &obj_id + +#.FN_BODY ManagementExtension/information + + proto_tree *ext_tree; + ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gprscdr_managementextension_information, NULL, "Information"); + if (obj_id){ + offset=call_ber_oid_callback(obj_id, tvb, offset, actx->pinfo, ext_tree, NULL); + }else{ + proto_tree_add_expert(ext_tree, actx->pinfo, &ei_gprscdr_not_dissected, tvb, offset, -1); + } + +#.FN_BODY TimeStamp VAL_PTR = ¶meter_tvb +/* + * + * 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 + */ + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + proto_item_append_text(actx->created_item, " (UTC %%x-%%x-%%x %%x:%%x:%%x %%s%%x:%%x)", + tvb_get_guint8(parameter_tvb,0), /* Year */ + tvb_get_guint8(parameter_tvb,1), /* Month */ + tvb_get_guint8(parameter_tvb,2), /* Day */ + tvb_get_guint8(parameter_tvb,3), /* Hour */ + tvb_get_guint8(parameter_tvb,4), /* Minute */ + tvb_get_guint8(parameter_tvb,5), /* Second */ + tvb_get_string_enc(actx->pinfo->pool, parameter_tvb,6,1,ENC_ASCII|ENC_NA), /* Sign */ + tvb_get_guint8(parameter_tvb,7), /* Hour */ + tvb_get_guint8(parameter_tvb,8) /* Minute */ + ); + +#.FN_BODY MSTimeZone VAL_PTR = ¶meter_tvb +/* + * + * 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75] + */ + tvbuff_t *parameter_tvb; + guint8 data, data2; + char sign; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + data = tvb_get_guint8(parameter_tvb, 0); + sign = (data & 0x08) ? '-' : '+'; + data = (data >> 4) + (data & 0x07) * 10; + + data2 = tvb_get_guint8(tvb, 1) & 0x3; + + proto_item_append_text(actx->created_item, " (GMT %%c %%d hours %%d minutes %%s)", + sign, + data / 4, + data %% 4 * 15, + val_to_str_const(data2, gprscdr_daylight_saving_time_vals, "Unknown") + ); + +#.FN_BODY PLMN-Id VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb; + proto_tree *subtree; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_gprscdr_plmn_id); + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, TRUE); + +#.FN_BODY QoSInformation + + /* This octet string is a 1:1 copy of the contents (i.e. starting with octet 4) of the + * Quality of Service (QoS) Profile information element specified in 29.060, ch7.7.34. + * + */ + + header_field_info *hfi; + hfi = proto_registrar_get_nth(hf_index); + + offset = decode_qos_umts(tvb, 0, actx->pinfo, tree, hfi->name, 0); + +#.FN_BODY EPCQoSInformation/aRP + proto_tree *ext_tree_arp; + guint length; + + /* + * 8.86 Allocation/Retention Priority (ARP) + * 3GPP TS 29.274 + */ + + length = tvb_reported_length(tvb); + ext_tree_arp = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_eps_qos_arp, NULL, "aRP"); + + dissect_gtpv2_arp(tvb, actx->pinfo, ext_tree_arp, NULL, length, 0, 0, NULL); + + offset = length; + + +#.FN_BODY GGSNPDPRecord/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 1); + +#.FN_BODY GGSNPDPRecordV750/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 1); + +#.FN_BODY EGSNPDPRecord/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 1); + +#.FN_BODY EGSNPDPRecordV750/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 1); + +#.FN_BODY ChangeOfCharConditionV651/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 1); + +#.FN_BODY ChangeOfServiceConditionV750/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 1); + +#.FN_BODY SGWRecord/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY SGWRecord/lastUserLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY PGWRecord/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY PGWRecord/lastUserLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY ChangeOfCharCondition/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY ChangeOfServiceCondition/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY RelatedChangeOfCharCondition/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY RelatedChangeOfServiceCondition/userLocationInformation + + offset = dissect_gprscdr_uli(tvb, actx, tree, 2); + +#.FN_BODY PDPType + proto_tree *ext_tree_pdp_pdn_type; + guint length; + + length = tvb_reported_length(tvb); + + if(length == 1) { + /* + * PDN/EPS Bearer + * TS 29.274 + * 8.34 PDN Type + */ + ext_tree_pdp_pdn_type = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_pdp_pdn_type, NULL, "pDNType"); + dissect_gtpv2_pdn_type(tvb, actx->pinfo, ext_tree_pdp_pdn_type, NULL, length, 0, 0, NULL); + offset = length; + } + else { + /* PDP context + * TS 29.060 + * 7.7.27 End User Address + * Octet 4-5 + */ + ext_tree_pdp_pdn_type = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_pdp_pdn_type, NULL, "pDPType"); + offset = de_sm_pdp_addr(tvb, ext_tree_pdp_pdn_type, actx->pinfo, 0, length, NULL, 0); + } + + +#.FN_BODY GPRSRecord VAL_PTR = &branch_taken +proto_item *item; +gint branch_taken, t_offset = offset; +gint32 tag; + + %(DEFAULT_BODY)s + + if(branch_taken == -1){ + get_ber_identifier(tvb, t_offset, NULL, NULL, &tag); + item = proto_tree_add_uint(tree, hf_index, tvb, t_offset, 1, tag); + dissect_ber_identifier(actx->pinfo, tree, tvb, t_offset, NULL, NULL, &tag); + expert_add_info_format(actx->pinfo, item, &ei_gprscdr_choice_not_found, + "Record type(BER choice) not found: %%u", tag); + } +#.TYPE_ATTR +IPBinV4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE +IPBinV6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE +RATType TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gprscdr_rat_type_vals) +EPCQoSInformation/maxRequestedBandwithUL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/maxRequestedBandwithDL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/guaranteedBitrateUL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/guaranteedBitrateDL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/aPNAggregateMaxBitrateUL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/aPNAggregateMaxBitrateDL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/extendedMaxRequestedBWUL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/extendedMaxRequestedBWDL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/extendedGBRUL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/extendedGBRDL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/extendedAPNAMBRUL TYPE = FT_UINT32 DISPLAY = BASE_DEC +EPCQoSInformation/extendedAPNAMBRDL TYPE = FT_UINT32 DISPLAY = BASE_DEC +CSGId TYPE = FT_UINT32 DISPLAY = BASE_DEC +RatingGroupId TYPE = FT_UINT32 DISPLAY = BASE_DEC +#.END + +# +# Editor modelines - https://www.wireshark.org/tools/modelines.html +# +# Local variables: +# c-basic-offset: 2 +# tab-width: 8 +# indent-tabs-mode: nil +# End: +# +# vi: set shiftwidth=2 tabstop=8 expandtab: +# :indentSize=2:tabSize=8:noTabs=true: +# diff --git a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c new file mode 100644 index 00000000..160114f4 --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c @@ -0,0 +1,170 @@ +/* packet-gprscdr-template.c + * Copyright 2011 , Anders Broman <anders.broman [AT] ericsson.com> + * + * Updates and corrections: + * Copyright 2018-2022, Joakim Karlsson <oakimk@gmail.com> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + * References: 3GPP TS 32.298 V17.4.0 + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/expert.h> +#include <epan/asn1.h> + +#include "packet-ber.h" +#include "packet-gsm_map.h" +#include "packet-gsm_a_common.h" +#include "packet-e212.h" +#include "packet-gprscdr.h" +#include "packet-gtp.h" +#include "packet-gtpv2.h" + +#define PNAME "GPRS CDR" +#define PSNAME "GPRSCDR" +#define PFNAME "gprscdr" + +void proto_register_gprscdr(void); + +/* Define the GPRS CDR proto */ +static int proto_gprscdr = -1; + +#include "packet-gprscdr-hf.c" + +static int ett_gprscdr = -1; +static int ett_gprscdr_timestamp = -1; +static int ett_gprscdr_plmn_id = -1; +static int ett_gprscdr_pdp_pdn_type = -1; +static int ett_gprscdr_eps_qos_arp = -1; +static int ett_gprscdr_managementextension_information = -1; +static int ett_gprscdr_userlocationinformation = -1; +#include "packet-gprscdr-ett.c" + +static expert_field ei_gprscdr_not_dissected = EI_INIT; +static expert_field ei_gprscdr_choice_not_found = EI_INIT; + +/* Global variables */ +static const char *obj_id = NULL; + +static const value_string gprscdr_daylight_saving_time_vals[] = { + {0, "No adjustment"}, + {1, "+1 hour adjustment for Daylight Saving Time"}, + {2, "+2 hours adjustment for Daylight Saving Time"}, + {3, "Reserved"}, + {0, NULL} +}; + +/* 3GPP-RAT-Type +* 3GPP TS 29.061 +*/ +static const value_string gprscdr_rat_type_vals[] = { + {0, "Reserved"}, + {1, "UTRAN"}, + {2, "GERAN"}, + {3, "WLAN"}, + {4, "GAN"}, + {5, "HSPA Evolution"}, + {6, "EUTRAN"}, + {7, "Virtual"}, + {8, "EUTRAN-NB-IoT"}, + {9, "LTE-M"}, + {10, "NR"}, + /* 11-100 Spare for future use TS 29.061 */ + {101, "IEEE 802.16e"}, + {102, "3GPP2 eHRPD"}, + {103, "3GPP2 HRPD"}, + /* 104-255 Spare for future use TS 29.061 */ + {0, NULL} +}; + +static int +dissect_gprscdr_uli(tvbuff_t *tvb _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int type) { + proto_tree *ext_tree_uli; + guint length; + + length = tvb_reported_length(tvb); + ext_tree_uli = proto_tree_add_subtree(tree, tvb, 0, length, ett_gprscdr_userlocationinformation, NULL, "UserLocationInformation"); + + switch (type) { + case 1: + /* For GGSN/EGGSN-CDR, + * this octet string is a 1:1 copy of the contents (i.e. starting with octet 4) of the + * User Location Information (ULI) information element specified in 29.060, ch7.7.51. + */ + dissect_gtp_uli(tvb, 0, actx->pinfo, ext_tree_uli, NULL); + break; + case 2: + /* For SGW/PGW-CDR, + * this octet string is a 1:1 copy of the contents (i.e. starting with octet 5) of the + * User Location Information (ULI) information element specified in 29.274, ch8.21. + */ + dissect_gtpv2_uli(tvb, actx->pinfo, ext_tree_uli, NULL, length, 0, 0, NULL); + break; + default: + proto_tree_add_expert(ext_tree_uli, actx->pinfo, &ei_gprscdr_not_dissected, tvb, 0, length); + break; + } + + return length; +} + +#include "packet-gprscdr-fn.c" + + + +/* Register all the bits needed with the filtering engine */ +void +proto_register_gprscdr(void) +{ + /* List of fields */ + static hf_register_info hf[] = { +#include "packet-gprscdr-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_gprscdr, + &ett_gprscdr_timestamp, + &ett_gprscdr_plmn_id, + &ett_gprscdr_pdp_pdn_type, + &ett_gprscdr_eps_qos_arp, + &ett_gprscdr_managementextension_information, + &ett_gprscdr_userlocationinformation, +#include "packet-gprscdr-ettarr.c" + }; + + static ei_register_info ei[] = { + { &ei_gprscdr_not_dissected, { "gprscdr.not_dissected", PI_UNDECODED, PI_WARN, "Not dissected", EXPFILL }}, + { &ei_gprscdr_choice_not_found, { "gprscdr.error.choice_not_found", PI_MALFORMED, PI_WARN, "GPRS CDR Error: This choice field(Record type) was not found", EXPFILL }}, + }; + + expert_module_t* expert_gprscdr; + + proto_gprscdr = proto_register_protocol(PNAME, PSNAME, PFNAME); + + proto_register_field_array(proto_gprscdr, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + expert_gprscdr = expert_register_protocol(proto_gprscdr); + expert_register_field_array(expert_gprscdr, ei, array_length(ei)); +} + +/* The registration hand-off routine */ + +/* + * Editor modelines + * + * Local Variables: + * c-basic-offset: 2 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * ex: set shiftwidth=2 tabstop=8 expandtab: + * :indentSize=2:tabSize=8:noTabs=true: + */ diff --git a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h new file mode 100644 index 00000000..ef5b9d8a --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.h @@ -0,0 +1,31 @@ +/* packet-gprscdr.h + * Routines for gprscdr packet dissection + * Copyright 2011, Anders Broman <anders.broman@ericsson.com> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef PACKET_GPRSCDR_H +#define PACKET_GPRSCDR_H + + +#include "packet-gprscdr-exp.h" + +#endif /* PACKET_GPRSCDR_H */ + +/* + * Editor modelines + * + * Local Variables: + * c-basic-offset: 2 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * ex: set shiftwidth=2 tabstop=8 expandtab: + * :indentSize=2:tabSize=8:noTabs=true: + */ |