[GTP CDR] Add support for CDR data record format version 12.6.0

Bug: 11015
Change-Id: Iea4a4cd4e4e8b41ef781c92c838f17ea6d16e499
Reviewed-on: https://code.wireshark.org/review/7413
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
AndersBroman 2015-02-26 16:18:38 +01:00 committed by Anders Broman
parent 50b15cc3c1
commit e914bd5d36
5 changed files with 103 additions and 81 deletions

View File

@ -33,7 +33,7 @@ set( EXT_ASN_FILE_LIST
set( ASN_FILE_LIST
GenericChargingDataTypesV1250.asn
GPRSChargingDataTypesV641.asn
GPRSChargingDataTypesV1250.asn
GPRSChargingDataTypesV1260.asn
)
set( EXTRA_DIST

View File

@ -1,4 +1,7 @@
GPRSChargingDataTypesV1250 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
--
-- 3GPP TS 32.298
--
GPRSChargingDataTypesV1260 {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
@ -13,7 +16,7 @@ CallingNumber,
CellId,
Diagnostics,
DiameterIdentity,
--GSNAddress,
-- GSNAddress,
IPAddress,
LCSCause,
LCSClientIdentity,
@ -42,29 +45,29 @@ 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) version6 (6)}
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) version13 (13)}
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) version13 (13)}
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) version13 (13) }
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) version13 (13)}
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]
;
@ -81,10 +84,10 @@ GPRSRecord ::= CHOICE
--
{
sgsnPDPRecord [20] SGSNPDPRecord,
sgsnMMRecord [22] SGSNMMRecord,
-- WS bacward compabillity addition
ggsnPDPRecord [21] GGSNPDPRecordV750,
-- WS mod END
sgsnMMRecord [22] SGSNMMRecord,
sgsnSMORecord [23] SGSNSMORecord,
sgsnSMTRecord [24] SGSNSMTRecord,
-- sgsnMTLCSRecord [25] SGSNMTLCSRecord,
@ -339,7 +342,8 @@ EPDGRecord ::= SET
chChSelectionMode [24] ChChSelectionMode OPTIONAL,
iMSsignalingContext [25] NULL OPTIONAL,
servedIMEI [29] IMEI OPTIONAL,
rATType [30] RATType OPTIONAL,
rATType [30] RATType OPTIONAL,
sGWChange [34] SGWChange OPTIONAL,
p-GWAddressUsed [36] GSNAddress OPTIONAL,
p-GWPLMNIdentifier [37] PLMN-Id OPTIONAL,
startTime [38] TimeStamp OPTIONAL,
@ -763,7 +767,9 @@ 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)
@ -801,7 +807,8 @@ ChangeCondition ::= ENUMERATED
dT-Removal (9),
eCGIChange (10), -- bearer modification. "ECGI Change"
tAIChange (11), -- bearer modification. "TAI Change"
userLocationChange (12) -- bearer modification. "User Location Change"
userLocationChange (12), -- bearer modification. "User Location Change"
userCSGInformationChange (13) -- bearer modification. "User CSG info Change"
}
ChangeOfCharCondition ::= SEQUENCE
@ -821,7 +828,8 @@ ChangeOfCharCondition ::= SEQUENCE
userLocationInformation [8] OCTET STRING OPTIONAL,
ePCQoSInformation [9] EPCQoSInformation OPTIONAL,
chargingID [10] ChargingID OPTIONAL,
presenceReportingAreaStatus [11] PresenceReportingAreaStatus OPTIONAL
presenceReportingAreaStatus [11] PresenceReportingAreaStatus OPTIONAL,
userCSGInformation [12] UserCSGInformation OPTIONAL
}
ChangeOfMBMSCondition ::= SEQUENCE
@ -843,32 +851,33 @@ 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,
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
presenceReportingAreaStatus [28] PresenceReportingAreaStatus OPTIONAL,
userCSGInformation [29] UserCSGInformation OPTIONAL
}
ChangeLocation ::= SEQUENCE
@ -904,7 +913,7 @@ ChChSelectionMode ::= ENUMERATED
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
visitingDefault (5), -- For SGSN, S-GW, P-GW, TDF and IP-Edge
fixedDefault (6) -- For TDF and IP-Edge
}
@ -1117,13 +1126,16 @@ ServiceConditionChange ::= BIT STRING
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
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"
userLocationChange (31), -- bearer modification. "User Location Change"
userCSGInformationChange (32) -- bearer modification. "User CSG info Change"
}
--
-- Trigger and cause values for IP flow level recording are defined for support of independent
@ -1161,7 +1173,7 @@ SGSNChange ::= BOOLEAN
SGWChange ::= BOOLEAN
--
-- present if first record after inter S-GW change
-- present if first record after inter serving node change (SGW, ePDG, HSGW)
--
TimeQuotaMechanism ::= SEQUENCE

View File

@ -25,7 +25,7 @@ EXPORT_FILES = \
ASN_FILE_LIST = \
GenericChargingDataTypesV1250.asn \
GPRSChargingDataTypesV641.asn \
GPRSChargingDataTypesV1250.asn
GPRSChargingDataTypesV1260.asn
INCLUDED_ASN_FILE_LIST = \
3GPPGenericChargingDataTypes.asn \

View File

@ -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 */
/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1250.asn */
/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */
/* Input file: packet-gprscdr-template.c */
@ -394,6 +394,7 @@ static int hf_gprscdr_ServiceConditionChange_envelopeClosure = -1;
static int hf_gprscdr_ServiceConditionChange_eCGIChange = -1;
static int hf_gprscdr_ServiceConditionChange_tAIChange = -1;
static int hf_gprscdr_ServiceConditionChange_userLocationChange = -1;
static int hf_gprscdr_ServiceConditionChange_userCSGInformationChange = -1;
/*--- End of included file: packet-gprscdr-hf.c ---*/
#line 45 "../../asn1/gprscdr/packet-gprscdr-template.c"
@ -2537,6 +2538,7 @@ static const value_string gprscdr_ChangeCondition_vals[] = {
{ 10, "eCGIChange" },
{ 11, "tAIChange" },
{ 12, "userLocationChange" },
{ 13, "userCSGInformationChange" },
{ 0, NULL }
};
@ -2587,42 +2589,6 @@ dissect_gprscdr_PresenceReportingAreaStatus(gboolean implicit_tag _U_, tvbuff_t
}
static const ber_sequence_t ChangeOfCharCondition_sequence[] = {
{ &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_dataVolumeGPRSUplink, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
{ &hf_gprscdr_dataVolumeGPRSDownlink, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
{ &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
{ &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
{ &hf_gprscdr_ePCQoSInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
{ &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 },
{ NULL, 0, 0, 0, NULL }
};
static int
dissect_gprscdr_ChangeOfCharCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ChangeOfCharCondition_sequence, hf_index, ett_gprscdr_ChangeOfCharCondition);
return offset;
}
static const ber_sequence_t SEQUENCE_OF_ChangeOfCharCondition_sequence_of[1] = {
{ &hf_gprscdr_listOfTrafficVolumes_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharCondition },
};
static int
dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_ChangeOfCharCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition);
return offset;
}
static int
dissect_gprscdr_CSGId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@ -2665,6 +2631,43 @@ dissect_gprscdr_UserCSGInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
static const ber_sequence_t ChangeOfCharCondition_sequence[] = {
{ &hf_gprscdr_qosRequested, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_qosNegotiated, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
{ &hf_gprscdr_dataVolumeGPRSUplink, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
{ &hf_gprscdr_dataVolumeGPRSDownlink, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
{ &hf_gprscdr_changeCondition_01, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChangeCondition },
{ &hf_gprscdr_changeTime , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
{ &hf_gprscdr_userLocationInformation, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
{ &hf_gprscdr_ePCQoSInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_EPCQoSInformation },
{ &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 },
{ NULL, 0, 0, 0, NULL }
};
static int
dissect_gprscdr_ChangeOfCharCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ChangeOfCharCondition_sequence, hf_index, ett_gprscdr_ChangeOfCharCondition);
return offset;
}
static const ber_sequence_t SEQUENCE_OF_ChangeOfCharCondition_sequence_of[1] = {
{ &hf_gprscdr_listOfTrafficVolumes_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_gprscdr_ChangeOfCharCondition },
};
static int
dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_ChangeOfCharCondition_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition);
return offset;
}
static const ber_sequence_t SGSNPDPRecord_set[] = {
{ &hf_gprscdr_recordType_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_RecordType },
{ &hf_gprscdr_networkInitiation, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NetworkInitiatedPDPContext },
@ -2957,6 +2960,7 @@ static const asn_namedbit ServiceConditionChange_bits[] = {
{ 29, &hf_gprscdr_ServiceConditionChange_eCGIChange, -1, -1, "eCGIChange", NULL },
{ 30, &hf_gprscdr_ServiceConditionChange_tAIChange, -1, -1, "tAIChange", NULL },
{ 31, &hf_gprscdr_ServiceConditionChange_userLocationChange, -1, -1, "userLocationChange", NULL },
{ 32, &hf_gprscdr_ServiceConditionChange_userCSGInformationChange, -1, -1, "userCSGInformationChange", NULL },
{ 0, NULL, 0, 0, NULL, NULL }
};
@ -3021,6 +3025,7 @@ static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
{ &hf_gprscdr_applicationServiceProviderIdentity, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
{ &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 },
{ NULL, 0, 0, 0, NULL }
};
@ -3303,6 +3308,7 @@ static const ber_sequence_t EPDGRecord_set[] = {
{ &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
{ &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 },
@ -3327,8 +3333,8 @@ dissect_gprscdr_EPDGRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
const value_string gprscdr_GPRSRecord_vals[] = {
{ 20, "sgsnPDPRecord" },
{ 22, "sgsnMMRecord" },
{ 21, "ggsnPDPRecord" },
{ 22, "sgsnMMRecord" },
{ 23, "sgsnSMORecord" },
{ 24, "sgsnSMTRecord" },
{ 70, "egsnPDPRecord" },
@ -3342,8 +3348,8 @@ const value_string gprscdr_GPRSRecord_vals[] = {
static const ber_choice_t GPRSRecord_choice[] = {
{ 20, &hf_gprscdr_sgsnPDPRecord_01, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPDPRecord },
{ 22, &hf_gprscdr_sgsnMMRecord, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMMRecord },
{ 21, &hf_gprscdr_ggsnPDPRecord_01, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNPDPRecordV750 },
{ 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 },
{ 70, &hf_gprscdr_egsnPDPRecord_01, BER_CLASS_CON, 70, BER_FLAGS_IMPLTAG, dissect_gprscdr_EGSNPDPRecordV750 },
@ -4775,6 +4781,10 @@ proto_register_gprscdr(void)
{ "userLocationChange", "gprscdr.userLocationChange",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL }},
{ &hf_gprscdr_ServiceConditionChange_userCSGInformationChange,
{ "userCSGInformationChange", "gprscdr.userCSGInformationChange",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
/*--- End of included file: packet-gprscdr-hfarr.c ---*/
#line 77 "../../asn1/gprscdr/packet-gprscdr-template.c"

View File

@ -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 */
/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1250.asn */
/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV1250.asn GPRSChargingDataTypesV641.asn GPRSChargingDataTypesV1260.asn */
/* Input file: packet-gprscdr-template.h */