diff options
author | Jan Spevak <jan.spevak@nokia.com> | 2016-10-28 15:58:17 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2016-10-31 18:07:18 +0000 |
commit | a3f5f3e461bcf1a5a596ae70513be9ffb270c25b (patch) | |
tree | f47dc430443d78427348d1ea9f14a9c38d56d802 | |
parent | d7e874c5d05b353cece337c72fddafde466a321e (diff) |
GPRS_CDR: update record definitions
Records defined according to 3GPP TS release 14 in new .asn files.
Updated Makefiles and dissector files generated via asn2ws
Change-Id: I6da2782c58178550962f63dbd526b827e0d8394b
Reviewed-on: https://code.wireshark.org/review/18552
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | epan/dissectors/asn1/gprscdr/CMakeLists.txt | 4 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1400.asn | 1418 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn | 260 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1400.asn | 706 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/Makefile.am | 8 | ||||
-rw-r--r-- | epan/dissectors/asn1/gprscdr/gprscdr.cnf | 27 | ||||
-rw-r--r-- | epan/dissectors/packet-gprscdr.c | 1412 | ||||
-rw-r--r-- | epan/dissectors/packet-gprscdr.h | 2 |
8 files changed, 3630 insertions, 207 deletions
diff --git a/epan/dissectors/asn1/gprscdr/CMakeLists.txt b/epan/dissectors/asn1/gprscdr/CMakeLists.txt index 92bd0e38d0..27f68536aa 100644 --- a/epan/dissectors/asn1/gprscdr/CMakeLists.txt +++ b/epan/dissectors/asn1/gprscdr/CMakeLists.txt @@ -31,9 +31,9 @@ set( EXT_ASN_FILE_LIST ) set( ASN_FILE_LIST - GenericChargingDataTypesV1250.asn + GenericChargingDataTypesV1400.asn GPRSChargingDataTypesV641.asn - GPRSChargingDataTypesV1260.asn + GPRSChargingDataTypesV1400.asn ) set( EXTRA_DIST diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1400.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1400.asn new file mode 100644 index 0000000000..1a9ad3cfee --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV1400.asn @@ -0,0 +1,1418 @@ +-- +-- 3GPP TS 32.298 v14.0.0 (2016-09) +-- +GPRSChargingDataTypesV1400 {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 + +-- AddressString, +CallDuration, +CallingNumber, +CellId, +Diagnostics, +DiameterIdentity, +-- GSNAddress, +IPAddress, +LCSCause, +LCSClientIdentity, +LCSQoSInfo, +LevelOfCAMELService, +LocalSequenceNumber, +LocationAreaAndCell, +LocationAreaCode, +ManagementExtensions, +MBMSInformation, +MessageReference, +MSISDN, +MSTimeZone, +PositioningData, +RecordingEntity, +RecordType, +RoutingAreaCode, +ServiceSpecificInfo, +SMSResult, +SmsTpDestinationNumber, +SubscriptionID, +TimeStamp +FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)} + +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) version15 (15)} +-- 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) version15 (15)} +-- 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) version15 (15)} +-- 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) version15 (15) } +-- 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) version15 (15)} +-- 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 +} + +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, + chargingPerIPCANSessionIndicator [68] ChargingPerIPCANSessionIndicator OPTIONAL, + pDPPDNTypeExtension [68] PDPPDNTypeExtension OPTIONAL, + mOExceptionDataCounter [69] MOExceptionDataCounter 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, + presenceReportingAreaInfo [58] PresenceReportingAreaInfo 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 +} + +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 +} +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 indiacation. +-- 1 (Access usable/unusable) : This value shall be used to indiacte 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] DataVolume OPTIONAL +} + +-- WS fix to make it compile +DataVolume ::= INTEGER +-- +-- The volume of data transfered in octets. +-- +-- End WS fix + +APNSelectionMode ::= ENUMERATED +-- +-- See Information Elements TS 29.060 [215], TS 29.274 [223] or TS 29.275 [224] +-- +{ + mSorNetworkProvidedSubscriptionVerified (0), + mSProvidedSubscriptionNotVerified (1), + networkProvidedSubscriptionNotVerified (2) +} + +CAMELAccessPointNameNI ::= AccessPointNameNI + +CAMELAccessPointNameOI ::= AccessPointNameOI + +CAMELInformationMM ::= SET +{ + sCFAddress [1] SCFAddress OPTIONAL, + serviceKey [2] ServiceKey OPTIONAL, + defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL, + numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL, + levelOfCAMELService [5] LevelOfCAMELService OPTIONAL, + freeFormatData [6] FreeFormatData OPTIONAL, + fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL +} + +CAMELInformationPDP ::= SET +{ + sCFAddress [1] SCFAddress OPTIONAL, + serviceKey [2] ServiceKey OPTIONAL, + defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL, + cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL, + cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL, + numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL, + levelOfCAMELService [7] LevelOfCAMELService OPTIONAL, + freeFormatData [8] FreeFormatData OPTIONAL, + fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL +} + +CAMELInformationSMS ::= SET +{ + sCFAddress [1] SCFAddress OPTIONAL, + serviceKey [2] ServiceKey OPTIONAL, + defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL, + cAMELCallingPartyNumber [4] CallingNumber OPTIONAL, + cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL, + cAMELSMSCAddress [6] AddressString OPTIONAL, + freeFormatData [7] FreeFormatData OPTIONAL, + smsReferenceNumber [8] CallReferenceNumber OPTIONAL +} + +CauseForRecClosing ::= INTEGER +-- +-- In PGW-CDR and SGW-CDR the value servingNodeChange is used for partial record +-- generation due to Serving Node Address list Overflow +-- In SGSN servingNodeChange indicates the SGSN change +-- +-- sWGChange value is used in both the S-GW and ePDG for inter serving node change +-- +-- LCS related causes belong to the MAP error causes acc. TS 29.002 [214] +-- +-- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination) +-- +{ + normalRelease (0), + abnormalRelease (4), + cAMELInitCallRelease (5), + volumeLimit (16), + timeLimit (17), + servingNodeChange (18), + maxChangeCond (19), + managementIntervention (20), + intraSGSNIntersystemChange (21), + rATChange (22), + mSTimeZoneChange (23), + sGSNPLMNIDChange (24), + sGWChange (25), + aPNAMBRChange (26), + mOExceptionDataCounterReceipt (27), + unauthorizedRequestingNetwork (52), + unauthorizedLCSClient (53), + positionMethodFailure (54), + unknownOrUnreachableLCSClient (58), + listofDownstreamNodeChange (59) +} + +ChangeCondition ::= ENUMERATED +{ + qoSChange (0), + tariffTime (1), + recordClosure (2), + cGI-SAICHange (6), -- bearer modification. "CGI-SAI Change" + rAIChange (7), -- bearer modification. "RAI Change" + dT-Establishment (8), + dT-Removal (9), + eCGIChange (10), -- bearer modification. "ECGI Change" + tAIChange (11), -- bearer modification. "TAI Change" + userLocationChange (12), -- bearer modification. "User Location Change" + 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" +} + +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 +-- +{ + 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 +} + +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 +-- +{ + 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 +} + +ChangeLocation ::= SEQUENCE +-- +-- used in SGSNMMRecord only +-- +{ + locationAreaCode [0] LocationAreaCode, + routingAreaCode [1] RoutingAreaCode, + cellId [2] CellId OPTIONAL, + changeTime [3] TimeStamp, + mCC-MNC [4] PLMN-Id OPTIONAL +} + +ChargingCharacteristics ::= OCTET STRING (SIZE(2)) + +ChargingID ::= INTEGER (0..4294967295) +-- +-- Generated in P-GW, part of IP-CAN bearer +-- 0..4294967295 is equivalent to 0..2**32-1 +-- + +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. +-- + +DynamicAddressFlag ::= BOOLEAN + +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 +} + +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] +-- + +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 +-- + +NodeID ::= IA5String (SIZE(1..20)) + +NumberOfDPEncountered ::= INTEGER + +PDPAddress ::= CHOICE +{ + iPAddress [0] IPAddress +-- eTSIAddress [1] ETSIAddress +-- has only been used in earlier releases for X.121 format +} + +PDPType ::= OCTET STRING (SIZE(2)) +-- +-- OCTET 1: PDP Type Organization +-- OCTET 2: PDP/PDN Type Number +-- See TS 29.060 [215] for encoding details. +-- + +PDPPDNTypeExtension ::= INTEGER +-- +-- This integer is 1:1 copy of the PDP type value as defined in TS 29.061 [215]. +-- + +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] +-- + +PresenceReportingAreaInfo ::= SEQUENCE +{ + presenceReportingAreaIdentifier [0] OCTET STRING, + presenceReportingAreaStatus [1] PresenceReportingAreaStatus OPTIONAL +} + +PresenceReportingAreaStatus ::= ENUMERATED +{ + insideArea (0), + outsideArea (1) +} + +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]. +-- + +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] +-- + +RATType ::= INTEGER (0..255) +-- +-- Ihis integer is 1:1 copy of the RAT type value as defined in TS 29.061 [215]. +-- + +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 +} + +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, + relatedChangeOfServiceCondition [33] RelatedChangeOfServiceCondition OPTIONAL +} + +ResultCode ::= INTEGER +-- +-- charging protocol return value, range of 4 byte (0... 4294967295) +-- see Result-Code AVP as used in 32.299 [40] +-- + +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 in Presence Reporting Area" + accessChangeOfSDF (34), -- "access change of service data flow" + indirectServiceConditionChange (35), -- NBIFOM: "indirect service condition change" + servingPLMNRateControlChange (36), -- bearer modification. "Serving PLMN Rate Control Change" + aPNRateControlChange (37) -- bearer modification. "APN Rate Control Change" +} +-- +-- Trigger and cause values for IP flow level recording are defined for support of independent +-- online and offline charging and also for tight interworking between online and offline charging. +-- Unused bits will always be zero. +-- Some of the values are non-exclusive (e.g. bearer modification reasons). +-- + +SCFAddress ::= AddressString +-- +-- See TS 29.002 [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, HSGW) +-- + +TimeQuotaMechanism ::= SEQUENCE +{ + timeQuotaType [1] TimeQuotaType, + baseTimeInterval [2] INTEGER +} + +TimeQuotaType ::= ENUMERATED +{ + dISCRETETIMEPERIOD (0), + cONTINUOUSTIMEPERIOD (1) +} + +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] +} + +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] +} + +END diff --git a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn index 760ca18011..23c83f0d4c 100644 --- a/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn +++ b/epan/dissectors/asn1/gprscdr/GPRSChargingDataTypesV641.asn @@ -316,140 +316,140 @@ SGSNSMTRecordV651 ::= SET 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 -} +--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 +--} -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 -} +--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 +--} -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 +--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 -} +--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 +--} ------------------------------------------------------------------------------ -- diff --git a/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1400.asn b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1400.asn new file mode 100644 index 0000000000..22e6a9e828 --- /dev/null +++ b/epan/dissectors/asn1/gprscdr/GenericChargingDataTypesV1400.asn @@ -0,0 +1,706 @@ +-- 3GPP TS 32.298 +GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)} + +DEFINITIONS IMPLICIT TAGS ::= + +BEGIN + +-- EXPORTS everything + +IMPORTS + +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) version15 (13) } +-- 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) version15 (13)} +-- from TS 29.002 [214] + +ObjectInstance +FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) modules (0) protocol (3)} +-- from Rec. X.2ab[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) }; +-- From Rec. X.2cd[306]. Note that the syntax of AE-title to be used is from +-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY" +-- +-- Generic Data Types +-- + +BCDDirectoryNumber ::= OCTET STRING +-- +-- This type contains the binary coded decimal representation of +-- a directory number e.g. calling/called/connected/translated number. +-- The encoding of the octet string is in accordance with the +-- the elements "Calling party BCD number", "Called party BCD number" +-- and "Connected number" defined in TS 24.008 [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. +-- + +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) +} + +CNIPMulticastDistribution ::= ENUMERATED +{ + nO-IP-MULTICAST (0), + iP-MULTICAST (1) +} + +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 + 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] +} + +DiameterIdentity ::= OCTET STRING + +EnhancedDiagnostics ::= SEQUENCE +{ + rANNASCause [0] OCTET STRING + -- TS 29.274 [223] +} + +GSNAddress ::= IPAddress + +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 +{ -- + -- IP address in the familiar "dot" notation + -- + iPTextV4Address [2] IA5String (SIZE(7..15)), + iPTextV6Address [3] IA5String (SIZE(15..45)) +} + +LCSCause ::= OCTET STRING (SIZE(1)) +-- +-- See LCS Cause Value, TS 49.031 [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] +-- + +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(1)) +-- +-- This value indicates the time in seconds relative to 00:00:00 on 1 January 1900 (calculated as +-- continous time without leap seconds and tracable 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] +-- + +MessageReference ::= OCTET STRING + +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] +-- + +NodeAddress ::= CHOICE +{ + iPAddress [0] IPAddress, + domainName [1] GraphicString +} + +PDPAddressPrefixLength ::=INTEGER (1..64) +-- +-- This is an interger indicating the leght of the PDP/PDN IPv6 address prefix +-- and the default value is 64 bits. +-- + +PositioningData ::= OCTET STRING (SIZE(1..33)) +-- +-- See Positioning Data IE (octet 3..n), TS 49.031 [227] +-- + +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 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 values 103 and 104 are Monitoring Event specific. The contents are defined in TS 32.278 [38] +-- + mECORecord (103), + mERERecord (104), +-- +-- Record values 105 and 106 are CP data transfer specific. The contents are defined in TS 32.253 [13] +-- + cPDTSCERecord (105), + cPDTSNNRecord (106) +} + +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] +-- + +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 +{ + subscriberEquipmentNumberType [0] SubscriberEquipmentType, + subscriberEquipmentNumberData [1] OCTET STRING +} + +SubscriberEquipmentType ::= ENUMERATED +{ + iMEISV (0), + mAC (1), + eUI64 (2), + modifiedEUI64 (3) +} + +SubscriptionID ::= SET +-- +-- used for ExternalIdentifier with SubscriptionIdType = END-User-NAI. See TS 23.003 [200] +-- +{ + subscriptionIDType [0] SubscriptionIDType, + subscriptionIDData [1] UTF8String +} + +SubscriptionIDType ::= ENUMERATED +{ + eND-USER-E164 (0), + eND-USER-IMSI (1), + eND-USER-SIP-URI (2), + eND-USER-NAI (3), + eND-USER-PRIVATE (4) +} + +SystemType ::= ENUMERATED + -- + -- "unknown" is not to be used in PS domain. + -- +{ + unknown (0), + iuUTRAN (1), + gERAN (2) +} + +TimeStamp ::= OCTET STRING (SIZE(9)) +-- +-- The contents of this field are a compact form of the UTCTime format +-- containing local time plus an offset to universal time. Binary coded +-- decimal encoding is employed for the digits to reduce the storage and +-- transmission overhead +-- e.g. YYMMDDhhmmssShhmm +-- where +-- YY = Year 00 to 99 BCD encoded +-- MM = Month 01 to 12 BCD encoded +-- DD = Day 01 to 31 BCD encoded +-- hh = hour 00 to 23 BCD encoded +-- mm = minute 00 to 59 BCD encoded +-- ss = second 00 to 59 BCD encoded +-- S = Sign 0 = "+", "-" ASCII encoded +-- hh = hour 00 to 23 BCD encoded +-- mm = minute 00 to 59 BCD encoded +-- + +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}) +} + +ManagementExtensionSet DMI-EXTENSION ::= + {...} + + +END diff --git a/epan/dissectors/asn1/gprscdr/Makefile.am b/epan/dissectors/asn1/gprscdr/Makefile.am index 9ac1353f26..2d79d25237 100644 --- a/epan/dissectors/asn1/gprscdr/Makefile.am +++ b/epan/dissectors/asn1/gprscdr/Makefile.am @@ -24,9 +24,9 @@ EXPORT_FILES = \ $(PROTOCOL_NAME)-exp.cnf ASN_FILE_LIST = \ - GenericChargingDataTypesV1250.asn \ + GenericChargingDataTypesV1400.asn \ GPRSChargingDataTypesV641.asn \ - GPRSChargingDataTypesV1260.asn + GPRSChargingDataTypesV1400.asn INCLUDED_ASN_FILE_LIST = \ 3GPPGenericChargingDataTypes.asn \ @@ -34,10 +34,12 @@ INCLUDED_ASN_FILE_LIST = \ GPRSChargingDataTypesV8e0.asn \ GPRSChargingDataTypesV9f0.asn \ GPRSChargingDataTypesV1171.asn \ + GPRSChargingDataTypesV1260.asn \ GenericChargingDataTypes.asn \ GenericChargingDataTypesV641.asn \ GenericChargingDataTypesV8e0.asn \ - GenericChargingDataTypesV9f0.asn + GenericChargingDataTypesV9f0.asn \ + GenericChargingDataTypesV1250.asn # The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn # files do not exist for all protocols: Please add/remove as required. diff --git a/epan/dissectors/asn1/gprscdr/gprscdr.cnf b/epan/dissectors/asn1/gprscdr/gprscdr.cnf index 95ee6a7194..b57e0c1306 100644 --- a/epan/dissectors/asn1/gprscdr/gprscdr.cnf +++ b/epan/dissectors/asn1/gprscdr/gprscdr.cnf @@ -10,38 +10,13 @@ CalledNumber ChargeIndicator MscNo SystemType -SGSNMTLCSRecord -SGSNMOLCSRecord -SGSNNILCSRecord -LCSCause -LCSClientIdentity -LCSQoSInfo -LocationAreaAndCell -PositioningData -MCC-MNC NodeAddress ServiceContextID ChangeLocationV651 -CTEID -DataVolumeMBMS SubscriberEquipmentNumber SubscriberEquipmentType # 6.4 If these are needed MBMS asn1 should be added. -SGSNMBMSRecord -GGSNMBMSRecord -GWMBMSRecord -ChangeOfMBMSCondition -CNIPMulticastDistribution -MBMS2G3GIndicator -TMGI -MBMSSessionIdentity -MBMSServiceType -MBMSUserServiceType -MBMSServiceArea -RequiredMBMSBearerCapabilities - -#.NO_EMIT -MBMSInformation +MSCAddress #.EXPORTS GPRSCallEventRecord diff --git a/epan/dissectors/packet-gprscdr.c b/epan/dissectors/packet-gprscdr.c index 07ba4888ce..d585766f7a 100644 --- a/epan/dissectors/packet-gprscdr.c +++ b/epan/dissectors/packet-gprscdr.c @@ -1,7 +1,7 @@ /* Do not modify this file. Changes will be overwritten. */ /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ /* packet-gprscdr.c */ -/* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */ +/* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypesV1400.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1400.asn */ /* Input file: packet-gprscdr-template.c */ @@ -62,6 +62,7 @@ static int hf_gprscdr_manufacturerSpecificCause = -1; /* ManagementExtension */ static int hf_gprscdr_positionMethodFailureCause = -1; /* PositionMethodFailure_Diagnostic */ static int hf_gprscdr_unauthorizedLCSClientCause = -1; /* UnauthorizedLCSClient_Diagnostic */ static int hf_gprscdr_diameterResultCodeAndExperimentalResult = -1; /* INTEGER */ +static int hf_gprscdr_rANNASCause = -1; /* OCTET_STRING */ static int hf_gprscdr_iPBinaryAddress = -1; /* IPBinaryAddress */ static int hf_gprscdr_iPTextRepresentedAddress = -1; /* IPTextRepresentedAddress */ static int hf_gprscdr_iPBinV4Address = -1; /* IPBinV4Address */ @@ -71,6 +72,12 @@ static int hf_gprscdr_iPBinV6AddressWithPrefix = -1; /* IPBinV6AddressWithPrefi static int hf_gprscdr_pDPAddressPrefixLength = -1; /* PDPAddressPrefixLength */ static int hf_gprscdr_iPTextV4Address = -1; /* IA5String_SIZE_7_15 */ static int hf_gprscdr_iPTextV6Address = -1; /* IA5String_SIZE_15_45 */ +static int hf_gprscdr_lcsClientExternalID = -1; /* LCSClientExternalID */ +static int hf_gprscdr_lcsClientDialedByMS = -1; /* AddressString */ +static int hf_gprscdr_lcsClientInternalID = -1; /* LCSClientInternalID */ +static int hf_gprscdr_locationAreaCode = -1; /* LocationAreaCode */ +static int hf_gprscdr_cellId = -1; /* CellId */ +static int hf_gprscdr_mCC_MNC = -1; /* MCC_MNC */ static int hf_gprscdr_ManagementExtensions_item = -1; /* ManagementExtension */ static int hf_gprscdr_tMGI = -1; /* TMGI */ static int hf_gprscdr_mBMSSessionIdentity = -1; /* MBMSSessionIdentity */ @@ -83,6 +90,8 @@ static int hf_gprscdr_mBMSServiceArea = -1; /* MBMSServiceArea */ static int hf_gprscdr_requiredMBMSBearerCaps = -1; /* RequiredMBMSBearerCapabilities */ static int hf_gprscdr_mBMSGWAddress = -1; /* GSNAddress */ static int hf_gprscdr_cNIPMulticastDistribution = -1; /* CNIPMulticastDistribution */ +static int hf_gprscdr_mBMSDataTransferStart = -1; /* MBMSTime */ +static int hf_gprscdr_mBMSDataTransferStop = -1; /* MBMSTime */ static int hf_gprscdr_serviceSpecificData = -1; /* GraphicString */ static int hf_gprscdr_serviceSpecificType = -1; /* INTEGER */ static int hf_gprscdr_subscriptionIDType = -1; /* SubscriptionIDType */ @@ -140,7 +149,6 @@ static int hf_gprscdr_servedIMEI = -1; /* IMEI */ static int hf_gprscdr_sgsnAddress_01 = -1; /* GSNAddress */ static int hf_gprscdr_msNetworkCapability = -1; /* MSNetworkCapability */ static int hf_gprscdr_routingArea = -1; /* RoutingAreaCode */ -static int hf_gprscdr_locationAreaCode = -1; /* LocationAreaCode */ static int hf_gprscdr_cellIdentifier = -1; /* CellId */ static int hf_gprscdr_ggsnAddressUsed = -1; /* GSNAddress */ static int hf_gprscdr_sgsnChange = -1; /* SGSNChange */ @@ -185,12 +193,19 @@ static int hf_gprscdr_sgsnPDPRecord_01 = -1; /* SGSNPDPRecord */ static int hf_gprscdr_ggsnPDPRecord_01 = -1; /* GGSNPDPRecordV750 */ static int hf_gprscdr_sgsnSMORecord_01 = -1; /* SGSNSMORecord */ static int hf_gprscdr_sgsnSMTRecord_01 = -1; /* SGSNSMTRecord */ +static int hf_gprscdr_sgsnMTLCSRecord = -1; /* SGSNMTLCSRecord */ +static int hf_gprscdr_sgsnMOLCSRecord = -1; /* SGSNMOLCSRecord */ +static int hf_gprscdr_sgsnNILCSRecord = -1; /* SGSNNILCSRecord */ static int hf_gprscdr_egsnPDPRecord_01 = -1; /* EGSNPDPRecordV750 */ +static int hf_gprscdr_sgsnMBMSRecord = -1; /* SGSNMBMSRecord */ +static int hf_gprscdr_ggsnMBMSRecord = -1; /* GGSNMBMSRecord */ static int hf_gprscdr_sGWRecord = -1; /* SGWRecord */ static int hf_gprscdr_pGWRecord = -1; /* PGWRecord */ +static int hf_gprscdr_gwMBMSRecord = -1; /* GWMBMSRecord */ static int hf_gprscdr_tDFRecord = -1; /* TDFRecord */ static int hf_gprscdr_iPERecord = -1; /* IPERecord */ static int hf_gprscdr_ePDGRecord = -1; /* EPDGRecord */ +static int hf_gprscdr_tWAGRecord = -1; /* TWAGRecord */ static int hf_gprscdr_s_GWAddress = -1; /* GSNAddress */ static int hf_gprscdr_servingNodeAddress = -1; /* SEQUENCE_OF_GSNAddress */ static int hf_gprscdr_servingNodeAddress_item = -1; /* GSNAddress */ @@ -222,6 +237,12 @@ static int hf_gprscdr_cNOperatorSelectionEnt = -1; /* CNOperatorSelectionEntity static int hf_gprscdr_presenceReportingAreaInfo = -1; /* PresenceReportingAreaInfo */ static int hf_gprscdr_lastUserLocationInformation = -1; /* OCTET_STRING */ static int hf_gprscdr_lastMSTimeZone = -1; /* MSTimeZone */ +static int hf_gprscdr_enhancedDiagnostics = -1; /* EnhancedDiagnostics */ +static int hf_gprscdr_cPCIoTEPSOptimisationIndicator = -1; /* CPCIoTEPSOptimisationIndicator */ +static int hf_gprscdr_uNIPDUCPOnlyFlag = -1; /* UNIPDUCPOnlyFlag */ +static int hf_gprscdr_servingPLMNRateControl = -1; /* ServingPLMNRateControl */ +static int hf_gprscdr_pDPPDNTypeExtension = -1; /* PDPPDNTypeExtension */ +static int hf_gprscdr_mOExceptionDataCounter = -1; /* MOExceptionDataCounter */ static int hf_gprscdr_p_GWAddress = -1; /* GSNAddress */ static int hf_gprscdr_listOfServiceData_02 = -1; /* SEQUENCE_OF_ChangeOfServiceCondition */ static int hf_gprscdr_listOfServiceData_item_02 = -1; /* ChangeOfServiceCondition */ @@ -230,6 +251,12 @@ static int hf_gprscdr_served3gpp2MEID = -1; /* OCTET_STRING */ static int hf_gprscdr_threeGPP2UserLocationInformation = -1; /* OCTET_STRING */ static int hf_gprscdr_tWANUserLocationInformation = -1; /* TWANUserLocationInfo */ static int hf_gprscdr_ePCQoSInformation = -1; /* EPCQoSInformation */ +static int hf_gprscdr_nBIFOMMode = -1; /* NBIFOMMode */ +static int hf_gprscdr_nBIFOMSupport = -1; /* NBIFOMSupport */ +static int hf_gprscdr_uWANUserLocationInformation = -1; /* UWANUserLocationInfo */ +static int hf_gprscdr_sGiPtPTunnellingMethod = -1; /* SGiPtPTunnellingMethod */ +static int hf_gprscdr_aPNRateControl = -1; /* APNRateControl */ +static int hf_gprscdr_chargingPerIPCANSessionIndicator = -1; /* ChargingPerIPCANSessionIndicator */ static int hf_gprscdr_tDFAddress = -1; /* GSNAddress */ static int hf_gprscdr_tDFiPv6AddressUsed = -1; /* GSNAddress */ static int hf_gprscdr_tDFPLMNIdentifier = -1; /* PLMN_Id */ @@ -244,6 +271,8 @@ static int hf_gprscdr_servedIPCANsessionAddressExt = -1; /* PDPAddress */ static int hf_gprscdr_iPEdgeiPv6AddressUsed = -1; /* GSNAddress */ static int hf_gprscdr_ePDGAddressUsed = -1; /* GSNAddress */ static int hf_gprscdr_ePDGiPv6AddressUsed = -1; /* GSNAddress */ +static int hf_gprscdr_tWAGAddressUsed = -1; /* GSNAddress */ +static int hf_gprscdr_tWAGiPv6AddressUsed = -1; /* GSNAddress */ static int hf_gprscdr_changeLocation = -1; /* SEQUENCE_OF_ChangeLocation */ static int hf_gprscdr_changeLocation_item = -1; /* ChangeLocation */ static int hf_gprscdr_cAMELInformationMM = -1; /* CAMELInformationMM */ @@ -254,10 +283,41 @@ static int hf_gprscdr_servingNodeiPv6Address_01 = -1; /* GSNAddress */ static int hf_gprscdr_mMEName = -1; /* DiameterIdentity */ static int hf_gprscdr_mMERealm = -1; /* DiameterIdentity */ static int hf_gprscdr_originatingAddress = -1; /* AddressString */ +static int hf_gprscdr_lcsClientType = -1; /* LCSClientType */ +static int hf_gprscdr_lcsClientIdentity = -1; /* LCSClientIdentity */ +static int hf_gprscdr_locationType = -1; /* LocationType */ +static int hf_gprscdr_lcsQos = -1; /* LCSQoSInfo */ +static int hf_gprscdr_lcsPriority = -1; /* LCS_Priority */ +static int hf_gprscdr_mlcNumber = -1; /* ISDN_AddressString */ +static int hf_gprscdr_measurementDuration = -1; /* CallDuration */ +static int hf_gprscdr_notificationToMSUser = -1; /* NotificationToMSUser */ +static int hf_gprscdr_privacyOverride = -1; /* NULL */ +static int hf_gprscdr_location = -1; /* LocationAreaAndCell */ +static int hf_gprscdr_locationEstimate = -1; /* Ext_GeographicalInformation */ +static int hf_gprscdr_positioningData = -1; /* PositioningData */ +static int hf_gprscdr_lcsCause = -1; /* LCSCause */ +static int hf_gprscdr_locationMethod = -1; /* LocationMethod */ +static int hf_gprscdr_listofRAs = -1; /* SEQUENCE_OF_RAIdentity */ +static int hf_gprscdr_listofRAs_item = -1; /* RAIdentity */ +static int hf_gprscdr_listOfTrafficVolumes_02 = -1; /* SEQUENCE_OF_ChangeOfMBMSCondition */ +static int hf_gprscdr_listOfTrafficVolumes_item_02 = -1; /* ChangeOfMBMSCondition */ +static int hf_gprscdr_numberofReceivingUE = -1; /* INTEGER */ +static int hf_gprscdr_mbmsInformation = -1; /* MBMSInformation */ +static int hf_gprscdr_listofDownstreamNodes = -1; /* SEQUENCE_OF_GSNAddress */ +static int hf_gprscdr_listofDownstreamNodes_item = -1; /* GSNAddress */ +static int hf_gprscdr_mbmsGWAddress = -1; /* GSNAddress */ +static int hf_gprscdr_commonTeid = -1; /* CTEID */ +static int hf_gprscdr_iPMulticastSourceAddress = -1; /* PDPAddress */ static int hf_gprscdr_physicalAccessID = -1; /* UTF8String */ static int hf_gprscdr_logicalAccessID = -1; /* OCTET_STRING */ static int hf_gprscdr_aFChargingIdentifier = -1; /* AFChargingIdentifier */ static int hf_gprscdr_flows = -1; /* Flows */ +static int hf_gprscdr_aPNRateControlUplink = -1; /* APNRateControlParameters */ +static int hf_gprscdr_aPNRateControlDownlink = -1; /* APNRateControlParameters */ +static int hf_gprscdr_additionalExceptionReports = -1; /* AdditionalExceptionReports */ +static int hf_gprscdr_rateControlTimeUnit = -1; /* RateControlTimeUnit */ +static int hf_gprscdr_rateControlMaxRate = -1; /* INTEGER */ +static int hf_gprscdr_rateControlMaxMessageSize = -1; /* DataVolume */ static int hf_gprscdr_sCFAddress = -1; /* SCFAddress */ static int hf_gprscdr_serviceKey = -1; /* ServiceKey */ static int hf_gprscdr_defaultTransactionHandling = -1; /* DefaultGPRS_Handling */ @@ -274,6 +334,10 @@ static int hf_gprscdr_cAMELSMSCAddress = -1; /* AddressString */ static int hf_gprscdr_smsReferenceNumber = -1; /* CallReferenceNumber */ static int hf_gprscdr_changeCondition_01 = -1; /* ChangeCondition */ static int hf_gprscdr_presenceReportingAreaStatus = -1; /* PresenceReportingAreaStatus */ +static int hf_gprscdr_accessAvailabilityChangeReason = -1; /* AccessAvailabilityChangeReason */ +static int hf_gprscdr_relatedChangeOfCharCondition = -1; /* RelatedChangeOfCharCondition */ +static int hf_gprscdr_dataVolumeMBMSUplink = -1; /* DataVolumeMBMS */ +static int hf_gprscdr_dataVolumeMBMSDownlink = -1; /* DataVolumeMBMS */ static int hf_gprscdr_serviceConditionChange_01 = -1; /* ServiceConditionChange */ static int hf_gprscdr_qoSInformationNeg_01 = -1; /* EPCQoSInformation */ static int hf_gprscdr_serviceSpecificInfo = -1; /* SEQUENCE_OF_ServiceSpecificInfo */ @@ -281,9 +345,9 @@ static int hf_gprscdr_serviceSpecificInfo_item = -1; /* ServiceSpecificInfo */ static int hf_gprscdr_sponsorIdentity = -1; /* OCTET_STRING */ static int hf_gprscdr_applicationServiceProviderIdentity = -1; /* OCTET_STRING */ static int hf_gprscdr_aDCRuleBaseName = -1; /* ADCRuleBaseName */ +static int hf_gprscdr_relatedChangeOfServiceCondition = -1; /* RelatedChangeOfServiceCondition */ static int hf_gprscdr_routingAreaCode = -1; /* RoutingAreaCode */ -static int hf_gprscdr_cellId = -1; /* CellId */ -static int hf_gprscdr_mCC_MNC = -1; /* PLMN_Id */ +static int hf_gprscdr_mCC_MNC_01 = -1; /* PLMN_Id */ static int hf_gprscdr_qCI = -1; /* INTEGER */ static int hf_gprscdr_maxRequestedBandwithUL = -1; /* INTEGER */ static int hf_gprscdr_maxRequestedBandwithDL = -1; /* INTEGER */ @@ -300,15 +364,21 @@ static int hf_gprscdr_bSSID = -1; /* OCTET_STRING */ static int hf_gprscdr_mediaComponentNumber = -1; /* INTEGER */ static int hf_gprscdr_flowNumber = -1; /* T_flowNumber */ static int hf_gprscdr_flowNumber_item = -1; /* INTEGER */ +static int hf_gprscdr_counterValue = -1; /* INTEGER */ +static int hf_gprscdr_counterTimestamp = -1; /* TimeStamp */ static int hf_gprscdr_iPAddress = -1; /* IPAddress */ static int hf_gprscdr_presenceReportingAreaIdentifier = -1; /* OCTET_STRING */ static int hf_gprscdr_pSFreeFormatData = -1; /* FreeFormatData */ static int hf_gprscdr_pSFFDAppendIndicator = -1; /* FFDAppendIndicator */ +static int hf_gprscdr_sPLMNDLRateControlValue = -1; /* INTEGER */ +static int hf_gprscdr_sPLMNULRateControlValue = -1; /* INTEGER */ static int hf_gprscdr_timeQuotaType = -1; /* TimeQuotaType */ static int hf_gprscdr_baseTimeInterval = -1; /* INTEGER */ static int hf_gprscdr_cSGId = -1; /* CSGId */ static int hf_gprscdr_cSGAccessMode = -1; /* CSGAccessMode */ static int hf_gprscdr_cSGMembershipIndication = -1; /* NULL */ +static int hf_gprscdr_uELocalIPAddress = -1; /* IPAddress */ +static int hf_gprscdr_uDPSourcePort = -1; /* OCTET_STRING_SIZE_2 */ /* named bits */ static int hf_gprscdr_LevelOfCAMELService_basic = -1; static int hf_gprscdr_LevelOfCAMELService_callDurationSupervision = -1; @@ -395,6 +465,11 @@ static int hf_gprscdr_ServiceConditionChange_eCGIChange = -1; static int hf_gprscdr_ServiceConditionChange_tAIChange = -1; static int hf_gprscdr_ServiceConditionChange_userLocationChange = -1; static int hf_gprscdr_ServiceConditionChange_userCSGInformationChange = -1; +static int hf_gprscdr_ServiceConditionChange_presenceInPRAChange = -1; +static int hf_gprscdr_ServiceConditionChange_accessChangeOfSDF = -1; +static int hf_gprscdr_ServiceConditionChange_indirectServiceConditionChange = -1; +static int hf_gprscdr_ServiceConditionChange_servingPLMNRateControlChange = -1; +static int hf_gprscdr_ServiceConditionChange_aPNRateControlChange = -1; /*--- End of included file: packet-gprscdr-hf.c ---*/ #line 45 "./asn1/gprscdr/packet-gprscdr-template.c" @@ -407,12 +482,15 @@ static int ett_gprscdr_managementextension_information = -1; /*--- Included file: packet-gprscdr-ett.c ---*/ #line 1 "./asn1/gprscdr/packet-gprscdr-ett.c" static gint ett_gprscdr_Diagnostics = -1; +static gint ett_gprscdr_EnhancedDiagnostics = -1; static gint ett_gprscdr_IPAddress = -1; static gint ett_gprscdr_IPBinaryAddress = -1; static gint ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength = -1; static gint ett_gprscdr_IPBinV6AddressWithPrefixLength = -1; static gint ett_gprscdr_IPTextRepresentedAddress = -1; +static gint ett_gprscdr_LCSClientIdentity = -1; static gint ett_gprscdr_LevelOfCAMELService = -1; +static gint ett_gprscdr_LocationAreaAndCell = -1; static gint ett_gprscdr_ManagementExtensions = -1; static gint ett_gprscdr_MBMSInformation = -1; static gint ett_gprscdr_ServiceSpecificInfo = -1; @@ -445,17 +523,29 @@ static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition = -1; static gint ett_gprscdr_TDFRecord = -1; static gint ett_gprscdr_IPERecord = -1; static gint ett_gprscdr_EPDGRecord = -1; +static gint ett_gprscdr_TWAGRecord = -1; static gint ett_gprscdr_SGSNMMRecord = -1; static gint ett_gprscdr_SEQUENCE_OF_ChangeLocation = -1; static gint ett_gprscdr_SGSNPDPRecord = -1; static gint ett_gprscdr_SGSNSMORecord = -1; static gint ett_gprscdr_SGSNSMTRecord = -1; +static gint ett_gprscdr_SGSNMTLCSRecord = -1; +static gint ett_gprscdr_SGSNMOLCSRecord = -1; +static gint ett_gprscdr_SGSNNILCSRecord = -1; +static gint ett_gprscdr_SGSNMBMSRecord = -1; +static gint ett_gprscdr_SEQUENCE_OF_RAIdentity = -1; +static gint ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition = -1; +static gint ett_gprscdr_GGSNMBMSRecord = -1; +static gint ett_gprscdr_GWMBMSRecord = -1; static gint ett_gprscdr_AccessLineIdentifier = -1; static gint ett_gprscdr_AFRecordInformation = -1; +static gint ett_gprscdr_APNRateControl = -1; +static gint ett_gprscdr_APNRateControlParameters = -1; static gint ett_gprscdr_CAMELInformationMM = -1; static gint ett_gprscdr_CAMELInformationPDP = -1; static gint ett_gprscdr_CAMELInformationSMS = -1; static gint ett_gprscdr_ChangeOfCharCondition = -1; +static gint ett_gprscdr_ChangeOfMBMSCondition = -1; static gint ett_gprscdr_ChangeOfServiceCondition = -1; static gint ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo = -1; static gint ett_gprscdr_ChangeLocation = -1; @@ -465,13 +555,18 @@ static gint ett_gprscdr_SEQUENCE_OF_TimeStamp = -1; static gint ett_gprscdr_FixedUserLocationInformation = -1; static gint ett_gprscdr_Flows = -1; static gint ett_gprscdr_T_flowNumber = -1; +static gint ett_gprscdr_MOExceptionDataCounter = -1; static gint ett_gprscdr_PDPAddress = -1; static gint ett_gprscdr_PresenceReportingAreaInfo = -1; static gint ett_gprscdr_PSFurnishChargingInformation = -1; +static gint ett_gprscdr_RelatedChangeOfCharCondition = -1; +static gint ett_gprscdr_RelatedChangeOfServiceCondition = -1; static gint ett_gprscdr_ServiceConditionChange = -1; +static gint ett_gprscdr_ServingPLMNRateControl = -1; static gint ett_gprscdr_TimeQuotaMechanism = -1; static gint ett_gprscdr_TWANUserLocationInfo = -1; static gint ett_gprscdr_UserCSGInformation = -1; +static gint ett_gprscdr_UWANUserLocationInfo = -1; /*--- End of included file: packet-gprscdr-ett.c ---*/ #line 51 "./asn1/gprscdr/packet-gprscdr-template.c" @@ -493,6 +588,12 @@ static const value_string gprscdr_daylight_saving_time_vals[] = { /*--- Included file: packet-gprscdr-fn.c ---*/ #line 1 "./asn1/gprscdr/packet-gprscdr-fn.c" +/*--- Cyclic dependencies ---*/ + +/* RelatedChangeOfServiceCondition -> RelatedChangeOfServiceCondition */ +static int dissect_gprscdr_RelatedChangeOfServiceCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); + + static int @@ -628,6 +729,22 @@ dissect_gprscdr_CellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset } +static const value_string gprscdr_CNIPMulticastDistribution_vals[] = { + { 0, "nO-IP-MULTICAST" }, + { 1, "iP-MULTICAST" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_CNIPMulticastDistribution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + static int dissect_gprscdr_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -659,7 +776,7 @@ dissect_gprscdr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_gprscdr_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 69 "./asn1/gprscdr/gprscdr.cnf" +#line 44 "./asn1/gprscdr/gprscdr.cnf" proto_tree *ext_tree; ext_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_gprscdr_managementextension_information, NULL, "Information"); @@ -737,6 +854,30 @@ dissect_gprscdr_DiameterIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i static int +dissect_gprscdr_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t EnhancedDiagnostics_sequence[] = { + { &hf_gprscdr_rANNASCause , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_EnhancedDiagnostics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + EnhancedDiagnostics_sequence, hf_index, ett_gprscdr_EnhancedDiagnostics); + + return offset; +} + + + +static int dissect_gprscdr_IPBinV4Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); @@ -899,6 +1040,42 @@ dissect_gprscdr_GSNAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off } + +static int +dissect_gprscdr_LCSCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t LCSClientIdentity_sequence[] = { + { &hf_gprscdr_lcsClientExternalID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientExternalID }, + { &hf_gprscdr_lcsClientDialedByMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString }, + { &hf_gprscdr_lcsClientInternalID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_LCSClientInternalID }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_LCSClientIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LCSClientIdentity_sequence, hf_index, ett_gprscdr_LCSClientIdentity); + + return offset; +} + + + +static int +dissect_gprscdr_LCSQoSInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + static const asn_namedbit LevelOfCAMELService_bits[] = { { 0, &hf_gprscdr_LevelOfCAMELService_basic, -1, -1, "basic", NULL }, { 1, &hf_gprscdr_LevelOfCAMELService_callDurationSupervision, -1, -1, "callDurationSupervision", NULL }, @@ -936,6 +1113,32 @@ dissect_gprscdr_LocationAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i } + +static int +dissect_gprscdr_MCC_MNC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t LocationAreaAndCell_sequence[] = { + { &hf_gprscdr_locationAreaCode, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaCode }, + { &hf_gprscdr_cellId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId }, + { &hf_gprscdr_mCC_MNC , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MCC_MNC }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_LocationAreaAndCell(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + LocationAreaAndCell_sequence, hf_index, ett_gprscdr_LocationAreaAndCell); + + return offset; +} + + static const ber_sequence_t ManagementExtensions_set_of[1] = { { &hf_gprscdr_ManagementExtensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ManagementExtension }, }; @@ -949,6 +1152,75 @@ dissect_gprscdr_ManagementExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U } +static const value_string gprscdr_MBMS2G3GIndicator_vals[] = { + { 0, "twoG" }, + { 1, "threeG" }, + { 2, "twoG-AND-threeG" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_MBMS2G3GIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gprscdr_TMGI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gprscdr_MBMSSessionIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string gprscdr_MBMSServiceType_vals[] = { + { 0, "mULTICAST" }, + { 1, "bROADCAST" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_MBMSServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string gprscdr_MBMSUserServiceType_vals[] = { + { 0, "dOWNLOAD" }, + { 1, "sTREAMING" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_MBMSUserServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + static int dissect_gprscdr_RoutingAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -960,6 +1232,61 @@ dissect_gprscdr_RoutingAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in +static int +dissect_gprscdr_MBMSServiceArea(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gprscdr_RequiredMBMSBearerCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gprscdr_MBMSTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t MBMSInformation_set[] = { + { &hf_gprscdr_tMGI , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TMGI }, + { &hf_gprscdr_mBMSSessionIdentity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSSessionIdentity }, + { &hf_gprscdr_mBMSServiceType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSServiceType }, + { &hf_gprscdr_mBMSUserServiceType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSUserServiceType }, + { &hf_gprscdr_mBMS2G3GIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMS2G3GIndicator }, + { &hf_gprscdr_fileRepairSupported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_BOOLEAN }, + { &hf_gprscdr_rAI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode }, + { &hf_gprscdr_mBMSServiceArea, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSServiceArea }, + { &hf_gprscdr_requiredMBMSBearerCaps, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RequiredMBMSBearerCapabilities }, + { &hf_gprscdr_mBMSGWAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_cNIPMulticastDistribution, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNIPMulticastDistribution }, + { &hf_gprscdr_mBMSDataTransferStart, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSTime }, + { &hf_gprscdr_mBMSDataTransferStop, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSTime }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_MBMSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + MBMSInformation_set, hf_index, ett_gprscdr_MBMSInformation); + + return offset; +} + + static int dissect_gprscdr_MessageReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -982,7 +1309,7 @@ dissect_gprscdr_MSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_gprscdr_MSTimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 118 "./asn1/gprscdr/gprscdr.cnf" +#line 93 "./asn1/gprscdr/gprscdr.cnf" /* * * 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75] @@ -1019,6 +1346,16 @@ dissect_gprscdr_MSTimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int +dissect_gprscdr_PositioningData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int dissect_gprscdr_RecordingEntity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index); @@ -1117,12 +1454,20 @@ static const value_string gprscdr_RecordType_vals[] = { { 92, "tDFRecord" }, { 95, "iPERecord" }, { 96, "ePDGRecord" }, + { 97, "tWAGRecord" }, { 83, "mMTelRecord" }, { 87, "mSCsRVCCRecord" }, { 88, "mMTRFRecord" }, { 99, "iCSRegisterRecord" }, { 93, "sCSMORecord" }, { 94, "sCSMTRecord" }, + { 100, "pFDDRecord" }, + { 101, "pFEDRecord" }, + { 102, "pFDCRecord" }, + { 103, "mECORecord" }, + { 104, "mERERecord" }, + { 105, "cPDTSCERecord" }, + { 106, "cPDTSNNRecord" }, { 0, NULL } }; @@ -1229,7 +1574,7 @@ dissect_gprscdr_SubscriptionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_gprscdr_TimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 79 "./asn1/gprscdr/gprscdr.cnf" +#line 54 "./asn1/gprscdr/gprscdr.cnf" /* * * The contents of this field are a compact form of the UTCTime format @@ -1399,16 +1744,6 @@ dissect_gprscdr_FailureHandlingContinue(gboolean implicit_tag _U_, tvbuff_t *tvb } - -static int -dissect_gprscdr_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, - NULL); - - return offset; -} - - static const ber_sequence_t ChangeOfCharConditionV651_sequence[] = { { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation }, { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation }, @@ -1721,7 +2056,7 @@ dissect_gprscdr_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U static int dissect_gprscdr_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 145 "./asn1/gprscdr/gprscdr.cnf" +#line 120 "./asn1/gprscdr/gprscdr.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -1790,7 +2125,7 @@ static const ber_sequence_t ChangeLocation_sequence[] = { { &hf_gprscdr_routingAreaCode, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode }, { &hf_gprscdr_cellId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CellId }, { &hf_gprscdr_changeTime , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, - { &hf_gprscdr_mCC_MNC , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_mCC_MNC_01 , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, { NULL, 0, 0, 0, NULL } }; @@ -1831,6 +2166,7 @@ static const value_string gprscdr_CauseForRecClosing_vals[] = { { 24, "sGSNPLMNIDChange" }, { 25, "sGWChange" }, { 26, "aPNAMBRChange" }, + { 27, "mOExceptionDataCounterReceipt" }, { 52, "unauthorizedRequestingNetwork" }, { 53, "unauthorizedLCSClient" }, { 54, "positionMethodFailure" }, @@ -2539,6 +2875,12 @@ static const value_string gprscdr_ChangeCondition_vals[] = { { 11, "tAIChange" }, { 12, "userLocationChange" }, { 13, "userCSGInformationChange" }, + { 14, "presenceInPRAChange" }, + { 15, "removalOfAccess" }, + { 16, "unusabilityOfAccess" }, + { 17, "indirectChangeCondition" }, + { 18, "userPlaneToUEChange" }, + { 19, "servingPLMNRateControlChange" }, { 0, NULL } }; @@ -2631,6 +2973,87 @@ dissect_gprscdr_UserCSGInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, } + +static int +dissect_gprscdr_AccessAvailabilityChangeReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gprscdr_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t UWANUserLocationInfo_sequence[] = { + { &hf_gprscdr_uELocalIPAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_IPAddress }, + { &hf_gprscdr_uDPSourcePort, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING_SIZE_2 }, + { &hf_gprscdr_sSID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_bSSID , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_UWANUserLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + UWANUserLocationInfo_sequence, hf_index, ett_gprscdr_UWANUserLocationInfo); + + return offset; +} + + +static const ber_sequence_t RelatedChangeOfCharCondition_sequence[] = { + { &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition }, + { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus }, + { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_RelatedChangeOfCharCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RelatedChangeOfCharCondition_sequence, hf_index, ett_gprscdr_RelatedChangeOfCharCondition); + + return offset; +} + + + +static int +dissect_gprscdr_CPCIoTEPSOptimisationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); + + return offset; +} + + +static const ber_sequence_t ServingPLMNRateControl_sequence[] = { + { &hf_gprscdr_sPLMNDLRateControlValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_sPLMNULRateControlValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_ServingPLMNRateControl(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ServingPLMNRateControl_sequence, hf_index, ett_gprscdr_ServingPLMNRateControl); + + return offset; +} + + static const ber_sequence_t ChangeOfCharCondition_sequence[] = { { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation }, { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation }, @@ -2643,6 +3066,14 @@ static const ber_sequence_t ChangeOfCharCondition_sequence[] = { { &hf_gprscdr_chargingID , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus }, { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_accessAvailabilityChangeReason, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessAvailabilityChangeReason }, + { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo }, + { &hf_gprscdr_relatedChangeOfCharCondition, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RelatedChangeOfCharCondition }, + { &hf_gprscdr_cPCIoTEPSOptimisationIndicator, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CPCIoTEPSOptimisationIndicator }, + { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl }, { NULL, 0, 0, 0, NULL } }; @@ -2828,6 +3259,247 @@ dissect_gprscdr_SGSNSMTRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int } +static const ber_sequence_t SGSNMTLCSRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity }, + { &hf_gprscdr_lcsClientType, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType }, + { &hf_gprscdr_lcsClientIdentity, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSClientIdentity }, + { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, + { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN }, + { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_locationType, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LocationType }, + { &hf_gprscdr_lcsQos , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSQoSInfo }, + { &hf_gprscdr_lcsPriority , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority }, + { &hf_gprscdr_mlcNumber , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, + { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_measurementDuration, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_notificationToMSUser, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_NotificationToMSUser }, + { &hf_gprscdr_privacyOverride, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_location , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaAndCell }, + { &hf_gprscdr_routingArea , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode }, + { &hf_gprscdr_locationEstimate, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, + { &hf_gprscdr_positioningData, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PositioningData }, + { &hf_gprscdr_lcsCause , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSCause }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics }, + { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_SGSNMTLCSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + SGSNMTLCSRecord_set, hf_index, ett_gprscdr_SGSNMTLCSRecord); + + return offset; +} + + +static const ber_sequence_t SGSNMOLCSRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity }, + { &hf_gprscdr_lcsClientType, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType }, + { &hf_gprscdr_lcsClientIdentity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSClientIdentity }, + { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, + { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN }, + { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_locationMethod, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gsm_ss_LocationMethod }, + { &hf_gprscdr_lcsQos , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSQoSInfo }, + { &hf_gprscdr_lcsPriority , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority }, + { &hf_gprscdr_mlcNumber , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, + { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_measurementDuration, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_location , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaAndCell }, + { &hf_gprscdr_routingArea , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode }, + { &hf_gprscdr_locationEstimate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, + { &hf_gprscdr_positioningData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PositioningData }, + { &hf_gprscdr_lcsCause , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSCause }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics }, + { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_SGSNMOLCSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + SGSNMOLCSRecord_set, hf_index, ett_gprscdr_SGSNMOLCSRecord); + + return offset; +} + + +static const ber_sequence_t SGSNNILCSRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_recordingEntity, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordingEntity }, + { &hf_gprscdr_lcsClientType, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCSClientType }, + { &hf_gprscdr_lcsClientIdentity, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSClientIdentity }, + { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, + { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN }, + { &hf_gprscdr_sgsnAddress_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, + { &hf_gprscdr_lcsQos , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSQoSInfo }, + { &hf_gprscdr_lcsPriority , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_LCS_Priority }, + { &hf_gprscdr_mlcNumber , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString }, + { &hf_gprscdr_eventTimeStamp, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_measurementDuration, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_location , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocationAreaAndCell }, + { &hf_gprscdr_routingArea , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode }, + { &hf_gprscdr_locationEstimate, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_lcs_Ext_GeographicalInformation }, + { &hf_gprscdr_positioningData, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PositioningData }, + { &hf_gprscdr_lcsCause , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LCSCause }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics }, + { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_servingNodePLMNIdentifier, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_cNOperatorSelectionEnt, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNOperatorSelectionEntity }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_SGSNNILCSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + SGSNNILCSRecord_set, hf_index, ett_gprscdr_SGSNNILCSRecord); + + return offset; +} + + +static const ber_sequence_t SEQUENCE_OF_RAIdentity_sequence_of[1] = { + { &hf_gprscdr_listofRAs_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gsm_map_RAIdentity }, +}; + +static int +dissect_gprscdr_SEQUENCE_OF_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SEQUENCE_OF_RAIdentity_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_RAIdentity); + + return offset; +} + + + +static int +dissect_gprscdr_DataVolumeMBMS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t ChangeOfMBMSCondition_sequence[] = { + { &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation }, + { &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation }, + { &hf_gprscdr_dataVolumeMBMSUplink, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeMBMS }, + { &hf_gprscdr_dataVolumeMBMSDownlink, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeMBMS }, + { &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition }, + { &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_ChangeOfMBMSCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ChangeOfMBMSCondition_sequence, hf_index, ett_gprscdr_ChangeOfMBMSCondition); + + return offset; +} + + +static const ber_sequence_t SEQUENCE_OF_ChangeOfMBMSCondition_sequence_of[1] = { + { &hf_gprscdr_listOfTrafficVolumes_item_02, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfMBMSCondition }, +}; + +static int +dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SEQUENCE_OF_ChangeOfMBMSCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition); + + return offset; +} + + +static const ber_sequence_t SGSNMBMSRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, + { &hf_gprscdr_listofRAs , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_RAIdentity }, + { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI }, + { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_listOfTrafficVolumes_02, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition }, + { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_duration , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_numberofReceivingUE, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_SGSNMBMSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + SGSNMBMSRecord_set, hf_index, ett_gprscdr_SGSNMBMSRecord); + + return offset; +} + + +static const ber_sequence_t GGSNMBMSRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, + { &hf_gprscdr_listofDownstreamNodes, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress }, + { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI }, + { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_listOfTrafficVolumes_02, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition }, + { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_duration , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_GGSNMBMSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + GGSNMBMSRecord_set, hf_index, ett_gprscdr_GGSNMBMSRecord); + + return offset; +} + + static int dissect_gprscdr_SGWChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -2865,6 +3537,40 @@ dissect_gprscdr_PresenceReportingAreaInfo(gboolean implicit_tag _U_, tvbuff_t *t } + +static int +dissect_gprscdr_UNIPDUCPOnlyFlag(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); + + return offset; +} + + + +static int +dissect_gprscdr_PDPPDNTypeExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t MOExceptionDataCounter_sequence[] = { + { &hf_gprscdr_counterValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_counterTimestamp, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_MOExceptionDataCounter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + MOExceptionDataCounter_sequence, hf_index, ett_gprscdr_MOExceptionDataCounter); + + return offset; +} + + static const ber_sequence_t SGWRecord_set[] = { { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, @@ -2915,6 +3621,12 @@ static const ber_sequence_t SGWRecord_set[] = { { &hf_gprscdr_presenceReportingAreaInfo, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaInfo }, { &hf_gprscdr_lastUserLocationInformation, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, { &hf_gprscdr_lastMSTimeZone, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone }, + { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics }, + { &hf_gprscdr_cPCIoTEPSOptimisationIndicator, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CPCIoTEPSOptimisationIndicator }, + { &hf_gprscdr_uNIPDUCPOnlyFlag, BER_CLASS_CON, 60, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UNIPDUCPOnlyFlag }, + { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 61, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl }, + { &hf_gprscdr_pDPPDNTypeExtension, BER_CLASS_CON, 62, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPPDNTypeExtension }, + { &hf_gprscdr_mOExceptionDataCounter, BER_CLASS_CON, 63, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MOExceptionDataCounter }, { NULL, 0, 0, 0, NULL } }; @@ -2961,6 +3673,11 @@ static const asn_namedbit ServiceConditionChange_bits[] = { { 30, &hf_gprscdr_ServiceConditionChange_tAIChange, -1, -1, "tAIChange", NULL }, { 31, &hf_gprscdr_ServiceConditionChange_userLocationChange, -1, -1, "userLocationChange", NULL }, { 32, &hf_gprscdr_ServiceConditionChange_userCSGInformationChange, -1, -1, "userCSGInformationChange", NULL }, + { 33, &hf_gprscdr_ServiceConditionChange_presenceInPRAChange, -1, -1, "presenceInPRAChange", NULL }, + { 34, &hf_gprscdr_ServiceConditionChange_accessChangeOfSDF, -1, -1, "accessChangeOfSDF", NULL }, + { 35, &hf_gprscdr_ServiceConditionChange_indirectServiceConditionChange, -1, -1, "indirectServiceConditionChange", NULL }, + { 36, &hf_gprscdr_ServiceConditionChange_servingPLMNRateControlChange, -1, -1, "servingPLMNRateControlChange", NULL }, + { 37, &hf_gprscdr_ServiceConditionChange_aPNRateControlChange, -1, -1, "aPNRateControlChange", NULL }, { 0, NULL, 0, 0, NULL, NULL } }; @@ -2998,6 +3715,103 @@ dissect_gprscdr_ADCRuleBaseName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in } +static const ber_sequence_t RelatedChangeOfServiceCondition_sequence[] = { + { &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_threeGPP2UserLocationInformation, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, + { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus }, + { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo }, + { &hf_gprscdr_relatedChangeOfServiceCondition, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RelatedChangeOfServiceCondition }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_RelatedChangeOfServiceCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + RelatedChangeOfServiceCondition_sequence, hf_index, ett_gprscdr_RelatedChangeOfServiceCondition); + + return offset; +} + + +static const value_string gprscdr_AdditionalExceptionReports_vals[] = { + { 0, "notAllowed" }, + { 1, "allowed" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_AdditionalExceptionReports(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string gprscdr_RateControlTimeUnit_vals[] = { + { 0, "unrestricted" }, + { 1, "minute" }, + { 2, "hour" }, + { 3, "day" }, + { 4, "week" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_RateControlTimeUnit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_gprscdr_DataVolume(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t APNRateControlParameters_sequence[] = { + { &hf_gprscdr_additionalExceptionReports, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AdditionalExceptionReports }, + { &hf_gprscdr_rateControlTimeUnit, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RateControlTimeUnit }, + { &hf_gprscdr_rateControlMaxRate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_rateControlMaxMessageSize, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolume }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_APNRateControlParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + APNRateControlParameters_sequence, hf_index, ett_gprscdr_APNRateControlParameters); + + return offset; +} + + +static const ber_sequence_t APNRateControl_sequence[] = { + { &hf_gprscdr_aPNRateControlUplink, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControlParameters }, + { &hf_gprscdr_aPNRateControlDownlink, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControlParameters }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_APNRateControl(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + APNRateControl_sequence, hf_index, ett_gprscdr_APNRateControl); + + return offset; +} + + static const ber_sequence_t ChangeOfServiceCondition_sequence[] = { { &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId }, { &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName }, @@ -3026,6 +3840,11 @@ static const ber_sequence_t ChangeOfServiceCondition_sequence[] = { { &hf_gprscdr_aDCRuleBaseName, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ADCRuleBaseName }, { &hf_gprscdr_presenceReportingAreaStatus, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaStatus }, { &hf_gprscdr_userCSGInformation, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UserCSGInformation }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo }, + { &hf_gprscdr_relatedChangeOfServiceCondition, BER_CLASS_CON, 33, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RelatedChangeOfServiceCondition }, + { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl }, + { &hf_gprscdr_aPNRateControl, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControl }, { NULL, 0, 0, 0, NULL } }; @@ -3066,6 +3885,70 @@ dissect_gprscdr_TWANUserLocationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U } +static const value_string gprscdr_NBIFOMMode_vals[] = { + { 0, "uEINITIATED" }, + { 1, "nETWORKINITIATED" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_NBIFOMMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string gprscdr_NBIFOMSupport_vals[] = { + { 0, "nBIFOMNotSupported" }, + { 1, "nBIFOMSupported" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_NBIFOMSupport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string gprscdr_SGiPtPTunnellingMethod_vals[] = { + { 0, "uDPIPbased" }, + { 1, "others" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_SGiPtPTunnellingMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string gprscdr_ChargingPerIPCANSessionIndicator_vals[] = { + { 0, "inactive" }, + { 1, "active" }, + { 0, NULL } +}; + + +static int +dissect_gprscdr_ChargingPerIPCANSessionIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + static const ber_sequence_t PGWRecord_set[] = { { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, @@ -3121,6 +4004,17 @@ static const ber_sequence_t PGWRecord_set[] = { { &hf_gprscdr_presenceReportingAreaInfo, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PresenceReportingAreaInfo }, { &hf_gprscdr_lastUserLocationInformation, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING }, { &hf_gprscdr_lastMSTimeZone, BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone }, + { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics }, + { &hf_gprscdr_nBIFOMMode , BER_CLASS_CON, 60, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NBIFOMMode }, + { &hf_gprscdr_nBIFOMSupport, BER_CLASS_CON, 61, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NBIFOMSupport }, + { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 62, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo }, + { &hf_gprscdr_sGiPtPTunnellingMethod, BER_CLASS_CON, 64, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGiPtPTunnellingMethod }, + { &hf_gprscdr_uNIPDUCPOnlyFlag, BER_CLASS_CON, 65, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UNIPDUCPOnlyFlag }, + { &hf_gprscdr_servingPLMNRateControl, BER_CLASS_CON, 66, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServingPLMNRateControl }, + { &hf_gprscdr_aPNRateControl, BER_CLASS_CON, 67, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNRateControl }, + { &hf_gprscdr_chargingPerIPCANSessionIndicator, BER_CLASS_CON, 68, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingPerIPCANSessionIndicator }, + { &hf_gprscdr_pDPPDNTypeExtension, BER_CLASS_CON, 68, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPPDNTypeExtension }, + { &hf_gprscdr_mOExceptionDataCounter, BER_CLASS_CON, 69, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MOExceptionDataCounter }, { NULL, 0, 0, 0, NULL } }; @@ -3135,6 +4029,48 @@ dissect_gprscdr_PGWRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs static int +dissect_gprscdr_CTEID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const ber_sequence_t GWMBMSRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_mbmsGWAddress, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, + { &hf_gprscdr_listofDownstreamNodes, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress }, + { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI }, + { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType }, + { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_listOfTrafficVolumes_02, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition }, + { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_duration , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation }, + { &hf_gprscdr_commonTeid , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CTEID }, + { &hf_gprscdr_iPMulticastSourceAddress, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_GWMBMSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + GWMBMSRecord_set, hf_index, ett_gprscdr_GWMBMSRecord); + + return offset; +} + + + +static int dissect_gprscdr_FixedSubsID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); @@ -3319,6 +4255,9 @@ static const ber_sequence_t EPDGRecord_set[] = { { &hf_gprscdr_ePDGiPv6AddressUsed, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, { &hf_gprscdr_retransmission, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics }, + { &hf_gprscdr_uWANUserLocationInformation, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_UWANUserLocationInfo }, + { &hf_gprscdr_userLocationInfoTime, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, { NULL, 0, 0, 0, NULL } }; @@ -3331,18 +4270,74 @@ dissect_gprscdr_EPDGRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off } +static const ber_sequence_t TWAGRecord_set[] = { + { &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType }, + { &hf_gprscdr_servedIMSI , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI }, + { &hf_gprscdr_tWAGAddressUsed, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_chargingID , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, + { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI }, + { &hf_gprscdr_pdpPDNType , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PDPType }, + { &hf_gprscdr_servedPDPPDNAddress, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_dynamicAddressFlag, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag }, + { &hf_gprscdr_listOfTrafficVolumes_01, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition }, + { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_duration , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration }, + { &hf_gprscdr_causeForRecClosing_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing }, + { &hf_gprscdr_diagnostics , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics }, + { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER }, + { &hf_gprscdr_nodeID , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID }, + { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions }, + { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber }, + { &hf_gprscdr_apnSelectionMode, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_APNSelectionMode }, + { &hf_gprscdr_servedMSISDN, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSISDN }, + { &hf_gprscdr_chargingCharacteristics, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingCharacteristics }, + { &hf_gprscdr_chChSelectionMode, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChChSelectionMode }, + { &hf_gprscdr_servedIMEI , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI }, + { &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType }, + { &hf_gprscdr_sGWChange , BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWChange }, + { &hf_gprscdr_p_GWAddressUsed, BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_p_GWPLMNIdentifier, BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id }, + { &hf_gprscdr_startTime , BER_CLASS_CON, 38, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_stopTime , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp }, + { &hf_gprscdr_pDNConnectionChargingID, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID }, + { &hf_gprscdr_servedPDPPDNAddressExt, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress }, + { &hf_gprscdr_dynamicAddressFlagExt, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DynamicAddressFlag }, + { &hf_gprscdr_tWAGiPv6AddressUsed, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_p_GWiPv6AddressUsed, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress }, + { &hf_gprscdr_retransmission, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL }, + { &hf_gprscdr_enhancedDiagnostics, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EnhancedDiagnostics }, + { &hf_gprscdr_tWANUserLocationInformation, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TWANUserLocationInfo }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_gprscdr_TWAGRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, + TWAGRecord_set, hf_index, ett_gprscdr_TWAGRecord); + + return offset; +} + + const value_string gprscdr_GPRSRecord_vals[] = { { 20, "sgsnPDPRecord" }, { 21, "ggsnPDPRecord" }, { 22, "sgsnMMRecord" }, { 23, "sgsnSMORecord" }, { 24, "sgsnSMTRecord" }, + { 25, "sgsnMTLCSRecord" }, + { 26, "sgsnMOLCSRecord" }, + { 27, "sgsnNILCSRecord" }, { 70, "egsnPDPRecord" }, + { 76, "sgsnMBMSRecord" }, + { 77, "ggsnMBMSRecord" }, { 78, "sGWRecord" }, { 79, "pGWRecord" }, + { 86, "gwMBMSRecord" }, { 92, "tDFRecord" }, { 95, "iPERecord" }, { 96, "ePDGRecord" }, + { 97, "tWAGRecord" }, { 0, NULL } }; @@ -3352,18 +4347,25 @@ static const ber_choice_t GPRSRecord_choice[] = { { 22, &hf_gprscdr_sgsnMMRecord, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMMRecord }, { 23, &hf_gprscdr_sgsnSMORecord_01, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecord }, { 24, &hf_gprscdr_sgsnSMTRecord_01, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecord }, + { 25, &hf_gprscdr_sgsnMTLCSRecord, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMTLCSRecord }, + { 26, &hf_gprscdr_sgsnMOLCSRecord, BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMOLCSRecord }, + { 27, &hf_gprscdr_sgsnNILCSRecord, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNNILCSRecord }, { 70, &hf_gprscdr_egsnPDPRecord_01, BER_CLASS_CON, 70, BER_FLAGS_IMPLTAG, dissect_gprscdr_EGSNPDPRecordV750 }, + { 76, &hf_gprscdr_sgsnMBMSRecord, BER_CLASS_CON, 76, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMBMSRecord }, + { 77, &hf_gprscdr_ggsnMBMSRecord, BER_CLASS_CON, 77, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNMBMSRecord }, { 78, &hf_gprscdr_sGWRecord , BER_CLASS_CON, 78, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGWRecord }, { 79, &hf_gprscdr_pGWRecord , BER_CLASS_CON, 79, BER_FLAGS_IMPLTAG, dissect_gprscdr_PGWRecord }, + { 86, &hf_gprscdr_gwMBMSRecord, BER_CLASS_CON, 86, BER_FLAGS_IMPLTAG, dissect_gprscdr_GWMBMSRecord }, { 92, &hf_gprscdr_tDFRecord , BER_CLASS_CON, 92, BER_FLAGS_IMPLTAG, dissect_gprscdr_TDFRecord }, { 95, &hf_gprscdr_iPERecord , BER_CLASS_CON, 95, BER_FLAGS_IMPLTAG, dissect_gprscdr_IPERecord }, { 96, &hf_gprscdr_ePDGRecord , BER_CLASS_CON, 96, BER_FLAGS_IMPLTAG, dissect_gprscdr_EPDGRecord }, + { 97, &hf_gprscdr_tWAGRecord , BER_CLASS_CON, 97, BER_FLAGS_IMPLTAG, dissect_gprscdr_TWAGRecord }, { 0, NULL, 0, 0, 0, NULL } }; int dissect_gprscdr_GPRSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 157 "./asn1/gprscdr/gprscdr.cnf" +#line 132 "./asn1/gprscdr/gprscdr.cnf" proto_item *item; gint branch_taken, t_offset = offset; gint32 tag; @@ -3457,6 +4459,10 @@ proto_register_gprscdr(void) { "diameterResultCodeAndExperimentalResult", "gprscdr.diameterResultCodeAndExperimentalResult", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, + { &hf_gprscdr_rANNASCause, + { "rANNASCause", "gprscdr.rANNASCause", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, { &hf_gprscdr_iPBinaryAddress, { "iPBinaryAddress", "gprscdr.iPBinaryAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPBinaryAddress_vals), 0, @@ -3493,29 +4499,53 @@ proto_register_gprscdr(void) { "iPTextV6Address", "gprscdr.iPTextV6Address", FT_STRING, BASE_NONE, NULL, 0, "IA5String_SIZE_15_45", HFILL }}, + { &hf_gprscdr_lcsClientExternalID, + { "lcsClientExternalID", "gprscdr.lcsClientExternalID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_lcsClientDialedByMS, + { "lcsClientDialedByMS", "gprscdr.lcsClientDialedByMS", + FT_BYTES, BASE_NONE, NULL, 0, + "AddressString", HFILL }}, + { &hf_gprscdr_lcsClientInternalID, + { "lcsClientInternalID", "gprscdr.lcsClientInternalID", + FT_UINT32, BASE_DEC, VALS(gsm_map_LCSClientInternalID_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_locationAreaCode, + { "locationAreaCode", "gprscdr.locationAreaCode", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_cellId, + { "cellId", "gprscdr.cellId", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_mCC_MNC, + { "mCC-MNC", "gprscdr.mCC_MNC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_ManagementExtensions_item, { "ManagementExtension", "gprscdr.ManagementExtension_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gprscdr_tMGI, - { "tMGI", "gprscdr.tMGI_element", - FT_NONE, BASE_NONE, NULL, 0, + { "tMGI", "gprscdr.tMGI", + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gprscdr_mBMSSessionIdentity, - { "mBMSSessionIdentity", "gprscdr.mBMSSessionIdentity_element", - FT_NONE, BASE_NONE, NULL, 0, + { "mBMSSessionIdentity", "gprscdr.mBMSSessionIdentity", + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gprscdr_mBMSServiceType, - { "mBMSServiceType", "gprscdr.mBMSServiceType_element", - FT_NONE, BASE_NONE, NULL, 0, + { "mBMSServiceType", "gprscdr.mBMSServiceType", + FT_UINT32, BASE_DEC, VALS(gprscdr_MBMSServiceType_vals), 0, NULL, HFILL }}, { &hf_gprscdr_mBMSUserServiceType, - { "mBMSUserServiceType", "gprscdr.mBMSUserServiceType_element", - FT_NONE, BASE_NONE, NULL, 0, + { "mBMSUserServiceType", "gprscdr.mBMSUserServiceType", + FT_UINT32, BASE_DEC, VALS(gprscdr_MBMSUserServiceType_vals), 0, NULL, HFILL }}, { &hf_gprscdr_mBMS2G3GIndicator, - { "mBMS2G3GIndicator", "gprscdr.mBMS2G3GIndicator_element", - FT_NONE, BASE_NONE, NULL, 0, + { "mBMS2G3GIndicator", "gprscdr.mBMS2G3GIndicator", + FT_UINT32, BASE_DEC, VALS(gprscdr_MBMS2G3GIndicator_vals), 0, NULL, HFILL }}, { &hf_gprscdr_fileRepairSupported, { "fileRepairSupported", "gprscdr.fileRepairSupported", @@ -3526,21 +4556,29 @@ proto_register_gprscdr(void) FT_BYTES, BASE_NONE, NULL, 0, "RoutingAreaCode", HFILL }}, { &hf_gprscdr_mBMSServiceArea, - { "mBMSServiceArea", "gprscdr.mBMSServiceArea_element", - FT_NONE, BASE_NONE, NULL, 0, + { "mBMSServiceArea", "gprscdr.mBMSServiceArea", + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_gprscdr_requiredMBMSBearerCaps, - { "requiredMBMSBearerCaps", "gprscdr.requiredMBMSBearerCaps_element", - FT_NONE, BASE_NONE, NULL, 0, + { "requiredMBMSBearerCaps", "gprscdr.requiredMBMSBearerCaps", + FT_BYTES, BASE_NONE, NULL, 0, "RequiredMBMSBearerCapabilities", HFILL }}, { &hf_gprscdr_mBMSGWAddress, { "mBMSGWAddress", "gprscdr.mBMSGWAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, "GSNAddress", HFILL }}, { &hf_gprscdr_cNIPMulticastDistribution, - { "cNIPMulticastDistribution", "gprscdr.cNIPMulticastDistribution_element", - FT_NONE, BASE_NONE, NULL, 0, + { "cNIPMulticastDistribution", "gprscdr.cNIPMulticastDistribution", + FT_UINT32, BASE_DEC, VALS(gprscdr_CNIPMulticastDistribution_vals), 0, NULL, HFILL }}, + { &hf_gprscdr_mBMSDataTransferStart, + { "mBMSDataTransferStart", "gprscdr.mBMSDataTransferStart", + FT_BYTES, BASE_NONE, NULL, 0, + "MBMSTime", HFILL }}, + { &hf_gprscdr_mBMSDataTransferStop, + { "mBMSDataTransferStop", "gprscdr.mBMSDataTransferStop", + FT_BYTES, BASE_NONE, NULL, 0, + "MBMSTime", HFILL }}, { &hf_gprscdr_serviceSpecificData, { "serviceSpecificData", "gprscdr.serviceSpecificData", FT_STRING, BASE_NONE, NULL, 0, @@ -3769,10 +4807,6 @@ proto_register_gprscdr(void) { "routingArea", "gprscdr.routingArea", FT_BYTES, BASE_NONE, NULL, 0, "RoutingAreaCode", HFILL }}, - { &hf_gprscdr_locationAreaCode, - { "locationAreaCode", "gprscdr.locationAreaCode", - FT_BYTES, BASE_NONE, NULL, 0, - NULL, HFILL }}, { &hf_gprscdr_cellIdentifier, { "cellIdentifier", "gprscdr.cellIdentifier", FT_BYTES, BASE_NONE, NULL, 0, @@ -3949,10 +4983,30 @@ proto_register_gprscdr(void) { "sgsnSMTRecord", "gprscdr.sgsnSMTRecord_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_sgsnMTLCSRecord, + { "sgsnMTLCSRecord", "gprscdr.sgsnMTLCSRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_sgsnMOLCSRecord, + { "sgsnMOLCSRecord", "gprscdr.sgsnMOLCSRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_sgsnNILCSRecord, + { "sgsnNILCSRecord", "gprscdr.sgsnNILCSRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_egsnPDPRecord_01, { "egsnPDPRecord", "gprscdr.egsnPDPRecord_element", FT_NONE, BASE_NONE, NULL, 0, "EGSNPDPRecordV750", HFILL }}, + { &hf_gprscdr_sgsnMBMSRecord, + { "sgsnMBMSRecord", "gprscdr.sgsnMBMSRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_ggsnMBMSRecord, + { "ggsnMBMSRecord", "gprscdr.ggsnMBMSRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_sGWRecord, { "sGWRecord", "gprscdr.sGWRecord_element", FT_NONE, BASE_NONE, NULL, 0, @@ -3961,6 +5015,10 @@ proto_register_gprscdr(void) { "pGWRecord", "gprscdr.pGWRecord_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_gwMBMSRecord, + { "gwMBMSRecord", "gprscdr.gwMBMSRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_tDFRecord, { "tDFRecord", "gprscdr.tDFRecord_element", FT_NONE, BASE_NONE, NULL, 0, @@ -3973,6 +5031,10 @@ proto_register_gprscdr(void) { "ePDGRecord", "gprscdr.ePDGRecord_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_tWAGRecord, + { "tWAGRecord", "gprscdr.tWAGRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_s_GWAddress, { "s-GWAddress", "gprscdr.s_GWAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, @@ -4097,6 +5159,30 @@ proto_register_gprscdr(void) { "lastMSTimeZone", "gprscdr.lastMSTimeZone", FT_BYTES, BASE_NONE, NULL, 0, "MSTimeZone", HFILL }}, + { &hf_gprscdr_enhancedDiagnostics, + { "enhancedDiagnostics", "gprscdr.enhancedDiagnostics_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_cPCIoTEPSOptimisationIndicator, + { "cPCIoTEPSOptimisationIndicator", "gprscdr.cPCIoTEPSOptimisationIndicator", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_uNIPDUCPOnlyFlag, + { "uNIPDUCPOnlyFlag", "gprscdr.uNIPDUCPOnlyFlag", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_servingPLMNRateControl, + { "servingPLMNRateControl", "gprscdr.servingPLMNRateControl_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_pDPPDNTypeExtension, + { "pDPPDNTypeExtension", "gprscdr.pDPPDNTypeExtension", + FT_INT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_mOExceptionDataCounter, + { "mOExceptionDataCounter", "gprscdr.mOExceptionDataCounter_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_p_GWAddress, { "p-GWAddress", "gprscdr.p_GWAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, @@ -4129,6 +5215,30 @@ proto_register_gprscdr(void) { "ePCQoSInformation", "gprscdr.ePCQoSInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_nBIFOMMode, + { "nBIFOMMode", "gprscdr.nBIFOMMode", + FT_UINT32, BASE_DEC, VALS(gprscdr_NBIFOMMode_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_nBIFOMSupport, + { "nBIFOMSupport", "gprscdr.nBIFOMSupport", + FT_UINT32, BASE_DEC, VALS(gprscdr_NBIFOMSupport_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_uWANUserLocationInformation, + { "uWANUserLocationInformation", "gprscdr.uWANUserLocationInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "UWANUserLocationInfo", HFILL }}, + { &hf_gprscdr_sGiPtPTunnellingMethod, + { "sGiPtPTunnellingMethod", "gprscdr.sGiPtPTunnellingMethod", + FT_UINT32, BASE_DEC, VALS(gprscdr_SGiPtPTunnellingMethod_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_aPNRateControl, + { "aPNRateControl", "gprscdr.aPNRateControl_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_chargingPerIPCANSessionIndicator, + { "chargingPerIPCANSessionIndicator", "gprscdr.chargingPerIPCANSessionIndicator", + FT_UINT32, BASE_DEC, VALS(gprscdr_ChargingPerIPCANSessionIndicator_vals), 0, + NULL, HFILL }}, { &hf_gprscdr_tDFAddress, { "tDFAddress", "gprscdr.tDFAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, @@ -4185,6 +5295,14 @@ proto_register_gprscdr(void) { "ePDGiPv6AddressUsed", "gprscdr.ePDGiPv6AddressUsed", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, "GSNAddress", HFILL }}, + { &hf_gprscdr_tWAGAddressUsed, + { "tWAGAddressUsed", "gprscdr.tWAGAddressUsed", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_tWAGiPv6AddressUsed, + { "tWAGiPv6AddressUsed", "gprscdr.tWAGiPv6AddressUsed", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, { &hf_gprscdr_changeLocation, { "changeLocation", "gprscdr.changeLocation", FT_UINT32, BASE_DEC, NULL, 0, @@ -4225,6 +5343,106 @@ proto_register_gprscdr(void) { "originatingAddress", "gprscdr.originatingAddress", FT_BYTES, BASE_NONE, NULL, 0, "AddressString", HFILL }}, + { &hf_gprscdr_lcsClientType, + { "lcsClientType", "gprscdr.lcsClientType", + FT_UINT32, BASE_DEC, VALS(gsm_map_lcs_LCSClientType_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_lcsClientIdentity, + { "lcsClientIdentity", "gprscdr.lcsClientIdentity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_locationType, + { "locationType", "gprscdr.locationType_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_lcsQos, + { "lcsQos", "gprscdr.lcsQos", + FT_BYTES, BASE_NONE, NULL, 0, + "LCSQoSInfo", HFILL }}, + { &hf_gprscdr_lcsPriority, + { "lcsPriority", "gprscdr.lcsPriority", + FT_BYTES, BASE_NONE, NULL, 0, + "LCS_Priority", HFILL }}, + { &hf_gprscdr_mlcNumber, + { "mlcNumber", "gprscdr.mlcNumber", + FT_BYTES, BASE_NONE, NULL, 0, + "ISDN_AddressString", HFILL }}, + { &hf_gprscdr_measurementDuration, + { "measurementDuration", "gprscdr.measurementDuration", + FT_INT32, BASE_DEC, NULL, 0, + "CallDuration", HFILL }}, + { &hf_gprscdr_notificationToMSUser, + { "notificationToMSUser", "gprscdr.notificationToMSUser", + FT_UINT32, BASE_DEC, VALS(gsm_map_ms_NotificationToMSUser_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_privacyOverride, + { "privacyOverride", "gprscdr.privacyOverride_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_location, + { "location", "gprscdr.location_element", + FT_NONE, BASE_NONE, NULL, 0, + "LocationAreaAndCell", HFILL }}, + { &hf_gprscdr_locationEstimate, + { "locationEstimate", "gprscdr.locationEstimate", + FT_BYTES, BASE_NONE, NULL, 0, + "Ext_GeographicalInformation", HFILL }}, + { &hf_gprscdr_positioningData, + { "positioningData", "gprscdr.positioningData", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_lcsCause, + { "lcsCause", "gprscdr.lcsCause", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_locationMethod, + { "locationMethod", "gprscdr.locationMethod", + FT_UINT32, BASE_DEC, VALS(gsm_ss_LocationMethod_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_listofRAs, + { "listofRAs", "gprscdr.listofRAs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_OF_RAIdentity", HFILL }}, + { &hf_gprscdr_listofRAs_item, + { "RAIdentity", "gprscdr.RAIdentity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_listOfTrafficVolumes_02, + { "listOfTrafficVolumes", "gprscdr.listOfTrafficVolumes", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_OF_ChangeOfMBMSCondition", HFILL }}, + { &hf_gprscdr_listOfTrafficVolumes_item_02, + { "ChangeOfMBMSCondition", "gprscdr.ChangeOfMBMSCondition_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_numberofReceivingUE, + { "numberofReceivingUE", "gprscdr.numberofReceivingUE", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER", HFILL }}, + { &hf_gprscdr_mbmsInformation, + { "mbmsInformation", "gprscdr.mbmsInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_listofDownstreamNodes, + { "listofDownstreamNodes", "gprscdr.listofDownstreamNodes", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_OF_GSNAddress", HFILL }}, + { &hf_gprscdr_listofDownstreamNodes_item, + { "GSNAddress", "gprscdr.GSNAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_mbmsGWAddress, + { "mbmsGWAddress", "gprscdr.mbmsGWAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "GSNAddress", HFILL }}, + { &hf_gprscdr_commonTeid, + { "commonTeid", "gprscdr.commonTeid", + FT_BYTES, BASE_NONE, NULL, 0, + "CTEID", HFILL }}, + { &hf_gprscdr_iPMulticastSourceAddress, + { "iPMulticastSourceAddress", "gprscdr.iPMulticastSourceAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_PDPAddress_vals), 0, + "PDPAddress", HFILL }}, { &hf_gprscdr_physicalAccessID, { "physicalAccessID", "gprscdr.physicalAccessID", FT_STRING, BASE_NONE, NULL, 0, @@ -4241,6 +5459,30 @@ proto_register_gprscdr(void) { "flows", "gprscdr.flows_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_aPNRateControlUplink, + { "aPNRateControlUplink", "gprscdr.aPNRateControlUplink_element", + FT_NONE, BASE_NONE, NULL, 0, + "APNRateControlParameters", HFILL }}, + { &hf_gprscdr_aPNRateControlDownlink, + { "aPNRateControlDownlink", "gprscdr.aPNRateControlDownlink_element", + FT_NONE, BASE_NONE, NULL, 0, + "APNRateControlParameters", HFILL }}, + { &hf_gprscdr_additionalExceptionReports, + { "additionalExceptionReports", "gprscdr.additionalExceptionReports", + FT_UINT32, BASE_DEC, VALS(gprscdr_AdditionalExceptionReports_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_rateControlTimeUnit, + { "rateControlTimeUnit", "gprscdr.rateControlTimeUnit", + FT_INT32, BASE_DEC, VALS(gprscdr_RateControlTimeUnit_vals), 0, + NULL, HFILL }}, + { &hf_gprscdr_rateControlMaxRate, + { "rateControlMaxRate", "gprscdr.rateControlMaxRate", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER", HFILL }}, + { &hf_gprscdr_rateControlMaxMessageSize, + { "rateControlMaxMessageSize", "gprscdr.rateControlMaxMessageSize", + FT_INT32, BASE_DEC, NULL, 0, + "DataVolume", HFILL }}, { &hf_gprscdr_sCFAddress, { "sCFAddress", "gprscdr.sCFAddress", FT_BYTES, BASE_NONE, NULL, 0, @@ -4305,6 +5547,22 @@ proto_register_gprscdr(void) { "presenceReportingAreaStatus", "gprscdr.presenceReportingAreaStatus", FT_UINT32, BASE_DEC, VALS(gprscdr_PresenceReportingAreaStatus_vals), 0, NULL, HFILL }}, + { &hf_gprscdr_accessAvailabilityChangeReason, + { "accessAvailabilityChangeReason", "gprscdr.accessAvailabilityChangeReason", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_relatedChangeOfCharCondition, + { "relatedChangeOfCharCondition", "gprscdr.relatedChangeOfCharCondition_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_gprscdr_dataVolumeMBMSUplink, + { "dataVolumeMBMSUplink", "gprscdr.dataVolumeMBMSUplink", + FT_INT32, BASE_DEC, NULL, 0, + "DataVolumeMBMS", HFILL }}, + { &hf_gprscdr_dataVolumeMBMSDownlink, + { "dataVolumeMBMSDownlink", "gprscdr.dataVolumeMBMSDownlink", + FT_INT32, BASE_DEC, NULL, 0, + "DataVolumeMBMS", HFILL }}, { &hf_gprscdr_serviceConditionChange_01, { "serviceConditionChange", "gprscdr.serviceConditionChange", FT_BYTES, BASE_NONE, NULL, 0, @@ -4333,15 +5591,15 @@ proto_register_gprscdr(void) { "aDCRuleBaseName", "gprscdr.aDCRuleBaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_relatedChangeOfServiceCondition, + { "relatedChangeOfServiceCondition", "gprscdr.relatedChangeOfServiceCondition_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_gprscdr_routingAreaCode, { "routingAreaCode", "gprscdr.routingAreaCode", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_gprscdr_cellId, - { "cellId", "gprscdr.cellId", - FT_BYTES, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_gprscdr_mCC_MNC, + { &hf_gprscdr_mCC_MNC_01, { "mCC-MNC", "gprscdr.mCC_MNC", FT_BYTES, BASE_NONE, NULL, 0, "PLMN_Id", HFILL }}, @@ -4409,6 +5667,14 @@ proto_register_gprscdr(void) { "flowNumber item", "gprscdr.flowNumber_item", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, + { &hf_gprscdr_counterValue, + { "counterValue", "gprscdr.counterValue", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER", HFILL }}, + { &hf_gprscdr_counterTimestamp, + { "counterTimestamp", "gprscdr.counterTimestamp", + FT_BYTES, BASE_NONE, NULL, 0, + "TimeStamp", HFILL }}, { &hf_gprscdr_iPAddress, { "iPAddress", "gprscdr.iPAddress", FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, @@ -4425,6 +5691,14 @@ proto_register_gprscdr(void) { "pSFFDAppendIndicator", "gprscdr.pSFFDAppendIndicator", FT_BOOLEAN, BASE_NONE, NULL, 0, "FFDAppendIndicator", HFILL }}, + { &hf_gprscdr_sPLMNDLRateControlValue, + { "sPLMNDLRateControlValue", "gprscdr.sPLMNDLRateControlValue", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER", HFILL }}, + { &hf_gprscdr_sPLMNULRateControlValue, + { "sPLMNULRateControlValue", "gprscdr.sPLMNULRateControlValue", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER", HFILL }}, { &hf_gprscdr_timeQuotaType, { "timeQuotaType", "gprscdr.timeQuotaType", FT_UINT32, BASE_DEC, VALS(gprscdr_TimeQuotaType_vals), 0, @@ -4445,6 +5719,14 @@ proto_register_gprscdr(void) { "cSGMembershipIndication", "gprscdr.cSGMembershipIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_gprscdr_uELocalIPAddress, + { "uELocalIPAddress", "gprscdr.uELocalIPAddress", + FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0, + "IPAddress", HFILL }}, + { &hf_gprscdr_uDPSourcePort, + { "uDPSourcePort", "gprscdr.uDPSourcePort", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_2", HFILL }}, { &hf_gprscdr_LevelOfCAMELService_basic, { "basic", "gprscdr.basic", FT_BOOLEAN, 8, NULL, 0x80, @@ -4785,6 +6067,26 @@ proto_register_gprscdr(void) { "userCSGInformationChange", "gprscdr.userCSGInformationChange", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, + { &hf_gprscdr_ServiceConditionChange_presenceInPRAChange, + { "presenceInPRAChange", "gprscdr.presenceInPRAChange", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_gprscdr_ServiceConditionChange_accessChangeOfSDF, + { "accessChangeOfSDF", "gprscdr.accessChangeOfSDF", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_gprscdr_ServiceConditionChange_indirectServiceConditionChange, + { "indirectServiceConditionChange", "gprscdr.indirectServiceConditionChange", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + { &hf_gprscdr_ServiceConditionChange_servingPLMNRateControlChange, + { "servingPLMNRateControlChange", "gprscdr.servingPLMNRateControlChange", + FT_BOOLEAN, 8, NULL, 0x08, + NULL, HFILL }}, + { &hf_gprscdr_ServiceConditionChange_aPNRateControlChange, + { "aPNRateControlChange", "gprscdr.aPNRateControlChange", + FT_BOOLEAN, 8, NULL, 0x04, + NULL, HFILL }}, /*--- End of included file: packet-gprscdr-hfarr.c ---*/ #line 77 "./asn1/gprscdr/packet-gprscdr-template.c" @@ -4800,12 +6102,15 @@ proto_register_gprscdr(void) /*--- Included file: packet-gprscdr-ettarr.c ---*/ #line 1 "./asn1/gprscdr/packet-gprscdr-ettarr.c" &ett_gprscdr_Diagnostics, + &ett_gprscdr_EnhancedDiagnostics, &ett_gprscdr_IPAddress, &ett_gprscdr_IPBinaryAddress, &ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength, &ett_gprscdr_IPBinV6AddressWithPrefixLength, &ett_gprscdr_IPTextRepresentedAddress, + &ett_gprscdr_LCSClientIdentity, &ett_gprscdr_LevelOfCAMELService, + &ett_gprscdr_LocationAreaAndCell, &ett_gprscdr_ManagementExtensions, &ett_gprscdr_MBMSInformation, &ett_gprscdr_ServiceSpecificInfo, @@ -4838,17 +6143,29 @@ proto_register_gprscdr(void) &ett_gprscdr_TDFRecord, &ett_gprscdr_IPERecord, &ett_gprscdr_EPDGRecord, + &ett_gprscdr_TWAGRecord, &ett_gprscdr_SGSNMMRecord, &ett_gprscdr_SEQUENCE_OF_ChangeLocation, &ett_gprscdr_SGSNPDPRecord, &ett_gprscdr_SGSNSMORecord, &ett_gprscdr_SGSNSMTRecord, + &ett_gprscdr_SGSNMTLCSRecord, + &ett_gprscdr_SGSNMOLCSRecord, + &ett_gprscdr_SGSNNILCSRecord, + &ett_gprscdr_SGSNMBMSRecord, + &ett_gprscdr_SEQUENCE_OF_RAIdentity, + &ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition, + &ett_gprscdr_GGSNMBMSRecord, + &ett_gprscdr_GWMBMSRecord, &ett_gprscdr_AccessLineIdentifier, &ett_gprscdr_AFRecordInformation, + &ett_gprscdr_APNRateControl, + &ett_gprscdr_APNRateControlParameters, &ett_gprscdr_CAMELInformationMM, &ett_gprscdr_CAMELInformationPDP, &ett_gprscdr_CAMELInformationSMS, &ett_gprscdr_ChangeOfCharCondition, + &ett_gprscdr_ChangeOfMBMSCondition, &ett_gprscdr_ChangeOfServiceCondition, &ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo, &ett_gprscdr_ChangeLocation, @@ -4858,13 +6175,18 @@ proto_register_gprscdr(void) &ett_gprscdr_FixedUserLocationInformation, &ett_gprscdr_Flows, &ett_gprscdr_T_flowNumber, + &ett_gprscdr_MOExceptionDataCounter, &ett_gprscdr_PDPAddress, &ett_gprscdr_PresenceReportingAreaInfo, &ett_gprscdr_PSFurnishChargingInformation, + &ett_gprscdr_RelatedChangeOfCharCondition, + &ett_gprscdr_RelatedChangeOfServiceCondition, &ett_gprscdr_ServiceConditionChange, + &ett_gprscdr_ServingPLMNRateControl, &ett_gprscdr_TimeQuotaMechanism, &ett_gprscdr_TWANUserLocationInfo, &ett_gprscdr_UserCSGInformation, + &ett_gprscdr_UWANUserLocationInfo, /*--- End of included file: packet-gprscdr-ettarr.c ---*/ #line 86 "./asn1/gprscdr/packet-gprscdr-template.c" diff --git a/epan/dissectors/packet-gprscdr.h b/epan/dissectors/packet-gprscdr.h index 5f2a513727..3bf81a7a4b 100644 --- a/epan/dissectors/packet-gprscdr.h +++ b/epan/dissectors/packet-gprscdr.h @@ -1,7 +1,7 @@ /* Do not modify this file. Changes will be overwritten. */ /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ /* packet-gprscdr.h */ -/* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */ +/* asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../.. GenericChargingDataTypesV1400.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1400.asn */ /* Input file: packet-gprscdr-template.h */ |